Files
nursing-home/thesis/chapter4.md
2026-03-01 01:13:16 +08:00

16 KiB
Raw Permalink Blame History

第4章 养老院管理系统的系统设计

4.1 系统功能设计

本系统面向管理员、护工和家属三类用户角色,各角色拥有不同的功能权限。管理员作为系统的最高权限角色,负责系统的全面运营管理,包括运营概览、账号管理、长者档案管理、排班管理、账单管理、反馈处理和通知公告管理七大功能模块。护工作为一线服务角色,拥有工作台、我的排班、护理记录、健康监测、交班记录和通知中心六大功能模块。家属作为信息查看角色,拥有家属首页、亲人档案、每日动态、健康记录、账单支付、服务反馈和通知中心七大功能模块。

管理员功能结构图如图4.1所示。

管理员功能结构图

图4.1 管理员功能结构图

护工功能结构图如图4.2所示。

护工功能结构图

图4.2 护工功能结构图

家属功能结构图如图4.3所示。

家属功能结构图

图4.3 家属功能结构图

4.2 类图

本系统的数据模型采用关系型数据库设计共包含11个数据实体各实体之间通过外键关联形成完整的数据关系网络。系统类图采用IE Crow's Foot标记法展示各实体的属性和实体间的关系。核心实体包括用户表sys_user、长者表elder、家属长者关联表family_elder、排班表schedule、护理记录表care_record、健康记录表health_record、交班记录表handover、通知表notice、反馈表feedback、账单表bill和缴费记录表payment_record

主要的实体关系包括用户护工角色与排班、护理记录、健康记录、交班记录之间为一对多关系用户家属角色与长者之间通过家属长者关联表形成多对多关系长者与护理记录、健康记录、账单、反馈之间为一对多关系账单与缴费记录之间为一对多关系用户管理员角色与通知之间为一对多关系。系统类图如图4.4所示。

系统类图

图4.4 系统类图

4.3 序列图

4.3.1 用户登录序列图

用户登录过程涉及用户、系统前台、后台系统和数据库四个参与者之间的交互。具体步骤如下:

1用户在浏览器中打开系统登录页面。

2用户输入用户名和密码点击登录按钮。

3系统前台将登录请求发送至后台系统的认证接口POST /api/auth/login

4后台系统接收请求后向数据库查询该用户名对应的用户信息。

5数据库返回查询结果。

6后台系统使用BCrypt算法验证用户输入的密码与数据库中存储的加密密码是否匹配。

7验证通过后后台系统调用Sa-Token框架生成UUID格式的Token。

8后台系统将Token、用户角色和用户信息返回给系统前台。

9系统前台将Token和角色信息存储到浏览器的localStorage中。

10系统前台根据用户角色自动跳转到对应的功能首页。

用户登录序列图如图4.5所示。

用户登录序列图

图4.5 用户登录序列图

4.3.2 护工添加护理记录序列图

护工添加护理记录过程涉及护工、系统前台、后台系统和数据库四个参与者之间的交互。具体步骤如下:

1护工在系统中进入护理记录页面。

2系统前台向后台系统请求长者列表数据。

3后台系统从数据库查询长者信息并返回。

4系统前台展示长者列表供护工选择。

5护工选择目标长者填写护理内容可选择上传附件。

6系统前台将护理记录数据提交至后台系统POST /api/nurse/care-records

7后台系统自动关联当前登录护工的ID设置记录时间将数据插入数据库。

8数据库返回插入结果。

9后台系统将创建成功的响应返回给系统前台。

10系统前台显示添加成功提示并刷新护理记录列表。

护工添加护理记录序列图如图4.6所示。

护工添加护理记录序列图

图4.6 护工添加护理记录序列图

4.4 活动图

4.4.1 用户登录活动图

用户登录过程可分为以下几步:

1用户在登录页面输入用户名和密码。

2系统前台将登录信息提交至后台系统。

3后台系统向数据库查询用户数据。

4数据库返回查询结果后台系统判断用户是否存在以及密码是否正确。

5若验证失败系统返回错误提示用户需重新输入。

6若验证成功后台系统生成Token并返回给前台。

7前台存储Token信息跳转至对应角色的系统首页。

用户登录活动图如图4.7所示。

用户登录活动图

图4.7 用户登录活动图

4.4.2 管理员处理反馈活动图

管理员处理反馈过程可分为以下几步:

1管理员登录系统进入反馈处理页面。

2系统前台向后台系统请求所有反馈数据。

3后台系统从数据库查询反馈列表并返回。

4管理员查看反馈列表选择需要处理的反馈。

