Files
his/MD/INHOSPITAL_MODULE_CONSOLIDATION.md
chenqi 575f5d6c32 fix(database): 修复数据库字典重复和表结构缺失问题
- 删除手术状态下拉框的重复字典数据,保留每组中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字段以完善审计信息
- 更新院感管理和评审保障模块的设计文档,明确各模块实现状态和缺失功能
2026-06-17 11:46:56 +08:00

182 lines
7.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 住院模块整合方案
> 版本: 1.0 | 日期: 2026-06-14 | 状态: 待确认
---
## 一、现状诊断
### 1.1 三个入口的实际内容
| 入口 | 菜单ID | 实际内容 | 代码量 | 后端 |
|------|--------|---------|--------|------|
| **住院医生工作站** | 288 | 8个tab集成EMR + 诊断 + 医嘱 + 检验/检查/手术/输血申请 + 报告 | 诊断1072行 + 医嘱2971行 + EMR1139行 | `doctor-station/*` `reg-doctorstation/*` `document/*` |
| **住院医生增强** | 20171 | 只有1个子菜单住院病历(EMR) | 和工作站共用同一个emr/index.vue | `document/*` |
| **住院增强** | 20221 | 6个独立子模块1个已禁用 | 各模块独立代码 | 混用多套后端 |
### 1.2 住院增强子模块完成度
| 子模块 | 状态 | 实际功能 | 后端接口 | 与工作站重叠度 |
|--------|------|---------|---------|--------------|
| 住院结算 | 可用 | 完整结算流程(中途/出院/取消) | `/in-hospital-charge/*` | **无重叠**(工作站没有) |
| 费用类型转换 | 可用 | 费用性质转换 | `/in-hospital-charge/*` | **无重叠**(工作站没有) |
| 住院诊断 | 可用 | 简易CRUD手输就诊ID无诊断树 | `/inpatient-manage/diagnosis/*` | **高重叠**(工作站有完整版) |
| ~~住院病历~~ | 已禁用 | 静态假数据原型 | 无 | 已禁用 |
| 医嘱管理 | 可用 | 只读 + 停嘱/恢复/签退 | `/reg-doctorstation/*` | **高重叠**(工作站有完整版) |
| 住院手术 | 可用 | 完整CRUD + 状态流转 | `/clinical-manage/surgery/*` | **无重叠**(工作站只有手术申请) |
### 1.3 核心问题
1. **命名误导**"增强"暗示是原版的升级,实际是**并行的独立模块**
2. **功能重复**:诊断、医嘱在两个入口都有,但实现和后端完全不同
3. **体验割裂**住院增强的子模块没有统一患者选择器每个模块手动输就诊ID
4. **代码冗余**:住院增强的诊断/医嘱是工作站的**降级复制品**
---
## 二、整合方案
### 2.1 设计原则
- **一个医生入口**:医生的所有住院操作在一个页面完成
- **按角色分离**:护士/收费员/管理员有独立入口
- **共享后端**:同一业务逻辑只有一套后端接口
- **保留独立模块**:手术管理、结算等独有功能保留为独立入口
### 2.2 目标架构
```
住院管理 (235)
├── 住院医生工作站 (288) ← 唯一的医生入口,保持现状
│ ├── 住院病历 (EMR)
│ ├── 诊断录入
│ ├── 临床医嘱
│ ├── 检验/检查/手术/输血申请
│ └── 报告查询
├── 住院护士工作站 (新建) ← 护士独立入口
│ ├── 护理记录
│ ├── 生命体征
│ └── 医嘱执行
├── 住院手术管理 (20228) ← 保留独立入口(独有功能)
├── 住院结算 (20222) ← 保留独立入口(独有功能)
├── 费用类型转换 (20223) ← 保留独立入口(独有功能)
└── 住院医生增强 (20171) ← 废弃,删除菜单
```
### 2.3 具体操作
#### 第一步废弃「住院医生增强」0代码改动
`住院医生增强` 只是 EMR 的快捷方式,医生工作站已有完整 EMR tab。
```sql
-- 停用菜单 20171住院医生增强及其子菜单 20172住院病历
UPDATE sys_menu SET status = 1, visible = 1 WHERE menu_id IN (20171, 20172);
```
**影响**:无。医生工作站的 EMR tab 不受影响。
#### 第二步:废弃「住院增强」中的重复模块
| 子模块 | 操作 | 原因 |
|--------|------|------|
| 住院诊断 (20224) | 停用 | 医生工作站诊断录入已完整覆盖(含诊断树、中医、食源性疾病) |
| 医嘱管理 (20226) | 停用 | 医生工作站临床医嘱已完整覆盖(含新增、签发、组套) |
| 住院病历 (20225) | 已停用 | 静态原型 |
```sql
-- 停用重复模块
UPDATE sys_menu SET status = 1, visible = 1 WHERE menu_id IN (20224, 20226);
```
#### 第三步:保留「住院增强」中的独有模块
| 子模块 | 操作 | 原因 |
|--------|------|------|
| 住院结算 (20222) | 保留 | 医生工作站没有结算功能 |
| 费用类型转换 (20223) | 保留 | 医生工作站没有此功能 |
| 住院手术 (20228) | 保留 | 医生工作站只有手术申请,没有手术管理(状态流转) |
#### 第四步:清理「住院增强」目录结构
停用重复模块后,`住院增强` 目录下只剩 3 个有效子模块。考虑重命名目录为更准确的名称:
```sql
-- 重命名目录为更准确的名称
UPDATE sys_menu SET menu_name = '住院辅助功能', path = 'inHospitalAuxiliary'
WHERE menu_id = 20221;
```
---
## 三、对比详情
### 3.1 诊断模块对比
| 能力 | 医生工作站诊断 | 住院增强诊断 |
|------|--------------|------------|
| 诊断树ICD编码 | ✅ 树形选择 | ❌ 手动输入 |
| 中医诊断 | ✅ 完整支持 | ❌ 不支持 |
| 西医诊断 | ✅ 完整支持 | ✅ 基本支持 |
| 诊断排序 | ✅ 可调整 | ❌ 不支持 |
| 主诊断标记 | ✅ | ✅ |
| 食源性疾病上报 | ✅ 自动触发 | ❌ 不支持 |
| 历史/常用诊断 | ✅ 分类展示 | ❌ 不支持 |
| 患者选择 | ✅ 左侧患者列表 | ❌ 手动输就诊ID |
**结论**:住院增强诊断是医生工作站诊断的**降级版**,没有保留价值。
### 3.2 医嘱模块对比
| 能力 | 医生工作站医嘱 | 住院增强医嘱 |
|------|--------------|------------|
| 新增医嘱 | ✅ 完整表单(药品/项目/用法/频次) | ❌ 不支持 |
| 签发处方 | ✅ | ❌ 不支持 |
| 组套管理 | ✅ | ❌ 不支持 |
| 历史医嘱 | ✅ | ✅ |
| 停嘱/恢复 | ✅ | ✅ |
| 签退 | ✅ | ✅ |
| 组合/拆组 | ✅ | ❌ 不支持 |
| 转科/出院 | ✅ | ❌ 不支持 |
| 费用性质选择 | ✅ | ❌ 不支持 |
| 患者选择 | ✅ 左侧患者列表 | ✅ 左侧患者列表 |
**结论**:住院增强医嘱只能看和停,不能开。是医生工作站的**只读子集**。
### 3.3 手术模块对比
| 能力 | 医生工作站 | 住院增强手术 |
|------|-----------|------------|
| 手术申请 | ✅(作为申请单) | ❌ 不支持申请 |
| 手术管理 | ❌ 无 | ✅ 完整CRUD + 状态流转 |
| 手术排期 | ❌ 无 | ✅ 计划时间 |
| 状态流转 | ❌ 无 | ✅ 待手术→手术中→已完成 |
**结论**:两者是**互补关系**,不是重复。手术管理是独有功能,应保留。
---
## 四、后续优化建议(不在本次范围)
1. **统一患者选择器**:将 `PatientList` 组件抽为全局共享,所有住院模块复用
2. **护士工作站独立化**:目前护理功能散落在医生工作站的 tab 中,应独立为护士入口
3. **手术申请→手术管理联动**:医生工作站的手术申请完成后,自动同步到手术管理模块
4. **结算与医嘱联动**:医嘱签发后自动计入费用,减少人工操作
---
## 五、执行清单
| 序号 | 操作 | 风险 | 验证 |
|------|------|------|------|
| 1 | 停用菜单 20171, 20172住院医生增强 | 无 | 刷新侧边栏确认不显示 |
| 2 | 停用菜单 20224住院诊断 | 低 | 确认无其他模块引用 |
| 3 | 停用菜单 20226医嘱管理 | 低 | 确认无其他模块引用 |
| 4 | 重命名菜单 20221住院增强→住院辅助功能 | 无 | 刷新侧边栏确认名称更新 |
| 5 | 清理已禁用模块的前端代码(可选) | 低 | 编译通过 |
> ⚠️ 所有操作通过 SQL 菜单调整,不涉及代码改动,可随时回滚。