非dicom 预览阅片影像 过滤是否阅片
continuous-integration/drone/push Build is passing Details

Uat_IRC_Net8
hang 2025-03-06 16:46:17 +08:00
parent 17f131cf63
commit 959b49a2cc
3 changed files with 20 additions and 15 deletions

View File

@ -29,11 +29,12 @@ namespace IRaCIS.Core.Application.Contracts
[HttpGet] [HttpGet]
public async Task<IResponseOutput<List<NoneDicomStudyView>> > GetNoneDicomStudyList( public async Task<IResponseOutput<List<NoneDicomStudyView>>> GetNoneDicomStudyList(
[FromQuery, NotDefault] Guid subjectVisitId, [FromQuery, NotDefault] Guid subjectVisitId,
[FromQuery] Guid? nonedicomStudyId, [FromQuery] Guid? nonedicomStudyId,
[FromQuery] bool isFilterZip, [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(); 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; var isQCFinished = qcAuditState == AuditStateEnum.QCPassed;
//质控过程中并且不是IQC时 不需要忽略过滤器+质控设置删除的 //质控过程中并且不是IQC时 不需要忽略过滤器+质控设置删除的
var isIgnoreDelete = !(_userInfo.UserTypeEnumInt != (int)UserTypeEnum.IQC && !isQCFinished); var isIgnoreDelete = !(_userInfo.UserTypeEnumInt != (int)UserTypeEnum.IQC && !isQCFinished);
IQueryable<NoneDicomStudyView> noneDicomStudyQueryable = default; IQueryable<NoneDicomStudyView> noneDicomStudyQueryable = default;
if (visitTaskId == null) 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<NoneDicomStudyView>(_mapper.ConfigurationProvider, new { isFilterZip = isFilterZip });
.ProjectTo<NoneDicomStudyView>(_mapper.ConfigurationProvider, new { isFilterZip = isFilterZip, isReading= isReading });
} }
else else
{ {
@ -57,16 +61,17 @@ namespace IRaCIS.Core.Application.Contracts
noneDicomStudyQueryable = _noneDicomStudyRepository.Where(t => t.TaskNoneDicomFileList.Any(t => t.VisitTaskId == visitTaskId), ignoreQueryFilters: isIgnoreDelete) 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) .Where(t => taskinfo.IsImageFilter ? ("|" + taskinfo.CriterionModalitys + "|").Contains("|" + t.Modality + "|") : true)
.WhereIf(nonedicomStudyId != null, t => t.Id == nonedicomStudyId) .WhereIf(nonedicomStudyId != null, t => t.Id == nonedicomStudyId)
.ProjectTo<TaskDicomStudyView>(_mapper.ConfigurationProvider, new { isFilterZip = isFilterZip, visiTaskId = visitTaskId }); .ProjectTo<TaskDicomStudyView>(_mapper.ConfigurationProvider, new { isFilterZip = isFilterZip, visiTaskId = visitTaskId, isReading = isReading });
} }
var list = await noneDicomStudyQueryable.OrderBy(x => x.ImageDate).ThenBy(x => x.CreateTime).ToListAsync(); 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(); 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) ; return ResponseOutput.Ok(list, config);
} }

View File

@ -404,7 +404,7 @@ namespace IRaCIS.Core.Application.Service
bool isIgnoreDelete = false; bool isIgnoreDelete = false;
bool isFilterReading = false; bool isReading = false;
string token = string.Empty; string token = string.Empty;
@ -726,15 +726,15 @@ namespace IRaCIS.Core.Application.Service
CreateMap<NoneDicomStudy, NoneDicomStudyView>() CreateMap<NoneDicomStudy, NoneDicomStudyView>()
.ForMember(d => d.NoneDicomStudyFileList, u => u.MapFrom(s => isFilterZip ? .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 => !t.FileType.Contains(StaticData.FileType.Zip) && isReading ? 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 => isReading ? t.IsReading : true).OrderBy(t => t.CreateTime).ThenBy(t => t.FileName)))
.ForMember(d => d.CodeView, u => u.MapFrom(s => s.StudyCode)); .ForMember(d => d.CodeView, u => u.MapFrom(s => s.StudyCode));
Guid? visiTaskId = null; Guid? visiTaskId = null;
CreateMap<NoneDicomStudy, TaskDicomStudyView>() CreateMap<NoneDicomStudy, TaskDicomStudyView>()
.ForMember(d => d.NoneDicomStudyFileList, u => u.MapFrom(s => isFilterZip ? .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).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).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)); .ForMember(d => d.CodeView, u => u.MapFrom(s => s.StudyCode));
} }

View File

@ -138,7 +138,7 @@ namespace IRaCIS.Core.Application.Service
noneDicomStudyQueryable = _noneDicomStudyRepository.Where(t => t.IsReading) noneDicomStudyQueryable = _noneDicomStudyRepository.Where(t => t.IsReading)
.Where(t => visitIds.Contains(t.SubjectVisitId) && t.NoneDicomFileList.Any(t => !t.FileType.Contains(StaticData.FileType.Zip))) .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)) .WhereIf(taskinfo.IsImageFilter == true, t => taskinfo.CriterionModalitys.Contains(t.Modality))
.ProjectTo<NoneDicomStudyView>(_mapper.ConfigurationProvider, new { isFilterZip = true, isFilterReading = true }); .ProjectTo<NoneDicomStudyView>(_mapper.ConfigurationProvider, new { isFilterZip = true, isReading = true });
if (inDto.VisistTaskId != null && _noneDicomStudyFileSystem.Any(t => t.VisitTaskId == inDto.VisistTaskId)) 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 => t.TaskNoneDicomFileList.Any(t => t.VisitTaskId == inDto.VisistTaskId))
.Where(t => taskinfo.IsImageFilter ? ("|" + taskinfo.CriterionModalitys + "|").Contains("|" + t.Modality + "|") : true) .Where(t => taskinfo.IsImageFilter ? ("|" + taskinfo.CriterionModalitys + "|").Contains("|" + t.Modality + "|") : true)
.Where(t => visitIds.Contains(t.SubjectVisitId)) .Where(t => visitIds.Contains(t.SubjectVisitId))
.ProjectTo<TaskDicomStudyView>(_mapper.ConfigurationProvider, new { isFilterZip = true, isFilterReading = true, visiTaskId = inDto.VisistTaskId }); .ProjectTo<TaskDicomStudyView>(_mapper.ConfigurationProvider, new { isFilterZip = true, isReading = true, visiTaskId = inDto.VisistTaskId });
} }
List<NoneDicomStudyView> result = await noneDicomStudyQueryable.OrderBy(x => x.ImageDate).ThenBy(x => x.CreateTime).ToListAsync(); List<NoneDicomStudyView> result = await noneDicomStudyQueryable.OrderBy(x => x.ImageDate).ThenBy(x => x.CreateTime).ToListAsync();