using IRaCIS.Core.Domain.Share; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IRaCIS.Core.Application.Service.Reading.Dto { #region 获取计算问题 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; } public string QuestionName { get; set; } public List TableQuestions { get; set; } } public class GetClinicalCalculateQuestionsInDto { /// /// 项目临床数据Id /// public Guid TrialClinicalId { get; set; } /// /// 临床问题类型(分组,单选。) /// public string ClinicalQuestionType { get; set; } = string.Empty; } #endregion #region 预览 public class GetSystemClinicalQuestionPreviewDto { /// /// 系统临床数据Id /// public Guid SystemClinicalId { get; set; } } public class GetTrialClinicalQuestionPreviewDto { /// /// 项目临床数据Id /// public Guid TrialClinicalId { get; set; } } /// /// 项目预览问题Dto /// public class ClinicalQuestionPreviewDto : TrialClinicalQuestionDto { /// /// 系统临床数据Id /// public Guid SystemClinicalId { get; set; } public string Answer { get; set; } = string.Empty; /// /// 子问题 /// public List Childrens { get; set; } = new List(); /// /// 关联问题 /// public List RelationQuestions { get; set; } = new List(); /// /// 表格问题 /// public List TableQuestions { get; set; } = new List(); public List> TableAnswer { get; set; } } /// /// 项目临床数据问题 /// public class ClinicalTablePreviewDto : TrialClinicalTableQuestionDto { /// /// 系统临床数据Id /// public Guid SystemClinicalId { get; set; } } #endregion #region 外层问题 /// /// 临床问题基本信息 /// public class ClinicalQuestionBase { /// /// Id /// public Guid? Id { get; set; } /// /// 问题名称 /// public string QuestionName { get; set; } = string.Empty; /// /// 问题英文名称 /// public string QuestionEnName { get; set; } = string.Empty; /// /// 临床问题类型(分组,单选。) /// public string ClinicalQuestionType { get; set; } /// /// 问题标识 /// public ClinicalQuestionMark? ClinicalQuestionMarkEnum { get; set; } /// /// 最大长度 /// public int? MaxAnswerLength { get; set; } /// /// 最大行数 /// public int? MaxQuestionCount { get; set; } /// /// 临床数据选项类型(无,自定义) /// public ClinicalOptionType ClinicalOptionTypeEnum { get; set; } /// /// 分组Id /// public Guid? GroupId { get; set; } /// /// 自定义选项 /// public string TypeValue { get; set; } = string.Empty; /// /// 字典Code /// public string DictionaryCode { get; set; } = string.Empty; /// /// 排序 /// public int ShowOrder { get; set; } = 0; /// /// 是否必填 /// public IsRequired IsRequired { get; set; } /// /// 关联Value /// public string RelevanceValue { get; set; } = string.Empty; /// /// 关联ID /// public Guid? RelevanceId { get; set; } /// /// 父问题Id /// public Guid? ParentId { get; set; } /// /// 父问题触发值 /// public string ParentTriggerValue { get; set; } = string.Empty; /// /// 显示类型 /// public ClinicalQuestionShow ClinicalQuestionShowEnum { get; set; } = ClinicalQuestionShow.Show; /// /// 是否是检查日期 /// public bool IsCheckDate { get; set; } /// /// 小数点位数 /// public int? DigitPlaces { get; set; } /// /// 单位 /// public string Unit { get; set; } = string.Empty; /// /// 自定义计算标记 /// public ClinicalCalculateMark? CustomCalculateMark { get; set; } /// /// 自定义计算问题 /// public string CalculateQuestions { get; set; } = "[]"; [NotMapped] public List CalculateQuestionList { get { try { var result = JsonConvert.DeserializeObject>(this.CalculateQuestions); return result == null ? new List() : result; } catch (Exception) { return new List(); } } } } /// /// 查询临床数据基类 /// public class ClinicalQuestionQueryBase : PageInput { /// /// 问题名称 /// public string QuestionName { get; set; } = string.Empty; } /// /// 获取项目临床数据 /// public class TrialClinicalQuestionQuery : ClinicalQuestionQueryBase { public Guid TrialClinicalId { get; set; } } /// /// 获取项目分组 /// public class GetTrialGroupDto { public Guid TrialClinicalId { get; set; } } /// /// 项目临床数据问题 /// public class TrialClinicalQuestionDto : ClinicalQuestionBase { /// /// 项目临床数据Id /// public Guid TrialClinicalId { get; set; } } /// /// 获取系统临床数据 /// public class SystemClinicalQuestionQuery : ClinicalQuestionQueryBase { public Guid SystemClinicalId { get; set; } } /// /// 系统临床数据问题 /// public class SystemClinicalQuestionDto : ClinicalQuestionBase { /// /// 系统临床数据Id /// public Guid SystemClinicalId { get; set; } } /// /// 获取系统分组 /// public class GetSystemGroupDto { public Guid SystemClinicalId { get; set; } } #endregion #region 表格问题 public class ClinicalTableQuestionBase { public Guid? Id { get; set; } /// /// 问题名称 /// public string QuestionName { get; set; } = string.Empty; /// /// 问题英文名称 /// public string QuestionEnName { get; set; } = string.Empty; /// /// 临床问题类型(分组,单选。) /// public string ClinicalTableQuestionType { get; set; } /// /// 问题标识 /// public ClinicalTableQuestionMark? ClinicalTableQuestionMarkEnum { get; set; } /// /// 最大长度 /// public int? MaxAnswerLength { get; set; } /// /// 临床数据选项类型(无,自定义) /// public ClinicalOptionType ClinicalOptionTypeEnum { get; set; } /// /// 自定义选项 /// public string TypeValue { get; set; } /// /// 字典Code /// public string DictionaryCode { get; set; } = string.Empty; /// /// 排序 /// public int ShowOrder { get; set; } /// /// 是否必填 /// public IsRequired IsRequired { get; set; } /// /// 创建时间 /// public DateTime CreateTime { get; set; } /// /// 创建人 /// public Guid CreateUserId { get; set; } /// /// 外层问题Id /// public Guid QuestionId { get; set; } /// /// 小数点位数 /// public int? DigitPlaces { get; set; } /// /// 单位 /// public string Unit { get; set; } = string.Empty; } /// /// 项目临床数据问题 /// public class TrialClinicalTableQuestionDto : ClinicalTableQuestionBase { /// /// 项目临床数据Id /// public Guid TrialClinicalId { get; set; } /// /// 自定义计算标记 /// public ClinicalCalculateMark? ClinicalCalculateMarkEnum { get; set; } /// /// 自定义计算问题 /// public string CalculateQuestions { get; set; } = "[]"; } /// /// 系统临床数据问题 /// public class SystemClinicalTableQuestionDto : ClinicalTableQuestionBase { /// /// 系统临床数据Id /// public Guid SystemClinicalId { get; set; } } /// /// 查询临床数据基类 /// public class ClinicalTableQuestionQueryBase : PageInput { /// /// 问题名称 /// public string QuestionName { get; set; } = string.Empty; /// /// 外层问题Id /// public Guid QuestionId { get; set; } } /// /// 获取项目临床数据 /// public class TrialClinicalTableQuestionQuery : ClinicalTableQuestionQueryBase { } /// /// 获取系统临床数据 /// public class SystemClinicalTableQuestionQuery : ClinicalTableQuestionQueryBase { } #endregion #region 同步临床数据 public class TrialClinicalTableQuestionSynchronize : TrialClinicalTableQuestion { /// /// 系统临床数据Id /// public Guid SystemClinicalId { get; set; } } public class TrialClinicalQuestionSynchronize : TrialClinicalQuestion { /// /// 系统临床数据Id /// public Guid SystemClinicalId { get; set; } } public class SynchronizationQuestionDto { /// /// 系统临床数据Id /// public Guid SystemClinicalId { get; set; } /// /// 项目临床数据Id /// public Guid TrialClinicalId { get; set; } } public class QuestionDic { public Guid SystemQuestionId { get; set; } public Guid TrialQuestionId { get; set; } /// /// 项目临床数据Id /// public Guid TrialClinicalId { get; set; } } #endregion }