-- =============================================================================
|
-- 住院随访完成生成妇科/儿科专科档案
|
-- 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'
|
);
|