摘要
随着医疗信息化和健康管理的重要性日益凸显,基于微服务框架的健康管理系统备受关注。本研究旨在设计和实现一套高效、智能的健康管理系统,利用微服务架构的优势实现系统的模块化和弹性扩展。通过整合医疗资源、个性化服务和智能算法,该系统旨在提升用户的健康管理体验和医疗服务质量。
该健康管理系统将涵盖健康数据收集、分析、个性化健康管理等关键功能模块,旨在为用户提供全方位、个性化的健康管理服务。通过智能化的数据分析和个性化的健康方案推荐,用户可以更好地了解自身健康状况,接受定制化的健康管理指导,提高健康管理的科学性和有效性。
综上所述,基于微服务框架的健康管理系统的设计与实现将为促进健康管理水平的提升、优化医疗服务体验和推动医疗健康产业的发展提供重要支持。通过引入先进的技术和个性化的服务模式,该系统将为用户提供更智能、便捷的健康管理解决方案,助力人们实现健康生活目标。
关键词:SpringBoot;健康管理系统
Abstract
With the increasing importance of medical information and health management, health management system based on microservice framework has attracted much attention. The aim of this study is to design and implement a set of efficient and intelligent health management system, using the advantages of microservices architecture to achieve modular and elastic expansion of the system. By integrating medical resources, personalized services and intelligent algorithms, the system aims to improve users' health management experience and the quality of medical services.
The health management system will cover key functional modules such as health data collection, analysis and personalized health management, aiming to provide users with comprehensive and personalized health management services. Through intelligent data analysis and personalized health program recommendation, users can better understand their own health status, receive customized health management guidance, and improve the scientific and effective health management.
In summary, the design and implementation of health management system based on microservice framework will provide important support for promoting the improvement of health management level, optimizing medical service experience and promoting the development of medical and health industry. Through the introduction of advanced technology and personalized service mode, the system will provide users with more intelligent and convenient health management solutions to help people achieve healthy life goals.
Key words: SpringBoot; Health management system
目录
1 绪论
随着人们健康意识的提升和医疗科技的不断发展,建立基于微服务框架的健康管理系统具有重要意义。传统的健康管理方式存在信息孤岛、数据分散等问题,而微服务架构的引入可以实现系统的模块化、灵活性和可扩展性,为健康管理系统的构建提供了新思路。该研究选题背景源于对健康管理现状的思考和对微服务架构优势的认识,旨在构建一个智能化、个性化的健康管理系统,促进健康信息的整合和共享,提升人们的健康管理水平和服务体验。
1.2研究意义
基于微服务框架的健康管理系统设计与实现具有重要的研究意义和实际应用价值。首先,微服务架构的引入可以实现系统的模块化和独立部署,提高系统的灵活性和可维护性,从而促进健康管理系统的快速开发和更新。其次,基于微服务的健康管理系统可以实现跨平台、跨设备的健康数据整合和共享,为个人和医疗机构提供更准确、全面的健康管理服务。此外,通过引入智能算法和数据分析技术,可以为用户提供个性化的健康管理方案和预防措施,提升健康管理的科学性和针对性。综上所述,基于微服务框架的健康管理系统的设计与实现将为促进健康管理水平的提升、优化医疗服务体验和推动健康产业的发展提供重要支持。
1.3国内外研究现状
在国内外,基于微服务框架的健康管理系统的研究和实践逐渐受到关注。国外一些医疗机构和科研机构已经开始探索利用微服务架构来构建智能化的健康管理系统,实现医疗信息的互联互通、数据的实时分析和个性化服务的提供。这些系统注重数据安全和隐私保护,同时注重用户体验和智能化的健康管理方案。
在国内,一些医疗科研机构和高校也开始关注微服务框架在健康管理领域的应用。他们致力于开发具有个性化健康管理功能的微服务系统,通过整合医疗资源和智能算法,为用户提供更加全面、精准的健康管理服务。同时,国内一些互联网医疗企业也开始尝试利用微服务架构构建健康管理平台,以满足用户多样化的健康管理需求,推动医疗健康行业的数字化转型和创新发展。
总体而言,国内外关于基于微服务框架的健康管理系统的研究现状呈现出不断探索和创新的态势。随着技术的进步和医疗健康行业的发展,相信基于微服务框架的健康管理系统将在未来得到更广泛的应用和推广,为人们的健康管理和医疗服务带来更多便利和效益。
1.4论文结构与章节安排
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对系统需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第1章 交代项目的背景、开发这个系统的现状以及论文的章节安排情况。
第2章介绍系统相关开发环境。
第3章 对系统的具体需求展开分析。
第4章 阐明了网上招聘系统各个功能模块的实现,以图文的形式进行展示。
第5章 阐明了其中涵盖了的功能设计以及数据库的设计。
第6章 阐明了网上招聘系统各个功能模块的实现
第7章 罗列了部分系统调试与测试的记录。
2 系统开发环境
2.1 Java技术
Java语言是在二十世纪末由Sun公司发布的,而且公开源代码,这一优点吸引了许多世界各地优秀的编程爱好者,也使得他们开发出当时一款又一款经典好玩的小游戏。Java语言是纯面向对象语言之一,从发布初期到现今,可以说有将近20多年的历史,已发展成为人类计算机编程语言发展史上的一个深远影响。
Java语言具有非常多种的特性:(1)跨平台的无关性;(2)面向对象; (3)安全性得以保障;(4)支持多个任务;(5)多种编写方式,代码编写简单。对比其他的低级语言、高级语言,Java语言具有明显的显著优势以及未来开阔的前景,可以广泛的应用在个人笔记本电脑、大数据、大型游戏等等。
首先,Java语言具有面向对象的特性,并且易于理解。关于对象,其实可以理解成每一种事物都是一种对象,包括我们人类自身都是一种对象。利用面向对象语言的基本特征来解决软件开发中的实际问题,为有效软件开发提供了技术支持。
其次,Java 语言具有很好的跨平台无关性。所编写出来的应用程序是Java语言编写的,那么就无需再使用编译器来修改程序代码,可以直接在任何计算机系统中运行,Windows系统可以运行,在Linux系统中也可以,也就是经过一次编译,可以到处运行,所以Java语言具有卓越的可移植性,可以很好的跨平台实现。
2.2 Mysql数据库
Mysql是一个多用户、多线程的服务器,采用SQL的数据库,数据库管理系统是基于SQL的客户以及服务器模式的关系,它的优点有强大的功能、操作简单、管理方便、可靠安全、运行较快、多线程、跨平台性、完全网络化、稳定性等,非常适合Web站点或者其他应用软件,在数据库后端的开发。此外,利用许多语言,会员可以编写和访问Mysql数据库的程序。Mysql数据库也是开放源代码的,开发者越来越喜欢使用Mysql关系数据库,应用范围也被推而广之。这是由于速度快和易用性, Web站点或应用软件的数据库后端的开发也都在使用它。
mysql 数据库它有很多的优点,例如它在操作上能够让人通俗易懂、功能强大、信息储存量高等优点。所以被人们广泛应用,对于mysql数据库来说它一般主要是对数据进行编码和查询,而且在很多的设计当中都应用到了该数据库,在此过程当中我们可以对常规的数据进行查询和组合,所以我们在进行使用mysql数据库的时候只要对编写一小段的数据就能实现相应的功能。数据库,就是数据存储的储藏室,只不过数据是存储在计算机上的,而不是现实中的储藏室,数据的存放是按固定格式,而不是无序的,则定义就是 :长期有固定格式,可以共享的存储在计算机存储器上。数据库管理主要包括数据表的建立,数据存储、修改和增加数据,为了使数据库系统能够正常运行,相关人员进行的管理工作。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。
2.3 SpringBoot框架
Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
SpringBoot所具备的特征有:
可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
内嵌Tomcat或Jetty等Servlet容器;
提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
尽可能自动配置Spring容器;
提供准备好的特性,如指标、健康检查和外部化配置;
绝对没有代码生成,不需要XML配置。
3需求分析
3.1 可行性分析
可行性分析是系统分析的第一步,通过可行性分析我们可以得出系统是不是值得开发,如果系统的开发是不可信的,那么就没有必要再进行下面的操作,对于本健康管理系统在可行性方面进行了技术、经济以及操作的分析。
3.1.1 技术可行性分析
技术方面的可行性主要是考虑开发健康管理系统的时候采用的开发语言、数据库等是否可行,本健康管理系统在语言上选择JAVA,采用的是SpringBoot框架以及MYSQL数据库,这些技术目前都很成熟,而且JAVA语言不仅仅支持面向过程,而且还支持面向对象,所以在使用的时候会更加的灵活,在技术选择上完全没有问题。
3.1.2 经济可行性分析
经济方面的可行性主要考虑的是成本以及效益,从成本方面看,开发过程中使用的JAVA、SpringBoot、MYSQL等都可以通过网上搜索下载,没有任何费用,开发的成本几乎不存在;从效益方面看,系统的完成能够给商品仓库管理方面提供支持,降低企业的成本,提高管理的效率,因此在经济上也是没有问题的。
3.1.3 操作可行性分析
操作方面主要考虑的是用户在使用以及管理人员在管理的时候,是否简单可行,没有任何计算机基础的用户能否使用,开发的健康管理系统在设计的时候秉承简单易学的理念,在用户进入系统后都会有固定的导航按钮,只要认字就可以操作完成,而且管理员在管理方面也只需简单的增删改查即可完成,因此在操作上也是可行的。
总的来看,开发的健康管理系统在可行性方面是没有问题的,值得开发,而且其他的完成对行业发展来说具有重大意义。
3.2 功能需求分析
健康管理系统分为三大角色:普通用户、医生用户和管理员。
普通用户:
(1)注册登录:用户通过注册登录系统,可通过点击头像中我的账户,对个人信息进行增删改查。比如个人资料、头像和密码修改。
(2)通知公告:用户点击可查看网站公告、关于我们、联系方式、网站介绍。
(3)健康咨讯:用户点击可通过搜素医生姓名、咨讯名称和发布时间进行查看健康咨讯列表,同时可对咨讯文章进行点赞、收藏和评论。
(4)个人中心:用户点击头像可查看“个人中心,”包括个人首页、健康记录、通讯信息、健康评估、饮食信息、运动信息和收藏。点击“健康记录添加”,选择用户账号,输入用户姓名、用户性别、用户年龄、用户电话、记录时间、血压数量、血糖数量、身高数量、体重数量和备注信息,点击“提交”按钮进行添加。点击“饮食信息添加”,选择用户账号,输入用户姓名、记录时间、食物内容和饮食详情,点击“提交”按钮进行添加。点击“运动信息添加”,选择用户账号,输入用户姓名、记录时间、运动项目、运动时长和运动详情,点击“提交”按钮进行添加。
医生用户:
(1)注册登录:用户通过注册登录系统,可通过点击头像中我的账户,对个人信息进行增删改查。比如个人资料、头像和密码修改。
(2)通知公告:用户点击可查看网站公告、关于我们、联系方式、网站介绍。
(3)健康咨讯:用户点击可通过搜素医生姓名、咨讯名称和发布时间进行查看健康咨讯列表,同时可对咨讯文章进行点赞、收藏和评论。
(4)个人中心:用户点击头像可查看“个人中心”,包括个人首页、健康咨讯、健康记录、通讯信息、健康评估和收藏。点击“健康咨讯添加”,输入咨讯名称,上传咨讯图片,输入发布时间、咨询内容和咨讯详情,点击“提交”按钮进行添加。
管理员:
(1)登录:管理员的账号是在数据列表中直接设置生成的,不需要进行注册,可直接输入账号密码登录,同时可对管理员资料进行增删改查。
(2)系统用户:系统用户:管理员点击可查看管理员、普通用户和医生用户;同时可对系统用户进行增删改查。
(3)健康咨讯管理:管理员点击可查看健康咨讯列表。
(4)健康记录管理:管理员点击可查看健康记录列表。
(5)通讯信息管理:管理员点击可查看通讯信息列表。
(6)健康评估管理:管理员点击可查看健康评估列表。
(7)饮食信息管理:管理员点击可查看饮食信息列表。
(8)运动信息管理:管理员点击可查看运动信息列表。
(9)系统管理:当管理员点击“系统管理”时,可查看轮播图; 如需添加新的轮播图,点击右侧“添加”按钮,上传图片,输入标题,点击“确认”按钮进行添加;同时可对轮播图进行增删改查。
(10)通知公告管理:当管理员点击“通知公告管理”时,可查看通知站公告;如需添加新的通知公告,点击右侧“添加”按钮,输入标题和正文,点击“确认”按钮进行添加。
3.3 非功能性需求分析
健康管理系统的性能性需求分析主要是分析本健康管理系统的安全性怎么样(是否会泄露用户个人信息),可靠性怎么样(用户操作的时候是不是能够根据实际操作显示信息),性能怎么样(运行是否操作流畅),可拓展性怎么样(功能能否继续拓展)等。具体可以表示在如下2-1表格中:
表2-1 健康管理系统非功能需求表
安全性 | 主要指健康管理系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指健康管理系统能够按照用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响健康管理系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着健康管理系统的页面展示内容进行操作,就可以了。 |
可维护性 | 健康管理系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
4 健康管理系统概要设计
4.1系统体系结构
通过上一章节的功能需求分析,可以得出本健康管理系统的功能结构图,其具体结构图如图4-1所示。

