package com.xinelu.manage.vo.signpatientrecord;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xinelu.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.Data;

/**
 * @description: 签约患者列表查询返回视图类
 * @author: haown
 * @create: 2024-02-28 17:10
 **/
@ApiModel("签约患者列表查询返回视图类")
@Data
public class SignPatientListVo {

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

	/**
	 * 患者信息表id
	 */
	@ApiModelProperty(value = "患者信息表id")
	private Long patientId;

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

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

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

	/** 性别 */
	@ApiModelProperty(value = "性别")
	private String sex;

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

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

	/**
	 * 签约时所属医院id
	 */
	@ApiModelProperty(value = "签约时所属医院id")
	private Long hospitalAgencyId;

	/**
	 * 签约时所属医院名称
	 */
	@ApiModelProperty(value = "签约时所属医院名称")
	private String hospitalAgencyName;

	/**
	 * 签约时所属院区id
	 */
	@ApiModelProperty(value = "签约时所属院区id")
	private Long campusAgencyId;

	/**
	 * 签约时所属院区名称
	 */
	@ApiModelProperty(value = "签约时所属院区名称")
	private String campusAgencyName;

	/**
	 * 签约时所属科室id
	 */
	@ApiModelProperty(value = "签约时所属科室id")
	private Long departmentId;

	/**
	 * 签约时所属科室名称
	 */
	@ApiModelProperty(value = "签约时所属科室名称")
	private String departmentName;

	/**
	 * 签约时所属病区id
	 */
	@ApiModelProperty(value = "签约时所属病区id")
	private Long wardId;

	/**
	 * 签约时所属病区名称
	 */
	@ApiModelProperty(value = "签约时所属病区名称")
	private String wardName;

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

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

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

	/**
	 * 签约时诊断
	 */
	@ApiModelProperty(value = "签约时诊断")
	private String signDiagnosis;

	/**
	 * 审核后诊断
	 */
	@ApiModelProperty(value = "审核后诊断")
	private String reviewDiagnosis;

	/**
	 * 服务状态，意向签约：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，过期：EXPIRE_SIGN
	 */
	@ApiModelProperty(value = "签约状态，在签：IN_SIGN，忽略：IGNORE_SIGN，解约：SEPARATE_SIGN，续约：CONTINUOUS_SIGN，过期：EXPIRE_SIGN")
	private String signStatus;

	/**
	 * 意向来源（意向签约，字典枚举）
	 */
	@ApiModelProperty(value = "意向来源（意向签约，字典枚举）")
	private String intentionalSource;

	/**
	 * 加入意向时间（意向签约）
	 */
	@ApiModelProperty(value = "加入意向时间（意向签约）")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime intentionalTime;

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

	/**
	 * 金额
	 */
	@ApiModelProperty(value = "金额")
	private BigDecimal price;

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

	/**
	 * 专病路径审核状态，同意：AGREE，不同意：DISAGREE
	 */
	@ApiModelProperty(value = "专病路径审核状态，同意：AGREE，不同意：DISAGREE")
	private String routeCheckStatus;

	/**
	 * 画像审核状态，同意：AGREE，不同意：DISAGREE
	 */
	@ApiModelProperty(value = "画像审核状态，同意：AGREE，不同意：DISAGREE")
	private String portaitCheckStatus;

	/** 服务包表id */
	@ApiModelProperty(value = "服务包表id")
	@Excel(name = "服务包表id")
	private Long servicePackageId;

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

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

	/** 服务周期 */
	@ApiModelProperty(value = "服务周期")
	private Integer packageTerm;

	@ApiModelProperty(value = "服务周期单位")
	private String packageTermUnit;

	@ApiModelProperty(value = "年龄")
	private Integer age;
}
