From 8d02de0b259a280376c7db6b8e1ffae68db05326 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 24 Nov 2022 17:43:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingImageTaskService.cs | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 0000f8de..4be81c82 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -1165,13 +1165,32 @@ namespace IRaCIS.Application.Services await _readingCalculateService.VerifyVisitTaskQuestions(inDto); - if ((await _readingClinicalDataService.GetClinicalDataList(new GetReadingOrTaskClinicalDataListInDto() + var clinicalDataList = await _readingClinicalDataService.GetClinicalDataList(new GetReadingOrTaskClinicalDataListInDto() { SubjectId = taskInfo.SubjectId, TrialId = taskInfo.TrialId, VisitTaskId = taskInfo.Id, - })).Count() > 0 && !taskInfo.IsReadClinicalData) + }); + + var isBaseLine = false; + if (taskInfo.SourceSubjectVisitId != null) + { + isBaseLine = await _subjectVisitRepository.Where(x => x.Id == taskInfo.SourceSubjectVisitId).Select(x => x.IsBaseLine).FirstOrDefaultAsync(); + } + + var isNeedReadClinicalData = false; + + if (isBaseLine) + { + isNeedReadClinicalData = clinicalDataList.Count() > 0; + } + else + { + isNeedReadClinicalData = clinicalDataList.Where(x => x.ClinicalDataLevel != ClinicalLevel.Subject).Count() > 0; + } + + if (isNeedReadClinicalData && !taskInfo.IsReadClinicalData) { throw new BusinessValidationFailedException($"临床数据未阅读!"); }