liusheng
5 天以前 fb89df539c6293a41933e445df25fa9b8047ba18
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
-- ============================================================================
-- 省立同德门急诊采集失败记录表
--
-- 背景:HIS 门急诊数据只能按天查,采集任务每半小时把当天全量(一万多条)拉一遍。
--       单条记录如果转换失败/档案处理失败/入库失败,原来会整页失败并卡住采集进度。
--       现在改为写入本表交给人工处理,采集进度不受影响。
--
-- 同一条记录同一类错误只保留一行:唯一索引 uk_serialnum_type(serialnum, error_type),
-- 重复失败累加 fail_count(可以看出它连续失败了多少轮),异常信息和原始 JSON 会被最新一次覆盖。
-- 人工把 handle_status 改成 1(已处理)后如果该记录再次失败,会自动回到 0(待处理);
-- 改成 2(已忽略)的不会再被打扰。
--
-- 人工处理常用 SQL:
--   查看待处理:select * from pat_med_outhosp_error where handle_status = '0' order by fail_count desc, id;
--   看原始数据:select serialnum, error_type, error_msg, raw_data from pat_med_outhosp_error where handle_status = '0';
--   标记已处理:update pat_med_outhosp_error set handle_status = '1', handle_remark = '原因+处理人' where id = ?;
-- ============================================================================
 
CREATE TABLE IF NOT EXISTS pat_med_outhosp_error
(
    id            BIGINT       NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    serialnum     VARCHAR(64)           DEFAULT NULL COMMENT '诊疗记录号(healthcareRecordNo)',
    outhospno     VARCHAR(64)           DEFAULT NULL COMMENT '门诊号',
    patname       VARCHAR(100)          DEFAULT NULL COMMENT '患者姓名',
    patno         VARCHAR(64)           DEFAULT NULL COMMENT '病历号',
    campusid      VARCHAR(32)           DEFAULT NULL COMMENT '院区ID',
    orgid         VARCHAR(32)           DEFAULT NULL COMMENT '机构ID',
    admitdate     DATETIME              DEFAULT NULL COMMENT '就诊时间',
    gather_date   VARCHAR(20)           DEFAULT NULL COMMENT '采集日期 yyyy-MM-dd',
    error_type    VARCHAR(20)  NOT NULL COMMENT '错误类型:CONVERT-数据转换失败 ARCHIVE-患者档案处理失败 INSERT-入库失败',
    error_msg     VARCHAR(1000)         DEFAULT NULL COMMENT '异常信息',
    raw_data      TEXT COMMENT '接口返回的原始记录JSON,人工修复后可据此重推',
    fail_count    INT          NOT NULL DEFAULT 1 COMMENT '累计失败次数',
    handle_status CHAR(1)      NOT NULL DEFAULT '0' COMMENT '处理状态:0待处理 1已处理 2已忽略',
    handle_remark VARCHAR(500)          DEFAULT NULL COMMENT '处理备注',
    create_time   DATETIME              DEFAULT NULL COMMENT '创建时间',
    update_time   DATETIME              DEFAULT NULL COMMENT '更新时间',
    PRIMARY KEY (id),
    UNIQUE KEY uk_serialnum_type (serialnum, error_type),
    KEY idx_handle_status (handle_status),
    KEY idx_error_type (error_type),
    KEY idx_create_time (create_time)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4 COMMENT ='省立同德门急诊采集失败记录(人工处理)';