package com.openhis.web.regdoctorstation.dto;

import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

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

/**
 * 住院患者信息 dto
 */
@Data
@Accessors(chain = true)
public class RegPatientMainInfoDto {

    /**
     * 住院就诊id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long encounterId;

    /**
     * 住院就诊状态
     */
    private Integer statusEnum;

    /**
     * 住院号
     */
    private String busNo;

    /**
     * 入院时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date inHospitalTime;

    /**
     * 出院时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date outHospitalTime;

    /**
     * 患者id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long patientId;

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

    /**
     * 性别编码
     */
    private Integer genderEnum;
    private String genderEnum_enumText;

    /**
     * 生日
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date birthDate;

    /**
     * 年龄
     */
    private String age;

    /**
     * 病区
     */
    private String wardName;

    /**
     * 病房
     */
    private String houseName;

    /**
     * 床位
     */
    private String bedName;

    /**
     * 入科时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date inOrgTime;

    /**
     * 入院天数
     */
    private Integer inHospitalDays;

    /**
     * 入院科室
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long inHospitalOrgId;
    private String inHospitalOrgName;

    /**
     * 费用(合同)编码
     */
    private String contractNo;

    /**
     * 费用(合同)名称
     */
    private String contractName;

    /**
     * 住院诊断名称
     */
    private String regDiagnosisName;

    /**
     * 账号id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long accountId;

}
