摘 要
随着人口老龄化程度不断加深,空巢老年人群体规模逐渐扩大,其健康管理和养老服务问题日益受到社会关注。由于空巢老年人长期独居或缺少子女陪伴,在日常健康监测、紧急情况处理、养老服务获取以及与家属、医护人员沟通等方面存在一定不便。传统健康管理方式多依赖线下记录和人工服务,存在信息更新不及时、管理效率较低、服务协同不足等问题。为提高空巢老年人健康管理水平和养老服务便捷性,设计并实现一个基于 WEB 的空巢老年人健康管理系统具有较强的现实意义。
本课题以 Spring Boot、Java、MySQL 为主要开发技术,并结合小程序实现多端访问,构建一个面向老人用户、家属用户、医护人员和管理员的综合健康管理平台。系统主要包括老人用户端、家属用户端、医护人员端和后台管理端。老人用户可以完成登录注册、紧急求助、健康科普浏览、通知公告查看、在线聊天、健康问答、健康档案录入、健康记录录入、养老服务预约及个人信息管理等操作;家属用户可以查看老人健康信息、参与养老服务预约并接收通知消息;医护人员可以查看相关健康档案、健康记录和健康报告,并与老人或家属进行交流;管理员可以完成系统用户管理、健康档案管理、健康记录管理、健康报告管理、养老服务管理、预约管理、通知公告管理、资源管理和通知发布等工作,同时对异常健康记录进行预警提醒和消息通知处理。
通过对系统的需求分析、功能设计、数据库设计、系统实现与测试,完成了空巢老年人健康管理平台的设计与开发。研究结果表明,所设计的平台能够较好地满足空巢老年人在健康信息记录、养老服务预约、健康知识学习和沟通互动等方面的使用需求,也能够为家属和医护人员提供一定的信息支持与服务协同能力,并提升后台管理工作的效率。相关研究对于推动老年人健康管理服务的信息化建设具有一定参考价值。
关键词:空巢老年人;健康管理;Spring Boot;小程序;MySQL
ABSTRACT
With the continuous deepening of population aging, the number of empty-nest elderly people is gradually increasing, and their health management and elderly care service issues have attracted more and more social attention. Since many empty-nest elderly people live alone or lack the companionship of their children, they often face difficulties in daily health monitoring, emergency handling, access to elderly care services, and communication with family members and medical staff. Traditional health management methods mostly rely on offline records and manual services, which have problems such as untimely information updates, low management efficiency, and insufficient service coordination. Therefore, it is of great practical significance to design and implement a WEB-based health management system for empty-nest elderly people.
This project adopts Spring Boot, Java, and MySQL as the main development technologies, and combines them with a mini program to realize multi-terminal access, thereby building a comprehensive health management platform for elderly users, family users, medical staff, and administrators. The system mainly includes an elderly user terminal, a family user terminal, a medical staff terminal, and a background management terminal. Elderly users can perform operations such as registration and login, emergency help requests, health science popularization browsing, notification viewing, online chatting, health Q&A, health record entry, health data entry, elderly care service reservation, and personal information management. Family users can view the elderly’s health information, participate in elderly care service reservations, and receive notification messages. Medical staff can check health archives, health records, and health reports, and communicate with elderly users or their family members. Administrators can manage system users, health archives, health records, health reports, elderly care services, reservation information, notifications, resources, and message publishing, and can also handle warning reminders and notification messages for abnormal health records.
Through requirement analysis, functional design, database design, system implementation, and testing, the health management platform for empty-nest elderly people has been completed. The results show that the platform can better meet the needs of empty-nest elderly people in health information recording, elderly care service reservation, health knowledge learning, and communication interaction. It can also provide information support and service coordination for family members and medical staff, while improving the efficiency of background management. This research has certain reference value for promoting the informatization of health management services for the elderly.
Keywords: Empty-nest Elderly; Health Management; Spring Boot; Mini Program; MySQL
目 录
1绪论
1.1研究背景
1.2研究意义
1.3国内外研究现状
2相关技术简介
2.1Java语言
2.2 B/S框架
2.3 SpringBoot框架
2.4 Vue技术
2.5 MySQL数据库
2.6微信开发者工具
3系统需求分析
3.1系统功能需求分析
3.2系统非功能性分析
3.3系统可行性分析
3.3.1技术可行性
3.3.2经济可行性
3.3.3操作可行性
3.4系统用例分析
3.4.1老人用户用例分析
3.4.2家属用户用例分析
3.4.3医护人员用例分析
3.4.4管理员用例分析
4系统设计
4.1系统架构设计
4.2系统结构设计
4.3系统功能设计
4.3.1系统开发流程
4.3.2 用户登录流程
4.3.3 系统操作流程
4.3.4 添加信息流程
4.3.5 修改信息流程
4.3.6 删除信息流程
4.4数据库设计
4.4.1 概念设计
4.4.2数据库表设计
5系统实现
5.1小程序用户功能实现
5.1.1首页
5.1.2健康科普
5.1.3紧急求助
5.1.4 健康问卷
5.1.5健康档案
5.1.6健康记录
5.1.7养老服务
5.1.8我的
5.2管理员功能实现
5.2.1系统用户管理
5.2.2 健康记录管理
5.2.3 轮播图管理
5.2.4 通知公告管理
5.2.5资源管理
5.2.6 健康问卷界面
6系统测试
6.1测试目的
6.2测试方法
6.3测试内容
6.4测试结论
结 论
参考文献
致 谢
附录
系统核心代码设计
用户注册
用户登录
修改密码
修改数据
删除数据
获取列表
图片上传
1绪论
1.1研究背景
随着人口老龄化进程不断加快,空巢老年人数量持续增加,老年群体在健康管理、生活照护和养老服务方面的需求日益突出。由于长期独居或与子女分居,空巢老年人在日常健康监测、突发情况处理、医疗咨询、信息获取和情感沟通等方面面临较多现实困难。传统健康管理方式多依赖纸质记录、电话联系和线下服务,不仅信息保存分散,更新效率较低,而且在家属关注、医护协同和服务对接方面存在明显不足。与此同时,网络技术和移动终端的普及,为老年健康管理服务提供了新的实现路径。借助基于 WEB 的平台与小程序应用,可以将健康档案、健康记录、养老服务、通知提醒、在线交流等功能整合到统一平台之中,从而更好满足空巢老年人及其家属、医护人员在健康管理和服务协同方面的实际需要。
1.2研究意义
围绕空巢老年人健康管理需求开展相关研究,具有较强的现实价值和应用意义。通过构建面向老人、家属、医护人员和管理人员的综合服务平台,能够提升健康信息记录与查询的便利性,增强养老服务预约和信息沟通的效率,改善传统管理方式中存在的信息分散、协同不足和处理滞后等问题。对于老人群体而言,有助于获得更加便捷的健康服务和生活支持;对于家属而言,有助于更加及时地了解老人健康状况并参与照护过程;对于医护人员和管理人员而言,有助于提升健康管理和服务管理的规范化水平。相关研究对于促进老年健康管理服务数字化发展、完善空巢老年人关怀机制以及提升养老服务质量都具有一定积极作用。
1.3国内外研究现状
随着人口老龄化趋势不断加深,老年人健康管理逐渐成为社会服务信息化研究中的重要内容,特别是空巢老年人群体,由于长期独居、健康风险较高、照护支持相对不足,其健康管理与养老服务问题受到越来越多关注。围绕老年人健康档案管理、身体指标记录、养老服务对接、远程沟通和平台化服务建设等内容,国内外学术界和行业领域均开展了较多研究,并形成了一定的发展基础。
在国内,老年人健康管理平台研究主要伴随智慧养老、社区养老和医疗健康信息化建设逐步发展。早期相关管理工作大多依赖纸质档案、人工登记和线下随访,存在信息更新不及时、管理效率较低、数据查询不便和服务联动不足等问题。随着互联网技术、移动端应用和信息管理平台的不断推广,越来越多研究开始关注老年健康档案电子化、健康数据在线记录、养老服务信息发布、健康知识传播以及家属和医护人员协同参与等内容。部分研究成果已实现老人基本信息维护、健康记录录入、服务预约申请、通知公告查看和留言互动等功能,推动了老年人健康服务从传统人工管理向平台化管理方向发展。面向空巢老年人群体的研究则更加强调紧急求助、家属关注、心理陪伴、健康提醒和多角色协同等特点,体现出较强的服务针对性。不过,从现有研究情况来看,部分平台功能相对分散,健康档案、健康记录、养老服务、问答互动和通知提醒之间的业务整合程度仍有提升空间,在角色协作、信息联动和管理闭环方面还有进一步优化的必要。
在国外,老年健康管理相关研究起步较早,特别是在社区健康服务、家庭照护支持和老年人长期健康管理方面积累了较丰富经验。许多国家较早重视老龄群体生活质量和健康服务保障,围绕老年人健康监测、家庭成员协同照护、远程咨询、养老资源整合和数字化健康服务平台建设展开了持续研究。国外相关平台通常更加注重用户使用便利性、健康管理连续性和服务流程规范化,强调老年人个人健康信息维护、医疗服务连接、家庭成员信息共享以及服务机构之间的协同配合。对于独居老人和高龄老人群体,一些研究还注重通过在线沟通、通知提醒和服务预约等方式提升照护效率与安全保障水平。整体来看,国外在老年健康管理服务平台建设方面已形成较成熟的理论基础和实践经验,尤其在健康服务流程整合、平台功能丰富性以及多主体参与机制方面具有一定优势。
综合国内外研究现状可以看出,老年健康管理平台的发展方向已经由单一信息记录逐步转向集健康管理、养老服务、知识传播、互动交流和后台管理于一体的综合服务模式。国内研究在结合本土养老需求、社区服务模式和家庭照护特点方面具有较强现实基础,国外研究则在平台规范化建设和服务协同机制方面积累了较多经验。针对空巢老年人健康管理场景,围绕老人、家属、医护人员和管理员多角色参与的综合管理平台仍具有较高研究价值,在健康信息整合、服务预约管理、异常提醒处理、知识传播和互动支持等方面仍存在进一步研究和完善空间。
2相关技术简介
2.1Java语言
Java语言是一种广泛使用的高级编程语言,具有平台无关性、面向对象特性和丰富的标准库[1]。Java通过Java虚拟机(JVM)实现跨平台运行,开发者可以编写一次代码,在任何支持JVM的环境中执行。Java的面向对象特性使得代码复用和模块化变得更加容易,促进了软件的维护和扩展。Java支持多线程编程,允许开发者在同一程序中同时执行多个任务,提升了应用程序的性能。
Java语言的语法结构简洁且易于理解,吸引了大量开发者[2]。Java的标准库包含数据结构、输入输出处理、网络编程等众多功能模块。这使得开发者在构建应用程序时能够高效利用已有工具,减少重复劳动。Java广泛应用于企业级应用、移动应用、Web开发和大数据处理等领域。
2.2 B/S框架
B/S(Browser/Server)架构是一种基于浏览器和服务器的系统架构模式,用户通过浏览器与服务器进行交互。B/S架构简化了客户端的部署和管理,用户无需在本地安装复杂的软件,只需使用标准浏览器即可访问应用程序。服务器端负责处理业务逻辑和数据存储,客户端则主要负责展示用户界面和数据交互[3]。B/S架构的设计使得系统更新和维护集中在服务器端,降低了维护成本。
B/S架构通常采用Web技术进行实现,包括HTML、CSS和JavaScript等。用户在浏览器中发起请求,服务器响应并返回数据。数据传输通常通过HTTP或HTTPS协议进行,B/S架构的灵活性使其适用于在线购物、信息管理系统和社交网络等各类应用场景[4]。由于其易于扩展性,B/S架构可以方便地支持大规模用户访问,适应不断变化的业务需求。
2.3 SpringBoot框架
SpringBoot框架是基于Spring框架的开源项目,简化Java应用程序的开发过程。SpringBoot通过约定优于配置的理念,减少了传统Spring应用的繁琐配置,开发者可以快速搭建和部署应用程序。框架提供了一系列默认配置,支持自动化配置,简化了应用启动的复杂性[5]。SpringBoot内置了嵌入式Web服务器,使得开发者能够独立运行Java应用,无需外部容器。
SpringBoot支持微服务架构,开发者可以轻松创建和管理多个微服务。框架集成了丰富的功能模块,包括安全、数据访问和消息中间件等,支持RESTful API和JSON数据格式的处理[6]。SpringBoot还提供了强大的监控和管理功能,允许开发者实时监控应用的健康状态和性能指标。借助SpringBoot,开发者能够高效构建和维护现代企业级应用,满足复杂业务需求。
2.4 Vue技术
Vue是一种渐进式JavaScript框架,专注于构建用户界面。Vue采用组件化的开发模式,允许开发者将应用程序拆分为独立的、可重用的组件,从而提高了开发效率和代码的可维护性[7]。框架的核心库专注于视图层,支持数据绑定和DOM操作,提供了简洁的API。Vue的虚拟DOM机制提升了应用的性能,减少了实际DOM操作的次数。
Vue支持双向数据绑定,能够自动更新视图与模型之间的变化。开发者可以通过Vue的指令系统,简化数据展示和事件处理。Vue还支持路由管理和状态管理,使得开发复杂单页面应用变得更加容易[8]。借助Vue的生态系统,开发者能够使用多种工具和库来扩展功能,满足不同的业务需求。Vue在前端开发中逐渐成为主流选择,受到广泛关注和应用。
2.5 MySQL数据库
MySQL是一种开源关系型数据库管理系统,广泛应用于Web应用和企业级数据存储。MySQL支持结构化查询语言,允许开发者通过标准语句进行数据的创建、读取、更新和删除操作[9]。数据库通过表格形式组织数据,支持数据完整性和约束条件的定义。MySQL的存储引擎机制使得用户可以根据具体需求选择不同的存储引擎,以优化性能和功能。
MySQL具有高性能和可扩展性,支持大规模数据存储和高并发访问。系统提供了丰富的用户权限管理和数据加密安全特性。MySQL能够与多种编程语言和框架兼容,广泛应用于内容管理系统、电子商务平台和数据分析等各种场景。
2.6微信开发者工具
微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试。
根据用户的需求,我们将采用不同的屏幕大小来制作小程序。
在完成了视图布置之后,可以通过执行编辑功能,快速更改当前的视图界面。
控制台:方便调试打印输出信息。
将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。
通过查看资源文件,我们可以快速地调整相关项目的文件目录,从而实现断点调试。
使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。
本地数据存储:显示的是本地存储的数据。
通过使用子父层级结构,我们可以更容易地进行视图调试。
微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。
微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。
3系统需求分析
3.1系统功能需求分析
本论文旨在开发一款面向空巢老年人的健康管理系统,基于Spring Boot、Java、微信小程序和MySQL技术栈,帮助家属和老人更好地管理老人日常健康。系统的功能设计包含了老人用户、家属用户、医护人员以及管理员的不同角色,以下将对各个用户角色的功能进行详细分析。
1. 老人用户功能
登录注册:老人用户可以完成账号注册和登录操作,进入平台后使用个人专属账户进行健康信息管理和养老服务使用,保证用户身份的有效识别与信息安全。
首页:老人用户在首页可以查看平台主要功能入口、健康服务信息、通知提醒以及常用操作模块,便于快速进入所需功能页面。
紧急求助:老人用户在突发身体不适或遇到紧急情况时,可以通过紧急求助功能快速发出求助信息,为自身安全提供保障,并方便相关人员及时处理。
健康科普:老人用户可以浏览平台发布的健康知识内容,了解慢性病预防、日常保健、饮食调理和常见疾病护理等方面的信息,提高健康认知水平。
通知公告:老人用户可以查看平台发布的通知公告内容,及时了解服务通知、活动安排、健康提醒以及其他相关信息。
在线聊天:老人用户可以通过在线聊天功能与家属、医护人员进行沟通交流,便于咨询健康问题、反馈身体情况和进行日常联系。
健康问答:老人用户可以参与健康问答答题活动,完成题目作答后查看个人得分和参考答案,在互动过程中学习健康知识。
健康档案:老人用户可以录入个人健康档案信息,包括基本健康情况、既往病史、过敏史等内容,为后续健康管理提供基础数据支持。
健康记录:老人用户可以录入日常健康记录,如血压、血糖、心率、睡眠状况等,用于反映身体健康变化情况,便于持续跟踪。
养老服务:老人用户可以浏览各类养老服务信息,查看服务详情,根据自身需求提交预约申请,同时对服务内容进行点赞、收藏和评论,增强服务选择的便利性和互动性。
我的:老人用户可以在“我的”模块中查看和管理基本信息、健康档案、健康记录、健康报告、老人预约、家属预约、收藏记录、点赞记录、评论管理和统计等内容,方便集中管理个人相关数据。
2. 医护人员功能
登录注册:医护人员可以完成账号注册和登录,进入平台后开展健康信息查看和服务互动工作,确保身份权限明确。
首页:医护人员在首页可以查看平台主要功能、相关通知信息以及工作服务入口,便于快速开展日常操作。
在线聊天:医护人员可以通过在线聊天功能与老人用户及家属进行沟通,及时了解老人健康情况,解答相关问题,增强服务沟通效率。
健康科普:医护人员可以浏览平台中的健康科普内容,了解已有知识资源,同时也可为后续健康指导提供参考。
通知公告:医护人员可以查看平台通知公告,掌握平台安排、服务信息和相关管理要求。
我的:医护人员可以在“我的”模块中查看和管理个人基本信息,同时查询老人相关健康档案、健康记录和健康报告内容,便于掌握老人健康状态;还可以查看收藏记录、点赞记录和评论管理内容,了解平台互动情况。
3. 家属用户功能
登录注册:家属用户可以完成账号注册和登录操作,通过个人账户进入平台查看老人健康信息并参与相关服务。
首页:家属用户在首页可以查看平台主要服务入口、通知信息和功能导航,便于快速了解平台内容和进入对应模块。
在线聊天:家属用户可以通过在线聊天功能与老人及医护人员进行交流,及时掌握老人健康情况和日常状态。
养老服务:家属用户可以浏览平台提供的养老服务内容,查看服务详情,并根据老人需求提交预约申请,同时可对服务进行点赞、收藏和评论,方便记录个人偏好和使用体验。
健康科普:家属用户可以浏览平台发布的健康科普知识,增强对老人健康管理、日常照护和疾病预防的认识。
通知公告:家属用户可以查看平台发布的通知公告内容,了解养老服务、健康管理和平台更新等相关信息。
我的:家属用户可以在“我的”模块中查看基本信息,以及老人健康档案、健康记录和健康报告内容,全面了解老人健康状况;同时还可以查看老人预约、家属预约、收藏记录、点赞记录、评论管理和统计信息,并通过通知中心接收平台推送的各类消息提醒。
4. 管理员功能
后台首页:管理员登录后台后,可以在首页查看平台整体运行情况、用户数据、预约数据和相关管理入口,便于开展后台管理工作。
系统用户:管理员可以对老人用户、家属用户和医护人员等系统用户信息进行统一管理,包括查看、维护和必要的信息处理操作。
健康档案管理:管理员可以对老人健康档案信息进行查看和维护,保证健康档案内容完整、准确,为后续健康管理提供支持。
健康记录管理:管理员可以查看和管理老人提交的健康记录数据,并对异常健康记录进行监测。出现健康预警时,后台能够弹出预警提醒,管理员可通过通知功能向老人用户及相关家属发送消息通知。同时,管理员还可以录入健康报告内容,丰富健康管理资料。
健康报告管理:管理员可以对老人健康报告进行统一查看、维护和管理,便于形成较完整的健康评估信息。
养老服务管理:管理员可以对平台中的养老服务信息进行新增、编辑、删除和维护,确保服务内容准确有效。
老人预约管理:管理员可以查看和管理老人用户提交的养老服务预约信息,掌握预约情况并进行相关处理。
家属预约管理:管理员可以查看和管理家属用户提交的预约信息,便于统一处理家属代约业务。
轮播图管理:管理员可以对前台页面展示的轮播图内容进行维护,包括新增、修改和删除等操作,提升平台展示效果。
通知公告管理:管理员可以发布和维护通知公告内容,用于向用户传达平台通知、服务说明和活动安排等信息。
资源管理:管理员可以对健康科普内容和科普分类进行管理,保证健康知识资源的规范性和可读性;同时可以对健康问卷进行查询、重置、删除、添加、详情查看、点评、题库设置和统计分析,用于丰富平台健康教育内容和互动功能。
权限管理:管理员可以对后台不同操作权限进行配置和管理,确保各类管理操作有序进行。
通知发布:管理员可以通过后台通知发布功能向指定用户或用户群体发送消息,及时传达健康提醒、预警信息和服务通知。
基于 WEB 的空巢老年人健康管理系统在功能设计上围绕老人健康管理、家属协同关注、医护支持服务和后台统一管理展开。老人用户侧重健康信息录入、求助、知识学习和服务预约;家属用户侧重健康关注、沟通联系和养老服务协助;医护人员侧重健康信息查看和互动支持;管理员则负责平台整体数据维护、预警处理、服务资源管理和通知发布。通过各角色功能的合理划分与整合,平台能够为空巢老年人提供较完整的健康管理与养老服务支持。
3.2系统非功能性分析
空巢老年人健康管理系统在撰写系统毕业论文时,非功能性需求分析是一个重要的部分。非功能性需求主要关注的是系统如何运行,而不是它具体完成什么功能。这些需求包括性能、可用性、安全性、可维护性、可扩展性、易用性等方面。以下是一个关于空巢老年人健康管理系统非功能性需求分析的概要。
性能需求:系统需确保快速响应和高吞吐量,以支持大量用户同时访问,即使在高峰时段也能保持流畅的操作体验,避免因延迟或卡顿影响用户体验。
可用性:安系统必须具备高可用性,采用冗余部署、负载均衡等策略,确保即使部分组件故障也能迅速恢复服务,减少服务中断时间,保障用户业务的连续性。
安全性:鉴于系统处理用户敏感信息,如个人信息等,必须实施严格的安全措施,包括数据加密、访问控制、防攻击机制等,以保护用户数据免受未授权访问或泄露。
可维护性:系统设计应注重可维护性,采用模块化、标准化的架构,提供详尽的开发文档和用户手册,确保系统易于理解和维护,降低长期运维成本。
可扩展性:随着业务的发展,系统可能需要扩展功能或提升性能。因此,系统需具备灵活的可扩展性,能够轻松添加新模块、优化性能,以应对未来增长的需求。
易用性:用户界面应直观易用,符合用户习惯,提供清晰的导航和友好的操作反馈,帮助用户快速上手并高效完成任务,提升整体用户满意度。
3.3系统可行性分析
通过对空巢老年人健康管理系统的可行性分析,我们可以从技术可行性、经济可行性、操作可行性三个维度进行深入探讨,以确保系统的开发与应用具有坚实的可行性基础。
3.3.1技术可行性
Springboot作为目前流行的Java企业级应用开发框架,以其“约定优于配置”的原则,极大地简化了开发流程,降低了技术门槛。同时,结合MyBatis Plus这一强大的ORM框架,可以高效实现数据持久化操作。小程序是一种流行的移动应用开发平台,提供了便捷的开发和部署支持。MySQL数据库作为后端数据存储,以其高性能和稳定性为系统提供了可靠的数据支持。综上所述,从技术角度来看,该系统的开发具备高度可行性。
3.3.2经济可行性
考虑到Springboot、小程序、MyBatis Plus及MySQL等均为开源技术,无需支付高昂的许可费用,大大降低了系统的开发成本。同时,这些技术拥有广泛的用户群体和成熟的社区支持,便于获取技术支持和资源共享。此外,系统的实施将显著提升空巢老年人健康管理的效率和用户体验,从而带来潜在的经济效益。因此,从经济角度来看,该系统的开发同样具备可行性。
3.3.3操作可行性
系统设计应遵循用户友好原则,确保用户能够轻松上手并高效使用。通过合理的界面布局、直观的操作流程以及详尽的帮助文档,可以大大降低用户的学习成本,提高系统的操作可行性。此外,系统还应具备完善的权限管理和数据安全机制,确保操作的安全性和合规性。
从技术、经济、操作三个维度来看,空巢老年人健康管理系统的开发均具备高度的可行性。
3.4系统用例分析
空巢老年人健康管理系统用例分析主要从老人用户、家属用户、医护人员、管理员这些实体展开描述。
3.4.1老人用户用例分析
老人用户具备登陆注册、首页、紧急求助、健康科普、通知公告、在线聊天、健康问答、健康档案、健康记录、养老服务、我的(基本信息、健康档案、健康记录、健康报告、老人预约、家属预约、收藏记录、点赞记录、评论管理、统计)等需求用例,详细用例图如图3-1所示。

