From 9cb6fb2a92354266a2ebbe904a809dc56e3436be Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Thu, 5 Jun 2025 14:52:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingQuestionService.cs | 20 ++++++++++++++++++ .../TrialSiteUser/TrialConfigService.cs | 21 +++++++++++++++++++ 2 files changed, 41 insertions(+) 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)