From e4fd46deae97465a776997ba0f5fb9d9a0f690a5 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 31 Aug 2022 10:52:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=A8=BD=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/InspectionController.cs | 31 ++- IRaCIS.Core.API/IRaCIS.Core.API.xml | 12 +- .../IRaCIS.Core.Application.xml | 28 +- .../Reading/ReadingImageTaskService.cs | 1 - .../TrialSiteUser/TrialConfigService.cs | 249 +++++++++--------- 5 files changed, 161 insertions(+), 160 deletions(-) diff --git a/IRaCIS.Core.API/Controllers/InspectionController.cs b/IRaCIS.Core.API/Controllers/InspectionController.cs index e5b986529..804352e82 100644 --- a/IRaCIS.Core.API/Controllers/InspectionController.cs +++ b/IRaCIS.Core.API/Controllers/InspectionController.cs @@ -238,22 +238,6 @@ namespace IRaCIS.Core.API.Controllers } - /// - /// 签名确认 - /// - /// - [HttpPost, Route("Inspection/configTrialBasicInfo/TrialConfigSignatureConfirm")] - [UnitOfWork] - public async Task TrialConfigSignatureConfirm(DataInspectionDto opt) - { - var singid = await _inspectionService.RecordSing(opt.SignInfo); - var result = await _trialConfigService.TrialConfigSignatureConfirm(opt.Data); - await _inspectionService.CompletedSign(singid, result); - return result; - } - - - /// @@ -293,6 +277,21 @@ namespace IRaCIS.Core.API.Controllers return result; } + /// + /// 签名确认 + /// + /// + [HttpPost, Route("Inspection/configTrialBasicInfo/TrialConfigSignatureConfirm")] + [UnitOfWork] + public async Task TrialConfigSignatureConfirm(DataInspectionDto opt) + { + var singid = await _inspectionService.RecordSing(opt.SignInfo); + var result = await _trialConfigService.TrialConfigSignatureConfirm(opt.Data); + await _inspectionService.CompletedSign(singid, result); + return result; + } + + /// /// CRC RequestToQC 批量提交 diff --git a/IRaCIS.Core.API/IRaCIS.Core.API.xml b/IRaCIS.Core.API/IRaCIS.Core.API.xml index caae87353..465b8c92b 100644 --- a/IRaCIS.Core.API/IRaCIS.Core.API.xml +++ b/IRaCIS.Core.API/IRaCIS.Core.API.xml @@ -146,12 +146,6 @@ - - - 签名确认 - - - 配置流程并确认 @@ -166,6 +160,12 @@ + + + 签名确认 + + + CRC RequestToQC 批量提交 diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 8fc76543b..7bf001a6a 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -6210,6 +6210,20 @@ + + + 配置流程 + + + + + + + 配置加急信息 + + + + 更新项目状态 @@ -6241,20 +6255,6 @@ - - - 配置流程 - - - - - - - 配置加急信息 - - - - 配置项目任务信息 diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs index 4e4403518..2a81c1179 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs @@ -1699,7 +1699,6 @@ namespace IRaCIS.Application.Services { await this.SaveVisitTaskQuestions(inDto); - await this.SubmitTaskChangeState(inDto.VisitTaskId); return ResponseOutput.Ok(true); diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index 3ca662fb5..bb6f0c08b 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -438,8 +438,9 @@ namespace IRaCIS.Core.Application { await _trialRepository.UpdatePartialFromQueryAsync(t => t.Id == signConfirmDTO.TrialId, u => new Trial() { IsTrialUrgentConfirmed = true }); } - - else if (signConfirmDTO.SignCode == ((int)SignEnum.TrialQCQuestionConfirm).ToString()) + else + + if (signConfirmDTO.SignCode == ((int)SignEnum.TrialQCQuestionConfirm).ToString()) { var trialConfig = (await _trialRepository @@ -510,6 +511,129 @@ namespace IRaCIS.Core.Application + return ResponseOutput.Ok(await _repository.SaveChangesAsync()); + } + + /// + /// 配置流程 + /// + /// + /// + [HttpPut] + [Authorize(Policy = IRaCISPolicy.PM_APM)] + public async Task ConfigTrialProcessInfo(TrialProcessConfig trialConfig) + { + if (!await _trialRepository.Where(t => t.Id == trialConfig.TrialId).IgnoreQueryFilters().AnyAsync(t => t.TrialStatusStr == StaticData.TrialState.TrialInitializing)) + { + return ResponseOutput.NotOk("该项目当前状态不是初始化,不允许进行该操作。"); + } + + if (trialConfig.TrialCriterionIds.Count() > 1) + { + throw new BusinessValidationFailedException("项目最多可选择一个标准。"); + } + + + var trialInfo = await _trialRepository.Where(t => t.Id == trialConfig.TrialId, true).Include(t => t.TrialDicList.Where(u => u.KeyName == StaticData.Criterion)).FirstOrDefaultAsync(); + if (trialInfo == null) return Null404NotFound(trialInfo); + if (trialConfig.IsReadingTaskViewInOrder) + { + trialConfig.ReadingTaskViewEnum = ReadingTaskViewMethod.ReadingPeriodOrVisit; + } + else + { + trialConfig.ReadingTaskViewEnum = ReadingTaskViewMethod.Subject; + trialConfig.IsReadingShowPreviousResults = false; + 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; + + // 修改临床数据 + var noconfirmids = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == trialConfig.TrialId && !trialConfig.ClinicalDataTrialSetIds.Contains(x.Id)).Select(x => x.Id).ToListAsync(); + foreach (var item in trialConfig.ClinicalDataTrialSetIds) + { + await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet() + { + + IsConfirm = true + }); + } + + foreach (var item in noconfirmids) + { + await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet() + { + + IsConfirm = false + }); + } + + // 修改阅片标准 + var cancelConfirmCriterionIds = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == trialConfig.TrialId && x.IsConfirm && !trialConfig.TrialCriterionIds.Contains(x.Id)).Select(x => x.Id).ToListAsync(); + + await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => cancelConfirmCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial() + { + IsConfirm = false + }); + + await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => trialConfig.TrialCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial() + { + IsConfirm = true + }); ; + + + + + return ResponseOutput.Ok(await _repository.SaveChangesAsync()); + } + + /// + /// 配置加急信息 + /// + /// + /// + [HttpPut] + [Authorize(Policy = IRaCISPolicy.PM_APM)] + public async Task ConfigTrialUrgentInfo(TrialUrgentConfig trialConfig) + { + + await VerifyOnlyInOngoingOrInitialIzingOptAsync(trialConfig.TrialId); + + + var trialInfo = (await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialConfig.TrialId)).IfNullThrowException(); + + + //项目紧急 当前所有已提交,但未完成的访视,设置为加急。后续提交的访视也设置为加急 (在提交的时候,回去判断 项目加急,Subject加急,是否入组确认,是否Pd,从而设置访视是否加急) + if (trialConfig.IsUrgent) + { + + await _repository.BatchUpdateAsync(t => t.TrialId == trialInfo.Id && t.SubmitState == SubmitStateEnum.Submitted && t.ForwardState < ForwardStateEnum.Forwarded, + s => new SubjectVisit() { IsUrgent = trialConfig.IsUrgent }); + } + else //之前设置为加急的访视状态不变。后续提交的访视,为不加急。 + { + + } + + _mapper.Map(trialConfig, trialInfo); + + trialInfo.UpdateTime = DateTime.Now; + return ResponseOutput.Ok(await _repository.SaveChangesAsync()); } @@ -639,128 +763,7 @@ namespace IRaCIS.Core.Application - /// - /// 配置流程 - /// - /// - /// - [HttpPut] - [Authorize(Policy = IRaCISPolicy.PM_APM)] - public async Task ConfigTrialProcessInfo(TrialProcessConfig trialConfig) - { - if (!await _trialRepository.Where(t => t.Id == trialConfig.TrialId).IgnoreQueryFilters().AnyAsync(t => t.TrialStatusStr == StaticData.TrialState.TrialInitializing)) - { - return ResponseOutput.NotOk("该项目当前状态不是初始化,不允许进行该操作。"); - } - if (trialConfig.TrialCriterionIds.Count() > 1) - { - throw new BusinessValidationFailedException("项目最多可选择一个标准。"); - } - - - var trialInfo = await _trialRepository.Where(t => t.Id == trialConfig.TrialId, true).Include(t => t.TrialDicList.Where(u => u.KeyName == StaticData.Criterion)).FirstOrDefaultAsync(); - if (trialInfo == null) return Null404NotFound(trialInfo); - if (trialConfig.IsReadingTaskViewInOrder) - { - trialConfig.ReadingTaskViewEnum = ReadingTaskViewMethod.ReadingPeriodOrVisit; - } - else - { - trialConfig.ReadingTaskViewEnum = ReadingTaskViewMethod.Subject; - trialConfig.IsReadingShowPreviousResults = false; - 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; - - // 修改临床数据 - var noconfirmids = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == trialConfig.TrialId && !trialConfig.ClinicalDataTrialSetIds.Contains(x.Id)).Select(x => x.Id).ToListAsync(); - foreach (var item in trialConfig.ClinicalDataTrialSetIds) - { - await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet() - { - - IsConfirm = true - }); - } - - foreach (var item in noconfirmids) - { - await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet() - { - - IsConfirm = false - }); - } - - // 修改阅片标准 - var cancelConfirmCriterionIds = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == trialConfig.TrialId && x.IsConfirm && !trialConfig.TrialCriterionIds.Contains(x.Id)).Select(x => x.Id).ToListAsync(); - - await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => cancelConfirmCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial() - { - IsConfirm = false - }); - - await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => trialConfig.TrialCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial() - { - IsConfirm = true - }); ; - - - - - return ResponseOutput.Ok(await _repository.SaveChangesAsync()); - } - - /// - /// 配置加急信息 - /// - /// - /// - [HttpPut] - [Authorize(Policy = IRaCISPolicy.PM_APM)] - public async Task ConfigTrialUrgentInfo(TrialUrgentConfig trialConfig) - { - - await VerifyOnlyInOngoingOrInitialIzingOptAsync(trialConfig.TrialId); - - - var trialInfo = (await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialConfig.TrialId)).IfNullThrowException(); - - - //项目紧急 当前所有已提交,但未完成的访视,设置为加急。后续提交的访视也设置为加急 (在提交的时候,回去判断 项目加急,Subject加急,是否入组确认,是否Pd,从而设置访视是否加急) - if (trialConfig.IsUrgent) - { - - await _repository.BatchUpdateAsync(t => t.TrialId == trialInfo.Id && t.SubmitState == SubmitStateEnum.Submitted && t.ForwardState < ForwardStateEnum.Forwarded, - s => new SubjectVisit() { IsUrgent = trialConfig.IsUrgent }); - } - else //之前设置为加急的访视状态不变。后续提交的访视,为不加急。 - { - - } - - _mapper.Map(trialConfig, trialInfo); - - trialInfo.UpdateTime = DateTime.Now; - - return ResponseOutput.Ok(await _repository.SaveChangesAsync()); - } ///