diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs index aae51c18c..2a07b7b93 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs @@ -117,7 +117,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc //要根据标准阅片顺序,确定是否查询单个任务的,还是查询所有的 var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId) - .Select(t => new { t.IsReadingTaskViewInOrder }).FirstNotNullAsync(); + .Select(t => new { t.IsReadingTaskViewInOrder }).FirstNotNullAsync(); var subjectCode = string.Empty; var subjectId = inQuery.SubjectId; @@ -129,9 +129,10 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc throw new Exception("无序阅片,前端参数传递错误"); } //考虑到一致性分析,必须要这个编号进行过滤 - var taskInfo = _visitTaskRepository.Where(t => t.Id == inQuery.VisitTaskId).Select(t => new { - SubjectCode= t.IsAnalysisCreate ? t.BlindSubjectCode : t.Subject.Code, - SubjectId= t.SubjectId, + var taskInfo = _visitTaskRepository.Where(t => t.Id == inQuery.VisitTaskId).Select(t => new + { + SubjectCode = t.IsAnalysisCreate ? t.BlindSubjectCode : t.Subject.Code, + SubjectId = t.SubjectId, }).FirstOrDefault(); subjectId = taskInfo.SubjectId; subjectCode = taskInfo.SubjectCode; @@ -658,7 +659,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc //考虑到一致性分析,必须要这个编号进行过滤 //医学审核查看下载按钮,这个时候需要知道医生 - var taskInfo = await _visitTaskRepository.Where(t => t.Id == inQuery.VisitTaskId).Select(t => new { + var taskInfo = await _visitTaskRepository.Where(t => t.Id == inQuery.VisitTaskId).Select(t => new + { SubjectCode = t.IsAnalysisCreate ? t.BlindSubjectCode : t.Subject.Code, SubjectId = t.SubjectId, t.DoctorUserId, @@ -847,7 +849,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc { throw new Exception("无序阅片,前端参数传递错误"); } - + } else { @@ -859,13 +861,14 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc //考虑到一致性分析,必须要这个编号进行过滤 subjectCode = inQuery.SubjectCode; } - + if (inQuery.VisitTaskId != null) { //考虑到一致性分析,必须要这个编号进行过滤 //医学审核查看下载按钮,这个时候需要知道医生 - var taskInfo = await _visitTaskRepository.Where(t => t.Id == inQuery.VisitTaskId).Select(t => new { + var taskInfo = await _visitTaskRepository.Where(t => t.Id == inQuery.VisitTaskId).Select(t => new + { SubjectCode = t.IsAnalysisCreate ? t.BlindSubjectCode : t.Subject.Code, SubjectId = t.SubjectId, t.DoctorUserId, @@ -1047,39 +1050,44 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc [HttpPost] public async Task GetTaskUploadedDicomStudyList(IRTaskUploadedDicomStudyQuery inQuery) { - var query = _taskStudyRepository.Where(t => t.VisitTaskId == inQuery.VisitTaskId).Select(t => new - { - StudyId = t.Id, - t.Modalities, - t.InstanceCount, - t.SeriesCount, - t.StudyCode, - SeriesList = t.SeriesList.OrderBy(s => s.SeriesNumber).ThenBy(s => s.SeriesTime).Select(u => new + var info = await _visitTaskRepository.Where(t => t.Id == inQuery.VisitTaskId) + .Select(t => new { t.TrialReadingCriterion.IsImageFilter, t.TrialReadingCriterion.CriterionModalitys }).FirstNotNullAsync(); + + var query = _taskStudyRepository.Where(t => t.VisitTaskId == inQuery.VisitTaskId) + .Where(t => info.IsImageFilter ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true) + .Select(t => new { - u.SeriesTime, - u.InstanceCount, - u.ImageResizePath, - u.Modality, - u.Description, - u.SeriesInstanceUid, - u.SeriesNumber, - u.SliceThickness, - u.StudyInstanceUid, - - IsExistMutiFrames = u.InstanceList.Any(t => t.NumberOfFrames > 1), - - InstanceInfoList = u.InstanceList.OrderBy(t => t.InstanceNumber).Select(k => - new InstanceBasicInfo() + StudyId = t.Id, + t.Modalities, + t.InstanceCount, + t.SeriesCount, + t.StudyCode, + SeriesList = t.SeriesList.OrderBy(s => s.SeriesNumber).ThenBy(s => s.SeriesTime).Select(u => new { - Id = k.Id, - NumberOfFrames = k.NumberOfFrames, - HtmlPath = k.HtmlPath, - Path = k.Path, - InstanceNumber = k.InstanceNumber, + u.SeriesTime, + u.InstanceCount, + u.ImageResizePath, + u.Modality, + u.Description, + u.SeriesInstanceUid, + u.SeriesNumber, + u.SliceThickness, + u.StudyInstanceUid, - }).ToList() - }) - }); + IsExistMutiFrames = u.InstanceList.Any(t => t.NumberOfFrames > 1), + + InstanceInfoList = u.InstanceList.OrderBy(t => t.InstanceNumber).Select(k => + new InstanceBasicInfo() + { + Id = k.Id, + NumberOfFrames = k.NumberOfFrames, + HtmlPath = k.HtmlPath, + Path = k.Path, + InstanceNumber = k.InstanceNumber, + + }).ToList() + }) + }); var list = await query.ToListAsync(); return ResponseOutput.Ok(list);