diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index ffe8dc811..9a71f14db 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -1734,7 +1734,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate // 脾脏评估 var spleenEvaluation = string.Empty; - var c = new List() { TargetAssessment.CR }; + List data = new List() { //ND ND 否/疑似 正常 正常 ND @@ -1815,69 +1815,114 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate NotEq=new List(){ 2}, Column1=EnumToString(new List() { TargetAssessment.NE }), Column2=EnumToString(new List() { NoTargetAssessment.PD }), - Column3=EnumToString(new List() { NewLesionAssessment.No,NewLesionAssessment.Suspected, }), - Column4=EnumToString(new List() { LiverAssessment.Normal }), - Column5=EnumToString(new List() { SpleenAssessment.Normal }), - Column6=EnumToString(new List() { CTMRIOverallAssessment.ND }), + Column3=EnumToString(new List() { NewLesionAssessment.No,NewLesionAssessment.Suspected, NewLesionAssessment.NE}), + Column4=EnumToString(new List() { LiverAssessment.Increase }), + Column5=EnumToString(new List() { SpleenAssessment.Increase }), + Column6=EnumToString(new List() { CTMRIOverallAssessment.NE }), }, + //ND NE 否/疑似/无法评估(不为是) 正常/稳定/无法评估/部分缓解(非显著增大) 正常/稳定/无法评估/部分缓解(非显著增大) NE new CalculationDto(){ - Column1=EnumToString(new List() { TargetAssessment.CR }), + NotEq=new List(){ 3,4,5}, + Column1=EnumToString(new List() { TargetAssessment.ND }), + Column2=EnumToString(new List() { NoTargetAssessment.NE }), + Column3=EnumToString(new List() { NewLesionAssessment.Yes }), + Column4=EnumToString(new List() { LiverAssessment.Increase }), + Column5=EnumToString(new List() { SpleenAssessment.Increase }), + Column6=EnumToString(new List() { CTMRIOverallAssessment.NE }), + }, + //ND ND 无法评估 正常/稳定/无法评估/部分缓解(非显著增大) 正常/稳定/无法评估/部分缓解(非显著增大) NE + new CalculationDto(){ + NotEq=new List(){ 4,5}, + Column1=EnumToString(new List() { TargetAssessment.ND }), + Column2=EnumToString(new List() { NoTargetAssessment.ND }), + Column3=EnumToString(new List() { NewLesionAssessment.NE }), + Column4=EnumToString(new List() { LiverAssessment.Increase }), + Column5=EnumToString(new List() { SpleenAssessment.Increase }), + Column6=EnumToString(new List() { CTMRIOverallAssessment.NE }), + }, + //ND ND 否/疑似 无法评估 正常/稳定/无法评估/部分缓解(非显著增大) NE + new CalculationDto(){ + NotEq=new List(){ 4}, + Column1=EnumToString(new List() { TargetAssessment.ND }), Column2=EnumToString(new List() { NoTargetAssessment.ND }), Column3=EnumToString(new List() { NewLesionAssessment.No,NewLesionAssessment.Suspected }), - Column4=EnumToString(new List() { LiverAssessment.Normal }), - Column5=EnumToString(new List() { SpleenAssessment.Normal }), - Column6=EnumToString(new List() { CTMRIOverallAssessment.ND }), + Column4=EnumToString(new List() { LiverAssessment.NotEvaluable }), + Column5=EnumToString(new List() { SpleenAssessment.Increase }), + Column6=EnumToString(new List() { CTMRIOverallAssessment.NE }), }, + // ND ND 否/疑似 正常/稳定 NE NE new CalculationDto(){ - Column1=EnumToString(new List() { TargetAssessment.CR }), + Column1=EnumToString(new List() { TargetAssessment.ND }), Column2=EnumToString(new List() { NoTargetAssessment.ND }), Column3=EnumToString(new List() { NewLesionAssessment.No,NewLesionAssessment.Suspected }), - Column4=EnumToString(new List() { LiverAssessment.Normal }), - Column5=EnumToString(new List() { SpleenAssessment.Normal }), - Column6=EnumToString(new List() { CTMRIOverallAssessment.ND }), + Column4=EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization }), + Column5=EnumToString(new List() { SpleenAssessment.NotEvaluable }), + Column6=EnumToString(new List() { CTMRIOverallAssessment.NE }), }, + //PR 非PD 否/疑似/无法评估(不为是) 正常/稳定 正常/部分缓解 PR new CalculationDto(){ - Column1=EnumToString(new List() { TargetAssessment.CR }), - Column2=EnumToString(new List() { NoTargetAssessment.ND }), - Column3=EnumToString(new List() { NewLesionAssessment.No,NewLesionAssessment.Suspected }), - Column4=EnumToString(new List() { LiverAssessment.Normal }), - Column5=EnumToString(new List() { SpleenAssessment.Normal }), - Column6=EnumToString(new List() { CTMRIOverallAssessment.ND }), + NotEq=new List(){ 2,3}, + Column1=EnumToString(new List() { TargetAssessment.PR }), + Column2=EnumToString(new List() { NoTargetAssessment.PD }), + Column3=EnumToString(new List() { NewLesionAssessment.Yes }), + Column4=EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization}), + Column5=EnumToString(new List() { SpleenAssessment.Normal,SpleenAssessment.Remission }), + Column6=EnumToString(new List() { CTMRIOverallAssessment.PR }), }, - new CalculationDto(){ + //CR (PR/SD)或者NE 否/疑似/无法评估(不为是) 正常/部分缓解 正常/部分缓解 PR + new CalculationDto(){ + NotEq=new List(){ 3}, Column1=EnumToString(new List() { TargetAssessment.CR }), - Column2=EnumToString(new List() { NoTargetAssessment.ND }), - Column3=EnumToString(new List() { NewLesionAssessment.No,NewLesionAssessment.Suspected }), - Column4=EnumToString(new List() { LiverAssessment.Normal }), - Column5=EnumToString(new List() { SpleenAssessment.Normal }), - Column6=EnumToString(new List() { CTMRIOverallAssessment.ND }), - }, - new CalculationDto(){ - Column1=EnumToString(new List() { TargetAssessment.CR }), - Column2=EnumToString(new List() { NoTargetAssessment.ND }), - Column3=EnumToString(new List() { NewLesionAssessment.No,NewLesionAssessment.Suspected }), - Column4=EnumToString(new List() { LiverAssessment.Normal }), - Column5=EnumToString(new List() { SpleenAssessment.Normal }), - Column6=EnumToString(new List() { CTMRIOverallAssessment.ND }), + Column2=EnumToString(new List() { NoTargetAssessment.PRSD,NoTargetAssessment.NE }), + Column3=EnumToString(new List() { NewLesionAssessment.Yes,NewLesionAssessment.Yes }), + Column4=EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization}), + Column5=EnumToString(new List() { SpleenAssessment.Normal,SpleenAssessment.Remission }), + Column6=EnumToString(new List() { CTMRIOverallAssessment.PR }), }, + //CR CR/ND 疑似/无法评估 正常/稳定 正常/部分缓解 PR + new CalculationDto(){ + Column1=EnumToString(new List() { TargetAssessment.CR }), + Column2=EnumToString(new List() { NoTargetAssessment.CR,NoTargetAssessment.ND }), + Column3=EnumToString(new List() { NewLesionAssessment.Suspected, NewLesionAssessment.NE }), + Column4=EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization}), + Column5=EnumToString(new List() { SpleenAssessment.Normal,SpleenAssessment.Remission }), + Column6=EnumToString(new List() { CTMRIOverallAssessment.PR }), + }, + // ND CR 疑似/无法评估 正常/稳定 正常/部分缓解 PR + new CalculationDto(){ + + Column1=EnumToString(new List() { TargetAssessment.ND }), + Column2=EnumToString(new List() { NoTargetAssessment.CR }), + Column3=EnumToString(new List() { NewLesionAssessment.Suspected, NewLesionAssessment.NE }), + Column4=EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization}), + Column5=EnumToString(new List() { SpleenAssessment.Normal,SpleenAssessment.Remission }), + Column6=EnumToString(new List() { CTMRIOverallAssessment.PR }), + }, + new CalculationDto(){ + Column1=EnumToString(new List() { }), + Column2=EnumToString(new List() { }), + Column3=EnumToString(new List() { }), + Column4=EnumToString(new List() { }), + Column5=EnumToString(new List() { }), + Column6=EnumToString(new List() { 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 - /// - /// 枚举数组转字符串数组 方法名简短 - /// - /// - /// - /// - private List EnumToString(List emus) where T : Enum - { - return emus.Select(x => ((int)(object)x).ToString()).ToList(); - } + #region 脾脏评估 diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs index e88bf9725..87c38a04e 100644 --- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs +++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs @@ -1018,7 +1018,7 @@ namespace IRaCIS.Core.Domain.Share Suspected = 1, /// - /// NE + /// NE 无法评估 /// NE = 2, diff --git a/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs b/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs index 7460d32d0..ceac611fd 100644 --- a/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs +++ b/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs @@ -58,6 +58,17 @@ namespace IRaCIS.Core.Infra.EFCore.Common } } + /// + /// 枚举数组转字符串数组 方法名简短 + /// + /// + /// + /// + public static List EnumToString(List emus) where T : Enum + { + return emus.Select(x => ((int)(object)x).ToString()).ToList(); + } + /// /// 获取语言名称 ///