From 3919d6a8a3ca42f535dabd1a496efb2dd44b29b8 Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Tue, 30 Dec 2025 17:38:15 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=93=E6=9E=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reading/Dto/ReadingImageTaskViewModel.cs | 5 +- .../General/ReadingCalculateService.cs | 65 ++++++++++++++++--- 2 files changed, 58 insertions(+), 12 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index d705e22a8..8e7b22ef9 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -503,7 +503,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto { public Guid SubjectId { get; set; } - public CriterionType CriterionType { get; set; } + public Guid TrialCriterionId { get; set; } } public class GetReportsChartSummaryOutDto @@ -518,10 +518,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public class EvaluationColumn { - public List> Evaluation { get; set; } + public List> Evaluation { get; set; } public string DictionaryCode { get; set; } } + public class EvaluationValue { public string Value { get; set; } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs index 15af84298..150ed783c 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs @@ -453,7 +453,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate && x.ReadingCategory== ReadingCategory.Visit && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.TaskState == TaskState.Effect - && x.TrialReadingCriterion.CriterionType == inDto.CriterionType + && x.TrialReadingCriterionId==inDto.TrialCriterionId ).OrderByDescending(x => x.VisitTaskNum).FirstOrDefaultAsync(); if (task != null) { @@ -471,27 +471,72 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { EvaluationColumn result = new EvaluationColumn() { - Evaluation = new List>() { } + Evaluation = new List>() { } }; var data = r1.VisitTaskList.Count() > r2.VisitTaskList.Count() ? r1 : r2; var visitTaskName = data.VisitTaskList.Select(x => x.BlindName).ToList(); var length = data.VisitTaskList.Count(); - result.Evaluation.Add(visitTaskName); - result.DictionaryCode = data.TaskQuestions.SelectMany(x => x.Childrens).Where(x => x.QuestionType == QuestionType.Tumor).Select(x => x.DictionaryCode).FirstIsNullReturnEmpty(); + result.Evaluation.Add(visitTaskName.Select(x=> new EvaluationValue() { + Value=x + }).ToList()); - var r1data = r1.TaskQuestions.SelectMany(x => x.Childrens).Where(x => x.QuestionType == QuestionType.Tumor).SelectMany(x => x.Answer).Select(x => x.Answer).ToList(); - r1data = r1data.Concat(Enumerable.Repeat("", length)) + var r1baseLine= data.TaskQuestions + .SelectMany(x => x.Childrens) + .Where(x => x.QuestionType == QuestionType.ExistDisease) + .SelectMany(x => x.Answer.Select(a => new EvaluationValue + { + DictionaryCode = x.DictionaryCode, + Value = a.Answer + })) + .ToList(); + + + var r1data = data.TaskQuestions + .SelectMany(x => x.Childrens) + .Where(x => x.QuestionType == QuestionType.Tumor) + .SelectMany(x => x.Answer.Select(a => new EvaluationValue + { + DictionaryCode = x.DictionaryCode, + Value = a.Answer + })) + .ToList(); + + r1data = r1baseLine.Take(1).Concat(r1data.Skip(1)).ToList(); + + r1data= r1data.Concat(Enumerable.Repeat(new EvaluationValue() { Value = "" }, length)) .Take(length) .ToList(); - result.Evaluation.Add(r1data); - var r2data = r2.TaskQuestions.SelectMany(x => x.Childrens).Where(x => x.QuestionType == QuestionType.Tumor).SelectMany(x => x.Answer).Select(x => x.Answer).ToList(); - r2data = r2data.Concat(Enumerable.Repeat("", length)) + + + var r2baseLine = data.TaskQuestions + .SelectMany(x => x.Childrens) + .Where(x => x.QuestionType == QuestionType.ExistDisease) + .SelectMany(x => x.Answer.Select(a => new EvaluationValue + { + DictionaryCode = x.DictionaryCode, + Value = a.Answer + })) + .ToList(); + + + var r2data = data.TaskQuestions + .SelectMany(x => x.Childrens) + .Where(x => x.QuestionType == QuestionType.Tumor) + .SelectMany(x => x.Answer.Select(a => new EvaluationValue + { + DictionaryCode = x.DictionaryCode, + Value = a.Answer + })) + .ToList(); + + r2data = r2baseLine.Take(1).Concat(r2data.Skip(1)).ToList(); + + r2data = r2data.Concat(Enumerable.Repeat(new EvaluationValue() { Value = "" }, length)) .Take(length) .ToList(); - result.Evaluation.Add(r2data); return result;