This commit is contained in:
he
2024-04-11 16:28:23 +08:00
parent b39d8dd546
commit 60d462e5f9
2 changed files with 33 additions and 12 deletions
@@ -949,12 +949,34 @@ namespace IRaCIS.Core.Application
return ResponseOutput.Ok(await _repository.SaveChangesAsync());
}
/// <summary>
/// 配置流程
/// 配置流程验证
/// </summary>
/// <param name="trialConfig"></param>
/// <returns></returns>
[HttpPut]
/// <exception cref="BusinessValidationFailedException"></exception>
[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"]);
}
}
}
/// <summary>
/// 配置流程
/// </summary>
/// <param name="trialConfig"></param>
/// <returns></returns>
[HttpPut]
//[Authorize(Policy = IRaCISPolicy.PM_APM)]
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "BeforeOngoingCantOpt", "AfterStopCannNotOpt" })]
public async Task<IResponseOutput> 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);