IRC_NewDev
he 2024-04-11 16:28:23 +08:00
parent b39d8dd546
commit 60d462e5f9
2 changed files with 33 additions and 12 deletions

View File

@ -12337,6 +12337,14 @@
<param name="trialConfig"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.TrialConfigService.ConfigTrialProcessInfoVerification(IRaCIS.Core.Application.Contracts.TrialProcessConfig)">
<summary>
配置流程验证
</summary>
<param name="trialConfig"></param>
<returns></returns>
<exception cref="T:IRaCIS.Core.Infrastructure.BusinessValidationFailedException"></exception>
</member>
<member name="M:IRaCIS.Core.Application.TrialConfigService.ConfigTrialProcessInfo(IRaCIS.Core.Application.Contracts.TrialProcessConfig)">
<summary>
配置流程

View File

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