更新Lugano 2014评估标准数据目录
parent
f993a5e13c
commit
df31d9debe
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,28 @@
|
||||||
|
|
||||||
|
"默认SD"
|
||||||
|
|
||||||
|
if(当前访视是基线)
|
||||||
|
{
|
||||||
|
"NA";
|
||||||
|
}
|
||||||
|
else if(基线未选择靶病灶)
|
||||||
|
{
|
||||||
|
"ND";
|
||||||
|
}
|
||||||
|
else if(任一单个病灶进展即可)
|
||||||
|
{
|
||||||
|
"PD";
|
||||||
|
}
|
||||||
|
else if(当前访视存在至少一个状态为“不可评估”的靶病灶)
|
||||||
|
{
|
||||||
|
"NE";
|
||||||
|
}
|
||||||
|
else if(当前访视非淋巴结靶病灶全部消失 && (当前访视淋巴结靶病灶的状态全部变为“消失” 或者 "太小" ))
|
||||||
|
{
|
||||||
|
"CR";
|
||||||
|
}
|
||||||
|
else if(与基线相比SPD变化的百分比 <=- 50% )
|
||||||
|
{
|
||||||
|
"PR";
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
if(当前访视是基线)
|
||||||
|
{
|
||||||
|
"NA";
|
||||||
|
}
|
||||||
|
else if(基线未选择非靶病灶)
|
||||||
|
{
|
||||||
|
"ND";
|
||||||
|
}
|
||||||
|
else if(随访至少存在一个状态为“显著增大”的非靶病灶)
|
||||||
|
{
|
||||||
|
"PD";
|
||||||
|
}
|
||||||
|
else if( 随访存在至少一个状态为“不可评估”的非靶病灶)
|
||||||
|
{
|
||||||
|
"NE";
|
||||||
|
}
|
||||||
|
else if(所有单个病灶/病灶组状态评估状态为“消失”) //当前访视非靶病灶状态为消失的数量==非靶病灶的数量
|
||||||
|
{
|
||||||
|
"CR";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
"PR/SD";
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
if(当前访视是基线)
|
||||||
|
{
|
||||||
|
"NA";
|
||||||
|
}
|
||||||
|
else if(当前访视存在至少一个明确新病灶)
|
||||||
|
{
|
||||||
|
"是";
|
||||||
|
}
|
||||||
|
else if(只要有任何一个新病灶状态为“无法评估”)
|
||||||
|
{
|
||||||
|
"无法评估";
|
||||||
|
}
|
||||||
|
else if(当前访视不存在明确新病灶且存在至少一个疑似新病灶)
|
||||||
|
{
|
||||||
|
"疑似";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
"否";
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
return "脾脏状态";
|
|
@ -0,0 +1 @@
|
||||||
|
return "肝脏状态";
|
|
@ -0,0 +1,213 @@
|
||||||
|
public async Task<string> CTMRIEvaluation(ReadingCalculateDto inDto)
|
||||||
|
{
|
||||||
|
if (inDto.IsBaseLine)
|
||||||
|
{
|
||||||
|
return CTMRIOverallAssessment.NA.GetEnumInt();
|
||||||
|
}
|
||||||
|
// 靶病灶评估
|
||||||
|
var targetEvaluation = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.TargetLesion).Select(x => x.Answer).FirstOrDefault();
|
||||||
|
|
||||||
|
// 非靶病灶评估
|
||||||
|
var noTargetEvaluation = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.NoTargetLesion).Select(x => x.Answer).FirstOrDefault();
|
||||||
|
|
||||||
|
// 存在新病灶
|
||||||
|
var existsNewTarget = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.NewLesionEvaluation).Select(x => x.Answer).FirstOrDefault();
|
||||||
|
|
||||||
|
// 肝脏评估
|
||||||
|
var liverEvaluation = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.LiverAssessment).Select(x => x.Answer).FirstOrDefault();
|
||||||
|
|
||||||
|
// 脾脏评估
|
||||||
|
var spleenEvaluation = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SplenicEvaluation).Select(x => x.Answer).FirstOrDefault();
|
||||||
|
|
||||||
|
List<CalculationDto> data = new List<CalculationDto>() {
|
||||||
|
|
||||||
|
//ND ND 否/疑似 正常 正常 ND
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { TargetAssessment.ND }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No, NewLesionAssessment.Suspected }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
|
||||||
|
},
|
||||||
|
|
||||||
|
//PD 任一结果 任一结果 任一结果 任一结果 PD
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { TargetAssessment.PD }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() { }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { }),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.PD }),
|
||||||
|
},
|
||||||
|
//任一结果 PD 任一结果 任一结果 任一结果 PD
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.PD }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() {}),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { }),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.PD }),
|
||||||
|
},
|
||||||
|
//任一结果 任一结果 是 任一结果 任一结果 PD
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.Yes }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { }),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.PD }),
|
||||||
|
},
|
||||||
|
//任一结果 任一结果 任一结果 显著增大 任一结果 PD
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() { }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { LiverAssessment.Increase }),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.PD }),
|
||||||
|
},
|
||||||
|
//任一结果 任一结果 任一结果 任一结果 显著增大 PD
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() {}),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { }),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Increase }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.PD }),
|
||||||
|
},
|
||||||
|
//CR CR/ND 否 正常 正常 CR
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.CR, NoTargetAssessment.ND }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.CR }),
|
||||||
|
},
|
||||||
|
//ND CR 否 正常 正常 CR
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { TargetAssessment.ND }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.CR }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.CR }),
|
||||||
|
},
|
||||||
|
//NE 非PD 否/疑似/无法评估 非显著增大 非显著增大 NE
|
||||||
|
new CalculationDto(){
|
||||||
|
NotEq=new List<int>(){ 2,4,5},
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { TargetAssessment.NE }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.PD }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected, NewLesionAssessment.NE}),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { LiverAssessment.Increase }),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Increase }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.NE }),
|
||||||
|
},
|
||||||
|
//ND NE 否/疑似/无法评估(不为是) 正常/稳定/无法评估/部分缓解(非显著增大) 正常/稳定/无法评估/部分缓解(非显著增大) NE
|
||||||
|
new CalculationDto(){
|
||||||
|
NotEq=new List<int>(){ 3,4,5},
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { TargetAssessment.ND }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.NE }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.Yes }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { LiverAssessment.Increase }),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Increase }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.NE }),
|
||||||
|
},
|
||||||
|
//ND ND 无法评估 正常/稳定/无法评估/部分缓解(非显著增大) 正常/稳定/无法评估/部分缓解(非显著增大) NE
|
||||||
|
new CalculationDto(){
|
||||||
|
NotEq=new List<int>(){ 4,5},
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { TargetAssessment.ND }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.NE }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { LiverAssessment.Increase }),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Increase }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.NE }),
|
||||||
|
},
|
||||||
|
//ND ND 否/疑似 无法评估 正常/稳定/无法评估/部分缓解(非显著增大) NE
|
||||||
|
new CalculationDto(){
|
||||||
|
NotEq=new List<int>(){ 5},
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { TargetAssessment.ND }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { LiverAssessment.NotEvaluable }),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Increase }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.NE }),
|
||||||
|
},
|
||||||
|
// ND ND 否/疑似 正常/稳定 NE NE
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { TargetAssessment.ND }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal,LiverAssessment.Stabilization }),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { SpleenAssessment.NotEvaluable }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.NE }),
|
||||||
|
},
|
||||||
|
//PR 非PD 否/疑似/无法评估(不为是) 正常/稳定 正常/部分缓解 PR
|
||||||
|
new CalculationDto(){
|
||||||
|
NotEq=new List<int>(){ 2,3},
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { TargetAssessment.PR }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.PD }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.Yes }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal,LiverAssessment.Stabilization}),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal,SpleenAssessment.Remission }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.PR }),
|
||||||
|
},
|
||||||
|
//CR (PR/SD)或者NE 否/疑似/无法评估(不为是) 正常/部分缓解 正常/部分缓解 PR
|
||||||
|
new CalculationDto(){
|
||||||
|
NotEq=new List<int>(){ 3},
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.PRSD,NoTargetAssessment.NE }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.Yes,NewLesionAssessment.Yes }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal,LiverAssessment.Stabilization}),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal,SpleenAssessment.Remission }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.PR }),
|
||||||
|
},
|
||||||
|
//CR CR/ND 疑似/无法评估 正常/稳定 正常/部分缓解 PR
|
||||||
|
new CalculationDto(){
|
||||||
|
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.CR,NoTargetAssessment.ND }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.Suspected, NewLesionAssessment.NE }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal,LiverAssessment.Stabilization}),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal,SpleenAssessment.Remission }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.PR }),
|
||||||
|
},
|
||||||
|
// ND CR 疑似/无法评估 正常/稳定 正常/部分缓解 PR
|
||||||
|
new CalculationDto(){
|
||||||
|
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { TargetAssessment.ND }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.CR }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.Suspected, NewLesionAssessment.NE }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal,LiverAssessment.Stabilization}),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal,SpleenAssessment.Remission }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.PR }),
|
||||||
|
},
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<TargetAssessment>() { }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<NoTargetAssessment>() { }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<NewLesionAssessment>() { }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<LiverAssessment>() { }),
|
||||||
|
Column5=ReadingCommon.EnumToString(new List<SpleenAssessment>() { }),
|
||||||
|
Column6=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.SD }),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
var index= data.FindIndex(x =>
|
||||||
|
(x.NotEq.Contains(1) ? !x.Column1.Contains(targetEvaluation) : x.Column1.Contains(targetEvaluation) || x.Column1.Count() == 0) &&
|
||||||
|
(x.NotEq.Contains(2) ? !x.Column2.Contains(noTargetEvaluation) : x.Column2.Contains(noTargetEvaluation) || x.Column2.Count() == 0) &&
|
||||||
|
(x.NotEq.Contains(3) ? !x.Column3.Contains(existsNewTarget) : x.Column3.Contains(existsNewTarget) || x.Column3.Count() == 0) &&
|
||||||
|
(x.NotEq.Contains(4) ? !x.Column4.Contains(liverEvaluation) : x.Column4.Contains(liverEvaluation) || x.Column4.Count() == 0) &&
|
||||||
|
(x.NotEq.Contains(5) ? !x.Column5.Contains(spleenEvaluation) : x.Column5.Contains(spleenEvaluation) || x.Column5.Count() == 0))
|
||||||
|
;
|
||||||
|
Console.WriteLine(index);
|
||||||
|
var result = data.Where(x =>
|
||||||
|
(x.NotEq.Contains(1) ? !x.Column1.Contains(targetEvaluation) : x.Column1.Contains(targetEvaluation) || x.Column1.Count() == 0) &&
|
||||||
|
(x.NotEq.Contains(2) ? !x.Column2.Contains(noTargetEvaluation) : x.Column2.Contains(noTargetEvaluation) || x.Column2.Count() == 0) &&
|
||||||
|
(x.NotEq.Contains(3) ? !x.Column3.Contains(existsNewTarget) : x.Column3.Contains(existsNewTarget) || x.Column3.Count() == 0) &&
|
||||||
|
(x.NotEq.Contains(4) ? !x.Column4.Contains(liverEvaluation) : x.Column4.Contains(liverEvaluation) || x.Column4.Count() == 0) &&
|
||||||
|
(x.NotEq.Contains(5) ? !x.Column5.Contains(spleenEvaluation) : x.Column5.Contains(spleenEvaluation) || x.Column5.Count() == 0))
|
||||||
|
.Select(x => x.Column6.FirstOrDefault())
|
||||||
|
.FirstOrDefault();
|
||||||
|
return result??string.Empty;
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 40 KiB |
Binary file not shown.
After Width: | Height: | Size: 44 KiB |
|
@ -0,0 +1,94 @@
|
||||||
|
public async Task<string> GetFDGPETOverallAssessment(ReadingCalculateDto inDto)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (inDto.IsBaseLine)
|
||||||
|
{
|
||||||
|
return FDGPETOverallAssessment.NA.GetEnumInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
var existPET =await GetExistPET(inDto);
|
||||||
|
if (existPET.EqEnum(ReadingYesOrNo.No))
|
||||||
|
{
|
||||||
|
return FDGPETOverallAssessment.NE.GetEnumInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
//FDGPETOverallAssessment result = FDGPETOverallAssessment.NA;
|
||||||
|
|
||||||
|
// PET5PS
|
||||||
|
var PET5PS = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.PET5PS).Select(x => x.Answer).FirstOrDefault();
|
||||||
|
|
||||||
|
// UptakeChange
|
||||||
|
var UptakeChange = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.UptakeChange).Select(x => x.Answer).FirstOrDefault();
|
||||||
|
|
||||||
|
// EvidenceFocalFDG
|
||||||
|
var EvidenceFocalFDG = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.EvidenceFocalFDG).Select(x => x.Answer).FirstOrDefault();
|
||||||
|
|
||||||
|
|
||||||
|
List<CalculationDto> data = new List<CalculationDto>() {
|
||||||
|
|
||||||
|
//NE NE NE NE
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<PET5PSScore>() { PET5PSScore.NE }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<SUVChangeVSBaseline>() { SUVChangeVSBaseline.NotEvaluable }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGAffinityFociInBM>() { FDGAffinityFociInBM.NE}),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NE }),
|
||||||
|
},
|
||||||
|
|
||||||
|
//NE/5分/4分/3分/2分/1分/X NE/增大/减少/无明显变化 是,存在新的/复发的FDG高亲和性病灶 PMD
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<PET5PSScore>() { PET5PSScore.NE,PET5PSScore.Five,PET5PSScore.Four,PET5PSScore.Three,PET5PSScore.Two,PET5PSScore.One,PET5PSScore.X, }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<SUVChangeVSBaseline>() { SUVChangeVSBaseline.NotEvaluable,SUVChangeVSBaseline.Increase,SUVChangeVSBaseline.Decrease,SUVChangeVSBaseline.DidNotChange, }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGAffinityFociInBM>() { FDGAffinityFociInBM.YesHaveNew,}),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.PMD }),
|
||||||
|
},
|
||||||
|
|
||||||
|
//5分/4分 增大 NE/(是,存在新的/复发的FDG高亲和性病灶)/(是,存在持续的局灶性变化)/否 PMD
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<PET5PSScore>() { PET5PSScore.Five,PET5PSScore.Four, }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<SUVChangeVSBaseline>() { SUVChangeVSBaseline.Increase }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGAffinityFociInBM>() { FDGAffinityFociInBM.NE, FDGAffinityFociInBM.YesHaveNew, FDGAffinityFociInBM.YesSustain, FDGAffinityFociInBM.No}),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.PMD }),
|
||||||
|
},
|
||||||
|
|
||||||
|
//3分/2分/1分/X NE/增大/减少/无明显变化 否 CMR
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<PET5PSScore>() { PET5PSScore.Three,PET5PSScore.Two,PET5PSScore.One,PET5PSScore.X, }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<SUVChangeVSBaseline>() { SUVChangeVSBaseline.NotEvaluable,SUVChangeVSBaseline.Increase,SUVChangeVSBaseline.Decrease,SUVChangeVSBaseline.DidNotChange, }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGAffinityFociInBM>() { FDGAffinityFociInBM.No}),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.CMR }),
|
||||||
|
},
|
||||||
|
|
||||||
|
//3分/2分/1分/X NE/增大/减少/无明显变化 是,存在持续的局灶性变化 PMR
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<PET5PSScore>() { PET5PSScore.Three,PET5PSScore.Two,PET5PSScore.One,PET5PSScore.X, }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<SUVChangeVSBaseline>() { SUVChangeVSBaseline.NotEvaluable,SUVChangeVSBaseline.Increase,SUVChangeVSBaseline.Decrease,SUVChangeVSBaseline.DidNotChange, }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGAffinityFociInBM>() { FDGAffinityFociInBM.YesSustain }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.PMR }),
|
||||||
|
},
|
||||||
|
|
||||||
|
//5分/4分 减少 否/是,存在持续的局灶性变化 PMR
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<PET5PSScore>() { PET5PSScore.Five,PET5PSScore.Four }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<SUVChangeVSBaseline>() { SUVChangeVSBaseline.Decrease }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGAffinityFociInBM>() { FDGAffinityFociInBM.No, FDGAffinityFociInBM.YesSustain}),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.PMR }),
|
||||||
|
},
|
||||||
|
|
||||||
|
//5分/4分 无明显变化 否/是,存在持续的局灶性变化 NMR
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<PET5PSScore>() { PET5PSScore.Five,PET5PSScore.Four }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<SUVChangeVSBaseline>() { SUVChangeVSBaseline.DidNotChange }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGAffinityFociInBM>() { FDGAffinityFociInBM.No, FDGAffinityFociInBM.YesSustain}),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NMR }),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var resultdata = data.Where(x =>
|
||||||
|
(x.NotEq.Contains(1) ? !x.Column1.Contains(PET5PS) : x.Column1.Contains(PET5PS) || x.Column1.Count() == 0) &&
|
||||||
|
(x.NotEq.Contains(2) ? !x.Column2.Contains(UptakeChange) : x.Column2.Contains(UptakeChange) || x.Column2.Count() == 0) &&
|
||||||
|
(x.NotEq.Contains(3) ? !x.Column3.Contains(EvidenceFocalFDG) : x.Column3.Contains(EvidenceFocalFDG) || x.Column3.Count() == 0))
|
||||||
|
.Select(x => x.Column4.FirstOrDefault())
|
||||||
|
.FirstOrDefault();
|
||||||
|
return resultdata ?? string.Empty;
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
|
@ -0,0 +1,139 @@
|
||||||
|
public async Task<string> GetImgOncology(ReadingCalculateDto inDto)
|
||||||
|
{
|
||||||
|
if (inDto.IsBaseLine)
|
||||||
|
{
|
||||||
|
return ImagingOverallAssessment_Lugano.NA.GetEnumInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
//var imageQualityEvaluation = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.ImageQualityAssessment&&x.Answer.EqEnum(ImageQualityEvaluation.Abnormal)).FirstOrDefault();
|
||||||
|
//if (imageQualityEvaluation != null)
|
||||||
|
//{
|
||||||
|
// return ImagingOverallAssessment_Lugano.NE.GetEnumInt();
|
||||||
|
//}
|
||||||
|
|
||||||
|
// CTandMRI
|
||||||
|
var CTandMRIData = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.CTandMRI).Select(x => x.Answer).FirstOrDefault();
|
||||||
|
|
||||||
|
// FDGPET
|
||||||
|
var FDGPETData = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.FDGPET).Select(x => x.Answer).FirstOrDefault();
|
||||||
|
|
||||||
|
var baseLineTaskId = await GetBaseLineTaskId(inDto);
|
||||||
|
// lastFDGPET
|
||||||
|
var lastFDGPETData = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.LastFDGPET).Select(x => x.Answer).FirstOrDefault();
|
||||||
|
|
||||||
|
List<CalculationDto> data = new List<CalculationDto>() {
|
||||||
|
|
||||||
|
//1、ND NE NE/NA ND
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NE }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA}),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<ImagingOverallAssessment_Lugano>() { ImagingOverallAssessment_Lugano.ND }),
|
||||||
|
},
|
||||||
|
//2、ND/PD/CR/NE/PR/SD PMD PMD/CMR/PMR/NMR/NE/NA PMD/PD
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND, CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD}),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.PMD, }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() {FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<ImagingOverallAssessment_Lugano>() { ImagingOverallAssessment_Lugano.PMDPD }),
|
||||||
|
},
|
||||||
|
//3、ND/PD/CR/NE/PR/SD NE PMD PMD/PD
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND, CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD}),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() {FDGPETOverallAssessment.NE }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.PMD, }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<ImagingOverallAssessment_Lugano>() { ImagingOverallAssessment_Lugano.PMDPD }),
|
||||||
|
},
|
||||||
|
//4、PD NE CMR/PMR/NMR/NE/NA PMD/PD
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.PD}),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NE, }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<ImagingOverallAssessment_Lugano>() { ImagingOverallAssessment_Lugano.PMDPD }),
|
||||||
|
},
|
||||||
|
//5、NE NE NE/NA NE
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.NE }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NE }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<ImagingOverallAssessment_Lugano>() { ImagingOverallAssessment_Lugano.NE }),
|
||||||
|
},
|
||||||
|
|
||||||
|
//6、CR/PR/SD/NE/ND/PD CMR CMR/PMR/NMR/PMD/NE/NA CMR/CR
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND,CTMRIOverallAssessment.PD }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.CMR }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<ImagingOverallAssessment_Lugano>() { ImagingOverallAssessment_Lugano.CMRCR }),
|
||||||
|
},
|
||||||
|
//7、CR NE NE/NA CMR/CR
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.CR }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NE }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<ImagingOverallAssessment_Lugano>() { ImagingOverallAssessment_Lugano.CMRCR }),
|
||||||
|
},
|
||||||
|
|
||||||
|
//8、 CR、PR、SD、NE、ND NE CMR CMR/CR
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NE }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.CMR,}),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<ImagingOverallAssessment_Lugano>() { ImagingOverallAssessment_Lugano.CMRCR }),
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//9、ND/PD/CR/NE/PR/SD PMR PMD/CMR/PMR/NMR/NE/NA PMR/PR
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND, CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.PMR }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE,FDGPETOverallAssessment.NA, }),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<ImagingOverallAssessment_Lugano>() { ImagingOverallAssessment_Lugano.PMRPR }),
|
||||||
|
},
|
||||||
|
//10、PR NE NE/NA PMR/PR
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.PR }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NE }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<ImagingOverallAssessment_Lugano>() { ImagingOverallAssessment_Lugano.PMRPR }),
|
||||||
|
},
|
||||||
|
//11、CR/PR/SD/NE/ND NE PMR PMR/PR
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NE }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.PMR}),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<ImagingOverallAssessment_Lugano>() { ImagingOverallAssessment_Lugano.PMRPR }),
|
||||||
|
},
|
||||||
|
//12、ND/PD/CR/NE/PR/SD NMR PMD/CMR/PMR/NMR/NE/NA NMR/SD
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND,CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NMR }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR, FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<ImagingOverallAssessment_Lugano>() { ImagingOverallAssessment_Lugano.NMRSD }),
|
||||||
|
},
|
||||||
|
//13、CR/PR/SD/ND/NE NE NMR NMR/SD
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.CR, CTMRIOverallAssessment.PR, CTMRIOverallAssessment.SD, CTMRIOverallAssessment.ND, CTMRIOverallAssessment.NE }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NE }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NMR}),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<ImagingOverallAssessment_Lugano>() { ImagingOverallAssessment_Lugano.NMRSD }),
|
||||||
|
},
|
||||||
|
//14、SD NE NE/NA NMR/SD
|
||||||
|
new CalculationDto(){
|
||||||
|
Column1=ReadingCommon.EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.SD }),
|
||||||
|
Column2=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NE }),
|
||||||
|
Column3=ReadingCommon.EnumToString(new List<FDGPETOverallAssessment>() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}),
|
||||||
|
Column4=ReadingCommon.EnumToString(new List<ImagingOverallAssessment_Lugano>() { ImagingOverallAssessment_Lugano.NMRSD }),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
var resultdata = data.Where(x =>
|
||||||
|
(x.NotEq.Contains(1) ? !x.Column1.Contains(CTandMRIData) : x.Column1.Contains(CTandMRIData) || x.Column1.Count() == 0) &&
|
||||||
|
(x.NotEq.Contains(2) ? !x.Column2.Contains(FDGPETData) : x.Column2.Contains(FDGPETData) || x.Column2.Count() == 0) &&
|
||||||
|
(x.NotEq.Contains(3) ? !x.Column3.Contains(lastFDGPETData) : x.Column3.Contains(lastFDGPETData) || x.Column3.Count() == 0))
|
||||||
|
.Select(x => x.Column4.FirstOrDefault())
|
||||||
|
.FirstOrDefault();
|
||||||
|
return resultdata ?? string.Empty;
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
if(如果没有PET)
|
||||||
|
{
|
||||||
|
"NE";
|
||||||
|
}
|
||||||
|
else if(本访视病灶的 max SUVmax(所有病灶中最大的)> 2 * 肝脏血池SUVmax)
|
||||||
|
{
|
||||||
|
"5";
|
||||||
|
}
|
||||||
|
else if(本访视病灶的SUVmax(所有病灶中最大的)>肝脏血池SUVmax)
|
||||||
|
{
|
||||||
|
"4";
|
||||||
|
}
|
||||||
|
else if(纵隔血池SUVmax<本访视点病灶的max SUVmax(所有病灶中最大的)≤1*肝脏血池SUVmax)
|
||||||
|
{
|
||||||
|
"3";
|
||||||
|
}
|
||||||
|
else if(本访视点病灶的SUVmax(所有病灶中最大的)<纵隔血池SUVmax)
|
||||||
|
{
|
||||||
|
"2";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
"";//原来是1这里改为空
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
if(本访视无PET图像)
|
||||||
|
{
|
||||||
|
"NE";
|
||||||
|
}
|
||||||
|
else if(本访视PET评分 > 基线PET评分)
|
||||||
|
{
|
||||||
|
"增大";
|
||||||
|
}
|
||||||
|
else if(本访视PET评分 < 基线PET评分)
|
||||||
|
{
|
||||||
|
"减小";
|
||||||
|
}
|
||||||
|
else if(访视PET评分 = 基线PET评分)
|
||||||
|
{
|
||||||
|
"不赋值,为空";
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
// LDi LDi= 当前病灶的长径
|
||||||
|
// LDi LDi= 当前病灶的短径
|
||||||
|
// PPD PPD= 当前病灶的PPD
|
||||||
|
|
||||||
|
if( 15mm < 当前靶病灶LDi ≤20mm && 相比最低点PPD增加百分比 ≥50% && (相比PPD最低点LDi增加值 ≥5 mm || 相比PPD最低点SDi增加值≥5 mm) )
|
||||||
|
{
|
||||||
|
// 疾病进展
|
||||||
|
}
|
||||||
|
else if( 当前靶病灶LDi>20 mm && 相比最低点PPD增加百分比 ≥50% (相比PPD最低点LDi增加值 ≥10 mm || 相比PPD最低点SDi增加值Sdi ≥10 mm))
|
||||||
|
{
|
||||||
|
// 疾病进展
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
初始值为:"无法评估"
|
||||||
|
if(0<当前垂直径≤130mm)
|
||||||
|
{
|
||||||
|
"正常";
|
||||||
|
}
|
||||||
|
else if(当前访视是基线)
|
||||||
|
{
|
||||||
|
"肿大"
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
if(基线 垂直径> 130 mm && 与基线相比脾垂直径变化值≥10 mm && 与基线相比脾肿大增加的百分比 > 50%)
|
||||||
|
{
|
||||||
|
"显著增大";
|
||||||
|
}
|
||||||
|
else if(基线 垂直径> 130 mm
|
||||||
|
&& 当前访视的前面访视中 存在垂直径≤130mm
|
||||||
|
&& 与最低点相比脾脏垂直径的增加值≥20 mm
|
||||||
|
&& 当前垂直径 > 130 mm)
|
||||||
|
{
|
||||||
|
"显著增大";
|
||||||
|
}
|
||||||
|
else if(基线垂直径≤130mm && 与基线相比脾垂直径变化值≥20 mm && 当前垂直径 > 130 mm)
|
||||||
|
{
|
||||||
|
"显著增大";
|
||||||
|
}
|
||||||
|
else if(基线期 状态为“肿大”
|
||||||
|
&& 与基线相比脾肿大增加的百分比 < -50%)
|
||||||
|
{
|
||||||
|
"部分缓解";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
"稳定";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
注:
|
||||||
|
1、与基线相比脾肿大增加的百分比的计算方式:
|
||||||
|
(1)当前垂直径大于130,且基线垂直径大于130时,=[(当前垂直径-130)-(基线垂直径-130)]/(基线垂直径-130);
|
||||||
|
(2)当前垂直径小于等于130,或者基线垂直径小于等于130时,赋值NA
|
||||||
|
|
||||||
|
2、与基线相比脾垂直径变化值的计算方式:当前访视脾脏垂直径-基线脾脏垂直径
|
|
@ -0,0 +1,9 @@
|
||||||
|
// LDi LDi= 当前病灶的长径
|
||||||
|
// LDi LDi= 当前病灶的短径
|
||||||
|
// PPD PPD= 当前病灶的PPD
|
||||||
|
|
||||||
|
if( 15mm < 当前靶病灶LDi && 相比最低点PPD增加百分比 ≥50% )
|
||||||
|
{
|
||||||
|
// 疾病进展
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
// LDi LDi= 主病灶加分裂病灶的长径之和
|
||||||
|
// LDi LDi= 主病灶加分裂病灶的短径之和
|
||||||
|
// PPD PPD= 主病灶加分裂病灶的PPD之和
|
||||||
|
|
||||||
|
if( 15mm < 当前靶病灶LDi≤20mm && 相比最低点PPD增加百分比 ≥50% && (相比PPD最低点LDi增加值 ≥5 mm || 相比PPD最低点SDi增加值≥5 mm) )
|
||||||
|
{
|
||||||
|
// 疾病进展
|
||||||
|
}
|
||||||
|
else if( 当前靶病灶LDi>20 mm && 相比最低点PPD增加百分比 ≥50% (相比PPD最低点LDi增加值 ≥10 mm || 相比PPD最低点SDi增加值Sdi ≥10 mm))
|
||||||
|
{
|
||||||
|
// 疾病进展
|
||||||
|
}
|
||||||
|
else if
|
||||||
|
(
|
||||||
|
if(之前是疾病进展)
|
||||||
|
{
|
||||||
|
// 改为存在
|
||||||
|
}
|
||||||
|
)
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
||||||
|
// LDi LDi= 当前病灶的长径
|
||||||
|
// LDi LDi= 当前病灶的短径
|
||||||
|
// PPD PPD= 当前病灶的PPD
|
||||||
|
|
||||||
|
if( 15mm < 当前靶病灶LDi && 相比最低点PPD增加百分比 ≥50% )
|
||||||
|
{
|
||||||
|
// 疾病进展
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
if(不存在PET)
|
||||||
|
{
|
||||||
|
"NE"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
"取骨髓中是否存在局灶性 FDG亲和病灶的证据 的结果"
|
||||||
|
}
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue