diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/NoneDicomStudyService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/NoneDicomStudyService.cs index 3bdcd5cc8..e1a3cdd33 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/NoneDicomStudyService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/NoneDicomStudyService.cs @@ -29,11 +29,12 @@ namespace IRaCIS.Core.Application.Contracts [HttpGet] - public async Task> > GetNoneDicomStudyList( + public async Task>> GetNoneDicomStudyList( [FromQuery, NotDefault] Guid subjectVisitId, [FromQuery] Guid? nonedicomStudyId, [FromQuery] bool isFilterZip, - [FromQuery] Guid? visitTaskId) + [FromQuery] Guid? visitTaskId, + [FromQuery] bool isReading) { var qcAuditState = await _subjectVisitRepository.Where(s => s.Id == subjectVisitId).Select(t => t.AuditState).FirstOrDefaultAsync(); @@ -41,15 +42,18 @@ namespace IRaCIS.Core.Application.Contracts var isQCFinished = qcAuditState == AuditStateEnum.QCPassed; //质控过程中并且不是IQC时, 不需要忽略过滤器+质控设置删除的 - var isIgnoreDelete = !(_userInfo.UserTypeEnumInt != (int)UserTypeEnum.IQC && !isQCFinished); + var isIgnoreDelete = !(_userInfo.UserTypeEnumInt != (int)UserTypeEnum.IQC && !isQCFinished); IQueryable noneDicomStudyQueryable = default; if (visitTaskId == null) { //质控过程中,需要忽略过滤质控设置删除的检查,以及设置删除的文件,质控通过后才 - noneDicomStudyQueryable = _noneDicomStudyRepository.Where(t => t.SubjectVisitId == subjectVisitId, ignoreQueryFilters: isIgnoreDelete).WhereIf(nonedicomStudyId != null, t => t.Id == nonedicomStudyId) + noneDicomStudyQueryable = _noneDicomStudyRepository.Where(t => t.SubjectVisitId == subjectVisitId, ignoreQueryFilters: isIgnoreDelete) + .WhereIf(nonedicomStudyId != null, t => t.Id == nonedicomStudyId) + .WhereIf(isReading, t => t.IsReading) - .ProjectTo(_mapper.ConfigurationProvider, new { isFilterZip = isFilterZip }); + + .ProjectTo(_mapper.ConfigurationProvider, new { isFilterZip = isFilterZip, isReading= isReading }); } else { @@ -57,16 +61,17 @@ namespace IRaCIS.Core.Application.Contracts noneDicomStudyQueryable = _noneDicomStudyRepository.Where(t => t.TaskNoneDicomFileList.Any(t => t.VisitTaskId == visitTaskId), ignoreQueryFilters: isIgnoreDelete) + .WhereIf(isReading, t => t.IsReading) .Where(t => taskinfo.IsImageFilter ? ("|" + taskinfo.CriterionModalitys + "|").Contains("|" + t.Modality + "|") : true) .WhereIf(nonedicomStudyId != null, t => t.Id == nonedicomStudyId) - .ProjectTo(_mapper.ConfigurationProvider, new { isFilterZip = isFilterZip, visiTaskId = visitTaskId }); + .ProjectTo(_mapper.ConfigurationProvider, new { isFilterZip = isFilterZip, visiTaskId = visitTaskId, isReading = isReading }); } var list = await noneDicomStudyQueryable.OrderBy(x => x.ImageDate).ThenBy(x => x.CreateTime).ToListAsync(); - var config = await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).Select(t => new { t.Trial.ImageFormatList, t.Trial.StudyNameList ,t.Trial.IsShowStudyName, AuditState = qcAuditState }).FirstOrDefaultAsync(); - return ResponseOutput.Ok(list, config) ; + var config = await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).Select(t => new { t.Trial.ImageFormatList, t.Trial.StudyNameList, t.Trial.IsShowStudyName, AuditState = qcAuditState }).FirstOrDefaultAsync(); + return ResponseOutput.Ok(list, config); } diff --git a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs index 02bfebd07..2b04cc2a4 100644 --- a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs @@ -404,7 +404,7 @@ namespace IRaCIS.Core.Application.Service bool isIgnoreDelete = false; - bool isFilterReading = false; + bool isReading = false; string token = string.Empty; @@ -726,15 +726,15 @@ namespace IRaCIS.Core.Application.Service CreateMap() .ForMember(d => d.NoneDicomStudyFileList, u => u.MapFrom(s => isFilterZip ? - s.NoneDicomFileList.Where(t => !t.FileType.Contains(StaticData.FileType.Zip) && isFilterReading ? t.IsReading : true).OrderBy(t => t.CreateTime).ThenBy(t => t.FileName) : - s.NoneDicomFileList.Where(t => isFilterReading ? t.IsReading : true).OrderBy(t => t.CreateTime).ThenBy(t => t.FileName))) + s.NoneDicomFileList.Where(t => !t.FileType.Contains(StaticData.FileType.Zip) && isReading ? t.IsReading : true).OrderBy(t => t.CreateTime).ThenBy(t => t.FileName) : + s.NoneDicomFileList.Where(t => isReading ? t.IsReading : true).OrderBy(t => t.CreateTime).ThenBy(t => t.FileName))) .ForMember(d => d.CodeView, u => u.MapFrom(s => s.StudyCode)); Guid? visiTaskId = null; CreateMap() .ForMember(d => d.NoneDicomStudyFileList, u => u.MapFrom(s => isFilterZip ? - s.TaskNoneDicomFileList.Where(t => visiTaskId != null ? t.VisitTaskId == visiTaskId : true).Where(t => !t.FileType.Contains(StaticData.FileType.Zip)).OrderBy(t => t.CreateTime).ThenBy(t => t.FileName) - : s.TaskNoneDicomFileList.Where(t => visiTaskId != null ? t.VisitTaskId == visiTaskId : true).OrderBy(t => t.CreateTime).ThenBy(t => t.FileName))) + s.TaskNoneDicomFileList.Where(t => visiTaskId != null ? t.VisitTaskId == visiTaskId : true).Where(t => !t.FileType.Contains(StaticData.FileType.Zip) && isReading ? t.IsReading : true).OrderBy(t => t.CreateTime).ThenBy(t => t.FileName) + : s.TaskNoneDicomFileList.Where(t => visiTaskId != null ? t.VisitTaskId == visiTaskId : true).Where(t => isReading ? t.IsReading : true).OrderBy(t => t.CreateTime).ThenBy(t => t.FileName))) .ForMember(d => d.CodeView, u => u.MapFrom(s => s.StudyCode)); } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingNoDicomTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingNoDicomTaskService.cs index d123a3529..e2c9288b9 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingNoDicomTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingNoDicomTaskService.cs @@ -138,7 +138,7 @@ namespace IRaCIS.Core.Application.Service noneDicomStudyQueryable = _noneDicomStudyRepository.Where(t => t.IsReading) .Where(t => visitIds.Contains(t.SubjectVisitId) && t.NoneDicomFileList.Any(t => !t.FileType.Contains(StaticData.FileType.Zip))) .WhereIf(taskinfo.IsImageFilter == true, t => taskinfo.CriterionModalitys.Contains(t.Modality)) - .ProjectTo(_mapper.ConfigurationProvider, new { isFilterZip = true, isFilterReading = true }); + .ProjectTo(_mapper.ConfigurationProvider, new { isFilterZip = true, isReading = true }); if (inDto.VisistTaskId != null && _noneDicomStudyFileSystem.Any(t => t.VisitTaskId == inDto.VisistTaskId)) { @@ -146,7 +146,7 @@ namespace IRaCIS.Core.Application.Service .Where(t => t.TaskNoneDicomFileList.Any(t => t.VisitTaskId == inDto.VisistTaskId)) .Where(t => taskinfo.IsImageFilter ? ("|" + taskinfo.CriterionModalitys + "|").Contains("|" + t.Modality + "|") : true) .Where(t => visitIds.Contains(t.SubjectVisitId)) - .ProjectTo(_mapper.ConfigurationProvider, new { isFilterZip = true, isFilterReading = true, visiTaskId = inDto.VisistTaskId }); + .ProjectTo(_mapper.ConfigurationProvider, new { isFilterZip = true, isReading = true, visiTaskId = inDto.VisistTaskId }); } List result = await noneDicomStudyQueryable.OrderBy(x => x.ImageDate).ThenBy(x => x.CreateTime).ToListAsync();