package com.xinelu.manage.domain.patientinfo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 患者全部信息视图对象 patient_all_info_view
 *
 * @author xinelu
 * @date 2024-06-11
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "患者全部信息视图对象", description = "patient_all_info_view")
public class PatientAllInfoViewUppercase {

    private static final long serialVersionUID = 1L;

    /**
     * 患者主键
     */
    @ApiModelProperty(value = "患者主键")
    private Long PATIENTID;

    /**
     * 患者姓名
     */
    @ApiModelProperty(value = "患者姓名")
    private String PATIENTNAME;

    /**
     * 患者电话
     */
    @ApiModelProperty(value = "患者电话")
    private String PATIENTPHONE;

    /**
     * 家属电话
     */
    @ApiModelProperty(value = "家属电话")
    private String FAMILYMEMBERPHONE;

    /**
     * 出生日期，格式：yyyy-MM-dd
     */
    @ApiModelProperty(value = "出生日期，格式：yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate BIRTHDATE;

    /**
     * 身份证号
     */
    @ApiModelProperty(value = "身份证号")
    private String CARDNO;

    /**
     * 性别，男：MALE，女：FEMALE
     */
    @ApiModelProperty(value = "性别，男：MALE，女：FEMALE")
    private String SEX;

    /**
     * 住址
     */
    @ApiModelProperty(value = "住址")
    private String ADDRESS;

    /**
     * 患者类型，预住院患者：PRE_HOSPITALIZED_PATIENT，在院患者：IN_HOSPITAL_PATIENT，门诊患者：OUTPATIENT，出院患者：DISCHARGED_PATIENT，签约患者：CONTRACTED_PATIENT
     */
    @ApiModelProperty(value = "患者类型，预住院患者：PRE_HOSPITALIZED_PATIENT，在院患者：IN_HOSPITAL_PATIENT，门诊患者：OUTPATIENT，出院患者：DISCHARGED_PATIENT，签约患者：CONTRACTED_PATIENT")
    private String PATIENTTYPE;

    /**
     * 就诊记录id
     */
    @ApiModelProperty(value = "就诊记录id")
    private Long PATIENTVISITRECORDID;

    /**
     * 就诊类型，门诊：OUTPATIENT_SERVICE，住院：BE_HOSPITALIZED
     */
    @ApiModelProperty(value = "就诊类型，门诊：OUTPATIENT_SERVICE，住院：BE_HOSPITALIZED")
    private String VISITMETHOD;

    /**
     * 就诊时间，格式：yyyy-MM-dd HH:mm:ss
     */
    @ApiModelProperty(value = "就诊时间，格式：yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private LocalDateTime VISITDATE;

    /**
     * 所属医院名称
     */
    @ApiModelProperty(value = "所属医院名称")
    private String HOSPITALAGENCYNAME;

    /**
     * 所属院区名称
     */
    @ApiModelProperty(value = "所属院区名称")
    private String CAMPUSAGENCYNAME;

    /**
     * 所属科室名称
     */
    @ApiModelProperty(value = "所属科室名称")
    private String DEPARTMENTNAME;

    /**
     * 所属病区名称
     */
    @ApiModelProperty(value = "所属病区名称")
    private String WARDNAME;

    /**
     * 主治医生姓名
     */
    @ApiModelProperty(value = "主治医生姓名")
    private String ATTENDINGPHYSICIANNAME;

    /**
     * 主要诊断
     */
    @ApiModelProperty(value = "主要诊断")
    private String MAINDIAGNOSIS;

    /**
     * 入院时间
     */
    @ApiModelProperty(value = "入院时间")
    private LocalDateTime ADMISSIONTIME;

    /**
     * 出院时间
     */
    @ApiModelProperty(value = "出院时间")
    private LocalDateTime DISCHARGETIME;

    /**
     * 住院天数（出院记录），单位为：天
     */
    @ApiModelProperty(value = "住院天数")
    private Integer HOSPITALIZATIONDAYS;

    /**
     * 入院病历信息，存储患者入院的整个病历信息
     */
    @ApiModelProperty(value = "入院病历信息，存储患者入院的整个病历信息")
    private String INHOSPITALINFO;

    /**
     * 出院病历信息，存储患者出院的整个病历信息
     */
    @ApiModelProperty(value = "出院病历信息，存储患者出院的整个病历信息")
    private String OUTHOSPITALINFO;

    /**
     * 就诊流水号
     */
    @ApiModelProperty(value = "就诊流水号")
    private String VISITSERIALNUMBER;

    /**
     * 门诊/住院号
     */
    @ApiModelProperty(value = "门诊/住院号")
    private String INHOSPITALNUMBER;

    /**
     * 责任护士
     */
    @ApiModelProperty(value = "责任护士")
    private String RESPONSIBLENURSE;

    /**
     * 手术名称
     */
    @ApiModelProperty(value = "手术名称")
    private String SURGICALNAME;

    /**
     * 手术记录
     */
    @ApiModelProperty(value = "手术记录")
    private String SURGICALRECORD;

    /**
     * 签约记录表id
     */
    @ApiModelProperty(value = "签约记录表id")
    private Long SIGNPATIENTRECORDID;

    /**
     * 缴费状态，已缴费：PAID，未交费：UNPAID_FEES
     */
    @ApiModelProperty(value = "缴费状态，已缴费：PAID，未交费：UNPAID_FEES")
    private String PAYMENTSTATUS;

    /**
     * 所属健康管理师名称（用户表名称）
     */
    @ApiModelProperty(value = "所属健康管理师名称")
    private String HEALTHMANAGENAME;

    /**
     * 服务状态，意向签约：INTENTIONAL_SIGNING，服务中：SERVICE_CENTER，服务结束：SERVICE_END
     */
    @ApiModelProperty(value = "服务状态，意向签约：INTENTIONAL_SIGNING，服务中：SERVICE_CENTER，服务结束：SERVICE_END")
    private String SERVICESTATUS;

    /**
     * 签约状态，在签：IN_SIGN，忽略：IGNORE_SIGN，解约：SEPARATE_SIGN，续约：CONTINUOUS_SIGN
     */
    @ApiModelProperty(value = "签约状态，在签：IN_SIGN，忽略：IGNORE_SIGN，解约：SEPARATE_SIGN，续约：CONTINUOUS_SIGN")
    private String SIGNSTATUS;

    /**
     * 开单医生姓名（意向签约）
     */
    @ApiModelProperty(value = "开单医生姓名")
    private String BILLINGDOCTORNAME;

    /**
     * 签约时间，格式：yyyy-MM-dd HH:mm:ss
     */
    @ApiModelProperty(value = "签约时间，格式：yyyy-MM-dd HH:mm:ss")
    private LocalDateTime SIGNTIME;

    /**
     * 服务包名称
     */
    @ApiModelProperty(value = "服务包名称")
    private String PACKAGENAME;

    /**
     * 服务包缴费状态，已缴费：PAID，未交费：UNPAID_FEES
     */
    @ApiModelProperty(value = "服务包缴费状态，已缴费：PAID，未交费：UNPAID_FEES")
    private String PACKAGEPAYMENTSTATUS;

    /**
     * 服务包价格，小数点后两位
     */
    @ApiModelProperty(value = "服务包价格，小数点后两位")
    private BigDecimal PACKAGEPRICE;

    /**
     * 服务开始时间，格式：yyyy-MM-dd HH:mm:ss
     */
    @ApiModelProperty(value = "服务开始时间，格式：yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime SERVICESTARTTIME;

    /**
     * 服务结束时间，格式：yyyy-MM-dd HH:mm:ss
     */
    @ApiModelProperty(value = "服务结束时间，格式：yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime SERVICEENDTIME;

    /**
     * 服务包期限
     */
    @ApiModelProperty(value = "服务包期限")
    private Integer PACKAGETERM;

    /**
     * 服务包期限单位，年，月，日
     */
    @ApiModelProperty(value = "服务包期限单位，年，月，日")
    private String PACKAGETERMUNIT;
}