diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index d3ed2678d..95b18b621 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -520,6 +520,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate //获取肝脏评估 new ReadingCalculateData (){QuestionType=QuestionType.LiverAssessment,GetStringFun=GetLiverAssessment}, + + // 骨髓中是否存在局灶性 FDG亲和病灶的证据 + new ReadingCalculateData (){QuestionType=QuestionType.EvidenceFocalFDG,GetStringFun=GetEvidenceFocalFDG}, ////靶病灶径线之和(SOD) //new ReadingCalculateData (){QuestionType=QuestionType.SOD,GetDecimalNullFun=GetSODData}, @@ -1622,7 +1625,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate var presentSpd = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SPD).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0(); if (baseLineSpd != 0) { - return (presentSpd - baseLineSpd) / baseLineSpd; + return (presentSpd - baseLineSpd)*100 / baseLineSpd; } else { @@ -1913,10 +1916,18 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate /// public async Task GetPET5PS(ReadingCalculateDto inDto) { - if (inDto.IsBaseLine) + //if (inDto.IsBaseLine) + //{ + // return SpleenAssessment.Stabilization.GetEnumInt(); + //} + + if (inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.ExistPET && x.Answer == ReadingYesOrNo.No.GetEnumInt())) { - return SpleenAssessment.Stabilization.GetEnumInt(); + return PET5PSScore.NE.GetEnumInt(); } + + + PET5PSScore result = PET5PSScore.X; // 最大Suvmax @@ -1978,6 +1989,11 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate return SUVChangeVSBaseline.NotEvaluable.GetEnumInt(); } + if (inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.ExistPET && x.Answer == ReadingYesOrNo.No.GetEnumInt())) + { + return SUVChangeVSBaseline.NotEvaluable.GetEnumInt(); + } + var result = SUVChangeVSBaseline.NotEvaluable; var baseLineTaskId = await GetBaseLineTaskId(inDto); @@ -2105,7 +2121,25 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate } #endregion + #region 骨髓中是否存在局灶性 FDG亲和病灶的证据 + /// + /// 骨髓中是否存在局灶性 FDG亲和病灶的证据 + /// + /// + /// + public async Task GetEvidenceFocalFDG(ReadingCalculateDto inDto) + { + if (inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.ExistPET && x.Answer == ReadingYesOrNo.No.GetEnumInt())) + { + return FDGAffinityFociInBM.NE.GetEnumInt(); + } + else + { + return inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.EvidenceFocalFDG).Select(x => x.Answer).FirstOrDefault(); + } + } + #endregion #region 肝脏评估 /// diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs index e2ac99422..8ace74a1f 100644 --- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs +++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs @@ -2230,12 +2230,10 @@ public enum SUVChangeVSBaseline - - - /// - /// PET 5PS 评分 - /// - public enum PET5PSScore +/// +/// PET 5PS 评分 +/// +public enum PET5PSScore { /// /// 5分