diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 6332842f8..09e3a70f2 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -7115,14 +7115,21 @@ 靶病灶信息 + + + 病灶名称 + + + + - + 获取访视答案 - - - - + 访视Index 第几个访视 + 病灶字段名 数组 + 第几个病灶 + 要取的字段名 @@ -7132,12 +7139,12 @@ - 非靶病灶信息 + 新靶病灶信息 - 非靶病灶信息 + 新非靶病灶信息 diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ExportTumorEvaluationDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ExportTumorEvaluationDto.cs index b7f5f02d0..ab01bd991 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ExportTumorEvaluationDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ExportTumorEvaluationDto.cs @@ -93,29 +93,51 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto { get { - List targets=new List(); - - var index = 0; - foreach (var item in VisitList.Last().VisitTargetInfoList) - { - TargetInfo targetInfo = new TargetInfo() - { - Title = item.Title, - VisitOneImgNum = GetVisitAnswer(0, "VisitTargetInfoList", index, "VisitImgNum"), - VisitOneLength = GetVisitAnswer(0, "VisitTargetInfoList", index, "VisitLength"), - VisitTwoImgNum = VisitList.Count >= 2 ? VisitTwo.VisitTargetInfoList[index].VisitImgNum : string.Empty, - VisitTwoLength = VisitList.Count >= 2 ? VisitTwo.VisitTargetInfoList[index].VisitLength.ToString() : string.Empty, - VisitThreeImgNum = VisitList.Count >= 3 ? VisitThree.VisitTargetInfoList[index].VisitImgNum : string.Empty, - VisitThreeLength = VisitList.Count >= 3 ? VisitThree.VisitTargetInfoList[index].VisitLength.ToString() : string.Empty - }; - targets.Add(targetInfo); - index++; - } - return targets; - + return GetTargetInfoList("VisitTargetInfoList"); } } + /// + /// 病灶名称 + /// + /// + /// + public List GetTargetInfoList(string lesionName) + { + List targets = new List(); + var index = 0; + + PropertyInfo? listProp = VisitList.Last().GetType().GetProperty(lesionName); + + if (listProp != null) + { + List? lesionList = listProp.GetValue(VisitList.Last()) as List; + + if (lesionList != null) + { + foreach (var item in lesionList) + { + TargetInfo targetInfo = new TargetInfo() + { + Title = item.Title, + VisitOneImgNum = GetVisitAnswer(0, lesionName, index, "VisitImgNum"), + VisitOneLength = GetVisitAnswer(0, lesionName, index, "VisitLength"), + VisitTwoImgNum = GetVisitAnswer(1, lesionName, index, "VisitImgNum"), + VisitTwoLength = GetVisitAnswer(1, lesionName, index, "VisitLength"), + VisitThreeImgNum = GetVisitAnswer(2, lesionName, index, "VisitImgNum"), + VisitThreeLength = GetVisitAnswer(2, lesionName, index, "VisitLength"), + }; + targets.Add(targetInfo); + index++; + } + } + + } + + + return targets; + } + /// /// 获取访视答案 /// @@ -129,9 +151,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto var result= string.Empty; try { - PropertyInfo listProp = VisitList[visitIndex].GetType().GetProperty(lesionName); - IList list = listProp.GetValue(VisitList[visitIndex]) as IList; - object listItem = list[num]; + PropertyInfo? listProp = VisitList[visitIndex].GetType().GetProperty(lesionName); + IList? list = listProp.GetValue(VisitList[visitIndex]) as IList; + object? listItem = list[num]; FieldInfo field = listItem.GetType().GetField(fieldName, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); if (field != null) return field.GetValue(listItem).ToString(); @@ -155,86 +177,30 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto { get { - List targets = new List(); - - var index = 0; - foreach (var item in VisitList.Last().VisitNoTargetInfoList) - { - TargetInfo targetInfo = new TargetInfo() - { - Title = item.Title, - VisitOneImgNum = item.VisitImgNum, - VisitOneLength = item.VisitLength!=null? item.VisitLength.Value.ToString():string.Empty, - VisitTwoImgNum = VisitList.Count >= 2 ? VisitTwo.VisitNoTargetInfoList[index].VisitImgNum : string.Empty, - VisitTwoLength = VisitList.Count >= 2&& VisitTwo.VisitNoTargetInfoList[index].VisitLength!=null ? VisitTwo.VisitNoTargetInfoList[index].VisitLength.Value.ToString() : string.Empty, - VisitThreeImgNum = VisitList.Count >= 3 ? VisitThree.VisitNoTargetInfoList[index].VisitImgNum : string.Empty, - VisitThreeLength = VisitList.Count >= 3&& VisitThree.VisitNoTargetInfoList[index].VisitLength!=null ? VisitThree.VisitNoTargetInfoList[index].VisitLength.Value.ToString() : string.Empty - }; - targets.Add(targetInfo); - index++; - } - return targets; + return GetTargetInfoList("VisitNoTargetInfoList"); ; } } /// - /// 非靶病灶信息 + /// 新靶病灶信息 /// public List NewTargetInfoList { get { - List targets = new List(); - - var index = 0; - foreach (var item in VisitList.Last().NewVisitTargetInfoList) - { - TargetInfo targetInfo = new TargetInfo() - { - Title = item.Title, - VisitOneImgNum = item.VisitImgNum, - VisitOneLength = item.VisitLength != null ? item.VisitLength.Value.ToString() : string.Empty, - VisitTwoImgNum = VisitList.Count >= 2 ? VisitTwo.NewVisitTargetInfoList[index].VisitImgNum : string.Empty, - VisitTwoLength = VisitList.Count >= 2 && VisitTwo.NewVisitTargetInfoList[index].VisitLength != null ? VisitTwo.NewVisitTargetInfoList[index].VisitLength.Value.ToString() : string.Empty, - VisitThreeImgNum = VisitList.Count >= 3 ? VisitThree.NewVisitTargetInfoList[index].VisitImgNum : string.Empty, - VisitThreeLength = VisitList.Count >= 3 && VisitThree.NewVisitTargetInfoList[index].VisitLength != null ? VisitThree.NewVisitTargetInfoList[index].VisitLength.Value.ToString() : string.Empty - }; - targets.Add(targetInfo); - index++; - } - return targets; - + return GetTargetInfoList("NewVisitTargetInfoList"); ; } } /// - /// 非靶病灶信息 + /// 新非靶病灶信息 /// public List NewNoTargetInfoList { get { - List targets = new List(); - - var index = 0; - foreach (var item in VisitList.Last().NewVisitNoTargetInfoList) - { - TargetInfo targetInfo = new TargetInfo() - { - Title = item.Title, - VisitOneImgNum = item.VisitImgNum, - VisitOneLength = item.VisitLength != null ? item.VisitLength.Value.ToString() : string.Empty, - VisitTwoImgNum = VisitList.Count >= 2 ? VisitTwo.NewVisitNoTargetInfoList[index].VisitImgNum : string.Empty, - VisitTwoLength = VisitList.Count >= 2 && VisitTwo.NewVisitNoTargetInfoList[index].VisitLength != null ? VisitTwo.NewVisitNoTargetInfoList[index].VisitLength.Value.ToString() : string.Empty, - VisitThreeImgNum = VisitList.Count >= 3 ? VisitThree.NewVisitNoTargetInfoList[index].VisitImgNum : string.Empty, - VisitThreeLength = VisitList.Count >= 3 && VisitThree.NewVisitNoTargetInfoList[index].VisitLength != null ? VisitThree.NewVisitNoTargetInfoList[index].VisitLength.Value.ToString() : string.Empty - }; - targets.Add(targetInfo); - index++; - } - return targets; - + return GetTargetInfoList("NewVisitTargetInfoList"); ; } } } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs index 3da75228e..ea9053b45 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs @@ -106,6 +106,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate string getHavePreviousNewLesions(Guid visitId) { var answer = answerList.Where(x => x.ReadingQuestionTrial.QuestionType == QuestionType.OtherNewTargetLesion && x.Id == visitId).Select(x => x.Answer).FirstIsNullReturnEmpty(); + if(answer==string.Empty) + { + return string.Empty; + } if (answer == ((int)(OtherPreviousNewLesionAssessment.iUPD)).ToString()) { return _localizer["CriterionCalculateExport_Yes"];