diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs index a0227ad61..3f3baeaa0 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs @@ -1460,6 +1460,26 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task VerifyeCriterionNeedSynchronize(VerifyeCriterionNeedSynchronizeInDto inDto) { + + + #region 验证阅片工具配置 + var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync(); + + var toolList = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId).Where(x => x.ImageTool != string.Empty).Select(x => x.ImageTool).ToListAsync(); + + var tabletoolList = await _readingTableQuestionTrialRepository.Where(x => x.ReadingQuestionTrial.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId).Where(x => x.ImageTool != string.Empty).Select(x => x.ImageTool).ToListAsync(); + + toolList.AddRange(tabletoolList); + + toolList = toolList.Distinct().ToList(); + + if (tabletoolList.Except(trialCriterion.ReadingToolList).Count() > 0) + { + //---问题的阅片工具不在标准配置的阅片工具列表中 + throw new BusinessValidationFailedException(_localizer["TrialConfig_TableToolNotInStdTool"]); + } + #endregion + var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstOrDefaultAsync(); if (trialCriterion == null) { diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index 8607f5c52..27f6ec35d 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -555,6 +555,27 @@ namespace IRaCIS.Core.Application [TrialGlobalLimit("AfterStopCannNotOpt")] public async Task SetCriterionReadingInfo(SetCriterionReadingInfoInDto inDto) { + + #region 验证阅片工具配置 + var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync(); + + var toolList = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId).Where(x => x.ImageTool != string.Empty).Select(x => x.ImageTool).ToListAsync(); + + var tabletoolList = await _readingTableQuestionTrialRepository.Where(x => x.ReadingQuestionTrial.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId).Where(x => x.ImageTool != string.Empty).Select(x => x.ImageTool).ToListAsync(); + + toolList.AddRange(tabletoolList); + + toolList = toolList.Distinct().ToList(); + + if (tabletoolList.Except(trialCriterion.ReadingToolList).Count() > 0) + { + //---问题的阅片工具不在标准配置的阅片工具列表中 + throw new BusinessValidationFailedException(_localizer["TrialConfig_TableToolNotInStdTool"]); + } + #endregion + + + ArbitrationRule arbitration = ArbitrationRule.NA; if (inDto.IsArbitrationReading)