From 98cc35e6144e2ba1fbed241ab45c8a3d0556806c Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Wed, 12 Jul 2023 13:55:45 +0800 Subject: [PATCH] S-47 --- .../ClinicalData/ClinicalAnswerService.cs | 40 +++++++++++++++---- .../ReadingClinicalDataService.cs | 4 +- .../Service/Reading/Dto/ClinicalAnswerDto.cs | 11 ++++- .../Reading/Dto/ReadingClinicalDataDto.cs | 4 ++ IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 1 + .../Reading/ReadingPeriod/ReadModule.cs | 7 +++- 6 files changed, 57 insertions(+), 10 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index 51348788a..f818ab1df 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -518,6 +518,7 @@ namespace IRaCIS.Core.Application.Service SubjectId = x.SubjectId, IsCRCConfirm = x.IsCRCConfirm, + IsCRCApplicationRevoke=x.IsCRCApplicationRevoke, VisitBlindName=x.SubjectVisit.BlindName, LatestScanDate = x.SubjectVisit.LatestScanDate, ReadingSetType = x.ReadingSetType, @@ -818,10 +819,10 @@ namespace IRaCIS.Core.Application.Service await _readModuleRepository.UpdatePartialFromQueryAsync(x => presentData.ReadModuleId==x.Id, x => new ReadModule() { - IsCRCConfirm = false + IsCRCApplicationRevoke = true }); - await _readModuleCriterionFromRepository.BatchDeleteNoTrackingAsync(x=>x.ReadModuleId== presentData.ReadModuleId); + //await _readModuleCriterionFromRepository.BatchDeleteNoTrackingAsync(x=>x.ReadModuleId== presentData.ReadModuleId); await _readModuleCriterionFromRepository.SaveChangesAsync(); @@ -840,13 +841,38 @@ namespace IRaCIS.Core.Application.Service var readModuleData = await _readModuleRepository.Where(x => x.Id == inDto.ReadModuleId).FirstNotNullAsync(); if (!readModuleData.IsCRCConfirm) { - throw new BusinessValidationFailedException("CRC还未确认数据,PM无法确认"); + throw new BusinessValidationFailedException("CRC还未确认数据,PM无法操作"); } - await _readModuleRepository.UpdatePartialFromQueryAsync(x => inDto.ReadModuleId == x.Id, x => new ReadModule() - { - IsPMConfirm = true - }); + if (readModuleData.IsCRCApplicationRevoke && inDto.IsConfirm) + { + throw new BusinessValidationFailedException("CRC正在申请退回,PM无法确认"); + } + + if (!readModuleData.IsCRCApplicationRevoke && !inDto.IsConfirm) + { + throw new BusinessValidationFailedException("CRC未申请退回,PM无法撤销"); + } + + if (inDto.IsConfirm) + { + await _readModuleRepository.UpdatePartialFromQueryAsync(x => inDto.ReadModuleId == x.Id, x => new ReadModule() + { + IsPMConfirm = true + }); + } + else + { + await _readModuleRepository.UpdatePartialFromQueryAsync(x => inDto.ReadModuleId == x.Id, x => new ReadModule() + { + IsCRCConfirm = false, + IsCRCApplicationRevoke=false, + }); + await _readModuleCriterionFromRepository.BatchDeleteNoTrackingAsync(x=>x.ReadModuleId== presentData.ReadModuleId); + + + } + await _readModuleRepository.SaveChangesAsync(); diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs index ab142f525..5a98ee91a 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs @@ -701,6 +701,7 @@ namespace IRaCIS.Application.Services ClinicalDataLevel = x.ClinicalDataLevel, SubjectId = inDto.SubjectId, ReadingId = default(Guid), + IsCRCApplicationRevoke=readModule.IsCRCApplicationRevoke, IsCRCConfirm= readModule.IsCRCConfirm, IsPMConfirm= readModule.IsPMConfirm, ClinicalDataSetName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us), @@ -857,7 +858,8 @@ namespace IRaCIS.Application.Services ClinicalDataLevel = x.ClinicalDataLevel, SubjectId = inDto.SubjectId, ReadingId = default(Guid), - IsCRCConfirm= readModule.IsCRCConfirm, + IsCRCApplicationRevoke= readModule.IsCRCApplicationRevoke, + IsCRCConfirm = readModule.IsCRCConfirm, IsPMConfirm=readModule.IsPMConfirm, ClinicalDataSetName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us), diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs index 8d3fff220..22c2b30fe 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs @@ -221,7 +221,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid SubjectId { get; set; } public Guid ReadModuleId { get; set; } - } + + public bool IsConfirm { get; set; } + + } public class CRCClinicalForm @@ -272,6 +275,12 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public bool IsCRCConfirm { get; set; } = false; + + /// + /// CRC是否正在申请撤回 + /// + public bool IsCRCApplicationRevoke { get; set; } = false; + public string SubjectCode { get; set; } public bool IsHaveTableQuestion diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs index 85e149f43..cd3713b1f 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs @@ -335,6 +335,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public Guid ReadingId { get; set; } + /// + /// CRC是否正在申请撤回 + /// + public bool IsCRCApplicationRevoke { get; set; } = false; public bool IsCRCConfirm { get; set; } = false; public bool IsPMConfirm { get; set; } = false; diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs index 573971d63..99889d0b2 100644 --- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs +++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs @@ -16,6 +16,7 @@ namespace IRaCIS.Core.Domain.Share public static readonly string Group = "group"; } + /// /// GetClinicalType /// diff --git a/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs b/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs index 1be9cb363..647451fc7 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs @@ -79,7 +79,12 @@ namespace IRaCIS.Core.Domain.Models public bool IsCRCConfirm { get; set; } = false; public bool IsPMConfirm { get; set; } = false; - public bool IsDeleted { get; set; } + + /// + /// CRC是否正在申请撤回 + /// + public bool IsCRCApplicationRevoke { get; set; } = false; + public bool IsDeleted { get; set; } public DateTime? DeletedTime { get; set; }