From ca0a29b0335a93fca08c6ef543afdf44aee73840 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 13 Jul 2023 14:06:56 +0800 Subject: [PATCH] =?UTF-8?q?S-60=20VisitHelper=20=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E4=B8=B4=E5=BA=8A=E7=8A=B6=E6=80=81=E7=BB=B4=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Allocation/VisitTaskHelpeService.cs | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs index 75fdb7488..0a151eda4 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs @@ -459,6 +459,13 @@ namespace IRaCIS.Core.Application.Service var haveSignedCount = _readingClinicalDataRepository .Where(t => t.TrialId == trialId && t.IsSign && t.ReadingClinicalDataState == ReadingClinicalDataStatus.HaveSigned && t.ReadingId == readingId && t.ClinicalDataTrialSet.UploadRole == UploadRole.PM).Count(); + + var readModule = _readModuleRepository.Where(t => t.Id == readingId).FirstOrDefault(); + //CRC 阅片期自定义结构化录入是否签名 + bool crcReadModuleSign = true; + + + //访视 if (readingCategory == ReadingCategory.Visit) { @@ -478,16 +485,37 @@ namespace IRaCIS.Core.Application.Service { } + //阅片期 else if (readingCategory == ReadingCategory.Global) { needSignCount = trialClinicalDataSetList.Where(t => t.TrialClinicalDataSetCriteriaList.Any(c => c.TrialReadingCriterionId == trialReadingCriterionId) && t.ClinicalDataLevel == ClinicalLevel.ImageRead && t.UploadRole == UploadRole.PM).Count(); + if (readModule != null) + { + // 不存在需要CRC上传的临床数据 或者 PM已确认 + crcReadModuleSign = + !trialClinicalDataSetList.Any(x => + x.UploadRole == UploadRole.CRC + && x.ClinicalDataLevel == ClinicalLevel.ImageRead + && x.ClinicalUploadType == ClinicalUploadType.Structuring + && x.TrialClinicalDataSetCriteriaList.Any(c => c.TrialReadingCriterionId == trialReadingCriterionId)) || readModule.IsPMConfirm; + } } // 肿瘤学 else if (readingCategory == ReadingCategory.Oncology) { - return trialClinicalDataSetList.Any(t => t.TrialClinicalDataSetCriteriaList.Any(c => c.TrialReadingCriterionId == trialReadingCriterionId) && t.ClinicalDataLevel == ClinicalLevel.OncologyRead); + needSignCount= trialClinicalDataSetList.Where(t => t.TrialClinicalDataSetCriteriaList.Any(c => c.TrialReadingCriterionId == trialReadingCriterionId) && t.ClinicalDataLevel == ClinicalLevel.OncologyRead && t.UploadRole == UploadRole.PM).Count(); + if (readModule != null) + { + // 不存在需要CRC上传的临床数据 或者 PM已确认 + crcReadModuleSign = + !trialClinicalDataSetList.Any(x => + x.UploadRole == UploadRole.CRC + && x.ClinicalDataLevel == ClinicalLevel.OncologyRead + && x.ClinicalUploadType == ClinicalUploadType.Structuring + && x.TrialClinicalDataSetCriteriaList.Any(c => c.TrialReadingCriterionId == trialReadingCriterionId)) || readModule.IsPMConfirm; + } } else { @@ -495,7 +523,7 @@ namespace IRaCIS.Core.Application.Service } //可能仅仅CRC 基线 没有PM - if (needSignCount == haveSignedCount /*&& needSignCount != 0*/) + if (needSignCount == haveSignedCount && crcReadModuleSign ) { isClinicalDataSign = true;