图3-1老人用户用例图
3.4.2家属用户用例分析
家属用户具备登陆注册、首页、在线聊天、养老服务、健康科普、通知公告、我的(基本信息、健康档案、健康记录、健康报告、老人预约、家属预约、收藏记录、点赞记录、评论管理、统计、通知中心)等需求用例,详细用例图如图3-2所示。

图3-2家属用户用例图
3.4.3医护人员用例分析
医护人员具备登陆、首页、在线聊天、健康科普、通知公告、我的(基本信息、健康档案、健康记录、健康报告、收藏记录、点赞记录、评论管理、)等需求用例,详细用例图如图3-3所示。

图3-3医护人员用例图
3.4.4管理员用例分析
管理员具备后台首页、系统用户、健康档案管理、健康记录管理、健康报告管理、养老服务管理、老人预约管理、家属预约管理、轮播图管理、通知公告管理、资源管理(健康科普、科普分类、健康问卷)、权限管理、通知发布等需求用例。详细用例图如图3-4所示。

图3-4管理员用例图
4系统设计
4.1系统架构设计
系统采用SpringBoot 框架开发,该系统分为VIEW层、Controller层、Model层、DAO层和持久化数据存储层,VIEW层支持电脑浏览器访问系统。VIEW 层与 Controller 层紧密结合并系协同工作,共同完成前台页面的数据展示;Controller层为控制层,通过接收前端请求的参数进行业务处理,返回指定的路径或数据;Model层主要是服务层,用于业务逻辑处理;DAO 和持久化层,主要用于访问数据库和持久化数据[10]。整个系统架构如图4-1所示。

