using IRaCIS.Core.Domain.Share;
namespace IRaCIS.Core.Domain.Models;
///
/// 受试者
///
[Table("Subject")]
public class Subject : BaseFullDeleteAuditEntity
{
#region 导航属性
[JsonIgnore]
public List TaskStudyList { get; set; } = new List();
[JsonIgnore]
public List SubjectVisitList { get; set; } = new List();
[JsonIgnore]
public List SubjectDoctorList { get; set; } = new List();
[JsonIgnore]
public List SubjectVisitTaskList { get; set; } = new List();
[JsonIgnore]
public List ReadModuleList { get; set; }
[JsonIgnore]
public List SubjectCanceDoctorList { get; set; }
[JsonIgnore]
public List ClinicalDataList { get; set; }
[JsonIgnore]
public List SubjectCriteriaEvaluationList { get; set; }
[JsonIgnore]
public List SubjectCriteriaEvaluationVisitFilterList { get; set; }
[JsonIgnore]
public List SubjectAdditionalEvaluationResult { get; set; }
[JsonIgnore]
public List ReadingTaskQuestionAnswerList { get; set; }
[JsonIgnore]
[ForeignKey("FinalSubjectVisitId")]
public SubjectVisit FinalSubjectVisit { get; set; }
[JsonIgnore]
[ForeignKey("TrialId")]
public Trial Trial { get; set; }
[JsonIgnore]
public TrialSite TrialSite { get; set; }
[JsonIgnore]
public List StudyList { get; set; } = new List();
[JsonIgnore]
[ForeignKey("LatestSubjectVisitId")]
public SubjectVisit LatestSubjectVisit { get; set; }
[JsonIgnore]
public List ClinicalFormList { get; set; }
#endregion
public Guid? FinalSubjectVisitId { get; set; }
public Guid TrialSiteId { get; set; }
public string Code { get; set; } = string.Empty;
public string FirstName { get; set; } = string.Empty;
public string LastName { get; set; } = string.Empty;
public int? Age { get; set; }
public string Sex { get; set; } = string.Empty;
public Guid? LatestSubjectVisitId { get; set; }
public Guid TrialId { get; set; } = Guid.Empty;
public string MedicalNo { get; set; } = string.Empty;
public SubjectStatus Status { get; set; } = SubjectStatus.OnVisit;//1 访视中,2 出组 3 访视结束
public string Reason { get; set; } = string.Empty;
public bool IsEnrollment { get; set; }
public DateTime? OutEnrollmentTime { get; set; }
public DateTime? VisitOverTime { get; set; }
public string ShortName { get; set; } = String.Empty;
public string Height { get; set; } = String.Empty;
public string Weight { get; set; } = String.Empty;
public DateTime? BirthDate { get; set; }
public DateTime? SignDate { get; set; }
public DateTime? FirstGiveMedicineTime { get; set; }
public bool IsUrgent { get; set; }
public bool IsReReadingOrBackInfluenceAnalysis { get; set; }
}