package com.xinelu.manage.dto.patientinfo;

import com.xinelu.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDate;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * @description: 患者列表查询传输对象
 * @author: haown
 * @create: 2024-02-27 16:20
 **/
@ApiModel("患者列表查询传输对象")
@Data
public class PatientInfoDto extends BaseEntity {

	@ApiModelProperty("居民信息表主键")
	private Long residentId;

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

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

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

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

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

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

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

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

	/** 患者类型，预住院患者：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;

	/** 主治医生 */
	@ApiModelProperty(value = "主治医生id")
	private Long attendingPhysicianId;

	/** 患者来源，微信小程序：WE_CHAT_APPLET，微信公众号：WE_CHAT_OFFICIAL_ACCOUNT，管理端：MANAGE_END */
	@ApiModelProperty(value = "患者来源，微信小程序：WE_CHAT_APPLET，微信公众号：WE_CHAT_OFFICIAL_ACCOUNT，管理端：MANAGE_END")
	private String patientSource;

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

	/** 就诊时间开始（门诊患者），时间格式：yyyy-MM-dd */
	@ApiModelProperty(value = "就诊时间开始")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private LocalDate visitDateStart;

	/** 就诊时间结束（门诊患者），时间格式：yyyy-MM-dd */
	@ApiModelProperty(value = "就诊时间结束")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private LocalDate visitDateEnd;

	/** 入院时间开始，时间格式：yyyy-MM-dd */
	@ApiModelProperty(value = "入院时间开始")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private LocalDate admissionTimeStart;

	/** 入院时间结束，时间格式：yyyy-MM-dd */
	@ApiModelProperty(value = "入院时间结束")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private LocalDate admissionTimeEnd;

	/** 出院时间开始，时间格式：yyyy-MM-dd */
	@ApiModelProperty(value = "出院时间开始")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private LocalDate dischargeTimeStart;

	/** 出院时间结束，时间格式：yyyy-MM-dd */
	@ApiModelProperty(value = "出院时间结束")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private LocalDate dischargeTimeEnd;

	/** 预约时间开始（预住院患者），时间格式：yyyy-MM-dd */
	@ApiModelProperty(value = "预约时间开始（预住院患者），时间格式：yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private LocalDate appointmentDateStart;

	/** 预约时间开始（预住院患者），时间格式：yyyy-MM-dd */
	@ApiModelProperty(value = "预约时间结束（预住院患者），时间格式：yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private LocalDate appointmentDateEnd;

	/** 预约治疗组（取值以及枚举未知？） */
	@ApiModelProperty(value = "预约治疗组（取值以及枚举未知？）")
	private String appointmentTreatmentGroup;

	/** 开证医生（预住院患者） */
	@ApiModelProperty(value = "开证医生")
	private String certificateIssuingDoctorId;

	/** 登记号（预住院患者） */
	@ApiModelProperty(value = "登记号（预住院患者）")
	private String registrationNo;

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

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

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

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

	@ApiModelProperty(value = "导入流水号")
	private String sn;

	@ApiModelProperty(value = "导入患者表id")
	private Integer patientInfoImportId;
}
