修改计算

IRC_NewDev
he 2023-12-19 14:16:03 +08:00
parent 5cd4fde48a
commit 70f682edd6
1 changed files with 10 additions and 14 deletions

View File

@ -1970,7 +1970,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
//无需标记,自主选择 //无需标记,自主选择
else else
{ {
result = PET5PSScore.X; result = PET5PSScore.One;
} }
return result.GetEnumInt(); return result.GetEnumInt();
} }
@ -2476,7 +2476,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
TargetAssessment result = TargetAssessment.SD; TargetAssessment result = TargetAssessment.SD;
//1、基线非淋巴结靶病灶不存在或者当前访视非淋巴结靶病灶全部消失; //或者当前访视非淋巴结靶病灶全部消失;
//并且 2.当前访视淋巴结靶病灶的状态全部变为“消失”。 //并且 2.当前访视淋巴结靶病灶的状态全部变为“消失”。
var eqCR = true; var eqCR = true;
@ -2486,7 +2486,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{ {
if (item.TableQuestionList.Any(x => x.QuestionMark == QuestionMark.IsLymph && x.Answer.EqEnum(YesOrNoOrNa.No))) if (item.TableQuestionList.Any(x => x.QuestionMark == QuestionMark.IsLymph && x.Answer.EqEnum(YesOrNoOrNa.No)))
{ {
// 基线非淋巴结靶病灶不存在,或者当前访视非淋巴结靶病灶全部消失; // 或者当前访视非淋巴结靶病灶全部消失;
eqCR = eqCR && item.TableQuestionList.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(TargetState.Loss)); eqCR = eqCR && item.TableQuestionList.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(TargetState.Loss));
} }
spd += (item.TableQuestionList.Where(x => x.QuestionMark == QuestionMark.PPD).Select(x => x.Answer).FirstOrDefault()).IsNullOrEmptyReturn0(); spd += (item.TableQuestionList.Where(x => x.QuestionMark == QuestionMark.PPD).Select(x => x.Answer).FirstOrDefault()).IsNullOrEmptyReturn0();
@ -2497,7 +2497,6 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
} }
} }
// 1、与基线相比SPD变化的百分比 ≥50% // 1、与基线相比SPD变化的百分比 ≥50%
// 并且 当前访视没有任何一个状态为“疾病进展”的靶病灶
var eqPR = false; var eqPR = false;
if (inDto.IsBaseLine) if (inDto.IsBaseLine)
@ -2520,7 +2519,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
if (baseLineSPD > 0) if (baseLineSPD > 0)
{ {
eqPR = (presentSPD - baseLineSPD) / baseLineSPD > 0.5m && !tableQuestions.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.Equals(TargetState.DiseaseProgression)); eqPR = (presentSPD - baseLineSPD) / baseLineSPD > 0.5m;
} }
} }
@ -2536,22 +2535,20 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{ {
result = TargetAssessment.PD; result = TargetAssessment.PD;
} }
//当前访视没有任何一个状态为“疾病进展”的靶病灶;
//当前访视存在至少一个状态为“不可评估”的靶病灶。 //当前访视存在至少一个状态为“不可评估”的靶病灶。
else if ( else if (
!tableQuestions.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(TargetState.DiseaseProgression))&&
tableQuestions.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(TargetState.UnableEvaluate))) tableQuestions.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(TargetState.UnableEvaluate)))
{ {
result = TargetAssessment.NE; result = TargetAssessment.NE;
} }
//1、基线非淋巴结靶病灶不存在或者当前访视非淋巴结靶病灶全部消失; //当前访视非淋巴结靶病灶全部消失;
//并且 2.当前访视淋巴结靶病灶的状态全部变为“消失”。 //并且 2.当前访视淋巴结靶病灶的状态全部变为“消失”。
else if (eqCR) else if (eqCR)
{ {
result = TargetAssessment.CR; result = TargetAssessment.CR;
} }
// 1、与基线相比SPD变化的百分比 ≥50% // 与基线相比SPD变化的百分比 ≥50%
// 并且 当前访视没有任何一个状态为“疾病进展”的靶病灶
else if (eqPR) else if (eqPR)
{ {
result = TargetAssessment.PR; result = TargetAssessment.PR;
@ -2593,10 +2590,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{ {
result = NoTargetAssessment.PD; result = NoTargetAssessment.PD;
} }
// 1、随访没有任何一个状态为“显著增大”的非靶病灶
// 2、随访存在至少一个状态为“不可评估”的非靶病灶 // 随访存在至少一个状态为“不可评估”的非靶病灶
else if (!tableQuestions.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(NoTargetState.Increase)) else if (tableQuestions.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(NoTargetState.UnableEvaluate)))
&& tableQuestions.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(NoTargetState.UnableEvaluate)))
{ {
result = NoTargetAssessment.NE; result = NoTargetAssessment.NE;
} }