Files
his/手术管理模块开发说明.md
chenqi 4d4828ea71 feat(login): 添加租户名称获取功能并优化前端布局
- 在登录控制器中注入租户服务并获取租户名称信息
- 添加租户名称到登录响应结果中
- 更新样式变量定义侧边栏宽度和Logo高度
- 重构公告面板组件统一公告通知显示逻辑
- 简化公告类型图标和样式映射关系
- 更新侧边栏为垂直菜单布局并添加折叠功能
- 优化Logo组件显示租户名称和系统标题
- 调整导航栏布局结构和响应式样式
- 重构主应用容器样式和标签页显示逻辑
2025-12-31 10:28:52 +08:00

9.6 KiB
Raw Blame History

手术管理模块开发说明

模块概述

手术管理模块是一个完整的医疗手术管理系统涵盖从手术排期、执行到记录的全流程管理。本模块基于经典的Spring Boot + Vue3前后端分离架构开发。

功能特性

1. 手术信息管理

  • 手术基本信息录入(手术名称、编码、类型、等级)
  • 患者信息关联
  • 就诊信息关联
  • 手术部位描述

2. 手术团队管理

  • 主刀医生选择
  • 麻醉医生选择
  • 助手1/助手2选择
  • 巡回护士选择
  • 麻醉方式选择

3. 手术状态管理

  • 待排期
  • 已排期
  • 手术中
  • 已完成
  • 已取消
  • 暂停

4. 手术时间管理

  • 计划手术时间
  • 实际开始时间
  • 实际结束时间

5. 诊断信息管理

  • 术前诊断
  • 术后诊断
  • 手术经过描述
  • 术后医嘱
  • 并发症描述

6. 手术费用管理

  • 手术费用
  • 麻醉费用
  • 总费用自动计算

7. 手术切口管理

  • 切口等级I级、II级、III级、IV级
  • 愈合等级(甲级、乙级、丙级)

技术架构

后端技术栈

  • Spring Boot 2.x
  • MyBatis Plus
  • PostgreSQL 12+
  • JDK 1.8+

前端技术栈

  • Vue 3.x
  • Element Plus
  • Axios
  • Vite

目录结构

openh-is/
├── openhis-server-new/                 # 后端项目
│   ├── openhis-domain/                  # 领域层
│   │   └── src/main/java/com/openhis/
│   │       ├── clinical/
│   │       │   ├── domain/
│   │       │   │   └── Surgery.java           # 手术实体类
│   │       │   ├── mapper/
│   │       │   │   └── SurgeryMapper.java     # 手术Mapper接口
│   │       │   └── service/
│   │       │       ├── ISurgeryService.java   # 手术Service接口
│   │       │       └── impl/
│   │       │           └── SurgeryServiceImpl.java  # 手术Service实现
│   │       └── common/                     # 公共模块
│   │           └── src/main/java/com/openhis/common/
│   │               └── enums/               # 枚举类
│   │                   ├── SurgeryTypeEnum.java         # 手术类型枚举
│   │                   ├── SurgeryStatusEnum.java       # 手术状态枚举
│   │                   ├── SurgeryLevelEnum.java        # 手术等级枚举
│   │                   ├── AnesthesiaTypeEnum.java      # 麻醉方式枚举
│   │                   ├── IncisionLevelEnum.java       # 切口等级枚举
│   │                   └── HealingLevelEnum.java        # 愈合等级枚举
│   │
│   ├── openhis-application/              # 应用层
│   │   └── src/main/java/com/openhis/web/clinicalmanage/
│   │       ├── controller/
│   │       │   └── SurgeryController.java    # 手术控制器
│   │       ├── dto/
│   │       │   └── SurgeryDto.java           # 手术数据传输对象
│   │       ├── appservice/
│   │       │   ├── ISurgeryAppService.java  # 手术应用服务接口
│   │       │   └── impl/
│   │       │       └── SurgeryAppServiceImpl.java  # 手术应用服务实现
│   │       └── mapper/
│   │           └── SurgeryAppMapper.java   # 手术应用Mapper
│   │
│   └── src/main/resources/mapper/
│       ├── clinical/
│       │   └── SurgeryMapper.xml           # 手术Mapper XML
│       └── clinicalmanage/
│           └── SurgeryMapper.xml            # 手术应用Mapper XML
│
├── openhis-ui-vue3/                      # 前端项目
│   └── src/
│       ├── api/
│       │   └── surgerymanage.js            # 手术API接口
│       └── views/
│           └── surgerymanage/
│               └── index.vue               # 手术管理页面
│
└── surgery_manage_init.sql                # 数据库初始化脚本

数据库设计

主表cli_surgery手术管理表

