修改IR 页面设置 软删除和不读片

Test.EIImageViewer
{872297557@qq.com} 2022-11-29 16:04:50 +08:00
parent 57617d9cf5
commit 83e6226c22
8 changed files with 26 additions and 25 deletions

View File

@ -7179,10 +7179,9 @@
<param name="tpCode"></param> <param name="tpCode"></param>
<param name="key"></param> <param name="key"></param>
</member> </member>
<member name="M:IRaCIS.Core.Application.Services.SeriesService.List(System.Guid,System.String)"> <member name="M:IRaCIS.Core.Application.Services.SeriesService.List(System.Guid)">
<summary> 指定资源Id获取Dicom检查所属序列信息列表 </summary> <summary> 指定资源Id获取Dicom检查所属序列信息列表 </summary>
<param name="studyId"> Dicom检查的Id </param> <param name="studyId"> Dicom检查的Id </param>
<param name="tpCode"></param>
</member> </member>
<member name="M:IRaCIS.Core.Application.Services.SeriesService.Preview(System.Guid)"> <member name="M:IRaCIS.Core.Application.Services.SeriesService.Preview(System.Guid)">
<summary> 指定资源Id渲染Dicom序列的Jpeg预览图像 </summary> <summary> 指定资源Id渲染Dicom序列的Jpeg预览图像 </summary>

View File

@ -24,10 +24,9 @@ namespace IRaCIS.Core.Application.Contracts
public string Path { get; set; } public string Path { get; set; }
//public Guid CreateUserId { get; set; }
//public DateTime CreateTime { get; set; } public bool IsDeleted { get; set; }
//public Guid UpdateUserId { get; set; } public bool IsReading { get; set; } = true;
//public DateTime UpdateTime { get; set; }
} }

View File

@ -30,6 +30,9 @@
public Guid UpdateUserId { get; set; } public Guid UpdateUserId { get; set; }
public DateTime UpdateTime { get; set; } public DateTime UpdateTime { get; set; }
public bool IsDeleted { get; set; }
public bool IsReading { get; set; } = true;
public List<Guid> InstanceList { get; set; } = new List<Guid>(); public List<Guid> InstanceList { get; set; } = new List<Guid>();
public List<string> InstancePathList { get; set; } = new List<string>(); public List<string> InstancePathList { get; set; } = new List<string>();

View File

