diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs index 9edf88c4b..26fbd7752 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs @@ -776,6 +776,9 @@ namespace IRaCIS.Core.Application.Contracts public List DicomStudyIdList { get; set; } public List NoneDicomStudyIdList { get; set; } + + // true 导出阅片,null 就是所有影像 + public bool? IsExportReading { get; set; } } public class IRReadingDownloadQuery : SortInput diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs index db29531ad..eff2a5aed 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs @@ -1141,6 +1141,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc var isQueryDicom = inQuery.DicomStudyIdList.Count > 0; var isQueryNoneDicom = inQuery.NoneDicomStudyIdList.Count > 0; + var isExportReading = inQuery.IsExportReading == true; + var imageType = (isQueryDicom && isQueryNoneDicom) ? ImageType.DicomAndNoneDicom : (isQueryDicom ? ImageType.Dicom : ImageType.NoneDicom); var dirDic = new Dictionary(); @@ -1150,11 +1152,12 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc //有传输语法值的导出 才生成DIR //if (_subjectVisitRepository.Where(t => t.Id == inQuery.SubjectVisitId).SelectMany(t => t.StudyList.SelectMany(t => t.InstanceList)).All(c => c.TransferSytaxUID != string.Empty)) - if (!_instanceRepository.Where(t => inQuery.SubjectVisitId == t.SubjectVisitId).Any(c => c.TransferSytaxUID == string.Empty)) + if (!_instanceRepository.Where(t => isExportReading ? (t.IsReading && t.DicomSerie.IsReading) : true) + .Where(t => inQuery.SubjectVisitId == t.SubjectVisitId).Any(c => c.TransferSytaxUID == string.Empty)) { var list = _subjectVisitRepository.Where(t => t.Id == inQuery.SubjectVisitId).SelectMany(t => t.StudyList) .Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false) - .SelectMany(t => t.InstanceList) + .SelectMany(t => t.InstanceList.Where(t => isExportReading ? (t.IsReading && t.DicomSerie.IsReading) : true)) .Select(t => new StudyDIRInfo() { @@ -1235,11 +1238,11 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc StudyInstanceUid = u.StudyInstanceUid, StudyDIRPath = u.StudyDIRPath, - SeriesList = u.SeriesList.Select(z => new DownloadDicomSeriesDto() + SeriesList = u.SeriesList.Where(t => isExportReading ? t.IsReading : true).Select(z => new DownloadDicomSeriesDto() { Modality = z.Modality, - InstanceList = z.DicomInstanceList.Select(k => new DownloadDicomInstanceDto() + InstanceList = z.DicomInstanceList.Where(t => isExportReading ? t.IsReading : true).Select(k => new DownloadDicomInstanceDto() { IsEncapsulated = k.IsEncapsulated, InstanceId = k.Id, @@ -1251,7 +1254,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc }).ToList(), - NoneDicomStudyList = sv.NoneDicomStudyList.Where(t => isQueryNoneDicom ? inQuery.NoneDicomStudyIdList.Contains(t.Id) : false) + NoneDicomStudyList = sv.NoneDicomStudyList.Where(t => isExportReading ? t.IsReading : true).Where(t => isQueryNoneDicom ? inQuery.NoneDicomStudyIdList.Contains(t.Id) : false) .Select(nd => new DownloadNoneDicomStudyDto() { @@ -1259,7 +1262,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc StudyCode = nd.StudyCode, ImageDate = nd.ImageDate, - FileList = nd.NoneDicomFileList.Select(file => new DownloadNoneDicomFileDto() + FileList = nd.NoneDicomFileList.Where(t => isExportReading ? t.IsReading : true).Select(file => new DownloadNoneDicomFileDto() { FileName = file.FileName, Path = file.Path,