图4-1 系统架构图
4.2系统结构设计
空巢老年人健康管理系统的整体结构设计如图4-2所示。

图4-2整体功能结构设计图
4.3系统功能设计
4.3.1系统开发流程
基于 WEB 的空巢老年人健康管理系统时,首先进行需求分析,进而对系统进行总体的设计规划,设计系统功能模块,数据库的选择等,本系统的开发流程如图4-3所示。

图4-3系统开发流程图
4.3.2 用户登录流程
为了保证系统的安全性,要使用本系统对系统信息进行管理,必须先登陆到系统中。如图4-4所示。

图4-4 登录流程图
4.3.3 系统操作流程
用户打开并进入系统后,会先显示登录界面,输入正确的用户名和密码,系统自动检测信息,若信息无误,则用户会进入系统功能界面,进行操作,否则会提示错误无法登录,操作流程如图4-5所示。

图4-5系统操作流程图
4.3.4 添加信息流程
管理员可以对健康科普、通知公告等进行信息的添加,用户可以对自己权限内的信息进行添加,输入信息后,系统会自行验证输入的信息和数据,若信息正确,会将其添加到数据库内,若信息有误,则会提示重新输入信息,添加信息流程如图4-6所示。

图4-6 添加信息流程图
4.3.5 修改信息流程
管理员可以对健康科普、通知公告等进行的修改,用户可以对自己权限内的信息进行修改,首先进入修改信息界面,输入修改信息数据,系统进行数据的判断验证,修改信息合法则修改成功,信息更新至数据库,信息不合法则修改失败,重新输入。修改信息流程图如图4-7所示。

