docs: 统一文档管理规范,合并docs/到MD/目录

- 创建MD/目录结构(architecture/development/standards/specs/bugs/guides/upgrade)
- 制定文档命名规范(大写英文+下划线)
- 制定文档格式规范(元数据块、结构模板)
- 合并27个文档到MD/目录,按类别分类
- 删除旧的docs/目录
- 更新AGENTS.md铁律#5: 文档统一管理

命名规范:
- 架构设计: ARCH_<模块>_<描述>.md
- 开发计划: PLAN_<类型>_<版本>.md
- 国家标准: STD_<标准名称>.md
- 技术规范: SPEC_<类型>_<描述>.md
- Bug修复: BUG_<编号>_<描述>.md
- 使用指南: GUIDE_<主题>.md
- 升级记录: UPGRADE_<组件>_<类型>.md
This commit is contained in:
2026-06-06 09:06:21 +08:00
parent 86c82286c6
commit d8427f788e
28 changed files with 224 additions and 0 deletions

View File

@@ -0,0 +1,935 @@
# HealthLink HIS 三甲医院达标详细设计方案
> **目标**: 完全符合三级甲等综合医院信息化评审标准
> **依据**: 国家卫健委三甲评审标准(2022)、电子病历评级≥4级、互联互通≥四级甲等
> **编制日期**: 2026-06-06
> **核心原则**:
> 1. 不修改原有函数签名扩展功能通过新建Service/AppService实现
> 2. 新建表和字段通过Flyway框架管理
> 3. 每个模块开发完成后必须通过完整测试
---
## 一、现状能力与差距分析
### 1.1 已有能力(✅ 可用,无需大改)
| 模块 | 状态 | 已有Controller/Service | 说明 |
|---|---|---|---|
| 门诊挂号 | ✅ 完整 | RegistrationController | 预约/当日/退号/多身份 |
| 门诊收费 | ✅ 完整 | ChargeController | 收费/退费/日结 |
| 门诊医生站 | ✅ 完整 | DoctorStationAdviceController | 处方/检验检查申请/病历 |
| 护士工作站 | ✅ 基础 | NursingRecordController | 医嘱执行/生命体征/护理记录 |
| 药品管理 | ✅ 完整 | pharmacymanage/* | 药库/药房/发药/退药 |
| 住院管理 | ✅ 完整 | PatientHomeController | 入院/床位/转科/出院/押金 |
| 检验检查 | ✅ 完整 | check/*, lab/* | LIS配置/检查类型/项目管理 |
| 统计报表 | ✅ 完整 | reportmanage/* | 20+报表接口 |
| DRG/DIP | ✅ 基础 | ybmanage/* | 基础框架已有 |
| 手术排程 | ✅ 基础 | SurgicalScheduleController | 手术申请/排程/查询 |
| 手术管理 | ✅ 基础 | SurgeryController | 手术信息CRUD |
### 1.2 关键差距(❌ 需开发)
| 差距模块 | 三甲要求 | 当前状态 | 优先级 | 预估工期 |
|---|---|---|---|---|
| **合理用药系统** | 处方100%审核 | 仅有基础处方点评框架 | 🔴 P0 | 5天 |
| **麻醉记录系统** | 互联互通必测项I-13 | 仅有手术排程,无麻醉记录 | 🔴 P0 | 5天 |
| **电子签名/CA** | 三甲硬性要求 | 仅有密码验证框架 | 🔴 P0 | 3天 |
| **院感管理** | 评审必查 | 完全缺失 | 🔴 P0 | 5天 |
| **病案首页管理** | 病案首页数据质量 | 仅有基础统计 | 🔴 P0 | 5天 |
| **护理评估体系** | 多种量表评估 | 仅基础护理记录 | 🟡 P1 | 5天 |
| **医嘱闭环管理** | 开立→审核→执行→完成 | 部分实现 | 🟡 P1 | 3天 |
| **危急值管理** | 检验危急值闭环 | 完全缺失 | 🟡 P1 | 3天 |
| **电子病历结构化** | 结构化+模板+留痕 | 基础模板已有 | 🟡 P1 | 5天 |
| **抗菌药物管控** | 分级管理/权限控制 | 完全缺失 | 🟡 P1 | 3天 |
| **处方点评系统** | 合理用药管控 | 仅基础框架 | 🟡 P1 | 3天 |
| **数据集成平台(ESB)** | 互联互通四级甲等 | 完全缺失 | 🟡 P1 | 5天 |
| **患者主索引(EMPI)** | 数据标准化基础 | 完全缺失 | 🟡 P1 | 3天 |
---
## 二、分阶段详细设计
### Phase 1: 核心安全模块3周
---
#### Sprint 7: 合理用药系统 (5天)
**业务背景**: 三甲医院要求门诊处方审核率≥100%住院医嘱审核率≥100%。系统必须在医生开方时实时拦截不合理处方。
**已有基础**: `PrescriptionReviewRecord`实体、`ReviewPrescriptionRecordsController`审方接口
**需要新增的功能**:
##### 7.1 处方前置审核引擎
**业务流程**:
```
医生开方 → 系统自动审核 → 合理 → 通过
→ 不合理 → 拦截弹窗 → 医生确认/修改
→ 需人工审核 → 药师审核 → 通过/驳回
```
**审核规则(按优先级)**:
1. **配伍禁忌检查**: 两药/三药相互作用(禁忌/严重/一般三级)
2. **过敏检测**: 患者过敏史自动匹配药品成分
3. **剂量审查**: 超剂量/低剂量预警(按年龄/体重/肝肾功能)
4. **重复用药**: 同类/同成分重复使用检查
5. **妊娠/哺乳用药**: 特殊人群用药警示
6. **儿童用药**: 按体重/体表面积计算剂量
7. **肝肾功能调量**: 根据化验结果自动建议调量
**新增Service**:
```java
// 合理用药审核引擎(新建,不修改原有代码)
public interface IRationalDrugReviewService {
// 处方前置审核
PrescriptionReviewResult reviewPrescription(PrescriptionReviewParam param);
// 药品相互作用检查
List<DrugInteraction> checkDrugInteraction(List<String> drugCodes);
// 过敏检查
List<AllergyAlert> checkAllergy(Long patientId, List<String> drugCodes);
// 剂量检查
List<DoseAlert> checkDose(DoseCheckParam param);
// 重复用药检查
List<DuplicateAlert> checkDuplicate(List<String> drugCodes);
}
```
**新增数据库表(Flyway)**:
```sql
-- V2026_007__rational_drug_review.sql
-- 药品相互作用规则表
CREATE TABLE sys_drug_interaction_rule (
id BIGSERIAL PRIMARY KEY,
drug_code_a VARCHAR(50) NOT NULL, -- 药品A编码
drug_code_b VARCHAR(50) NOT NULL, -- 药品B编码
drug_name_a VARCHAR(200),
drug_name_b VARCHAR(200),
interaction_level VARCHAR(20) NOT NULL, -- 禁忌/严重/一般
description TEXT, -- 描述
suggestion TEXT, -- 处理建议
severity INT DEFAULT 1, -- 严重程度 1-5
status CHAR(1) DEFAULT '0', -- 0正常 1停用
tenant_id INT,
create_by VARCHAR(64),
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_by VARCHAR(64),
update_time TIMESTAMP
);
-- 药品过敏规则表
CREATE TABLE sys_drug_allergy_rule (
id BIGSERIAL PRIMARY KEY,
drug_code VARCHAR(50) NOT NULL,
drug_name VARCHAR(200),
allergy_component VARCHAR(200), -- 过敏成分
cross_reaction_drugs TEXT, -- 交叉反应药品
description TEXT,
status CHAR(1) DEFAULT '0',
tenant_id INT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 剂量范围规则表
CREATE TABLE sys_drug_dose_rule (
id BIGSERIAL PRIMARY KEY,
drug_code VARCHAR(50) NOT NULL,
drug_name VARCHAR(200),
dose_type VARCHAR(20), -- 单次/日总量
min_dose DECIMAL(10,2),
max_dose DECIMAL(10,2),
unit VARCHAR(20),
age_min INT, -- 最小年龄
age_max INT, -- 最大年龄
weight_min DECIMAL(5,2), -- 最小体重
weight_max DECIMAL(5,2), -- 最大体重
renal_adjust CHAR(1) DEFAULT '0', -- 肾功能调整
hepatic_adjust CHAR(1) DEFAULT '0', -- 肝功能调整
status CHAR(1) DEFAULT '0',
tenant_id INT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 处方审核记录表(扩展已有表)
-- 在已有 prescription_review_record 表基础上增加字段
ALTER TABLE prescription_review_record ADD COLUMN IF NOT EXISTS review_rules JSONB;
ALTER TABLE prescription_review_record ADD COLUMN IF NOT EXISTS auto_review_result VARCHAR(20);
ALTER TABLE prescription_review_record ADD COLUMN IF NOT EXISTS review_time TIMESTAMP;
ALTER TABLE prescription_review_record ADD COLUMN IF NOT EXISTS drug_details JSONB;
```
**测试用例(20个)**:
1. 正常处方审核通过
2. 配伍禁忌药物拦截(禁忌级别)
3. 配伍禁忌药物预警(一般级别)
4. 过敏药物拦截
5. 超剂量预警
6. 低剂量预警
7. 重复用药拦截
8. 妊娠用药警示
9. 儿童用药按体重计算
10. 肾功能不全剂量调整
11. 肝功能不全剂量调整
12. 多药联用审查
13. 抗菌药物分级限制
14. 处方审核结果查询
15. 审核规则配置
16. 无权限访问拒绝
17. 空处方审核
18. 大处方预警
19. 审核统计查询
20. 处方点评导出
---
##### 7.2 抗菌药物分级管理
**业务背景**: 三甲医院要求抗菌药物使用率≤60%,必须实行分级管理。
**分级标准**:
- **非限制使用级**: 经临床长期应用证明安全、有效,对细菌耐药性影响较小的抗菌药物
- **限制使用级**: 与非限制使用级相比较,在疗效、安全性、耐药性、价格等方面存在局限性
- **特殊使用级**: 不良反应明显,不宜随意使用或临床需要倍加保护以免细菌过快产生耐药性的抗菌药物
**新增Service**:
```java
public interface IAntibioticManageService {
// 查询抗菌药物使用统计
AntibioticUsageStats getUsageStats(Long departmentId, Date startDate, Date endDate);
// 查询医生抗菌药物处方权限
AntibioticPermission checkPermission(Long doctorId, String antibioticLevel);
// 抗菌药物处方审批(特殊使用级需审批)
R<?> approveAntibiotic(AntibioticApprovalParam param);
// DDD监测
List<DDDMonitorDto> getDDDMonitoring(Date startDate, Date endDate);
}
```
**新增数据库表**:
```sql
-- V2026_007__antibiotic_management.sql
-- 抗菌药物目录表
CREATE TABLE sys_antibiotic_drug (
id BIGSERIAL PRIMARY KEY,
drug_code VARCHAR(50) NOT NULL,
drug_name VARCHAR(200),
generic_name VARCHAR(200),
antibiotic_level VARCHAR(20) NOT NULL, -- 非限制/限制/特殊
ddd_value DECIMAL(10,2), -- 限定日剂量
ddd_unit VARCHAR(20),
atc_code VARCHAR(50), -- ATC分类代码
status CHAR(1) DEFAULT '0',
tenant_id INT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 抗菌药物使用记录表
CREATE TABLE sys_antibiotic_usage (
id BIGSERIAL PRIMARY KEY,
encounter_id BIGINT NOT NULL,
patient_id BIGINT NOT NULL,
doctor_id BIGINT NOT NULL,
department_id BIGINT,
drug_code VARCHAR(50) NOT NULL,
drug_name VARCHAR(200),
antibiotic_level VARCHAR(20),
dosage DECIMAL(10,2),
dosage_unit VARCHAR(20),
frequency VARCHAR(50),
route VARCHAR(50),
start_time TIMESTAMP,
end_time TIMESTAMP,
usage_days INT,
ddd_value DECIMAL(10,2),
ddd_sum DECIMAL(10,4), -- DDD累计
approval_status VARCHAR(20), -- 待审批/已批准/已拒绝
approver_id BIGINT,
approval_time TIMESTAMP,
status CHAR(1) DEFAULT '0',
tenant_id INT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 抗菌药物医生权限表
CREATE TABLE sys_antibiotic_permission (
id BIGSERIAL PRIMARY KEY,
doctor_id BIGINT NOT NULL,
doctor_name VARCHAR(100),
department_id BIGINT,
allowed_levels JSONB, -- 允许使用的级别 ["非限制","限制","特殊"]
valid_from DATE,
valid_to DATE,
status CHAR(1) DEFAULT '0',
tenant_id INT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
---
#### Sprint 8: 手术麻醉系统 (5天)
**业务背景**: 互联互通测评必测项I-13三甲评审现场检查必查项。
**已有基础**:
- `OpSchedule`(手术排程实体)、`OperatingRoom`(手术室实体)
- `SurgicalScheduleController`(手术排程接口)
- `SurgeryController`(手术管理接口)
**需要新增的功能**:
##### 8.1 麻醉评估系统
**业务流程**:
```
术前评估 → ASA分级 → 气道评估 → 麻醉方案 → 知情同意 → 术中记录 → 苏醒评估
```
**新增Service**:
```java
public interface IAnesthesiaService {
// 术前麻醉评估
AnesthesiaAssessment createAssessment(AnessmentAssessmentParam param);
// ASA分级评估
ASAResult assessASA(ASAAssessmentParam param);
// 气道评估
AirwayAssessment assessAirway(AirwayAssessmentParam param);
// 麻醉方案制定
AnesthesiaPlan createPlan(AnesthesiaPlanParam param);
// 术中记录
IntraOpRecord recordIntraOp(IntraOpRecordParam param);
// 麻醉苏醒评估
RecoveryAssessment assessRecovery(RecoveryAssessmentParam param);
// 查询麻醉记录
AnesthesiaRecord getRecord(Long surgeryScheduleId);
}
```
**新增数据库表**:
```sql
-- V2026_008__anesthesia_system.sql
-- 麻醉评估表
CREATE TABLE sys_anesthesia_assessment (
id BIGSERIAL PRIMARY KEY,
surgery_schedule_id BIGINT NOT NULL, -- 关联手术排程
encounter_id BIGINT NOT NULL,
patient_id BIGINT NOT NULL,
assessment_date TIMESTAMP,
assessor_id BIGINT,
-- ASA分级
asa_level VARCHAR(10), -- ASA I-VI
asa_description TEXT,
-- 气道评估
airway_assessment JSONB, -- 气道评估详细数据
mallampati_grade VARCHAR(10), -- Mallampati分级 I-IV
mouth_opening DECIMAL(5,2), -- 张口度(cm)
neck_mobility VARCHAR(50), -- 颈部活动度
thyromental_distance DECIMAL(5,2), -- 甲颏距离(cm)
dental_prostheses CHAR(1), -- 假牙 0无 1有
-- 心肺评估
cardiac_function VARCHAR(50), -- 心功能分级
pulmonary_function VARCHAR(50), -- 肺功能
ekg_result TEXT, -- 心电图结果
-- 实验室检查
lab_results JSONB, -- 实验室检查结果
-- 综合评估
overall_risk VARCHAR(20), -- 低/中/高/极高
contraindications TEXT, -- 禁忌症
special_notes TEXT, -- 特殊注意事项
status VARCHAR(20), -- 草稿/已提交/已审核
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 麻醉方案表
CREATE TABLE sys_anesthesia_plan (
id BIGSERIAL PRIMARY KEY,
assessment_id BIGINT NOT NULL,
surgery_schedule_id BIGINT NOT NULL,
anesthesia_type VARCHAR(50), -- 全麻/椎管内/神经阻滞/局部/复合
anesthesia_method TEXT, -- 具体麻醉方法
monitor_plan TEXT, -- 监测方案
airway_management TEXT, -- 气道管理方案
fluid_plan TEXT, -- 输液方案
blood_plan TEXT, -- 输血方案
pain_management TEXT, -- 镇痛方案
special_requirements TEXT, -- 特殊要求
planned_by_id BIGINT,
plan_time TIMESTAMP,
status VARCHAR(20), -- 草稿/已提交/已批准
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 术中麻醉记录表
CREATE TABLE sys_anesthesia_intra_record (
id BIGSERIAL PRIMARY KEY,
surgery_schedule_id BIGINT NOT NULL,
encounter_id BIGINT NOT NULL,
-- 时间节点
patient_entry_time TIMESTAMP, -- 患者入室时间
anesthesia_start_time TIMESTAMP, -- 麻醉开始时间
surgery_start_time TIMESTAMP, -- 手术开始时间
surgery_end_time TIMESTAMP, -- 手术结束时间
anesthesia_end_time TIMESTAMP, -- 麻醉结束时间
patient_exit_time TIMESTAMP, -- 患者出室时间
-- 生命体征(定时采集)
vital_signs_data JSONB, -- [{time, systolic, diastolic, heart_rate, spo2, temp, etco2, ...}]
-- 麻醉用药
anesthesia_medications JSONB, -- [{drug_name, dose, unit, time, route, operator}]
-- 非麻醉用药
non_anesthesia_medications JSONB, -- [{drug_name, dose, unit, time, reason}]
-- 液体出入量
fluid_input JSONB, -- [{type, volume_ml, time}]
fluid_output JSONB, -- [{type, volume_ml, time}]
blood_loss_ml INT, -- 出血量
blood_transfusion_ml INT, -- 输血量
urine_output_ml INT, -- 尿量
-- 术中事件
intra_events JSONB, -- [{event_type, time, description, handling}]
-- 气道管理
airway_management JSONB, -- {intubation_type, tube_size, depth, ...}
-- 麻醉医师
primary_anesthesiologist_id BIGINT, -- 主麻
assistant_anesthesiologist_id BIGINT, -- 助麻
status VARCHAR(20), -- 进行中/已完成
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 麻醉苏醒评估表
CREATE TABLE sys_anesthesia_recovery (
id BIGSERIAL PRIMARY KEY,
intra_record_id BIGINT NOT NULL,
surgery_schedule_id BIGINT NOT NULL,
recovery_time TIMESTAMP,
consciousness_level VARCHAR(50), -- 清醒/嗜睡/模糊/昏迷
respiratory_rate INT,
heart_rate INT,
blood_pressure VARCHAR(50),
spo2 DECIMAL(5,2),
temperature DECIMAL(5,2),
pain_score INT, -- NRS评分 0-10
恶心_nausea CHAR(1), -- 0无 1有
vomiting CHAR(1), -- 0无 1有
Aldrete_score INT, -- Aldrete评分 0-10
discharge_eligible CHAR(1), -- 0不达标 1达标
extubation_time TIMESTAMP, -- 拔管时间
special_notes TEXT,
assessor_id BIGINT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 知情同意书表
CREATE TABLE sys_consent_form (
id BIGSERIAL PRIMARY KEY,
encounter_id BIGINT NOT NULL,
patient_id BIGINT NOT NULL,
form_type VARCHAR(50), -- 手术/麻醉/输血/其他
surgery_schedule_id BIGINT,
form_template_id BIGINT,
form_content TEXT, -- 知情同意书内容
patient_name VARCHAR(100),
patient_signature_data TEXT, -- 患者签名(base64)
patient_sign_time TIMESTAMP,
doctor_signature_data TEXT, -- 医生签名(base64)
doctor_sign_time TIMESTAMP,
witness_signature_data TEXT, -- 见证人签名(base64)
witness_sign_time TIMESTAMP,
status VARCHAR(20), -- 待签署/已签署/已撤回
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
---
##### 8.2 手术记录系统
**业务流程**:
```
手术申请 → 科室审批 → 医务科审批 → 手术排程 → 术前准备 → 手术执行 → 术后医嘱
```
**新增Service**:
```java
public interface ISurgeryRecordService {
// 创建手术记录
SurgeryRecord createRecord(SurgeryRecordParam param);
// 记录术中信息
void recordIntraOp(IntraOpParam param);
// 记录植入物
void recordImplant(ImplantRecordParam param);
// 记录标本
void recordSpecimen(SpecimenRecordParam param);
// 术后医嘱自动生成
List<Advice> generatePostOpOrders(Long surgeryRecordId);
// 手术统计
SurgeryStatistics getStatistics(Long departmentId, Date startDate, Date endDate);
}
```
**新增数据库表**:
```sql
-- V2026_008__surgery_record.sql
-- 手术记录表(扩展已有op_schedule)
ALTER TABLE op_schedule ADD COLUMN IF NOT EXISTS surgery_record_id BIGINT;
ALTER TABLE op_schedule ADD COLUMN IF NOT EXISTS post_op_diagnosis TEXT;
ALTER TABLE op_schedule ADD COLUMN IF NOT EXISTS post_op_orders JSONB;
-- 手术记录详细表
CREATE TABLE sys_surgery_record (
id BIGSERIAL PRIMARY KEY,
surgery_schedule_id BIGINT NOT NULL,
encounter_id BIGINT NOT NULL,
patient_id BIGINT NOT NULL,
-- 手术团队
surgeon_id BIGINT, -- 主刀
assistant1_id BIGINT, -- 助手1
assistant2_id BIGINT, -- 助手2
assistant3_id BIGINT, -- 助手3
scrub_nurse_id BIGINT, -- 器械护士
circulating_nurse_id BIGINT, -- 巡回护士
-- 手术时间
incision_time TIMESTAMP, -- 切皮时间
closure_time TIMESTAMP, -- 缝合时间
total_surgery_minutes INT, -- 手术总时长
-- 手术信息
surgical_site VARCHAR(200), -- 手术部位
approach VARCHAR(100), -- 手术入路
implant_records JSONB, -- [{implant_name, serial_no, manufacturer, quantity}]
specimen_records JSONB, -- [{specimen_type, description, send_to_pathology}]
-- 出血与输血
estimated_blood_loss INT, -- 估计出血量(ml)
actual_blood_loss INT, -- 实际出血量(ml)
blood_transfusion_units INT, -- 输血量(单位)
-- 并发症
intraoperative_complications JSONB, -- [{type, description, time, handling}]
postoperative_complications JSONB, -- [{type, description, time, handling}]
-- 手术级别
surgery_level VARCHAR(20), -- 一/二/三/四级
surgery_classification VARCHAR(50), -- 急诊/限期/择期
-- 感染控制
infection_risk CHAR(1), -- 0低 1中 2高
isolation_type VARCHAR(50), -- 隔离类型
antibiotic_prophylaxis CHAR(1), -- 0无 1有预防性抗菌药物
status VARCHAR(20), -- 进行中/已完成
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 植入物记录表
CREATE TABLE sys_implant_record (
id BIGSERIAL PRIMARY KEY,
surgery_record_id BIGINT NOT NULL,
implant_name VARCHAR(200),
implant_model VARCHAR(100),
serial_no VARCHAR(100), -- 序列号/批号
manufacturer VARCHAR(200),
specification VARCHAR(200),
quantity INT DEFAULT 1,
implant_site VARCHAR(200), -- 植入部位
Implant_time TIMESTAMP,
status CHAR(1) DEFAULT '0',
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
---
#### Sprint 9: 院感管理系统 (5天)
**业务背景**: 三甲评审要求医院感染监测报告率达标,院感管理是评审必查项。
**新增Service**:
```java
public interface IInfectionControlService {
// 院感病例监测
List<InfectionCase> monitorInfection(Date startDate, Date endDate);
// 院感病例上报
void reportCase(InfectionCaseReportParam param);
// 院感预警
List<InfectionAlert> getAlerts(Long departmentId);
// 院感统计
InfectionStatistics getStatistics(Date startDate, Date endDate);
// 多重耐药菌监测
List<MDRORecord> monitorMDRO(Date startDate, Date endDate);
// 手卫生管理
void recordHandHygiene(HandHygieneRecordParam param);
HandHygieneStats getHandHygieneStats(Long departmentId, Date startDate, Date endDate);
// 职业暴露管理
void reportExposure(OccupationalExposureParam param);
void trackExposure(Long exposureId, ExposureFollowUpParam param);
List<OccupationalExposure> getExposureRecords(Date startDate, Date endDate);
// 环境监测
void recordEnvironmentMonitor(EnvironmentMonitorParam param);
List<EnvironmentMonitor> getEnvironmentMonitorRecords(Long departmentId, Date startDate, Date endDate);
}
```
**新增数据库表**:
```sql
-- V2026_009__infection_control.sql
-- 院感病例表
CREATE TABLE sys_infection_case (
id BIGSERIAL PRIMARY KEY,
encounter_id BIGINT NOT NULL,
patient_id BIGINT NOT NULL,
infection_type VARCHAR(50), -- 医院感染/社区感染
infection_site VARCHAR(100), -- 下呼吸道/泌尿道/血液/手术部位/其他
pathogen_code VARCHAR(50),
pathogen_name VARCHAR(200),
drug_resistance JSONB, -- [{drug_name, resistance_type}]
diagnosis_basis TEXT, -- 诊断依据
report_time TIMESTAMP,
reporter_id BIGINT,
department_id BIGINT,
status VARCHAR(20), -- 疑似/确认/已排除/已处理
treatment_plan TEXT,
outcome TEXT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 手卫生记录表
CREATE TABLE sys_hand_hygiene (
id BIGSERIAL PRIMARY KEY,
staff_id BIGINT NOT NULL,
staff_name VARCHAR(100),
department_id BIGINT,
observation_time TIMESTAMP,
observation_type VARCHAR(50), -- 两前三后/手卫生五个时刻
correct_flag CHAR(1), -- 0不正确 1正确
handrub_type VARCHAR(50), -- 洗手液/速干手消毒剂
observer_id BIGINT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 职业暴露记录表
CREATE TABLE sys_occupational_exposure (
id BIGSERIAL PRIMARY KEY,
staff_id BIGINT NOT NULL,
staff_name VARCHAR(100),
department_id BIGINT,
exposure_type VARCHAR(50), -- 锐器伤/血液体液暴露/化学暴露/其他
exposure_source VARCHAR(200), -- 暴露源描述
source_patient_name VARCHAR(100),
source_patient_hiv VARCHAR(20),
source_patient_hbv VARCHAR(20),
source_patient_hcv VARCHAR(20),
exposure_time TIMESTAMP,
exposure_site VARCHAR(100), -- 暴露部位
exposure_amount VARCHAR(100), -- 暴露量
immediate_handling TEXT, -- 立即处理措施
risk_assessment VARCHAR(20), -- 低/中/高
follow_up_plan TEXT, -- 随访计划
follow_up_records JSONB, -- [{time, result, note}]
report_time TIMESTAMP,
reporter_id BIGINT,
status VARCHAR(20), -- 登记中/处置中/随访中/已结案
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 环境监测表
CREATE TABLE sys_environment_monitor (
id BIGSERIAL PRIMARY KEY,
department_id BIGINT,
monitor_type VARCHAR(50), -- 空气/物表/手/消毒剂
monitor_item VARCHAR(100), -- 监测项目
monitor_result VARCHAR(200), -- 监测结果
standard_value VARCHAR(200), -- 标准值
is_qualified CHAR(1), -- 0不合格 1合格
monitor_time TIMESTAMP,
monitor_by_id BIGINT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
---
### Phase 2: 病案与护理体系3周
#### Sprint 10: 病案管理系统 (5天)
**业务背景**: 三甲要求病案首页24小时归档率≥90%主要诊断编码正确率≥95%。
**已有基础**: `InpatientMedicalRecordHomePageCollectionController`(病案首页统计)
**新增Service**:
```java
public interface IMedicalRecordManagementService {
// 病案首页数据自动采集
MedicalRecordHome autoCollectHome(Long encounterId);
// ICD-10编码推荐
List<ICD10Code> recommendDiagnosisCode(String diagnosisName);
// ICD-9-CM-3手术编码映射
List<ICD9CM3Code> mapSurgeryCode(String surgeryName);
// 首页数据质量校验
HomeQualityResult validateHomeQuality(Long homeId);
// 病案质控
MedicalRecordAudit auditRecord(MedicalRecordAuditParam param);
// DRG自动分组
DRGGroupingResult autoDRGGrouping(Long encounterId);
// 病案归档
void archiveMedicalRecord(Long encounterId);
// 病案借阅
MedicalRecordBorrow borrowRecord(MedicalRecordBorrowParam param);
// 病案封存/解封
void sealRecord(Long recordId, boolean seal);
}
```
---
#### Sprint 11: 护理评估体系 (5天)
**业务背景**: 三甲要求护理评估完成率≥95%入院评估8小时内完成。
**已有基础**: `VitalSignsController`(生命体征)、`NursingRecordController`(护理记录)
**新增Service**:
```java
public interface INursingAssessmentService {
// 入院护理评估
NursingAssessment createAdmissionAssessment(AdmissionAssessmentParam param);
// Braden压疮风险评估(自动评分)
BradenScore assessBraden(BradenAssessmentParam param);
// Morse跌倒风险评估(自动评分)
MorseScore assessMorse(MorseAssessmentParam param);
// NRS2002营养风险评估
NRS2002Score assessNRS2002(NRS2002AssessmentParam param);
// 疼痛评估(NRS/VAS)
PainScore assessPain(PainAssessmentParam param);
// Caprini VTE风险评估
CapriniScore assessCaprini(CapriniAssessmentParam param);
// Barthel自理能力评估
BarthelScore assessBarthel(BarthelAssessmentParam param);
// 评估时间轴(动态变化追踪)
List<AssessmentTimeline> getTimeline(Long patientId, String assessmentType);
// 护理计划
NursingPlan createPlan(NursingPlanParam param);
// 护理交接班
NursingHandover createHandover(NursingHandoverParam param);
}
```
---
### Phase 3: 数据集成与标准化3周
#### Sprint 12: 患者主索引+主数据 (3天)
**业务背景**: 互联互通四级甲等基础,统一患者身份标识。
**新增Service**:
```java
public interface IEMPIService {
// 患者身份匹配
String matchPatient(PatientMatchParam param);
// 患者身份合并
void mergePatient(Long primaryId, Long secondaryId);
// 患者身份拆分
void splitPatient(Long mergedId);
// 主数据同步
void syncMasterData(MasterDataSyncParam param);
}
```
---
#### Sprint 13: 数据集成平台ESB (5天)
**业务背景**: 互联互通四级甲等核心,所有系统通过集成平台互联。
**新增Service**:
```java
public interface IESBService {
// 发送消息
void sendMessage(ESBMessage message);
// 接收消息
ESBMessage receiveMessage(String messageId);
// 服务注册
void registerService(ESBServiceRegistry service);
// 服务发现
ESBServiceRegistry discoverService(String serviceName);
// 消息监控
ESBMonitor getMonitor(Date startDate, Date endDate);
// CDA文档生成
CDADocument generateCDA(String documentType, Long encounterId);
}
```
---
### Phase 4: 智能化与决策支持3周
#### Sprint 14: 危急值管理系统 (3天)
**业务背景**: 医疗质量安全核心制度,检验危急值必须闭环管理。
**新增Service**:
```java
public interface ICriticalValueService {
// 危急值规则配置
void configureRules(List<CriticalValueRule> rules);
// 检验结果自动匹配危急值
List<CriticalValueAlert> matchCriticalValue(Long inspectionResultId);
// 危急值通知
void notifyCriticalValue(Long alertId, List<Long> notifyUserIds);
// 危急值确认
void confirmCriticalValue(Long alertId, CriticalValueConfirmParam param);
// 危急值处置
void handleCriticalValue(Long alertId, CriticalValueHandleParam param);
// 危急值统计
CriticalValueStats getStats(Date startDate, Date endDate);
}
```
---
#### Sprint 15: 电子病历结构化 (5天)
**业务背景**: 电子病历应用管理规范要求修改留痕、版本管理、电子签名。
**新增Service**:
```java
public interface IStructuredEMRService {
// 结构化病历创建
StructuredEMR createEMR(EMRCreateParam param);
// 病历修改(留痕)
void modifyEMR(Long emrId, EMRModifyParam param);
// 版本历史
List<EMRVersion> getVersionHistory(Long emrId);
// 版本对比
EMRDiff compareVersions(Long versionId1, Long versionId2);
// 病历模板管理
EMRTemplate saveTemplate(EMRTemplateParam param);
// 病历完整性检查
EMRCompletenessResult checkCompleteness(Long emrId);
}
```
---
#### Sprint 16: 医保智能审核 (5天)
**业务背景**: 医保基金使用监督管理条例,防范骗保、规范使用。
**已有基础**: `ybmanage/*`(医保管理模块)
**新增Service**:
```java
public interface IInsuranceAuditService {
// 事前审核(开方时)
PreAuditResult preAudit(PreAuditParam param);
// 事中审核(住院中)
List<InAuditAlert> inAudit(Long encounterId);
// 事后审核(结算后)
PostAuditResult postAudit(Long settlementId);
// DRG/DIP优化建议
DRGOptimizationSuggestion optimizeDRG(Long encounterId);
}
```
---
## 三、测试计划
### 每个Sprint测试矩阵
| 测试类型 | 内容 | 通过标准 |
|---|---|---|
| **接口测试** | 所有新增API端点 | 正常/异常/边界各至少1个用例 |
| **白盒测试** | Service层方法 | 覆盖率≥80% |
| **黑盒测试** | 业务流程完整性 | 关键流程100%覆盖 |
| **冒烟测试** | 核心功能可用性 | 所有核心接口返回200 |
| **回归测试** | 原有功能不受影响 | 158个已有测试全部通过 |
### 测试用例设计原则
1. **正常流程测试**: 每个API至少1个正常用例
2. **边界条件测试**: 空值/极值/特殊字符/超长文本
3. **异常处理测试**: 无权限/参数错误/数据不存在/并发冲突
4. **数据一致性测试**: 事务完整性、级联操作
5. **性能测试**: 并发场景可选P2优先级
---
## 四、实施路线图
```
Phase 1 (Week 1-3): 核心安全模块
├── Sprint 7: 合理用药系统 (5天) → 20个测试用例
├── Sprint 8: 手术麻醉系统 (5天) → 25个测试用例
└── Sprint 9: 院感管理系统 (5天) → 20个测试用例
Phase 2 (Week 4-6): 病案与护理
├── Sprint 10: 病案管理系统 (5天) → 20个测试用例
└── Sprint 11: 护理评估体系 (5天) → 25个测试用例
Phase 3 (Week 7-9): 数据集成
├── Sprint 12: EMPI + 主数据 (3天) → 15个测试用例
└── Sprint 13: ESB集成平台 (5天) → 20个测试用例
Phase 4 (Week 10-12): 智能化
├── Sprint 14: 危急值管理 (3天) → 15个测试用例
├── Sprint 15: 电子病历结构化 (5天) → 20个测试用例
└── Sprint 16: 医保智能审核 (5天) → 20个测试用例
总计: 12周 (约3个月)
总用例数: 预计 220+ 个接口测试
```
---
## 五、质量保障
### 5.1 开发规范铁律
1. **不修改原有函数签名** — 扩展功能通过新建Service/AppService实现
2. **数据库变更通过Flyway** — 所有新建表和字段使用Flyway版本化管理
3. **代码审查** — 每个PR必须经过Code Review
4. **单元测试** — Service层覆盖率≥80%
5. **接口测试** — 每个API端点必须有测试用例
### 5.2 铁律
1. 修改完必须测试才能提交
2. 新建表和字段必须通过Flyway
3. 测试通过后才提交代码
4. 前后端API路径必须对齐
5. 每个Sprint完成后进行完整回归测试
6. 白盒测试+黑盒测试+冒烟测试+接口测试+回归测试全部通过后才能提交
---
> **文档版本**: v1.0
> **最后更新**: 2026-06-06

View File

@@ -0,0 +1,210 @@
# 广西三甲医院 HIS 系统功能设计文档
> 参考标准:
> - 《医院信息系统功能基本规范》(卫生部)
> - 《三级医院评审标准(2022年版)》信息化部分
> - 《电子病历应用管理规范(试行)》
> - 《医院信息平台技术规范》(WS/T 500)
> - 互联互通标准化成熟度测评四级甲等要求
> - 广西壮族自治区卫生健康信息化"十四五"规划
---
## 一、门诊管理模块 (Outpatient)
### 1.1 门诊挂号 (Registration)
| 功能 | 说明 | 三甲要求 |
|---|---|---|
| 普通挂号 | 支持科室/医生/时段多维度挂号 | ✅必须 |
| 预约挂号 | 支持电话/网络/现场预约,分时段预约 | ✅必须 |
| 挂号退号 | 退号退费,限当日退号 | ✅必须 |
| 号源管理 | 号源池管理,限号/加号/停诊 | ✅必须 |
| 多身份挂号 | 医保/自费/公费/商业保险 | ✅必须 |
| 就诊卡管理 | 发卡/补卡/换卡/挂失 | ✅必须 |
| 排班管理 | 医生排班/停诊/替班 | ✅必须 |
### 1.2 门诊医生工作站 (Doctor Workstation)
| 功能 | 说明 | 三甲要求 |
|---|---|---|
| 候诊患者列表 | 按就诊顺序排列,显示患者基本信息 | ✅必须 |
| 病历书写 | 主诉/现病史/既往史/体格检查/辅助检查 | ✅必须(电子病历≥4级) |
| 诊断录入 | ICD-10编码,主诊断+副诊断 | ✅必须 |
| 处方开具 | 西药/中成药/中药饮片处方 | ✅必须 |
| 检验申请 | LIS检验项目申请,条码打印 | ✅必须 |
| 检查申请 | PACS检查项目申请 | ✅必须 |
| 治疗申请 | 治疗/手术/操作申请 | ✅必须 |
| 医嘱管理 | 长期医嘱/临时医嘱,医嘱审核 | ✅必须 |
| 处方审核 | 药师审核处方,合理用药提醒 | ✅必须 |
| 模板管理 | 个人/科室/全院病历模板 | 推荐 |
| 诊断知识库 | 诊断建议,鉴别诊断 | 推荐 |
### 1.3 门诊收费 (Billing)
| 功能 | 说明 | 三甲要求 |
|---|---|---|
| 门诊收费 | 处方/检查/治疗费用收取 | ✅必须 |
| 多支付方式 | 现金/银行卡/微信/支付宝/医保 | ✅必须 |
| 发票管理 | 电子发票/纸质发票 | ✅必须 |
| 退费管理 | 部分退费/全部退费,退费审批 | ✅必须 |
| 费用查询 | 患者费用明细查询 | ✅必须 |
| 日结管理 | 收款员日结/月结 | ✅必须 |
| 欠费管理 | 记账/催缴/坏账处理 | 推荐 |
### 1.4 门诊药房 (Pharmacy)
| 功能 | 说明 | 三甲要求 |
|---|---|---|
| 处方接收 | 自动接收门诊处方 | ✅必须 |
| 配药发药 | 按处方配药,核对发药 | ✅必须 |
| 退药管理 | 退药退回药房 | ✅必须 |
| 处方点评 | 抗菌药物/重点监控药品点评 | ✅必须 |
| 用药安全 | 过敏提醒/配伍禁忌/重复用药 | ✅必须 |
| 药品效期 | 近效期预警/过期药品管理 | ✅必须 |
| 毒麻药品 | 专柜存放,双人核对 | ✅必须 |
---
## 二、住院管理模块 (Inpatient)
### 2.1 住院登记 (Admission)
| 功能 | 说明 | 三甲要求 |
|---|---|---|
| 入院登记 | 患者信息录入,医保类型确认 | ✅必须 |
| 床位管理 | 床位分配/转床/包床 | ✅必须 |
| 押金管理 | 押金收取/补交/退押 | ✅必须 |
| 预交金管理 | 预交金查询/催缴 | ✅必须 |
| 出院登记 | 出院结算/出院带药 | ✅必须 |
### 2.2 住院医生工作站 (Inpatient Doctor)
| 功能 | 说明 | 三甲要求 |
|---|---|---|
| 入院记录 | 入院记录书写,24小时内完成 | ✅必须(电子病历≥4级) |
| 病程记录 | 首次病程/日常病程/上级查房 | ✅必须 |
| 医嘱开立 | 长期/临时医嘱,医嘱套餐 | ✅必须 |
| 医嘱审核 | 护士审核/药师审核 | ✅必须 |
| 手术申请 | 术前讨论/手术审批/手术安排 | ✅必须 |
| 会诊申请 | 科内/科间/全院/院外会诊 | ✅必须 |
| 输血申请 | 输血申请/输血反应记录 | ✅必须 |
| 死亡记录 | 死亡病例讨论记录 | ✅必须 |
| 知情同意 | 知情同意书电子签署 | ✅必须 |
### 2.3 住院护士工作站 (Nurse Station)
| 功能 | 说明 | 三甲要求 |
|---|---|---|
| 医嘱执行 | 医嘱审核/执行/停止 | ✅必须 |
| 护理记录 | 生命体征/出入量/护理评估 | ✅必须 |
| 体温单 | 电子体温单,自动绘制 | ✅必须(电子病历≥4级) |
| 标本采集 | 标本采集/条码打印/送检 | ✅必须 |
| 药品领取 | 病区药品领取/退药 | ✅必须 |
| 费用录入 | 护士站记费/材料费 | ✅必须 |
| 交接班 | 护士交接班记录 | ✅必须 |
| 责任护理 | 责任护士分管患者 | ✅必须 |
| 护理评估 | 入院评估/压疮评估/跌倒评估 | ✅必须 |
### 2.4 住院收费 (Inpatient Billing)
| 功能 | 说明 | 三甲要求 |
|---|---|---|
| 费用汇总 | 按类别/项目汇总 | ✅必须 |
| 中途结算 | 住院中途结算 | ✅必须 |
| 出院结算 | 出院总结算,多支付方式 | ✅必须 |
| 医保结算 | 医保实时结算/手工报销 | ✅必须 |
| 费用清单 | 每日费用清单/住院费用明细 | ✅必须 |
| 费用审核 | 大额费用审核/异常费用提醒 | 推荐 |
---
## 三、药品管理模块 (Drug Management)
### 3.1 药品基础数据
| 功能 | 说明 | 三甲要求 |
|---|---|---|
| 药品目录 | 药品字典,国药准字/规格/厂家 | ✅必须 |
| 药品分类 | 西药/中成药/中药饮片/外用/毒麻 | ✅必须 |
| 基础代谢 | 给药途径/用药频次/疗程 | ✅必须 |
| 供应商管理 | 药品供应商/资质证照管理 | ✅必须 |
### 3.2 药品采购
| 功能 | 说明 | 三甲要求 |
|---|---|---|
| 采购计划 | 科室请购/药房汇总/审批 | ✅必须 |
| 采购订单 | 生成采购单/供应商确认 | ✅必须 |
| 入库验收 | 到货验收/质量检查/入库 | ✅必须 |
| 退货管理 | 质量问题退货 | ✅必须 |
### 3.3 药品库存
| 功能 | 说明 | 三甲要求 |
|---|---|---|
| 库存查询 | 实时库存/批号/效期 | ✅必须 |
| 出入库管理 | 入库/出库/调拨/报损 | ✅必须 |
| 盘点管理 | 定期盘点/盈亏处理 | ✅必须 |
| 效期管理 | 近效期预警(3月/6月) | ✅必须 |
| 高值耗材 | 高值耗材追溯管理 | ✅必须 |
---
## 四、检验检查模块 (Lab & PACS)
### 4.1 LIS 检验系统
| 功能 | 说明 | 三甲要求 |
|---|---|---|
| 申请接收 | 接收门诊/住院检验申请 | ✅必须 |
| 标本采集 | 条码打印/采集确认 | ✅必须 |
| 标本接收 | 标本签收/不合格退回 | ✅必须 |
| 结果录入 | 仪器接口/手工录入/审核 | ✅必须 |
| 危急值管理 | 危急值报告/处理/追踪 | ✅必须 |
| 报告审核 | 初审/复审/修改 | ✅必须 |
| 报告查询 | 历史报告对比 | ✅必须 |
### 4.2 PACS 影像系统
| 功能 | 说明 | 三甲要求 |
|---|---|---|
| 申请接收 | 接收检查申请 | ✅必须 |
| 登记排队 | 检查登记/排队叫号 | ✅必须 |
| 影像采集 | DICOM影像采集 | ✅必须 |
| 报告书写 | 结构化报告/模板 | ✅必须 |
| 影像浏览 | DICOM Viewer | ✅必须 |
| 报告审核 | 书写/审核/修改 | ✅必须 |
---
## 五、运营监管模块 (Operations)
### 5.1 质控管理
| 功能 | 说明 | 三甲要求 |
|---|---|---|
| 病案质控 | 病案首页质控/运行病历质控 | ✅必须 |
| 抗菌药物监测 | 使用率/使用强度/送检率 | ✅必须 |
| DRGs/DIP监控 | 病组/费用/权重监控 | ✅必须 |
| 合理用药 | 处方点评/用药监控 | ✅必须 |
### 5.2 统计分析
| 功能 | 说明 | 三甲要求 |
|---|---|---|
| 门诊统计 | 门诊量/收入/科室统计 | ✅必须 |
| 住院统计 | 出入院/床位使用率/均费 | ✅必须 |
| 药品统计 | 药占比/基本药物比例 | ✅必须 |
| 医保统计 | 医保费用/结算/对账 | ✅必须 |
---
## 六、电子病历评级要求 (EMR Level 4+)
三甲医院要求电子病历应用水平≥4级:
| 级别 | 要求 |
|---|---|
| 3级 | 医疗文书统一管理,关键信息可用 |
| 4级 | 中级医疗决策支持,闭环管理 |
| 5级 | 高级医疗决策支持,知识库 |
| 6级 | 全流程医疗信息闭环 |
| 7级 | 健康信息整合,区域协同 |
---
## 七、互联互通要求 (四级甲等)
| 要素 | 要求 |
|---|---|
| 数据集标准化 | HL7 FHIR / CDA 2.0 |
| 术语标准化 | ICD-10 / SNOMED CT / LOINC |
| 接口规范 | RESTful API / Web Service |
| 数据交换 | 消息队列 / ESB |
| 安全认证 | CA认证 / 电子签名 |