-- 智能分诊排队:候选池排除记录表 -- 用途:记录已从智能候选池中移除的患者(加入队列后不再出现在候选池) -- 注意:必须在后端实际连接的 schema 中执行(dev环境是 hisdev,test环境是 histest,prd环境是 hisprd) -- 执行前请先确认:SET search_path TO hisdev; (或对应的 schema) CREATE TABLE IF NOT EXISTS hisdev.triage_candidate_exclusion ( id BIGSERIAL PRIMARY KEY, tenant_id INTEGER NOT NULL, exclusion_date DATE NOT NULL, encounter_id BIGINT NOT NULL, patient_id BIGINT, patient_name VARCHAR(255), organization_id BIGINT, organization_name VARCHAR(255), reason VARCHAR(100) DEFAULT 'ADDED_TO_QUEUE', -- 排除原因:ADDED_TO_QUEUE(加入队列)、MANUAL_REMOVE(手动移除)等 create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, delete_flag CHAR(1) NOT NULL DEFAULT '0' ); -- 常用查询索引:按租户/日期/就诊记录查询 CREATE INDEX IF NOT EXISTS idx_triage_candidate_exclusion_list ON hisdev.triage_candidate_exclusion (tenant_id, exclusion_date, delete_flag, encounter_id); -- 防重复:同一天同租户同就诊记录只能有一条排除记录(未删除) CREATE UNIQUE INDEX IF NOT EXISTS uq_triage_candidate_exclusion_encounter ON hisdev.triage_candidate_exclusion (tenant_id, exclusion_date, encounter_id, delete_flag) WHERE delete_flag = '0'; -- 就诊记录ID索引(用于关联查询) CREATE INDEX IF NOT EXISTS idx_triage_candidate_exclusion_encounter_id ON hisdev.triage_candidate_exclusion (encounter_id); -- 注释 COMMENT ON TABLE hisdev.triage_candidate_exclusion IS '智能分诊排队候选池排除记录表'; COMMENT ON COLUMN hisdev.triage_candidate_exclusion.tenant_id IS '租户ID'; COMMENT ON COLUMN hisdev.triage_candidate_exclusion.exclusion_date IS '排除日期(通常为当天)'; COMMENT ON COLUMN hisdev.triage_candidate_exclusion.encounter_id IS '就诊记录ID(唯一标识)'; COMMENT ON COLUMN hisdev.triage_candidate_exclusion.patient_id IS '患者ID'; COMMENT ON COLUMN hisdev.triage_candidate_exclusion.patient_name IS '患者姓名'; COMMENT ON COLUMN hisdev.triage_candidate_exclusion.organization_id IS '科室ID'; COMMENT ON COLUMN hisdev.triage_candidate_exclusion.organization_name IS '科室名称'; COMMENT ON COLUMN hisdev.triage_candidate_exclusion.reason IS '排除原因:ADDED_TO_QUEUE(加入队列)、MANUAL_REMOVE(手动移除)等'; COMMENT ON COLUMN hisdev.triage_candidate_exclusion.delete_flag IS '删除标志:0-未删除,1-已删除';