diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
index 6d593a1ed..763be10a4 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
@@ -42,6 +42,75 @@ namespace IRaCIS.Core.Application.Service
_systemClinicalQuestionRepository = systemClinicalQuestionRepository;
}
+ ///
+ /// 获取系统临床数据预览
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task<(List, bool)> GetSystemClinicalQuestionPreview(GetSystemClinicalQuestionPreviewDto inDto)
+ {
+ var questions = await _systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId)
+ .ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
+
+ var tableQuestions= await _systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId)
+ .ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
+
+
+ var result = questions.Where(x => x.ClinicalQuestionType == ReadingQestionType.Group).ToList();
+
+ result.ForEach(x =>
+ {
+ this.FindChildQuestion(x, questions, tableQuestions);
+ });
+
+ return (result, true);
+ }
+
+
+ ///
+ /// 获取项目临床数据预览
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task<(List, bool)> GetTrialClinicalQuestionPreview(GetTrialClinicalQuestionPreviewDto inDto)
+ {
+ var questions = await _trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId)
+ .ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
+
+ var tableQuestions = await _trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId)
+ .ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
+
+
+ var result = questions.Where(x => x.ClinicalQuestionType == ReadingQestionType.Group).ToList();
+
+ result.ForEach(x =>
+ {
+ this.FindChildQuestion(x, questions, tableQuestions);
+ });
+
+ return (result, true);
+ }
+
+
+
+ ///
+ /// 获取子元素
+ ///
+ ///
+ ///
+ ///
+ public void FindChildQuestion(ClinicalQuestionPreviewDto item, List questions, List tableQuestions)
+ {
+ item.Childrens = questions.Where(x => (x.ParentId == item.Id)||(x.GroupId== item.Id&&x.ParentId==null)).ToList();
+
+ item.TableQuestions = tableQuestions.Where(x => x.QuestionId == item.Id).ToList();
+
+ item.Childrens.ForEach(x => {
+ this.FindChildQuestion(x, questions, tableQuestions);
+ });
+ }
#region 项目问题
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
index d6bce9130..6b557fe60 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
@@ -8,6 +8,61 @@ using System.Threading.Tasks;
namespace IRaCIS.Core.Application.Service.Reading.Dto
{
+ #region 预览
+
+
+ public class GetSystemClinicalQuestionPreviewDto
+ {
+ ///
+ /// 系统临床数据Id
+ ///
+ public Guid SystemClinicalId { get; set; }
+ }
+
+ public class GetTrialClinicalQuestionPreviewDto
+ {
+ ///
+ /// 项目临床数据Id
+ ///
+ public Guid TrialClinicalId { get; set; }
+ }
+
+ ///
+ /// 项目预览问题Dto
+ ///
+ public class ClinicalQuestionPreviewDto : TrialClinicalQuestionDto
+ {
+ ///
+ /// 系统临床数据Id
+ ///
+ public Guid SystemClinicalId { get; set; }
+
+ ///
+ /// 子问题
+ ///
+ public List Childrens { get; set; } = new List();
+
+ ///
+ /// 表格问题
+ ///
+ public List TableQuestions { get; set; } = new List();
+ }
+
+
+ ///
+ /// 系统临床数据问题
+ ///
+ public class ClinicalTablePreviewDto : TrialClinicalTableQuestionDto
+ {
+ ///
+ /// 系统临床数据Id
+ ///
+ public Guid SystemClinicalId { get; set; }
+ }
+
+ #endregion
+
+
#region 外层问题
///
/// 临床问题基本信息
@@ -155,7 +210,6 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string CalculateQuestions { get; set; } = "[]";
}
-
///
/// 获取系统临床数据
///
@@ -306,6 +360,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid SystemClinicalId { get; set; }
}
+
///
diff --git a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
index 2ea05fb7c..41effd2f3 100644
--- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
@@ -36,6 +36,12 @@ namespace IRaCIS.Core.Application.Service
CreateMap()
.ForMember(d => d.SystemTableQuestionId, u => u.MapFrom(s => s.Id));
+
+ // 预览
+ CreateMap();
+ CreateMap();
+ CreateMap();
+ CreateMap();
#endregion
CreateMap();