diff --git a/Lugano/20231205 lugano病灶验证.xlsx b/Lugano/20231205 lugano病灶验证.xlsx deleted file mode 100644 index c421668..0000000 Binary files a/Lugano/20231205 lugano病灶验证.xlsx and /dev/null differ diff --git a/Lugano/20231205-Lugano 2014_ECRF.xlsx b/Lugano/20231205-Lugano 2014_ECRF.xlsx deleted file mode 100644 index cfdf0fd..0000000 Binary files a/Lugano/20231205-Lugano 2014_ECRF.xlsx and /dev/null differ diff --git a/Lugano/20231205-Lugano 2014默认部位列表-确认版.xlsx b/Lugano/20231205-Lugano 2014默认部位列表-确认版.xlsx deleted file mode 100644 index 281392a..0000000 Binary files a/Lugano/20231205-Lugano 2014默认部位列表-确认版.xlsx and /dev/null differ diff --git a/Lugano/20231205-Lugano2014 标准版阅片单元配置表格问题.xlsx b/Lugano/20231205-Lugano2014 标准版阅片单元配置表格问题.xlsx deleted file mode 100644 index 92f7826..0000000 Binary files a/Lugano/20231205-Lugano2014 标准版阅片单元配置表格问题.xlsx and /dev/null differ diff --git a/Lugano/20231205-lugano阅片标准优化需求.docx b/Lugano/20231205-lugano阅片标准优化需求.docx deleted file mode 100644 index 7b945f2..0000000 Binary files a/Lugano/20231205-lugano阅片标准优化需求.docx and /dev/null differ diff --git a/Lugano/20231205-lugano阅片标准需求.docx b/Lugano/20231205-lugano阅片标准需求.docx deleted file mode 100644 index cfa3098..0000000 Binary files a/Lugano/20231205-lugano阅片标准需求.docx and /dev/null differ diff --git a/Lugano/评估算法/1、靶病灶评估.cs b/Lugano/评估算法/1、靶病灶评估.cs deleted file mode 100644 index 9d88e47..0000000 --- a/Lugano/评估算法/1、靶病灶评估.cs +++ /dev/null @@ -1,28 +0,0 @@ - -"默认SD" - -if(当前访视是基线) -{ - "NA"; -} -else if(基线未选择靶病灶) -{ - "ND"; -} -else if(任一单个病灶进展即可) -{ - "PD"; -} -else if(当前访视存在至少一个状态为“不可评估”的靶病灶) -{ - "NE"; -} -else if(当前访视非淋巴结靶病灶全部消失 && (当前访视淋巴结靶病灶的状态全部变为“消失” 或者 "太小" )) -{ - "CR"; -} -else if(与基线相比SPD变化的百分比 <=- 50% ) -{ - "PR"; -} - diff --git a/Lugano/评估算法/2、非靶病灶评估.cs b/Lugano/评估算法/2、非靶病灶评估.cs deleted file mode 100644 index 173eed8..0000000 --- a/Lugano/评估算法/2、非靶病灶评估.cs +++ /dev/null @@ -1,24 +0,0 @@ -if(当前访视是基线) -{ - "NA"; -} -else if(基线未选择非靶病灶) -{ - "ND"; -} -else if(随访至少存在一个状态为“显著增大”的非靶病灶) -{ - "PD"; -} -else if( 随访存在至少一个状态为“不可评估”的非靶病灶) -{ - "NE"; -} -else if(所有单个病灶/病灶组状态评估状态为“消失”) //当前访视非靶病灶状态为消失的数量==非靶病灶的数量 -{ - "CR"; -} -else -{ - "PR/SD"; -} \ No newline at end of file diff --git a/Lugano/评估算法/3、新病灶评估.cs b/Lugano/评估算法/3、新病灶评估.cs deleted file mode 100644 index 02bb309..0000000 --- a/Lugano/评估算法/3、新病灶评估.cs +++ /dev/null @@ -1,20 +0,0 @@ -if(当前访视是基线) -{ - "NA"; -} -else if(当前访视存在至少一个明确新病灶) -{ - "是"; -} -else if(只要有任何一个新病灶状态为“无法评估”) -{ - "无法评估"; -} -else if(当前访视不存在明确新病灶且存在至少一个疑似新病灶) -{ - "疑似"; -} -else -{ - "否"; -} \ No newline at end of file diff --git a/Lugano/评估算法/4、脾脏评估.cs b/Lugano/评估算法/4、脾脏评估.cs deleted file mode 100644 index 013e2da..0000000 --- a/Lugano/评估算法/4、脾脏评估.cs +++ /dev/null @@ -1 +0,0 @@ -return "脾脏状态"; \ No newline at end of file diff --git a/Lugano/评估算法/5、肝脏评估.cs b/Lugano/评估算法/5、肝脏评估.cs deleted file mode 100644 index 1cf823a..0000000 --- a/Lugano/评估算法/5、肝脏评估.cs +++ /dev/null @@ -1 +0,0 @@ -return "肝脏状态"; \ No newline at end of file diff --git a/Lugano/评估算法/6、CMRI总体评估实现代码.cs b/Lugano/评估算法/6、CMRI总体评估实现代码.cs deleted file mode 100644 index ea3812d..0000000 --- a/Lugano/评估算法/6、CMRI总体评估实现代码.cs +++ /dev/null @@ -1,213 +0,0 @@ -public async Task 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 data = new List() { - - //ND ND 否/疑似 正常 正常 ND - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.ND }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No, NewLesionAssessment.Suspected }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND }), - }, - - //PD 任一结果 任一结果 任一结果 任一结果 PD - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.PD }), - Column2=ReadingCommon.EnumToString(new List() { }), - Column3=ReadingCommon.EnumToString(new List() { }), - Column4=ReadingCommon.EnumToString(new List() { }), - Column5=ReadingCommon.EnumToString(new List() { }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), - }, - //任一结果 PD 任一结果 任一结果 任一结果 PD - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.PD }), - Column3=ReadingCommon.EnumToString(new List() {}), - Column4=ReadingCommon.EnumToString(new List() { }), - Column5=ReadingCommon.EnumToString(new List() { }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), - }, - //任一结果 任一结果 是 任一结果 任一结果 PD - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { }), - Column2=ReadingCommon.EnumToString(new List() { }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Yes }), - Column4=ReadingCommon.EnumToString(new List() { }), - Column5=ReadingCommon.EnumToString(new List() { }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), - }, - //任一结果 任一结果 任一结果 显著增大 任一结果 PD - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { }), - Column2=ReadingCommon.EnumToString(new List() { }), - Column3=ReadingCommon.EnumToString(new List() { }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Increase }), - Column5=ReadingCommon.EnumToString(new List() { }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), - }, - //任一结果 任一结果 任一结果 任一结果 显著增大 PD - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { }), - Column2=ReadingCommon.EnumToString(new List() { }), - Column3=ReadingCommon.EnumToString(new List() {}), - Column4=ReadingCommon.EnumToString(new List() { }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Increase }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), - }, - //CR CR/ND 否 正常 正常 CR - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.CR }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.CR, NoTargetAssessment.ND }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR }), - }, - //ND CR 否 正常 正常 CR - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.CR }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR }), - }, - //NE 非PD 否/疑似/无法评估 非显著增大 非显著增大 NE - new CalculationDto(){ - NotEq=new List(){ 2,4,5}, - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.NE }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.PD }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No,NewLesionAssessment.Suspected, NewLesionAssessment.NE}), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Increase }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Increase }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), - }, - //ND NE 否/疑似/无法评估(不为是) 正常/稳定/无法评估/部分缓解(非显著增大) 正常/稳定/无法评估/部分缓解(非显著增大) NE - new CalculationDto(){ - NotEq=new List(){ 3,4,5}, - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Yes }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Increase }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Increase }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), - }, - //ND ND 无法评估 正常/稳定/无法评估/部分缓解(非显著增大) 正常/稳定/无法评估/部分缓解(非显著增大) NE - new CalculationDto(){ - NotEq=new List(){ 4,5}, - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.ND }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.NE }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Increase }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Increase }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), - }, - //ND ND 否/疑似 无法评估 正常/稳定/无法评估/部分缓解(非显著增大) NE - new CalculationDto(){ - NotEq=new List(){ 5}, - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.ND }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No,NewLesionAssessment.Suspected }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.NotEvaluable }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Increase }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), - }, - // ND ND 否/疑似 正常/稳定 NE NE - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.ND }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No,NewLesionAssessment.Suspected }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.NotEvaluable }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), - }, - //PR 非PD 否/疑似/无法评估(不为是) 正常/稳定 正常/部分缓解 PR - new CalculationDto(){ - NotEq=new List(){ 2,3}, - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.PR }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.PD }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Yes }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization}), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal,SpleenAssessment.Remission }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PR }), - }, - //CR (PR/SD)或者NE 否/疑似/无法评估(不为是) 正常/部分缓解 正常/部分缓解 PR - new CalculationDto(){ - NotEq=new List(){ 3}, - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.CR }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.PRSD,NoTargetAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Yes,NewLesionAssessment.Yes }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization}), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal,SpleenAssessment.Remission }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PR }), - }, - //CR CR/ND 疑似/无法评估 正常/稳定 正常/部分缓解 PR - new CalculationDto(){ - - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.CR }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.CR,NoTargetAssessment.ND }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Suspected, NewLesionAssessment.NE }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization}), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal,SpleenAssessment.Remission }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PR }), - }, - // ND CR 疑似/无法评估 正常/稳定 正常/部分缓解 PR - new CalculationDto(){ - - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.CR }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Suspected, NewLesionAssessment.NE }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization}), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal,SpleenAssessment.Remission }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PR }), - }, - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { }), - Column2=ReadingCommon.EnumToString(new List() { }), - Column3=ReadingCommon.EnumToString(new List() { }), - Column4=ReadingCommon.EnumToString(new List() { }), - Column5=ReadingCommon.EnumToString(new List() { }), - Column6=ReadingCommon.EnumToString(new List() { 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; - } \ No newline at end of file diff --git a/Lugano/评估算法/6、CTMRI总体评估-对应表.png b/Lugano/评估算法/6、CTMRI总体评估-对应表.png deleted file mode 100644 index cc3fb8d..0000000 Binary files a/Lugano/评估算法/6、CTMRI总体评估-对应表.png and /dev/null differ diff --git a/Lugano/评估算法/7、FDG-PET评估-对应表.png b/Lugano/评估算法/7、FDG-PET评估-对应表.png deleted file mode 100644 index 4c7e1c4..0000000 Binary files a/Lugano/评估算法/7、FDG-PET评估-对应表.png and /dev/null differ diff --git a/Lugano/评估算法/7、FDG-PET评估实现代码.cs b/Lugano/评估算法/7、FDG-PET评估实现代码.cs deleted file mode 100644 index 2dace19..0000000 --- a/Lugano/评估算法/7、FDG-PET评估实现代码.cs +++ /dev/null @@ -1,94 +0,0 @@ - public async Task 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 data = new List() { - - //NE NE NE NE - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.NE }), - Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.NotEvaluable }), - Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.NE}), - Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - }, - - //NE/5分/4分/3分/2分/1分/X NE/增大/减少/无明显变化 是,存在新的/复发的FDG高亲和性病灶 PMD - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.NE,PET5PSScore.Five,PET5PSScore.Four,PET5PSScore.Three,PET5PSScore.Two,PET5PSScore.One,PET5PSScore.X, }), - Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.NotEvaluable,SUVChangeVSBaseline.Increase,SUVChangeVSBaseline.Decrease,SUVChangeVSBaseline.DidNotChange, }), - Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.YesHaveNew,}), - Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD }), - }, - - //5分/4分 增大 NE/(是,存在新的/复发的FDG高亲和性病灶)/(是,存在持续的局灶性变化)/否 PMD - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Five,PET5PSScore.Four, }), - Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.Increase }), - Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.NE, FDGAffinityFociInBM.YesHaveNew, FDGAffinityFociInBM.YesSustain, FDGAffinityFociInBM.No}), - Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD }), - }, - - //3分/2分/1分/X NE/增大/减少/无明显变化 否 CMR - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Three,PET5PSScore.Two,PET5PSScore.One,PET5PSScore.X, }), - Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.NotEvaluable,SUVChangeVSBaseline.Increase,SUVChangeVSBaseline.Decrease,SUVChangeVSBaseline.DidNotChange, }), - Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.No}), - Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR }), - }, - - //3分/2分/1分/X NE/增大/减少/无明显变化 是,存在持续的局灶性变化 PMR - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Three,PET5PSScore.Two,PET5PSScore.One,PET5PSScore.X, }), - Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.NotEvaluable,SUVChangeVSBaseline.Increase,SUVChangeVSBaseline.Decrease,SUVChangeVSBaseline.DidNotChange, }), - Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.YesSustain }), - Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMR }), - }, - - //5分/4分 减少 否/是,存在持续的局灶性变化 PMR - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Five,PET5PSScore.Four }), - Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.Decrease }), - Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.No, FDGAffinityFociInBM.YesSustain}), - Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMR }), - }, - - //5分/4分 无明显变化 否/是,存在持续的局灶性变化 NMR - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Five,PET5PSScore.Four }), - Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.DidNotChange }), - Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.No, FDGAffinityFociInBM.YesSustain}), - Column4=ReadingCommon.EnumToString(new List() { 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; - } \ No newline at end of file diff --git a/Lugano/评估算法/8、影像学整体肿瘤评估-对应表更新.png b/Lugano/评估算法/8、影像学整体肿瘤评估-对应表更新.png deleted file mode 100644 index b2fd2dc..0000000 Binary files a/Lugano/评估算法/8、影像学整体肿瘤评估-对应表更新.png and /dev/null differ diff --git a/Lugano/评估算法/8、影像学整体肿瘤评估代码.cs b/Lugano/评估算法/8、影像学整体肿瘤评估代码.cs deleted file mode 100644 index 78b9aa1..0000000 --- a/Lugano/评估算法/8、影像学整体肿瘤评估代码.cs +++ /dev/null @@ -1,139 +0,0 @@ - public async Task 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 data = new List() { - - //1、ND NE NE/NA ND - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA}), - Column4=ReadingCommon.EnumToString(new List() { 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.ND, CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD}), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, }), - Column3=ReadingCommon.EnumToString(new List() {FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMDPD }), - }, - //3、ND/PD/CR/NE/PR/SD NE PMD PMD/PD - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND, CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD}), - Column2=ReadingCommon.EnumToString(new List() {FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, }), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMDPD }), - }, - //4、PD NE CMR/PMR/NMR/NE/NA PMD/PD - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD}), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMDPD }), - }, - //5、NE NE NE/NA NE - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }), - Column4=ReadingCommon.EnumToString(new List() { 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.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND,CTMRIOverallAssessment.PD }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.CMRCR }), - }, - //7、CR NE NE/NA CMR/CR - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.CMRCR }), - }, - - //8、 CR、PR、SD、NE、ND NE CMR CMR/CR - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR,}), - Column4=ReadingCommon.EnumToString(new List() { 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.ND, CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMR }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE,FDGPETOverallAssessment.NA, }), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMRPR }), - }, - //10、PR NE NE/NA PMR/PR - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PR }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMRPR }), - }, - //11、CR/PR/SD/NE/ND NE PMR PMR/PR - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMR}), - Column4=ReadingCommon.EnumToString(new List() { 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.ND,CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NMR }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR, FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.NMRSD }), - }, - //13、CR/PR/SD/ND/NE NE NMR NMR/SD - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR, CTMRIOverallAssessment.PR, CTMRIOverallAssessment.SD, CTMRIOverallAssessment.ND, CTMRIOverallAssessment.NE }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NMR}), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.NMRSD }), - }, - //14、SD NE NE/NA NMR/SD - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.SD }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}), - Column4=ReadingCommon.EnumToString(new List() { 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; - } \ No newline at end of file diff --git a/Lugano/评估算法/PET5PS评分.cs b/Lugano/评估算法/PET5PS评分.cs deleted file mode 100644 index 0126e40..0000000 --- a/Lugano/评估算法/PET5PS评分.cs +++ /dev/null @@ -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这里改为空 -} \ No newline at end of file diff --git a/Lugano/评估算法/与基线相比摄取值变化.cs b/Lugano/评估算法/与基线相比摄取值变化.cs deleted file mode 100644 index 20be0c6..0000000 --- a/Lugano/评估算法/与基线相比摄取值变化.cs +++ /dev/null @@ -1,16 +0,0 @@ -if(本访视无PET图像) -{ - "NE"; -} -else if(本访视PET评分 > 基线PET评分) -{ - "增大"; -} -else if(本访视PET评分 < 基线PET评分) -{ - "减小"; -} -else if(访视PET评分 = 基线PET评分) -{ - "不赋值,为空"; -} diff --git a/Lugano/评估算法/普通靶病灶的疾病进展状态 - 前端.cs b/Lugano/评估算法/普通靶病灶的疾病进展状态 - 前端.cs deleted file mode 100644 index bb34272..0000000 --- a/Lugano/评估算法/普通靶病灶的疾病进展状态 - 前端.cs +++ /dev/null @@ -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)) -{ - // 疾病进展 -} - diff --git a/Lugano/评估算法/脾脏状态.cs b/Lugano/评估算法/脾脏状态.cs deleted file mode 100644 index 76b28fd..0000000 --- a/Lugano/评估算法/脾脏状态.cs +++ /dev/null @@ -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、与基线相比脾垂直径变化值的计算方式:当前访视脾脏垂直径-基线脾脏垂直径 diff --git a/Lugano/评估算法/融合靶病灶的疾病进展状态 - 前端.cs b/Lugano/评估算法/融合靶病灶的疾病进展状态 - 前端.cs deleted file mode 100644 index 517b429..0000000 --- a/Lugano/评估算法/融合靶病灶的疾病进展状态 - 前端.cs +++ /dev/null @@ -1,9 +0,0 @@ -// LDi LDi= 当前病灶的长径 -// LDi LDi= 当前病灶的短径 -// PPD PPD= 当前病灶的PPD - -if( 15mm < 当前靶病灶LDi && 相比最低点PPD增加百分比 ≥50% ) -{ - // 疾病进展 -} - diff --git a/Lugano/评估算法/靶病灶分裂主病灶的疾病进展状态.cs b/Lugano/评估算法/靶病灶分裂主病灶的疾病进展状态.cs deleted file mode 100644 index ce58efc..0000000 --- a/Lugano/评估算法/靶病灶分裂主病灶的疾病进展状态.cs +++ /dev/null @@ -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(之前是疾病进展) - { - // 改为存在 - } -) diff --git a/Lugano/评估算法/靶病灶融合主病灶的疾病进展状态.cs b/Lugano/评估算法/靶病灶融合主病灶的疾病进展状态.cs deleted file mode 100644 index c368c65..0000000 --- a/Lugano/评估算法/靶病灶融合主病灶的疾病进展状态.cs +++ /dev/null @@ -1,8 +0,0 @@ -// LDi LDi= 当前病灶的长径 -// LDi LDi= 当前病灶的短径 -// PPD PPD= 当前病灶的PPD - -if( 15mm < 当前靶病灶LDi && 相比最低点PPD增加百分比 ≥50% ) -{ - // 疾病进展 -} diff --git a/Lugano/评估算法/骨髓中是否存在局灶性 FDG亲和病灶的证据.cs b/Lugano/评估算法/骨髓中是否存在局灶性 FDG亲和病灶的证据.cs deleted file mode 100644 index 3e1523c..0000000 --- a/Lugano/评估算法/骨髓中是否存在局灶性 FDG亲和病灶的证据.cs +++ /dev/null @@ -1,8 +0,0 @@ -if(不存在PET) -{ - "NE" -} -else -{ - "取骨髓中是否存在局灶性 FDG亲和病灶的证据 的结果" -} \ No newline at end of file diff --git a/Lugano/阅片交互 - 病灶SUV测量-不可切换图像.pdf b/Lugano/阅片交互 - 病灶SUV测量-不可切换图像.pdf deleted file mode 100644 index 93af7c3..0000000 Binary files a/Lugano/阅片交互 - 病灶SUV测量-不可切换图像.pdf and /dev/null differ diff --git a/Lugano/阅片交互 - 病灶SUV测量-不可切换图像.vsdx b/Lugano/阅片交互 - 病灶SUV测量-不可切换图像.vsdx deleted file mode 100644 index 0d1f231..0000000 Binary files a/Lugano/阅片交互 - 病灶SUV测量-不可切换图像.vsdx and /dev/null differ