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