//-------------------------------------------------------------------- // 此代码由T4模板自动生成 byzhouhang 20210918 // 生成时间 2022-06-07 14:09:29 // 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 using System; using IRaCIS.Core.Domain.Share; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Collections.Generic; using System.Linq; namespace IRaCIS.Core.Domain.Models { /// ///VisitTask /// [Table("VisitTask")] public class VisitTask : Entity, IAuditUpdate, IAuditAdd { public string TaskName { get; set; } = string.Empty; public string TaskBlindName { get; set; } = string.Empty; //任务来源检查批次Id 方便回更检查批次读片状态 public Guid? SourceSubjectVisitId { get; set; } public Guid? SouceReadModuleId { get; set; } /// /// 任务类型 /// public ReadingCategory ReadingCategory { get; set; } public Guid CreateUserId { get; set; } public DateTime CreateTime { get; set; } public DateTime UpdateTime { get; set; } public Guid UpdateUserId { get; set; } public Guid TrialId { get; set; } /// /// 分配时间 /// public DateTime? AllocateTime { get; set; } public Guid SubjectId { get; set; } public int Code { get; set; } public string TaskCode { get; set; } = string.Empty; public bool IsUrgent { get; set; } /// /// 加急类型 /// public TaskUrgentType? TaskUrgentType { get; set; } /// /// 任务加急类型 /// public string TaskUrgentRemake { get; set; } = string.Empty; /// /// 是否和编辑加急状态 /// public bool IsCanEditUrgentState { get; set; } = true; /// /// 0 代表 单重阅片 产生的任务 否则就是双重 任务 1 任务 2 /// [Required] public Arm ArmEnum { get; set; } /// /// 分配状态 /// public TaskAllocationState TaskAllocationState { get; set; } public TaskState TaskState { get; set; } /// /// 重阅状态 /// public ReReadingApplyState ReReadingApplyState { get; set; } public Guid? DoctorUserId { get; set; } public Guid TrialReadingCriterionId { get; set; } [JsonIgnore] [ForeignKey("TrialReadingCriterionId")] public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; } [ForeignKey("DoctorUserId")] public User DoctorUser { get; set; } [ForeignKey("SouceReadModuleId")] public ReadModule ReadModule { get; set; } [ForeignKey("SourceSubjectVisitId")] public SubjectVisit SourceSubjectVisit { get; set; } [JsonIgnore] [ForeignKey("JudgeVisitTaskId")] public VisitTask JudgeVisitTask { get; set; } //public SubjectUser SujectArm { get; set; } [JsonIgnore] public Subject Subject { get; set; } [JsonIgnore] public List TaskMedicalReviewList { get; set; } //排除一致性分析 因为souceVisitId 没值 //public List SameVisitTaskList { get; set; } //public List SameSubjectVisiTaskList { get; set; } //public TaskAllocationRule DoctorTaskAllocationRule { get; set; } [JsonIgnore] public TaskMedicalReviewRule DoctorTaskMedicalReviewRule { get; set; } //裁判任务的Id public Guid? JudgeVisitTaskId { get; set; } //任务阅片状态 public ReadingTaskState ReadingTaskState { get; set; } //签名时间 public DateTime? SignTime { get; set; } public DateTime? SuggesteFinishedTime { get; set; } /// /// 是否是重阅产生的,方便过滤数据 /// public bool IsReReadingCreate { get; set; } /// /// PM 对该任务进行了回退 影响的任务不设置 /// public bool IsPMSetBack { get; set; } /// 裁判结果的任务ID public Guid? JudgeResultTaskId { get; set; } [ForeignKey("JudgeResultTaskId")] public VisitTask JudgeResultTask { get; set; } //随访任务号 取检查批次的号 计划外是 检查批次+0.1 裁判任务在检查批次任务上+0.002 全局任务在截止检查批次号上+0.03 肿瘤待定 public decimal VisitTaskNum { get; set; } public PackState PackState { get; set; } public string PackRelativePath { get; set; } /// /// 首次阅片时间 /// public DateTime? FirstReadingTime { get; set; } /// /// 全局是否有更新 /// public bool? IsGlobalHaveUpdate { get; set; } /// /// IR是否阅读临床数据 /// public bool IsReadClinicalData { get; set; } = false; /// /// 关联的检查批次任务ID (当前任务是检查批次任务的话会有自己) /// public string RelatedVisitTaskIds { get; set; } = "[]"; /// /// 关联的检查批次任务ID (当前任务是检查批次任务的话会有自己)集合 /// [NotMapped] public List RelatedVisitTaskIdList { get { try { return JsonConvert.DeserializeObject>(this.RelatedVisitTaskIds); } catch (Exception) { return new List(); } } } /// /// 既往任务Id 不包括自己 /// public string PastResultTaskIds { get; set; } = "[]"; /// /// 既往任务Id 不包括自己集合 /// [NotMapped] public List PastResultTaskIdList { get { try { return JsonConvert.DeserializeObject>(this.PastResultTaskIds); } catch (Exception) { return new List(); } } } #region 裁判任务特有 [JsonIgnore] //对于裁判任务而言,触发裁判的列表 public List JudgeVisitList { get; set; } /// /// 裁判结果的备注 /// public string JudgeResultRemark { get; set; } = string.Empty; /// /// 裁判结果的图片路径 /// public string JudgeResultImagePath { get; set; } = string.Empty; #endregion #region 一致性分析的任务特有数据 /// /// 阅片结果是否和原数据有差异 /// public bool? IsAnalysisDiffToOriginalData { get; set; } /// /// 组件一致性和原Arm1是否有差异 /// public bool? IsGroupDiffArm1 { get; set; } /// /// 组件一致性和原Arm2是否有差异 /// public bool? IsGroupDiffArm2 { get; set; } /// /// 是否是一致性分析产生 /// public bool IsAnalysisCreate { get; set; } public bool? IsSelfAnalysis { get; set; } public string BlindSubjectCode { get; set; } = string.Empty; public string BlindTrialSiteCode { get; set; } = string.Empty; //一致性分析规则Id 用于最后统计 //public Guid? TaskConsistentRuleId { get; set; } /// /// 针对产生的一致性任务而言,这个字段存储的是原始任务 /// public Guid? ConsistentAnalysisOriginalTaskId { get; set; } #endregion //临床数据 public bool IsNeedClinicalDataSign { get; set; } public bool IsClinicalDataSign { get; set; } //前序任务需要签名 但是未签名 public bool IsFrontTaskNeedSignButNotSign { get; set; } [JsonIgnore] public Trial Trial { get; set; } //影像质量 等等第一层级问题答案 [JsonIgnore] public List ReadingTaskQuestionAnswerList { get; set; } = new List(); //病灶表 [JsonIgnore] public List LesionList { get; set; } = new List(); //病灶答案表 [JsonIgnore] public List LesionAnswerList { get; set; } = new List(); //重阅或者退回影像的记录中间表 [JsonIgnore] public List TaskInfluenceList { get; set; } = new List(); [JsonIgnore] //对于全局任务而言 才可以用的 关联的检查批次阅片结果 public List GlobalVisitResultList { get; set; } = new List(); /// /// 裁判结果图片地址 /// [NotMapped] public List JudgeResultImagePathList { get { try { return this.JudgeResultImagePath.Trim().Split(',').ToList(); } catch (Exception) { return new List(); } } } } } /// /// 影像下载打包状态 /// public enum PackState { /// /// 待打包 /// WaitPack = 0, /// /// 打包中 /// Packing = 1, /// /// 打包完成 /// Packed = 2 }