- 删除手术状态下拉框的重复字典数据,保留每组中dict_code最小的记录 - 修复HisBaseEntity列缺失问题,为多个表添加create_by、update_by、update_time等基础字段 - 为adm_patient表添加邮政编码、户籍地址、监护人信息、患者来源等缺失字段 - 添加文化程度字典类型和相关字典数据,补充3919到3914等10个学历级别选项 - 为adm_patient_identifier表创建tenant_id和patient_id的联合索引以提升查询性能 - 修复prescription_intercept_log和clinical_pathway_execution表的基础实体字段缺失 - 为wor_device_request表增加医嘱退回相关的back_reason、performer_check_id等字段 - 创建EMPI核心表empi_person和empi_person_id_mapping用于全局患者主索引管理 - 为empi_merge_log表添加create_time字段以完善审计信息 - 更新院感管理和评审保障模块的设计文档,明确各模块实现状态和缺失功能
1315 lines
40 KiB
Markdown
1315 lines
40 KiB
Markdown
# HealthLink-HIS Phase 2 详细设计 — P1评审保障
|
||
|
||
> **文档类型**: 详细设计
|
||
> **版本**: v1.0
|
||
> **日期**: 2026-06-17
|
||
> **范围**: 6大模块组 × 25个功能域
|
||
> **技术栈**: Spring Boot 4.0.6 + JDK 25 + MyBatis-Plus 3.5.16 + Vue 3 + Element Plus + PostgreSQL 15+
|
||
|
||
---
|
||
|
||
## 目录
|
||
|
||
- [1. 院感管理(infection)](#1-院感管理infection)
|
||
- [2. 护理评估(nursing)](#2-护理评估nursing)
|
||
- [3. 护士站增强(inhospitalnursestation)](#3-护士站增强inhospitalnursestation)
|
||
- [4. 检验LIS(lab + Inspection + labenhanced)](#4-检验lislab--inspection--labenhanced)
|
||
- [5. 检查PACS(check + radiologyenhanced + radiologycomparison)](#5-检查pacscheck--radiologyenhanced--radiologycomparison)
|
||
- [6. ESB集成平台(esbmanage)](#6-esb集成平台esbmanage)
|
||
- [附录A: Flyway迁移脚本汇总](#附录a-flyway迁移脚本汇总)
|
||
- [附录B: API接口清单](#附录b-api接口清单)
|
||
|
||
---
|
||
|
||
## 1. 院感管理(infection)
|
||
|
||
### 1.1 已有代码分析
|
||
|
||
**后端结构**
|
||
|
||
| 层级 | 文件 | 说明 |
|
||
|------|------|------|
|
||
| Controller | `InfectionController.java` (298行) | 感染病例/手卫生/环境/抗菌/耐药/职业暴露/预警/监测 |
|
||
| Controller | `InfectionEnhancedController.java` (271行) | 暴发预警/目标性监测/手卫生/耐药/环境增强 |
|
||
| AppService | `IInfectionAppService.java` + impl | 院感业务编排 |
|
||
| Domain Service | 8个IXxxService + impl | 各子域CRUD |
|
||
| Domain Entity | 8个Entity | HirInfectionCase/AntibioticUsage/OccupationalExposure/EnvironmentalMonitor/HandHygiene/MultiDrugResistant/OutbreakWarning/TargetedSurveillance |
|
||
| Mapper | 8个Mapper | 各子域持久化 |
|
||
|
||
**已有数据库表(V9+V17)**
|
||
|
||
| 表名 | 来源 | 说明 |
|
||
|------|------|------|
|
||
| hir_infection_case | V9 | 感染病例 |
|
||
| hir_antibiotic_usage | V9 | 抗菌药物使用 |
|
||
| hir_occupational_exposure | V9 | 职业暴露 |
|
||
| hir_environmental_monitor | V17 | 环境监测 |
|
||
| hir_hand_hygiene | V17 | 手卫生 |
|
||
| hir_multi_drug_resistant | V17 | 多重耐药菌 |
|
||
| hir_outbreak_warning | V17 | 暴发预警 |
|
||
| hir_targeted_surveillance | V17 | 目标性监测 |
|
||
|
||
**前端结构**
|
||
|
||
| 目录 | 文件数 | 说明 |
|
||
|------|:------:|------|
|
||
| infection/ | 8 | 7个有script |
|
||
| infectionenhanced/ | 1 | 增强页面 |
|
||
|
||
### 1.2 缺失功能清单
|
||
|
||
| # | 功能 | 优先级 | 说明 |
|
||
|---|------|:------:|------|
|
||
| 1 | 院感病例自动筛查规则引擎 | P0 | 基于诊断/检验/用药自动触发筛查 |
|
||
| 2 | 暴发预警逻辑增强 | P0 | 同科室同类型感染≥3例自动预警 |
|
||
| 3 | 目标性监测ICU/手术部位 | P0 | ICU导管日/手术部位感染率 |
|
||
| 4 | 手卫生依从性统计 | P1 | 科室/个人依从率排名 |
|
||
| 5 | 环境监测管理 | P1 | 采样计划/结果录入/合格率 |
|
||
| 6 | 多重耐药菌跟踪 | P1 | 耐药菌检出→隔离→解除闭环 |
|
||
|
||
### 1.3 业务流程
|
||
|
||
#### 1.3.1 院感病例自动筛查
|
||
|
||
```
|
||
电子病历/检验数据 → 规则引擎匹配 → 生成筛查记录 → 院感科审核 → 确认/排除
|
||
↑ ↓
|
||
检验结果(Microbiology) 感染病例(hir_infection_case)
|
||
用药记录(AntibioticUsage)
|
||
诊断编码(ICD-10)
|
||
```
|
||
|
||
#### 1.3.2 暴发预警
|
||
|
||
```
|
||
监测数据聚合 → 阈值判断(同科室≥3例/7天) → 生成预警 → 院感科响应 → 处置记录
|
||
↓
|
||
触发应急响应流程
|
||
```
|
||
|
||
#### 1.3.3 目标性监测
|
||
|
||
```
|
||
ICU患者 → 导管留置天数记录 → 感染事件关联 → 计算感染率(ICU-specific)
|
||
手术患者 → 手术部位感染追踪 →SSI率计算 → 科室排名
|
||
```
|
||
|
||
### 1.4 数据库设计
|
||
|
||
#### V47__infection_rule_engine.sql
|
||
|
||
```sql
|
||
CREATE TABLE hir_screening_rule (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
rule_code VARCHAR(50) NOT NULL,
|
||
rule_name VARCHAR(200) NOT NULL,
|
||
rule_type VARCHAR(20) NOT NULL,
|
||
trigger_condition TEXT NOT NULL,
|
||
severity VARCHAR(20) DEFAULT 'MEDIUM',
|
||
is_enabled VARCHAR(1) DEFAULT '1',
|
||
department_scope VARCHAR(500),
|
||
icd_codes TEXT,
|
||
lab_keywords TEXT,
|
||
drug_keywords TEXT,
|
||
time_window_hours INTEGER DEFAULT 72,
|
||
threshold INTEGER DEFAULT 1,
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE hir_screening_record (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
patient_id BIGINT NOT NULL,
|
||
encounter_id BIGINT NOT NULL,
|
||
rule_id BIGINT NOT NULL,
|
||
rule_code VARCHAR(50) NOT NULL,
|
||
rule_name VARCHAR(200),
|
||
match_source VARCHAR(50) NOT NULL,
|
||
match_detail TEXT,
|
||
risk_level VARCHAR(20) DEFAULT 'MEDIUM',
|
||
status VARCHAR(20) DEFAULT 'PENDING',
|
||
reviewer_id BIGINT,
|
||
review_time TIMESTAMP,
|
||
review_remark TEXT,
|
||
confirmed_case_id BIGINT,
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE hir_icu_daily_record (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
patient_id BIGINT NOT NULL,
|
||
encounter_id BIGINT NOT NULL,
|
||
icu_type VARCHAR(50) NOT NULL,
|
||
record_date DATE NOT NULL,
|
||
ventilator_hours DECIMAL(5,2) DEFAULT 0,
|
||
central_line_days INTEGER DEFAULT 0,
|
||
urinary_catheter_days INTEGER DEFAULT 0,
|
||
has_vap VARCHAR(1) DEFAULT '0',
|
||
has_clabsi VARCHAR(1) DEFAULT '0',
|
||
has_cauti VARCHAR(1) DEFAULT '0',
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE hir_ssi_tracking (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
patient_id BIGINT NOT NULL,
|
||
encounter_id BIGINT NOT NULL,
|
||
surgery_id BIGINT,
|
||
surgery_type VARCHAR(100),
|
||
surgery_date DATE,
|
||
wound_class VARCHAR(20),
|
||
ssi_type VARCHAR(20),
|
||
diagnosis_date DATE,
|
||
pathogen TEXT,
|
||
status VARCHAR(20) DEFAULT 'ACTIVE',
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE hir_hygiene_compliance (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
department_id BIGINT NOT NULL,
|
||
department_name VARCHAR(100),
|
||
monitor_date DATE NOT NULL,
|
||
monitor_type VARCHAR(50) NOT NULL,
|
||
target_count INTEGER DEFAULT 0,
|
||
actual_count INTEGER DEFAULT 0,
|
||
compliance_rate DECIMAL(5,2),
|
||
observer_id BIGINT,
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
```
|
||
|
||
### 1.5 API接口设计
|
||
|
||
#### 1.5.1 规则引擎
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/infection/rule/page` | 规则分页列表 |
|
||
| POST | `/infection/rule/add` | 新增规则 |
|
||
| PUT | `/infection/rule/update` | 修改规则 |
|
||
| DELETE | `/infection/rule/delete/{id}` | 删除规则 |
|
||
| POST | `/infection/rule/toggle/{id}` | 启用/禁用规则 |
|
||
| POST | `/infection/screening/run` | 执行筛查 |
|
||
| GET | `/infection/screening/page` | 筛查记录分页 |
|
||
| PUT | `/infection/screening/review/{id}` | 审核筛查结果 |
|
||
|
||
#### 1.5.2 暴发预警
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/infection/outbreak/statistics` | 暴发统计 |
|
||
| POST | `/infection/outbreak/auto-detect` | 自动检测暴发 |
|
||
| GET | `/infection/outbreak/timeline/{id}` | 预警时间线 |
|
||
|
||
#### 1.5.3 目标性监测
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/infection/icu/daily/page` | ICU日志分页 |
|
||
| POST | `/infection/icu/daily/add` | 新增ICU日志 |
|
||
| GET | `/infection/icu/rate` | ICU感染率统计 |
|
||
| GET | `/infection/ssi/page` | SSI追踪分页 |
|
||
| POST | `/infection/ssi/add` | 新增SSI记录 |
|
||
| GET | `/infection/ssi/rate` | SSI感染率统计 |
|
||
|
||
#### 1.5.4 手卫生
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/infection/hygiene/compliance/page` | 依从性分页 |
|
||
| POST | `/infection/hygiene/compliance/add` | 录入依从性数据 |
|
||
| GET | `/infection/hygiene/ranking` | 科室排名 |
|
||
| GET | `/infection/hygiene/trend` | 依从性趋势 |
|
||
|
||
### 1.6 前端设计
|
||
|
||
| 页面 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| 规则管理 | `infection/ruleManage.vue` | 规则CRUD + 启用/禁用 |
|
||
| 筛查工作台 | `infection/screeningWorkbench.vue` | 待审核筛查列表 + 审核操作 |
|
||
| 暴发预警 | `infectionenhanced/outbreakDashboard.vue` | 预警大屏 + 时间线 |
|
||
| ICU监测 | `infectionenhanced/icuMonitoring.vue` | ICU日志录入 + 感染率 |
|
||
| SSI追踪 | `infectionenhanced/ssiTracking.vue` | SSI记录 + 统计 |
|
||
| 手卫生统计 | `infectionenhanced/hygieneCompliance.vue` | 依从性录入 + 排名 + 趋势 |
|
||
|
||
---
|
||
|
||
## 2. 护理评估(nursing)
|
||
|
||
### 2.1 已有代码分析
|
||
|
||
**后端结构**
|
||
|
||
| 层级 | 文件 | 说明 |
|
||
|------|------|------|
|
||
| Controller | 6个 | Nursing/NursingEnhanced/NursingExecution/NursingQuality/AssessmentTrend/NursingAssessmentEnhanced |
|
||
| AppService | 2个 | INursingAppService + INursingEnhancedAppService |
|
||
| Domain Entity | 12个 | NursingAssessment/AssessmentReminder/AssessmentTrend/CarePlan/ExecutionScan/Handoff/HandoffRecord/InfusionPatrol/QualityIndicator/VitalSignsChart/AssessmentIntervention/Dynamic |
|
||
|
||
**已有数据库表(V7+V18+V21+V22+V26+V35)**
|
||
|
||
| 表名 | 来源 | 说明 |
|
||
|------|------|------|
|
||
| nursing_assessment | V7 | 护理评估 |
|
||
| nursing_care_plan | V7 | 护理计划 |
|
||
| nursing_handoff | V7 | 护理交接 |
|
||
| nursing_assessment_reminder | V18 | 评估提醒 |
|
||
| nursing_execution_scan | V21 | 执行扫码 |
|
||
| nursing_handoff_record | V21 | 交接记录 |
|
||
| nursing_infusion_patrol | V21 | 巡视记录 |
|
||
| nursing_quality_indicator | V22 | 质量指标 |
|
||
| nursing_assessment_intervention | V26 | 评估干预 |
|
||
| nursing_assessment_dynamic | V35 | 动态评估 |
|
||
|
||
**前端结构**
|
||
|
||
| 目录 | 文件数 | 说明 |
|
||
|------|:------:|------|
|
||
| nursing/ | 1 | 基础评估 |
|
||
| nurseriesenhanced/ | 2 | 增强功能 |
|
||
| nursingexecution/ | 1 | 执行记录 |
|
||
| nursingquality/ | 1 | 质量指标 |
|
||
| assessmenttrend/ | 1 | 评估趋势 |
|
||
| vitalsignschart/ | 1 | 生命体征 |
|
||
|
||
### 2.2 缺失功能清单
|
||
|
||
| # | 功能 | 优先级 | 说明 |
|
||
|---|------|:------:|------|
|
||
| 1 | 管道滑脱风险评估 | P0 | Morse评分+管道分类+干预措施 |
|
||
| 2 | 营养风险筛查NRS2002 | P0 | BMI+疾病+营养评分 |
|
||
| 3 | 疼痛评估NRS/VAS | P1 | 数字评分+面部表情+部位定位 |
|
||
|
||
### 2.3 业务流程
|
||
|
||
#### 2.3.1 管道滑脱风险评估
|
||
|
||
```
|
||
入院评估 → 管道登记(类型/留置日期/固定方式)
|
||
↓
|
||
定期评估(Morse评分) → 风险分级(低/中/高)
|
||
↓
|
||
干预措施(标识/固定/宣教) → 效果评价 → 降低风险
|
||
```
|
||
|
||
#### 2.3.2 营养风险筛查NRS2002
|
||
|
||
```
|
||
入院24h内 → NRS2002筛查(BMI+疾病严重度+年龄)
|
||
↓
|
||
评分≥3分 → 营养不良风险 → 营养科会诊
|
||
评分<3分 → 每周复评
|
||
↓
|
||
营养干预 → 效果评价 → 复评
|
||
```
|
||
|
||
#### 2.3.3 疼痛评估NRS/VAS
|
||
|
||
```
|
||
入院评估 → 疼痛评估(NRS 0-10 / VAS / 面部表情)
|
||
↓
|
||
疼痛部位定位(人体图) → 疼痛性质/持续时间
|
||
↓
|
||
镇痛方案 → 效果评价 → 再评估
|
||
```
|
||
|
||
### 2.4 数据库设计
|
||
|
||
#### V48__nursing_assessment_tools.sql
|
||
|
||
```sql
|
||
CREATE TABLE nursing_pipe_risk_assessment (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
patient_id BIGINT NOT NULL,
|
||
encounter_id BIGINT NOT NULL,
|
||
pipe_type VARCHAR(50) NOT NULL,
|
||
pipe_name VARCHAR(200),
|
||
insertion_date DATE,
|
||
insertion_site VARCHAR(100),
|
||
fixation_method VARCHAR(100),
|
||
morse_score INTEGER DEFAULT 0,
|
||
risk_level VARCHAR(20) DEFAULT 'LOW',
|
||
intervention_measures TEXT,
|
||
assessment_date TIMESTAMP,
|
||
assessor_id BIGINT,
|
||
assessor_name VARCHAR(100),
|
||
next_assess_date TIMESTAMP,
|
||
status VARCHAR(20) DEFAULT 'ACTIVE',
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE nursing_nrs2002_screening (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
patient_id BIGINT NOT NULL,
|
||
encounter_id BIGINT NOT NULL,
|
||
bmi DECIMAL(5,2),
|
||
bmi_score INTEGER DEFAULT 0,
|
||
disease_severity INTEGER DEFAULT 0,
|
||
age_score INTEGER DEFAULT 0,
|
||
total_score INTEGER DEFAULT 0,
|
||
has_nutrition_risk VARCHAR(1) DEFAULT '0',
|
||
screening_date TIMESTAMP,
|
||
screener_id BIGINT,
|
||
screener_name VARCHAR(100),
|
||
next_screening_date TIMESTAMP,
|
||
referral_status VARCHAR(20),
|
||
referral_time TIMESTAMP,
|
||
dietitian_id BIGINT,
|
||
nutrition_plan TEXT,
|
||
outcome TEXT,
|
||
status VARCHAR(20) DEFAULT 'ACTIVE',
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE nursing_pain_assessment (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
patient_id BIGINT NOT NULL,
|
||
encounter_id BIGINT NOT NULL,
|
||
assessment_type VARCHAR(20) NOT NULL,
|
||
pain_score INTEGER,
|
||
pain_location VARCHAR(200),
|
||
pain_location_body_map TEXT,
|
||
pain_nature VARCHAR(100),
|
||
pain_duration VARCHAR(100),
|
||
pain_frequency VARCHAR(100),
|
||
aggravating_factors TEXT,
|
||
alleviating_factors TEXT,
|
||
impact_on_sleep VARCHAR(20),
|
||
impact_on_mood VARCHAR(20),
|
||
assessment_date TIMESTAMP,
|
||
assessor_id BIGINT,
|
||
assessor_name VARCHAR(100),
|
||
next_assess_date TIMESTAMP,
|
||
status VARCHAR(20) DEFAULT 'ACTIVE',
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE nursing_pain_intervention (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
pain_assessment_id BIGINT NOT NULL,
|
||
intervention_type VARCHAR(50) NOT NULL,
|
||
intervention_content TEXT,
|
||
effect_evaluation TEXT,
|
||
re_assessment_score INTEGER,
|
||
intervention_time TIMESTAMP,
|
||
operator_id BIGINT,
|
||
operator_name VARCHAR(100),
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
```
|
||
|
||
### 2.5 API接口设计
|
||
|
||
#### 2.5.1 管道滑脱风险评估
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/nursing/pipe-risk/page` | 评估记录分页 |
|
||
| POST | `/nursing/pipe-risk/add` | 新增管道评估 |
|
||
| PUT | `/nursing/pipe-risk/update` | 修改评估 |
|
||
| GET | `/nursing/pipe-risk/morse-guide` | Morse评分指南 |
|
||
| GET | `/nursing/pipe-risk/statistics` | 科室管道风险统计 |
|
||
|
||
#### 2.5.2 营养风险筛查NRS2002
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/nursing/nrs2002/page` | 筛查记录分页 |
|
||
| POST | `/nursing/nrs2002/add` | 新增筛查 |
|
||
| PUT | `/nursing/nrs2002/update` | 修改筛查 |
|
||
| POST | `/nursing/nrs2002/refer` | 营养科会诊转介 |
|
||
| GET | `/nursing/nrs2002/statistics` | 营养风险统计 |
|
||
|
||
#### 2.5.3 疼痛评估
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/nursing/pain/page` | 疼痛评估分页 |
|
||
| POST | `/nursing/pain/add` | 新增评估 |
|
||
| PUT | `/nursing/pain/update` | 修改评估 |
|
||
| POST | `/nursing/pain/intervene` | 疼痛干预 |
|
||
| GET | `/nursing/pain/trend` | 疼痛趋势 |
|
||
| GET | `/nursing/pain/statistics` | 疼痛统计 |
|
||
|
||
### 2.6 前端设计
|
||
|
||
| 页面 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| 管道风险评估 | `nursing/pipeRiskAssessment.vue` | 管道登记+Morse评分+风险分级 |
|
||
| NRS2002筛查 | `nursing/nrs2002Screening.vue` | BMI+疾病+年龄评分+转介 |
|
||
| 疼痛评估 | `nursing/painAssessment.vue` | NRS/VAS+人体图定位+干预 |
|
||
| 疼痛趋势 | `nursing/painTrend.vue` | 疼痛评分变化曲线 |
|
||
|
||
---
|
||
|
||
## 3. 护士站增强(inhospitalnursestation)
|
||
|
||
### 3.1 已有代码分析
|
||
|
||
**后端结构**
|
||
|
||
| 层级 | 文件 | 说明 |
|
||
|------|------|------|
|
||
| Controller | 6个 | AdviceProcess/ATDManage/EncounterAutoRoll/MedicineSummary/NurseBilling/OrgDeviceStockTake |
|
||
| AppService | 13个 | 完整的医嘱执行、记账、药品汇总 |
|
||
| Mapper | 6个 | 各子域持久化 |
|
||
|
||
**已有功能**: 医嘱执行处理、ATD管理、自动滚动、药品汇总、护士记账、设备盘点
|
||
|
||
**前端结构**
|
||
|
||
| 目录 | 文件数 | 说明 |
|
||
|------|:------:|------|
|
||
| inpatientNurse/ | 56 | 46个有script |
|
||
|
||
### 3.2 缺失功能清单
|
||
|
||
| # | 功能 | 优先级 | 说明 |
|
||
|---|------|:------:|------|
|
||
| 1 | 护理文书(一般/危重记录单) | P0 | 三甲评审必查 |
|
||
| 2 | 护理质量指标上报 | P1 | 跌倒/压疮/管滑/给药错误 |
|
||
| 3 | 护理交接班重点患者提示 | P1 | 危重/手术/新入/特殊患者 |
|
||
|
||
### 3.3 业务流程
|
||
|
||
#### 3.3.1 护理文书
|
||
|
||
```
|
||
选择患者 → 选择文书类型(一般/危重/手术)
|
||
↓
|
||
填写评估(生命体征+意识+皮肤+管道+心理)
|
||
↓
|
||
护理措施记录 → 签名(CA)
|
||
↓
|
||
保存/提交 → 护士长审核
|
||
```
|
||
|
||
#### 3.3.2 护理质量指标
|
||
|
||
```
|
||
每月统计 → 跌倒发生率/压疮发生率/管滑发生率/给药错误率
|
||
↓
|
||
科室填报 → 护理部审核 → 上报省卫健委
|
||
```
|
||
|
||
#### 3.3.3 交接班重点提示
|
||
|
||
```
|
||
交班护士 → 查看重点患者列表(危重/手术/新入/特殊)
|
||
↓
|
||
生成交班报告 → 接班护士确认 → 完成交接
|
||
```
|
||
|
||
### 3.4 数据库设计
|
||
|
||
#### V49__nurse_station_enhancement.sql
|
||
|
||
```sql
|
||
CREATE TABLE nursing_document (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
patient_id BIGINT NOT NULL,
|
||
encounter_id BIGINT NOT NULL,
|
||
document_type VARCHAR(50) NOT NULL,
|
||
document_date DATE NOT NULL,
|
||
shift VARCHAR(20),
|
||
vital_signs TEXT,
|
||
consciousness VARCHAR(50),
|
||
skin_condition VARCHAR(100),
|
||
pipes_status TEXT,
|
||
psychological_state TEXT,
|
||
nursing_measures TEXT,
|
||
special_notes TEXT,
|
||
sign_time TIMESTAMP,
|
||
signer_id BIGINT,
|
||
signer_name VARCHAR(100),
|
||
reviewer_id BIGINT,
|
||
reviewer_name VARCHAR(100),
|
||
review_time TIMESTAMP,
|
||
review_remark TEXT,
|
||
status VARCHAR(20) DEFAULT 'DRAFT',
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE nursing_quality_report (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
report_month VARCHAR(7) NOT NULL,
|
||
department_id BIGINT NOT NULL,
|
||
department_name VARCHAR(100),
|
||
indicator_type VARCHAR(50) NOT NULL,
|
||
indicator_name VARCHAR(200),
|
||
numerator INTEGER DEFAULT 0,
|
||
denominator INTEGER DEFAULT 0,
|
||
rate DECIMAL(8,4),
|
||
target_rate DECIMAL(8,4),
|
||
comparison_data TEXT,
|
||
improvement_measures TEXT,
|
||
reporter_id BIGINT,
|
||
reporter_name VARCHAR(100),
|
||
report_time TIMESTAMP,
|
||
reviewer_id BIGINT,
|
||
review_time TIMESTAMP,
|
||
review_remark TEXT,
|
||
status VARCHAR(20) DEFAULT 'DRAFT',
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE nursing_shift_patient (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
patient_id BIGINT NOT NULL,
|
||
encounter_id BIGINT NOT NULL,
|
||
department_id BIGINT NOT NULL,
|
||
patient_name VARCHAR(100),
|
||
bed_no VARCHAR(20),
|
||
admission_date DATE,
|
||
diagnosis TEXT,
|
||
priority_level VARCHAR(20) NOT NULL,
|
||
priority_reason TEXT,
|
||
key_nursing_points TEXT,
|
||
special_notes TEXT,
|
||
shift_date DATE NOT NULL,
|
||
shift_type VARCHAR(20) NOT NULL,
|
||
handover_nurse_id BIGINT,
|
||
handover_nurse_name VARCHAR(100),
|
||
receiver_nurse_id BIGINT,
|
||
receiver_nurse_name VARCHAR(100),
|
||
handover_time TIMESTAMP,
|
||
status VARCHAR(20) DEFAULT 'PENDING',
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
```
|
||
|
||
### 3.5 API接口设计
|
||
|
||
#### 3.5.1 护理文书
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/inhospital-nurse/document/page` | 文书分页列表 |
|
||
| POST | `/inhospital-nurse/document/add` | 新增文书 |
|
||
| PUT | `/inhospital-nurse/document/update` | 修改文书 |
|
||
| POST | `/inhospital-nurse/document/submit/{id}` | 提交审核 |
|
||
| POST | `/inhospital-nurse/document/review/{id}` | 护士长审核 |
|
||
| GET | `/inhospital-nurse/document/template/{type}` | 获取文书模板 |
|
||
|
||
#### 3.5.2 护理质量指标
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/inhospital-nurse/quality/page` | 质量报告分页 |
|
||
| POST | `/inhospital-nurse/quality/add` | 新增报告 |
|
||
| PUT | `/inhospital-nurse/quality/update` | 修改报告 |
|
||
| POST | `/inhospital-nurse/quality/submit/{id}` | 提交审核 |
|
||
| GET | `/inhospital-nurse/quality/trend` | 指标趋势 |
|
||
| GET | `/inhospital-nurse/quality/compare` | 科室对比 |
|
||
|
||
#### 3.5.3 交接班重点患者
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/inhospital-nurse/shift/priority-patients` | 重点患者列表 |
|
||
| POST | `/inhospital-nurse/shift/generate-report` | 生成交班报告 |
|
||
| POST | `/inhospital-nurse/shift/confirm` | 接班确认 |
|
||
| GET | `/inhospital-nurse/shift/history` | 交接班历史 |
|
||
|
||
### 3.6 前端设计
|
||
|
||
| 页面 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| 一般护理记录 | `inpatientNurse/nursingDocumentGeneral.vue` | 一般记录单表单+签名 |
|
||
| 危重护理记录 | `inpatientNurse/nursingDocumentCritical.vue` | 危重记录单+生命体征 |
|
||
| 质量指标上报 | `inpatientNurse/qualityIndicatorReport.vue` | 指标填报+趋势图 |
|
||
| 交接班管理 | `inpatientNurse/shiftManagement.vue` | 重点患者+交班报告 |
|
||
|
||
---
|
||
|
||
## 4. 检验LIS(lab + Inspection + labenhanced)
|
||
|
||
### 4.1 已有代码分析
|
||
|
||
**后端结构**
|
||
|
||
| 层级 | 文件 | 说明 |
|
||
|------|------|------|
|
||
| Controller (lab) | 5个 | InspectionPackage/InspectionType/LabActivityDefinition/LabEnhanced/LabHistory |
|
||
| Controller (Inspection) | 10个 | ClinicalManage/Icd10/Instrument/Laboratory/LabReferenceRange/LisConfig/ObservationDef/SampleCollect/SpecimenDef |
|
||
| AppService (lab) | 2个 | IInspectionPackageAppService/IInspectionTypeAppService |
|
||
| AppService (Inspection) | 12个 | 完整的检验业务编排 |
|
||
| Domain Entity | 18个 | InspectionLabApply/Observation/Specimen/LabInternalQc/LabExternalEqa/LabResultComparison/LabReferenceRange等 |
|
||
|
||
**已有数据库表(V19+V22+V30+V46)**
|
||
|
||
| 表名 | 来源 | 说明 |
|
||
|------|------|------|
|
||
| lab_internal_qc | V19 | 室内质控 |
|
||
| lab_external_eqa | V19 | 室间质评 |
|
||
| lab_result_comparison | V22 | 结果比对 |
|
||
| lab_reference_range | V30 | 参考范围 |
|
||
| lab_activity_def_device_def | V46 | 设备定义 |
|
||
|
||
**前端结构**
|
||
|
||
| 目录 | 文件数 | 说明 |
|
||
|------|:------:|------|
|
||
| inspection/ | 10 | 全部无script! |
|
||
| labenhanced/ | 6 | 全部有script |
|
||
| labhistory/ | 1 | 历史查询 |
|
||
|
||
### 4.2 缺失功能清单
|
||
|
||
| # | 功能 | 优先级 | 说明 |
|
||
|---|------|:------:|------|
|
||
| 1 | 室内质控Westgard规则 | P0 | 1-2s/1-3s/2-2s/R-4s/4-1s/10x |
|
||
| 2 | 室间质评 | P1 | 卫临检中心/省临检中心 |
|
||
| 3 | 检验报告标准格式打印 | P1 | 三甲要求标准格式 |
|
||
|
||
### 4.3 业务流程
|
||
|
||
#### 4.3.1 室内质控Westgard规则
|
||
|
||
```
|
||
每日质控 → 质控品检测 → 数据录入(L-J质控图)
|
||
↓
|
||
Westgard规则判断 → 失控(1-2s警告/1-3s失控/2-2s失控...)
|
||
↓
|
||
失控处理 → 原因分析 → 纠正措施 → 重新检测
|
||
↓
|
||
质控在控 → 发放报告
|
||
```
|
||
|
||
#### 4.3.2 室间质评
|
||
|
||
```
|
||
接收质评样本 → 检测 → 结果录入
|
||
↓
|
||
与靶值比对 → 计算偏倚 → 判定合格/不合格
|
||
↓
|
||
不合格分析 → 整改措施 → 效果验证
|
||
```
|
||
|
||
#### 4.3.3 检验报告打印
|
||
|
||
```
|
||
报告审核 → 选择打印格式 → 预览
|
||
↓
|
||
打印(含参考范围/印章/签名)
|
||
↓
|
||
打印记录归档
|
||
```
|
||
|
||
### 4.4 数据库设计
|
||
|
||
#### V50__lab_quality_control.sql
|
||
|
||
```sql
|
||
CREATE TABLE lab_qc_material (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
material_code VARCHAR(50) NOT NULL,
|
||
material_name VARCHAR(200) NOT NULL,
|
||
manufacturer VARCHAR(200),
|
||
lot_no VARCHAR(100),
|
||
expiration_date DATE,
|
||
target_values TEXT,
|
||
standard_deviation DECIMAL(10,4),
|
||
cv_coefficient DECIMAL(8,4),
|
||
level VARCHAR(20),
|
||
is_enabled VARCHAR(1) DEFAULT '1',
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE lab_qc_result (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
material_id BIGINT NOT NULL,
|
||
instrument_id BIGINT,
|
||
test_date DATE NOT NULL,
|
||
test_item VARCHAR(100) NOT NULL,
|
||
result_value DECIMAL(12,4),
|
||
target_value DECIMAL(12,4),
|
||
sd_value DECIMAL(10,4),
|
||
cv_value DECIMAL(8,4),
|
||
westgard_result VARCHAR(20),
|
||
westgard_rules TEXT,
|
||
is失控 VARCHAR(1) DEFAULT '0',
|
||
operator_id BIGINT,
|
||
operator_name VARCHAR(100),
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE lab_ea_participation (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
year INTEGER NOT NULL,
|
||
quarter VARCHAR(10),
|
||
organizer VARCHAR(200),
|
||
organizer_type VARCHAR(50),
|
||
test_item VARCHAR(100) NOT NULL,
|
||
sample_no VARCHAR(50),
|
||
target_value DECIMAL(12,4),
|
||
allowed_deviation DECIMAL(10,4),
|
||
submitted_value DECIMAL(12,4),
|
||
bias_value DECIMAL(10,4),
|
||
bias_rate DECIMAL(8,4),
|
||
result_grade VARCHAR(20),
|
||
is_pass VARCHAR(1) DEFAULT '1',
|
||
analysis TEXT,
|
||
corrective_action TEXT,
|
||
status VARCHAR(20) DEFAULT 'PENDING',
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE lab_report_print_log (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
report_id BIGINT NOT NULL,
|
||
patient_id BIGINT NOT NULL,
|
||
encounter_id BIGINT,
|
||
print_format VARCHAR(50) NOT NULL,
|
||
print_count INTEGER DEFAULT 1,
|
||
printer_id BIGINT,
|
||
printer_name VARCHAR(100),
|
||
print_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
```
|
||
|
||
### 4.5 API接口设计
|
||
|
||
#### 4.5.1 室内质控
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/lab/qc/material/page` | 质控品分页 |
|
||
| POST | `/lab/qc/material/add` | 新增质控品 |
|
||
| GET | `/lab/qc/result/page` | 质控结果分页 |
|
||
| POST | `/lab/qc/result/add` | 录入质控结果 |
|
||
| GET | `/lab/qc/lj-chart` | L-J质控图数据 |
|
||
| GET | `/lab/qc/westgard-check` | Westgard规则检查 |
|
||
| GET | `/lab/qc/statistics` | 质控统计 |
|
||
|
||
#### 4.5.2 室间质评
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/lab/ea/page` | 质评记录分页 |
|
||
| POST | `/lab/ea/add` | 新增质评记录 |
|
||
| PUT | `/lab/ea/update` | 修改质评记录 |
|
||
| GET | `/lab/ea/compare` | 靶值比对 |
|
||
| GET | `/lab/ea/statistics` | 质评统计 |
|
||
|
||
#### 4.5.3 报告打印
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/lab/report/preview/{id}` | 报告预览 |
|
||
| GET | `/lab/report/print/{id}` | 报告打印 |
|
||
| GET | `/lab/report/print-log` | 打印记录 |
|
||
|
||
### 4.6 前端设计
|
||
|
||
| 页面 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| 质控品管理 | `labenhanced/qcMaterialManage.vue` | 质控品CRUD |
|
||
| L-J质控图 | `labenhanced/ljQcChart.vue` | L-J质控图+Westgard判断 |
|
||
| 质控结果录入 | `labenhanced/qcResultEntry.vue` | 质控数据录入+自动判断 |
|
||
| 室间质评 | `labenhanced/eaParticipation.vue` | 质评记录+靶值比对 |
|
||
| 报告打印 | `labenhanced/reportPrint.vue` | 报告预览+打印+记录 |
|
||
|
||
---
|
||
|
||
## 5. 检查PACS(check + radiologyenhanced + radiologycomparison)
|
||
|
||
### 5.1 已有代码分析
|
||
|
||
**后端结构**
|
||
|
||
| 层级 | 文件 | 说明 |
|
||
|------|------|------|
|
||
| Controller | 10个 | CheckMethod/CheckPart/CheckType/ExamApply/ExamAppointment/LisGroupInfo/RadiologyComparison/RadiologyEnhanced/RadiologyImage/SpecimenBarcode |
|
||
| AppService | 8个 | 完整的检查申请、报告审核 |
|
||
| Domain Entity | 17个 | ExamApply/RadiologyImage/RadiologyImageReport/RadiologyImageComparison/DicomPrintRecord/RadiologyStatistics/RadiologyUrgentReport等 |
|
||
|
||
**已有数据库表(V19+V22+V30)**
|
||
|
||
| 表名 | 来源 | 说明 |
|
||
|------|------|------|
|
||
| radiology_image | V30 | 影像图片 |
|
||
| radiology_image_report | V30 | 影像报告 |
|
||
| radiology_statistics | V19 | 放射统计 |
|
||
| radiology_urgent_report | V19 | 急诊报告 |
|
||
| radiology_image_comparison | V22 | 影像对比 |
|
||
| dicom_print_record | V30 | DICOM打印 |
|
||
|
||
**前端结构**
|
||
|
||
| 目录 | 文件数 | 说明 |
|
||
|------|:------:|------|
|
||
| inspection/ | 10 | 全部无script |
|
||
| radiologyenhanced/ | 1 | 增强功能 |
|
||
| radiologycomparison/ | 1 | 影像对比 |
|
||
|
||
### 5.2 缺失功能清单
|
||
|
||
| # | 功能 | 优先级 | 说明 |
|
||
|---|------|:------:|------|
|
||
| 1 | DICOM图像采集存储 | P0 | WADO/DICOMweb协议 |
|
||
| 2 | 结构化图文报告 | P0 | 模板+结构化数据+签名 |
|
||
| 3 | 影像对比查看 | P1 | 同部位不同时期对比 |
|
||
| 4 | DICOM打印 | P1 | 胶片/纸张打印 |
|
||
|
||
### 5.3 业务流程
|
||
|
||
#### 5.3.1 DICOM图像采集存储
|
||
|
||
```
|
||
设备采集DICOM → 传输到PACS → 图像存储(FTP/对象存储)
|
||
↓
|
||
图像索引 → 关联检查申请 → 可浏览/下载
|
||
```
|
||
|
||
#### 5.3.2 结构化图文报告
|
||
|
||
```
|
||
选择模板 → 填写结构化字段 → 插入标注图像
|
||
↓
|
||
生成报告 → 三级审核(初审/复审/终审)
|
||
↓
|
||
签章(CA) → 发布 → 临床可查
|
||
```
|
||
|
||
#### 5.3.3 影像对比
|
||
|
||
```
|
||
选择患者 → 选择对比检查(同部位不同时期)
|
||
↓
|
||
左右分屏对比 → 标注/测量 → 保存对比记录
|
||
```
|
||
|
||
### 5.4 数据库设计
|
||
|
||
#### V51__pacs_enhancement.sql
|
||
|
||
```sql
|
||
CREATE TABLE pacs_image_storage (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
study_uid VARCHAR(200) NOT NULL,
|
||
series_uid VARCHAR(200),
|
||
instance_uid VARCHAR(200),
|
||
patient_id BIGINT NOT NULL,
|
||
encounter_id BIGINT,
|
||
exam_apply_id BIGINT,
|
||
image_path VARCHAR(500),
|
||
storage_type VARCHAR(20) DEFAULT 'LOCAL',
|
||
file_size BIGINT,
|
||
modality VARCHAR(20),
|
||
body_part VARCHAR(100),
|
||
study_date TIMESTAMP,
|
||
wado_uri VARCHAR(500),
|
||
status VARCHAR(20) DEFAULT 'STORED',
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE pacs_structured_report (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
patient_id BIGINT NOT NULL,
|
||
encounter_id BIGINT,
|
||
exam_apply_id BIGINT NOT NULL,
|
||
report_template_id BIGINT,
|
||
report_type VARCHAR(50) NOT NULL,
|
||
structured_data JSONB,
|
||
findings TEXT,
|
||
impression TEXT,
|
||
recommendation TEXT,
|
||
report_images TEXT,
|
||
report_status VARCHAR(20) DEFAULT 'DRAFT',
|
||
first_reviewer_id BIGINT,
|
||
first_review_time TIMESTAMP,
|
||
second_reviewer_id BIGINT,
|
||
second_review_time TIMESTAMP,
|
||
final_reviewer_id BIGINT,
|
||
final_review_time TIMESTAMP,
|
||
sign_time TIMESTAMP,
|
||
signer_id BIGINT,
|
||
signer_name VARCHAR(100),
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE pacs_report_template (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
template_name VARCHAR(200) NOT NULL,
|
||
report_type VARCHAR(50) NOT NULL,
|
||
body_part VARCHAR(100),
|
||
structured_fields JSONB,
|
||
template_content TEXT,
|
||
is_default VARCHAR(1) DEFAULT '0',
|
||
is_enabled VARCHAR(1) DEFAULT '1',
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE pacs_comparison_record (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
patient_id BIGINT NOT NULL,
|
||
current_exam_id BIGINT NOT NULL,
|
||
comparison_exam_id BIGINT NOT NULL,
|
||
comparison_type VARCHAR(20) DEFAULT 'SIDE_BY_SIDE',
|
||
annotations TEXT,
|
||
measurements TEXT,
|
||
conclusion TEXT,
|
||
operator_id BIGINT,
|
||
operator_name VARCHAR(100),
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
```
|
||
|
||
### 5.5 API接口设计
|
||
|
||
#### 5.5.1 DICOM图像
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/check/pacs/image/page` | 图像分页列表 |
|
||
| POST | `/check/pacs/image/store` | 存储图像 |
|
||
| GET | `/check/pacs/image/wado/{studyUid}` | WADO查询 |
|
||
| GET | `/check/pacs/image/series/{studyUid}` | 序列查询 |
|
||
|
||
#### 5.5.2 结构化报告
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/check/pacs/report/template/page` | 模板分页 |
|
||
| POST | `/check/pacs/report/template/add` | 新增模板 |
|
||
| GET | `/check/pacs/report/page` | 报告分页 |
|
||
| POST | `/check/pacs/report/add` | 新增报告 |
|
||
| PUT | `/check/pacs/report/update` | 修改报告 |
|
||
| POST | `/check/pacs/report/review/{id}` | 审核报告 |
|
||
| POST | `/check/pacs/report/sign/{id}` | 签章 |
|
||
| GET | `/check/pacs/report/preview/{id}` | 报告预览 |
|
||
|
||
#### 5.5.3 影像对比
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| POST | `/check/pacs/comparison/add` | 新增对比记录 |
|
||
| GET | `/check/pacs/comparison/history/{patientId}` | 对比历史 |
|
||
| GET | `/check/pacs/comparison/images` | 对比图像 |
|
||
|
||
### 5.6 前端设计
|
||
|
||
| 页面 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| DICOM浏览 | `radiologyenhanced/dicomViewer.vue` | 图像浏览+序列选择+工具栏 |
|
||
| 结构化报告 | `radiologyenhanced/structuredReport.vue` | 模板选择+结构化填写+签章 |
|
||
| 报告模板管理 | `radiologyenhanced/reportTemplate.vue` | 模板CRUD+字段配置 |
|
||
| 影像对比 | `radiologycomparison/comparisonView.vue` | 左右分屏+标注+测量 |
|
||
|
||
---
|
||
|
||
## 6. ESB集成平台(esbmanage)
|
||
|
||
### 6.1 已有代码分析
|
||
|
||
**后端结构**
|
||
|
||
| 层级 | 文件 | 说明 |
|
||
|------|------|------|
|
||
| Controller | 4个 | EsbMessage/EsbReliability/EsbServiceRegistry/FhirCda |
|
||
| Domain Entity | 7个 | EsbMessage/EsbServiceRegistry/EsbDeadLetter/EsbMonitorStats/FhirResource/CdaDocument/CodeMapping |
|
||
|
||
**已有数据库表(V13+V18+V29+V39)**
|
||
|
||
| 表名 | 来源 | 说明 |
|
||
|------|------|------|
|
||
| sys_esb_message | V13 | ESB消息 |
|
||
| sys_esb_service_registry | V13 | 服务注册 |
|
||
| esb_cda_document | V18 | CDA文档 |
|
||
| esb_code_mapping | V18 | 编码映射 |
|
||
| esb_fhir_resource | V18 | FHIR资源 |
|
||
| esb_dead_letter | V29 | 死信队列 |
|
||
| esb_monitor_stats | V29 | 监控统计 |
|
||
|
||
**前端结构**
|
||
|
||
| 目录 | 文件数 | 说明 |
|
||
|------|:------:|------|
|
||
| esbmanage/ | 4 | 全部有script |
|
||
| fhircda/ | 1 | FHIR/CDA |
|
||
|
||
### 6.2 缺失功能清单
|
||
|
||
| # | 功能 | 优先级 | 说明 |
|
||
|---|------|:------:|------|
|
||
| 1 | HL7 FHIR R4消息转换 | P0 | 互联互通测评核心 |
|
||
| 2 | CDA临床文档生成 | P0 | C-CDA/PIX/PDQ |
|
||
| 3 | 编码映射逻辑 | P0 | ICD-10/CPT/LOINC映射 |
|
||
| 4 | 集成监控仪表盘 | P1 | 消息流量/成功率/延迟 |
|
||
| 5 | 消息可靠性 | P1 | 重试/去重/顺序保证 |
|
||
| 6 | 接口版本管理 | P1 | 版本控制/兼容性 |
|
||
|
||
### 6.3 业务流程
|
||
|
||
#### 6.3.1 FHIR R4消息转换
|
||
|
||
```
|
||
HIS内部数据 → FHIR资源映射(Patient/Encounter/Observation)
|
||
↓
|
||
FHIR JSON/XML → 校验 → 发送到外部系统
|
||
↓
|
||
响应处理 → 状态更新 → 日志归档
|
||
```
|
||
|
||
#### 6.3.2 CDA临床文档
|
||
|
||
```
|
||
临床数据采集 → CDA模板填充 → 生成C-CDA文档
|
||
↓
|
||
数字签名 → XML封装 → 发送/存储
|
||
↓
|
||
接收方验证 → 解析 → 导入
|
||
```
|
||
|
||
#### 6.3.3 编码映射
|
||
|
||
```
|
||
内部编码 → 映射表查询 → 目标编码
|
||
↓
|
||
映射失败 → 人工映射 → 更新映射表
|
||
↓
|
||
统计映射成功率 → 优化映射规则
|
||
```
|
||
|
||
### 6.4 数据库设计
|
||
|
||
#### V52__esb_enhancement.sql
|
||
|
||
```sql
|
||
CREATE TABLE esb_fhir_mapping (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
resource_type VARCHAR(50) NOT NULL,
|
||
his_entity VARCHAR(100) NOT NULL,
|
||
his_field VARCHAR(100) NOT NULL,
|
||
fhir_path VARCHAR(200) NOT NULL,
|
||
fhir_datatype VARCHAR(50),
|
||
transform_rule TEXT,
|
||
is_required VARCHAR(1) DEFAULT '0',
|
||
is_enabled VARCHAR(1) DEFAULT '1',
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE esb_cda_template (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
template_code VARCHAR(50) NOT NULL,
|
||
template_name VARCHAR(200) NOT NULL,
|
||
template_type VARCHAR(50) NOT NULL,
|
||
cda_version VARCHAR(20) DEFAULT 'C-CDA',
|
||
template_content TEXT,
|
||
field_mappings JSONB,
|
||
is_default VARCHAR(1) DEFAULT '0',
|
||
is_enabled VARCHAR(1) DEFAULT '1',
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE esb_integration_log (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
message_id BIGINT,
|
||
service_code VARCHAR(100),
|
||
direction VARCHAR(10) NOT NULL,
|
||
source_system VARCHAR(100),
|
||
target_system VARCHAR(100),
|
||
request_payload TEXT,
|
||
response_payload TEXT,
|
||
http_status INTEGER,
|
||
response_time_ms INTEGER,
|
||
status VARCHAR(20) NOT NULL,
|
||
error_message TEXT,
|
||
retry_count INTEGER DEFAULT 0,
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
|
||
CREATE TABLE esb_version_config (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
service_code VARCHAR(100) NOT NULL,
|
||
version VARCHAR(20) NOT NULL,
|
||
protocol VARCHAR(50),
|
||
endpoint_url VARCHAR(500),
|
||
is_current VARCHAR(1) DEFAULT '0',
|
||
is_enabled VARCHAR(1) DEFAULT '1',
|
||
deprecation_date DATE,
|
||
compatibility_notes TEXT,
|
||
create_by VARCHAR(64),
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
update_by VARCHAR(64),
|
||
update_time TIMESTAMP,
|
||
del_flag VARCHAR(1) DEFAULT '0'
|
||
);
|
||
```
|
||
|
||
### 6.5 API接口设计
|
||
|
||
#### 6.5.1 FHIR映射
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/esb/fhir/mapping/page` | 映射规则分页 |
|
||
| POST | `/esb/fhir/mapping/add` | 新增映射 |
|
||
| PUT | `/esb/fhir/mapping/update` | 修改映射 |
|
||
| POST | `/esb/fhir/convert` | 数据转换 |
|
||
| GET | `/esb/fhir/resource/{type}/{id}` | FHIR资源查询 |
|
||
| POST | `/esb/fhir/resource/{type}` | 创建FHIR资源 |
|
||
|
||
#### 6.5.2 CDA文档
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/esb/cda/template/page` | 模板分页 |
|
||
| POST | `/esb/cda/template/add` | 新增模板 |
|
||
| POST | `/esb/cda/generate` | 生成CDA文档 |
|
||
| GET | `/esb/cda/document/{id}` | 获取CDA文档 |
|
||
| POST | `/esb/cda/sign/{id}` | 签章 |
|
||
| POST | `/esb/cda/validate` | 文档验证 |
|
||
|
||
#### 6.5.3 编码映射
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/esb/code-mapping/page` | 映射表分页 |
|
||
| POST | `/esb/code-mapping/add` | 新增映射 |
|
||
| PUT | `/esb/code-mapping/update` | 修改映射 |
|
||
| POST | `/esb/code-mapping/translate` | 编码翻译 |
|
||
| GET | `/esb/code-mapping/statistics` | 映射统计 |
|
||
|
||
#### 6.5.4 监控与版本
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| GET | `/esb/monitor/dashboard` | 监控仪表盘 |
|
||
| GET | `/esb/monitor/flow` | 消息流量 |
|
||
| GET | `/esb/monitor/error-rate` | 错误率统计 |
|
||
| GET | `/esb/version/page` | 版本配置分页 |
|
||
| POST | `/esb/version/add` | 新增版本 |
|
||
| PUT | `/esb/version/update` | 修改版本 |
|
||
| POST | `/esb/version/switch/{id}` | 切换版本 |
|
||
|
||
### 6.6 前端设计
|
||
|
||
| 页面 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| FHIR映射管理 | `esbmanage/fhirMapping.vue` | 映射规则CRUD+测试转换 |
|
||
| CDA文档管理 | `esbmanage/cdaDocument.vue` | 模板管理+文档生成+签章 |
|
||
| 编码映射 | `esbmanage/codeMapping.vue` | 映射表+翻译测试 |
|
||
| 集成监控 | `esbmanage/integrationDashboard.vue` | 流量/成功率/延迟大屏 |
|
||
| 版本管理 | `esbmanage/versionManage.vue` | 版本配置+切换 |
|
||
|
||
---
|
||
|
||
## 附录A: Flyway迁移脚本汇总
|
||
|
||
| 版本 | 文件名 | 路径 | 内容 |
|
||
|------|--------|------|------|
|
||
| V47 | `V47__infection_rule_engine.sql` | `healthlink-his-application/src/main/resources/db/migration/` | 院感筛查规则/筛查记录/ICU日志/SSI追踪/手卫生依从 |
|
||
| V48 | `V48__nursing_assessment_tools.sql` | 同上 | 管道风险/NRS2002/疼痛评估/疼痛干预 |
|
||
| V49 | `V49__nurse_station_enhancement.sql` | 同上 | 护理文书/质量报告/交接班重点患者 |
|
||
| V50 | `V50__lab_quality_control.sql` | 同上 | 质控品/质控结果/室间质评/打印日志 |
|
||
| V51 | `V51__pacs_enhancement.sql` | 同上 | DICOM存储/结构化报告/报告模板/影像对比 |
|
||
| V52 | `V52__esb_enhancement.sql` | 同上 | FHIR映射/CDA模板/集成日志/版本配置 |
|
||
|
||
## 附录B: API接口清单
|
||
|
||
| 模块 | 新增接口数 | 路径前缀 |
|
||
|------|:---------:|----------|
|
||
| 院感管理 | 16 | `/infection/` |
|
||
| 护理评估 | 14 | `/nursing/` |
|
||
| 护士站增强 | 13 | `/inhospital-nurse/` |
|
||
| 检验LIS | 15 | `/lab/` |
|
||
| 检查PACS | 15 | `/check/pacs/` |
|
||
| ESB集成 | 20 | `/esb/` |
|
||
| **合计** | **93** | — |
|
||
|
||
---
|
||
|
||
> **文档版本**: v1.0
|
||
> **最后更新**: 2026-06-17
|
||
> **下次评审**: Phase 2 Sprint 1 开始前
|