图4-7修改信息流程图
4.3.6 删除信息流程
管理员可以对健康科普、通知公告等进行信息的删除,对要删除的信息进行选中后,点击删除按钮,系统会询问是否确定,若点击确定,则系统会删除掉选中的信息,并在数据库内对信息进行删除,删除信息流程图如图4-8所示。

图4-8删除信息流程图
4.4数据库设计
在进行数据库设计时,概念设计帮助明确系统的整体结构和需求。在这一阶段,需要确定实体、属性以及它们之间的关系,为后续的数据库表设计奠定基础。接下来,将深入探讨数据库表设计的具体细节,实现更高效的数据存储和管理。
4.4.1 概念设计
概念设计是数据库设计的第一步,其主要目标是对系统的数据需求进行全面的理解和抽象[11]。在这一阶段,通过建立实体-关系模型(ER模型)来识别系统中的关键实体、属性及其相互关系。概念设计的输出是一个清晰的ER图,作为后续数据库表设计的基础。以下将展示系统的全局E-R图。

图4-9系统ER图
4.4.2数据库表设计
这一阶段的重点是将概念模型转换为实际的数据库结构,包括表的创建、字段的定义及数据类型的选择。每个实体通常对应于数据库中的一张表,而实体的属性则转化为表的列[12]。以下是系统的数据库表设计展示。
表 4-1-access_token(登陆访问时长)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
token_id |
int |
|
是 |
是 |
临时访问牌ID |
|
2 |
token |
varchar |
64 |
否 |
否 |
临时访问牌 |
|
3 |
info |
text |
65535 |
否 |
否 |
信息 |
|
4 |
maxage |
int |
|
是 |
否 |
最大寿命:默认2小时 |
|
5 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
6 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
|
7 |
user_id |
int |
|
是 |
否 |
用户编号 |
表 4-2-appointment_for_the_elderly(老人预约)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
appointment_address |
varchar |
64 |
否 |
否 |
预约地址 |
|
2 |
appointment_for_the_elderly_id |
int |
|
是 |
是 |
老人预约ID |
|
3 |
appointment_time |
datetime |
|
否 |
否 |
预约时间 |
|
4 |
create_by |
int |
|
是 |
否 |
创建用户ID |
|
5 |
create_time |
datetime |
|
是 |
否 |
创建时间 |
|
6 |
elderly_users |
int |
|
否 |
否 |
老人用户 |
|
7 |
extra |
text |
65535 |
否 |
否 |
额外信息 |
|
8 |
related_family_members |
int |
|
否 |
否 |
关联家属 |
|
9 |
service_name |
varchar |
64 |
否 |
否 |
服务名称 |
|
10 |
service_organization |
varchar |
64 |
否 |
否 |
服务机构 |
|
11 |
service_type |
varchar |
64 |
否 |
否 |
服务类型 |
|
12 |
source_id |
int |
|
否 |
否 |
来源ID |
|
13 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
14 |
source_user_id |
int |
|
否 |
否 |
来源用户 |
|
15 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
表 4-3-article(文章)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
article_id |
mediumint |
|
是 |
是 |
文章id |
|
2 |
title |
varchar |
125 |
是 |
是 |
标题 |
|
3 |
type |
varchar |
64 |
是 |
否 |
文章分类 |
|
4 |
hits |
int |
|
是 |
否 |
点击数 |
|
5 |
praise_len |
int |
|
是 |
否 |
点赞数 |
|
6 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
7 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
|
8 |
source |
varchar |
255 |
否 |
否 |
来源 |
|
9 |
url |
varchar |
255 |
否 |
否 |
来源地址 |
|
10 |
tag |
varchar |
255 |
否 |
否 |
标签 |
|
11 |
content |
longtext |
4294967295 |
否 |
否 |
正文 |
|
12 |
img |
varchar |
255 |
否 |
否 |
封面图 |
|
13 |
description |
text |
65535 |
否 |
否 |
文章描述 |
表 4-4-article_type(文章分类)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
2 |
description |
varchar |
255 |
否 |
否 |
描述 |
|
3 |
display |
smallint |
|
是 |
否 |
显示顺序 |
|
4 |
father_id |
smallint |
|
是 |
否 |
上级分类ID |
|
5 |
icon |
text |
65535 |
否 |
否 |
分类图标 |
|
6 |
name |
varchar |
16 |
是 |
否 |
分类名称 |
|
7 |
type_id |
smallint |
|
是 |
是 |
分类ID |
|
8 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
|
9 |
url |
varchar |
255 |
否 |
否 |
外链地址 |
表 4-5-auth(用户权限管理)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
auth_id |
int |
|
是 |
是 |
授权ID |
|
2 |
user_group |
varchar |
64 |
否 |
否 |
用户组 |
|
3 |
mod_name |
varchar |
64 |
否 |
否 |
模块名 |
|
4 |
table_name |
varchar |
64 |
否 |
否 |
表名 |
|
5 |
page_title |
varchar |
255 |
否 |
否 |
页面标题 |
|
6 |
path |
varchar |
255 |
否 |
否 |
路由路径 |
|
7 |
parent |
varchar |
64 |
否 |
否 |
父级菜单 |
|
8 |
parent_sort |
int |
|
是 |
否 |
父级菜单排序 |
|
9 |
position |
varchar |
32 |
否 |
否 |
位置 |
|
10 |
mode |
varchar |
32 |
是 |
否 |
跳转方式 |
|
11 |
add |
tinyint |
|
是 |
否 |
是否可增加 |
|
12 |
del |
tinyint |
|
是 |
否 |
是否可删除 |
|
13 |
set |
tinyint |
|
是 |
否 |
是否可修改 |
|
14 |
get |
tinyint |
|
是 |
否 |
是否可查看 |
|
15 |
field_add |
text |
65535 |
否 |
否 |
添加字段 |
|
16 |
field_set |
text |
65535 |
否 |
否 |
修改字段 |
|
17 |
field_get |
text |
65535 |
否 |
否 |
查询字段 |
|
18 |
table_nav_name |
varchar |
500 |
否 |
否 |
跨表导航名称 |
|
19 |
table_nav |
varchar |
500 |
否 |
否 |
跨表导航 |
|
20 |
option |
text |
65535 |
否 |
否 |
配置 |
|
21 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
22 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
表 4-6-code_token(验证码)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
code |
varchar |
255 |
否 |
否 |
验证码 |
|
2 |
code_token_id |
int |
|
是 |
是 |
验证码ID |
|
3 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
4 |
expire_time |
timestamp |
|
是 |
否 |
失效时间 |
|
5 |
token |
varchar |
255 |
否 |
否 |
令牌 |
|
6 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
表 4-7-collect(收藏)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
collect_id |
int |
|
是 |
是 |
收藏ID |
|
2 |
user_id |
int |
|
是 |
是 |
收藏人ID |
|
3 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
4 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
5 |
source_id |
int |
|
是 |
否 |
来源ID |
|
6 |
title |
varchar |
255 |
否 |
否 |
标题 |
|
7 |
img |
varchar |
255 |
否 |
否 |
封面 |
|
8 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
9 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
表 4-8-comment(评论)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
avatar |
varchar |
255 |
否 |
否 |
头像地址 |
|
2 |
comment_id |
int |
|
是 |
是 |
评论ID |
|
3 |
content |
longtext |
4294967295 |
否 |
否 |
内容 |
|
4 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
5 |
hidden |
tinyint |
|
否 |
否 |
是否隐藏 |
|
6 |
nickname |
varchar |
255 |
否 |
否 |
昵称 |
|
7 |
reply_to_id |
int |
|
是 |
否 |
回复评论ID |
|
8 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
9 |
source_id |
int |
|
是 |
否 |
来源ID |
|
10 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
11 |
sticky |
tinyint |
|
否 |
否 |
是否置顶 |
|
12 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
|
13 |
user_id |
int |
|
是 |
是 |
评论人ID |
表 4-9-dependents_users(家属用户)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
dependents_users_id |
int |
|
是 |
是 |
家属用户ID |
|
2 |
family_name |
varchar |
64 |
否 |
否 |
家属姓名 |
|
3 |
family_gender |
varchar |
64 |
否 |
否 |
家属性别 |
|
4 |
associated_elderly |
int |
|
否 |
否 |
关联老人 |
|
5 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
6 |
user_id |
int |
|
是 |
否 |
用户ID |
|
7 |
create_time |
datetime |
|
是 |
否 |
创建时间 |
|
8 |
create_by |
int |
|
是 |
否 |
创建用户ID |
|
9 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
表 4-10-elderly_users(老人用户)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
age_of_the_elderly |
varchar |
64 |
否 |
否 |
老人年龄 |
|
2 |
create_by |
int |
|
是 |
否 |
创建用户ID |
|
3 |
create_time |
datetime |
|
是 |
否 |
创建时间 |
|
4 |
elderly_users_id |
int |
|
是 |
是 |
老人用户ID |
|
5 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
6 |
gender_of_the_elderly |
varchar |
64 |
否 |
否 |
老人性别 |
|
7 |
home_address |
varchar |
64 |
否 |
否 |
家庭住址 |
|
8 |
old_mans_name |
varchar |
64 |
否 |
否 |
老人姓名 |
|
9 |
related_family_members |
int |
|
否 |
否 |
关联家属 |
|
10 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
|
11 |
user_id |
int |
|
是 |
否 |
用户ID |
表 4-11-evaluation(测评问卷)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
exam_id |
mediumint |
|
是 |
是 |
问卷id |
|
2 |
name |
varchar |
32 |
是 |
否 |
问卷名称 |
|
3 |
duration |
int |
|
否 |
否 |
答题时长 |
|
4 |
status |
varchar |
10 |
否 |
否 |
状态:启用、禁用 |
|
5 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
6 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
|
7 |
evaluation_result |
text |
65535 |
否 |
否 |
测评结果 |
|
8 |
open_start |
datetime |
|
否 |
否 |
开放开始时间 |
|
9 |
open_end |
datetime |
|
否 |
否 |
开放结束时间 |
表 4-12-evaluation_question(题目)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
2 |
exam_id |
mediumint |
|
是 |
是 |
所属问卷 |
|
3 |
exam_question_id |
mediumint |
|
是 |
是 |
题目ID |
|
4 |
question_item |
varchar |
500 |
否 |
否 |
选项 |
|
5 |
question_order |
int |
|
否 |
否 |
排序 |
|
6 |
title |
varchar |
255 |
否 |
否 |
题目 |
|
7 |
type |
varchar |
20 |
否 |
否 |
类型 |
|
8 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
表 4-13-evaluation_user_answer(用户答题)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
user_answer_id |
mediumint |
|
是 |
是 |
用户答题ID |
|
2 |
user_id |
mediumint |
|
是 |
否 |
用户ID |
|
3 |
exam_id |
mediumint |
|
是 |
是 |
考试ID |
|
4 |
score |
double |
|
否 |
否 |
分数 |
|
5 |
answers |
text |
65535 |
否 |
否 |
答案 |
|
6 |
comment_state |
tinyint |
|
否 |
否 |
点评状态 |
|
7 |
nickname |
varchar |
255 |
否 |
否 |
提交人 |
|
8 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
9 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
|
10 |
comment_desc |
varchar |
255 |
否 |
否 |
评语 |
表 4-14-family_appointment(家属预约)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
appointment_address |
varchar |
64 |
否 |
否 |
预约地址 |
|
2 |
appointment_time |
datetime |
|
否 |
否 |
预约时间 |
|
3 |
associated_elderly |
int |
|
否 |
否 |
关联老人 |
|
4 |
create_by |
int |
|
是 |
否 |
创建用户ID |
|
5 |
create_time |
datetime |
|
是 |
否 |
创建时间 |
|
6 |
dependents_users |
int |
|
否 |
否 |
家属用户 |
|
7 |
extra |
text |
65535 |
否 |
否 |
额外信息 |
|
8 |
family_appointment_id |
int |
|
是 |
是 |
家属预约ID |
|
9 |
service_name |
varchar |
64 |
否 |
否 |
服务名称 |
|
10 |
service_organization |
varchar |
64 |
否 |
否 |
服务机构 |
|
11 |
service_type |
varchar |
64 |
否 |
否 |
服务类型 |
|
12 |
source_id |
int |
|
否 |
否 |
来源ID |
|
13 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
14 |
source_user_id |
int |
|
否 |
否 |
来源用户 |
|
15 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
表 4-15-health_archives(健康档案)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
health_archives_id |
int |
|
是 |
是 |
健康档案ID |
|
2 |
old_mans_name |
varchar |
64 |
否 |
否 |
老人姓名 |
|
3 |
gender_of_the_elderly |
varchar |
64 |
否 |
否 |
老人性别 |
|
4 |
age_of_the_elderly |
varchar |
64 |
否 |
否 |
老人年龄 |
|
5 |
related_family_members |
int |
|
否 |
否 |
关联家属 |
|
6 |
elderly_users |
int |
|
否 |
否 |
老人用户 |
|
7 |
past_medical_history |
text |
65535 |
否 |
否 |
既往病史 |
|
8 |
history_of_allergy |
text |
65535 |
否 |
否 |
过敏病史 |
|
9 |
physical_examination_report |
varchar |
255 |
否 |
否 |
体检报告 |
|
10 |
create_time |
datetime |
|
是 |
否 |
创建时间 |
|
11 |
create_by |
int |
|
是 |
否 |
创建用户ID |
|
12 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
表 4-16-health_records(健康记录)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
age_of_the_elderly |
varchar |
64 |
否 |
否 |
老人年龄 |
|
2 |
create_by |
int |
|
是 |
否 |
创建用户ID |
|
3 |
create_time |
datetime |
|
是 |
否 |
创建时间 |
|
4 |
elderly_blood_pressure |
double |
|
否 |
否 |
老人血压 |
|
5 |
elderly_blood_sugar |
double |
|
否 |
否 |
老人血糖 |
|
6 |
elderly_users |
int |
|
否 |
否 |
老人用户 |
|
7 |
gender_of_the_elderly |
varchar |
64 |
否 |
否 |
老人性别 |
|
8 |
health_records_id |
int |
|
是 |
是 |
健康记录ID |
|
9 |
health_report_limit_times |
int |
|
是 |
否 |
报告限制次数 |
|
10 |
medication_today |
text |
65535 |
否 |
否 |
今日用药 |
|
11 |
old_mans_name |
varchar |
64 |
否 |
否 |
老人姓名 |
|
12 |
record_date |
date |
|
否 |
否 |
记录日期 |
|
13 |
related_family_members |
int |
|
否 |
否 |
关联家属 |
|
14 |
todays_diet |
text |
65535 |
否 |
否 |
今日饮食 |
|
15 |
todays_movement |
text |
65535 |
否 |
否 |
今日运动 |
|
16 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
|
17 |
weight_of_the_elderly |
varchar |
64 |
否 |
否 |
老人体重 |
表 4-17-health_report(健康报告)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
health_report_id |
int |
|
是 |
是 |
健康报告ID |
|
2 |
old_mans_name |
varchar |
64 |
否 |
否 |
老人姓名 |
|
3 |
age_of_the_elderly |
varchar |
64 |
否 |
否 |
老人年龄 |
|
4 |
related_family_members |
int |
|
否 |
否 |
关联家属 |
|
5 |
elderly_users |
int |
|
否 |
否 |
老人用户 |
|
6 |
risk_level |
varchar |
64 |
否 |
否 |
风险等级 |
|
7 |
health_assessment |
text |
65535 |
否 |
否 |
健康评估 |
|
8 |
suggestions_for_improvement |
text |
65535 |
否 |
否 |
改善建议 |
|
9 |
create_time |
datetime |
|
是 |
否 |
创建时间 |
|
10 |
create_by |
int |
|
是 |
否 |
创建用户ID |
|
11 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
|
12 |
extra |
text |
65535 |
否 |
否 |
额外信息 |
|
13 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
14 |
source_id |
int |
|
否 |
否 |
来源ID |
|
15 |
source_user_id |
int |
|
否 |
否 |
来源用户 |
表 4-18-hits(用户点击)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
2 |
hits_id |
int |
|
是 |
是 |
点赞ID |
|
3 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
4 |
source_id |
int |
|
是 |
否 |
来源ID |
|
5 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
6 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
|
7 |
user_id |
int |
|
是 |
否 |
点赞人 |
表 4-19-medical_staff(医护人员)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
medical_staff_id |
int |
|
是 |
是 |
医护人员ID |
|
2 |
medical_name |
varchar |
64 |
否 |
否 |
医护姓名 |
|
3 |
gender_of_medical_care |
varchar |
64 |
否 |
否 |
医护性别 |
|
4 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
5 |
user_id |
int |
|
是 |
否 |
用户ID |
|
6 |
create_time |
datetime |
|
是 |
否 |
创建时间 |
|
7 |
create_by |
int |
|
是 |
否 |
创建用户ID |
|
8 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
表 4-20-message_inform(通知记录)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
content |
varchar |
255 |
否 |
否 |
内容 |
|
2 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
3 |
message_inform_id |
int |
|
是 |
是 |
通知ID |
|
4 |
state |
varchar |
255 |
否 |
否 |
状态 |
|
5 |
title |
varchar |
255 |
否 |
否 |
标题 |
|
6 |
type |
varchar |
64 |
否 |
否 |
分类 |
|
7 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
|
8 |
user_id |
int |
|
是 |
是 |
通知人ID |
表 4-21-notice(公告)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
notice_id |
mediumint |
|
是 |
是 |
公告ID |
|
2 |
title |
varchar |
125 |
是 |
否 |
标题 |
|
3 |
content |
longtext |
4294967295 |
否 |
否 |
正文 |
|
4 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
5 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
表 4-22-pension_service(养老服务)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
appointment_for_the_elderly_limit_times |
int |
|
是 |
否 |
老人预约限制次数 |
|
2 |
collect_len |
int |
|
是 |
否 |
收藏数 |
|
3 |
comment_len |
int |
|
是 |
否 |
评论数 |
|
4 |
cover_image |
varchar |
255 |
否 |
否 |
封面图片 |
|
5 |
create_by |
int |
|
是 |
否 |
创建用户ID |
|
6 |
create_time |
datetime |
|
是 |
否 |
创建时间 |
|
7 |
family_appointment_limit_times |
int |
|
是 |
否 |
家属预约限制次数 |
|
8 |
institution_address |
varchar |
64 |
否 |
否 |
机构地址 |
|
9 |
pension_service_id |
int |
|
是 |
是 |
养老服务ID |
|
10 |
praise_len |
int |
|
是 |
否 |
点赞数 |
|
11 |
service_introduction |
longtext |
4294967295 |
否 |
否 |
服务简介 |
|
12 |
service_name |
varchar |
64 |
否 |
否 |
服务名称 |
|
13 |
service_organization |
varchar |
64 |
否 |
否 |
服务机构 |
|
14 |
service_type |
varchar |
64 |
否 |
否 |
服务类型 |
|
15 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
表 4-23-praise(点赞)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
praise_id |
int |
|
是 |
是 |
点赞ID |
|
2 |
user_id |
int |
|
是 |
是 |
点赞人 |
|
3 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
4 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
|
5 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
6 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
7 |
source_id |
int |
|
是 |
否 |
来源ID |
|
8 |
status |
tinyint |
|
是 |
否 |
点赞状态:1为点赞,0已取消 |
|
9 |
img |
varchar |
255 |
否 |
否 |
|
|
10 |
title |
varchar |
255 |
否 |
否 |
|
表 4-24-releasing_notices(通知发布)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
content |
varchar |
255 |
否 |
否 |
通知内容 |
|
2 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
3 |
releasing_notices_id |
int |
|
是 |
是 |
通知ID |
|
4 |
title |
varchar |
255 |
否 |
否 |
通知标题 |
|
5 |
type |
varchar |
64 |
否 |
否 |
通知方式 |
|
6 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
表 4-25-slides(轮播图)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
slides_id |
int |
|
是 |
是 |
轮播图ID |
|
2 |
title |
varchar |
64 |
否 |
否 |
标题 |
|
3 |
content |
varchar |
255 |
否 |
否 |
内容 |
|
4 |
url |
varchar |
255 |
否 |
否 |
链接 |
|
5 |
img |
varchar |
255 |
否 |
否 |
轮播图 |
|
6 |
hits |
int |
|
是 |
否 |
点击量 |
|
7 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
8 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
表 4-26-upload(文件上传)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
dir |
varchar |
255 |
否 |
否 |
文件夹 |
|
2 |
display |
varchar |
255 |
否 |
否 |
显示顺序 |
|
3 |
father_id |
int |
|
否 |
否 |
父级ID |
|
4 |
file |
varchar |
255 |
否 |
否 |
文件路径 |
|
5 |
name |
varchar |
64 |
否 |
否 |
文件名 |
|
6 |
path |
varchar |
255 |
否 |
否 |
访问路径 |
|
7 |
type |
varchar |
32 |
否 |
否 |
文件类型 |
|
8 |
upload_id |
int |
|
是 |
是 |
上传ID |
表 4-27-user(用户账户)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
user_id |
int |
|
是 |
是 |
用户ID |
|
2 |
state |
smallint |
|
是 |
否 |
账户状态:(1可用|2异常|3已冻结|4已注销) |
|
3 |
user_group |
varchar |
32 |
否 |
否 |
所在用户组 |
|
4 |
login_time |
timestamp |
|
否 |
否 |
上次登录时间 |
|
5 |
phone |
varchar |
11 |
否 |
否 |
手机号码 |
|
6 |
phone_state |
smallint |
|
是 |
否 |
手机认证:(0未认证|1审核中|2已认证) |
|
7 |
username |
varchar |
16 |
是 |
否 |
用户名 |
|
8 |
nickname |
varchar |
16 |
否 |
否 |
昵称 |
|
9 |
password |
varchar |
64 |
是 |
否 |
密码 |
|
10 |
|
varchar |
64 |
否 |
否 |
邮箱 |
|
11 |
email_state |
smallint |
|
是 |
否 |
邮箱认证:(0未认证|1审核中|2已认证) |
|
12 |
avatar |
varchar |
255 |
否 |
否 |
头像地址 |
|
13 |
open_id |
varchar |
255 |
否 |
否 |
针对获取用户信息字段 |
|
14 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
15 |
emergency_name |
varchar |
64 |
否 |
否 |
紧急联系人 |
|
16 |
emergency_mobile |
varchar |
32 |
否 |
否 |
紧急联系电话 |
表 4-28-user_chat_friend(聊天用户好友)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
2 |
friend_user_id |
int |
|
是 |
否 |
用户好友ID |
|
3 |
friend_user_name |
varchar |
255 |
否 |
否 |
好友名称 |
|
4 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
|
5 |
user_chat_friend_id |
int |
|
是 |
是 |
ID |
|
6 |
user_id |
int |
|
是 |
否 |
用户ID |
表 4-29-user_chat_group(聊天用户群聊)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
user_chat_group_id |
int |
|
是 |
是 |
ID |
|
2 |
group_id |
int |
|
否 |
否 |
群聊ID |
|
3 |
group_name |
varchar |
255 |
否 |
否 |
群聊名称 |
|
4 |
user_id |
int |
|
否 |
否 |
用户ID |
|
5 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
6 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
表 4-30-user_chat_read(聊天用户消息)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
create_time |
timestamp |
|
否 |
否 |
时间 |
|
2 |
group_id |
int |
|
否 |
否 |
群聊ID |
|
3 |
message |
text |
65535 |
否 |
否 |
消息 |
|
4 |
send_user_id |
int |
|
否 |
否 |
发送人ID |
|
5 |
type |
int |
|
否 |
否 |
类型1-点对点消息,2-群聊消息 |
|
6 |
user_chat_read_id |
varchar |
255 |
是 |
是 |
ID |
|
7 |
user_id |
int |
|
否 |
否 |
接收人ID |
表 4-31-user_group(用户组)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
group_id |
mediumint |
|
是 |
是 |
用户组ID |
|
2 |
display |
smallint |
|
是 |
否 |
显示顺序 |
|
3 |
name |
varchar |
16 |
是 |
否 |
名称 |
|
4 |
description |
varchar |
255 |
否 |
否 |
描述 |
|
5 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
6 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
7 |
source_id |
int |
|
是 |
否 |
来源ID |
|
8 |
register |
smallint |
|
否 |
否 |
注册位置 |
|
9 |
create_time |
timestamp |
|
是 |
否 |
创建时间 |
|
10 |
update_time |
timestamp |
|
是 |
否 |
更新时间 |
5系统实现
5.1小程序用户功能实现
5.1.1首页
首页是系统的主界面,展示平台的核心内容,包括健康科普、通知公告等。用户可以通过首页快速访问各个功能模块,还可以根据关键词搜索相关内容,如图5-1所示。