5管理员填写回复内容更新反馈状态。

6系统前台将回复信息提交至后台系统。

7后台系统更新数据库中的反馈记录。

8系统提示回复成功反馈列表自动刷新。

管理员处理反馈活动图如图4.8所示。

管理员处理反馈活动图

图4.8 管理员处理反馈活动图

4.5 数据库设计

4.5.1 概念设计

概念设计阶段采用E-R图实体-关系图描述系统的数据模型。本系统共包含11个实体以下列举8个核心实体的属性图。

1用户实体

用户实体包含用户ID主码、用户名、密码、姓名、电话、角色和状态等属性。用户实体属性图如图4.9所示。

用户实体属性图

图4.9 用户实体属性图

2长者实体

长者实体包含长者ID主码、姓名、性别、身份证号、出生日期、房间号、入住日期、护理等级、状态和备注等属性。长者实体属性图如图4.10所示。

长者实体属性图

图4.10 长者实体属性图

3排班实体

排班实体包含排班ID主码、护工ID、日期、班次和任务等属性。排班实体属性图如图4.11所示。

排班实体属性图

图4.11 排班实体属性图

4护理记录实体

护理记录实体包含记录ID主码、长者ID、护工ID、内容、附件和记录时间等属性。护理记录实体属性图如图4.12所示。

护理记录实体属性图

图4.12 护理记录实体属性图

5健康记录实体

健康记录实体包含记录ID主码、长者ID、护工ID、体温、收缩压、舒张压、心率、备注和记录时间等属性。健康记录实体属性图如图4.13所示。

健康记录实体属性图

图4.13 健康记录实体属性图

6账单实体

账单实体包含账单ID主码、长者ID、月份、床位费、护理费、餐饮费、其他费用、总计和状态等属性。账单实体属性图如图4.14所示。

账单实体属性图

图4.14 账单实体属性图

7反馈实体

反馈实体包含反馈ID主码、家属ID、长者ID、类型、内容、评分、状态和回复等属性。反馈实体属性图如图4.15所示。

反馈实体属性图

图4.15 反馈实体属性图

8通知实体

通知实体包含通知ID主码、标题、内容、目标角色、目标用户ID和创建者ID等属性。通知实体属性图如图4.16所示。

通知实体属性图

图4.16 通知实体属性图

系统总体E-R图展示了各实体之间的关联关系如图4.17所示。

系统E-R图

图4.17 系统E-R图

4.5.2 逻辑设计

将E-R图中的实体关系转换为关系模式具体如下

1用户表用户ID用户名密码姓名电话角色状态创建时间更新时间

2长者表长者ID姓名性别身份证号出生日期房间号入住日期护理等级状态备注

3家属长者关联表关联ID家属ID长者ID关系创建时间。外键家属ID引用用户表长者ID引用长者表。

4排班表排班ID护工ID日期班次任务创建时间更新时间。外键护工ID引用用户表。

5护理记录表记录ID长者ID护工ID内容附件URL记录时间创建时间。外键长者ID引用长者表护工ID引用用户表。

6健康记录表记录ID长者ID护工ID体温收缩压舒张压心率备注记录时间创建时间。外键长者ID引用长者表护工ID引用用户表。

7交班记录表记录ID护工ID日期内容创建时间。外键护工ID引用用户表。

8通知表通知ID标题内容目标角色目标用户ID创建者ID创建时间。外键创建者ID引用用户表。

9反馈表反馈ID家属ID长者ID类型内容评分状态回复创建时间更新时间。外键家属ID引用用户表长者ID引用长者表。

10账单表账单ID长者ID月份床位费护理费餐饮费其他费用总计状态创建时间支付时间。外键长者ID引用长者表。

11缴费记录表记录ID账单ID家属ID金额支付方式支付时间。外键账单ID引用账单表家属ID引用用户表。

4.5.3 物理设计

系统根据MySQL数据库数据存储的特性设计数据库关系表以下列举主要的物理表结构。

表4.1 用户表sys_user表

字段名称 字段意义 数据类型 长度 完整性约束
id 用户ID BIGINT - 主键,自增
username 用户名 VARCHAR 50 非空,唯一
password 密码 VARCHAR 100 非空
name 姓名 VARCHAR 50 非空
phone 电话 VARCHAR 30 -
role 角色 VARCHAR 20 非空
status 状态 TINYINT - 非空默认1
created_at 创建时间 DATETIME - 默认当前时间
updated_at 更新时间 DATETIME - 自动更新

表4.2 长者表elder表

