Files
HIS-GUI/docs/readme.md
2026-03-30 17:38:36 +08:00

5.8 KiB
Raw Permalink Blame History

《HIS 医疗管理系统设计说明书2025级

(需求功能与系统约定)


一、系统概述

本系统为一个面向小型医院的轻量级医疗信息管理系统Hospital Information System简称 HIS用于实现患者信息管理、诊疗记录管理、住院病房管理、药品管理以及多维度统计分析等功能。

系统采用 C++ 实现,整体结构划分为:

his-core核心业务逻辑层
his-cli命令行交互层
storage数据持久化层

通过模块化设计,实现业务逻辑与交互界面的解耦,提高系统的可扩展性与可维护性。


二、系统设计目标

  1. 实现一个完整的医院信息管理流程,包括挂号、诊疗、检查、住院、开药等功能

  2. 支持至少:

    • 100名门诊患者
    • 30名住院患者
    • 20名医生
    • 5个科室
  3. 支持多种查询与统计功能

  4. 具备良好的鲁棒性,能够处理异常输入(测试工程师场景)

  5. 全程基于链表实现数据存储


三、系统总体结构

系统采用分层架构:

CLI层用户交互
   ↓
Service层业务逻辑
   ↓
Model层数据实体
   ↓
Storage层链表 + 文件)

各层职责:

  • CLI层命令解析与结果输出
  • Service层业务规则处理
  • Model层数据结构定义
  • Storage层数据存储与文件持久化

四、数据实体与约定

4.1 通用约定

  1. 所有实体均采用唯一ID作为主标识
  2. 姓名允许重复(需支持重名情况)
  3. 所有数据通过链表进行存储
  4. 数据文件采用 JSON 数组格式存储

4.2 患者Patient

属性:

PatientID唯一
姓名
年龄
性别
联系方式
状态(门诊 / 住院 / 已出院)

约定:

  • 一个患者可对应多条医疗记录
  • 支持模糊查询(按姓名)

4.3 医生Doctor

属性:

DoctorID唯一
姓名
科室ID
职称(主任/副主任/主治/住院医师)
出诊时间

约定:

  • 每个医生隶属于一个科室
  • 每个科室至少3名医生

4.4 科室Department

属性:

DepartmentID
名称

4.5 医疗记录MedicalRecord【核心】

属性:

RecordID唯一
PatientID
DoctorID
类型(挂号 / 看诊 / 检查 / 住院)
时间
详细信息(结构化数据)

约定:

  • 每个患者最多可有多条记录
  • 记录必须关联患者与医生
  • 记录不可直接修改(需撤销后重建)

4.6 病房与床位Ward & Bed

病房:

WardID
类型(普通 / 特殊)
科室ID
床位数量

床位:

BedID
所属病房
状态(空闲 / 已占用)
患者ID

约定:

  • 一个床位同一时间只能属于一个患者
  • 支持床位动态分配与释放

4.7 药品Medicine

属性:

MedicineID
通用名
商品名
别名
库存数量
所属科室
单价

约定:

  • 支持多名称匹配(通用名/商品名/别名)
  • 库存不得为负

五、功能需求


5.1 数据管理功能

1增加

  • 添加患者信息
  • 添加医生信息
  • 添加医疗记录
  • 添加药品信息

要求:

  • 支持单条输入
  • 支持文件批量导入
  • 自动校验数据合法性

2修改

  • 支持修改患者信息
  • 支持修改药品信息

约定:

  • 医疗记录不可直接修改
  • 修改记录需“撤销 + 重建”

3删除

  • 删除患者
  • 删除记录
  • 删除药品

约束:

  • 删除需进行依赖检查(如患者是否仍在住院)

5.2 查询功能

支持多维度查询:

  1. 按患者查询历史记录
  2. 按医生查询诊疗情况
  3. 按科室查询整体信息
  4. 按药品名称查询库存

要求:

  • 支持模糊查询
  • 支持排序输出

5.3 住院管理功能

  • 分配床位
  • 出院处理
  • 床位状态更新

约定:

  • 若无空床,则拒绝住院
  • 出院后自动释放床位

5.4 药房管理功能

  • 药品入库
  • 药品出库
  • 处方发药

约定:

  • 库存不足时禁止发药
  • 每次开药数量有限制

5.5 报表与统计功能

系统需支持以下统计:

  1. 医院营业额(检查+药品+住院费用)
  2. 医生工作量统计
  3. 当前住院患者报表
  4. 床位使用率
  5. 药品库存统计

扩展:

  • 按时间范围统计

六、命令行交互设计his-cli

系统采用 REPL 模式:

his > command args

示例:

his add patient
his list patient
his find patient --name 张三
his admit P001
his discharge P001
his report doctor

设计原则:

  • 命令清晰
  • 参数灵活
  • 支持错误提示

七、数据存储与持久化

采用文本文件存储:

patients.txt
doctors.txt
records.txt
medicines.txt
wards.txt

约定:

  • 文件内容为 JSON 数组
  • 系统启动时加载
  • 系统退出时保存

八、鲁棒性设计

系统需处理异常情况:

输入异常:

  • 非法字符
  • 空输入
  • 超长字符串
  • 格式错误

业务异常:

  • 无空床
  • 库存不足
  • ID不存在
  • 重复添加

极端情况:

  • 大规模数据
  • 全部重名
  • 空数据系统

九、测试要求

系统需提供测试用例:

  1. 正常流程测试
  2. 异常输入测试
  3. 极端情况测试
  4. 文件导入测试

每个数据文件至少30条记录


十、扩展功能(可选)

  1. 数据分析(预测床位需求)
  2. 医生推荐系统
  3. 药品消耗趋势分析
  4. 多角色权限系统

十一、总结

本系统通过模块化设计,实现了一个具备完整医疗流程的轻量级 HIS 系统,满足课程设计中对功能性、鲁棒性与扩展性的要求,同时在架构设计上具备良好的工程实践价值。