图5-1系统首页界面图
5.1.2健康科普
点击首页“健康科普”菜单,将进入健康科普列表页面。老人用户、家属用户和医护人员都可以输入科普标题或关键词进行搜索,查看平台发布的健康知识信息。点击具体科普内容后,可以进入详情页面查看完整内容。用户在浏览过程中可以根据个人需求进行点赞、收藏和评论操作,也可以在个人中心中查看自己的点赞记录、收藏记录和评论管理内容。健康科普列表页面如图5-2所示。

图5-2健康科普列表界面图
5.1.3紧急求助
点击首页“紧急求助”菜单,将进入紧急求助页面。老人用户可以在页面中填写求助内容、当前情况说明等信息,并提交求助请求。提交成功后,相关求助信息可由后台管理人员进行查看和处理,同时通过通知功能发送给相关家属用户。紧急求助页如图5-3所示。

图5-3紧急求助界面图
5.1.4 健康问卷
点击首页“健康问答”菜单,将进入测评问卷页面。老人用户可以查看系统发布的健康问卷或健康知识题目,并根据页面提示完成答题。答题提交后,系统会自动生成答题结果,老人用户可以查看个人分数以及每道题目的参考答案。测评问卷页面如图5-4所示。

图5-4测评问卷界面图
5.1.5健康档案
点击首页“健康档案”菜单,将进入健康档案页面。老人用户可以根据自身情况录入个人健康档案信息,如基础身体情况、既往病史、过敏情况等,录入完成后提交保存。家属用户和医护人员可以在“我的”模块对应页面查看老人健康档案。健康档案录入页面如图5-5所示。

