yxh
昨天 fce96ef468291fb9a0e6a4d34ab371315e9485d4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
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;
}