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

129 lines
3.8 KiB
Markdown

# 急诊分诊+抢救模块 — 深度设计文档
> **版本**: v1.0 | **编制日期**: 2026-06-07
> **依据**: 《急诊科建设与管理指南》+ 《急诊预检分诊专家共识》
---
## 一、业务背景
急诊是三甲医院的关键科室,必须实现:
- 四级预检分诊(Ⅰ级濒死/Ⅱ级危重/Ⅲ级急症/Ⅳ级非急)
- 绿色通道(胸痛/卒中/创伤)
- 抢救记录电子化
- 急诊绿色通道时间监控(门-药/门-球囊/门-手术)
## 二、业务流程
```
患者到达急诊
[预检分诊台]
├─ 采集生命体征(体温/脉搏/呼吸/血压/血氧/意识)
├─ 评估病情分级
└─ 分配就诊区域
┌─ Ⅰ级(濒死) → 立即抢救 → 绿色通道
├─ Ⅱ级(危重) → 10分钟内就诊
├─ Ⅲ级(急症) → 30分钟内就诊
└─ Ⅳ级(非急) → 引导至门诊
[急诊医生接诊] ←→ [急诊医嘱]
[检查/检验] ←→ [抢救/留观/住院/出院]
[急诊病历] ←→ [急诊统计]
```
## 三、数据模型
```sql
-- 急诊分诊
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 | 急诊统计(分级分布/抢救率/等候时间) |