Uat_Study
he 2023-06-30 13:24:00 +08:00
parent 276e7ee729
commit b4b4c82e59
2 changed files with 79 additions and 8 deletions

View File

@ -42,12 +42,56 @@ namespace IRaCIS.Core.Application.Service
_systemClinicalQuestionRepository = systemClinicalQuestionRepository; _systemClinicalQuestionRepository = systemClinicalQuestionRepository;
} }
/// <summary> /// <summary>
/// 获取系统临床数据预览 /// 获取计算问题
/// </summary> /// </summary>
/// <param name="inDto"></param> /// <param name="inDto"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public async Task<List<GetClinicalCalculateQuestionsOutDto>> 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;
}
/// <summary>
/// 获取系统临床数据预览
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<(List<ClinicalQuestionPreviewDto>, bool)> GetSystemClinicalQuestionPreview(GetSystemClinicalQuestionPreviewDto inDto) public async Task<(List<ClinicalQuestionPreviewDto>, bool)> GetSystemClinicalQuestionPreview(GetSystemClinicalQuestionPreviewDto inDto)
{ {
var questions = await _systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId) var questions = await _systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId)

View File

@ -10,10 +10,37 @@ using System.Threading.Tasks;
namespace IRaCIS.Core.Application.Service.Reading.Dto 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<CalculateQuestion> TableQuestions { get; set; }
}
public class GetClinicalCalculateQuestionsInDto
{
/// <summary>
/// 项目临床数据Id
/// </summary>
public Guid TrialClinicalId { get; set; }
/// <summary>
/// 临床问题类型(分组,单选。)
/// </summary>
public string ClinicalQuestionType { get; set; } = string.Empty;
}
#endregion
#region 预览
public class GetSystemClinicalQuestionPreviewDto
{ {
/// <summary> /// <summary>
/// 系统临床数据Id /// 系统临床数据Id