public async Task GetFDGPETOverallAssessment(ReadingCalculateDto inDto) { if (inDto.IsBaseLine) { return FDGPETOverallAssessment.NA.GetEnumInt(); } var existPET =await GetExistPET(inDto); if (existPET.EqEnum(ReadingYesOrNo.No)) { return FDGPETOverallAssessment.NE.GetEnumInt(); } //FDGPETOverallAssessment result = FDGPETOverallAssessment.NA; // PET5PS 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(); // EvidenceFocalFDG var EvidenceFocalFDG = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.EvidenceFocalFDG).Select(x => x.Answer).FirstOrDefault(); 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 }), }, //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 }), }, //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 }), }, //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 }), }, //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 }), }, //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 }), }, //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 }), }, }; 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; }