后端: - 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防止重复创建
4.2 KiB
4.2 KiB
病理管理模块 — 深度设计文档
版本: v1.0 | 编制日期: 2026-06-07 依据: 《病理科建设与管理指南》+ 《临床病理质量控制标准》
一、业务背景
病理诊断是手术后诊断的"金标准",三甲医院必须具备:
- 病理标本全流程追溯(从手术室到病理科)
- 三级审核制度(住院医师→主治→副主任)
- 病理报告质量控制
- 肿瘤登记上报
二、业务流程
[手术/活检/穿刺] → 病理申请单
↓
[标本采集] ←→ [条码打印] ←→ [标本固定(10%福尔马林)]
↓ (运送至病理科)
[标本接收] ←→ [标本核对(条码扫码)]
↓ (不合格退回)
[取材描述] ←→ [组织处理(脱水/包埋)]
↓
[切片制作] ←→ [染色(HE/免疫组化/特殊染色)]
↓
[初诊阅片] ←→ [上级医师审核]
↓ (疑难病例会诊)
[病理会诊] ←→ [最终诊断]
↓
[报告编写] ←→ [三级审核]
↓
[报告签发] ←→ [临床科室领取]
↓
[肿瘤登记] ←→ [随访]
三、数据模型
-- 病理申请
CREATE TABLE pathology_order (
id BIGSERIAL PRIMARY KEY,
patient_id BIGINT NOT NULL,
patient_name VARCHAR(50),
encounter_id BIGINT,
specimen_type VARCHAR(50), -- 手术标本/活检/穿刺/细胞学
clinical_diagnosis TEXT,
sample_site VARCHAR(100),
urgency VARCHAR(20) DEFAULT 'NORMAL', -- URGENT/NORMAL
order_status VARCHAR(20) DEFAULT 'PENDING',
apply_doctor VARCHAR(64),
apply_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
tenant_id BIGINT DEFAULT 0,
is_deleted INT NOT NULL DEFAULT 0,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 病理标本
CREATE TABLE pathology_specimen (
id BIGSERIAL PRIMARY KEY,
order_id BIGINT NOT NULL,
barcode VARCHAR(100) NOT NULL,
specimen_desc TEXT,
collection_site VARCHAR(100),
fixative VARCHAR(50),
fixative_time TIMESTAMP,
receive_time TIMESTAMP,
receiver VARCHAR(64),
is_qualified BOOLEAN DEFAULT TRUE,
reject_reason TEXT,
tenant_id BIGINT DEFAULT 0,
is_deleted INT NOT NULL DEFAULT 0,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 病理处理
CREATE TABLE pathology_process (
id BIGSERIAL PRIMARY KEY,
specimen_id BIGINT NOT NULL,
process_type VARCHAR(30), -- 取材/脱水/包埋/切片/染色/免疫组化
process_desc TEXT,
operator VARCHAR(64),
operate_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
tenant_id BIGINT DEFAULT 0,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 病理诊断
CREATE TABLE pathology_diagnosis (
id BIGSERIAL PRIMARY KEY,
order_id BIGINT NOT NULL,
specimen_id BIGINT,
diagnosis_type VARCHAR(30), -- 初诊/复诊/会诊/最终
diagnosis_result TEXT,
immunostain_result TEXT,
doctor_name VARCHAR(64),
doctor_title VARCHAR(20),
diagnose_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
tenant_id BIGINT DEFAULT 0,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 病理报告
CREATE TABLE pathology_report (
id BIGSERIAL PRIMARY KEY,
order_id BIGINT NOT NULL,
patient_id BIGINT,
specimen_desc TEXT,
macroscopic_desc TEXT, -- 肉眼所见
microscopic_desc TEXT, -- 镜下所见
diagnosis_result TEXT, -- 病理诊断
suggestion TEXT,
report_doctor VARCHAR(64),
report_time TIMESTAMP,
audit_doctor VARCHAR(64),
audit_time TIMESTAMP,
final_doctor VARCHAR(64),
final_time TIMESTAMP,
status VARCHAR(20) DEFAULT 'DRAFT',
tenant_id BIGINT DEFAULT 0,
is_deleted INT NOT NULL DEFAULT 0,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
四、接口设计
| API | 方法 | 说明 |
|---|---|---|
| /pathology/order/page | GET | 病理申请列表 |
| /pathology/order/add | POST | 新建病理申请 |
| /pathology/specimen/scan | POST | 标本扫码接收 |
| /pathology/specimen/reject/{id} | PUT | 标本拒收 |
| /pathology/process/record | POST | 记录处理过程 |
| /pathology/diagnosis/add | POST | 录入诊断 |
| /pathology/report/page | GET | 病理报告列表 |
| /pathology/report/add | POST | 新建报告 |
| /pathology/report/audit/{id} | PUT | 审核报告 |
| /pathology/stats | GET | 病理统计(标本数/诊断分布/周转时间) |