字段名 类型 说明
id bigint 主键ID
surgery_no varchar(50) 手术编号(唯一)
patient_id bigint 患者ID
patient_name varchar(100) 患者姓名
encounter_id bigint 就诊ID
surgery_name varchar(200) 手术名称
surgery_code varchar(100) 手术编码
surgery_type_enum int2 手术类型
surgery_level int2 手术等级
status_enum int2 手术状态
planned_time timestamp 计划手术时间
actual_start_time timestamp 实际开始时间
actual_end_time timestamp 实际结束时间
main_surgeon_id bigint 主刀医生ID
main_surgeon_name varchar(100) 主刀医生姓名
anesthetist_id bigint 麻醉医生ID
anesthetist_name varchar(100) 麻醉医生姓名
anesthesia_type_enum int2 麻醉方式
body_site varchar(200) 手术部位
preoperative_diagnosis text 术前诊断
postoperative_diagnosis text 术后诊断
surgery_fee numeric(10,2) 手术费用
anesthesia_fee numeric(10,2) 麻醉费用
total_fee numeric(10,2) 总费用

字典表

手术管理模块包含以下字典类型:

  • surgery_status手术状态
  • surgery_type手术类型
  • surgery_level手术等级
  • anesthesia_type麻醉方式
  • incision_level切口等级
  • healing_level愈合等级

安装部署

1. 数据库初始化

执行SQL脚本初始化数据库表和字典数据

psql -U postgres -d his_database -f surgery_manage_init.sql

或者使用psql客户端执行

\i /path/to/surgery_manage_init.sql

2. 后端配置

  1. 将后端代码复制到对应目录
  2. 修改数据库连接配置application.yml
  3. 启动Spring Boot应用

3. 前端配置

  1. 将前端代码复制到对应目录
  2. 配置API接口地址.env.development
  3. 启动前端开发服务器
npm install
npm run dev

API接口说明

1. 分页查询手术列表

接口地址: GET /clinical-manage/surgery/surgery-page

请求参数:

{
  "pageNo": 1,
  "pageSize": 10,
  "surgeryNo": "SS20251230001",
  "surgeryName": "阑尾切除术",
  "patientName": "张三",
  "statusEnum": 1,
  "surgeryTypeEnum": 2
}

2. 查询手术详情

接口地址: GET /clinical-manage/surgery/surgery-detail

请求参数:

id: 手术ID

3. 新增手术

接口地址: POST /clinical-manage/surgery/surgery

请求参数:

{
  "patientId": 1,
  "surgeryName": "阑尾切除术",
  "surgeryCode": "ICD-9-CM:47.09",
  "surgeryTypeEnum": 2,
  "surgeryLevel": 2,
  "plannedTime": "2025-12-31 09:00:00",
  "mainSurgeonId": 10,
  "anesthetistId": 11,
  "anesthesiaTypeEnum": 3,
  "bodySite": "腹部"
}

4. 修改手术

接口地址: PUT /clinical-manage/surgery/surgery

请求参数: 同新增手术需包含id

5. 删除手术

接口地址: DELETE /clinical-manage/surgery/surgery

请求参数:

id: 手术ID

6. 更新手术状态

接口地址: PUT /clinical-manage/surgery/surgery-status

请求参数:

id: 手术ID
statusEnum: 状态值

前端页面功能

1. 查询功能

  • 支持按手术编号、手术名称、患者姓名模糊查询
  • 支持按手术状态、手术类型精确查询
  • 支持按计划时间范围查询

2. 新增功能

  • 完整的手术信息录入表单
  • 患者下拉选择
  • 医生/护士下拉选择
  • 费用自动计算

3. 编辑功能

  • 仅待排期和已排期状态的手术可编辑
  • 手术中或已完成的手术不可编辑

4. 状态流转

  • 已排期 → 手术中
  • 手术中 → 已完成
  • 待排期/已排期 → 已取消

5. 删除功能

  • 仅待排期和已排期状态的手术可删除
  • 已完成的手术不能删除

扩展开发建议

1. 手术排期管理

  • 可增加手术排期日历视图
  • 手术室资源冲突检测
  • 手术排队优先级管理

2. 手术统计报表

  • 手术量统计
  • 手术类型分布
  • 手术成功率统计
  • 手术费用统计

3. 手术文档管理

  • 手术知情同意书
  • 手术安全核查表
  • 手术记录单
  • 麻醉记录单

4. 手术质控管理

  • 手术质量评估
  • 并发症统计
  • 术后恢复跟踪
  • 手术质量指标管理

注意事项

  1. 手术编号生成手术编号采用自动生成机制格式为SS + 10位数字
  2. 权限控制:需要配置相应的菜单权限和操作权限
  3. 数据校验:新增手术时必须选择患者和主刀医生
  4. 状态流转:手术状态的流转需要符合业务逻辑
  5. 费用计算:总费用自动计算,不允许手动修改

常见问题

Q1: 手术编号重复怎么办?

A: 手术编号是系统自动生成的唯一编号不会重复。如果需要自定义编号需要修改SurgeryServiceImpl中的生成逻辑。

Q2: 如何添加新的手术类型?

A: 在数据库sys_dict_data表中添加新的surgery_type字典数据即可。

Q3: 手术开始后还能修改信息吗?

A: 根据业务规则,手术开始后不允许修改基本信息,但可以补充术后诊断等信息。

Q4: 如何实现手术室资源管理?

A: 可以新增手术室管理模块,建立手术排期与手术室的关联关系,实现资源冲突检测。

版本历史

  • v1.0.0 (2025-12-30)
    • 初始版本发布
    • 实现手术基本管理功能
    • 实现手术状态流转
    • 实现手术团队管理

联系方式

如有问题或建议,请联系开发团队。