/*
 * 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.enums.Whether;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 入院患者基本信息 dto
 *
 * @author zwh
 * @date 2025-07-30
 */
@Data
@Accessors(chain = true)
public class AdmissionPatientInfoDto {

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

    /**
     * 目标床位住院患者id
     */
    private Long targetEncounterId;

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

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

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

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

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

    /** 性别编码 */
    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;

    /** 电话 */
    private String phone;

    /** 位置ID */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long locationId;

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

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

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

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

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

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

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

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

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

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

    /**
     * 住院医生id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long admittingDoctorId;

    /**
     * 主治医生id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long attendingDoctorId;

    /**
     * 主任医生id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long chiefDoctorId;

    /**
     * 责任护士id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long primaryNurseId;

    /**
     * 住院医生
     */
    private String admittingDoctorName;

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

    /**
     * 主任医生
     */
    private String chiefDoctorName;

    /**
     * 责任护士
     */
    private String primaryNurseName;

    /**
     * 住院诊断
     */
    private String conditionNames;

    /**
     * 编辑标识
     */
    private String editFlag;

    // TODO 体温单相关字段
}
