package cn.lihu.jh.module.ecg.controller.admin.queue.vo; import cn.lihu.jh.module.ecg.dal.dataobject.patient.PatDetails; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Date; import java.util.Map; import com.alibaba.excel.annotation.*; @Schema(description = "管理后台 - 排队 Response VO") @Data @ExcelIgnoreUnannotated public class QueueRespVO { @Schema(description = "id", example = "21320") @ExcelProperty("id") private Integer id; @Schema(description = "预约申请号", example = "2024435") @ExcelProperty("预约申请号") private String applyNo; @Schema(description = "就诊流水号", example = "2024435") @ExcelProperty("就诊流水号") private String episodeId; @Schema(description = "患者编号", example = "30473") @ExcelProperty("患者编号") private String patId; @Schema(description = "患者姓名", example = "芋艿") @ExcelProperty("患者姓名") private String patName; @Schema(description = "患者性别") @ExcelProperty("患者性别") private Byte patGender; @Schema(description = "患者详情") @ExcelProperty("患者详情") private PatDetails patDetails; @Schema(description = "预约日期") @ExcelProperty("预约日期") private LocalDate bookDate; @Schema(description = "预约时间段", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("预约时间段") private Integer bookTimeslot; @Schema(description = "预约检查类型", example = "1") @ExcelProperty("预约检查类型") private Integer bookCheckType; @Schema(description = "预约序号") @ExcelProperty("预约序号") private Integer bookSeqNum; @Schema(description = "排队序号", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("排队序号") private Integer seqNum; @Schema(description = "VIP") @ExcelProperty("VIP") private Integer isVip; @Schema(description = "5:过号 10:排队中 15:已召回 20:候诊准备 30:就诊中 40:就诊完成 ", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @ExcelProperty("5:过号 10:排队中 15:已召回 20:候诊准备 30:就诊中 40:就诊完成 ") private Integer status; @Schema(description = "过号标记", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("过号标记") private Byte passed; @Schema(description = "预约过期标记", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("预约过期标记") private Byte expired; @Schema(description = "插队标记", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("插队标记") private Byte jumpFlag; @Schema(description = "诊室编号") @ExcelProperty("诊室编号") private Long roomId; @Schema(description = "诊室名称") @ExcelProperty("诊室名称") private String roomName; @Schema(description = "诊疗床编号") @ExcelProperty("诊疗床编号") private String bedNo; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") private LocalDateTime createTime; @TableField(exist = false) private String tolerance; @Schema(description = "是否床边 0=否 1=是", example = "0") private String isBedside; /** * 以下字段来自预约单(appointment),由 QueueServiceImpl#fillAppointmentInfo 填充 */ @Schema(description = "患者生日") private LocalDate patBirthday; @Schema(description = "登记时间") private Date registerDate; @Schema(description = "开单医师") private String doctor; @Schema(description = "开单日期(开单时间)") private Date doctorTime; // ==================== 需求1:患者信息 18 项所需的平铺字段 ==================== // 均来自预约单 appointment(queue 表无此列),由 QueueServiceImpl#fillAppointmentInfo 回填。 @Schema(description = "患者来源:1门诊 2急诊 3住院 4体检") private Integer patSrc; @Schema(description = "患者手机号") private String patMobile; @Schema(description = "患者电话") private String patPhone; @Schema(description = "病区名称") private String patWardDesc; @Schema(description = "病床号(注意:不是本类的 bedNo,后者是诊疗床/工位号)") private String patBedNo; @Schema(description = "就诊卡号(medical_card,库中多为空)") private String medicalCard; @Schema(description = "门诊号(实测部分数据存的是身份证号,非真正卡号)") private String outpatientNo; @Schema(description = "身份证号") private String patIdentityId; /** * 医嘱号(HIS 报文 observationRequest.id.item[root=2.16.156.10011.1.28].extension)。 * 与「申请单号 applyNo」不同:前者是医嘱标识,后者是申请单标识。该节点在规范中非必须项,库中可为空。 */ private String doctorAdviceNo; }