更新Lugano 2014标准
parent
35cea41d72
commit
f993a5e13c
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,28 +0,0 @@
|
||||||
|
|
||||||
"默认SD"
|
|
||||||
|
|
||||||
if(当前访视是基线)
|
|
||||||
{
|
|
||||||
"NA";
|
|
||||||
}
|
|
||||||
else if(基线未选择靶病灶)
|
|
||||||
{
|
|
||||||
"ND";
|
|
||||||
}
|
|
||||||
else if(任一单个病灶进展即可)
|
|
||||||
{
|
|
||||||
"PD";
|
|
||||||
}
|
|
||||||
else if(当前访视存在至少一个状态为“不可评估”的靶病灶)
|
|
||||||
{
|
|
||||||
"NE";
|
|
||||||
}
|
|
||||||
else if(当前访视非淋巴结靶病灶全部消失 && (当前访视淋巴结靶病灶的状态全部变为“消失” 或者 "太小" ))
|
|
||||||
{
|
|
||||||
"CR";
|
|
||||||
}
|
|
||||||
else if(与基线相比SPD变化的百分比 <=- 50% )
|
|
||||||
{
|
|
||||||
"PR";
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
if(当前访视是基线)
|
|
||||||
{
|
|
||||||
"NA";
|
|
||||||
}
|
|
||||||
else if(基线未选择非靶病灶)
|
|
||||||
{
|
|
||||||
"ND";
|
|
||||||
}
|
|
||||||
else if(随访至少存在一个状态为“显著增大”的非靶病灶)
|
|
||||||
{
|
|
||||||
"PD";
|
|
||||||
}
|
|
||||||
else if( 随访存在至少一个状态为“不可评估”的非靶病灶)
|
|
||||||
{
|
|
||||||
"NE";
|
|
||||||
}
|
|
||||||
else if(所有单个病灶/病灶组状态评估状态为“消失”) //当前访视非靶病灶状态为消失的数量==非靶病灶的数量
|
|
||||||
{
|
|
||||||
"CR";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
"PR/SD";
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
if(当前访视是基线)
|
|
||||||
{
|
|
||||||
"NA";
|
|
||||||
}
|
|
||||||
else if(当前访视存在至少一个明确新病灶)
|
|
||||||
{
|
|
||||||
"是";
|
|
||||||
}
|
|
||||||
else if(只要有任何一个新病灶状态为“无法评估”)
|
|
||||||
{
|
|
||||||
"无法评估";
|
|
||||||
}
|
|
||||||
else if(当前访视不存在明确新病灶且存在至少一个疑似新病灶)
|
|
||||||
{
|
|
||||||
"疑似";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
"否";
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
return "脾脏状态";
|
|
|
@ -1 +0,0 @@
|
||||||
return "肝脏状态";
|
|
|
@ -1,213 +0,0 @@
|
||||||
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.
Before Width: | Height: | Size: 40 KiB |
Binary file not shown.
Before Width: | Height: | Size: 44 KiB |
|
@ -1,94 +0,0 @@
|
||||||
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.
Before Width: | Height: | Size: 46 KiB |
|
@ -1,139 +0,0 @@
|
||||||
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;
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
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这里改为空
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
if(本访视无PET图像)
|
|
||||||
{
|
|
||||||
"NE";
|
|
||||||
}
|
|
||||||
else if(本访视PET评分 > 基线PET评分)
|
|
||||||
{
|
|
||||||
"增大";
|
|
||||||
}
|
|
||||||
else if(本访视PET评分 < 基线PET评分)
|
|
||||||
{
|
|
||||||
"减小";
|
|
||||||
}
|
|
||||||
else if(访视PET评分 = 基线PET评分)
|
|
||||||
{
|
|
||||||
"不赋值,为空";
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
// 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))
|
|
||||||
{
|
|
||||||
// 疾病进展
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,44 +0,0 @@
|
||||||
if(当前垂直径 ==0)
|
|
||||||
{
|
|
||||||
"无法评估"
|
|
||||||
}else if(当前垂直径≤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、与基线相比脾垂直径变化值的计算方式:当前访视脾脏垂直径-基线脾脏垂直径
|
|
|
@ -1,9 +0,0 @@
|
||||||
// LDi LDi= 当前病灶的长径
|
|
||||||
// LDi LDi= 当前病灶的短径
|
|
||||||
// PPD PPD= 当前病灶的PPD
|
|
||||||
|
|
||||||
if( 15mm < 当前靶病灶LDi && 相比最低点PPD增加百分比 ≥50% )
|
|
||||||
{
|
|
||||||
// 疾病进展
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
// 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(之前是疾病进展)
|
|
||||||
{
|
|
||||||
// 改为存在
|
|
||||||
}
|
|
||||||
)
|
|
|
@ -1,8 +0,0 @@
|
||||||
// LDi LDi= 当前病灶的长径
|
|
||||||
// LDi LDi= 当前病灶的短径
|
|
||||||
// PPD PPD= 当前病灶的PPD
|
|
||||||
|
|
||||||
if( 15mm < 当前靶病灶LDi && 相比最低点PPD增加百分比 ≥50% )
|
|
||||||
{
|
|
||||||
// 疾病进展
|
|
||||||
}
|
|
|
@ -1,8 +0,0 @@
|
||||||
if(不存在PET)
|
|
||||||
{
|
|
||||||
"NE"
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
"取骨髓中是否存在局灶性 FDG亲和病灶的证据 的结果"
|
|
||||||
}
|
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue