From bf29219da018390a3f233f55a50d997ea10c94ef Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 26 Dec 2022 17:10:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingCalculate/PCWG3CalculateService.cs | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs index 2b7ba3695..2f3f2f329 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs @@ -534,7 +534,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate } break; case QuestionType.NewBoneLesionsCount: + + item.Answer = (await calculate.GetIntFun(inDto)).ToString(); + + if (item.Answer=="-1") + { + item.Answer = nameof(YesOrNoOrNa.NA); + } break; case QuestionType.DaysBetween: item.Answer = (await calculate.GetIntFun(inDto)).ToString(); @@ -668,26 +675,31 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { var taskList = await GetSiteVisitForTumorList(inDto); - + var result = 0; var findindex = taskList.OrderBy(x => x.VisitTaskNum).ToList().FindIndex(x => x.VisitTaskId == inDto.VisitTaskId); - var lastCount = 0; + + if (findindex < 2) { return -1; } - else if (findindex > 2) + else { - var lastTask = taskList.Where(x => x.VisitTaskNum < inDto.VisitTaskNum && x.VisitTaskId != inDto.VisitTaskId).OrderByDescending(x => x.VisitTaskNum).FirstOrDefault(); - var cewBoneLesionsCountQuestionId = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.NewBoneLesionsCount).Select(x => x.QuestionId).FirstOrDefault(); - lastCount =(int) (await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == lastTask.VisitTaskId && x.ReadingQuestionTrialId == cewBoneLesionsCountQuestionId).Select(x => x.Answer).FirstOrDefaultAsync()).IsNullOrEmptyReturn0(); - } - - var result= inDto.QuestionInfo.Where(x => x.LesionType == LesionType.NewLesions).SelectMany(x => x.TableRowInfoList) + var twoindex = taskList.OrderBy(x => x.VisitTaskNum).ToList()[2]; + + + result = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.AlwaysNewLesions).SelectMany(x => x.TableRowInfoList) + .Where(x => x.FristAddTaskNum >= twoindex.VisitTaskNum && x.TableQuestionList.Any(y => y.QuestionMark == QuestionMark.State && y.Answer == EvaluationOfState.Exists.GetEnumInt())).Count() + + + inDto.QuestionInfo.Where(x => x.LesionType == LesionType.NewLesions).SelectMany(x => x.TableRowInfoList) .Where(x => x.TableQuestionList.Any(y => y.QuestionMark == QuestionMark.State && y.Answer == EvaluationOfState.Exists.GetEnumInt())) .Count(); + } + + - return lastCount+ result; + return result; } #endregion