图4-1 健康管理系统前端用户功能结构图
4.2总体功设计
本健康管理系统分为普通用户、医生用户和管理员三个角色,其用例图如下健康管理系统的总体用例图如图4-2所示

图4-2健康管理系统功能总体用例图
5 健康管理系统数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
5.1 数据库概念结构设计
下面是整个健康管理系统中主要的数据库表总E-R实体关系图。

图5-1 健康管理系统总E-R关系图
5.2 数据库逻辑结构设计
通过上一小节中健康管理系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表communication_information (通讯信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | communication_information_id | int | 10 | 0 | N | Y | 通讯信息ID | |
2 | doctor_account | int | 10 | 0 | Y | N | 0 | 医生账号 |
3 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
4 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
5 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
6 | communication_time | datetime | 19 | 0 | Y | N | 通讯时间 | |
7 | communication_content | text | 65535 | 0 | Y | N | 通讯内容 | |
8 | user_response | text | 65535 | 0 | Y | N | 用户回复 | |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | dietary_information_id | int | 10 | 0 | N | Y | 饮食信息ID | |
2 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | record_time | datetime | 19 | 0 | Y | N | 记录时间 | |
5 | food_content | text | 65535 | 0 | Y | N | 食物内容 | |
6 | dietary_details | text | 65535 | 0 | Y | N | 饮食详情 | |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | doctor_users_id | int | 10 | 0 | N | Y | 医生用户ID | |
2 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
3 | doctors_gender | varchar | 64 | 0 | Y | N | 医生性别 | |
4 | doctors_age | int | 10 | 0 | Y | N | 0 | 医生年龄 |
5 | doctors_phone_number | varchar | 16 | 0 | Y | N | 医生电话 | |
6 | entire_period_of_actual_operation | int | 10 | 0 | Y | N | 0 | 从业年限 |
7 | proficient_in_areas_of_expertise | varchar | 64 | 0 | Y | N | 擅长领域 | |
8 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
9 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | health_assessment_id | int | 10 | 0 | N | Y | 健康评估ID | |
2 | doctor_account | int | 10 | 0 | Y | N | 0 | 医生账号 |
3 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
4 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
5 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
6 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
7 | user_age | varchar | 64 | 0 | Y | N | 用户年龄 | |
8 | record_time | date | 10 | 0 | Y | N | 记录时间 | |
9 | blood_pressure_quantity | int | 10 | 0 | Y | N | 0 | 血压数量 |
10 | blood_sugar_quantity | int | 10 | 0 | Y | N | 0 | 血糖数量 |
11 | height_quantity | varchar | 64 | 0 | Y | N | 身高数量 | |
12 | weight_quantity | varchar | 64 | 0 | Y | N | 体重数量 | |
13 | evaluation_time | date | 10 | 0 | Y | N | 评估时间 | |
14 | evaluation_content | text | 65535 | 0 | Y | N | 评估内容 | |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | health_information_id | int | 10 | 0 | N | Y | 健康资讯ID | |
2 | doctor_account | int | 10 | 0 | Y | N | 0 | 医生账号 |
3 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
4 | information_name | varchar | 64 | 0 | Y | N | 资讯名称 | |
5 | information_pictures | varchar | 255 | 0 | Y | N | 资讯图片 | |
6 | release_time | date | 10 | 0 | Y | N | 发布时间 | |
7 | information_content | varchar | 64 | 0 | Y | N | 资讯内容 | |
8 | information_details | text | 65535 | 0 | Y | N | 资讯详情 | |
9 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | health_records_id | int | 10 | 0 | N | Y | 健康记录ID | |
2 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
5 | user_age | varchar | 64 | 0 | Y | N | 用户年龄 | |
6 | user_phone_number | varchar | 64 | 0 | Y | N | 用户电话 | |
7 | record_time | date | 10 | 0 | Y | N | 记录时间 | |
8 | blood_pressure_quantity | int | 10 | 0 | Y | N | 0 | 血压数量 |
9 | blood_sugar_quantity | int | 10 | 0 | Y | N | 0 | 血糖数量 |
10 | height_quantity | varchar | 64 | 0 | Y | N | 身高数量 | |
11 | weight_quantity | varchar | 64 | 0 | Y | N | 体重数量 | |
12 | remarks | text | 65535 | 0 | Y | N | 备注信息 | |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | user_age | int | 10 | 0 | Y | N | 0 | 用户年龄 |
5 | user_phone_number | varchar | 16 | 0 | Y | N | 用户电话 | |
6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | sports_information_id | int | 10 | 0 | N | Y | 运动信息ID | |
2 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | record_time | datetime | 19 | 0 | Y | N | 记录时间 | |
5 | sports_events | varchar | 64 | 0 | Y | N | 运动项目 | |
6 | exercise_duration | varchar | 64 | 0 | Y | N | 运动时长 | |
7 | sports_details | text | 65535 | 0 | Y | N | 运动详情 | |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
6 健康管理系统详细设计与实现
6.1普通用户功能模块
6.1.1注册界面
不是健康管理系统中正式会员的是可以在线进行注册的,当用户点击“注册”按钮,填写上自己的账号+密码+确认密码+昵称等,再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可会员注册成功。其用注册流程图如图6-2所示,注册界面展示如下图所示。
图6-1 注册流程图

图6-2注册界面图
注册代码如下:
/**
* 注册
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(HttpServletRequest request) throws IOException {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = service.readBody(request.getReader());
query.put("username",String.valueOf(map.get("username")));
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
public Map<String,Object> readBody(BufferedReader reader){
BufferedReader br = null;
StringBuilder sb = new StringBuilder("");
try{
br = reader;
String str;
while ((str = br.readLine()) != null){
sb.append(str);
}
br.close();
String json = sb.toString();
return JSONObject.parseObject(json, Map.class);
}catch (IOException e){
e.printStackTrace();
}finally{
if (null != br){
try{
br.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
return null;
}
public void insert(Map<String,Object> body){
E entity = JSON.parseObject(JSON.toJSONString(body),eClass);
baseMapper.insert(entity);
log.info("[{}] - 插入操作:{}",entity);
}
6.1.2 登录界面
健康管理系统中的前台上注册后的会员是可以通过自己的账户名和密码进行登录的,当会员输入完整的自己的账户名和密码信息并通过滑动验证通过后,点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到健康管理系统的首页中;否则将会提示相应错误信息,用户登录流程如图6-4所示,登录界面如下图所示。
图6-3 登录流程图

图6-4用户登录界面图
登陆代码如下:
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
QueryWrapper wrapper = new QueryWrapper<User>();
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
public String select(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer("select ");
sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
}
if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
}
if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
}
log.info("[{}] - 查询操作,sql: {}",table,sql);
return sql.toString();
}
public List selectBaseList(String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList<>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
6.1.3健康咨讯界面
用户点击可通过搜素医生姓名、咨讯名称和发布时间进行查看健康咨讯列表,同时可对咨讯文章进行点赞、收藏和评论。界面如下图所示。

图6-5 健康咨讯界面图
6.1.4个人中心界面
个人中心:用户点击头像可查看“个人中心,”包括个人首页、健康记录、通讯信息、健康评估、饮食信息、运动信息和收藏。如下图所示。

图6-6个人中心页面图
(1)点击“健康记录添加”,选择用户账号,输入用户姓名、用户性别、用户年龄、用户电话、记录时间、血压数量、血糖数量、身高数量、体重数量和备注信息,点击“提交”按钮进行添加。

图6-7 健康记录添加页面图
(2)点击“饮食信息添加”,选择用户账号,输入用户姓名、记录时间、食物内容和饮食详情,点击“提交”按钮进行添加。界面图如下。

图6-8 饮食信息添加页面图
(3)点击“运动信息添加”,选择用户账号,输入用户姓名、记录时间、运动项目、运动时长和运动详情,点击“提交”按钮进行添加。界面图如下。

图6-9 运动信息添加页面图
6.2医生用户功能模块
6.2.1个人中心界面
个人中心:用户点击头像可查看“个人中心”,包括个人首页、健康咨讯、健康记录、通讯信息、健康评估和收藏。界面如下图所示。

图6-10 个人中心界面图
(1)点击“健康咨讯添加”,输入咨讯名称,上传咨讯图片,输入发布时间、咨询内容和咨讯详情,点击“提交”按钮进行添加。界面图如下。

图6-11 健康咨讯添加界面图
6.3管理端功能模块
6.3.1 系统管理界面
系统管理:当管理员点击“系统管理”时,可查看轮播图; 如需添加新的轮播图,点击右侧“添加”按钮,上传图片,输入标题,点击“确认”按钮进行添加;同时可对轮播图进行增删改查。界面如下图所示。

图6-12 系统管理界面图
6.3.2通知公告管理界面
通知公告管理:当管理员点击“通知公告管理”时,可查看通知站公告;如需添加新的通知公告,点击右侧“添加”按钮,输入标题和正文,点击“确认”按钮进行添加。界面如下图所示。

图6-13通知公告管理界面图
6.3.3 系统用户界面
系统用户:系统用户:管理员点击可查看管理员、普通用户和医生用户;同时可对系统用户进行增删改查。界面如下图所示。

图6-14 系统用户管理界面图
7系统的测试
7.1测试的目的
系统的前台、后台、数据库完成以后,这个系统才算是完成了一半,我们在这之后要对系统进行最后的一个阶段,那就是测试了,测试对一个系统来说是非常重要的,有的时候开发完一个系统,如果测试不合格的话,这个系统是没有办法进行投入使用的,所有我们要用测试对系统的功能进行检验,把不完善的功能尽量完善,把出现的bug解决掉,然后给用户呈现出一个完美的系统。通过对系统最后一步的测试,使得开发人员对自己的系统更加有信心,更加积极的为后期的系统版本的更新提供支持。
7.2 系统测试用例
表7-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
健康咨讯查看功能测试:
表7-2健康咨讯查看功能测试表
用例名称 | 健康咨讯查看 |
目的 | 测试健康资讯查看功能 |
前提 | 用户登录 |
测试流程 | 点击健康资讯列表 |
预期结果 | 可以查看到所有健康资讯信息 |
实际结果 | 实际结果与预期结果一致 |
医生用户添加健康咨讯界面测试:
表7-3 医生用户添加健康咨讯界面测试表
用例名称 | 健康咨讯布测试用例 |
目的 | 测试健康咨讯发布功能 |
前提 | 医生用户正常登录情况下 |
测试流程 | 1)医生用户点击个人中心,然后点击健康咨讯添加后并填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,页面首页会显示新的健康咨讯 |
实际结果 | 实际结果与预期结果一致 |
密码修改搜索功能测试:
表7-4 密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
7.3 系统测试结果
通过编写健康管理系统的测试用例,已经检测完毕一上功能模块的测试,通过这4大模块为健康管理系统的后期推广运营提供了强力的技术支撑。
结 论
健康管理系统是基于Spring Boot框架开发的一款应用,旨在为个人提供全面的健康监测和预警服务。该系统利用先进的传感技术和数据分析算法,实时收集个人的生理参数、运动数据、健康信息等信息,并通过智能算法进行综合分析和评估。系统可以根据个人的健康状况和预设的健康标准,及时发出预警提醒,帮助用户及时发现潜在的健康问题并采取相应的措施。
此外,健康管理系统还具备数据可视化和报告生成功能,用户可以通过界面直观地查看自己的健康趋势和历史记录,有助于更好地管理和改善自己的健康状况。无论是日常生活中的健康管理,还是对特定群体的健康监测,该系统都能为个人提供有力的支持和指导,促进健康意识的增强和健康行为的养成。
参考文献
[1]孟意琳,胡霖霖,张永华.睡眠健康管理系统应用于失眠患者的临床研究[J].中国现代医生,2024,62(06):19-23.
[2]陈鸿胜,宛楠,袁雨豪.糖尿病患者健康管理系统的设计与实现[J].福建电脑,2024,40(02):105-108.DOI:10.16707/j.cnki.fjpc.2024.02.022.
[3]杨涛.基于“人脑”与“电脑”的冲突探讨智能化健康管理系统的改革[J].健康体检与管理,2024,5(01):89-93.
[4]Khan S ,Yairi T ,Tsutsumi S , et al. [J]. Annual Reviews in Control,2024,57.
[5]梁煜琪,欧文辉.基于大数据健康管理系统的研究[J].电脑编程技巧与维护,2023(11):113-116.DOI:10.16184/j.cnki.comprg.2023.11.008.
[6]卞佳妮.基于健康服务信息系统的患者中医体质健康管理模式构建与思考[J].中医药管理杂志,2023,31(19):125-127.DOI:10.16690/j.cnki.1007-9203.2023.19.076.
[7]顾林跃.基于智慧医疗服务平台的移动健康系统应用探讨[J].智慧健康,2023,9(28):1-4+9.DOI:10.19335/j.cnki.2096-1219.2023.28.001.
[8]吴宇,汪骞,丁海元等.深圳市智慧校园卫生健康管理系统建设与应用[J].中国公共卫生,2023,39(09):1217-1220.
[9]王婷,陆克中,黄孝等.基于微信小程序的个人健康管理系统设计[J].信息与电脑(理论版),2022,34(10):155-158.
[10]吕冠艳,李奋华.个人健康档案管理系统设计与开发[J].电脑编程技巧与维护,2022(02):63-65.DOI:10.16184/j.cnki.comprg.2022.02.032.
[11]Kwan B C ,YoungTaek P ,LeeSeung K , et al. [J]. Healthcare informatics research,2020,26(4).
[12]吴雨渲,严张凌.基于微服务架构的个人健康管理系统的设计与实现[J].信息与电脑(理论版),2020,32(15):97-99.
[13]樊换换. 个人健康管理系统的设计与实现[D].北京邮电大学,2021.DOI:10.26969/d.cnki.gbydu.2020.002212.
[14]蔡俊,王志刚,王丽等.基于STM32的个人健康管理系统设计[J].江苏理工学院学报,2020,26(02):51-60.DOI:10.19831/j.cnki.2095-7394.2020.02.009.
[15]NAGARAJ P ,DEEPALAKSHMI P . [J]. Electronic Government, an International Journal,2020,16(1).
[16]于淑云.移动端个人健康管理系统技术浅析[J].信息与电脑(理论版),2019,31(23):38-39.
[17]沈杰.计算机软件在我国健康管理服务中的应用分析[J].中国卫生产业,2019,16(34):174-176.DOI:10.16659/j.cnki.1672-5654.2019.34.174.
致谢
通过这样设计与开发这样一个系统,首先向我们老师、同学和朋友表达真诚的感谢。没有指导老师的指导和平日子的教导,我也不能够学到如此多的专业知识。另外,也佩服老师兢兢业业的工作态度,给我们做好了表率。系统开发技术要学习的东西很多,前台框架、后台框架、业务流程、数据结构、操作系统等各种知识非常的丰富,都需要慢慢的专研。在这里,首先感谢老师细心的教导,我只想说一句:“老师,谢谢您,您辛苦了”!有您在,大学生活才更加的充实。另外,我要感谢我的室友,由于知识掌握得不够产生各种问题,正因为有了你们的帮忙,给我提出很多很好的建议,才能更好的解决系统开发问题。同时,我也应该感谢那些计算机专业的先哲们,正是由于有这么一群人,才能把这样的专业研究得如此透彻,才能助力新世界的诞生。你们的理论,是我们一生学习的内容,你们的成就,是我们一生追求的目标。
最后,也希望自己在未来的道路上能够走得更远,不辜负在大学的学习,以及老师们的细致的教导。
请关注点赞+私信博主,免费领取项目源码