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);