package thyyxxk.webserver.entity.api.forpowersi.drgdip.statement;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import thyyxxk.webserver.utils.StringUtil;

/**
 * @author Administrator
 */
@Data
public class YibaoSetlinfo4101a {
    /**
     * 名称：就诊id
     * 说明： 病人唯一标识，关联字段。关联诊断/手术等
     * 是否必填： Y
     */
    @JSONField(name = "VISIT_ID")
    private String visitId;

    /**
     * 病案首页的归档时间
     */
    @JSONField(name = "OPEN_DATE")
    private String openDate;

    /**
     * 名称：人员编号
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "PSN_NO")
    private String psnNo;

    /**
     * 名称：结算ID
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "SETL_ID")
    private String setlId;

    /**
     * 名称：定点医药机构名称
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "FIXMEDINS_NAME")
    private String fixmedinsName;

    /**
     * 名称：定点医药机构编号
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "FIXMEDINS_CODE")
    private String fixmedinsCode;

    /**
     * 名称：医保结算等级
     * 说明： 按照4.29填写
     * 是否必填：
     */
    @JSONField(name = "HI_SETL_LV")
    private String hiSetlLv;

    /**
     * 名称：医保编号
     * 说明： 参保人在医保系统中的唯一身份代码
     * 是否必填：
     */
    @JSONField(name = "HI_NO")
    private String hiNo;

    /**
     * 名称：病案号
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "MEDCASNO")
    private String medcasno;

    /**
     * 名称：申报时间
     * 说明： 结算清单上报时间
     * 是否必填：
     */
    @JSONField(name = "DCLA_TIME")
    private String dclaTime;

    /**
     * 名称：人员姓名
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "PSN_NAME")
    private String psnName;

    /**
     * 名称：性别代码
     * 说明： 按照4.1填写
     * 是否必填： Y
     */
    @JSONField(name = "GEND")
    private String gend;

    /**
     * 名称：出生日期
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "BRDY")
    private String brdy;

    /**
     * 名称：年龄
     * 说明： 大于1岁（含1岁）时必填，单位岁
     * 是否必填： Y
     */
    @JSONField(name = "AGE")
    private String age;

    public String getAge() {
        if (age == null) {
            return null;
        }
        return age.split("\\.")[0];
    }

    /**
     * 名称：国籍代码
     * 说明： 按照4.21填写
     * 是否必填： Y
     */
    @JSONField(name = "NTLY")
    private String ntly;

    /**
     * 名称：（年龄不足1周岁）年龄
     * 说明： 小于1岁时必填，单位天
     * 是否必填： Y
     */
    @JSONField(name = "NWB_AGE")
    private String nwbAge;

    /**
     * 名称：民族代码
     * 说明： 按照4.22填写
     * 是否必填： Y
     */
    @JSONField(name = "NATY")
    private String naty;

    /**
     * 名称：患者证件类别代码
     * 说明： 按照4.30填写
     * 是否必填： Y
     */
    @JSONField(name = "PATN_CERT_TYPE")
    private String patnCertType;

    /**
     * 名称：证件号码
     * 说明： 患者证件号码
     * 是否必填： Y
     */
    @JSONField(name = "CERTNO")
    private String certno;

    /**
     * 名称：职业代码
     * 说明： 按照4.5填写
     * 是否必填： Y
     */
    @JSONField(name = "PRFS")
    private String prfs;

    /**
     * 名称：现住址
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "CURR_ADDR")
    private String currAddr;

    /**
     * 名称：单位名称
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "EMP_NAME")
    private String empName;

    /**
     * 名称：单位地址
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "EMP_ADDR")
    private String empAddr;

    /**
     * 名称：单位电话
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "EMP_TEL")
    private String empTel;

    /**
     * 名称：邮编
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "POSCODE")
    private String poscode;

    /**
     * 名称：联系人姓名
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "CONER_NAME")
    private String conerName;

    /**
     * 名称：与患者关系代码
     * 说明： 当coner_name非空时必填，按照4.6填写
     * 是否必填： Y
     */
    @JSONField(name = "PATN_RLTS")
    private String patnRlts;

    /**
     * 名称：联系人地址
     * 说明： 当coner_name非空时必填
     * 是否必填： Y
     */
    @JSONField(name = "CONER_ADDR")
    private String conerAddr;

