From 35bd10d1b420e4ae9171188ba8c8784405c467c2 Mon Sep 17 00:00:00 2001 From: chenqi Date: Mon, 22 Jun 2026 09:47:49 +0800 Subject: [PATCH] =?UTF-8?q?fix(db):=20V88=E8=BF=81=E7=A7=BB=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E6=B7=BB=E5=8A=A0DO=E5=9D=97=E5=A4=84=E7=90=86?= =?UTF-8?q?=E4=B8=8D=E5=AD=98=E5=9C=A8=E7=9A=84=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/migration/V88__cdss_rule_upgrade.sql | 37 ++++++++----------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V88__cdss_rule_upgrade.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V88__cdss_rule_upgrade.sql index 025a8b96d..17e407798 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V88__cdss_rule_upgrade.sql +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V88__cdss_rule_upgrade.sql @@ -1,12 +1,15 @@ --- V86: CDSS规则引擎升级 - 添加优先级/分类字段 + 规则执行历史 +-- V88: CDSS规则引擎升级 - 添加优先级/分类字段 + 规则执行历史 -ALTER TABLE cdss_rule ADD COLUMN IF NOT EXISTS priority INT NOT NULL DEFAULT 0; -ALTER TABLE cdss_rule ADD COLUMN IF NOT EXISTS category VARCHAR(64); +-- 为cdss_rule表添加字段(仅当表存在时) +DO $$ BEGIN + ALTER TABLE cdss_rule ADD COLUMN IF NOT EXISTS priority INT NOT NULL DEFAULT 0; + ALTER TABLE cdss_rule ADD COLUMN IF NOT EXISTS category VARCHAR(64); +EXCEPTION WHEN undefined_table THEN + RAISE NOTICE 'cdss_rule table does not exist, skipping alter'; +END $$; -COMMENT ON COLUMN cdss_rule.priority IS '规则优先级(0普通 1紧急 2最高)'; -COMMENT ON COLUMN cdss_rule.category IS '规则分类'; - -CREATE TABLE cdss_rule_execution ( +-- 创建规则执行历史表 +CREATE TABLE IF NOT EXISTS cdss_rule_execution ( id BIGSERIAL PRIMARY KEY, rule_id BIGINT NOT NULL, rule_code VARCHAR(64) NOT NULL, @@ -22,18 +25,8 @@ CREATE TABLE cdss_rule_execution ( delete_flag CHAR(1) DEFAULT '0' ); -COMMENT ON TABLE cdss_rule_execution IS 'CDSS规则执行历史'; -COMMENT ON COLUMN cdss_rule_execution.id IS '执行记录ID'; -COMMENT ON COLUMN cdss_rule_execution.rule_id IS '规则ID'; -COMMENT ON COLUMN cdss_rule_execution.rule_code IS '规则编码'; -COMMENT ON COLUMN cdss_rule_execution.encounter_id IS '就诊ID'; -COMMENT ON COLUMN cdss_rule_execution.patient_id IS '患者ID'; -COMMENT ON COLUMN cdss_rule_execution.matched IS '是否命中'; -COMMENT ON COLUMN cdss_rule_execution.execution_time IS '执行时间'; -COMMENT ON COLUMN cdss_rule_execution.execution_result IS '执行结果'; -COMMENT ON COLUMN cdss_rule_execution.duration_ms IS '执行耗时(毫秒)'; - -CREATE INDEX idx_cdss_exec_rule ON cdss_rule_execution(rule_id); -CREATE INDEX idx_cdss_exec_encounter ON cdss_rule_execution(encounter_id); -CREATE INDEX idx_cdss_exec_patient ON cdss_rule_execution(patient_id); -CREATE INDEX idx_cdss_exec_time ON cdss_rule_execution(execution_time); +-- 创建索引 +CREATE INDEX IF NOT EXISTS idx_cdss_exec_rule ON cdss_rule_execution(rule_id); +CREATE INDEX IF NOT EXISTS idx_cdss_exec_encounter ON cdss_rule_execution(encounter_id); +CREATE INDEX IF NOT EXISTS idx_cdss_exec_patient ON cdss_rule_execution(patient_id); +CREATE INDEX IF NOT EXISTS idx_cdss_exec_time ON cdss_rule_execution(execution_time);