diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index a7bc009a..aa0e7600 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -7179,10 +7179,9 @@ - + 指定资源Id,获取Dicom检查所属序列信息列表 Dicom检查的Id - 指定资源Id,渲染Dicom序列的Jpeg预览图像 diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomInstanceModel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomInstanceModel.cs index b8832e08..cbede37f 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomInstanceModel.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomInstanceModel.cs @@ -24,10 +24,9 @@ namespace IRaCIS.Core.Application.Contracts public string Path { get; set; } - //public Guid CreateUserId { get; set; } - //public DateTime CreateTime { get; set; } - //public Guid UpdateUserId { get; set; } - //public DateTime UpdateTime { get; set; } + + public bool IsDeleted { get; set; } + public bool IsReading { get; set; } = true; } diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs index bdea84a7..be345a98 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs @@ -30,6 +30,9 @@ public Guid UpdateUserId { get; set; } public DateTime UpdateTime { get; set; } + public bool IsDeleted { get; set; } + public bool IsReading { get; set; } = true; + public List InstanceList { get; set; } = new List(); public List InstancePathList { get; set; } = new List(); diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/SeriesService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/SeriesService.cs index e581bcb8..215fefc0 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/SeriesService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/SeriesService.cs @@ -30,14 +30,13 @@ namespace IRaCIS.Core.Application.Services //医生读片那一块有耦合,关键序列 这里暂时留存 /// 指定资源Id,获取Dicom检查所属序列信息列表 /// Dicom检查的Id - /// - [HttpGet, Route("{studyId:guid}/{tpCode?}")] - public async Task>> List(Guid studyId, string? tpCode) + [HttpGet, Route("{studyId:guid}")] + public async Task>> List(Guid studyId) { var seriesList = await _seriesRepository.Where(s => s.StudyId == studyId).OrderBy(s => s.SeriesNumber). ThenBy(s => s.SeriesTime).ThenBy(s => s.CreateTime) - .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); 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) diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs index c2b67ffd..66b395a1 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs @@ -58,7 +58,7 @@ namespace IRaCIS.Core.Application.Service CreateMap() .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.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(); - CreateMap(); + CreateMap() + .ForMember(o => o.IsDeleted, t => t.MapFrom(u => u.DicomSerie.IsDeleted)) + .ForMember(o => o.IsReading, t => t.MapFrom(u => u.DicomSerie.IsReading)); CreateMap(); CreateMap(); diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs index 3171fa5e..ddefcce0 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs @@ -404,7 +404,6 @@ namespace IRaCIS.Core.Application.Contracts.DTO public string BodyPartForEdit { get; set; } = String.Empty; - public string SeriesInstanceUid { get; set; } = String.Empty; public int SeriesNumber { get; set; } public DateTime? SeriesTime { get; set; } diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index cb5864e4..167991d9 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -1348,8 +1348,8 @@ namespace IRaCIS.Core.Application.Image.QA //删除 软删除的物理文件 - var instanceIdList = await _repository.Where(t => t.DicomSerie.IsDeleted && t.SubjectVisitId == subjectVisitId) - .Select(t => new { InstanceId = t.Id, t.SeriesId, t.StudyId, t.SubjectId, t.SiteId }).ToListAsync(); + var instancePathList = await _repository.Where(t => t.DicomSerie.IsDeleted && t.SubjectVisitId == subjectVisitId) + .Select(t => t.Path).ToListAsync(); //维护统一状态 dbSubjectVisit.ReadingStatus = ReadingStatusEnum.ConsistencyCheck; @@ -1385,12 +1385,15 @@ namespace IRaCIS.Core.Application.Image.QA 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)) { @@ -1448,12 +1451,10 @@ namespace IRaCIS.Core.Application.Image.QA 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)) { diff --git a/IRaCIS.Core.Domain/Image/DicomSeries.cs b/IRaCIS.Core.Domain/Image/DicomSeries.cs index 7971e61e..094c4f62 100644 --- a/IRaCIS.Core.Domain/Image/DicomSeries.cs +++ b/IRaCIS.Core.Domain/Image/DicomSeries.cs @@ -56,11 +56,10 @@ namespace IRaCIS.Core.Domain.Models public Guid UpdateUserId { get; set; } public DateTime UpdateTime { get; set; } = DateTime.Now; - public bool IsDeleted {get;set;} public DateTime? DeletedTime { get; set; } public Guid? DeleteUserId { get; set; } - + public bool IsDeleted {get;set;} public bool IsReading { get; set; } = true; public string BodyPartForEdit { get; set; } = string.Empty;