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/Allocation/TaskMedicalReviewService.cs b/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs
index 6a7801e43..0bc4606b5 100644
--- a/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs
@@ -203,7 +203,7 @@ namespace IRaCIS.Core.Application.Service
.WhereIf(inQuery.IsGetNextMedicalReviewTask,
x=>x.AuditState!= MedicalReviewAuditState.HaveSigned &
- ( x.ReadingMedicalReviewDialogList.Count()==0||
+ ( x.ReadingMedicalReviewDialogList.Count()!=0&&
x.ReadingMedicalReviewDialogList.Count()>0&&
x.ReadingMedicalReviewDialogList.OrderByDescending(x=>x.CreateTime).FirstOrDefault().UserTypeEnumInt==(int)UserTypeEnum.IndependentReviewer))
@@ -221,7 +221,7 @@ namespace IRaCIS.Core.Application.Service
.WhereIf(inQuery.IsInvalid != null, t => t.IsInvalid == inQuery.IsInvalid)
.WhereIf(inQuery.IsGetBeRead,x=>!x.IsInvalid&&x.AuditState!= MedicalReviewAuditState.HaveSigned)
.WhereIf(inQuery.TrialReadingCriterionId != null, t => t.VisitTask.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)
- .OrderBy(x=>x.AuditState).ThenBy(x=>x.VisitTask.SubjectId).ThenBy(x=>x.VisitTask.ArmEnum).ThenBy(x=>x.VisitTask.VisitTaskNum)
+ .OrderBy(x=>x.VisitTask.SubjectId).ThenBy(x => x.AuditState).ThenBy(x=>x.VisitTask.ArmEnum).ThenBy(x=>x.VisitTask.VisitTaskNum)
.ProjectTo(_mapper.ConfigurationProvider);
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 1dae4b96b..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
{
@@ -1357,7 +1358,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
var addList = _mapper.Map>(tableRowAnswers).OrderBy(x => x.RowIndex).ToList();
- //await _readingTaskQuestionMarkRepository.AddRangeAsync(questionMarkList);
+ await _readingTaskQuestionMarkRepository.AddRangeAsync(questionMarkList);
await _readingTableAnswerRowInfoRepository.AddRangeAsync(addList);
await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers);
addList.ForEach(x =>
@@ -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