using IRaCIS.Core.Domain.Share; namespace IRaCIS.Core.Domain.Models; [Comment("医生 - 基础信息表")] [Table("Doctor")] public class Doctor : BaseFullAuditEntity { #region 导航属性 [Comment("导航属性")] [JsonIgnore] public List DoctorDicRelationList { get; set; } = new List(); [JsonIgnore] public List TrialExperienceCriteriaList { get; set; } [JsonIgnore] public List EnrollList { get; set; } [JsonIgnore] [ForeignKey("HospitalId")] public Hospital Hospital { get; set; } [JsonIgnore] [ForeignKey("SpecialityId")] public virtual Dictionary Speciality { get; set; } [JsonIgnore] [ForeignKey("DepartmentId")] public virtual Dictionary Department { get; set; } [JsonIgnore] [ForeignKey("RankId")] public virtual Dictionary Rank { get; set; } [JsonIgnore] [ForeignKey("PositionId")] public virtual Dictionary Position { get; set; } [JsonIgnore] public List AttachmentList { get; set; } [JsonIgnore] public List CriterionFileList { get; set; } [JsonIgnore] public User User { get; set; } #endregion public bool AcceptingNewTrial { get; set; } public bool ActivelyReading { get; set; } [MaxLength] public string? AdminComment { get; set; } public DateTime? AuditTime { get; set; } public Guid AuditUserId { get; set; } public string BlindName { get; set; } = null!; public string BlindNameCN { get; set; } = null!; [MaxLength] public string? BlindPublications { get; set; } [StringLength(400)] public string ChineseName { get; set; } = null!; public int Code { get; set; } public ContractorStatusEnum CooperateStatus { get; set; } = ContractorStatusEnum.Noncooperation; public Guid? DepartmentId { get; set; } [StringLength(400)] public string DepartmentOther { get; set; } = null!; [StringLength(400)] public string DepartmentOtherCN { get; set; } = null!; [StringLength(400)] public string EMail { get; set; } = null!; [StringLength(400)] public string FirstName { get; set; } = null!; public int GCP { get; set; } public Guid GCPId { get; set; } public Guid? HospitalId { get; set; } public string HospitalOther { get; set; } = null!; public string HospitalOtherCN { get; set; } = null!; [StringLength(2000)] public string Introduction { get; set; } = null!; public bool IsVirtual { get; set; } public DateTime? LastLoginTime { get; set; } [StringLength(400)] public string LastName { get; set; } = null!; public int Nation { get; set; } public Guid OrganizationId { get; set; } [MaxLength] public string? OtherClinicalExperience { get; set; } [MaxLength] public string? OtherClinicalExperienceCN { get; set; } [StringLength(400)] public string Password { get; set; } = null!; [StringLength(400)] public string Phone { get; set; } = null!; public string PhotoPath { get; set; } = null!; public string Physician { get; set; } = null!; public string PhysicianCN { get; set; } = null!; public Guid? PhysicianId { get; set; } public Guid? PositionId { get; set; } [StringLength(400)] public string PositionOther { get; set; } = null!; [StringLength(400)] public string PositionOtherCN { get; set; } = null!; public Guid? RankId { get; set; } [StringLength(400)] public string RankOther { get; set; } = null!; [StringLength(400)] public string RankOtherCN { get; set; } = null!; [StringLength(400)] public string ReadingTypeOther { get; set; } = null!; [StringLength(400)] public string ReadingTypeOtherCN { get; set; } = null!; [StringLength(512)] public string ResumePath { get; set; } = null!; public ResumeStatusEnum ResumeStatus { get; set; } = ResumeStatusEnum.Failed; [StringLength(400)] public string ReviewerCode { get; set; } = null!; public ReviewerInformationConfirmStatus ReviewStatus { get; set; } = ReviewerInformationConfirmStatus.ConfirmRefuse; public int Sex { get; set; } public Guid? SpecialityId { get; set; } [StringLength(400)] public string SpecialityOther { get; set; } = null!; [StringLength(400)] public string SpecialityOtherCN { get; set; } = null!; [StringLength(400)] public string SubspecialityOther { get; set; } = null!; [StringLength(400)] public string SubspecialityOtherCN { get; set; } = null!; [StringLength(400)] public string WeChat { get; set; } = null!; [NotMapped] public string FullName => LastName + " / " + FirstName; }