陈昶聿
3 天以前 3d047130b059efd46f56be37465a751ab16ee8cb
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
-- =============================================================================
-- 住院随访完成生成妇科/儿科专科档案
-- 1. 档案主表/详情表增加来源字段
-- 2. 新增专科档案生成日志表(幂等 + 补偿 + 追溯)
-- 3. 增加患者档案查询索引
-- 日期:2026-11-11
-- =============================================================================
 
-- -----------------------------------------------------------------------------
-- 1. 档案主表来源字段
-- -----------------------------------------------------------------------------
ALTER TABLE pat_maternity_archive
    ADD COLUMN source_type CHAR(1) DEFAULT NULL COMMENT '来源类型:1门诊接诊 2住院随访 3手工新增',
    ADD COLUMN source_biz_id BIGINT DEFAULT NULL COMMENT '来源业务ID:门诊记录ID/住院记录ID',
    ADD COLUMN source_biz_no VARCHAR(64) DEFAULT NULL COMMENT '来源业务编号:门诊号/住院号',
    ADD COLUMN source_sub_id BIGINT DEFAULT NULL COMMENT '来源随访子任务ID:service_subtask.id';
 
ALTER TABLE pat_child_archive
    ADD COLUMN source_type CHAR(1) DEFAULT NULL COMMENT '来源类型:1门诊接诊 2住院随访 3手工新增',
    ADD COLUMN source_biz_id BIGINT DEFAULT NULL COMMENT '来源业务ID:门诊记录ID/住院记录ID',
    ADD COLUMN source_biz_no VARCHAR(64) DEFAULT NULL COMMENT '来源业务编号:门诊号/住院号',
    ADD COLUMN source_sub_id BIGINT DEFAULT NULL COMMENT '来源随访子任务ID:service_subtask.id';
 
-- -----------------------------------------------------------------------------
-- 2. 档案详情表补充来源业务ID/编号(source_type 原表已有)
-- -----------------------------------------------------------------------------
ALTER TABLE pat_maternity_archive_detail
    ADD COLUMN source_biz_id BIGINT DEFAULT NULL COMMENT '来源业务ID:门诊记录ID/住院记录ID',
    ADD COLUMN source_biz_no VARCHAR(64) DEFAULT NULL COMMENT '来源业务编号:门诊号/住院号',
    ADD COLUMN source_sub_id BIGINT DEFAULT NULL COMMENT '来源随访子任务ID:service_subtask.id';
 
ALTER TABLE pat_child_archive_detail
    ADD COLUMN source_biz_id BIGINT DEFAULT NULL COMMENT '来源业务ID:门诊记录ID/住院记录ID',
    ADD COLUMN source_biz_no VARCHAR(64) DEFAULT NULL COMMENT '来源业务编号:门诊号/住院号',
    ADD COLUMN source_sub_id BIGINT DEFAULT NULL COMMENT '来源随访子任务ID:service_subtask.id';
 
-- -----------------------------------------------------------------------------
-- 3. 生成日志表
-- -----------------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS pat_specific_archive_generate_log
(
    id            BIGINT        NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    source_type   CHAR(1)       NOT NULL DEFAULT '2' COMMENT '来源类型:1门诊接诊 2住院随访',
    source_biz_id BIGINT        DEFAULT NULL COMMENT '来源业务ID:门诊记录ID/住院记录ID',
    source_biz_no VARCHAR(64)   DEFAULT NULL COMMENT '来源业务编号:门诊号/住院号',
    source_sub_id BIGINT        DEFAULT NULL COMMENT '来源随访子任务ID:service_subtask.id',
    patid         BIGINT        DEFAULT NULL COMMENT '患者ID',
    orgid         VARCHAR(64)   DEFAULT NULL COMMENT '机构ID',
    campusid      VARCHAR(64)   DEFAULT NULL COMMENT '院区ID',
    dept_category CHAR(1)       DEFAULT NULL COMMENT '部门分类:1妇科 2儿科',
    archive_type  VARCHAR(32)   DEFAULT NULL COMMENT '档案类型',
    config_id     INT           NOT NULL DEFAULT 0 COMMENT '命中的配置ID;未命中配置时为0',
    archive_id    BIGINT        DEFAULT NULL COMMENT '生成或命中的档案主表ID',
    process_result CHAR(1)      NOT NULL COMMENT '处理结果:1生成 2已存在跳过 3未匹配 4失败',
    process_msg   VARCHAR(1000) DEFAULT NULL COMMENT '处理说明',
    retry_count   INT           NOT NULL DEFAULT 0 COMMENT '重试次数',
    create_time   DATETIME      DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    update_time   DATETIME      DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    PRIMARY KEY (id),
    UNIQUE KEY uk_pasgl_source_sub_config (source_type, source_sub_id, config_id),
    KEY idx_pasgl_biz_id (source_biz_id),
    KEY idx_pasgl_patid (patid, dept_category, archive_type),
    KEY idx_pasgl_archive (archive_id)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4 COMMENT ='专科档案生成日志表';
 
-- -----------------------------------------------------------------------------
-- 4. 患者已有档案查询索引
-- -----------------------------------------------------------------------------
ALTER TABLE pat_maternity_archive
    ADD INDEX idx_pma_patid_type (orgid, patid, archive_type, del_flag);
 
ALTER TABLE pat_child_archive
    ADD INDEX idx_pca_patid_type (orgid, patid, archive_type, del_flag);
 
-- -----------------------------------------------------------------------------
-- 5. 来源类型字典(如字典表已有同类型数据,可跳过)
-- -----------------------------------------------------------------------------
INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
SELECT '专科档案来源', 'pat_archive_source_type', '0', 'system', NOW(), '专科档案生成来源'
FROM DUAL
WHERE NOT EXISTS (
    SELECT 1 FROM sys_dict_type WHERE dict_type = 'pat_archive_source_type'
);
 
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark)
SELECT 1, '门诊接诊', '1', 'pat_archive_source_type', 'N', '0', 'system', NOW(), '门诊接诊完成生成'
FROM DUAL
WHERE NOT EXISTS (
    SELECT 1 FROM sys_dict_data WHERE dict_type = 'pat_archive_source_type' AND dict_value = '1'
);
 
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark)
SELECT 2, '住院随访', '2', 'pat_archive_source_type', 'N', '0', 'system', NOW(), '住院随访完成生成'
FROM DUAL
WHERE NOT EXISTS (
    SELECT 1 FROM sys_dict_data WHERE dict_type = 'pat_archive_source_type' AND dict_value = '2'
);
 
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, is_default, status, create_by, create_time, remark)
SELECT 3, '手工新增', '3', 'pat_archive_source_type', 'N', '0', 'system', NOW(), '手工新增/导入'
FROM DUAL
WHERE NOT EXISTS (
    SELECT 1 FROM sys_dict_data WHERE dict_type = 'pat_archive_source_type' AND dict_value = '3'
);