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