package thyyxxk.webserver.entity.chronicDisease;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import thyyxxk.webserver.utils.StringUtil;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * @ClassName CrmPatientMi
 * @Author Administrator
 * @Date 2023/11/23 15:15
 * @Version 1.0
 * @Description 慢病基本信息
 **/
@Data
@TableName(value = "crm_patient_mi")
public class CrmPatientMi implements Serializable {

    private static final long serialVersionUID = -1L;

    /**
     * 用户ID
     */
    @JsonProperty("pId")
    private String pId;
    /**
     * 姓名
     */
    @JsonProperty("pName")
    private String pName;
    /**
     * 性别
     */
    private String sex;
    /**
     * 出生日期
     */
    private String birthDate;
    /**
     * 病人来源
     */
    @JsonProperty("pType")
    private String pType;
    /**
     * 所属企业
     */
    private String entId;
    /**
     * 门诊号
     */
    private String hisMzNo;
    /**
     * 住院号
     */
    private String hisZyNo;
    /**
     * 病案号
     */
    private String hisBaNo;
    /**
     * 体检号
     */
    private String hisTjNo;
    /**
     * 证件号
     */
    @TableId(value = "social_no", type = IdType.NONE)
    private String socialNo;
    /**
     * 卡号
     */
    private String cardNo;
    /**
     * 婚姻状况
     */
    private String marryCode;
    /**
     * 国籍
     */
    private String countryCode;
    /**
     * 民族
     */
    private String nationCode;
    /**
     * 职业
     */
    private String occupationCode;
    /**
     * 行业
     */
    private String vocationCode;
    /**
     * 区县编码
     */
    private String districtCode;
    /**
     * 区县e-mail
     */
    @JsonProperty("eMail")
    private String eMail;
    /**
     * 家庭电话
     */
    private String homeTel;
    /**
     * 家庭住址
     */
    private String homeStreet;
    /**
     * 家庭邮编
     */
    private String homeZip;
    /**
     * 单位电话
     */
    private String empTel;
    /**
     * 单位名称
     */
    private String empName;
    /**
     * 单位地址
     */
    private String empStreet;
    /**
     * 单位邮编
     */
    private String empZip;
    /**
     * 联系电话
     */
    private String relTel;
    /**
     * 联系电话2
     */
    private String relTel2;
    /**
     * 联系人电话
     */
    private String relNameTel;
    /**
     * 联系人姓名
     */
    private String relName;
    /**
     * 联系人关系
     */
    private String relCode;
    /**
     * 联系人地址
     */
    private String relStreet;
    /**
     * 联系人邮编
     */
    private String relZip;
    /**
     * 最近一次医疗方式
     */
    private String lastType;
    /**
     * 最近一次医疗时间（改为确诊时间）
     */
    private String lastDate;
    /**
     * 特殊备注
     */
    @JsonProperty("pComment")
    private String pComment;
    /**
     * 病人等级
     */
    private String importLevel;
    /**
     * 等级描述
     */
    private String importComment;
    /**
     * 潜在问题（等级）
     */
    private String quLevel;
    /**
     * 潜在问题说明
     */
    private String quComment;
    /**
     * 证件类型
     */
    private String certificateType;
    /**
     * 慢病类型
     */
    private String chronicDiseaseType;
    /**
     * 省
     */
    private String provinceCode;
    /**
     * 市
     */
    private String cityCode;
    /**
     * 详细地址
     */
    private String detailAdress;
    /**
     * 创建时间（建卡时间）
     */
    private String createDate;
    /**
     * 创建人
     */
    private String creatId;
    /**
     * 主管医生(id)
     */
    private String referPhysician;
    /**
     * 最近一次随访次数（改为首次慢病次数）
     */
    private Integer visitTimes;
    /**
     * 下次随访时间
     */
    private String visitDate;
    /**
     * 年龄
     */
    private String age;
    /**
     * 区(地区)
     */
    private String areaCode;
    /**
     * 是否有效（1: 无效）
     */
    private String delFlag;
    /**
     * 建档科室（id）
     */
    private String creatDept;
    /**
     * 身高
     */
    @TableField(exist = false)
    private BigDecimal height;
    /**
     * 体重
     */
    @TableField(exist = false)
    private BigDecimal weight;
    /**
     * 体温
     */
    @TableField(exist = false)
    private BigDecimal temperature;
    /**
     * 收缩血压
     */
    @TableField(exist = false)
    private Integer bloodPressureHigh;
    /**
     * 舒张血压
     */
    @TableField(exist = false)
    private Integer bloodPressureLow;
    /**
     * 心率
     */
    @TableField(exist = false)
    private Integer heartRate;
    /**
     * 血糖
     */
    @TableField(exist = false)
    private BigDecimal bloodSugar;
    /**
     * 血氧
     */
    @TableField(exist = false)
    private String bloodOxygen;
    /**
     * 呼吸频率
     */
    @TableField(exist = false)
    private Integer respiratoryRate;
    /**
     * 慢特病类型组
     */
    @TableField(exist = false)
    private List<String> chronicDiseaseTypeArr;
    /**
     * 主管医生名字(前端回显)
     */
    @TableField(exist = false)
    private String referPhysicianName;
    /**
     * 性别（中文）
     */
    @TableField(exist = false)
    private String sexValue;
    /**
     * 病人来源名称
     */
    @TableField(exist = false)
    private String ptName;

    //用户id
    @TableField(exist = false)
    private String userIdCode;
    @TableField(exist = false)
    private String userName;
    //科室编码
    @TableField(exist = false)
    private String deptCode;
    @TableField(exist = false)
    private String deptName;
    /**
     * @Description 慢病类型名称（，隔开）
     * @Author hsh
     * @Date 2023/12/19 9:11
     */
    @TableField(exist = false)
    private String chronicDiseaseName;

    /**
     * @Description 拼接慢病类型名称
     * @Author hsh
     * @param chronicDiseaseName 名称
     * @Date 2023/12/19 10:54
     */
    public void setChronicDiseaseName(String chronicDiseaseName){
        if(StringUtil.notBlank(chronicDiseaseName)){
            if(StringUtil.isBlank(this.chronicDiseaseName)){
                this.chronicDiseaseName = chronicDiseaseName + ",";
            } else {
                this.chronicDiseaseName += chronicDiseaseName + ",";
            }
        }
    }

    /**
     * 血压拼接（收缩压/舒张压）
     */
    @TableField(exist = false)
    private String bloodPressure;
    /**
     * 省名称
     */
    @TableField(exist = false)
    private String provinceName;
    /**
     * 市名称
     */
    @TableField(exist = false)
    private String cityName;
    /**
     * 区名称
     */
    @TableField(exist = false)
    private String areaName;
    /**
     * 距下次随访日期天数
     */
    @TableField(exist = false)
    private long days;

    @TableField(exist = false)
    private String creatIdName;

}
