计算修改

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 spleenEvaluation = string.Empty;
var c = new List<TargetAssessment>() { TargetAssessment.CR };
List<CalculationDto> data = new List<CalculationDto>() { List<CalculationDto> data = new List<CalculationDto>() {
//ND ND 否/疑似 正常 正常 ND //ND ND 否/疑似 正常 正常 ND
@ -1815,69 +1815,114 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
NotEq=new List<int>(){ 2}, NotEq=new List<int>(){ 2},
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.NE }), Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.NE }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.PD }), Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.PD }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected, }), Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected, NewLesionAssessment.NE}),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }), Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Increase }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }), Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Increase }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }), Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.NE }),
}, },
//ND NE 否/疑似/无法评估(不为是) 正常/稳定/无法评估/部分缓解(非显著增大) 正常/稳定/无法评估/部分缓解(非显著增大) NE
new CalculationDto(){ 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 }), Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }), Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }), Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.NotEvaluable }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }), Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Increase }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }), Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.NE }),
}, },
// ND ND 否/疑似 正常/稳定 NE NE
new CalculationDto(){ new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }), Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.ND }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }), Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }), Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }), Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal,LiverAssessment.Stabilization }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }), Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.NotEvaluable }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }), Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.NE }),
}, },
//PR 非PD 否/疑似/无法评估(不为是) 正常/稳定 正常/部分缓解 PR
new CalculationDto(){ new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }), NotEq=new List<int>(){ 2,3},
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }), Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.PR }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }), Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.PD }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }), Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.Yes }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }), Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal,LiverAssessment.Stabilization}),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }), 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 }), Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }), Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.PRSD,NoTargetAssessment.NE }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }), Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.Yes,NewLesionAssessment.Yes }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }), Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal,LiverAssessment.Stabilization}),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }), Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal,SpleenAssessment.Remission }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }), Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.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 }),
}, },
//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 #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 脾脏评估 #region 脾脏评估

View File

@ -1018,7 +1018,7 @@ namespace IRaCIS.Core.Domain.Share
Suspected = 1, Suspected = 1,
/// <summary> /// <summary>
/// NE /// NE 无法评估
/// </summary> /// </summary>
NE = 2, 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>
/// 获取语言名称 /// 获取语言名称
/// </summary> /// </summary>