From b4b4c82e59c5600ffc5b3b1a35d25257278d6435 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Fri, 30 Jun 2023 13:24:00 +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 --- .../ClinicalData/ClinicalQuestionService.cs | 56 +++++++++++++++++-- .../Reading/Dto/ClinicalQuestionDto.cs | 31 +++++++++- 2 files changed, 79 insertions(+), 8 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs index ff56af219..345dd2a67 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs @@ -42,12 +42,56 @@ namespace IRaCIS.Core.Application.Service _systemClinicalQuestionRepository = systemClinicalQuestionRepository; } - /// - /// 获取系统临床数据预览 - /// - /// - /// - [HttpPost] + /// + /// 获取计算问题 + /// + /// + /// + [HttpPost] + public async Task> GetClinicalCalculateQuestions(GetClinicalCalculateQuestionsInDto inDto) + { + var result = await _trialClinicalQuestionRepository + + .Where(x => x.TrialClinicalId == inDto.TrialClinicalId) + .WhereIf(!inDto.ClinicalQuestionType.IsNullOrEmpty(), x => x.ClinicalQuestionType == inDto.ClinicalQuestionType) + .OrderBy(x => x.ShowOrder) + .Select(x => new GetClinicalCalculateQuestionsOutDto + () + { + QuestionId = x.Id, + QuestionName = x.QuestionName.LanguageName(x.QuestionEnName, _userInfo.IsEn_Us) + + }).ToListAsync(); + + var tablequestion = await _trialClinicalTableQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId && x.ClinicalTableQuestionType == "number").Select(x => + new + { + TableQuestionId = x.Id, + QuestionId= x.QuestionId, + QuestionName = x.QuestionName.LanguageName(x.QuestionEnName, _userInfo.IsEn_Us) + }).ToListAsync(); + + + result.ForEach(x => + { + x.TableQuestions = tablequestion.Where(y => x.QuestionId == y.QuestionId).Select(y => new CalculateQuestion() + { + + QuestionId = y.QuestionId, + QuestionName = y.QuestionName + + }).ToList(); + }); + + return result; + } + + /// + /// 获取系统临床数据预览 + /// + /// + /// + [HttpPost] public async Task<(List, bool)> GetSystemClinicalQuestionPreview(GetSystemClinicalQuestionPreviewDto inDto) { var questions = await _systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs index 9474d06c5..ad8ab1cb9 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs @@ -10,10 +10,37 @@ using System.Threading.Tasks; namespace IRaCIS.Core.Application.Service.Reading.Dto { - #region 预览 - public class GetSystemClinicalQuestionPreviewDto + #region 获取计算问题 + public class GetClinicalCalculateQuestionsOutDto + { + public Guid QuestionId { get; set; } + + public string QuestionName { get; set; } + + public List TableQuestions { get; set; } + } + + + public class GetClinicalCalculateQuestionsInDto + { + /// + /// 项目临床数据Id + /// + public Guid TrialClinicalId { get; set; } + + /// + /// 临床问题类型(分组,单选。) + /// + public string ClinicalQuestionType { get; set; } = string.Empty; + } + #endregion + + #region 预览 + + + public class GetSystemClinicalQuestionPreviewDto { /// /// 系统临床数据Id