/*
 * Copyright ©2023 CJB-CNIT Team. All rights reserved
 */
package com.openhis.yb.domain;

import java.io.Serializable;
import java.util.Date;

import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 【2402】出院办理
 *
 * @author SunJQ
 * @date 2025-07-31
 */
@Data
@TableName("yb_inpatient_discharge")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class InpatientDischarge extends HisBaseEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(type = IdType.ASSIGN_ID)
    @JSONField(serialize = false)
    private Long id;

    /**
     * 就诊ID
     */
    @JSONField(name = "mdtrt_id")
    private String mdtrtId;

    /**
     * 人员编号
     */
    @JSONField(name = "psn_no")
    private String psnNo;

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

    /**
     * 结束时间（出院时间，格式：yyyy-MM-dd HH:mm:ss）
     */
    @JSONField(name = "endtime", format = "yyyy-MM-dd HH:mm:ss")
    private Date endtime;

    /**
     * 病种编码（按照标准编码填写：按病种结算病种目录代码(bydise_setl_list_code)、日间手术病种目录代码(daysrg_dise_list_code)）
     */
    @JSONField(name = "dise_codg")
    private String diseCodg;

    /**
     * 病种名称
     */
    @JSONField(name = "dise_name")
    private String diseName;

    /**
     * 手术操作代码（日间手术病种时必填）
     */
    @JSONField(name = "oprn_oprt_code")
    private String oprnOprtCode;

    /**
     * 手术操作名称
     */
    @JSONField(name = "oprn_oprt_name")
    private String oprnOprtName;

    /**
     * 计划生育服务证号
     */
    @JSONField(name = "fpsc_no")
    private String fpscNo;

    /**
     * 生育类别
     */
    @JSONField(name = "matn_type")
    private String matnType;

    /**
     * 计划生育手术类别
     */
    @JSONField(name = "birctrl_type")
    private String birctrlType;

    /**
     * 晚育标志
     */
    @JSONField(name = "latechb_flag")
    private String latechbFlag;

    /**
     * 孕周数
     */
    @JSONField(name = "esso_val")
    private Integer essoVal;

    /**
     * 胎次
     */
    @JSONField(name = "fetts")
    private Integer fetts;

    /**
     * 胎儿数
     */
    @JSONField(name = "fetus_cnt")
    private Integer fetusCnt;

    /**
     * 早产标志
     */
    @JSONField(name = "pret_flag")
    private String pretFlag;

    /**
     * 计划生育手术或生育日期（格式：yyyy-MM-dd）
     */
    @JSONField(name = "birctrl_matn_date", format = "yyyy-MM-dd")
    private Date birctrlMatnDate;

    /**
     * 伴有并发症标志
     */
    @JSONField(name = "cop_flag")
    private String copFlag;

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

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

    /**
     * 出院床位
     */
    @JSONField(name = "dscg_bed")
    private String dscgBed;

    /**
     * 离院方式
     */
    @JSONField(name = "dscg_way")
    private String dscgWay;

    /**
     * 死亡日期（格式：yyyy-MM-dd）
     */
    @JSONField(name = "die_date", format = "yyyy-MM-dd")
    private Date dieDate;

    private String inputParam;

    private String outputResult;
}
