irc-netcore-api/IRaCIS.Core.Domain/Visit/Subject.cs

134 lines
3.6 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using IRaCIS.Core.Domain.Share;
using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json;
namespace IRaCIS.Core.Domain.Models;
[Comment("项目 - 受试者")]
[Table("Subject")]
public class Subject : BaseFullDeleteAuditEntity
{
#region 导航属性
[JsonIgnore]
public List<TaskStudy> TaskStudyList { get; set; } = new List<TaskStudy>();
[JsonIgnore]
public List<SubjectVisit> SubjectVisitList { get; set; } = new List<SubjectVisit>();
[JsonIgnore]
public List<SubjectUser> SubjectDoctorList { get; set; } = new List<SubjectUser>();
[JsonIgnore]
public List<VisitTask> SubjectVisitTaskList { get; set; } = new List<VisitTask>();
[JsonIgnore]
public List<ReadModule> ReadModuleList { get; set; }
[JsonIgnore]
public List<SubjectCanceDoctor> SubjectCanceDoctorList { get; set; }
[JsonIgnore]
public List<ReadingClinicalData> ClinicalDataList { get; set; }
[JsonIgnore]
public List<SubjectCriteriaEvaluation> SubjectCriteriaEvaluationList { get; set; }
[JsonIgnore]
public List<SubjectCriteriaEvaluationVisitFilter> SubjectCriteriaEvaluationVisitFilterList { get; set; }
[JsonIgnore]
public List<SubjectAdditionalEvaluationResult> SubjectAdditionalEvaluationResult { get; set; }
[JsonIgnore]
public List<ReadingTaskQuestionAnswer> 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<DicomStudy> StudyList { get; set; } = new List<DicomStudy>();
[JsonIgnore]
[ForeignKey("LatestSubjectVisitId")]
public SubjectVisit LatestSubjectVisit { get; set; }
[JsonIgnore]
public List<ClinicalForm> ClinicalFormList { get; set; }
#endregion
public int? Age { get; set; }
public DateTime? BirthDate { get; set; }
[StringLength(400)]
public string Code { get; set; } = null!;
public Guid? FinalSubjectVisitId { get; set; }
public DateTime? FirstGiveMedicineTime { get; set; }
[StringLength(400)]
public string FirstName { get; set; } = null!;
public string Height { get; set; } = null!;
public bool IsEnrollment { get; set; }
public bool IsEnrollmentConfirm { get; set; }
public bool IsMissingImages { get; set; }
public bool IsReReadingOrBackInfluenceAnalysis { get; set; }
public bool IsUrgent { get; set; }
[StringLength(400)]
public string LastName { get; set; } = null!;
[Comment(" 最新受试者访视")]
public Guid? LatestSubjectVisitId { get; set; }
[StringLength(400)]
public string MedicalNo { get; set; } = null!;
public DateTime? OutEnrollmentTime { get; set; }
[Comment(" 出组原因")]
[MaxLength]
public string? Reason { get; set; }
[StringLength(400)]
public string Sex { get; set; } = null!;
[Comment(" 受试者名称缩写")]
public string ShortName { get; set; } = null!;
[Comment(" 知情同意书签署日期")]
public DateTime? SignDate { get; set; }
public SubjectStatus Status { get; set; } = SubjectStatus.OnVisit;
public Guid TrialId { get; set; }
public Guid TrialSiteId { get; set; }
public DateTime? VisitOverTime { get; set; }
[StringLength(400)]
public string Weight { get; set; } = null!;
}