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; }