From 386c6e6f8f453bc4df6f34c7c417693350a83743 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Wed, 2 Nov 2022 13:28:25 +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 --- .../Reading/Dto/ReadingCalculateViewModel.cs | 5 +++ .../RECIST1Point1CalculateService.cs | 43 +++++++++++++------ 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs index acc19c683..c50f93154 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs @@ -19,6 +19,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public class TargetLesionCalculateDto { + /// + /// 最低SOD + /// + public decimal LowSod { get; set; } + /// /// 是否存在靶病灶 /// diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs index dc7e7cf2a..5fd5e9481 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs @@ -1106,6 +1106,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate var taskIds = taskAnswerList.Select(x => x.VisitTaskId).ToList(); + // 排除无法评估 var unableEvaluateTaskIds = await _readingTableQuestionAnswerRepository.Where(x => taskIds.Contains(x.VisitTaskId) && x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State && x.ReadingQuestionTrial.LesionType == LesionType.TargetLesion @@ -1258,6 +1259,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate // 是否存在靶病灶 ExistsTargetLesion= tableQuestion.Count()>0, + // 最低SOD + LowSod=(await GetLowSODVisit(inDto)).Select(x=>x.SOD).FirstOrDefault(), + //非淋巴结靶病灶长径之和 decimal SumOfDiameter = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SumOfDiameter).Sum(x => x.Answer.IsNullOrEmptyReturn0()), @@ -1343,6 +1347,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { if (resultData.LastTargetLesionEvaluate.EqEnum(TargetAssessment.CR)) { + if (resultData.ExixtsNETargetLesion) + { + result = TargetAssessment.NE; + } if (resultData.CurrenShortBigger10 && resultData.IsAddFive) { result = TargetAssessment.PD; @@ -1352,30 +1360,37 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate result = TargetAssessment.PD; } } - else if (resultData.LowPercentBigger20) - { - result = TargetAssessment.PD; - } + else { - if (resultData.ExixtsNETargetLesion) + if (resultData.LowSod != 0 && resultData.LowPercentBigger20 && resultData.LowChangeBigger5) { - result = TargetAssessment.NE; - } else + result = TargetAssessment.PD; + } + else { - if (resultData.SODPercentBigger30) + if (resultData.ExixtsNETargetLesion) { - if (resultData.LowPercentLess20||resultData.LowChangeLess5) + result = TargetAssessment.NE; + } + else + { + if (resultData.SODPercentBigger30) { - result = TargetAssessment.PR; - } + if (resultData.LowPercentLess20 || resultData.LowChangeLess5) + { + result = TargetAssessment.PR; + } - if (resultData.SumOfDiameter == 0 && resultData.DiameterLessThan10) - { - result = TargetAssessment.CR; + if (resultData.SumOfDiameter == 0 && resultData.DiameterLessThan10) + { + result = TargetAssessment.CR; + } } } } + + } }