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

391 lines
5.8 KiB
Markdown
Raw Permalink 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.
# 《HIS 医疗管理系统设计说明书2025级
(需求功能与系统约定)
---
# 一、系统概述
本系统为一个面向小型医院的轻量级医疗信息管理系统Hospital Information System简称 HIS用于实现患者信息管理、诊疗记录管理、住院病房管理、药品管理以及多维度统计分析等功能。
系统采用 C++ 实现,整体结构划分为:
```text
his-core核心业务逻辑层
his-cli命令行交互层
storage数据持久化层
```
通过模块化设计,实现业务逻辑与交互界面的解耦,提高系统的可扩展性与可维护性。
---
# 二、系统设计目标
1. 实现一个完整的医院信息管理流程,包括挂号、诊疗、检查、住院、开药等功能
2. 支持至少:
* 100名门诊患者
* 30名住院患者
* 20名医生
* 5个科室
3. 支持多种查询与统计功能
4. 具备良好的鲁棒性,能够处理异常输入(测试工程师场景)
5. 全程基于链表实现数据存储
---
# 三、系统总体结构
系统采用分层架构:
```text
CLI层用户交互
Service层业务逻辑
Model层数据实体
Storage层链表 + 文件)
```
各层职责:
* CLI层命令解析与结果输出
* Service层业务规则处理
* Model层数据结构定义
* Storage层数据存储与文件持久化
---
# 四、数据实体与约定
## 4.1 通用约定
1. 所有实体均采用唯一ID作为主标识
2. 姓名允许重复(需支持重名情况)
3. 所有数据通过链表进行存储
4. 数据文件采用 JSON 数组格式存储
---
## 4.2 患者Patient
属性:
```text
PatientID唯一
姓名
年龄
性别
联系方式
状态(门诊 / 住院 / 已出院)
```
约定:
* 一个患者可对应多条医疗记录
* 支持模糊查询(按姓名)
---
## 4.3 医生Doctor
属性:
```text
DoctorID唯一
姓名
科室ID
职称(主任/副主任/主治/住院医师)
出诊时间
```
约定:
* 每个医生隶属于一个科室
* 每个科室至少3名医生
---
## 4.4 科室Department
属性:
```text
DepartmentID
名称
```
---
## 4.5 医疗记录MedicalRecord【核心】
属性:
```text
RecordID唯一
PatientID
DoctorID
类型(挂号 / 看诊 / 检查 / 住院)
时间
详细信息(结构化数据)
```
约定:
* 每个患者最多可有多条记录
* 记录必须关联患者与医生
* 记录不可直接修改(需撤销后重建)
---
## 4.6 病房与床位Ward & Bed
### 病房:
```text
WardID
类型(普通 / 特殊)
科室ID
床位数量
```
### 床位:
```text
BedID
所属病房
状态(空闲 / 已占用)
患者ID
```
约定:
* 一个床位同一时间只能属于一个患者
* 支持床位动态分配与释放
---
## 4.7 药品Medicine
属性:
```text
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 模式:
```text
his > command args
```
示例:
```text
his add patient
his list patient
his find patient --name 张三
his admit P001
his discharge P001
his report doctor
```
设计原则:
* 命令清晰
* 参数灵活
* 支持错误提示
---
# 七、数据存储与持久化
采用文本文件存储:
```text
patients.txt
doctors.txt
records.txt
medicines.txt
wards.txt
```
约定:
* 文件内容为 JSON 数组
* 系统启动时加载
* 系统退出时保存
---
# 八、鲁棒性设计
系统需处理异常情况:
### 输入异常:
* 非法字符
* 空输入
* 超长字符串
* 格式错误
### 业务异常:
* 无空床
* 库存不足
* ID不存在
* 重复添加
### 极端情况:
* 大规模数据
* 全部重名
* 空数据系统
---
# 九、测试要求
系统需提供测试用例:
1. 正常流程测试
2. 异常输入测试
3. 极端情况测试
4. 文件导入测试
每个数据文件至少30条记录
---
# 十、扩展功能(可选)
1. 数据分析(预测床位需求)
2. 医生推荐系统
3. 药品消耗趋势分析
4. 多角色权限系统
---
# 十一、总结
本系统通过模块化设计,实现了一个具备完整医疗流程的轻量级 HIS 系统,满足课程设计中对功能性、鲁棒性与扩展性的要求,同时在架构设计上具备良好的工程实践价值。