diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index 83f1c4c64..8fb121a92 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -1963,8 +1963,31 @@ namespace IRaCIS.Core.Application.Image.QA throw new BusinessValidationFailedException(_localizer["QCOperation_InvalidCompleteResend"]); } + List modalitieTypess = new List() { "PT、CT", "CT、PT", "PET-CT" }; + // 验证临床数据 是否有Pet类型 + #region 验证临床数据 是否有Pet类型 + if (await _clinicalDataTrialSetRepository.AnyAsync(x => x.TrialId == cRCReuploadFinishedCommand.TrialId && x.IsConfirm && x.ClinicalDataLevel == ClinicalLevel.Study)) + { + var item = qcChallenge.SubjectVisitId; + if (await _dicomStudyRepository.AnyAsync(x => x.SubjectVisitId == item && modalitieTypess.Contains(x.Modalities))) + { + var visit = await _subjectVisitRepository.Where(x => x.Id == item).FirstNotNullAsync(); + var clinicalData = await this._readingClinicalDataService.GetStudyClinicalData(new Service.Reading.Dto.GetStudyClinicalDataInDto() + { + SubjectVisitId = item, + }); - var subjectVisitId = qcChallenge.SubjectVisitId; + if (!clinicalData.Any(x => x.ClinicalDataLevel == ClinicalLevel.Study && x.ClinicalUploadType == ClinicalUploadType.PDF && x.PDFFileList.Count() > 0)) + { + throw new BusinessValidationFailedException(_localizer["QCOperation_NeedStudyClinical"]); + } + } + } + + #endregion + + + var subjectVisitId = qcChallenge.SubjectVisitId; if (await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).SelectMany(t => t.StudyList).CountAsync() == 0 && await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).SelectMany(t => t.NoneDicomStudyList).SelectMany(u => u.NoneDicomFileList).CountAsync() == 0)