Files
his/MD/architecture/PHASE_A_EMERGENCY_DESIGN.md
华佗 8b34873430 feat(V32): Phase A — 随访/病理/急诊 完整实现
后端:
- FollowupController: 随访计划/任务/记录/满意度调查/投诉记录(完整CRUD+业务联动)
- PathologyController: 病理医嘱/标本管理/三级审核报告(完整CRUD+业务联动)
- EmergencyController: 急诊分诊(五级)/抢救/留观/绿色通道(完整CRUD+统计)

前端:
- followup/plan: 随访计划管理(进度条+筛选+联动)
- followup/task: 随访任务(今日任务+执行+异常标记)
- followup/record: 随访记录(用药依从+复查+转诊)
- followup/survey: 满意度调查(星级评分+统计面板)
- followup/complaint: 投诉管理(登记→处理→关闭闭环)
- pathology/order: 病理医嘱(加急标记+状态流转)
- pathology/specimen: 标本管理(扫码接收+质检)
- pathology/report: 病理报告(初诊→提交→审核→终审签发)
- emergency/triage: 急诊分诊(五级分诊+实时看板+行列高亮)
- emergency/rescue: 抢救管理(开始→过程记录→结果)
- emergency/observation: 留观管理(时长计算+转归处置)
- emergency/greentrack: 绿色通道(Door-to-Tx追踪+达标统计)

修复:
- V24-V32 Flyway迁移: is_deleted→delete_flag对齐HisBaseEntity
- V24: drug_interaction_rule表兼容V2已有结构(ADD COLUMN IF NOT EXISTS)
- V28: CURRENT CURRENT_TIMESTAMP→CURRENT_TIMESTAMP修复
- 所有INDEX添加IF NOT EXISTS防止重复创建
2026-06-07 10:24:54 +08:00

3.8 KiB

急诊分诊+抢救模块 — 深度设计文档

版本: v1.0 | 编制日期: 2026-06-07 依据: 《急诊科建设与管理指南》+ 《急诊预检分诊专家共识》


一、业务背景

急诊是三甲医院的关键科室,必须实现:

  • 四级预检分诊(Ⅰ级濒死/Ⅱ级危重/Ⅲ级急症/Ⅳ级非急)
  • 绿色通道(胸痛/卒中/创伤)
  • 抢救记录电子化
  • 急诊绿色通道时间监控(门-药/门-球囊/门-手术)

二、业务流程

患者到达急诊
  ↓
[预检分诊台]
  ├─ 采集生命体征(体温/脉搏/呼吸/血压/血氧/意识)
  ├─ 评估病情分级
  └─ 分配就诊区域
  ↓
┌─ Ⅰ级(濒死) → 立即抢救 → 绿色通道
├─ Ⅱ级(危重) → 10分钟内就诊
├─ Ⅲ级(急症) → 30分钟内就诊
└─ Ⅳ级(非急) → 引导至门诊
  ↓
[急诊医生接诊] ←→ [急诊医嘱]
  ↓
[检查/检验] ←→ [抢救/留观/住院/出院]
  ↓
[急诊病历] ←→ [急诊统计]

三、数据模型

-- 急诊分诊
CREATE TABLE emergency_triage (
    id BIGSERIAL PRIMARY KEY,
    patient_id BIGINT,
    patient_name VARCHAR(50),
    triage_level INT NOT NULL, -- 1-4级
    chief_complaint TEXT,
    temperature DECIMAL(4,1),
    pulse INT,
    respiration INT,
    systolic_bp INT,
    diastolic_bp INT,
    spo2 INT,
    consciousness VARCHAR(20),
    triage_nurse VARCHAR(64),
    triage_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    area VARCHAR(20), -- RESUS/EMERGENCY/OBSERVATION/GREEN
    status VARCHAR(20) DEFAULT 'WAITING',
    tenant_id BIGINT DEFAULT 0,
    is_deleted INT NOT NULL DEFAULT 0,
    create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 抢救记录
CREATE TABLE emergency_rescue (
    id BIGSERIAL PRIMARY KEY,
    patient_id BIGINT NOT NULL,
    triage_id BIGINT,
    rescue_start TIMESTAMP,
    rescue_end TIMESTAMP,
    rescue_result VARCHAR(20),
    chief_doctor VARCHAR(64),
    rescue_team TEXT,
    procedures TEXT,
    medications TEXT,
    outcome VARCHAR(20), -- ADMITTED/DISCHARGED/TRANSFERRED/DECEASED
    tenant_id BIGINT DEFAULT 0,
    is_deleted INT NOT NULL DEFAULT 0,
    create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 留观记录
CREATE TABLE emergency_observation (
    id BIGSERIAL PRIMARY KEY,
    patient_id BIGINT NOT NULL,
    triage_id BIGINT,
    observation_start TIMESTAMP,
    observation_end TIMESTAMP,
    bed_no VARCHAR(20),
    doctor VARCHAR(64),
    diagnosis TEXT,
    disposition VARCHAR(20), -- ADMITTED/DISCHARGED/TRANSFERRED
    observation_hours INT,
    tenant_id BIGINT DEFAULT 0,
    is_deleted INT NOT NULL DEFAULT 0,
    create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 绿色通道
CREATE TABLE emergency_green_channel (
    id BIGSERIAL PRIMARY KEY,
    patient_id BIGINT NOT NULL,
    disease_type VARCHAR(30), -- CHEST_PAIN/STROKE/TRAUMA/POISONING
    door_to_treatment_time INT, -- 门到治疗时间(分钟)
    target_time INT, -- 目标时间
    is_achieved BOOLEAN,
    doctor VARCHAR(64),
    activate_time TIMESTAMP,
    complete_time TIMESTAMP,
    tenant_id BIGINT DEFAULT 0,
    is_deleted INT NOT NULL DEFAULT 0,
    create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

四、接口设计

API 方法 说明
/emergency/triage/add POST 预检分诊
/emergency/triage/queue GET 分诊队列(按级别排序)
/emergency/rescue/add POST 开始抢救
/emergency/rescue/complete/{id} PUT 抢救完成
/emergency/observation/add POST 留观登记
/emergency/observation/discharge/{id} PUT 留观出院
/emergency/green-channel/activate POST 启动绿色通道
/emergency/green-channel/stats GET 绿色通道统计(达标率)
/emergency/stats GET 急诊统计(分级分布/抢救率/等候时间)