irc-netcore-api/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs

381 lines
7.8 KiB
C#

using System;
using IRaCIS.Core.Domain.Share;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Collections.Generic;
using System.Linq;
using IRaCIS.Core.Domain.Share.Reading;
namespace IRaCIS.Core.Domain.Models
{
///<summary>
/// 项目阅片问题
///</summary>
[Table("ReadingQuestionTrial")]
public class ReadingQuestionTrial : Entity, IAuditAdd
{
public bool IsAdditional { get; set; }
/// <summary>
/// 项目标准Id
/// </summary>
public Guid ReadingQuestionCriterionTrialId { get; set; }
/// <summary>
/// 项目Id
/// </summary>
public Guid TrialId { get; set; }
/// <summary>
/// 类型
/// </summary>
public string Type { get; set; } = string.Empty;
/// <summary>
/// 父问题触发
/// </summary>
public string ParentTriggerValue { get; set; } = string.Empty;
/// <summary>
/// 问题名称
/// </summary>
public string QuestionName { get; set; } = string.Empty;
/// <summary>
/// 是否是必须
/// </summary>
public IsRequired IsRequired { get; set; }
/// <summary>
/// 排序
/// </summary>
public int ShowOrder { get; set; }
/// <summary>
/// 父问题ID
/// </summary>
public Guid? ParentId { get; set; }
/// <summary>
/// 类型值
/// </summary>
public string TypeValue { get; set; } = string.Empty;
public bool IsEnable { get; set; }
/// <summary>
/// 是否是裁判问题
/// </summary>
public bool IsJudgeQuestion { get; set; }
/// <summary>
/// 病灶类型
/// </summary>
public LesionType? LesionType { get; set; }
/// <summary>
/// 问题类型
/// </summary>
public QuestionType? QuestionType { get; set; }
/// <summary>
/// 全局阅片显示类型
/// </summary>
public GlobalReadingShowType GlobalReadingShowType { get; set; } = GlobalReadingShowType.NotShow;
/// <summary>
/// 转化显示类型
/// </summary>
public ConvertShowType ConvertShowType { get; set; } = ConvertShowType.All;
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; } = string.Empty;
/// <summary>
/// 分组
/// </summary>
public string GroupName { get; set; } = string.Empty;
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 系统问题ID
/// </summary>
public Guid? ReadingQuestionSystemId { get; set; }
/// <summary>
/// 系统标准的ParentId
/// </summary>
public Guid? SystemParentId { get; set; }
/// <summary>
/// 答案分组
/// </summary>
public string AnswerGroup { get; set; } = string.Empty;
/// <summary>
/// 答案组合
/// </summary>
public string AnswerCombination { get; set; } = string.Empty;
/// <summary>
/// 裁判类型
/// </summary>
public JudgeTypeEnum JudgeType { get; set; } = JudgeTypeEnum.AnswerDisaffinity;
/// <summary>
/// 创建人
/// </summary>
public Guid CreateUserId { get; set; }
/// <summary>
/// 标准分页Id
/// </summary>
public Guid? ReadingCriterionPageId { get; set; }
/// <summary>
/// 关联ID
/// </summary>
public Guid? RelevanceId { get; set; }
/// <summary>
/// 关联Value
/// </summary>
public string RelevanceValue { get; set; }=string.Empty;
/// <summary>
/// 图片数量
/// </summary>
public int ImageCount { get; set; } = 1;
/// <summary>
/// 是否显示
/// </summary>
public ShowQuestion ShowQuestion { get; set; } = ShowQuestion.Show;
/// <summary>
/// 默认值
/// </summary>
public string DefaultValue { get; set; } =string.Empty;
/// <summary>
/// 最大问题数
/// </summary>
public int? MaxQuestionCount { get; set; }
/// <summary>
/// 最大答案长度
/// </summary>
public int? MaxAnswerLength { get; set; }
/// <summary>
/// 文件类型
/// </summary>
public string? FileType { get; set; }
/// <summary>
/// 是否显示在Dicom阅片中
/// </summary>
public bool IsShowInDicom { get; set; } = false;
/// <summary>
/// 序号标记
/// </summary>
public string OrderMark { get; set; } = string.Empty;
/// <summary>
/// 字典code
/// </summary>
public string DictionaryCode { get; set; } = string.Empty;
/// <summary>
/// 问题类型
/// </summary>
public TableQuestionType? QuestionGenre { get; set; }
/// <summary>
/// 数值类型
/// </summary>
public ValueOfType? ValueType { get; set; }
/// <summary>
/// 单位
/// </summary>
public ValueUnit? Unit { get; set; }
/// <summary>
/// 自定义单位
/// </summary>
public string CustomUnit { get; set; } = string.Empty;
/// <summary>
/// 自定义计算标记
/// </summary>
public CustomCalculateMark? CustomCalculateMark { get; set; }
/// <summary>
/// 限制编辑
/// </summary>
public LimitEdit LimitEdit { get; set; } = LimitEdit.None;
/// <summary>
/// 限制显示
/// </summary>
public LimitShow LimitShow { get; set; } = LimitShow.AllShow;
/// <summary>
/// 自定义计算标记
/// </summary>
public string CalculateQuestions { get; set; } = "[]";
/// <summary>
/// 数据来源
/// </summary>
public DataSources DataSource { get; set; } = DataSources.ManualEntry;
/// <summary>
/// 问题英文名称
/// </summary>
public string QuestionEnName { get; set; } = string.Empty;
/// <summary>
/// 问题英文分组
/// </summary>
public string GroupEnName { get; set; } = string.Empty;
/// <summary>
/// 是否复制病灶
/// </summary>
public bool IsCopyLesions { get; set; } = false;
/// <summary>
/// 分组ID
/// </summary>
public Guid? GroupId { get; set; }
public AssessmentResultType AssessmentResultEnum { get; set; }
[JsonIgnore]
[ForeignKey("GroupId")]
public ReadingQuestionTrial GroupInfo { get; set; }
/// <summary>
/// 分页标准
/// </summary>
[ForeignKey("ReadingCriterionPageId")]
[JsonIgnore]
public ReadingCriterionPage ReadingCriterionPage { get; set; }
[JsonIgnore]
[ForeignKey("ParentId")]
public ReadingQuestionTrial ParentReadingQuestionTrial { get; set; }
[JsonIgnore]
[ForeignKey("RelevanceId")]
public ReadingQuestionTrial RelevanceReadingQuestionTrial { get; set; }
[JsonIgnore]
[ForeignKey("ReadingQuestionCriterionTrialId")]
public ReadingQuestionCriterionTrial ReadingQuestionCriterionTrial { get; set; }
[JsonIgnore]
public List<ReadingTableQuestionTrial> ReadingTableQuestionTrialList { get; set; }
public enum AssessmentResultType
{
//没有特殊标记
None=0,
//评估结果
AssessmentResult = 1,
}
[NotMapped]
public List<string> ParentTriggerValueList
{
get
{
try
{
return this.ParentTriggerValue.Split(',').ToList();
}
catch (Exception)
{
return new List<string>();
}
}
}
[NotMapped]
public List<string> RelevanceValueList
{
get
{
try
{
return this.RelevanceValue.Split(',').ToList();
}
catch (Exception)
{
return new List<string>();
}
}
}
[NotMapped]
public List<CalculateInfo> CalculateQuestionList
{
get
{
try
{
var result = JsonConvert.DeserializeObject<List<CalculateInfo>>(this.CalculateQuestions);
return result == null ? new List<CalculateInfo>() : result;
}
catch (Exception)
{
return new List<CalculateInfo>();
}
}
}
}
public class CalculateInfo
{
public bool IsTable { get; set; }
public Guid? QuestionId { get; set; }
public Guid? TableQuestionId { get; set; }
}
}