using System; using IRaCIS.Core.Domain.Share; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Collections.Generic; namespace IRaCIS.Core.Domain.Models { ///<summary> /// 项目阅片标准 ///</summary> [Table("ReadingQuestionCriterionTrial")] public class ReadingQuestionCriterionTrial : Entity, IAuditAdd { /// <summary> /// 系统标准ID /// </summary> public Guid? ReadingQuestionCriterionSystemId { get; set; } /// <summary> /// 项目Id /// </summary> public Guid TrialId { get; set; } /// <summary> /// 标准 /// </summary> public string CriterionName { get; set; } /// <summary> /// 是否启用 /// </summary> public bool IsEnable { get; set; } /// <summary> /// 排序 /// </summary> public int ShowOrder { get; set; } /// <summary> /// 是否完成配置 /// </summary> public bool IsCompleteConfig { get; set; } /// <summary> /// 创建时间 /// </summary> public DateTime CreateTime { get; set; } /// <summary> /// 创建人 /// </summary> public Guid CreateUserId { get; set; } /// <summary> /// 描述 /// </summary> public string Description { get; set; } /// <summary> /// 是否确认 /// </summary> public bool IsConfirm { get; set; } /// <summary> /// 表单类型 /// </summary> public FormType FormType { get; set; } = FormType.SinglePage; /// <summary> /// 修约小数点 /// </summary> public int? DigitPlaces { get; set; } = 1; /// <summary> /// 评估结果 /// </summary> public string EvaluationResult { get; set; } = string.Empty; /// <summary> /// 全局阅片评估更新类型 /// </summary> public string GlobalUpdateType { get; set; } = string.Empty; /// <summary> /// 评估原因 /// </summary> public string EvaluationReason { get; set; } = "肿瘤学阅片评估原因请依据临床数据填写,在与影像学结果不一致时必填。"; /// <summary> /// 是否显示详情 /// </summary> public bool IsShowDetail { get; set; } /// <summary> /// 同步时间 /// </summary> public DateTime SynchronizeTime { get; set; } /// <summary> /// 同步器官时间 /// </summary> public DateTime? SynchronizeOriginalTime { get; set; } /// <summary> /// 标准类型 /// </summary> public CriterionType CriterionType { get; set; } /// <summary> /// 是否加急 /// </summary> public bool IsUrgent { get; set; } = false; /// <summary> /// eCRF报告是否显示在图像页面 /// </summary> public bool IseCRFShowInDicomReading { get; set; } = false; public ReadingDivisionEnum ReadingDivisionEnum { get; set; } = ReadingDivisionEnum.OnlySR; public PIReadingScopenEnum PIReadingScopenEnum { get; set; } #region 阅片单元配置 新加 /// <summary> /// 阅片平台 /// </summary> public ImagePlatform ImagePlatform { get; set; } = ImagePlatform.PACS; /// <summary> /// 阅片工具 /// </summary> public ReadingTool? ReadingTool { get; set; } /// <summary> /// 任务组织级别 /// </summary> public ReadingTaskViewMethod ReadingTaskViewEnum { get; set; } /// <summary> /// 阅片是否显示受试者信息 /// </summary> public bool IsReadingShowSubjectInfo { get; set; } = true; /// <summary> /// IR阅片页面是否可以查看既往任务结果 /// </summary> public bool IsReadingShowPreviousResults { get; set; } = true; /// <summary> /// 是确认医学审核问题 /// </summary> public bool IsConfirmMedicineQuestion { get; set; } = false; /// <summary> /// 仲裁对象 /// </summary> public ArbitrationRule ArbitrationRule { get; set; } = ArbitrationRule.None; /// <summary> /// 阅片模式 /// </summary> public ReadingMethod ReadingType { get; set; } = ReadingMethod.Single; /// <summary> /// 是否有阅片期 /// </summary> public bool IsReadingPeriod { get; set; } = false; /// <summary> /// 是否生成全局阅片任务 /// </summary> public bool IsGlobalReading { get; set; } = false; /// <summary> /// 是否签名 /// </summary> public bool IsSigned { get; set; } = false; /// <summary> /// 仲裁阅片 /// </summary> public bool IsArbitrationReading { get; set; } = false; /// <summary> /// 肿瘤学阅片 原字段 IsClinicalReading /// </summary> public bool IsOncologyReading { get; set; } /// <summary> /// 任务展示访视 读片任务显示是否顺序 /// </summary> public bool IsReadingTaskViewInOrder { get; set; } = true; //任务分配对象 public TaskAllocateObj TaskAllocateObjEnum { get; set; } //后续访视任务自动分配 public bool IsFollowVisitAutoAssign { get; set; } = true; //后续全局自动分配 public bool IsFollowGlobalVisitAutoAssign { get; set; } = true; public bool IsFollowJudgeTaskAutoAssign { get; set; } = true; public TaskAllocateDefaultState FollowJudgeTaskAutoAssignDefaultState { get; set; } = TaskAllocateDefaultState.Allocated; //后续访视自动分配默认状态 public TaskAllocateDefaultState FollowVisitAutoAssignDefaultState { get; set; } = TaskAllocateDefaultState.Allocated; //后续全局自动分配默认状态 public TaskAllocateDefaultState FollowGlobalVisitAutoAssignDefaultState { get; set; } = TaskAllocateDefaultState.Allocated; /// <summary> /// 阅片信息签名时间 /// </summary> public DateTime? ReadingInfoSignTime { get; set; } /// <summary> /// 是否必须全局阅片 /// </summary> public bool IsMustGlobalReading { get; set; } = false; //是否附加评估 public bool IsAdditionalAssessment { get; set; } //自动 手动生成任务 public bool IsAutoCreate { get; set; }=true; #endregion /// <summary> /// 项目 /// </summary> [ForeignKey("TrialId")] [JsonIgnore] public Trial Trial { get; set; } [JsonIgnore] public List<ReadingQuestionTrial> ReadingQuestionTrialList = new List<ReadingQuestionTrial>(); [JsonIgnore] public List<TrialCriterionAdditionalAssessmentType> TrialCriterionAdditionalAssessmentTypeList { get; set; } = new List<TrialCriterionAdditionalAssessmentType>(); [JsonIgnore] public List<VisitTask> VisitTaskList { get; set; } } /// <summary> /// 阅片分工 /// </summary> public enum ReadingDivisionEnum { /// <summary> /// 仅SR阅片 /// </summary> OnlySR = 1, /// <summary> /// PI和SR /// </summary> PIandSR = 2 } /// <summary> /// PI阅片范围 /// </summary> public enum PIReadingScopenEnum { /// <summary> /// 全部基线 /// </summary> AllBaseline = 1, /// <summary> /// 全部随访 /// </summary> AllVisit = 2, /// <summary> /// 全部基线和随访 /// </summary> AllBaselineandVisit = 3 } }