package com.ruoyi.framework.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 病患信息对象 Patients
 * 
 * @author ruoyi
 * @date 2024-11-13
 */
public class Patients extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 病患唯一标识 */
    private Long PatientID;

    /** 病患姓名 */
    @Excel(name = "病患姓名")
    private String Name;

    /** 性别（M: 男, F: 女） */
    @Excel(name = "性别", readConverterExp = "M=:,男=,,F=:,女=")
    private String Gender;

    /** 出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date BirthDate;

    /** 联系方式 */
    @Excel(name = "联系方式")
    private String ContactInfo;

    /** 地址 */
    @Excel(name = "地址")
    private String Address;

    /** 病患分类 */
    @Excel(name = "病患分类")
    private String Classification;

    /** 紧急联系人 */
    @Excel(name = "紧急联系人")
    private String EmergencyContact;

    /** 紧急联系人电话 */
    @Excel(name = "紧急联系人电话")
    private String EmergencyContactPhone;

    /** 保险提供商 */
    @Excel(name = "保险提供商")
    private String InsuranceProvider;

    /** 保险单号 */
    @Excel(name = "保险单号")
    private String InsurancePolicyNumber;

    /** 过敏史 */
    @Excel(name = "过敏史")
    private String Allergies;

    /** 既往病史 */
    @Excel(name = "既往病史")
    private String MedicalHistory;

    /** 上次访问日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上次访问日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date LastVisitDate;

    /** 下次随访日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下次随访日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date NextFollowUpDate;

    /** 记录创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "记录创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date CreatedAt;

    /** 记录更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "记录更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date UpdatedAt;

    /** 医生ID */
    @Excel(name = "医生ID")
    private Long DockerId;

    public void setPatientID(Long PatientID) 
    {
        this.PatientID = PatientID;
    }

    public Long getPatientID() 
    {
        return PatientID;
    }
    public void setName(String Name) 
    {
        this.Name = Name;
    }

    public String getName() 
    {
        return Name;
    }
    public void setGender(String Gender) 
    {
        this.Gender = Gender;
    }

    public String getGender() 
    {
        return Gender;
    }
    public void setBirthDate(Date BirthDate) 
    {
        this.BirthDate = BirthDate;
    }

    public Date getBirthDate() 
    {
        return BirthDate;
    }
    public void setContactInfo(String ContactInfo) 
    {
        this.ContactInfo = ContactInfo;
    }

    public String getContactInfo() 
    {
        return ContactInfo;
    }
    public void setAddress(String Address) 
    {
        this.Address = Address;
    }

    public String getAddress() 
    {
        return Address;
    }
    public void setClassification(String Classification) 
    {
        this.Classification = Classification;
    }

    public String getClassification() 
    {
        return Classification;
    }
    public void setEmergencyContact(String EmergencyContact) 
    {
        this.EmergencyContact = EmergencyContact;
    }

    public String getEmergencyContact() 
    {
        return EmergencyContact;
    }
    public void setEmergencyContactPhone(String EmergencyContactPhone) 
    {
        this.EmergencyContactPhone = EmergencyContactPhone;
    }

    public String getEmergencyContactPhone() 
    {
        return EmergencyContactPhone;
    }
    public void setInsuranceProvider(String InsuranceProvider) 
    {
        this.InsuranceProvider = InsuranceProvider;
    }

    public String getInsuranceProvider() 
    {
        return InsuranceProvider;
    }
    public void setInsurancePolicyNumber(String InsurancePolicyNumber) 
    {
        this.InsurancePolicyNumber = InsurancePolicyNumber;
    }

    public String getInsurancePolicyNumber() 
    {
        return InsurancePolicyNumber;
    }
    public void setAllergies(String Allergies) 
    {
        this.Allergies = Allergies;
    }

    public String getAllergies() 
    {
        return Allergies;
    }
    public void setMedicalHistory(String MedicalHistory) 
    {
        this.MedicalHistory = MedicalHistory;
    }

    public String getMedicalHistory() 
    {
        return MedicalHistory;
    }
    public void setLastVisitDate(Date LastVisitDate) 
    {
        this.LastVisitDate = LastVisitDate;
    }

    public Date getLastVisitDate() 
    {
        return LastVisitDate;
    }
    public void setNextFollowUpDate(Date NextFollowUpDate) 
    {
        this.NextFollowUpDate = NextFollowUpDate;
    }

    public Date getNextFollowUpDate() 
    {
        return NextFollowUpDate;
    }
    public void setCreatedAt(Date CreatedAt) 
    {
        this.CreatedAt = CreatedAt;
    }

    public Date getCreatedAt() 
    {
        return CreatedAt;
    }
    public void setUpdatedAt(Date UpdatedAt) 
    {
        this.UpdatedAt = UpdatedAt;
    }

    public Date getUpdatedAt() 
    {
        return UpdatedAt;
    }
    public void setDockerId(Long DockerId) 
    {
        this.DockerId = DockerId;
    }

    public Long getDockerId() 
    {
        return DockerId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("PatientID", getPatientID())
            .append("Name", getName())
            .append("Gender", getGender())
            .append("BirthDate", getBirthDate())
            .append("ContactInfo", getContactInfo())
            .append("Address", getAddress())
            .append("Classification", getClassification())
            .append("EmergencyContact", getEmergencyContact())
            .append("EmergencyContactPhone", getEmergencyContactPhone())
            .append("InsuranceProvider", getInsuranceProvider())
            .append("InsurancePolicyNumber", getInsurancePolicyNumber())
            .append("Allergies", getAllergies())
            .append("MedicalHistory", getMedicalHistory())
            .append("LastVisitDate", getLastVisitDate())
            .append("NextFollowUpDate", getNextFollowUpDate())
            .append("CreatedAt", getCreatedAt())
            .append("UpdatedAt", getUpdatedAt())
            .append("DockerId", getDockerId())
            .toString();
    }
}
