package cn.lihu.jh.module.ecg.dal.dataobject.queue;
|
|
import cn.lihu.jh.module.ecg.dal.dataobject.patient.PatDetails;
|
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
import lombok.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
import cn.lihu.jh.framework.mybatis.core.dataobject.BaseDO;
|
|
import java.time.LocalDate;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 排队 DO
|
*
|
* @author 芋道源码
|
*/
|
@TableName( value="queue", autoResultMap = true )
|
@KeySequence("queue_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
@Data
|
@EqualsAndHashCode(callSuper = true)
|
@ToString(callSuper = true)
|
@Builder
|
@NoArgsConstructor
|
@AllArgsConstructor
|
public class QueueDO extends BaseDO {
|
|
/**
|
* id
|
*/
|
@TableId
|
private Integer id;
|
/**
|
* 预约申请号
|
*/
|
private String applyNo;
|
/**
|
* 就诊流水号
|
*/
|
private String episodeId;
|
/**
|
* 内部预约编号
|
*/
|
private Long appointId;
|
/**
|
* 患者编号
|
*/
|
private String patId;
|
/**
|
* 患者姓名
|
*/
|
private String patName;
|
/**
|
* 患者性别
|
*/
|
private Byte patGender;
|
/**
|
* 患者详情
|
*/
|
@TableField(typeHandler = JacksonTypeHandler.class)
|
private PatDetails patDetails;
|
/**
|
* 预约日期
|
*/
|
private LocalDate bookDate;
|
/**
|
* 预约时间段
|
*/
|
private Integer bookTimeslot;
|
/**
|
* 预约检查类型
|
*/
|
private Integer bookCheckType;
|
/**
|
* 预约序号
|
*/
|
private Integer bookSeqNum;
|
/**
|
* 是否VIP
|
*/
|
private Integer isVip;
|
/**
|
* 排队序号
|
*/
|
private Integer seqNum;
|
/**
|
* 5:过号 10:排队中 15:已召回 20:候诊准备 30:就诊中 40:就诊完成
|
*/
|
private Integer status;
|
/**
|
* 过号标记
|
*/
|
private Byte passed;
|
/**
|
* 预约过期标记
|
*/
|
private Byte expired;
|
/**
|
* 插队标记
|
*/
|
private Byte jumpFlag;
|
/**
|
* 是否亲和项, 用于控制 亲和项的不叫号
|
*/
|
private Integer affinityItem;
|
/**
|
* 诊室编号
|
*/
|
private Long roomId;
|
/**
|
* 诊室名称
|
*/
|
private String roomName;
|
/**
|
* 诊疗床编号
|
*/
|
private String bedNo;
|
|
@TableField(exist = false)
|
private String tolerance;
|
|
/**
|
* 是否床边(0否 1是)—— 需求2。
|
* <p>
|
* queue 表已有该列(见 _prep/22_add_seq_rule_and_bedside.sql),
|
* 预约确认时由 appointment.is_bedside 带入;对已存在的队列行,
|
* 也可由 {@code fillAppointmentInfo} 回查补填。
|
*/
|
private String isBedside;
|
|
/**
|
* 以下字段来自预约单(appointment),queue 表中不存在,
|
* 由 QueueServiceImpl#fillAppointmentInfo 在查询后按 applyNo 回查填充。
|
*/
|
@TableField(exist = false)
|
private LocalDate patBirthday;
|
|
@TableField(exist = false)
|
private Date registerDate;
|
|
@TableField(exist = false)
|
private String doctor;
|
|
@TableField(exist = false)
|
private Date doctorTime;
|
|
// ==================== 需求1:患者信息 18 项所需的平铺字段 ====================
|
// 以下均来自 appointment,queue 表无对应列,由 fillAppointmentInfo 回填。
|
// 之所以"平铺"而不是让前端读 patDetails JSON:
|
// 1) patDetails 是确认预约时写入的快照,可能滞后于 appointment 的最新值;
|
// 2) 前端模板读 `row.patDetails?.xxx` 无法享受 TS 类型提示,易写错。
|
|
@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;
|
|
/** 就诊卡号(medical_card;库中多为空,前端自行回退到 outpatient_no) */
|
@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;
|
}
|