图5-5健康档案录入界面图
5.1.6健康记录
点击首页“健康记录”菜单,将进入健康记录页面。老人用户可以录入日常健康记录信息,如血压、血糖、心率、睡眠情况等,提交后保存到数据库中,形成连续性的健康数据。家属用户和医护人员可以在“我的”模块对应页面查看老人的健康记录内容,掌握老人近期身体变化情况。健康记录界面如下图5-6所示。

图5-6健康记录界面图
5.1.7养老服务
点击首页“养老服务”菜单,将进入养老服务列表页面。老人用户和家属用户都可以输入服务名称、服务类型等关键词进行搜索,查看平台中发布的养老服务信息。点击某一服务后,可以进入详情页面查看服务介绍、服务地点、服务说明等内容。老人用户和家属用户均可对服务进行点赞、收藏和评论,用于记录兴趣服务和反馈使用体验。在详情页面点击“预约”按钮后,老人用户和家属用户都可以根据需求提交预约信息,预约成功后可分别在“我的”模块中的“老人预约”或“家属预约”中查看对应记录。养老服务列表页面如图5-7所示。老人预约页面如图5-8所示。家属预约页面如图5-9所示。

图5-7养老服务列表界面图

图5-8老人预约界面图

图5-9家属预约界面图
5.1.8我的
点击“我的”菜单后,将进入个人中心页面。老人用户在“我的”模块中可以查看健康报告、统计等内容。
健康报告页面用于展示管理员或相关医护支持形成的健康报告信息,老人用户可以查看个人阶段性健康情况及建议内容。统计页面用于展示个人健康记录、预约情况或互动数据等汇总信息,便于老人用户了解自身平台使用情况。
家属用户在“我的”模块中同样可以查看老人健康报告和统计内容,通过汇总信息进一步掌握老人身体状况和服务使用情况。家属用户还具备“通知中心”权限,可查看平台推送的通知消息,包括预约结果、健康提醒、预警通知等信息。
医护人员在“我的”模块中可以查看相关老人健康报告,也可以通过个人中心查看与自身互动有关的收藏、点赞、评论等记录。健康报告、通知中心、统计图页面如下图所示。

