package com.xinelu.manage.dto.patientvisitrecord;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xinelu.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @description: 患者配置——就诊信息保存传输对象
 * @author: haown
 * @create: 2024-03-13 14:46
 **/
@ApiModel("患者配置——就诊信息保存传输对象")
@Data
public class PatientVisitRecordInfoSaveDto {

	/** 就诊信息表id */
	@ApiModelProperty(value = "就诊信息表id")
	private Long id;

	/** 患者表id */
	@ApiModelProperty(value = "患者表id")
	@NotNull(message = "患者数据不能为空")
	private Long patientId;

	@ApiModelProperty(value = "预住院患者表id")
	private Long patientPreHospitalizationId;

	/**
	 * 就诊类型，门诊：OUTPATIENT_SERVICE，住院：BE_IN_HOSPITAL
	 */
	@ApiModelProperty(value = "就诊类型，门诊：OUTPATIENT_SERVICE，住院：BE_IN_HOSPITAL")
	@NotNull(message = "就诊类型不能为空")
	private String visitMethod;

	/** 主要诊断 */
	@ApiModelProperty(value = "主要诊断")
	@NotNull(message = "主要诊断不能为空")
	private String mainDiagnosis;

	/** 就诊流水号 */
	@ApiModelProperty(value = "就诊流水号")
	@NotNull(message = "就诊流水号不能为空")
	private String visitSerialNumber;

	/** 主治医生id */
	@ApiModelProperty(value = "主治医生id")
	@NotNull(message = "主治医生不能为空")
	private Long attendingPhysicianId;

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

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

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

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

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

	/** 所属科室id */
	@NotNull(message = "科室不能为空")
	@ApiModelProperty(value = "所属科室id")
	private Long departmentId;

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

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

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

	/** 入院时间 */
	@ApiModelProperty(value = "入院时间")
	@NotNull(message = "入院时间不能为空")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
	private LocalDateTime admissionTime;

	/** 出院时间 */
	@ApiModelProperty(value = "出院时间")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
	private LocalDateTime dischargeTime;

	@ApiModelProperty(value = "住院/门诊号")
	@NotNull(message = "住院/门诊号不能为空")
	private String inHospitalNumber;

	/** 入院病历信息，存储患者入院的整个病历信息 */
	@ApiModelProperty(value = "入院病历信息，存储患者入院的整个病历信息")
	@NotNull(message = "入院病历不能为空")
	private String inHospitalInfo;

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

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

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

}