    /**
     * 名称：联系人电话
     * 说明： 当coner_name非空时必填
     * 是否必填： Y
     */
    @JSONField(name = "CONER_TEL")
    private String conerTel;

    /**
     * 名称：医保类型代码
     * 说明： 按照4.3填写
     * 是否必填： Y
     */
    @JSONField(name = "HI_TYPE")
    private String hiType;

    /**
     * 名称：参保地
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "INSUPLC")
    private String insuplc;

    /**
     * 名称：特殊人员类型代码
     * 说明： 按照4.44填写
     * 是否必填：
     */
    @JSONField(name = "SP_PSN_TYPE")
    private String spPsnType;

    /**
     * 名称：新生儿入院类型代码
     * 说明： 按照4.7填写
     * 是否必填：
     */
    @JSONField(name = "NWB_ADM_TYPE")
    private String nwbAdmType;

    /**
     * 名称：新生儿出生体重
     * 说明： 精确到10克(g)
     * 是否必填：
     */
    @JSONField(name = "NWB_BIR_WT")
    private String nwbBirWt;

    /**
     * 名称：新生儿入院体重
     * 说明： 精确到10克(g)
     * 是否必填：
     */
    @JSONField(name = "NWB_ADM_WT")
    private String nwbAdmWt;

    /**
     * 名称：多新生儿出生体重
     * 说明： 多胞胎体重，用英文逗号隔开
     * 是否必填：
     */
    @JSONField(name = "MUL_NWB_BIR_WT")
    private String mulNwbBirWt;

    /**
     * 名称：多新生儿入院体重
     * 说明： 多胞胎体重，用英文逗号隔开
     * 是否必填：
     */
    @JSONField(name = "MUL_NWB_ADM_WT")
    private String mulNwbAdmWt;

    /**
     * 名称：门诊慢特病诊断科别名称
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "OPSP_DIAG_CATY_NAME")
    private String opspDiagCatyName;

    /**
     * 名称：门诊慢特病诊断科别代码
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "OPSP_DIAG_CATY")
    private String opspDiagCaty;

    /**
     * 名称：门诊慢特病就诊日期
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "OPSP_MDTRT_DATE")
    private String opspMdtrtDate;

    /**
     * 名称：住院医疗类型代码
     * 说明： 按照4.43填写
     * 是否必填： Y
     */
    @JSONField(name = "IPT_MED_TYPE")
    private String iptMedType;

    /**
     * 名称：入院途径代码
     * 说明： 按照4.8填写
     * 是否必填： Y
     */
    @JSONField(name = "ADM_WAY")
    private String admWay;

    /**
     * 名称：治疗类别代码
     * 说明： 按照4.9填写
     * 是否必填： Y
     */
    @JSONField(name = "TRT_TYPE")
    private String trtType;

    /**
     * 名称：入院时间
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "ADM_TIME")
    private String admTime;

    /**
     * 名称：入院科别代码
     * 说明： 按照4.18填写当住院医疗类型（ipt_med_type）不为空时必填
     * 是否必填： Y
     */
    @JSONField(name = "ADM_CATY")
    private String admCaty;

    /**
     * 名称：转科科别代码
     * 说明： 按照4.18填写（dept如果超过一次以上的转科，用“→”转接表示
     * 是否必填： Y
     */
    @JSONField(name = "REFLDEPT_DEPT")
    private String refldeptDept;

    /**
     * 名称：出院时间
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "DSCG_TIME")
    private String dscgTime;

    /**
     * 名称：出院科别代码
     * 说明： 当住院医疗类型（ipt_med_type）不为空时必填，按照4.18填写
     * 是否必填： Y
     */
    @JSONField(name = "DSCG_CATY")
    private String dscgCaty;

    /**
     * 名称：实际住院天数
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "ACT_IPT_DAYS")
    private String actIptDays;

    /**
     * 名称：门（急）诊西医诊断名称
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "OTP_WM_DISE")
    private String otpWmDise;

    /**
     * 名称：门（急）诊西医诊断疾病代码
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "WM_DISE_CODE")
    private String wmDiseCode;

    /**
     * 名称：门（急）诊中医诊断名称
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "OTP_TCM_DISE")
    private String otpTcmDise;

    /**
     * 名称：门（急）诊中医诊断代码
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "TCM_DISE_CODE")
    private String tcmDiseCode;


    /**
     * 呼吸机使用时长
     */
    @JsonIgnore
    private String ventUsedDura;

