//--------------------------------------------------------------------
// 此代码由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 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();
}
}
}
}
}