package com.xinelu.manage.vo.patienttaskexecuterecord;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecord;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDate;
import java.time.LocalDateTime;

import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;


/**
 * 患者管理任务执行记录对象 patient_task_execute_record
 *
 * @author zh
 * @date 2024-03-25
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class PatientTaskExecuteRecordVO extends PatientTaskExecuteRecord {

    @ApiModelProperty(value = "患者年龄")
    private Long age;

    @ApiModelProperty(value = "患者姓名")
    private String patientName;

    @ApiModelProperty(value = "患者电话")
    private String patientPhone;

    @ApiModelProperty(value = "就诊流水号")
    private String visitSerialNumber;

    @ApiModelProperty(value = "所属医院id")
    private Long hospitalAgencyId;

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

    @ApiModelProperty(value = "所属院区id")
    private Long campusAgencyId;

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

    @ApiModelProperty(value = "所属科室id")
    private Long departmentId;

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

    @ApiModelProperty(value = "所属病区id")
    private Long wardId;

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

    @ApiModelProperty(value = "手术名称")
    private String surgicalName;

    @ApiModelProperty(value = "入院时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime admissionTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "出院时间（出院患者）")
    private LocalDateTime dischargeTime;

    @ApiModelProperty(value = "就诊方式，门诊：OUTPATIENT_SERVICE，住院：BE_IN_HOSPITAL")
    private String visitMethod;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "就诊时间（门诊患者）")
    private LocalDateTime visitDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate startDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate endDate;

    @ApiModelProperty(value = "家属电话")
    private String familyMemberPhone;

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

    @ApiModelProperty(value = "身份证号")
    private String cardNo;

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

    @ApiModelProperty(value = "住址")
    private String address;

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

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

    @ApiModelProperty(value = "手术记录")
    private String surgicalRecord;

    @ApiModelProperty(value = "模板id")
    private String templateId;

    @ApiModelProperty(value = "文字提醒内容(任务类型为文字提醒使用)")
    private String textRemindContent;

    @ApiModelProperty(value = "任务处理信息")
    private String routeHandleRemark;
}