    /**
     * 名称：呼吸机使用时长（天）
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "VENT_USED_DAYS")
    private Integer ventUsedDays;

    public String getVentUsedDays() {
        if (StringUtil.isBlank(ventUsedDura)) {
            return null;
        }
        return ventUsedDura.split("/")[0];
    }


    /**
     * 名称：呼吸机使用时长（小时）
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "VENT_USED_HOURS")
    private Integer ventUsedHours;

    public String getVentUsedHours() {
        if (StringUtil.isBlank(ventUsedDura)) {
            return null;
        }
        return ventUsedDura.split("/")[1];
    }

    /**
     * 名称：呼吸机使用时长（分钟）
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "VENT_USED_MINS")
    private Integer ventUsedMins;


    public String getVentUsedMins() {
        if (StringUtil.isBlank(ventUsedDura)) {
            return null;
        }
        return ventUsedDura.split("/")[2];
    }

    /**
     * 颅脑损伤患者入院前昏迷时长
     */
    @JsonIgnore
    private String pwcryAfadmComaDura;

    /**
     * 名称：颅脑损伤患者入院前昏迷时长(天）
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "PWCRY_BFADM_COMA_DAYS")
    private Integer pwcryBfadmComaDays;

    public String getPwcryBfadmComaDays() {
        if (StringUtil.isBlank(pwcryAfadmComaDura)) {
            return null;
        }
        return pwcryAfadmComaDura.split("/")[0];
    }

    /**
     * 名称：颅脑损伤患者入院前昏迷时长（小时)
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "PWCRY_BFADM_COMA_HOURS")
    private Integer pwcryBfadmComaHours;

    public String getPwcryBfadmComaHours() {
        if (StringUtil.isBlank(pwcryAfadmComaDura)) {
            return null;
        }
        return pwcryAfadmComaDura.split("/")[1];
    }

    /**
     * 名称：颅脑损伤患者入院前昏迷时长(分钟）
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "PWCRY_BFADM_COMA_MINS")
    private Integer pwcryBfadmComaMins;

    public String getPwcryBfadmComaMins() {
        if (StringUtil.isBlank(pwcryAfadmComaDura)) {
            return null;
        }
        return pwcryAfadmComaDura.split("/")[2];
    }

    /**
     * 颅脑损伤患者入院后昏迷时长
     */
    private String pwcryBfadmComaDura;

    /**
     * 名称：颅脑损伤患者入院后昏迷时长(天）
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "PWCRY_AFADM_COMA_DAYS")
    private Integer pwcryAfadmComaDays;

    public String getPwcryAfadmComaDays() {
        if (StringUtil.isBlank(pwcryBfadmComaDura)) {
            return null;
        }
        return pwcryBfadmComaDura.split("/")[0];
    }

    /**
     * 名称：颅脑损伤患者入院后昏迷时长（小时）
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "PWCRY_AFADM_COMA_HOURS")
    private Integer pwcryAfadmComaHours;

    public String getPwcryAfadmComaHours() {
        if (StringUtil.isBlank(pwcryBfadmComaDura)) {
            return null;
        }
        return pwcryBfadmComaDura.split("/")[1];
    }

    /**
     * 名称：颅脑损伤患者入院后昏迷时长（分钟）
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "PWCRY_AFADM_COMA_MINS")
    private Integer pwcryAfadmComaMins;

    public String getPwcryAfadmComaMins() {
        if (StringUtil.isBlank(pwcryBfadmComaDura)) {
            return null;
        }
        return pwcryBfadmComaDura.split("/")[2];
    }

    /**
     * 名称：特级护理天数
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "SPGA_NURSCARE_DAYS")
    private Integer spgaNurscareDays;

    /**
     * 名称：一级护理天数
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "LV1_NURSCARE_DAYS")
    private Integer lv1NurscareDays;

    /**
     * 名称：二级护理天数
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "SCD_NURSCARE_DAYS")
    private Integer scdNurscareDays;

    /**
     * 名称：三级护理天数
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "LV3_NURSCARE_DAYS")
    private Integer lv3NurscareDays;

    /**
     * 名称：离院方式代码
     * 说明： 按照4.10填写
     * 是否必填： Y
     */
    @JSONField(name = "DSCG_WAY")
    private String dscgWay;

