Merge branch 'master' of http://192.168.1.2:8033/IRaCIS_Core_Api
commit
d9618472cb
|
@ -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 项目问题
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>();
|
||||
|
|
Loading…
Reference in New Issue