Files
his/MD/architecture/PHASE_A_PATHOLOGY_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

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 病理统计(标本数/诊断分布/周转时间)