diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index debfad6b2..79b455e5d 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -4805,6 +4805,14 @@ + + + 阅片信息签名验证接口 + + + + + 阅片信息签名 diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index 7784c1012..10a7c7cf3 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -46,6 +46,30 @@ namespace IRaCIS.Core.Application } + /// + /// 阅片信息签名验证接口 + /// + /// + /// + /// + [HttpPost] + public async Task TrialReadingInfoSignVerify(TrialReadingInfoSignInDto inDto) + { + var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == inDto.TrialId && x.IsConfirm).FirstOrDefaultAsync(); + var existsJudge = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == trialCriterion.Id && x.IsJudgeQuestion && x.JudgeType == JudgeTypeEnum.None) + .WhereIf(trialCriterion.FormType == FormType.SinglePage, x => x.ReadingCriterionPageId == null) + .WhereIf(trialCriterion.FormType == FormType.MultiplePage, x => x.ReadingCriterionPageId != null) + .AnyAsync(); + + if (existsJudge) + { + throw new BusinessValidationFailedException("有裁判问题未配置产生裁判阅片任务的条件,操作失败!"); + } + + return ResponseOutput.Ok(true); + } + + /// /// 阅片信息签名 /// @@ -524,8 +548,20 @@ namespace IRaCIS.Core.Application trialConfig.IsReadingShowSubjectInfo = false; trialConfig.ArbitrationRule = ArbitrationRule.Visit; } + + + _mapper.Map(trialConfig, trialInfo); + if (trialInfo.IsGlobalReading && (trialInfo.IsArbitrationReading??false)) + { + trialInfo.ArbitrationRule = ArbitrationRule.Reading; + } + + if (!trialInfo.IsGlobalReading && (trialInfo.IsArbitrationReading ?? false)) + { + trialInfo.ArbitrationRule = ArbitrationRule.Visit; + } trialInfo.UpdateTime = DateTime.Now; // 修改临床数据 diff --git a/IRaCIS.Core.Domain/Trial/Trial.cs b/IRaCIS.Core.Domain/Trial/Trial.cs index cfcc769c9..1dffad4fe 100644 --- a/IRaCIS.Core.Domain/Trial/Trial.cs +++ b/IRaCIS.Core.Domain/Trial/Trial.cs @@ -232,7 +232,7 @@ namespace IRaCIS.Core.Domain.Models /// /// ٲù /// - public ArbitrationRule ArbitrationRule { get; set; } = ArbitrationRule.Reading; + public ArbitrationRule ArbitrationRule { get; set; } = ArbitrationRule.None; public int ChangeDefalutDays { get; set; } = 5;