From 1094c8ce2abbc55c7fc27e218492ef5581375494 Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Tue, 18 Aug 2026 13:53:27 +0800 Subject: [PATCH] =?UTF-8?q?=E9=98=85=E7=89=87=E4=BF=A1=E6=81=AF=E7=AD=BE?= =?UTF-8?q?=E5=90=8D=E9=AA=8C=E8=AF=81=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TrialSiteUser/TrialConfigService.cs | 45 ++++++++++++++++--- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index aab463e19..262d25d62 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -27,15 +27,16 @@ namespace IRaCIS.Core.Application IRepository _trialQCQuestionRepository, IRepository _readingQuestionCriterionTrialRepository, IRepository _readingQuestionTrialRepository, + IRepository _readingQuestionVisitJudgeRuleRepository, IRepository _trialCriterionDictionaryCode, IRepository _systemCriterionDictionaryCode, IRepository _readingQuestionCriterionSystemRepository, IRepository _clinicalDataTrialSetRepository, IRepository _readingCriterionPageRepository, - IRepository _systemCriterionKeyFileRepository, - IOSSService _oSSService, - - IRepository _trialCriterionKeyFileRepository, + IRepository _systemCriterionKeyFileRepository, + IOSSService _oSSService, + IRepository _visitStageRepository, + IRepository _trialCriterionKeyFileRepository, IOrganInfoService _iOrganInfoService, IRepository _trialBodyPartRepository, IRepository _readingCriterionDictionaryRepository, @@ -48,7 +49,7 @@ namespace IRaCIS.Core.Application IRepository _systemBasicDataRepository, IRepository _subjectVisitRepository, IRepository _enrollRepository, - IRepository _qcQuestionAnswerRepository, + IRepository _qcQuestionAnswerRepository, IRepository _trialStateChangeRepository, IRepository _readingTableQuestionTrialRepository, IRepository _dicomAERepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IFusionCache _fusionCache) : BaseService, ITrialConfigService @@ -105,6 +106,40 @@ namespace IRaCIS.Core.Application throw new BusinessValidationFailedException(_localizer["TrialConfig_JudgeTaskFail"]); } + if (trialCriterion.JudgeRuleEnum == JudgeRule.Difference) + { + var visitStageList = await _visitStageRepository.Where(x => x.TrialId == trialCriterion.TrialId).ToListAsync(); + + visitStageList.Add(new VisitStage() + { + VisitName = "Out of Plan", + VisitNum=-1, + }); + + + + var judgeCount = await _readingQuestionTrialRepository.CountAsync(x => x.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId && x.IsJudgeQuestion); + + var ruleList = await _readingQuestionVisitJudgeRuleRepository.Where(x => x.ReadingQuestionTrial.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId).ToListAsync(); + + var errorList = new List(); + + visitStageList.ForEach(x => + { + if (judgeCount != ruleList.Count(y => y.VisitNum == x.VisitNum)) + { + errorList.Add(x.VisitName); + } + + }); + + if (errorList.Count() > 0) + { + throw new BusinessValidationFailedException(_localizer["TrialConfig_VisitjudgeDeficiency", string.Join(",", errorList)]); + } + + + } return ResponseOutput.Ok(true); }