diff --git a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs index 2f280ab19..02bfebd07 100644 --- a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs @@ -6,6 +6,7 @@ using IRaCIS.Core.Application.Contracts.DTO; using IRaCIS.Core.Application.MassTransit.Command; using IRaCIS.Core.Application.ViewModel; using IRaCIS.Core.Domain.Share; +using NPOI.SS.Formula.Functions; using System.Linq; namespace IRaCIS.Core.Application.Service @@ -403,6 +404,8 @@ namespace IRaCIS.Core.Application.Service bool isIgnoreDelete = false; + bool isFilterReading = false; + string token = string.Empty; //一致性核查 @@ -539,11 +542,11 @@ namespace IRaCIS.Core.Application.Service .ForMember(d => d.MedicalNo, u => u.MapFrom(s => s.Subject.MedicalNo)) .ForMember(d => d.Sex, u => u.MapFrom(s => s.Subject.Sex)) .ForMember(d => d.Age, u => u.MapFrom(t => t.Subject.Age)) - .ForMember(d => d.IsHaveClinicalData, - u => u.MapFrom(t => t.PreviousHistoryList.Any() || - t.PreviousOtherList.Any() || - t.Subject.ClinicalFormList.Any(x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ReadingId == t.Id) || - t.ReadingClinicalDataList.Any(x => x.ClinicalDataTrialSet.UploadRole == Domain.Share.UploadRole.CRC && x.ReadingClinicalDataPDFList.Count > 0) || + .ForMember(d => d.IsHaveClinicalData, + u => u.MapFrom(t => t.PreviousHistoryList.Any() || + t.PreviousOtherList.Any() || + t.Subject.ClinicalFormList.Any(x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ReadingId == t.Id) || + t.ReadingClinicalDataList.Any(x => x.ClinicalDataTrialSet.UploadRole == Domain.Share.UploadRole.CRC && x.ReadingClinicalDataPDFList.Count > 0) || t.PreviousSurgeryList.Any())) .ForMember(d => d.IsHaveUploadFailed, u => u.MapFrom(t => t.StudyList.SelectMany(c => c.DicomStudyMonitorList).Any(h => h.FailedFileCount > 0))) @@ -722,7 +725,9 @@ namespace IRaCIS.Core.Application.Service .ForMember(d => d.FullFilePath, u => u.MapFrom(s => s.Path)); CreateMap() - .ForMember(d => d.NoneDicomStudyFileList, u => u.MapFrom(s => isFilterZip ? s.NoneDicomFileList.Where(t => !t.FileType.Contains(StaticData.FileType.Zip)).OrderBy(t => t.CreateTime).ThenBy(t => t.FileName) : s.NoneDicomFileList.OrderBy(t => t.CreateTime).ThenBy(t => t.FileName))) + .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))) .ForMember(d => d.CodeView, u => u.MapFrom(s => s.StudyCode)); Guid? visiTaskId = null; diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingNoDicomTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingNoDicomTaskService.cs index 3a045ea3a..d123a3529 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingNoDicomTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingNoDicomTaskService.cs @@ -53,10 +53,10 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task GetNoneDicomMarkListOutDto(GetNoneDicomMarkListInDtoDto inDto) { - var result= await _readingNoneDicomMarkRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId) - - .ProjectTo(_mapper.ConfigurationProvider) - .ToListAsync(); + var result = await _readingNoneDicomMarkRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId) + + .ProjectTo(_mapper.ConfigurationProvider) + .ToListAsync(); return new GetNoneDicomMarkListOutDto() { @@ -82,7 +82,7 @@ namespace IRaCIS.Core.Application.Service /// /// [HttpPost] - [TrialGlobalLimit( "AfterStopCannNotOpt" )] + [TrialGlobalLimit("AfterStopCannNotOpt")] public async Task SaveVisitTaskQuestions(SubmitVisitTaskQuestionsInDto inDto) { await VerifyTaskIsSign(inDto.VisitTaskId); @@ -135,35 +135,36 @@ namespace IRaCIS.Core.Application.Service IQueryable noneDicomStudyQueryable = default; - noneDicomStudyQueryable = _noneDicomStudyRepository + 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 }); + .ProjectTo(_mapper.ConfigurationProvider, new { isFilterZip = true, isFilterReading = true }); if (inDto.VisistTaskId != null && _noneDicomStudyFileSystem.Any(t => t.VisitTaskId == inDto.VisistTaskId)) { - noneDicomStudyQueryable = _noneDicomStudyRepository.Where(t => t.TaskNoneDicomFileList.Any(t => t.VisitTaskId == inDto.VisistTaskId)) + noneDicomStudyQueryable = _noneDicomStudyRepository.Where(t => t.IsReading) + .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, visiTaskId = inDto.VisistTaskId }); + .ProjectTo(_mapper.ConfigurationProvider, new { isFilterZip = true, isFilterReading = true, visiTaskId = inDto.VisistTaskId }); } - List result = await noneDicomStudyQueryable.OrderBy(x=>x.ImageDate).ThenBy(x=>x.CreateTime).ToListAsync(); + List result = await noneDicomStudyQueryable.OrderBy(x => x.ImageDate).ThenBy(x => x.CreateTime).ToListAsync(); - var nonoDicomStudyFileIds=await _readingNoneDicomMarkRepository.Where(x => x.VisitTaskId == inDto.VisistTaskId).ToListAsync(); - if (nonoDicomStudyFileIds.Count > 0&& taskinfo.ReadingTaskState== ReadingTaskState.HaveSigned) + var nonoDicomStudyFileIds = await _readingNoneDicomMarkRepository.Where(x => x.VisitTaskId == inDto.VisistTaskId).ToListAsync(); + if (nonoDicomStudyFileIds.Count > 0 && taskinfo.ReadingTaskState == ReadingTaskState.HaveSigned) { var studyId = nonoDicomStudyFileIds.Select(x => x.StudyId).FirstOrDefault(); - var noneDicomids= nonoDicomStudyFileIds.Select(x=>x.NoneDicomFileId).ToList(); - var noneDicomStudyViewMark =new NoneDicomStudyView() { Id = Guid.NewGuid() }; + var noneDicomids = nonoDicomStudyFileIds.Select(x => x.NoneDicomFileId).ToList(); + var noneDicomStudyViewMark = new NoneDicomStudyView() { Id = Guid.NewGuid() }; noneDicomStudyViewMark.IsCriticalSequence = true; noneDicomStudyViewMark.NoneDicomStudyFileList = await _noneDicomStudyFileRepository.Where(x => noneDicomids.Contains(x.Id)).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); result.Insert(0, noneDicomStudyViewMark); } - + var trialInfo = await _trialRepository.Where(x => x.Id == inDto.TrialId).Select(x => new {