IRC_NewDev
he 2023-09-01 14:45:58 +08:00
parent d2aef5df04
commit a362d5a977
1 changed files with 42 additions and 4 deletions

View File

@ -452,6 +452,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
List<ReadingCalculateData> calculateList = new List<ReadingCalculateData>()
{
//垂直径乘积之和SPD
//new ReadingCalculateData (){QuestionType=QuestionType.sp,GetDecimalNullFun=GetSODData},
////靶病灶径线之和SOD
//new ReadingCalculateData (){QuestionType=QuestionType.SOD,GetDecimalNullFun=GetSODData},
@ -1469,6 +1473,31 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
TargetAssessment result = TargetAssessment.SD;
//1、基线非淋巴结靶病灶不存在或者当前访视非淋巴结靶病灶全部消失
//并且 2.当前访视淋巴结靶病灶的状态全部变为“消失”。
var eqCR = true;
//当前访视中,靶病灶的Σ PPD
decimal spd = 0;
foreach (var item in rowInfo)
{
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));
}
spd += (item.TableQuestionList.Where(x => x.QuestionMark == QuestionMark.PPD).Select(x => x.Answer).FirstOrDefault()).IsNullOrEmptyReturn0();
if (item.TableQuestionList.Any(x => x.QuestionMark == QuestionMark.IsLymph && x.Answer.EqEnum(YesOrNoOrNa.Yes)))
{
// 当前访视淋巴结靶病灶的状态全部变为“消失”
eqCR = eqCR && item.TableQuestionList.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(TargetState.Loss));
}
}
//基线未选择靶病灶
if (rowInfo.Count() == 0)
{
@ -1480,13 +1509,22 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
result = TargetAssessment.PD;
}
//在排除PD后有任一靶病灶为NE状态
else if (tableQuestions.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(TargetState.UnableEvaluate)))
else if (tableQuestions.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(TargetState.UnableEvaluate)))
{
result = TargetAssessment.PD;
}
//1、基线非淋巴结靶病灶不存在或者当前访视非淋巴结靶病灶全部消失
//并且 2.当前访视淋巴结靶病灶的状态全部变为“消失”。
else if (eqCR)
{
result = TargetAssessment.CR;
}
// 1、与基线相比SPD变化的百分比 ≥50%
// 并且 当前访视没有任何一个状态为“疾病进展”的靶病灶
else if (eqCR)
{
result = TargetAssessment.CR;
}
return result.GetEnumInt();