package cn.lihu.jh.module.ecg.controller.admin.appointment.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; // 注意:原为 java.sql.Date(只表示日期),会让 registerDate/doctorTime 丢失时分秒。 // 2026-09-30 与 AppointmentSaveReqVO/AppointmentDO 统一为 java.util.Date。 import java.util.Date; import java.time.LocalDate; import java.util.*; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; import com.alibaba.excel.annotation.*; import cn.lihu.jh.framework.excel.core.annotations.DictFormat; import cn.lihu.jh.framework.excel.core.convert.DictConvert; @Schema(description = "管理后台 - 预约 Response VO") @Data @ExcelIgnoreUnannotated public class AppointmentRespVO { private Long id; @Schema(description = "预约申请号", example = "2024435") @ExcelProperty("预约申请号") private String applyNo; @Schema(description = "就诊流水号", example = "2024546") @ExcelProperty("就诊流水号") private String episodeId; @Schema(description = "患者来源", example = "2024546") @ExcelProperty("患者来源") private Integer patSrc; @Schema(description = "患者编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "29034") @ExcelProperty("患者编号") private String patId; @Schema(description = "患者姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") @ExcelProperty("患者姓名") private String patName; @Schema(description = "患者性别", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty(value = "患者性别", converter = DictConvert.class) @DictFormat("system_user_sex") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 private Byte patGender; @Schema(description = "患者生日") @ExcelProperty("患者生日") private LocalDateTime patBirthday; @Schema(description = "患者手机") @ExcelProperty("患者手机") private String patMobile; @Schema(description = "患者电话") @ExcelProperty("患者电话") private String patPhone; @Schema(description = "身份证号", example = "798") @ExcelProperty("身份证号") private String patIdentityId; @Schema(description = "患者地址") @ExcelProperty("患者地址") private String patAddr; @Schema(description = "患者所在科室代码") @ExcelProperty("患者所在科室代码") private String patDeptCode; @Schema(description = "患者所在科室名称") @ExcelProperty("患者所在科室名称") private String patDeptDesc; @Schema(description = "患者所在病区代码") @ExcelProperty("患者所在病区代码") private String patWardCode; @Schema(description = "患者所在病区名称") @ExcelProperty("患者所在病区名称") private String patWardDesc; @Schema(description = "床号") @ExcelProperty("床号") private String patBedNo; @Schema(description = "预约日期", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("预约日期") private LocalDate bookDate; @Schema(description = "预约时间段", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("预约时间段") private Integer bookTimeslot; @Schema(description = "预约发生时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("预约发生时间") private LocalDateTime bookTime; @Schema(description = "预约检查类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @DictFormat("ecg_check_type") @ExcelProperty(value = "预约检查类型", converter = DictConvert.class) private Integer bookCheckType; @Schema(description = "内部预约编号", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("内部预约编号") private Integer bookSeqNum; @Schema(description = "预约来源:X系统、护士手动预约", requiredMode = Schema.RequiredMode.REQUIRED) // @ExcelProperty("预约来源:X系统、护士手动预约") private Integer bookSrc; @Schema(description = "已付款 0-未交费 1-已缴费") @DictFormat("ecg_pay_type") @ExcelProperty(value = "付款状态", converter = DictConvert.class) private Integer paid; // @TableField(exist = false) @Schema(description = "状态") @DictFormat("ecg_status_type") @ExcelProperty(value = "状态", converter = DictConvert.class) private String status; /** * 登记时间 */ @Schema(description = "登记时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("登记时间") private Date registerDate; /** * 耐药性: 是否多耐1代表是,0代表不是 */ private String tolerance; @Schema(description = "是否床边 0=否 1=是", example = "0") @ExcelProperty("是否床边") private String isBedside; /** * 住院号 */ private String hospitalNo; /** * 医保卡号 */ private String medicalCard; /** * 门诊号 */ private String outpatientNo; private LocalDateTime createTime; /** * 开单医生 */ private String doctor; /** * 开单医生编码 */ private String doctorCode; /** * 开单时间 */ @ExcelProperty("开单时间") private Date doctorTime; // ==================== HIS 接入补充字段(2026-09-27 随表新增列一起加入) ==================== // 注:bookSeqNum 已在上方声明,此处不重复定义 /** * 优先级 / 加急标记:N=常规,J=加急 */ @ExcelProperty("加急标记") private String jjbz; /** * 检查方式编码 */ private String methodCode; /** * 检查部位编码 */ private String targetSiteCode; /** * 医嘱号(HIS 报文 component2.observationRequest.id.item[root=2.16.156.10011.1.28].extension)。 * 与「申请单号 applyNo」不同:前者是医嘱标识,后者是申请单标识。 */ private String doctorAdviceNo; /** * 检查房间名称 */ private String roomName; /** * 注意事项 */ private String remark; }