From 349839913cd7b988b46a54ff2f89795b05a9c4df Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Fri, 12 Aug 2022 16:56:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TrialSiteUser/TrialConfigService.cs | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index 387a4a851..d030ed193 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -345,6 +345,50 @@ namespace IRaCIS.Core.Application } + /// + /// 验证签名确认 + /// + /// + /// + /// + [HttpPost] + public async Task VerifyTrialConfigSignatureConfirm(SignConfirmDTO signConfirmDTO) + { + var trialConfig = (await _trialRepository + .Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification }) + .FirstOrDefaultAsync(t => t.TrialId == signConfirmDTO.TrialId)) + .IfNullThrowException(); + + + var showOrderList = await _repository.Where(t => t.TrialId == signConfirmDTO.TrialId).Select(t => + new { t.ShowOrder, ParentShowOrder = (int?)t.ParentQCQuestion.ShowOrder }).ToListAsync(); + + if (trialConfig.QCProcessEnum == + TrialQCProcess.DoubleAudit || trialConfig.QCProcessEnum == TrialQCProcess.SingleAudit) + { + if (showOrderList.Count == 0) + { + throw new BusinessValidationFailedException("当前未添加影像质控审核问题。请先添加影像质控审核问题,再进行确认。"); + } + } + + if (showOrderList.Count() != showOrderList.Select(t => t.ShowOrder).Distinct().Count()) + { + throw new BusinessValidationFailedException("影像质控审核问题显示序号不能重复。"); + } + + if (showOrderList.Where(t => t.ParentShowOrder != null).Any(t => t.ParentShowOrder > t.ShowOrder)) + { + throw new BusinessValidationFailedException("父问题的显示序号要比子问题的显示序号小,请确认。"); + } + + if (await _trialRepository.AnyAsync(t => t.Id == signConfirmDTO.TrialId && t.QCQuestionConfirmedUserId != null && t.QCQuestionConfirmedUserId != _userInfo.Id)) + { + throw new BusinessValidationFailedException("影像质控审核问题已被其他人员确认,不允许再次确认。"); + } + + return ResponseOutput.Ok(); + }