图5-10健康报告界面图

图5-11通知中心界面图

图5-12统计图界面图
5.2管理员功能实现
5.2.1系统用户管理
空巢老年人健康管理系统中的管理人员是可以对老人用户、家属用户、医护人员信息进行管理的,包括对用户信息进行增删改查等操作,也可以对管理员进行管控。界面如下图5-13所示。

图5-13用户管理界面图
5.2.2 健康记录管理
管理员点击“健康记录管理”这一菜单,可以查看和管理老人提交的健康记录数据,并对异常健康记录进行监测。出现健康预警时,后台能够弹出预警提醒,管理员可通过通知功能向老人用户及相关家属发送消息通知。同时,点击“报告”按钮,管理员还可以录入健康报告内容。健康记录列表界面如下图5-14所示。

图5-14健康记录列表界面图
5.2.3 轮播图管理
管理员点击“系统管理-轮播图管理”菜单,可以对前台展示的轮播图进行设置,界面如下图5-15所示。

图5-15轮播图管理界面图
5.2.4 通知公告管理
管理员点击“通知公告管理”这个菜单,可以对系统中的通知公告进行管理,包括通知公告的增删改查等操作。通知公告管理界面如下图所示。

图5-16通知公告管理界面图
5.2.5资源管理
管理员点击“资源管理”菜单,管理员可以上传、编辑或删除系统的资源,如文章、图片、视频等。这些资源可用于健康科普模块的展示。管理员还可以对知识进行分类和标签化,方便用户查找和使用,界面如下图所示。

图5-17资源管理界面图
5.2.6 健康问卷界面
管理员点击“健康问卷”这一菜单可以对健康问卷进行查询、重置、删除、添加、详情查看、点评、题库设置和统计分析等。健康问卷列表界面如下图所示。

