计算修改

IRC_NewDev
he 2023-09-06 15:48:39 +08:00
parent 1f45a3aa9f
commit 2cada0fcbe
3 changed files with 101 additions and 45 deletions

View File

@ -1734,7 +1734,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
// 脾脏评估
var spleenEvaluation = string.Empty;
var c = new List<TargetAssessment>() { TargetAssessment.CR };
List<CalculationDto> data = new List<CalculationDto>() {
//ND ND 否/疑似 正常 正常 ND
@ -1815,69 +1815,114 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
NotEq=new List<int>(){ 2},
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.NE }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.PD }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected, }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected, NewLesionAssessment.NE}),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Increase }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Increase }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.NE }),
},
//ND NE 否/疑似/无法评估(不为是) 正常/稳定/无法评估/部分缓解(非显著增大) 正常/稳定/无法评估/部分缓解(非显著增大) NE
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }),
NotEq=new List<int>(){ 3,4,5},
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.ND }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.NE }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.Yes }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Increase }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Increase }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.NE }),
},
//ND ND 无法评估 正常/稳定/无法评估/部分缓解(非显著增大) 正常/稳定/无法评估/部分缓解(非显著增大) NE
new CalculationDto(){
NotEq=new List<int>(){ 4,5},
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.ND }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.NE }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Increase }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Increase }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.NE }),
},
//ND ND 否/疑似 无法评估 正常/稳定/无法评估/部分缓解(非显著增大) NE
new CalculationDto(){
NotEq=new List<int>(){ 4},
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.ND }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.NotEvaluable }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Increase }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.NE }),
},
// ND ND 否/疑似 正常/稳定 NE NE
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }),
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.ND }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal,LiverAssessment.Stabilization }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.NotEvaluable }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.NE }),
},
//PR 非PD 否/疑似/无法评估(不为是) 正常/稳定 正常/部分缓解 PR
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
NotEq=new List<int>(){ 2,3},
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.PR }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.PD }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.Yes }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal,LiverAssessment.Stabilization}),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal,SpleenAssessment.Remission }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.PR }),
},
new CalculationDto(){
//CR PR/SD或者NE 否/疑似/无法评估(不为是) 正常/部分缓解 正常/部分缓解 PR
new CalculationDto(){
NotEq=new List<int>(){ 3},
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
},
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.PRSD,NoTargetAssessment.NE }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.Yes,NewLesionAssessment.Yes }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal,LiverAssessment.Stabilization}),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal,SpleenAssessment.Remission }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.PR }),
},
//CR CR/ND 疑似/无法评估 正常/稳定 正常/部分缓解 PR
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.CR,NoTargetAssessment.ND }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.Suspected, NewLesionAssessment.NE }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal,LiverAssessment.Stabilization}),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal,SpleenAssessment.Remission }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.PR }),
},
// ND CR 疑似/无法评估 正常/稳定 正常/部分缓解 PR
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.ND }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.CR }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.Suspected, NewLesionAssessment.NE }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal,LiverAssessment.Stabilization}),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal,SpleenAssessment.Remission }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.PR }),
},
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { }),
Column2=EnumToString(new List<NoTargetAssessment>() { }),
Column3=EnumToString(new List<NewLesionAssessment>() { }),
Column4=EnumToString(new List<LiverAssessment>() { }),
Column5=EnumToString(new List<SpleenAssessment>() { }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.SD }),
},
};
return string.Empty;
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;
}
#endregion
/// <summary>
/// 枚举数组转字符串数组 方法名简短
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="emus"></param>
/// <returns></returns>
private List<string> EnumToString<T>(List<T> emus) where T : Enum
{
return emus.Select(x => ((int)(object)x).ToString()).ToList();
}
#region 脾脏评估

View File

@ -1018,7 +1018,7 @@ namespace IRaCIS.Core.Domain.Share
Suspected = 1,
/// <summary>
/// NE
/// NE 无法评估
/// </summary>
NE = 2,

View File

@ -58,6 +58,17 @@ namespace IRaCIS.Core.Infra.EFCore.Common
}
}
/// <summary>
/// 枚举数组转字符串数组 方法名简短
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="emus"></param>
/// <returns></returns>
public static List<string> EnumToString<T>(List<T> emus) where T : Enum
{
return emus.Select(x => ((int)(object)x).ToString()).ToList();
}
/// <summary>
/// 获取语言名称
/// </summary>