From 4225014cddd1995499e9541f5d1b194a1e9079d1 Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Mon, 10 Nov 2025 09:35:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingPeriod/ReadingPeriodSetService.cs | 16 ++++++++++++++++ .../RECIST1Point1CalculateService.cs | 1 + .../ReadingQuestionCriterionTrial.cs | 5 +++++ 3 files changed, 22 insertions(+) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadingPeriodSetService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadingPeriodSetService.cs index 468288bbb..a9e12f96a 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadingPeriodSetService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadingPeriodSetService.cs @@ -223,6 +223,8 @@ namespace IRaCIS.Core.Application.Service List readModuleIds = await _readModuleRepository.Where(x => x.ReadingPeriodSetId == indto.Id).Select(x => x.Id).ToListAsync(); + List visitIds=await _readingPeriodPlanRepository.Where(x => x.ReadingPeriodSetId == indto.Id).Select(x => x.SubjectVisitId).ToListAsync(); + if (await _visitTaskRepository.AnyAsync(x => x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId && readModuleIds.Contains(x.SouceReadModuleId ?? default(Guid)) && x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.TaskState == TaskState.Effect)) @@ -231,6 +233,20 @@ namespace IRaCIS.Core.Application.Service throw new BusinessValidationFailedException(_localizer["ReadingPeriodSet_TaskCompletedCannotRevoke"]); } + var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == readingPeriodSet.TrialReadingCriterionId).FirstNotNullAsync(); + + //产生了 阅片期裁判任务 并且完成了 + if ( criterionInfo.IsArbitrationReading&& criterionInfo.ArbitrationRule== ArbitrationRule.Reading && + await _visitTaskRepository.AnyAsync(x => x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId && visitIds.Contains(x.SourceSubjectVisitId ?? default(Guid)) + && x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId + && x.ReadingCategory== ReadingCategory.Judge + && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.TaskState == TaskState.Effect) ) + { + //---当前标准阅片已生成任务并且阅片完成,撤销失败。 + throw new BusinessValidationFailedException(_localizer["ReadingPeriodSet_TaskCompletedCannotRevoke"]); + } + + await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId && readModuleIds.Contains(x.SouceReadModuleId ?? default(Guid)), x => new VisitTask() { diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs index 58244e6ad..72e112e88 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs @@ -754,6 +754,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate tableRowAnswers.ForEach(x => { + var rowinfo= tableRowAnswers.Where(y => y.OriginalId == x.SplitRowId).FirstOrDefault(); x.SplitRowId = tableRowAnswers.Where(y => y.OriginalId == x.SplitRowId).Select(y => y.Id).FirstOrDefault(); x.MergeRowId = tableRowAnswers.Where(y => y.OriginalId == x.MergeRowId).Select(y => y.Id).FirstOrDefault(); diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs index 680ebcc75..04f5ef2c3 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs @@ -116,7 +116,12 @@ public class ReadingQuestionCriterionTrial : BaseAddAuditEntity [Comment("是否签名")] public bool IsSigned { get; set; } = false; + + /// + /// 裁判 + /// [Comment("仲裁阅片")] + public bool IsArbitrationReading { get; set; } = true; [Comment("肿瘤学阅片 原字段 IsClinicalReading")] public bool IsOncologyReading { get; set; }