From 60d462e5f9bb721bb5440f3e7abb40163d99147f Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Thu, 11 Apr 2024 16:28:23 +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 --- .../IRaCIS.Core.Application.xml | 8 ++++ .../TrialSiteUser/TrialConfigService.cs | 37 +++++++++++++------ 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 1ff95b7e4..532cdd2da 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -12337,6 +12337,14 @@ + + + 配置流程验证 + + + + + 配置流程 diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index 01c2b297d..f3b32bf03 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -949,12 +949,34 @@ namespace IRaCIS.Core.Application return ResponseOutput.Ok(await _repository.SaveChangesAsync()); } + /// - /// 配置流程 + /// 配置流程验证 /// /// /// - [HttpPut] + /// + [HttpPost] + public async Task ConfigTrialProcessInfoVerification(TrialProcessConfig trialConfig) + { + var clinicalDataTrialSetDataList = await _clinicalDataTrialSetRepository.Where(x => trialConfig.ClinicalDataTrialSetIds.Contains(x.Id)).Include(x => x.TrialClinicalDataSetCriteriaList).ToListAsync(); + foreach (var item in clinicalDataTrialSetDataList) + { + var clinicalids = item.TrialClinicalDataSetCriteriaList.Select(x => x.TrialReadingCriterionId).ToList(); + if (clinicalids.Intersect(trialConfig.TrialCriterionIds).ToList().Count() == 0) + { + throw new BusinessValidationFailedException(_localizer["TrialConfig_NoCriteriaClinicalData"]); + } + + } + } + + /// + /// 配置流程 + /// + /// + /// + [HttpPut] //[Authorize(Policy = IRaCISPolicy.PM_APM)] [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "BeforeOngoingCantOpt", "AfterStopCannNotOpt" })] public async Task ConfigTrialProcessInfo(TrialProcessConfig trialConfig) @@ -965,16 +987,7 @@ namespace IRaCIS.Core.Application return ResponseOutput.NotOk(_localizer["TrialConfig_ProjectNotInitialized"]); } - var clinicalDataTrialSetDataList = await _clinicalDataTrialSetRepository.Where(x => trialConfig.ClinicalDataTrialSetIds.Contains(x.Id)).Include(x => x.TrialClinicalDataSetCriteriaList).ToListAsync(); - foreach (var item in clinicalDataTrialSetDataList) - { - var clinicalids = item.TrialClinicalDataSetCriteriaList.Select(x => x.TrialReadingCriterionId).ToList(); - if (clinicalids.Intersect(trialConfig.TrialCriterionIds).ToList().Count() == 0) - { - throw new BusinessValidationFailedException(_localizer["TrialConfig_NoCriteriaClinicalData"]); - } - - } + var trialInfo = await _trialRepository.Where(t => t.Id == trialConfig.TrialId, true).Include(t => t.TrialDicList.Where(u => u.KeyName == StaticData.Criterion)).FirstOrDefaultAsync(); if (trialInfo == null) return Null404NotFound(trialInfo);