5.8 KiB
5.8 KiB
《HIS 医疗管理系统设计说明书(2025级)》
(需求功能与系统约定)
一、系统概述
本系统为一个面向小型医院的轻量级医疗信息管理系统(Hospital Information System,简称 HIS),用于实现患者信息管理、诊疗记录管理、住院病房管理、药品管理以及多维度统计分析等功能。
系统采用 C++ 实现,整体结构划分为:
his-core(核心业务逻辑层)
his-cli(命令行交互层)
storage(数据持久化层)
通过模块化设计,实现业务逻辑与交互界面的解耦,提高系统的可扩展性与可维护性。
二、系统设计目标
-
实现一个完整的医院信息管理流程,包括挂号、诊疗、检查、住院、开药等功能
-
支持至少:
- 100名门诊患者
- 30名住院患者
- 20名医生
- 5个科室
-
支持多种查询与统计功能
-
具备良好的鲁棒性,能够处理异常输入(测试工程师场景)
-
全程基于链表实现数据存储
三、系统总体结构
系统采用分层架构:
CLI层(用户交互)
↓
Service层(业务逻辑)
↓
Model层(数据实体)
↓
Storage层(链表 + 文件)
各层职责:
- CLI层:命令解析与结果输出
- Service层:业务规则处理
- Model层:数据结构定义
- Storage层:数据存储与文件持久化
四、数据实体与约定
4.1 通用约定
- 所有实体均采用唯一ID作为主标识
- 姓名允许重复(需支持重名情况)
- 所有数据通过链表进行存储
- 数据文件采用 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 查询功能
支持多维度查询:
- 按患者查询历史记录
- 按医生查询诊疗情况
- 按科室查询整体信息
- 按药品名称查询库存
要求:
- 支持模糊查询
- 支持排序输出
5.3 住院管理功能
- 分配床位
- 出院处理
- 床位状态更新
约定:
- 若无空床,则拒绝住院
- 出院后自动释放床位
5.4 药房管理功能
- 药品入库
- 药品出库
- 处方发药
约定:
- 库存不足时禁止发药
- 每次开药数量有限制
5.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不存在
- 重复添加
极端情况:
- 大规模数据
- 全部重名
- 空数据系统
九、测试要求
系统需提供测试用例:
- 正常流程测试
- 异常输入测试
- 极端情况测试
- 文件导入测试
每个数据文件至少30条记录
十、扩展功能(可选)
- 数据分析(预测床位需求)
- 医生推荐系统
- 药品消耗趋势分析
- 多角色权限系统
十一、总结
本系统通过模块化设计,实现了一个具备完整医疗流程的轻量级 HIS 系统,满足课程设计中对功能性、鲁棒性与扩展性的要求,同时在架构设计上具备良好的工程实践价值。