package cn.iocoder.yudao.module.system.api.bpm.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;

/**
 * 长者信息表
 *
 * @author Administrator
 */
@Data
public class ElderlyCheckinInfoRespVO implements Serializable {

    private Long id;
    private String elderImage;
    /**
     * 封面图
     */
    private String elderCover;
    private String elderName;
    private Integer elderSex;
    private Integer elderAge;
    private BigDecimal elderHeight;
    private BigDecimal elderWeight;
    private String elderBlood;
    private String region;
    private String address;
    private Long salesUserId;
    private String userSign;
    private String createBy;
    private Date createTime;
    private String updateBy;
    private Date updateTime;
    private String contractNumber;
    private String censusRegister;
    private String idCard;
    private String bloodType;
    private String nationId;
    private String political;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date birthday;
    private String telPhone;
    private String economySource;
    private String religiousBelief;
    private String homeTel;
    private String mediaChannels;
    private String businessType;
    private String medicalInsurance;
    private Integer degreeEducation;
    private Integer maritalStatus;
    private Integer elderType;
    private Integer formSupply;
    private String retirementUnit;
    private Integer paymentMethod;
    private String refereeName;
    private Long refereeId;
    private Long refereePay;
    private String allergicDrug;
    /**
     * 能力评估
     */
    private String ocac;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date checkInTime;


    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date checkOutTime;

    private LocalDateTime settleDate;
    /**
     * 入住状态：0未住,1已入住,2.退住
     */
    private Integer inStatus;
    private Long nurseLevelId;
    private String nurseLevelName;
    private Long nurseGroupId;
    private String nurseGroupName;
    private Long buildId;

    private String buildName;
    private Long floorId;

    private String floorName;
    private Long roomId;
    private String roomName;
    private Long bedId;
    private String bedName;
    /**
     * 残疾情况
     */
    private String disability;
    /**
     * 过敏药物
     */
    private String drugAllergy;


    private BigDecimal inDeposit;
    /**
     * 可进入设备
     */
    private String machineIds;

    /**
     * 档案号
     */
    private String fileNumber;
    /**
     * 所属类型,1.机构 2.家庭 3.旅居等等
     */
    private Integer sourceType;
    /**
     * 入住类别 1.入住  2.试住 3.短住
     */
    private Integer inStatusType;

    /**
     * 身份证类型
     */
    private String papersType;
    /**
     * 身份证地址
     */
    private String papersAddress;
    /**
     * 语言
     */
    private String language;
    /**
     * 社会保障卡号
     */
    private String socialSecurityCardNumber;

    /**
     * 参保地
     */
    private String insuredPlace;

    /**
     * 是否残疾
     */
    private Integer whetherDisabled;

    /**
     * 退休金
     */
    private BigDecimal pension;

    /**
     * 退休时间
     */
    private Date retirementTime;

    /**
     * 长者文件
     */
    private String elderFiles;

    /**
     * 托养人文件
     */
    private String custodianFiles;

    /**
     * 其他文件
     */
    private String otherFiles;

    /**
     * 是否包房
     */
    private Integer isPrivateRoom;

    /**
     * 特殊护理备注
     */
    private String specialCareNotes;

    /**
     * 长者标签
     */
    private String elderTags;

    /**
     * 租户id
     */
    private Long tenantId;

    private String tenantName;

    /**
     * 生日关怀日期
     */
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate birthdayCareDate;

    /**
     * 生日关怀农历日期
     */
    private String chineseCalendar;

    /**
     * 是否是农历日期，0: 否 1：是
     */
    private Integer isLunarCalendar;


    /**
     * 关联人
     */
    private String affiliatedPerson;

    /**
     * 关联说明
     */
    private String associationExplanation;

    /**
     * 在院状态 0：外出 1：在院
     */
    private Integer inHospitalStatus;




    //=========================扩展字段=====================

    /**
     * 老人码（临时字段）
     */
    
    private String patientCode;
    /**
     * 老人生日（临时字段）
     */
    
    private String birthdayStr;

    /**
     * 居住情况
     */
//    private String liveSituation;

    /**
     * 扩展字段 不是数据库字段
     */
//    private InstitutionCustomerInfoEntity institutionCustomerInfo;

    
    private List<RelativesDO> relativesList;

    /**
     * 信息完整度百分比
     */
    
    private Integer infoPercentage;
    /**
     * 填写数量
     */
    
    private Integer infoFieldCount;
    /**
     * 字段总数量
      */
    
    private Integer totalInfoFieldCount;

//    
//    private Map<String, Object> dataMap;
//    
//    private String humidity = "0"; //湿度
//    
//    private String temperature = "0"; //温度

    //    
//    private SleepReport2 sleepReport;
//    
//    private ElderlyInfoExtend extend;
//    
//    private List<Relatives> relatives = new ArrayList<>();
//    
//    private Integer totalCount;   //总设备数
//    
//    private Integer onlineCount;  //在线设备数

    /**
     * 高压mmHg
     */
    
    private Integer mmHg1 = 0;
    /**
     * 低压mmHg
     */
    
    private Integer mmHg2 = 0;

    /**
     * 血糖
     */
    
    private Double bloodGlucose = 0d;

    /**
     * 心率
     */
    
    private Integer heartRate = 0;

    /**
     * 步数
     */
    
    private Integer realityStep = 0;

    /**
     * 是否在家，0：离家，1:：在家
     */
    
    private Integer residentialStatus = 1;

    /**
     * 报警开关，0：未设置，1:：已设置
     */
    
    private Integer alarmSwitch = 1;

    
    private String familiarIllness;
    
    private String nnd;

    
    private Integer saleStatus;
    
    private String deviceMac;

    /**
     * 入住天数
     */
    
    private Integer stayDay = 0;

    /**
     * 入住次数
     */
    
    private Integer stayNumber = 1;


    
    private Integer bpmStatus;

    private String startTaskId;
    
    private String processInstanceId;
//    
//    private ElderlyInfoExtend elderlyInfoExtend;
}