    /**
     * 名称：拟接收机构名称
     * 说明： 当离院方式为“2”时，如果接收患者的医疗机构明确，需要填写转入医疗机构的名称；
     * 是否必填：
     */
    @JSONField(name = "ACP_MEDINS_NAME")
    private String acpMedinsName;


    /**
     * 名称：拟接收机构代码
     * 说明： 当离院方式为“2”或“3”时，如果接收患者的医疗机构或社区卫生服务机构明确，需要填写机构对应的医保定点医疗机构代码
     * 是否必填：
     */
    @JSONField(name = "ACP_OPTINS_CODE")
    private String acpOptinsCode;

    /**
     * 名称：票据代码
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "BILL_CODE")
    private String billCode;

    /**
     * 名称：票据号码
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "BILL_NO")
    private String billNo;

    /**
     * 名称：业务流水号
     * 说明： 对应计费类别5204中的mdtrt_id
     * 是否必填： Y
     */
    @JSONField(name = "BIZ_SN")
    private String bizSn;

    /**
     * 名称：出院31天内再住院计划标志代码
     * 说明： 按照4.11填写
     * 是否必填：
     */
    @JSONField(name = "DAYS_RINP_FLAG_31")
    private String daysRinpFlag31;

    /**
     * 名称：出院31天内再住院目的
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "DAYS_RINP_PUP_31")
    private String daysRinpPup31;

    /**
     * 名称：主诊医师姓名
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "CHFPDR_NAME")
    private String chfpdrName;

    /**
     * 名称：主诊医师代码
     * 说明： D字开头的13位医保贯标医师编码
     * 是否必填：
     */
    @JSONField(name = "CHFPDR_CODE")
    private String chfpdrCode;

    /**
     * 名称：责任护士名称
     * 说明：
     * 是否必填：
     */
    @JSONField(name = "RESP_NURS")
    private String respNurs;

    /**
     * 名称：责任护士代码
     * 说明： N字开头的13位医保贯标护士编码
     * 是否必填：
     */
    @JSONField(name = "RESP_NURS_CODE")
    private String respNursCode;

    /**
     * 名称：结算开始日期
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "SETL_BEGN_DATE")
    private String setlBegnDate;

    /**
     * 名称：结算结束日期
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "SETL_END_DATE")
    private String setlEndDate;

    /**
     * 名称：总费用
     * 说明：
     * 是否必填： Y
     */
    @JSONField(name = "TOTAL_FEE")
    private String totalFee;

    /**
     * 名称：医保支付方式代码
     * 说明： 按照4.12填写
     * 是否必填： Y
     */
    @JSONField(name = "HI_PAYMTD")
    private String hiPaymtd;

    /**
     * 名称：医疗机构填报部门
     * 说明： 可以由医院提供默认值，如：医保科等
     * 是否必填： Y
     */
    @JSONField(name = "MEDINS_FILL_DEPT")
    private String medinsFillDept;

    /**
     * 名称：医疗机构填报人
     * 说明： 负责人姓名
     * 是否必填： Y
     */
    @JSONField(name = "MEDINS_FILL_PSN")
    private String medinsFillPsn;

    /**
     * 最后归档时间
     */
    @JSONField(name = "OPER_DATE")
    private String operDate;

    /**
     * 入院科室编码
     */
    @JSONField(name = "ADM_DEPT_CODE")
    private String admDeptCode;

    /**
     * 入院科室名称
     */
    @JSONField(name = "ADM_DEPT_NAME")
    private String admDeptName;

    /**
     * 转科室标志
     */
    @JSONField(name = "TRAF_DEPT_FLAT")
    private String trafDeptFlat;

    /**
     * 出院科室编码
     */
    @JSONField(name = "DSCG_DEPT_CODE")
    private String dscgDeptCode;

    /**
     * 出院科室名称
     */
    @JSONField(name = "DSCG_DEPT_NAME")
    private String dscgDeptName;

    /**
     * 险种类型
     */
    @JSONField(name = "INSUTYPE")
    private String insutype;

    /**
     * 个人自付
     */
    @JSONField(name = "PSN_SELFPAY")
    private String psnSelfpay;

    /**
     * 个人自费
     */
    @JSONField(name = "PSN_OWNPAY")
    private String psnOwnpay;

    /**
     * 个人账户支出
     */
    @JSONField(name = "ACCT_PAY")
    private String acctPay;

    /**
     * 个人现金支付
     */
    @JSONField(name = "PSN_CASHPAY")
    private String psnCashpay;

}
