From 7a03474d07dc34a2a712027644b269ec38a35954 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 17 Jul 2023 10:59:52 +0800 Subject: [PATCH 1/6] S-67 --- .../Reading/ReadingPeriod/ReadModuleService.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs index e5dff07f2..959e29a84 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs @@ -25,6 +25,7 @@ namespace IRaCIS.Application.Services private readonly IRepository _trialRepository; private readonly IVisitTaskHelpeService _visitTaskHelpeService; private readonly IRepository _visitTaskRepository; + private readonly IRepository _readModuleCriterionFromRepository; private readonly IRepository _clinicalDataTrialSetRepository; private readonly IRepository _readModuleViewRepository; private readonly IRepository _readingQuestionCriterionTrialRepository; @@ -41,6 +42,7 @@ namespace IRaCIS.Application.Services IRepository trialRepository, IVisitTaskHelpeService visitTaskHelpeService, IRepository visitTaskRepository, + IRepository readModuleCriterionFromRepository, IRepository clinicalDataTrialSetRepository, IRepository readModuleViewRepository, IRepository readingQuestionCriterionTrialRepository, @@ -57,6 +59,7 @@ namespace IRaCIS.Application.Services this._trialRepository = trialRepository; this._visitTaskHelpeService = visitTaskHelpeService; this._visitTaskRepository = visitTaskRepository; + this._readModuleCriterionFromRepository = readModuleCriterionFromRepository; this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository; this._readModuleViewRepository = readModuleViewRepository; this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository; @@ -480,6 +483,14 @@ namespace IRaCIS.Application.Services return ResponseOutput.NotOk(_localizer["ReadModule_SignedDataCannotDelete"]); } + await _readModuleCriterionFromRepository.BatchDeleteNoTrackingAsync(x => x.ReadModuleId == readModuleId); + + if (await _readModuleCriterionFromRepository.AnyAsync(x => x.ReadModuleId == readModuleId)) + { + //---CRC已经确认临床数据 不允许删除 + return ResponseOutput.NotOk(_localizer["ReadModule_CRCConfirmClinicalData"]); + } + //增加标准 if (readModule.ModuleType==ModuleTypeEnum.Global&&(await _readModuleRepository.AnyAsync(x=>x.ModuleType==ModuleTypeEnum.Oncology&&x.SubjectVisitId== readModule.SubjectVisitId && x.TrialReadingCriterionId==readModule.TrialReadingCriterionId))) { @@ -499,6 +510,7 @@ namespace IRaCIS.Application.Services TaskState = TaskState.Adbandon }); + await _readModuleRepository.UpdatePartialFromQueryAsync(t => t.Id == readModuleId, x => new ReadModule() { From edaab02d0ba653b5e60858cc696f04f8aa2ee329 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 17 Jul 2023 14:57:04 +0800 Subject: [PATCH 2/6] S-68 --- .../Service/Reading/ClinicalData/ClinicalAnswerService.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index 261ca8a12..dcb351d59 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -541,6 +541,7 @@ namespace IRaCIS.Core.Application.Service var formList = await _clinicalFormRepository.Where(x => x.TrialId == inDto.TrialId) .Where(x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC) + .WhereIf(inDto.TrialReadingCriterionId!=null, x=>x.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(y=>y.TrialReadingCriterionId== inDto.TrialReadingCriterionId)) .Where(x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.ImageRead || x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.OncologyRead) .Include(x=>x.ClinicalDataTrialSet) .Select(x => new CRCClinicalForm From 6a53aaf010e5bb10269d82e4ef4d895fbca40611 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 17 Jul 2023 15:59:48 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=97=A0=E5=BA=8F=E9=98=85=E7=89=87?= =?UTF-8?q?=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingImageTaskService.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 18cfbca90..ba791cea0 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -2332,9 +2332,22 @@ namespace IRaCIS.Application.Services } else { - task = await _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.TrialReadingCriterionId == trialReadingCriterionId && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.DoctorUserId == _userInfo.Id + var query = _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.TrialReadingCriterionId == trialReadingCriterionId && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.DoctorUserId == _userInfo.Id && x.TrialReadingCriterionId == trialReadingCriterionId - && x.TaskState == TaskState.Effect).Select(x => new GetReadingTaskDto() + && x.TaskState == TaskState.Effect); + var count = await query.CountAsync(); + if (count == 0) + { + throw new BusinessValidationFailedException(_localizer["ReadingImage_TaskFinish"]); + } + Random random = new Random(); + var skipcount = 0; + if (count >= 2) + { + skipcount = random.Next(0, count - 1); + } + task = await query + .Select(x => new GetReadingTaskDto() { VisitTaskId = x.Id, ArmEnum = x.ArmEnum, @@ -2345,7 +2358,7 @@ namespace IRaCIS.Application.Services SubjectId = x.SubjectId, SubjectCode = x.Subject.Code, TrialReadingCriterionId = x.TrialReadingCriterionId, - }).FirstOrDefaultAsync(); + }).Skip(skipcount).FirstOrDefaultAsync(); } From b7d50de7d12c3364554b683cefb101a700f48dcf Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 17 Jul 2023 16:36:03 +0800 Subject: [PATCH 4/6] S-69 --- IRaCIS.Core.Application/Service/QC/_MapConfig.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs index b220da1c1..4208338e9 100644 --- a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs @@ -368,7 +368,9 @@ namespace IRaCIS.Core.Application.Service .ForMember(d => d.PreliminaryAuditUserName, u => u.MapFrom(s => s.PreliminaryAuditUser.UserName)) .ForMember(d => d.ReviewAuditUserName, u => u.MapFrom(s => s.ReviewAuditUser.UserName)) .ForMember(d => d.IsHaveClinicalData, u => u.MapFrom(t => t.IsBaseLine ? t.PreviousHistoryList.Any() || t.PreviousOtherList.Any() - || t.ReadingClinicalDataList.Any(x => x.ClinicalDataTrialSet.UploadRole == Domain.Share.UploadRole.CRC && x.ReadingClinicalDataPDFList.Count() > 0) + || t.ReadingClinicalDataList.Any(x => x.ClinicalDataTrialSet.UploadRole == Domain.Share.UploadRole.CRC + || t.Subject.ClinicalFormList.Any(x=>x.ClinicalDataTrialSet.) + && x.ReadingClinicalDataPDFList.Count() > 0) || t.PreviousSurgeryList.Any() : false)) .ForMember(d => d.DicomStudyCount, u => u.MapFrom(t => t.StudyList.Count())) .ForMember(d => d.NoneDicomStudyCount, u => u.MapFrom(t => t.NoneDicomStudyList.Count(t => t.NoneDicomFileList.Any()))); @@ -385,9 +387,10 @@ 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.IsBaseLine ? t.PreviousHistoryList.Any() || t.PreviousOtherList.Any() + .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() : false)) + || t.PreviousSurgeryList.Any())) //.ForMember(d => d.VisitName, u => u.MapFrom(t =>t.InPlan? t.VisitStage.VisitName : t.VisitName)) //.ForMember(d => d.VisitNum, u => u.MapFrom(t => t.InPlan ? t.VisitStage.VisitNum : t.VisitNum)) From 644d94ed2279c434eeedcc603d175769a823ece0 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 17 Jul 2023 16:52:23 +0800 Subject: [PATCH 5/6] S-70 --- IRaCIS.Core.Application/Service/QC/_MapConfig.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs index 4208338e9..5a2f5022c 100644 --- a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs @@ -367,11 +367,10 @@ namespace IRaCIS.Core.Application.Service .ForMember(d => d.CurrentActionUserName, u => u.MapFrom(s => s.CurrentActionUser.UserName)) .ForMember(d => d.PreliminaryAuditUserName, u => u.MapFrom(s => s.PreliminaryAuditUser.UserName)) .ForMember(d => d.ReviewAuditUserName, u => u.MapFrom(s => s.ReviewAuditUser.UserName)) - .ForMember(d => d.IsHaveClinicalData, u => u.MapFrom(t => t.IsBaseLine ? t.PreviousHistoryList.Any() || t.PreviousOtherList.Any() - || t.ReadingClinicalDataList.Any(x => x.ClinicalDataTrialSet.UploadRole == Domain.Share.UploadRole.CRC - || t.Subject.ClinicalFormList.Any(x=>x.ClinicalDataTrialSet.) - && x.ReadingClinicalDataPDFList.Count() > 0) - || t.PreviousSurgeryList.Any() : false)) + .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.DicomStudyCount, u => u.MapFrom(t => t.StudyList.Count())) .ForMember(d => d.NoneDicomStudyCount, u => u.MapFrom(t => t.NoneDicomStudyList.Count(t => t.NoneDicomFileList.Any()))); From ec808c68f5ee161bd9c8b8be9d924ee0d018cc6f Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 17 Jul 2023 17:42:39 +0800 Subject: [PATCH 6/6] S-71 --- .../ReadingClinicalDataService.cs | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs index 9a58f9658..d02567eb6 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs @@ -688,7 +688,8 @@ namespace IRaCIS.Application.Services FileName = y.FileName, Path = y.Path, CreateTime = y.CreateTime, - }).ToList() + }).ToList(), + }); var result = new List(); @@ -808,21 +809,20 @@ namespace IRaCIS.Application.Services } } + var previousHistoryList = await _previousHistoryRepository.Where(x => x.SubjectVisitId == inDto.ReadingId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + var previousOtherList = await _previousOtherRepository.Where(x => x.SubjectVisitId == inDto.ReadingId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + var previousSurgeryList = await _previousSurgeryRepository.Where(x => x.SubjectVisitId == inDto.ReadingId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); - //result = result.Where(x => !(x.ClinicalUploadType == ClinicalUploadType.PDF && x.FileList.Count() == 0)).ToList(); - //// 需要排除表格为空的数据 + foreach (var item in result) + { + item.ClinicalTableData = new ClinicalDataTable() + { + PreviousHistoryList = previousHistoryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(), + PreviousOtherList = previousOtherList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(), + PreviousSurgeryList = previousSurgeryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(), + }; - - //var readingIds = result.Select(x => x.ReadingId).ToList(); - - //var tablecount = (await _previousHistoryRepository.Where(x => readingIds.Contains(x.SubjectVisitId)).CountAsync()) + - // (await _previousOtherRepository.Where(x => readingIds.Contains(x.SubjectVisitId)).CountAsync()) + - // (await _previousSurgeryRepository.Where(x => readingIds.Contains(x.SubjectVisitId)).CountAsync()); - - //if (tablecount == 0) - //{ - // result = result.Where(x => x.ClinicalUploadType != ClinicalUploadType.Table).ToList(); - //} + } return result; }