diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index 1ad89c57f..386c06524 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -352,7 +352,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate new ReadingCalculateData (){QuestionType=QuestionType.ExistPET,GetStringFun=GetExistPET ,ComputationTriggerList=new List(){ ComputationTrigger.InitialCalculation, } }, //垂直径乘积之和(SPD) - new ReadingCalculateData (){QuestionType=QuestionType.SPD,GetDecimalFun=GetSPD,ComputationTriggerList=new List(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}}, + new ReadingCalculateData (){QuestionType=QuestionType.SPD,GetStringFun=GetSPD,ComputationTriggerList=new List(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}}, // 与基线相比SPD变化的百分比 new ReadingCalculateData (){QuestionType=QuestionType.SPDChange,GetStringFun=CompareBaselineSPD,ComputationTriggerList=new List(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}}, @@ -1861,15 +1861,18 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate /// /// /// - public async Task GetSPD(ReadingCalculateDto inDto) + public async Task GetSPD(ReadingCalculateDto inDto) { - decimal result = 0; var rowInfo = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).SelectMany(x => x.TableRowInfoList).ToList(); - var tableQuestionList = rowInfo.SelectMany(x => x.TableQuestionList).ToList(); + if (inDto.IsBaseLine && tableQuestionList.Where(x => x.QuestionMark == QuestionMark.PPD).Count() == 0) + { + return string.Empty; + } + decimal result = 0; result = tableQuestionList.Where(x => x.QuestionMark == QuestionMark.PPD).Sum(x => x.Answer.IsNullOrEmptyReturn0()); - return result; + return result.ToString(); } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs index 50a04412e..7dbf62e26 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs @@ -352,7 +352,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate new ReadingCalculateData (){QuestionType=QuestionType.ExistPET,GetStringFun=GetExistPET ,ComputationTriggerList=new List(){ ComputationTrigger.InitialCalculation, } }, //垂直径乘积之和(SPD) - new ReadingCalculateData (){QuestionType=QuestionType.SPD,GetDecimalFun=GetSPD,ComputationTriggerList=new List(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}}, + new ReadingCalculateData (){QuestionType=QuestionType.SPD,GetStringFun=GetSPD,ComputationTriggerList=new List(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}}, // 与基线相比SPD变化的百分比 new ReadingCalculateData (){QuestionType=QuestionType.SPDChange,GetStringFun=CompareBaselineSPD,ComputationTriggerList=new List(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}}, @@ -1861,15 +1861,18 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate /// /// /// - public async Task GetSPD(ReadingCalculateDto inDto) + public async Task GetSPD(ReadingCalculateDto inDto) { - decimal result = 0; var rowInfo = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).SelectMany(x => x.TableRowInfoList).ToList(); - var tableQuestionList = rowInfo.SelectMany(x => x.TableQuestionList).ToList(); + if (inDto.IsBaseLine && tableQuestionList.Where(x => x.QuestionMark == QuestionMark.PPD).Count() == 0) + { + return string.Empty; + } + decimal result = 0; result = tableQuestionList.Where(x => x.QuestionMark == QuestionMark.PPD).Sum(x => x.Answer.IsNullOrEmptyReturn0()); - return result; + return result.ToString(); }