字段名称 字段意义 数据类型 长度 完整性约束
id 长者ID BIGINT - 主键,自增
name 姓名 VARCHAR 50 非空
gender 性别 VARCHAR 10 -
id_card 身份证号 VARCHAR 30 非空,唯一
birthday 出生日期 DATE - -
room_no 房间号 VARCHAR 20 -
check_in_date 入住日期 DATE - -
care_level 护理等级 VARCHAR 20 -
status 状态 VARCHAR 20 -
remark 备注 VARCHAR 200 -

表4.3 护理记录表care_record表

字段名称 字段意义 数据类型 长度 完整性约束
id 记录ID BIGINT - 主键,自增
elder_id 长者ID BIGINT - 非空
nurse_id 护工ID BIGINT - 非空
content 护理内容 VARCHAR 500 -
attachment_url 附件URL VARCHAR 200 -
record_time 记录时间 DATETIME - -
created_at 创建时间 DATETIME - 默认当前时间

表4.4 健康记录表health_record表

字段名称 字段意义 数据类型 长度 完整性约束
id 记录ID BIGINT - 主键,自增
elder_id 长者ID BIGINT - 非空
nurse_id 护工ID BIGINT - 非空
temperature 体温 DECIMAL 4,1 -
bp_systolic 收缩压 INT - -
bp_diastolic 舒张压 INT - -
heart_rate 心率 INT - -
note 备注 VARCHAR 200 -
record_time 记录时间 DATETIME - -
created_at 创建时间 DATETIME - 默认当前时间

表4.5 账单表bill表

字段名称 字段意义 数据类型 长度 完整性约束
id 账单ID BIGINT - 主键,自增
elder_id 长者ID BIGINT - 非空
month 月份 VARCHAR 7 非空
bed_fee 床位费 DECIMAL 10,2 -
care_fee 护理费 DECIMAL 10,2 -
meal_fee 餐饮费 DECIMAL 10,2 -
other_fee 其他费用 DECIMAL 10,2 -
total 总计 DECIMAL 10,2 -
status 状态 VARCHAR 20 -
created_at 创建时间 DATETIME - 默认当前时间
paid_at 支付时间 DATETIME - -

表4.6 排班表schedule表

字段名称 字段意义 数据类型 长度 完整性约束
id 排班ID BIGINT - 主键,自增
nurse_id 护工ID BIGINT - 非空
date 日期 DATE - 非空
shift 班次 VARCHAR 20 -
task 任务 VARCHAR 200 -
created_at 创建时间 DATETIME - 默认当前时间
updated_at 更新时间 DATETIME - 自动更新

表4.7 反馈表feedback表

字段名称 字段意义 数据类型 长度 完整性约束
id 反馈ID BIGINT - 主键,自增
family_id 家属ID BIGINT - 非空
elder_id 长者ID BIGINT - 非空
type 类型 VARCHAR 20 -
content 内容 VARCHAR 500 -
rating 评分 INT - -
status 状态 VARCHAR 20 -
reply 回复 VARCHAR 500 -
created_at 创建时间 DATETIME - 默认当前时间
updated_at 更新时间 DATETIME - 自动更新

表4.8 通知表notice表

字段名称 字段意义 数据类型 长度 完整性约束
id 通知ID BIGINT - 主键,自增
title 标题 VARCHAR 100 非空
content 内容 VARCHAR 1000 -
target_role 目标角色 VARCHAR 20 -
target_user_id 目标用户ID BIGINT - -
created_by 创建者ID BIGINT - -
created_at 创建时间 DATETIME - 默认当前时间

4.6 图形界面设计

4.6.1 长者档案管理界面设计

管理员的长者档案管理界面采用经典的管理后台布局,左侧为导航菜单,右侧为主内容区域。主内容区域顶部设有"添加长者"操作按钮下方为长者信息数据表格表格列包括姓名、性别、身份证号、房间号、护理等级、状态和操作列。操作列提供编辑和删除按钮。点击添加或编辑按钮时弹出表单对话框供用户输入或修改长者信息。长者档案管理界面设计图如图4.18所示。

长者档案管理界面设计图

图4.18 长者档案管理界面设计图

4.6.2 健康监测界面设计

护工的健康监测界面同样采用左侧导航、右侧内容的布局。主内容区域上方为数据录入表单包含长者选择下拉框、体温输入框、收缩压输入框、舒张压输入框、心率输入框、备注输入框和记录时间选择器以及提交按钮。表单下方为健康记录数据表格展示已录入的历史健康监测数据。健康监测界面设计图如图4.19所示。

健康监测界面设计图

图4.19 健康监测界面设计图