diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index 16e29bac4..83f1c4c64 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -31,7 +31,8 @@ namespace IRaCIS.Core.Application.Image.QA private readonly IReadingClinicalDataService _readingClinicalDataService; private readonly IRepository _subjectRepository; private readonly IRepository _readingClinicalDataRepository; - private readonly IRepository _qCChallengeDialogrepository; + private readonly IRepository _clinicalDataTrialSetRepository; + private readonly IRepository _qCChallengeDialogrepository; private readonly IRepository _checkChallengeDialogrepository; private readonly IRepository _trialRepository; private readonly IRepository _visitTaskRepository; @@ -47,7 +48,8 @@ namespace IRaCIS.Core.Application.Image.QA IReadingClinicalDataService readingClinicalDataService, IRepository subjectRepository, IRepository readingClinicalDataRepository, - IRepository qCChallengeDialogrepository, + IRepository clinicalDataTrialSetRepository, + IRepository qCChallengeDialogrepository, IRepository checkChallengeDialogrepository, IVisitTaskHelpeService visitTaskHelpeService, IDistributedLockProvider distributedLockProvider @@ -60,7 +62,8 @@ namespace IRaCIS.Core.Application.Image.QA this._readingClinicalDataService = readingClinicalDataService; this._subjectRepository = subjectRepository; this._readingClinicalDataRepository = readingClinicalDataRepository; - this._qCChallengeDialogrepository = qCChallengeDialogrepository; + this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository; + this._qCChallengeDialogrepository = qCChallengeDialogrepository; this._checkChallengeDialogrepository = checkChallengeDialogrepository; _trialRepository = trialRepository; this._visitTaskRepository = visitTaskRepository; @@ -1231,27 +1234,31 @@ namespace IRaCIS.Core.Application.Image.QA public async Task CRCRequestToQC(CRCRequestToQCCommand cRCRequestToQCCommand) { List modalitieTypess = new List() { "PT、CT", "CT、PT", "PET-CT" }; - // 验证临床数据 是否有Pet类型 - #region 验证临床数据 是否有Pet类型 - foreach (var item in cRCRequestToQCCommand.SubjectVisitIds) - { - - if (await _dicomStudyRepository.AnyAsync(x => x.SubjectVisitId == item && modalitieTypess.Contains(x.Modalities))) + // 验证临床数据 是否有Pet类型 + #region 验证临床数据 是否有Pet类型 + if (await _clinicalDataTrialSetRepository.AnyAsync(x => x.TrialId == cRCRequestToQCCommand.TrialId && x.IsConfirm && x.ClinicalDataLevel == ClinicalLevel.Study)) + { + foreach (var item in cRCRequestToQCCommand.SubjectVisitIds) { - var visit = await _subjectVisitRepository.Where(x => x.Id == item).FirstNotNullAsync(); - var clinicalData = await this._readingClinicalDataService.GetStudyClinicalData(new Service.Reading.Dto.GetStudyClinicalDataInDto() - { - SubjectVisitId = item, - }); - if (!clinicalData.Any(x => x.ClinicalDataLevel == ClinicalLevel.Study && x.ClinicalUploadType == ClinicalUploadType.PDF && x.PDFFileList.Count() > 0)) + if (await _dicomStudyRepository.AnyAsync(x => x.SubjectVisitId == item && modalitieTypess.Contains(x.Modalities))) { - throw new BusinessValidationFailedException(_localizer["QCOperation_NeedStudyClinical"]); + var visit = await _subjectVisitRepository.Where(x => x.Id == item).FirstNotNullAsync(); + var clinicalData = await this._readingClinicalDataService.GetStudyClinicalData(new Service.Reading.Dto.GetStudyClinicalDataInDto() + { + SubjectVisitId = item, + }); + + if (!clinicalData.Any(x => x.ClinicalDataLevel == ClinicalLevel.Study && x.ClinicalUploadType == ClinicalUploadType.PDF && x.PDFFileList.Count() > 0)) + { + throw new BusinessValidationFailedException(_localizer["QCOperation_NeedStudyClinical"]); + } } + + } - - } + #endregion