diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 75c136afd..6aa47444b 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -2106,6 +2106,15 @@ + + + 计算FDG-PET总体评估结果【测试】 + + PET5PS评分 + 与基线相比摄取值变化 + 骨髓中是否存在局灶性 FDG亲和病灶的证据 + + 骨髓中是否存在局灶性 FDG亲和病灶的证据 @@ -2148,6 +2157,15 @@ + + + 计算整体肿瘤评估 【测试】 + + CT/MRI总体评估 + FDG-PET总体评估 + 上一次 FDG-PET总体评估 + + 获取基线脾脏长度 @@ -2190,6 +2208,17 @@ + + + 计算CTMRI 总体评估 【测试】 + + 靶病灶评估 + 非靶病灶评估 + 存在新病灶 + 肝脏评估 + 脾脏评估 + + 保留小数 diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index aed77c274..9415121fe 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -16,6 +16,7 @@ using NPOI.SS.Formula.Functions; using DocumentFormat.OpenXml.Drawing.Charts; using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Service.ReadingCalculate.Interface; +using DocumentFormat.OpenXml.Office2016.Drawing.ChartDrawing; namespace IRaCIS.Core.Application.Service.ReadingCalculate { @@ -2525,93 +2526,106 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate //FDGPETOverallAssessment result = FDGPETOverallAssessment.NA; // PET5PS - var PET5PS = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.PET5PS).Select(x => x.Answer).FirstOrDefault(); + var pET5PS = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.PET5PS).Select(x => x.Answer).FirstOrDefault(); // UptakeChange - var UptakeChange = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.UptakeChange).Select(x => x.Answer).FirstOrDefault(); + var uptakeChange = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.UptakeChange).Select(x => x.Answer).FirstOrDefault(); // EvidenceFocalFDG - var EvidenceFocalFDG = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.EvidenceFocalFDG).Select(x => x.Answer).FirstOrDefault(); + var evidenceFocalFDG = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.EvidenceFocalFDG).Select(x => x.Answer).FirstOrDefault(); - List data = new List() { + return CalculationFDGPETOverallAssessment(pET5PS, uptakeChange, evidenceFocalFDG); + } + + + /// + /// 计算FDG-PET总体评估结果【测试】 + /// + /// PET5PS评分 + /// 与基线相比摄取值变化 + /// 骨髓中是否存在局灶性 FDG亲和病灶的证据 + /// + public string CalculationFDGPETOverallAssessment(string? pET5PS, string uptakeChange,string? evidenceFocalFDG) + { + List data = new List() { //NE NE NE NE new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.NE }), - Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.NotEvaluable }), - Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.NE}), - Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - }, + Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.NE }), + Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.NotEvaluable }), + Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.NE}), + Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), + }, //NE/5分/4分/3分/2分/1分/X NE/增大/减少/无明显变化 是,存在新的/复发的FDG高亲和性病灶 PMD new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.NE,PET5PSScore.Five,PET5PSScore.Four,PET5PSScore.Three,PET5PSScore.Two,PET5PSScore.One,PET5PSScore.X, }), - Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.NotEvaluable,SUVChangeVSBaseline.Increase,SUVChangeVSBaseline.Decrease,SUVChangeVSBaseline.DidNotChange, }), - Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.YesHaveNew,}), - Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD }), - }, + Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.NE,PET5PSScore.Five,PET5PSScore.Four,PET5PSScore.Three,PET5PSScore.Two,PET5PSScore.One,PET5PSScore.X, }), + Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.NotEvaluable,SUVChangeVSBaseline.Increase,SUVChangeVSBaseline.Decrease,SUVChangeVSBaseline.DidNotChange, }), + Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.YesHaveNew,}), + Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD }), + }, //5分/4分 增大 NE/(是,存在新的/复发的FDG高亲和性病灶)/(是,存在持续的局灶性变化)/否 PMD new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Five,PET5PSScore.Four, }), - Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.Increase }), - Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.NE, FDGAffinityFociInBM.YesHaveNew, FDGAffinityFociInBM.YesSustain, FDGAffinityFociInBM.No}), - Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD }), - }, + Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Five,PET5PSScore.Four, }), + Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.Increase }), + Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.NE, FDGAffinityFociInBM.YesHaveNew, FDGAffinityFociInBM.YesSustain, FDGAffinityFociInBM.No}), + Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD }), + }, //3分/2分/1分/X NE/增大/减少/无明显变化 否 CMR new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Three,PET5PSScore.Two,PET5PSScore.One,PET5PSScore.X, }), - Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.NotEvaluable,SUVChangeVSBaseline.Increase,SUVChangeVSBaseline.Decrease,SUVChangeVSBaseline.DidNotChange, }), - Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.No}), - Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR }), - }, + Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Three,PET5PSScore.Two,PET5PSScore.One,PET5PSScore.X, }), + Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.NotEvaluable,SUVChangeVSBaseline.Increase,SUVChangeVSBaseline.Decrease,SUVChangeVSBaseline.DidNotChange, }), + Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.No}), + Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR }), + }, //3分/2分/1分/X NE/增大/减少/无明显变化 是,存在持续的局灶性变化 PMR new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Three,PET5PSScore.Two,PET5PSScore.One,PET5PSScore.X, }), - Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.NotEvaluable,SUVChangeVSBaseline.Increase,SUVChangeVSBaseline.Decrease,SUVChangeVSBaseline.DidNotChange, }), - Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.YesSustain }), - Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMR }), - }, + Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Three,PET5PSScore.Two,PET5PSScore.One,PET5PSScore.X, }), + Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.NotEvaluable,SUVChangeVSBaseline.Increase,SUVChangeVSBaseline.Decrease,SUVChangeVSBaseline.DidNotChange, }), + Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.YesSustain }), + Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMR }), + }, //5分/4分 减少 否/是,存在持续的局灶性变化 PMR new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Five,PET5PSScore.Four }), - Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.Decrease }), - Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.No, FDGAffinityFociInBM.YesSustain}), - Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMR }), - }, + Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Five,PET5PSScore.Four }), + Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.Decrease }), + Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.No, FDGAffinityFociInBM.YesSustain}), + Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMR }), + }, //5分/4分 无明显变化 否/是,存在持续的局灶性变化 NMR new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Five,PET5PSScore.Four }), - Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.DidNotChange }), - Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.No, FDGAffinityFociInBM.YesSustain}), - Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NMR }), - }, - }; + Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Five,PET5PSScore.Four }), + Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.DidNotChange }), + Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.No, FDGAffinityFociInBM.YesSustain}), + Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NMR }), + }, + }; - var resultdata = data.Where(x => - (x.NotEq.Contains(1) ? !x.Column1.Contains(PET5PS) : x.Column1.Contains(PET5PS) || x.Column1.Count() == 0) && - (x.NotEq.Contains(2) ? !x.Column2.Contains(UptakeChange) : x.Column2.Contains(UptakeChange) || x.Column2.Count() == 0) && - (x.NotEq.Contains(3) ? !x.Column3.Contains(EvidenceFocalFDG) : x.Column3.Contains(EvidenceFocalFDG) || x.Column3.Count() == 0)) - .Select(x => x.Column4.FirstOrDefault()) - .FirstOrDefault(); - return resultdata ?? string.Empty; - } + var resultdata = data.Where(x => + (x.NotEq.Contains(1) ? !x.Column1.Contains(pET5PS) : x.Column1.Contains(pET5PS) || x.Column1.Count() == 0) && + (x.NotEq.Contains(2) ? !x.Column2.Contains(uptakeChange) : x.Column2.Contains(uptakeChange) || x.Column2.Count() == 0) && + (x.NotEq.Contains(3) ? !x.Column3.Contains(evidenceFocalFDG) : x.Column3.Contains(evidenceFocalFDG) || x.Column3.Count() == 0)) + .Select(x => x.Column4.FirstOrDefault()) + .FirstOrDefault(); + return resultdata ?? string.Empty; + } - #endregion - #region 骨髓中是否存在局灶性 FDG亲和病灶的证据 + #endregion + #region 骨髓中是否存在局灶性 FDG亲和病灶的证据 - /// - /// 骨髓中是否存在局灶性 FDG亲和病灶的证据 - /// - /// - /// - public async Task GetEvidenceFocalFDG(ReadingCalculateDto inDto) + /// + /// 骨髓中是否存在局灶性 FDG亲和病灶的证据 + /// + /// + /// + public async Task GetEvidenceFocalFDG(ReadingCalculateDto inDto) { if (inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.ExistPET && x.Answer == ReadingYesOrNo.No.GetEnumInt())) { @@ -2738,141 +2752,154 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate //} // CTandMRI - var CTandMRIData = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.CTandMRI).Select(x => x.Answer).FirstOrDefault(); + var cTandMRIData = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.CTandMRI).Select(x => x.Answer).FirstOrDefault(); // FDGPET - var FDGPETData = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.FDGPET).Select(x => x.Answer).FirstOrDefault(); + var fDGPETData = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.FDGPET).Select(x => x.Answer).FirstOrDefault(); var baseLineTaskId = await GetBaseLineTaskId(inDto); // lastFDGPET var lastFDGPETData = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.LastFDGPET).Select(x => x.Answer).FirstOrDefault(); - List data = new List() { + return CalculationGetImgOncology(cTandMRIData, fDGPETData, lastFDGPETData); + + } + + /// + /// 计算整体肿瘤评估 【测试】 + /// + /// CT/MRI总体评估 + /// FDG-PET总体评估 + /// 上一次 FDG-PET总体评估 + /// + public string CalculationGetImgOncology(string? cTandMRIData,string? fDGPETData,string? lastFDGPETData) + { + List data = new List() { //1、ND NE NE/NA ND new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA}), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.ND }), - }, + Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND }), + Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), + Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA}), + Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.ND }), + }, //2、ND/PD/CR/NE/PR/SD PMD PMD/CMR/PMR/NMR/NE/NA PMD/PD new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND, CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD}), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, }), - Column3=ReadingCommon.EnumToString(new List() {FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMDPD }), - }, + Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND, CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD}), + Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, }), + Column3=ReadingCommon.EnumToString(new List() {FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }), + Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMDPD }), + }, //3、ND/PD/CR/NE/PR/SD NE PMD PMD/PD new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND, CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD}), - Column2=ReadingCommon.EnumToString(new List() {FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, }), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMDPD }), - }, + Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND, CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD}), + Column2=ReadingCommon.EnumToString(new List() {FDGPETOverallAssessment.NE }), + Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, }), + Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMDPD }), + }, //4、PD NE CMR/PMR/NMR/NE/NA PMD/PD new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD}), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMDPD }), - }, + Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD}), + Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, }), + Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }), + Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMDPD }), + }, //5、NE NE NE/NA NE new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.NE }), - }, + Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), + Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), + Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }), + Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.NE }), + }, //6、CR、PR、SD、NE、ND、PD CMR CMR/PMR/NMR/PMD/NE/NA CMR/CR new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND,CTMRIOverallAssessment.PD }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.CMRCR }), - }, + Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND,CTMRIOverallAssessment.PD }), + Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR }), + Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }), + Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.CMRCR }), + }, //7、CR NE NE/NA CMR/CR new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.CMRCR }), - }, + Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR }), + Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), + Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}), + Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.CMRCR }), + }, //8、CR、PR、SD、NE、ND NE CMR CMR/CR new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR,}), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.CMRCR }), - }, + Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND }), + Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), + Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR,}), + Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.CMRCR }), + }, //9、ND/PD/CR/NE/PR/SD PMR PMD/CMR/PMR/NMR/NE PMR/PR new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND, CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMR }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE,FDGPETOverallAssessment.NA, }), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMRPR }), - }, + Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND, CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD }), + Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMR }), + Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE,FDGPETOverallAssessment.NA, }), + Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMRPR }), + }, //10、PR NE NE/NA PMR/PR new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PR }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMRPR }), - }, + Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PR }), + Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), + Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}), + Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMRPR }), + }, //11、CR/PR/SD/NE/ND NE PMR PMR/PR new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMR}), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMRPR }), - }, + Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND }), + Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), + Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMR}), + Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMRPR }), + }, //12、ND/PD/CR/NE/PR/SD NMR PMD/CMR/PMR/NMR/NE NMR/SD new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND,CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NMR }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR, FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.NMRSD }), - }, + Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND,CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD }), + Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NMR }), + Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR, FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}), + Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.NMRSD }), + }, //13、CR/PR/SD/ND/NE NE NMR NMR/SD new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR, CTMRIOverallAssessment.PR, CTMRIOverallAssessment.SD, CTMRIOverallAssessment.ND, CTMRIOverallAssessment.NE }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NMR}), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.NMRSD }), - }, + Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR, CTMRIOverallAssessment.PR, CTMRIOverallAssessment.SD, CTMRIOverallAssessment.ND, CTMRIOverallAssessment.NE }), + Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), + Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NMR}), + Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.NMRSD }), + }, //14、SD NE NE NMR/SD new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.SD }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}), - Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.NMRSD }), - }, - }; + Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.SD }), + Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), + Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}), + Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.NMRSD }), + }, + }; - var resultdata = data.Where(x => - (x.NotEq.Contains(1) ? !x.Column1.Contains(CTandMRIData) : x.Column1.Contains(CTandMRIData) || x.Column1.Count() == 0) && - (x.NotEq.Contains(2) ? !x.Column2.Contains(FDGPETData) : x.Column2.Contains(FDGPETData) || x.Column2.Count() == 0) && - (x.NotEq.Contains(3) ? !x.Column3.Contains(lastFDGPETData) : x.Column3.Contains(lastFDGPETData) || x.Column3.Count() == 0)) - .Select(x => x.Column4.FirstOrDefault()) - .FirstOrDefault(); - return resultdata ?? string.Empty; - } + var resultdata = data.Where(x => + (x.NotEq.Contains(1) ? !x.Column1.Contains(cTandMRIData) : x.Column1.Contains(cTandMRIData) || x.Column1.Count() == 0) && + (x.NotEq.Contains(2) ? !x.Column2.Contains(fDGPETData) : x.Column2.Contains(fDGPETData) || x.Column2.Count() == 0) && + (x.NotEq.Contains(3) ? !x.Column3.Contains(lastFDGPETData) : x.Column3.Contains(lastFDGPETData) || x.Column3.Count() == 0)) + .Select(x => x.Column4.FirstOrDefault()) + .FirstOrDefault(); + return resultdata ?? string.Empty; + } - #endregion + #endregion - #region 获取基线脾脏长度 - /// - /// 获取基线脾脏长度 - /// - /// - /// - public async Task GetBaseLineSpleenLength(ReadingCalculateDto inDto) + #region 获取基线脾脏长度 + /// + /// 获取基线脾脏长度 + /// + /// + /// + public async Task GetBaseLineSpleenLength(ReadingCalculateDto inDto) { var baseLineTaskId = await GetBaseLineTaskId(inDto); @@ -3140,209 +3167,223 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate // 脾脏评估 var spleenEvaluation = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SplenicEvaluation).Select(x => x.Answer).FirstOrDefault(); - - List data = new List() { + + return CalculationCTMRIEvaluation(targetEvaluation, noTargetEvaluation, existsNewTarget, liverEvaluation, spleenEvaluation); + } + + /// + /// 计算CTMRI 总体评估 【测试】 + /// + /// 靶病灶评估 + /// 非靶病灶评估 + /// 存在新病灶 + /// 肝脏评估 + /// 脾脏评估 + /// + [HttpPost] + public string CalculationCTMRIEvaluation(string? targetEvaluation,string? noTargetEvaluation,string? existsNewTarget,string? liverEvaluation,string? spleenEvaluation) + { + List data = new List() { //ND ND 否/疑似 正常 正常 ND 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 }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND }), - }, + Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), + Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.ND }), + 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 }), + }, //PD 任一结果 任一结果 任一结果 任一结果 PD new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.PD }), - Column2=ReadingCommon.EnumToString(new List() { }), - Column3=ReadingCommon.EnumToString(new List() { }), - Column4=ReadingCommon.EnumToString(new List() { }), - Column5=ReadingCommon.EnumToString(new List() { }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), - }, + Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.PD }), + Column2=ReadingCommon.EnumToString(new List() { }), + Column3=ReadingCommon.EnumToString(new List() { }), + Column4=ReadingCommon.EnumToString(new List() { }), + Column5=ReadingCommon.EnumToString(new List() { }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), + }, //任一结果 PD 任一结果 任一结果 任一结果 PD new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.PD }), - Column3=ReadingCommon.EnumToString(new List() {}), - Column4=ReadingCommon.EnumToString(new List() { }), - Column5=ReadingCommon.EnumToString(new List() { }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), - }, + Column1=ReadingCommon.EnumToString(new List() { }), + Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.PD }), + Column3=ReadingCommon.EnumToString(new List() {}), + Column4=ReadingCommon.EnumToString(new List() { }), + Column5=ReadingCommon.EnumToString(new List() { }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), + }, //任一结果 任一结果 是 任一结果 任一结果 PD new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { }), - Column2=ReadingCommon.EnumToString(new List() { }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Yes }), - Column4=ReadingCommon.EnumToString(new List() { }), - Column5=ReadingCommon.EnumToString(new List() { }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), - }, + Column1=ReadingCommon.EnumToString(new List() { }), + Column2=ReadingCommon.EnumToString(new List() { }), + Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Yes }), + Column4=ReadingCommon.EnumToString(new List() { }), + Column5=ReadingCommon.EnumToString(new List() { }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), + }, //任一结果 任一结果 任一结果 显著增大 任一结果 PD new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { }), - Column2=ReadingCommon.EnumToString(new List() { }), - Column3=ReadingCommon.EnumToString(new List() { }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Increase }), - Column5=ReadingCommon.EnumToString(new List() { }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), - }, + Column1=ReadingCommon.EnumToString(new List() { }), + Column2=ReadingCommon.EnumToString(new List() { }), + Column3=ReadingCommon.EnumToString(new List() { }), + Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Increase }), + Column5=ReadingCommon.EnumToString(new List() { }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), + }, //任一结果 任一结果 任一结果 任一结果 显著增大 PD new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { }), - Column2=ReadingCommon.EnumToString(new List() { }), - Column3=ReadingCommon.EnumToString(new List() {}), - Column4=ReadingCommon.EnumToString(new List() { }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Increase }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), - }, + Column1=ReadingCommon.EnumToString(new List() { }), + Column2=ReadingCommon.EnumToString(new List() { }), + Column3=ReadingCommon.EnumToString(new List() {}), + Column4=ReadingCommon.EnumToString(new List() { }), + Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Increase }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }), + }, //CR CR/ND 否 正常 正常 CR new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.CR }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.CR, NoTargetAssessment.ND }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR }), - }, + Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.CR }), + Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.CR, NoTargetAssessment.ND }), + Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No }), + Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal }), + Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR }), + }, //ND CR 否 正常 正常 CR new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.CR }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR }), - }, + Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), + Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.CR }), + Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No }), + Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal }), + Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR }), + }, //NE 非PD 否/疑似/无法评估 非显著增大 非显著增大 NE new CalculationDto(){ - 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}), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Increase }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Increase }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), - }, + 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}), + Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Increase }), + Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Increase }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), + }, //ND NE 否/疑似/无法评估(不为是) 正常/稳定/无法评估/部分缓解(非显著增大) 正常/稳定/无法评估/部分缓解(非显著增大) NE new CalculationDto(){ - NotEq=new List(){ 3,4,5}, - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Yes }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Increase }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Increase }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), - }, + NotEq=new List(){ 3,4,5}, + Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), + Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.NE }), + Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Yes }), + Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Increase }), + Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Increase }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), + }, //ND ND 无法评估 正常/稳定/无法评估/部分缓解(非显著增大) 正常/稳定/无法评估/部分缓解(非显著增大) NE new CalculationDto(){ - NotEq=new List(){ 4,5}, - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.ND }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.NE }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Increase }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Increase }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), - }, + NotEq=new List(){ 4,5}, + Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), + Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.ND }), + Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.NE }), + Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Increase }), + Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Increase }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), + }, //ND ND 否/疑似 无法评估 正常/稳定/无法评估/部分缓解(非显著增大) NE new CalculationDto(){ - 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 }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.NotEvaluable }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Increase }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), - }, + 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 }), + Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.NotEvaluable }), + Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Increase }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), + }, // ND ND 否/疑似 正常/稳定 NE NE 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 }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization }), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.NotEvaluable }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), - }, + Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), + Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.ND }), + Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No,NewLesionAssessment.Suspected }), + Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization }), + Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.NotEvaluable }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), + }, //PR 非PD 否/疑似/无法评估(不为是) 正常/稳定 正常/部分缓解 PR new CalculationDto(){ - NotEq=new List(){ 2,3}, - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.PR }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.PD }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Yes }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization}), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal,SpleenAssessment.Remission }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PR }), - }, + NotEq=new List(){ 2,3}, + Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.PR }), + Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.PD }), + Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Yes }), + Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization}), + Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal,SpleenAssessment.Remission }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PR }), + }, //CR (PR/SD)或者NE 否/疑似/无法评估(不为是) 正常/部分缓解 正常/部分缓解 PR new CalculationDto(){ - NotEq=new List(){ 3}, - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.CR }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.PRSD,NoTargetAssessment.NE }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Yes,NewLesionAssessment.Yes }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization}), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal,SpleenAssessment.Remission }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PR }), - }, + NotEq=new List(){ 3}, + Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.CR }), + Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.PRSD,NoTargetAssessment.NE }), + Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Yes,NewLesionAssessment.Yes }), + Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization}), + Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal,SpleenAssessment.Remission }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PR }), + }, //CR CR/ND 疑似/无法评估 正常/稳定 正常/部分缓解 PR new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.CR }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.CR,NoTargetAssessment.ND }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Suspected, NewLesionAssessment.NE }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization}), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal,SpleenAssessment.Remission }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PR }), - }, + Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.CR }), + Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.CR,NoTargetAssessment.ND }), + Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Suspected, NewLesionAssessment.NE }), + Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization}), + Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal,SpleenAssessment.Remission }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PR }), + }, // ND CR 疑似/无法评估 正常/稳定 正常/部分缓解 PR new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.CR }), - Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Suspected, NewLesionAssessment.NE }), - Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization}), - Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal,SpleenAssessment.Remission }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PR }), - }, - new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { }), - Column2=ReadingCommon.EnumToString(new List() { }), - Column3=ReadingCommon.EnumToString(new List() { }), - Column4=ReadingCommon.EnumToString(new List() { }), - Column5=ReadingCommon.EnumToString(new List() { }), - Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.SD }), - }, - }; + Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }), + Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.CR }), + Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Suspected, NewLesionAssessment.NE }), + Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal,LiverAssessment.Stabilization}), + Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal,SpleenAssessment.Remission }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PR }), + }, + new CalculationDto(){ + Column1=ReadingCommon.EnumToString(new List() { }), + Column2=ReadingCommon.EnumToString(new List() { }), + Column3=ReadingCommon.EnumToString(new List() { }), + Column4=ReadingCommon.EnumToString(new List() { }), + Column5=ReadingCommon.EnumToString(new List() { }), + Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.SD }), + }, + }; - 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) && - (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; - } + 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)) + ; + 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 - /// - /// 保留小数 - /// - /// - /// - /// - public string ReserveDecimal (decimal answer, int digitPlaces) + /// + /// 保留小数 + /// + /// + /// + /// + public string ReserveDecimal (decimal answer, int digitPlaces) { return decimal.Round(answer, digitPlaces).ToString(); }