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 IRepository<Subject> _subjectRepository;
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<Trial> _trialRepository;
private readonly IRepository<VisitTask> _visitTaskRepository;
@ -47,7 +48,8 @@ namespace IRaCIS.Core.Application.Image.QA
IReadingClinicalDataService readingClinicalDataService,
IRepository<Subject> subjectRepository,
IRepository<ReadingClinicalData> readingClinicalDataRepository,
IRepository<QCChallengeDialog> qCChallengeDialogrepository,
IRepository<ClinicalDataTrialSet> clinicalDataTrialSetRepository,
IRepository<QCChallengeDialog> qCChallengeDialogrepository,
IRepository<CheckChallengeDialog> 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<IResponseOutput> CRCRequestToQC(CRCRequestToQCCommand cRCRequestToQCCommand)
{
List<string> modalitieTypess = new List<string>() { "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