From 1dd8515ac25edd97ceb6901e8a64eb7aa1921adf Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Thu, 13 Nov 2025 11:30:42 +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 --- .../IRaCIS.Core.Application.xml | 21 +++++++ .../Reading/Dto/ReadingImageTaskViewModel.cs | 16 +++++ .../General/ReadingCalculateService.cs | 62 ++++++++++++++++++- 3 files changed, 97 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index f52a044e6..72f9cada8 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -3675,6 +3675,13 @@ + + + 获取报告图表数据 + + + + 获取阅片报告 @@ -6704,6 +6711,13 @@ + + + 获取报告图表数据 + + + + 验证访视提交 @@ -13873,6 +13887,13 @@ IR影像阅片 + + + 获取报告图表数据 + + + + 设置已阅读关键文件 diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index ec6c5c769..33b14b86b 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -447,7 +447,17 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto } public class GetReportsChartDataOutDto { + public List VisitTaskNameList { get; set; } + public List ChartDataList { get; set; } + + + } + + public class ChartData + { + public string Name { get; set; } + public List Value { get; set; } } public class GetReportsChartDataInDto @@ -455,6 +465,12 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid VisitTaskId { get; set; } public Guid TrialId { get; set; } + + public Guid? QuestionId { get; set; } + + public Guid? TableQuestionId { get; set; } + + public decimal? RowIndex { get; set; } } public class SetReadKeyFileInDto { diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs index 6fb635a40..b18943cd5 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs @@ -1,4 +1,5 @@ -using IRaCIS.Core.Application.Helper; +using DocumentFormat.OpenXml.Office.SpreadSheetML.Y2023.MsForms; +using IRaCIS.Core.Application.Helper; using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Application.ViewModel; using IRaCIS.Core.Domain.Models; @@ -252,7 +253,64 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate TrialId = inDto.TrialId, VisitTaskId = inDto.VisitTaskId, }); - return new GetReportsChartDataOutDto(); + + GetReportsChartDataOutDto result = new GetReportsChartDataOutDto() + { + VisitTaskNameList = data.VisitTaskList.Select(x => x.BlindName).ToList(), + ChartDataList=new List() { }, + }; + + + result.VisitTaskNameList = data.VisitTaskList.Select(x => x.BlindName).ToList(); + if (inDto.QuestionId != null) + { + var question = data.TaskQuestions.SelectMany(x => x.Childrens) + .Where(x => x.QuestionId == inDto.QuestionId.Value).FirstOrDefault(); + if (question != null) + { + ChartData chartData = new ChartData() + { + Name = question.QuestionName, + Value = new List(), + }; + foreach (var answer in question.Answer) + { + chartData.Value.Add(answer.Answer); + } + result.ChartDataList.Add(chartData); + } + + } + else + { + var lesion = data.TaskQuestions + // 问题 靶病灶 + .SelectMany(x => x.Childrens) + // 病灶 + .SelectMany(x => x.Childrens).Where(x=> x.RowIndex == inDto.RowIndex) + // 表格问题 + .SelectMany(x => x.Childrens).Where(x => x.TableQuestionId == inDto.TableQuestionId) + + .FirstOrDefault(); + + if (lesion != null) + { + ChartData chartData = new ChartData() + { + Name = lesion.QuestionName, + Value = new List(), + }; + foreach (var answer in lesion.Answer) + { + chartData.Value.Add(answer.Answer); + } + result.ChartDataList.Add(chartData); + } + + + } + + return result; } ///