图5-18健康问卷列表界面图
6系统测试
6.1测试目的
测试的主要目的是确保系统的功能和性能满足预期的需求,同时识别和修复潜在的缺陷。通过系统测试,可以验证各个功能模块的正确性和稳定性,确保系统在不同使用场景下的表现符合设计要求。测试目的包括确认系统功能的完整性、验证数据处理的准确性、评估系统的性能和安全性。测试还可以提高用户满意度,保证用户在使用系统时获得流畅和可靠的体验。通过全面的测试,可以降低后期维护成本,减少系统上线后出现故障的风险,从而保障系统的长期稳定运行。
6.2测试方法
在本系统中,测试方法主要依赖于测试用例的设计与执行。测试用例是根据系统需求文档编写的,覆盖所有功能模块及其边界情况。每个测试用例包含输入数据、预期结果和实际结果的对比,以验证系统的功能是否按预期工作。
常见的测试用例包括功能测试用例、边界测试用例和异常测试用例[13]。功能测试用例针对系统的各项功能进行验证;边界测试用例则侧重于输入数据的边界条件,验证系统在极端情况下是否能够稳定运行;异常测试用例则用于验证系统在处理错误输入或异常情况时的反应。本文选择功能测试用例进行系统测试。
在测试执行过程中,记录每个用例的执行结果,并根据实际结果与预期结果的对比,判断系统是否存在缺陷。通过系统化的测试用例执行,可以有效提高测试的覆盖率和效率,为系统的最终上线提供保障。
6.3测试内容
通过对系统中所含的主要实体对象及其功能操作进行测试用例设计。以下是详细的测试:
表6-1用户注册登录测试表
用户注册登录测试用例:
|
用例说明 |
测试目的 |
测试步骤 |
预期结果 |
输出结果 |
通过情况 |
|
用户注册、登录 |
测试用户正确注册、登录 |
|
用户注册成功,登录成功 |
结果输出符合预期 |
通过 |
表6-2健康科普查询测试表
健康科普查询用例:
|
用例说明 |
测试目的 |
测试步骤 |
预期结果 |
输出结果 |
通过情况 |
|
健康科普查询 |
测试用户健康科普查询功能 |
|
显示含有关键词的健康科普 |
结果输出符合预期 |
通过 |
表6-3评论测试表
评论测试用例:
|
用例说明 |
测试目的 |
测试步骤 |
预期结果 |
输出结果 |
通过情况 |
|
评论 |
测试用户评论功能 |
1、在首页点击健康科普并看详情; 2、点击评论,输入相关信息点击提交 |
生成新的评论信息 |
结果输出符合预期 |
通过 |
表6-4健康档案录入测试表
老人用户健康档案录入测试用例:
|
用例说明 |
测试目的 |
测试步骤 |
预期结果 |
输出结果 |
通过情况 |
|
健康档案录入测试 |
测试老人用户健康档案录入功能 |
|
健康档案录入成功 |
结果输出符合预期 |
通过 |
表6-5通知公告删除测试表
通知公告删除测试用例:
|
用例说明 |
测试目的 |
测试步骤 |
预期结果 |
输出结果 |
通过情况 |
|
通知公告删除测试 |
测试通知公告删除功能 |
|
通知公告删除成功,前端不在展示该通知公告 |
结果输出符合预期 |
通过 |
6.4测试结论
经过上述测试,并对测试数据结果综合分析。空巢老年人健康管理系统具备简便,数据透明等特性。完全符合空巢老年人健康管理系统的要求。
结 论
本文围绕空巢老年人在健康管理、养老服务、信息沟通和紧急求助等方面的现实需求,完成了基于 WEB 的空巢老年人健康管理平台的分析、设计与实现。以 Spring Boot、Java、MySQL 作为主要技术基础,并结合小程序端使用方式,构建了面向老人用户、家属用户、医护人员和管理员的多角色健康管理平台。通过对系统需求、总体架构、功能模块、数据库结构和业务流程的研究,完成了健康档案管理、健康记录录入、健康报告管理、养老服务预约、健康科普、通知公告、在线聊天、健康问答、紧急求助以及后台资源管理等核心功能的设计与实现。
从实现效果来看,平台能够较好满足空巢老年人在日常健康信息维护、服务预约、知识获取和互动交流方面的使用需求,也能够为家属提供老人健康状况查看与预约协助功能,为医护人员提供健康数据查询与沟通支持,为管理人员提供统一的数据维护、预约管理、健康预警处理和通知发布能力。通过多角色共同参与,健康管理过程中的信息传递更加及时,养老服务流程更加清晰,后台业务处理效率也得到一定提升。尤其在健康记录管理方面,加入了健康预警提醒与通知机制,有助于增强异常情况处理的及时性,提高平台服务的实用价值。
本课题完成了从需求分析、系统设计到功能实现和测试验证的全过程,表明基于 WEB 的空巢老年人健康管理平台在老年健康服务场景中具有较好的可行性和应用价值。相关研究对于推动空巢老年人健康管理服务数字化建设、提升家庭照护协同效率和完善养老服务管理模式具有一定参考意义。由于课题研究时间和开发条件有限,平台在功能深度、交互细节和业务扩展方面仍有进一步完善空间,后续可结合实际应用需求对服务内容、管理流程和用户体验进行持续优化。
参考文献
致 谢
在撰写这篇空巢老年人健康管理系统的毕业论文之际,我满怀感激之情,回顾整个设计过程,从最初的构想到最终的成果,每一步都凝聚了众多人的支持与帮助。
在此,我要特别感谢我的导师。是您的悉心指导与无私奉献,让我在迷茫时找到了方向,在困难前鼓起了勇气。您的严谨治学态度和深厚学术造诣,不仅让我在学术上受益匪浅,更在人生道路上树立了榜样。
我也要感谢我的同学们。我们一起熬夜讨论,一起解决难题,你们的陪伴与帮助,让我的大学生活更加丰富多彩。在团队合作中,我学会了沟通与协作,也更加珍惜这份难得的友谊。
我还要感谢我的家人。是你们的理解与支持,让我能够全身心地投入到学业中。在我遇到挫折时,是你们给予我温暖与鼓励,让我有勇气面对一切挑战。
展望未来,我将带着这份感激与收获,继续前行。我深知,技术的道路永无止境,我将不断学习新知识,掌握新技能,为未来的工作与研究打下坚实的基础。同时,我也希望能将所学应用到更广阔的领域,为社会的发展贡献自己的一份力量。
附录
系统核心代码设计
用户注册
注册页UserController.java,传入user对象,并将"user_id"、 "state"、 "user_group"、"login_time"、"phone"、"phone_state"、 "username"、"nickname"、"password"、"email"、"email_state"、"avatar"、"create_time"输入,重点是 "username"、"nickname"、"password"必须输入,通过获取username,数据库查询是否有该用户,如果存在,则提示“用户已存在”,否则执行将UserId置为空(数据库表中该字段已设置自动递增),代码如图所示。

注册核心代码图
用户登录
登录页,首先传入"username"、"email"、"phone"、"password",用户可通过用户名、邮箱、手机号进行登陆,通过判断resultList来确定查询结果,然后执行查询用户组UserGroup,用户组里面不存在,依然报“用户不存在”,执行完以上代码,最后涉及到用户带有“审核”的,会查询examine_state(用户的审核状态),数据库表user_group中含有source_table和source_field进行查询,以上步骤完成,对输入的密码进行存储Token到数据库,匹对账号和密码,数据库中的AccessToken为令牌,用于身份认证,代码如图所示。

用户登录核心代码图
修改密码
修改密码,通过请求data,获取旧密码,并将新密码重新赋值,期间都是需要通过加密,代码如图所示。

修改密码核心代码图
修改数据
修改一个数据,原理与add基本一致,不同点在于通过readConfig()读取关键字,以及通过readQuery()获取URL后面?指定位置的标识,转成Map对象后,执行update操作,同样通过拼接的sql语句执行,执行过程读取query,toWhereSql()语句完成数据库操作,body为修改对象的值,代码如图所示。

修改数据核心代码图
删除数据
删除一条数据,通过readQuery(),获取URL后面的对象地址,删除FROM具体的table,query删除查询FindConfig语句,代码如图示。

删除数据核心代码图
获取列表
通过请求的参数获取列表数据,代码如图所示。

获取列表核心代码图
图片上传
通过请求的参数获取列表数据,代码如图4-13所示。

图片上传核心代码图 点赞+收藏+关注 → 私信领取本源代码、数据库