@ -30,14 +30,13 @@ namespace IRaCIS.Core.Application.Services
//医生读片那一块有耦合,关键序列 这里暂时留存 //医生读片那一块有耦合,关键序列 这里暂时留存
/// <summary> 指定资源Id获取Dicom检查所属序列信息列表 </summary> /// <summary> 指定资源Id获取Dicom检查所属序列信息列表 </summary>
/// <param name="studyId"> Dicom检查的Id </param> /// <param name="studyId"> Dicom检查的Id </param>
/// <param name="tpCode"></param> [HttpGet, Route("{studyId:guid}")]
[HttpGet, Route("{studyId:guid}/{tpCode?}")] public async Task<IResponseOutput<List<DicomSeriesDTO>>> List(Guid studyId)
public async Task<IResponseOutput<List<DicomSeriesWithLabelDTO>>> List(Guid studyId, string? tpCode)
{ {
var seriesList = await _seriesRepository.Where(s => s.StudyId == studyId).OrderBy(s => s.SeriesNumber). var seriesList = await _seriesRepository.Where(s => s.StudyId == studyId).OrderBy(s => s.SeriesNumber).
ThenBy(s => s.SeriesTime).ThenBy(s => s.CreateTime) ThenBy(s => s.SeriesTime).ThenBy(s => s.CreateTime)
.ProjectTo<DicomSeriesWithLabelDTO>(_mapper.ConfigurationProvider).ToListAsync(); .ProjectTo<DicomSeriesDTO>(_mapper.ConfigurationProvider).ToListAsync();
var idList = await _instanceRepository.Where(s => s.StudyId == studyId).OrderBy(t => t.SeriesId).ThenBy(t => t.InstanceNumber) var idList = await _instanceRepository.Where(s => s.StudyId == studyId).OrderBy(t => t.SeriesId).ThenBy(t => t.InstanceNumber)
.ThenBy(s => s.InstanceTime).ThenBy(s => s.CreateTime) .ThenBy(s => s.InstanceTime).ThenBy(s => s.CreateTime)

View File

@ -58,7 +58,7 @@ namespace IRaCIS.Core.Application.Service
CreateMap<DicomStudy, QAStudyInfoDTO>() CreateMap<DicomStudy, QAStudyInfoDTO>()
.ForMember(o => o.UploadedTime, t => t.MapFrom(u => u.CreateTime)) .ForMember(o => o.UploadedTime, t => t.MapFrom(u => u.CreateTime))
.ForMember(o => o.Uploader, t => t.MapFrom(u => u.Uploader.LastName + " / " + u.Uploader.FirstName)) .ForMember(o => o.Uploader, t => t.MapFrom(u => u.Uploader.LastName + " / " + u.Uploader.FirstName))
.ForMember(o => o.StudyId, t => t.MapFrom(u => u.Id)); .ForMember(o => o.StudyId, t => t.MapFrom(u => u.Id)
@ -74,7 +74,9 @@ namespace IRaCIS.Core.Application.Service
CreateMap<StudyStatusDetail, StudyStatusDetailDTO>(); CreateMap<StudyStatusDetail, StudyStatusDetailDTO>();
CreateMap<DicomInstance, DicomInstanceDTO>(); CreateMap<DicomInstance, DicomInstanceDTO>()
.ForMember(o => o.IsDeleted, t => t.MapFrom(u => u.DicomSerie.IsDeleted))
.ForMember(o => o.IsReading, t => t.MapFrom(u => u.DicomSerie.IsReading));
CreateMap<DicomStudy, DicomStudyDTO>(); CreateMap<DicomStudy, DicomStudyDTO>();
CreateMap<DicomSeries, DicomSeriesDTO>(); CreateMap<DicomSeries, DicomSeriesDTO>();

View File

@ -404,7 +404,6 @@ namespace IRaCIS.Core.Application.Contracts.DTO
public string BodyPartForEdit { get; set; } = String.Empty; public string BodyPartForEdit { get; set; } = String.Empty;
public string SeriesInstanceUid { get; set; } = String.Empty; public string SeriesInstanceUid { get; set; } = String.Empty;
public int SeriesNumber { get; set; } public int SeriesNumber { get; set; }
public DateTime? SeriesTime { get; set; } public DateTime? SeriesTime { get; set; }

View File

@ -1348,8 +1348,8 @@ namespace IRaCIS.Core.Application.Image.QA
//删除 软删除的物理文件 //删除 软删除的物理文件
var instanceIdList = await _repository.Where<DicomInstance>(t => t.DicomSerie.IsDeleted && t.SubjectVisitId == subjectVisitId) var instancePathList = await _repository.Where<DicomInstance>(t => t.DicomSerie.IsDeleted && t.SubjectVisitId == subjectVisitId)
.Select(t => new { InstanceId = t.Id, t.SeriesId, t.StudyId, t.SubjectId, t.SiteId }).ToListAsync(); .Select(t => t.Path).ToListAsync();
//维护统一状态 //维护统一状态
dbSubjectVisit.ReadingStatus = ReadingStatusEnum.ConsistencyCheck; dbSubjectVisit.ReadingStatus = ReadingStatusEnum.ConsistencyCheck;
@ -1385,12 +1385,15 @@ namespace IRaCIS.Core.Application.Image.QA
dbSubjectVisit.ReadingStatus = trialConfig.IsImageConsistencyVerification ? ReadingStatusEnum.ConsistencyCheck : ReadingStatusEnum.TaskAllocate; dbSubjectVisit.ReadingStatus = trialConfig.IsImageConsistencyVerification ? ReadingStatusEnum.ConsistencyCheck : ReadingStatusEnum.TaskAllocate;
//删除影像 //删除影像
instanceIdList.ForEach(t => instancePathList.ForEach(path =>
{ {
var dicomStudy = new DicomStudy() { Id = t.StudyId, SubjectId = t.SubjectId, TrialId = trialId, SiteId = t.SiteId, SubjectVisitId = subjectVisitId };
var (physicalPath, relativePath) =
FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, t.InstanceId); var physicalPath = FileStoreHelper.GetPhysicalFilePath(_hostEnvironment, path);
//var dicomStudy = new DicomStudy() { Id = t.StudyId, SubjectId = t.SubjectId, TrialId = trialId, SiteId = t.SiteId, SubjectVisitId = subjectVisitId };
//var (physicalPath, relativePath) =
// FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, t.InstanceId);
if (System.IO.File.Exists(physicalPath)) if (System.IO.File.Exists(physicalPath))
{ {
@ -1448,12 +1451,10 @@ namespace IRaCIS.Core.Application.Image.QA
dbSubjectVisit.ReadingStatus = trialConfig.IsImageConsistencyVerification ? ReadingStatusEnum.ConsistencyCheck : ReadingStatusEnum.TaskAllocate; dbSubjectVisit.ReadingStatus = trialConfig.IsImageConsistencyVerification ? ReadingStatusEnum.ConsistencyCheck : ReadingStatusEnum.TaskAllocate;
//删除影像 //删除影像
instanceIdList.ForEach(t => instancePathList.ForEach(path =>
{ {
var dicomStudy = new DicomStudy() { Id = t.StudyId, SubjectId = t.SubjectId, TrialId = trialId, SiteId = t.SiteId, SubjectVisitId = subjectVisitId };
var(physicalPath, relativePath) =
FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, t.InstanceId); var physicalPath = FileStoreHelper.GetPhysicalFilePath(_hostEnvironment, path);
if (System.IO.File.Exists(physicalPath)) if (System.IO.File.Exists(physicalPath))
{ {

View File

@ -56,11 +56,10 @@ namespace IRaCIS.Core.Domain.Models
public Guid UpdateUserId { get; set; } public Guid UpdateUserId { get; set; }
public DateTime UpdateTime { get; set; } = DateTime.Now; public DateTime UpdateTime { get; set; } = DateTime.Now;
public bool IsDeleted {get;set;}
public DateTime? DeletedTime { get; set; } public DateTime? DeletedTime { get; set; }
public Guid? DeleteUserId { get; set; } public Guid? DeleteUserId { get; set; }
public bool IsDeleted {get;set;}
public bool IsReading { get; set; } = true; public bool IsReading { get; set; } = true;
public string BodyPartForEdit { get; set; } = string.Empty; public string BodyPartForEdit { get; set; } = string.Empty;