package cn.lihu.jh.module.ecg.dal.dataobject.devrent; import cn.lihu.jh.module.ecg.dal.dataobject.patient.PatDetails; import cn.lihu.jh.module.ecg.enums.DevRentStateEnum; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import lombok.*; import java.util.*; import java.time.LocalDate; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import cn.lihu.jh.framework.mybatis.core.dataobject.BaseDO; /** * 装机拆机 DO * * @author 芋道源码 */ @TableName(value="dev_rent", autoResultMap = true) @KeySequence("dev_rent_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @Builder @NoArgsConstructor @AllArgsConstructor public class DevRentDO extends BaseDO { /** * id */ @TableId private Long id; /** * 申请编号 */ private String applyNo; /** * 就诊流水号 */ private String episodeId; /** * 患者编号 */ private String patId; /** * 患者名称 */ private String patName; /** * 患者详情 */ @TableField(typeHandler = JacksonTypeHandler.class) private PatDetails patDetails; /** * 检查类型 */ private Integer checkType; /** * 设备编号 */ @TableField(updateStrategy = FieldStrategy.ALWAYS) private String devId; /** * 装机时间 */ private LocalDateTime rentTime; /** * 拆机时间 */ private LocalDateTime returnTime; /** * 数据录入时间 */ private LocalDateTime entryTime; /** * 干扰数 */ private Integer interference; /** * 基线粗 */ private String baseline; /** * 脱离 */ private String detachment; /** * 备注 */ private String remark; /** * @see DevRentStateEnum */ private Integer state; private Integer paid; // ==================== 需求1:患者信息 18 项所需的平铺字段 ==================== // 以下均来自预约单 appointment(dev_rent 表无对应列),由 DevRentServiceImpl // 查询后按 applyNo 回查回填。 // // 【重要】必须标记 @TableField(exist = false): // DevRentDO 会用于 updateById / insert,若不加该注解,MyBatis-Plus 会把这些 // 不存在的列拼进 SQL,导致 "Unknown column" 报错。 // // 之所以平铺而不让前端读 patDetails JSON: // patDetails 是确认预约时写入的快照,可能滞后于 appointment 的最新值; // 且前端读 patDetails?.xxx 无 TS 类型提示,容易写错。 @TableField(exist = false) private Byte patGender; @TableField(exist = false) private LocalDate patBirthday; @TableField(exist = false) private Date registerDate; @TableField(exist = false) private String doctor; @TableField(exist = false) private Date doctorTime; @TableField(exist = false) private Integer patSrc; @TableField(exist = false) private String patMobile; @TableField(exist = false) private String patPhone; @TableField(exist = false) private String patWardDesc; @TableField(exist = false) private String patBedNo; @TableField(exist = false) private String medicalCard; @TableField(exist = false) private String outpatientNo; @TableField(exist = false) private String patIdentityId; /** * 医嘱号(HIS 报文 observationRequest.id.item[root=2.16.156.10011.1.28].extension)。 * 与「申请单号 applyNo」不同:前者是医嘱标识,后者是申请单标识。该节点在规范中非必须项,库中可为空。 */ private String doctorAdviceNo; /** 多耐药:0 无 / 1 多耐 / 2 多重耐药 */ @TableField(exist = false) private String tolerance; /** * 是否床边(0否 1是)—— 需求2,来源 HIS zdy.ISCB */ private String isBedside; }