Uat_Study
hang 2023-06-26 10:28:39 +08:00
commit d9618472cb
3 changed files with 131 additions and 1 deletions

View File

@ -42,6 +42,75 @@ namespace IRaCIS.Core.Application.Service
_systemClinicalQuestionRepository = systemClinicalQuestionRepository;
}
/// <summary>
/// 获取系统临床数据预览
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<(List<ClinicalQuestionPreviewDto>, bool)> GetSystemClinicalQuestionPreview(GetSystemClinicalQuestionPreviewDto inDto)
{
var questions = await _systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId)
.ProjectTo<ClinicalQuestionPreviewDto>(_mapper.ConfigurationProvider).ToListAsync();
var tableQuestions= await _systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId)
.ProjectTo<ClinicalTablePreviewDto>(_mapper.ConfigurationProvider).ToListAsync();
var result = questions.Where(x => x.ClinicalQuestionType == ReadingQestionType.Group).ToList();
result.ForEach(x =>
{
this.FindChildQuestion(x, questions, tableQuestions);
});
return (result, true);
}
/// <summary>
/// 获取项目临床数据预览
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<(List<ClinicalQuestionPreviewDto>, bool)> GetTrialClinicalQuestionPreview(GetTrialClinicalQuestionPreviewDto inDto)
{
var questions = await _trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId)
.ProjectTo<ClinicalQuestionPreviewDto>(_mapper.ConfigurationProvider).ToListAsync();
var tableQuestions = await _trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId)
.ProjectTo<ClinicalTablePreviewDto>(_mapper.ConfigurationProvider).ToListAsync();
var result = questions.Where(x => x.ClinicalQuestionType == ReadingQestionType.Group).ToList();
result.ForEach(x =>
{
this.FindChildQuestion(x, questions, tableQuestions);
});
return (result, true);
}
/// <summary>
/// 获取子元素
/// </summary>
/// <param name="item"></param>
/// <param name="questions"></param>
/// <param name="tableQuestions"></param>
public void FindChildQuestion(ClinicalQuestionPreviewDto item, List<ClinicalQuestionPreviewDto> questions, List<ClinicalTablePreviewDto> 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 项目问题

View File

@ -8,6 +8,61 @@ using System.Threading.Tasks;
namespace IRaCIS.Core.Application.Service.Reading.Dto
{
#region 预览
public class GetSystemClinicalQuestionPreviewDto
{
/// <summary>
/// 系统临床数据Id
/// </summary>
public Guid SystemClinicalId { get; set; }
}
public class GetTrialClinicalQuestionPreviewDto
{
/// <summary>
/// 项目临床数据Id
/// </summary>
public Guid TrialClinicalId { get; set; }
}
/// <summary>
/// 项目预览问题Dto
/// </summary>
public class ClinicalQuestionPreviewDto : TrialClinicalQuestionDto
{
/// <summary>
/// 系统临床数据Id
/// </summary>
public Guid SystemClinicalId { get; set; }
/// <summary>
/// 子问题
/// </summary>
public List<ClinicalQuestionPreviewDto> Childrens { get; set; } = new List<ClinicalQuestionPreviewDto>();
/// <summary>
/// 表格问题
/// </summary>
public List<ClinicalTablePreviewDto> TableQuestions { get; set; } = new List<ClinicalTablePreviewDto>();
}
/// <summary>
/// 系统临床数据问题
/// </summary>
public class ClinicalTablePreviewDto : TrialClinicalTableQuestionDto
{
/// <summary>
/// 系统临床数据Id
/// </summary>
public Guid SystemClinicalId { get; set; }
}
#endregion
#region 外层问题
/// <summary>
/// 临床问题基本信息
@ -155,7 +210,6 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string CalculateQuestions { get; set; } = "[]";
}
/// <summary>
/// 获取系统临床数据
/// </summary>
@ -306,6 +360,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid SystemClinicalId { get; set; }
}
/// <summary>

View File

@ -36,6 +36,12 @@ namespace IRaCIS.Core.Application.Service
CreateMap<SystemClinicalTableQuestion, TrialClinicalTableQuestion>()
.ForMember(d => d.SystemTableQuestionId, u => u.MapFrom(s => s.Id));
// 预览
CreateMap<TrialClinicalQuestion, ClinicalQuestionPreviewDto>();
CreateMap<SystemClinicalQuestion, ClinicalQuestionPreviewDto>();
CreateMap<SystemClinicalTableQuestion, ClinicalTablePreviewDto>();
CreateMap<TrialClinicalTableQuestion, ClinicalTablePreviewDto>();
#endregion
CreateMap<VisitTask, VisitTaskDto>();