diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 1794eba4d..7b06d4cd7 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -2168,6 +2168,13 @@ + + + 获取预览问题信息 + + + + 新增或修改项目医学审核问题 @@ -2600,6 +2607,56 @@ 是否启用 + + + 类型 + + + + + 父问题触发值 + + + + + 问题名称 + + + + + 类型值 + + + + + 项目ID + + + + + 是否启用 + + + + + 是否必须 + + + + + 排序 + + + + + 父问题 + + + + + 是否确认 + + ReadingMedicineTrialQuestionQuery 列表查询参数模型 diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs index 7b44bd73f..59dab05c3 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs @@ -184,8 +184,78 @@ namespace IRaCIS.Core.Application.ViewModel public int? ParentShowOrder { get; set; } } - ///ReadingMedicineTrialQuestionQuery 列表查询参数模型 - public class ReadingMedicineTrialQuestionQuery + + public class GetMedicineQuestionPreviewInDto + { + public Guid TrialId { get; set; } + } + + + public class GetMedicineQuestionPreviewOutDto + { + public Guid Id { get; set; } + + /// + /// 类型 + /// + public string Type { get; set; } + + /// + /// 父问题触发值 + /// + public string ParentTriggerValue { get; set; } = string.Empty; + + /// + /// 问题名称 + /// + public string QuestionName { get; set; } + + + + /// + /// 类型值 + /// + public string TypeValue { get; set; } + + + + /// + /// 项目ID + /// + public Guid TrialId { get; set; } + + + + /// + /// 是否启用 + /// + public bool IsEnable { get; set; } + + /// + /// 是否必须 + /// + public bool IsRequired { get; set; } + + /// + /// 排序 + /// + public int ShowOrder { get; set; } + + /// + /// 父问题 + /// + public Guid? ParentId { get; set; } + + /// + /// 是否确认 + /// + public bool? IsConfirm { get; set; } + + public List Childrens { get; set; } + } + + ///ReadingMedicineTrialQuestionQuery 列表查询参数模型 + public class ReadingMedicineTrialQuestionQuery { /// /// 项目Id diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingMedicineQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingMedicineQuestionService.cs index b4bf21ccb..0eb3e688f 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingMedicineQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingMedicineQuestionService.cs @@ -107,6 +107,38 @@ namespace IRaCIS.Core.Application.Service }); } + /// + /// 获取预览问题信息 + /// + /// + /// + [HttpPost] + public async Task> GetMedicineQuestionPreview(GetMedicineQuestionPreviewInDto inDto) + { + var trialQuestionList = await _readingMedicineTrialQuestionRepository.Where(x=>x.TrialId==inDto.TrialId) + .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + + List readingQuestionList = trialQuestionList.Where(x => x.ParentId == null).ToList(); + readingQuestionList.ForEach(x => + { + FindChildQuestion(x, trialQuestionList); + }); + + return readingQuestionList; + } + + private void FindChildQuestion(GetMedicineQuestionPreviewOutDto trialReadingQuestion, List questionlists) + { + trialReadingQuestion.Childrens = questionlists.Where(x => x.ParentId == trialReadingQuestion.Id).ToList(); + if (trialReadingQuestion.Childrens != null && trialReadingQuestion.Childrens.Count != 0) + { + trialReadingQuestion.Childrens.ForEach(x => + { + this.FindChildQuestion(x, questionlists); + }); + } + } + /// /// 新增或修改项目医学审核问题 /// diff --git a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs index e3fb7bc38..68b4908a6 100644 --- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs @@ -89,6 +89,8 @@ namespace IRaCIS.Core.Application.Service CreateMap(); CreateMap() .ForMember(x=>x.ParentShowOrder,y=>y.MapFrom(n=>n.ParentQuestion.ShowOrder)); + + CreateMap(); #endregion