package com.miyzh.entity;

import lombok.Data;

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

/**
 * <p>
 * 住院结算单
 * </p>
 *
 * @author liyc
 * @since 2018-01-02
 */
@Data
public class InsHospitalSettlement implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 序列号
     */

    private String id;
    /**
     * 患者id
     */

    private String patientId;
    /**
     * 诊所id
     */

    private String clinicId;
    /**
     * 处方id 多条，[id1,id2]
     */

    private String prescriptionId;
    /**
     * 医保卡号
     */

    private String insuranceCardId;
    /**
     * 结算类型 住院结算：1普通住院；2转入医院；3急诊住院；4家庭病床； 5家床转住院；6社区家床；7护理包干；8 床日限额结算；
     * 9 老年专护；A院护；B家护；C 专护；D日间病房；E医保居民生育；F 巡护（社区）；G 巡护（村卫生室）；
     * H日间手术中心；I长期照护；J短期照护；K日间照护；L日间化疗；M康复住院；N儿童日间康复；O急诊留观
     */

    private String settlementType;
    /**
     * 交易类型  1：结算；2：退费
     */

    private String transactionType;
    /**
     * 科室id
     */

    private String departmentId;
    /**
     * 主治医生
     */

    private String doctorId;
    /**
     * 单病种代码/日间病房病种 针对住院结算：
     * 如果交易结算类别为D“日间病房”，则上传疾病分类为“日间病房病种”的病种编码；
     */

    private String singleDiseaseId;
    /**
     * 金额发生日期
     */

    private Date moneyAppendDate;
    /**
     * 住院发生日期
     */

    private Date inHospitalTime;
    /**
     * 住院编号
     */

    private String inHospitalId;
    /**
     * 诊断id
     */

    private String diagnosisId;
    /**
     * 诊断内容
     */

    private String diagnosisValue;
    /**
     * 合计金额
     */

    private BigDecimal totalCost;
    /**
     * 就诊编号
     */

    private String visitCode;
    /**
     * 明细账单号
     */

    private String detailInvoiceId;
    /**
     * 提交明细的总条数
     */

    private String submitDetailCounts;
    /**
     * 结算交易流水号
     */

    private String settleTransactionId;
    /**
     * 执业护士
     */

    private String nurseId;
    /**
     * 护理员
     */

    private String caregiverId;
    /**
     * 状态 费用已上传/预结算完成/结算完成？/退费/撤销/退药
     */

    private String settlementStatus;
    /**
     * 患者姓名
     */

    private String patientName;
    /**
     * 患者性别
     */

    private String patientSex;
    /**
     * 患者生日
     */

    private Date patientBirth;
    /**
     * 患者电话
     */

    private String patientPhone;
    /**
     * 个人医保编号
     */

    private String patientInsuranceId;
    /**
     * 人员类别
     */

    private String insPersonType;
    /**
     * 身份证id
     */

    private String idCard;
    /**
     * 单位名称
     */

    private String companyId;
    /**
     * 单位编号
     */

    private String companyName;
    /**
     * 区域划分
     */

    private String reginal;
    /**
     * 个人付费
     */

    private BigDecimal selfPay;
    /**
     * 医保金额/统筹金额
     */

    private BigDecimal insurancePay;
    /**
     * 医生姓名
     */

    private String doctorName;
    /**
     * 科室名称
     */

    private String departmentName;
    /**
     * 护理员姓名
     */

    private String caregiverName;
    /**
     * 执业护士姓名
     */

    private String nurseName;
    /**
     *
     */

    private String createId;
    /**
     *
     */

    private String createName;
    /**
     *
     */

    private Date createTime;
    /**
     *
     */

    private String updateId;
    /**
     *
     */

    private String updateName;
    /**
     *
     */

    private Date updateTime;
    /**
     *
     */

    private String deleteId;
    /**
     *
     */

    private String deleteName;
    /**
     *
     */

    private Date deleteTime;


    /**
     * 出院原因
     * 1 治愈 2 好转 3 未愈 4 死亡 5 转院 6 转外 7 家床转住院 8 中途结算 9 其他
     */
    private String outHospitalReason;
    /**
     * 出院日期
     */
    private Date outHospitalTime;

    /**
     * 药品相关信息
     */
    private List<InsDSettlementDetails> details;


    private InsNurseProjectHistory insNurseProjectHistory;


    private InsDSettlement settle;

    /**
     * 住院类数据来源
     * 1：处方类
     * 2：护理类
     */
    private String settleFromType;

    /**
     * 是否为医保外院报销
     */
    private int insOutClinic = 0;

    /**
     * 结算方式
     */
    private String payType;

    /**
     * 是否从下载请求的撤销
     */
    private int cancelFromDailyDld = 0;


    private String medicineIds;//药品id(id1,id2,id3)

    private String cancleMedicine;//退药

    //费用上传到医保的标识：1代表已上传，其他代表未上传，默认值null，
    private String insUploadFlag;
    //扶贫金额
    private BigDecimal helpPoorScore;

    /**
     * 处方状态 数据来源处方表中status -》 /退费/撤销/退药
     */
    private Integer prescriptionStates;

    /**
     * 护理记账标识
     */
    private boolean nurseSettledFlag;

    /**
     * 20191231转诊资质标识，1是 0否
     */
    private int isReferral;
}
