package com.miyzh.entity;

import com.miyzh.entity.ClcReceiptSelfpay;
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 InsClinicSettlement implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 序列号
     */

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

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

    private String clinicId;
    /**
     * 处方id
     */

    private String prescriptionId;
    /**
     * 医保卡号 参见“卡数据格式”
     */

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

    private String transforType;
    /**
     * 交易结算类别(*) 1：社区普通门诊；2：门诊大病；3：离休人员门诊；4：特药特材结算（慧友大药房结算用，其他医疗机构无此交易类型）
     */

    private String transforId;
    /**
     * 科室编码 标准科室编码
     */

    private String departmentId;
    /**
     * 主治医师编码
     */

    private String doctorId;
    /**
     * 门诊/住院号 仅医院内部使用的，上传以备案
     */

    private String hospitalCode;
    /**
     * 费用发生日期 时间日期格式B
     */

    private Date costHappenTime;
    /**
     * 诊断代码1 病种规则的校验以第一个为准
     */

    private String diagnosis1;
    /**
     * 诊断代码2 可以缺省
     */

    private String diagnosis2;
    /**
     * 诊断代码3 可以缺省
     */

    private String diagnosis3;
    /**
     * 就诊编号
     */

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

    private String detailInvoiceId;
    /**
     * 费用明细总条数
     */

    private String totalCount;
    /**
     * 费用明细总费用 保留2位小数
     */

    private BigDecimal totalScore;
    /**
     * 结算交易流水号/提交明细处理流水号 缺省为空；退费时必须填写
     * 若是退老系统流水可传33位老流水号
     */

    private String settleTransactionId;
    /**
     * 结算状态 1:预结算；2：已结算；3：已撤销；空/其他：未上传
     */

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

    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;
    /**
     * 诊断id
     */

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

    private String diagnosisValue;
    /**
     *
     */

    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;

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

    public void setDetails(List<InsDSettlementDetails> details) {
        this.details = details;
    }

    public List<InsDSettlementDetails> getDetails() {
        return this.details;
    }
    /**
     * 结构表数据
     */
    private InsDSettlement totalBills;

    /**
     * 患者年龄
     */
    private Integer patientAge;


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

    /**
     * 是否为医保外院报销
     */
    private String insOutClinicString;

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


    /**
     * 结算方式
     */
    private String payType;
    /**
     * 发票号
     */
    private String printNum;
    /**
     * 发票起始号
     */
    private String topPrintNum;
    /**
     * 发票起始号
     */
    private String lastPrintNum;

    private List<ClcReceiptSelfpay> clcReceiptSelfpays;

    private String startTime;
    private String endTime;
    private String costHappenTimeStr;

    private boolean saveMoney = false;
    private boolean uploadDiseaseFlag = true;

    //扶贫金额
    private BigDecimal helpPoorScore;
    //扶贫标识
    private int isSupplementaryFlag = 0;

//    收费/退费员
    private String receiptOperatorName;
    private String cancelReceiptTime;
    private String cancelName;
    private String cancelStartTime;
    private String cancelEndTime;

    /**
     * 查询排序字段
     */
    private String sortColumn;      //排序字段
    private String sortOrder;       //排序顺序

    //医疗救助
    private Integer medicalAssistance;
}
