diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs index 345dd2a67..b1bdfc55a 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs @@ -42,6 +42,29 @@ namespace IRaCIS.Core.Application.Service _systemClinicalQuestionRepository = systemClinicalQuestionRepository; } + /// + /// 获取问题计算关系 + /// + /// + /// + [HttpPost] + public async Task> GetTrialClinicalQuestionCalculateRelation(GetTrialClinicalQuestionCalculateRelationInDto inDto) + { + + var result= await _trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId) + .Where( x=> x.ClinicalQuestionType == "number") + .Where(x => x.CustomCalculateMark != null && x.CustomCalculateMark > ClinicalCalculateMark.None) + .Select(x => new GetTrialClinicalQuestionCalculateRelationOutDto() + { + QuestionId = x.Id, + QuestionName = x.QuestionName, + CustomCalculateMark = x.CustomCalculateMark, + CalculateQuestionList = x.CalculateQuestionList, + }).ToListAsync(); + result = result.Where(x => x.CalculateQuestionList.Count() > 0).ToList(); + return result; + } + /// /// 获取计算问题 /// diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs index ad8ab1cb9..f38dd1bca 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs @@ -13,7 +13,50 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto #region 获取计算问题 - public class GetClinicalCalculateQuestionsOutDto + + public class GetTrialClinicalQuestionCalculateRelationInDto + { + /// + /// 项目临床数据Id + /// + public Guid TrialClinicalId { get; set; } + } + + + public class GetTrialClinicalQuestionCalculateRelationOutDto + { + public Guid QuestionId { get; set; } + + /// + /// 问题名称 + /// + public string QuestionName { get; set; } + + /// + /// 自定义计算标记 + /// + public ClinicalCalculateMark? CustomCalculateMark { get; set; } + + /// + /// 数值类型 + /// + public ValueOfType? ValueType { get; set; } + + /// + /// 单位 + /// + public ValueUnit? Unit { get; set; } + + /// + /// 自定义单位 + /// + public string CustomUnit { get; set; } = string.Empty; + + public List CalculateQuestionList { get; set; } + } + + + public class GetClinicalCalculateQuestionsOutDto { public Guid QuestionId { get; set; } diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs index 826d10683..3608eb7fa 100644 --- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs +++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs @@ -61,11 +61,12 @@ namespace IRaCIS.Core.Domain.Share /// public enum ClinicalCalculateMark { + None = -1, - /// - /// + - /// - Add = 1, + /// + /// + + /// + Add = 1, /// /// -