/*
 * Copyright ©2023 CJB-CNIT Team. All rights reserved
 */
package com.openhis.web.inhospitalnursestation.dto;

import java.util.Date;

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

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

/**
 * 入院患者分页dto
 *
 * @author zwh
 * @date 2025-07-28
 */
@Data
@Accessors(chain = true)
public class AdmissionPatientPageDto {

    /**
     * 入院ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long encounterId;

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

    /**
     * 住院状态
     */
    private Integer encounterStatus;
    private String encounterStatus_enumText;

    /**
     * 入院时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /**
     * 出院时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 病情
     */
    private Integer priorityEnum;
    private String priorityEnum_enumText;

    /**
     * 入院类型
     */
    @Dict(dictCode = "admit_source_code")
    private String admitSourceCode;
    private String admitSourceCode_dictText;

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

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

    /** 患者拼音码 */
    private String patientPyStr;

    /** 患者五笔码 */
    private String patientWbStr;

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

    /** 生日 */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private Date birthDate;

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

    /** 病区ID */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long wardId;

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

    /** 病房ID */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long houseId;

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

    /** 病床ID */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long bedId;

    /**
     * 病床名称
     */
    private String bedName;

    /** 病床状态 */
    private Integer bedStatus;
    private String bedStatus_enumText;

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

    /**
     * 费别
     */
    private String contractName;
}
