更新Lugano 2014标准

main
helongjun 2024-03-08 11:30:16 +08:00
parent 35cea41d72
commit f993a5e13c
27 changed files with 0 additions and 661 deletions

View File

@ -1,28 +0,0 @@
"默认SD"
if(访线)
{
"NA";
}
else if(线)
{
"ND";
}
else if()
{
"PD";
}
else if(访)
{
"NE";
}
else if(访 && 访 "太小" )
{
"CR";
}
else if(线SPD <=- 50% )
{
"PR";
}

View File

@ -1,24 +0,0 @@
if(访线)
{
"NA";
}
else if(线)
{
"ND";
}
else if(访)
{
"PD";
}
else if( 访)
{
"NE";
}
else if(/) //当前访视非靶病灶状态为消失的数量==非靶病灶的数量
{
"CR";
}
else
{
"PR/SD";
}

View File

@ -1,20 +0,0 @@
if(访线)
{
"NA";
}
else if(访)
{
"是";
}
else if()
{
"无法评估";
}
else if(访)
{
"疑似";
}
else
{
"否";
}

View File

@ -1 +0,0 @@
return "脾脏状态";

View File

@ -1 +0,0 @@
return "肝脏状态";

View File

@ -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

View File

@ -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

View File

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

View File

@ -1,24 +0,0 @@
if(PET)
{
"NE";
}
else if(访 max SUVmax> 2 * SUVmax)
{
"5";
}
else if(访SUVmax>SUVmax)
{
"4";
}
else if(SUVmax<访max SUVmax1*SUVmax)
{
"3";
}
else if(访SUVmax<SUVmax)
{
"2";
}
else
{
"";//原来是1这里改为空
}

View File

@ -1,16 +0,0 @@
if(访PET)
{
"NE";
}
else if(访PET > 线PET)
{
"增大";
}
else if(访PET < 线PET)
{
"减小";
}
else if(访PET = 线PET)
{
"不赋值,为空";
}

View File

@ -1,13 +0,0 @@
// LDi LDi= 当前病灶的长径
// LDi LDi= 当前病灶的短径
// PPD PPD= 当前病灶的PPD
if( 15mm < LDi 20mm && PPD 50 && (PPDLDi 5 mm || PPDSDi5 mm) )
{
// 疾病进展
}
else if( LDi>20 mm && PPD 50 (PPDLDi 10 mm || PPDSDiSdi 10 mm))
{
// 疾病进展
}

View File

@ -1,44 +0,0 @@
if( ==0)
{
"无法评估"
}else if130mm
{
"正常";
}
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线
1130线130=[-130-线-130]/线-130
2130线130NA
2线访-线

View File

@ -1,9 +0,0 @@
// LDi LDi= 当前病灶的长径
// LDi LDi= 当前病灶的短径
// PPD PPD= 当前病灶的PPD
if( 15mm < LDi && PPD 50 )
{
// 疾病进展
}

View File

@ -1,19 +0,0 @@
// LDi LDi= 主病灶加分裂病灶的长径之和
// LDi LDi= 主病灶加分裂病灶的短径之和
// PPD PPD= 主病灶加分裂病灶的PPD之和
if( 15mm < LDi20mm && PPD 50 && (PPDLDi 5 mm || PPDSDi5 mm) )
{
// 疾病进展
}
else if( LDi>20 mm && PPD 50 (PPDLDi 10 mm || PPDSDiSdi 10 mm))
{
// 疾病进展
}
else if
(
if()
{
// 改为存在
}
)

View File

@ -1,8 +0,0 @@
// LDi LDi= 当前病灶的长径
// LDi LDi= 当前病灶的短径
// PPD PPD= 当前病灶的PPD
if( 15mm < LDi && PPD 50 )
{
// 疾病进展
}

View File

@ -1,8 +0,0 @@
if(PET)
{
"NE"
}
else
{
"取骨髓中是否存在局灶性 FDG亲和病灶的证据 的结果"
}