IRC_NewDev
he 2024-04-16 09:57:54 +08:00
parent e0613c1f2d
commit aef7fded18
1 changed files with 25 additions and 18 deletions

View File

@ -31,7 +31,8 @@ namespace IRaCIS.Core.Application.Image.QA
private readonly IReadingClinicalDataService _readingClinicalDataService; private readonly IReadingClinicalDataService _readingClinicalDataService;
private readonly IRepository<Subject> _subjectRepository; private readonly IRepository<Subject> _subjectRepository;
private readonly IRepository<ReadingClinicalData> _readingClinicalDataRepository; private readonly IRepository<ReadingClinicalData> _readingClinicalDataRepository;
private readonly IRepository<QCChallengeDialog> _qCChallengeDialogrepository; private readonly IRepository<ClinicalDataTrialSet> _clinicalDataTrialSetRepository;
private readonly IRepository<QCChallengeDialog> _qCChallengeDialogrepository;
private readonly IRepository<CheckChallengeDialog> _checkChallengeDialogrepository; private readonly IRepository<CheckChallengeDialog> _checkChallengeDialogrepository;
private readonly IRepository<Trial> _trialRepository; private readonly IRepository<Trial> _trialRepository;
private readonly IRepository<VisitTask> _visitTaskRepository; private readonly IRepository<VisitTask> _visitTaskRepository;
@ -47,7 +48,8 @@ namespace IRaCIS.Core.Application.Image.QA
IReadingClinicalDataService readingClinicalDataService, IReadingClinicalDataService readingClinicalDataService,
IRepository<Subject> subjectRepository, IRepository<Subject> subjectRepository,
IRepository<ReadingClinicalData> readingClinicalDataRepository, IRepository<ReadingClinicalData> readingClinicalDataRepository,
IRepository<QCChallengeDialog> qCChallengeDialogrepository, IRepository<ClinicalDataTrialSet> clinicalDataTrialSetRepository,
IRepository<QCChallengeDialog> qCChallengeDialogrepository,
IRepository<CheckChallengeDialog> checkChallengeDialogrepository, IRepository<CheckChallengeDialog> checkChallengeDialogrepository,
IVisitTaskHelpeService visitTaskHelpeService, IVisitTaskHelpeService visitTaskHelpeService,
IDistributedLockProvider distributedLockProvider IDistributedLockProvider distributedLockProvider
@ -60,7 +62,8 @@ namespace IRaCIS.Core.Application.Image.QA
this._readingClinicalDataService = readingClinicalDataService; this._readingClinicalDataService = readingClinicalDataService;
this._subjectRepository = subjectRepository; this._subjectRepository = subjectRepository;
this._readingClinicalDataRepository = readingClinicalDataRepository; this._readingClinicalDataRepository = readingClinicalDataRepository;
this._qCChallengeDialogrepository = qCChallengeDialogrepository; this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
this._qCChallengeDialogrepository = qCChallengeDialogrepository;
this._checkChallengeDialogrepository = checkChallengeDialogrepository; this._checkChallengeDialogrepository = checkChallengeDialogrepository;
_trialRepository = trialRepository; _trialRepository = trialRepository;
this._visitTaskRepository = visitTaskRepository; this._visitTaskRepository = visitTaskRepository;
@ -1231,27 +1234,31 @@ namespace IRaCIS.Core.Application.Image.QA
public async Task<IResponseOutput> CRCRequestToQC(CRCRequestToQCCommand cRCRequestToQCCommand) public async Task<IResponseOutput> CRCRequestToQC(CRCRequestToQCCommand cRCRequestToQCCommand)
{ {
List<string> modalitieTypess = new List<string>() { "PT、CT", "CT、PT", "PET-CT" }; List<string> modalitieTypess = new List<string>() { "PT、CT", "CT、PT", "PET-CT" };
// 验证临床数据 是否有Pet类型 // 验证临床数据 是否有Pet类型
#region 验证临床数据 是否有Pet类型 #region 验证临床数据 是否有Pet类型
foreach (var item in cRCRequestToQCCommand.SubjectVisitIds) if (await _clinicalDataTrialSetRepository.AnyAsync(x => x.TrialId == cRCRequestToQCCommand.TrialId && x.IsConfirm && x.ClinicalDataLevel == ClinicalLevel.Study))
{ {
foreach (var item in cRCRequestToQCCommand.SubjectVisitIds)
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,
});
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 #endregion