From c469b5e50655880db9de39c50eeb613ec4e9b938 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Wed, 18 Oct 2023 14:40:55 +0800 Subject: [PATCH 01/16] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/ReadingCalculate/LuganoCalculateService.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index 9de580fbe..d3ed2678d 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -2414,10 +2414,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { result = TargetAssessment.PD; } - //在排除PD后,有任一靶病灶为NE状态 - else if (tableQuestions.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(TargetState.UnableEvaluate))) + //当前访视没有任何一个状态为“疾病进展”的靶病灶; + //当前访视存在至少一个状态为“不可评估”的靶病灶。 + else if ( + !tableQuestions.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(TargetState.DiseaseProgression))&& + tableQuestions.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(TargetState.UnableEvaluate))) { - result = TargetAssessment.PD; + result = TargetAssessment.NE; } //1、基线非淋巴结靶病灶不存在,或者当前访视非淋巴结靶病灶全部消失; //并且 2.当前访视淋巴结靶病灶的状态全部变为“消失”。 From 91bd2ac69f7d53d676bc6216cb6373090339ba13 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Wed, 18 Oct 2023 16:23:30 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LuganoCalculateService.cs | 40 +++++++++++++++++-- IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 10 ++--- 2 files changed, 41 insertions(+), 9 deletions(-) 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分 From e5f10d052a1372b0f0ee55b6487675a2aa9ed8cb Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Wed, 18 Oct 2023 16:28:25 +0800 Subject: [PATCH 03/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/ReadingCalculate/LuganoCalculateService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index 95b18b621..87320cdee 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -493,7 +493,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate new ReadingCalculateData (){QuestionType=QuestionType.NoTargetLesion,GetStringFun=GetNoTargetLesionEvaluate}, //新病灶评估 - new ReadingCalculateData (){QuestionType=QuestionType.NewLesions,GetStringFun=GetNewLesionEvaluate}, + new ReadingCalculateData (){QuestionType=QuestionType.NewLesionEvaluation,GetStringFun=GetNewLesionEvaluate}, //CT/MRI new ReadingCalculateData (){QuestionType=QuestionType.CTandMRI,GetStringFun=CTMRIEvaluation}, From 682a5d1c44587353bf6e1eb2513e4907d389ad47 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Wed, 18 Oct 2023 17:57:37 +0800 Subject: [PATCH 04/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LuganoCalculateService.cs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index 87320cdee..b5476d799 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -2379,11 +2379,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate /// public async Task GetTargetLesionEvaluate(ReadingCalculateDto inDto) { + + + var rowInfo = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).SelectMany(x => x.TableRowInfoList).ToList(); - //if (inDto.IsBaseLine) - //{ - // return TargetAssessment.NA.GetEnumInt(); - //} + if (inDto.IsBaseLine) + { + return TargetAssessment.NA.GetEnumInt(); + } var tableQuestions = rowInfo.SelectMany(x => x.TableQuestionList).ToList(); TargetAssessment result = TargetAssessment.SD; @@ -2486,10 +2489,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate NoTargetAssessment result = NoTargetAssessment.PD; - //if (inDto.IsBaseLine) - //{ - // return NoTargetAssessment.NA.GetEnumInt(); - //} + if (inDto.IsBaseLine) + { + return NoTargetAssessment.NA.GetEnumInt(); + } var tableRows = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.NonTargetLesions).SelectMany(x => x.TableRowInfoList).ToList(); From 3d92fac1d68af9a9d4b114092b823de8261000eb Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 19 Oct 2023 09:16:43 +0800 Subject: [PATCH 05/16] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/ReadingCalculate/LuganoCalculateService.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index b5476d799..72131fd0d 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -2590,6 +2590,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate /// public async Task CTMRIEvaluation(ReadingCalculateDto inDto) { + if (inDto.IsBaseLine) + { + return CTMRIOverallAssessment.NA.GetEnumInt(); + } // 靶病灶评估 var targetEvaluation = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.TargetLesion).Select(x => x.Answer).FirstOrDefault(); From 1f1500c66172cefc0aba40b860d3dae31a105685 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 19 Oct 2023 10:50:07 +0800 Subject: [PATCH 06/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/ReadingCalculate/LuganoCalculateService.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index 72131fd0d..c042f076a 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -2598,10 +2598,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate var targetEvaluation = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.TargetLesion).Select(x => x.Answer).FirstOrDefault(); // 非靶病灶评估 - var noTargetEvaluation = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.NETarget).Select(x => x.Answer).FirstOrDefault(); + var noTargetEvaluation = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.NoTargetLesion).Select(x => x.Answer).FirstOrDefault(); // 存在新病灶 - var existsNewTarget = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.NewTargetLesion).Select(x => x.Answer).FirstOrDefault(); + var existsNewTarget = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.NewLesionEvaluation).Select(x => x.Answer).FirstOrDefault(); // 肝脏评估 var liverEvaluation = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.LiverAssessment).Select(x => x.Answer).FirstOrDefault(); @@ -2615,7 +2615,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate new CalculationDto(){ Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.ND }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No,NewLesionAssessment.Suspected }), + Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No, NewLesionAssessment.Suspected }), Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal }), Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal }), Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND }), From baaf5af664d62dd365259e185cdff451f3bfe61f Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 19 Oct 2023 13:17:26 +0800 Subject: [PATCH 07/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/ReadingCalculate/LuganoCalculateService.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index c042f076a..fe7294f38 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -2646,7 +2646,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Yes }), Column4=ReadingCommon.EnumToString(new List() { }), Column5=ReadingCommon.EnumToString(new List() { }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), }, //任一结果 任一结果 任一结果 显著增大 任一结果 PD new CalculationDto(){ @@ -2655,7 +2655,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate Column3=ReadingCommon.EnumToString(new List() { }), Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Increase }), Column5=ReadingCommon.EnumToString(new List() { }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), }, //任一结果 任一结果 任一结果 任一结果 显著增大 PD new CalculationDto(){ @@ -2664,7 +2664,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate Column3=ReadingCommon.EnumToString(new List() {}), Column4=ReadingCommon.EnumToString(new List() { }), Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Increase }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), }, //CR CR/ND 否 正常 正常 CR new CalculationDto(){ From a1bd7b4815ae8aa663cb8cafe66fdce6451073be Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 19 Oct 2023 13:34:21 +0800 Subject: [PATCH 08/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs index 8ace74a1f..9e3878336 100644 --- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs +++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs @@ -894,17 +894,22 @@ namespace IRaCIS.Core.Domain.Share /// /// 稳定 /// - Stabilization = 2, + Tumefaction = 2, + + /// + /// 稳定 + /// + Stabilization = 3, /// /// 显著增大 /// - Increase = 3, + Increase = 4, /// /// 无法评估 /// - NotEvaluable = 4, + NotEvaluable = 5, } /// From e43b28969e79fab0c0a125ed1ef021ca4f53b7ea Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 19 Oct 2023 13:49:38 +0800 Subject: [PATCH 09/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/ReadingCalculate/LuganoCalculateService.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index fe7294f38..8fe86623b 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -2716,7 +2716,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate }, //ND ND 否/疑似 无法评估 正常/稳定/无法评估/部分缓解(非显著增大) NE new CalculationDto(){ - NotEq=new List(){ 4}, + NotEq=new List(){ 5}, Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.ND }), Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No,NewLesionAssessment.Suspected }), @@ -2783,6 +2783,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate }, }; + var index= data.FindIndex(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)) + ; + Console.WriteLine(index); 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) && From 5934178a5fd9d927a85006477a9fcb7a50dcec17 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 19 Oct 2023 14:15:13 +0800 Subject: [PATCH 10/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingCalculate/LuganoCalculateService.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index 8fe86623b..c20d4dfe4 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -495,6 +495,12 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate //新病灶评估 new ReadingCalculateData (){QuestionType=QuestionType.NewLesionEvaluation,GetStringFun=GetNewLesionEvaluate}, + //获取肝脏评估 + new ReadingCalculateData (){QuestionType=QuestionType.LiverAssessment,GetStringFun=GetLiverAssessment}, + + // 骨髓中是否存在局灶性 FDG亲和病灶的证据 + new ReadingCalculateData (){QuestionType=QuestionType.EvidenceFocalFDG,GetStringFun=GetEvidenceFocalFDG}, + //CT/MRI new ReadingCalculateData (){QuestionType=QuestionType.CTandMRI,GetStringFun=CTMRIEvaluation}, @@ -518,11 +524,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate // SUVmax所在病灶 new ReadingCalculateData (){QuestionType=QuestionType.SUVmaxLesion,GetStringFun=GetSuvMaxFocus}, - //获取肝脏评估 - new ReadingCalculateData (){QuestionType=QuestionType.LiverAssessment,GetStringFun=GetLiverAssessment}, + - // 骨髓中是否存在局灶性 FDG亲和病灶的证据 - new ReadingCalculateData (){QuestionType=QuestionType.EvidenceFocalFDG,GetStringFun=GetEvidenceFocalFDG}, + ////靶病灶径线之和(SOD) //new ReadingCalculateData (){QuestionType=QuestionType.SOD,GetDecimalNullFun=GetSODData}, From 04a702fb0e5f171b304c92d25478eef406549380 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 19 Oct 2023 15:21:38 +0800 Subject: [PATCH 11/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/ReadingCalculate/LuganoCalculateService.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index c20d4dfe4..cc5cff723 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -2643,9 +2643,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate Column5=ReadingCommon.EnumToString(new List() { }), Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), }, - //PD 任一结果 是 任一结果 任一结果 PD + //任一结果 任一结果 是 任一结果 任一结果 PD new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.PD }), + Column1=ReadingCommon.EnumToString(new List() { }), Column2=ReadingCommon.EnumToString(new List() { }), Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Yes }), Column4=ReadingCommon.EnumToString(new List() { }), From 65ae0e06f5c70346aa38d93aa51cb83d283b92b7 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 19 Oct 2023 16:04:38 +0800 Subject: [PATCH 12/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/ReadingCalculate/LuganoCalculateService.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index cc5cff723..7e16561e0 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -2688,9 +2688,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal }), Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR }), }, - //NE 非PD 否/疑似/无法评估 显著增大 显著增大 NE + //NE 非PD 否/疑似/无法评估 非显著增大 非显著增大 NE new CalculationDto(){ - NotEq=new List(){ 2}, + NotEq=new List(){ 2,4,5}, Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.NE }), Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.PD }), Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No,NewLesionAssessment.Suspected, NewLesionAssessment.NE}), From e6cd24065c6b789484edebf1f50d9674f0de302a Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 19 Oct 2023 17:10:31 +0800 Subject: [PATCH 13/16] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reading/Dto/ReadingCalculateViewModel.cs | 9 ++++++++- .../ReadingImageTask/ReadingImageTaskService.cs | 2 ++ .../General/ReadingCalculateService.cs | 2 +- .../ReadingCalculate/LuganoCalculateService.cs | 5 ++++- IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 16 ++++++++++++++++ 5 files changed, 31 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs index a8c54a077..dab5f2a05 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs @@ -50,6 +50,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public bool IsChangeOtherTask { get; set; } + + public ComputationTrigger ComputationTrigger { get; set; } } public class TargetLesionCalculateDto @@ -218,7 +220,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid SubjectVisitId { get; set; } - public Arm ArmEnum { get; set; } + public Arm ArmEnum { get; set; } + + public ComputationTrigger ComputationTrigger { get; set; } = ComputationTrigger.Lesion; /// /// 是否修改其他任务 @@ -348,6 +352,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto { public QuestionType QuestionType { get; set; } + + public ComputationTrigger? ComputationTrigger { get; set; } + public Func> GetDecimalFun { get; set; } public Func> GetIntFun { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 495dbc433..dcf3282cb 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -1741,6 +1741,7 @@ namespace IRaCIS.Application.Services { IsChangeOtherTask = false, VisitTaskId = inDto.VisitTaskId, + ComputationTrigger=ComputationTrigger.Lesion, }); return ResponseOutput.Ok(true); } @@ -2141,6 +2142,7 @@ namespace IRaCIS.Application.Services { IsChangeOtherTask = false, VisitTaskId = inDto.VisitTaskId, + ComputationTrigger = ComputationTrigger.Lesion, }); diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs index ff966babf..49509412d 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs @@ -196,7 +196,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { await service.CalculateTask(new CalculateTaskInDto() { - + ComputationTrigger= ComputationTrigger.Report, VisitTaskId = inDto.VisitTaskId }); } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index 7e16561e0..ac4a418cb 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -429,6 +429,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { ReadingCalculateDto readingData = await _generalCalculateService.GetReadingCalculateDto(inDto.VisitTaskId); readingData.IsChangeOtherTask = inDto.IsChangeOtherTask; + readingData.ComputationTrigger = inDto.ComputationTrigger; await ReadingCalculate(readingData); } @@ -505,7 +506,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate new ReadingCalculateData (){QuestionType=QuestionType.CTandMRI,GetStringFun=CTMRIEvaluation}, // PET 5PS评分 - new ReadingCalculateData (){QuestionType=QuestionType.PET5PS,GetStringFun=GetPET5PS}, + new ReadingCalculateData (){QuestionType=QuestionType.PET5PS,GetStringFun=GetPET5PS,ComputationTrigger=ComputationTrigger.Lesion}, //与基线相比摄取值变化 new ReadingCalculateData (){QuestionType=QuestionType.UptakeChange,GetStringFun=GetUptakeChange}, @@ -609,6 +610,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate calculateList = calculateList.Where(x => calculateType.Contains(x.QuestionType)).ToList(); } + + calculateList = calculateList.Where(x => x.ComputationTrigger == null || x.ComputationTrigger == inDto.ComputationTrigger).ToList(); var typeNAList = new List { QuestionType.SODChange, diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs index 9e3878336..2d562f219 100644 --- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs +++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs @@ -2277,6 +2277,22 @@ public enum PET5PSScore } + /// + /// 计算触发 + /// + public enum ComputationTrigger + { + /// + /// 病灶 + /// + Lesion=0, + + /// + /// 报告 + /// + Report=1, + } + /// /// 新靶病灶评估 /// From e8e9105f5c231d01b5b68689091aa342e4ae8f75 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 19 Oct 2023 17:22:21 +0800 Subject: [PATCH 14/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/ReadingCalculate/LuganoCalculateService.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index ac4a418cb..7b08dd0c4 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -500,7 +500,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate new ReadingCalculateData (){QuestionType=QuestionType.LiverAssessment,GetStringFun=GetLiverAssessment}, // 骨髓中是否存在局灶性 FDG亲和病灶的证据 - new ReadingCalculateData (){QuestionType=QuestionType.EvidenceFocalFDG,GetStringFun=GetEvidenceFocalFDG}, + new ReadingCalculateData (){QuestionType=QuestionType.EvidenceFocalFDG,GetStringFun=GetEvidenceFocalFDG,ComputationTrigger=ComputationTrigger.Lesion}, //CT/MRI new ReadingCalculateData (){QuestionType=QuestionType.CTandMRI,GetStringFun=CTMRIEvaluation}, @@ -509,7 +509,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate new ReadingCalculateData (){QuestionType=QuestionType.PET5PS,GetStringFun=GetPET5PS,ComputationTrigger=ComputationTrigger.Lesion}, //与基线相比摄取值变化 - new ReadingCalculateData (){QuestionType=QuestionType.UptakeChange,GetStringFun=GetUptakeChange}, + new ReadingCalculateData (){QuestionType=QuestionType.UptakeChange,GetStringFun=GetUptakeChange,ComputationTrigger=ComputationTrigger.Lesion}, // FDG-PET 评估结果 new ReadingCalculateData (){QuestionType=QuestionType.FDGPET,GetStringFun=GetFDGPETOverallAssessment}, From 7fc93a667d86b02f70c3726d5b5eb372d529fcf2 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Fri, 20 Oct 2023 15:26:42 +0800 Subject: [PATCH 15/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs index 2d562f219..5cb3743d9 100644 --- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs +++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs @@ -2258,7 +2258,7 @@ public enum PET5PSScore /// /// 2分 /// - Two = 5, + Two = 2, /// /// 1分 From 46980e6b50b7ef18ff613b7a36cf71d76be8a647 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Fri, 20 Oct 2023 15:36:42 +0800 Subject: [PATCH 16/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/ReadingCalculate/LuganoCalculateService.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index 7b08dd0c4..2308d2d46 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -2104,7 +2104,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate new CalculationDto(){ Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Five,PET5PSScore.Four }), Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.Decrease }), - Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.YesSustain}), + Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.No, FDGAffinityFociInBM.YesSustain}), Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMR }), }, @@ -2112,7 +2112,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate new CalculationDto(){ Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Five,PET5PSScore.Four }), Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.DidNotChange }), - Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.YesSustain}), + Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.No, FDGAffinityFociInBM.YesSustain}), Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NMR }), }, };