package com.openhis.web.inpatientmanage.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;

/**
 * 三测单信息
 *
 * @author SY
 * @since 2025/05/29
 */
@Data
@Accessors(chain = true)
public class VitalSignsDto {

    /**
     * ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private String id;

    /**
     * 患者ID
     */
    private Long patientId;

    /**
     * 就诊ID
     */
    private Long encounterId;

    /**
     * 记录日期
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    private Date recordingDate;

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

    /**
     * 生命体征编码
     */
    private String vitalSignsCode;

    /**
     * 生命体征值
     */
    private String vitalSignsValues;

    /**
     * 单位
     */
    private String units;

    /**
     * 婴儿编号
     */
    private Integer babyNo;

    /**
     * 科室编码
     */
    private Integer locationId;

    /**
     * 记录人员
     */
    private String recorder;

    /**
     * 备注
     */
    private String remake;

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

    /**
     * 入院科室
     */
    @Dict(dictCode = "id", dictText = "name", dictTable = "adm_organization")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long organizationId;
    private String organizationId_dictText;

    /**
     * 床位号
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @Dict(dictTable = "adm_location", dictCode = "id", dictText = "name")
    private Long bedLocationId;
    private String bedLocationId_dictText;

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

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

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

    /**
     * 住院天数
     */
    private Integer hospitalizationDays;

    /**
     * 手术开始日期
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private Date surgeryStartTime;

    /**
     * 手术结束日期日期
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private Date surgeryEndTime;

    /**
     * 手术状态
     */
    private Integer surgeryStatusEnum;
    private String surgeryStatusEnum_enumText;

    /**
     * 术后天数
     */
    private Integer postoperativeDays;

    /**
     * 就诊类别
     */
    private Integer classEnum;
    private String classEnum_enumText;

    /**
     * 周数
     */
    private Integer weekNo;
}
