(附项目源码)Java开发语言,springboot 乳腺癌术后中医健康管理APP 56,计算机毕设程序开发+文案(LW+PPT)
摘要
乳腺癌是一种常见的恶性肿瘤,对患者身体和心理造成了重大影响。手术是治疗乳腺癌的主要方式之一,术后患者需要进行长期的健康管理和康复指导。中医作为传统医学的一种,具有独特的辩证施治方法,可以在乳腺癌术后的康复过程中发挥积极作用。因此,设计和实现一个针对乳腺癌术后患者的中医健康管理APP具有重要意义。
乳腺癌术后中医健康管理APP的开发采用Java语言,使用SpringBoot框架,采取MySQL作为后台数据的主要存储单元实现了本系统的全部功能。乳腺癌术后中医健康管理APP具有首页(轮播图、健康评测、运动学习、健康公告、中医资讯、运动学习推荐)、 中医资讯、我的(基本信息、收藏、复查提醒、测评结果)等功能。该系统代码的复用率高,系统维护代价小,具有方便、灵活、高效等特点。
关键词:乳腺癌术后中医健康管理APP;Springboot;Android
abstract
Breast cancer is a common malignant tumor, which has a significant impact on the physical and mental health of patients. Surgery is one of the main ways to treat breast cancer, and postoperative patients need long-term health management and rehabilitation guidance. As a kind of traditional medicine, Chinese medicine has a unique dialectical treatment method, which can play an active role in the rehabilitation process after breast cancer surgery. Therefore, it is of great significance to design and implement a Chinese medicine health management APP for breast cancer patients after surgery.
The development of Chinese medicine health management APP after breast cancer surgery uses Java language, the SpringBoot framework, and MySQL as the main storage unit of background data to achieve all the functions of the system. The Chinese medicine health management APP after breast cancer surgery has the functions of home page (broadcast map, health evaluation, sports learning, health bulletin, Chinese medicine information, sports learning recommendation), Chinese medicine information, my (basic information, collection, review reminder, evaluation results), etc. The system code has a high reuse rate, low maintenance cost, and is characterized by convenience, flexibility, and efficiency.
Key words: Chinese medicine health management APP after breast cancer surgery; Springboot; Android
目 录
1.1课题背景及意义
随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,为方便用户能够随时进行乳腺癌术后中医健康管理APP的数据信息管理,特开发了基于SpringBoot框架的乳腺癌术后中医健康管理APP。
乳腺癌是一种常见的恶性肿瘤,对患者身体和心理造成了重大影响。手术是治疗乳腺癌的主要方式之一,术后患者需要进行长期的健康管理和康复指导。中医作为传统医学的一种,具有独特的辩证施治方法,可以在乳腺癌术后的康复过程中发挥积极作用。因此,设计和实现一个针对乳腺癌术后患者的中医健康管理APP具有重要意义。
乳腺癌术后中医健康管理APP的开发采用Java语言,后端使用SpringBoot框架,前端采取APP应用框架,通过MySQL作为后台数据的主要存储单元实现了本系统的全部功能。乳腺癌术后中医健康管理APP具有首页(轮播图、健康评测、运动学习、健康公告、中医资讯、运动学习推荐)、 中医资讯、我的(基本信息、收藏、复查提醒、测评结果)等功能。该系统代码的复用率高,系统维护代价小,具有方便、灵活、高效等特点。
通过设计和实现乳腺癌术后中医健康管理APP,可以为乳腺癌手术患者提供更全面、个性化的健康管理服务。该APP将帮助患者进行健康测评,给出测评结果,为患者分析健康状态,同时及时提醒患者进行复查,为患者推送运动学习何中医资讯等内容,提供乳腺癌术后中医健康学习的渠道和工具,提高患者术后健康管理意识。管理员可以进行系统管理,发布健康公告,更新中医资讯和健康评测试题库,让患者便捷地获取相关通知和信息;管理乳腺癌术后中医健康管理相关事务,及时提醒患者进行复查,全面监控和协调患者的健康管理过程。因此,乳腺癌术后中医健康管理APP的设计与实现将有助于提高患者的自我乳腺癌术后中医健康管理能力,促进康复效果,对临床实践具有积极意义。
1.2 开发现状
目前国内外在乳腺癌术后健康管理领域的应用程序开发中,主要集中在传统的医院或医疗机构内部使用的管理系统。这些系统通常由医疗专业人员设计和开发,用于帮助医生和护士对患者进行远程监测和康复指导。
国外一些大型医疗机构和医疗科技公司也开始开发面向患者的医疗健康管理应用程序,其中一些应用程序提供了智能化的健康管理方案,包括例如远程跟踪和监测、指导营养和生活方式方面的建议等。
在中国,一些医疗机构也开始尝试开发面向乳腺癌术后患者的健康管理应用程序,其中一些应用程序提供了康复训练、饮食指导、用药提醒等功能。然而,目前国内外的乳腺癌术后患者中医健康管理应用相对较少,有待进一步开发和完善。因此,设计和实现乳腺癌术后中医健康管理APP具有很大的发展空间和开发意义。
1.3 研究内容
乳腺癌术后中医健康管理APP的开发及实现,所需要的工作内容:
(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。针对乳腺癌术后中医健康管理APP的开发,使用SpringBoot后端开发框架,采用APP前端应用框架,通过发布在iOS、Android、Web(响应式)、以及各种小程序等多个平台来实现系统的开发,以解决传统乳腺癌术后中医健康管理和服务中的存在的问题。
(2)系统确认完成后,结合系统开发的需求进行确认系统开发所使用的技术。乳腺癌术后中医健康管理APP的开发使用SpringBoot框架作为后端开发技术,同时结合Android平台进行前端界面开发。数据库的选择也需要根据实际需求进行搭建和配置,以满足系统对数据的存储和管理需求。对所选用的技术进行技术分析,确保其能够完成功能实现和系统的稳定运行。
(3)确定好系统使用的技术后,进行在线确认系统所划分的用户角色,并根据用户角色划分确定所要设计的功能模块。对于乳腺癌术后中医健康管理APP的设计,可以划分为管理员和患者用户两个角色。管理员可以获取到所有用户的详细数据信息,并根据需求进行处理和解决问题。而患者用户则可以通过APP进行在线健康测评,获取测评结果、复查提醒、运动学习、中医资讯等信息。系统的数据库实现数据的交互和共享,确保用户和管理员可以根据各自的需求进行操作和处理。
(4)系统的功能模块确认完成后,进行系统及界面的设计。根据不同角色的需求,设计相应的界面和操作方式,以提供用户友好的使用体验。同时,在设计过程中需要考虑系统的安全性和稳定性,确保用户的隐私和数据的安全。在设计完成后,通过测试来判断程序是否完善,进行功能和性能的验证。通过不同用户的操作和测试,找出系统可能存在的问题和漏洞,并进行修复和优化。当系统经过测试没有任何问题时,可以将系统上传并投入正式使用。
第2章 相关技术介绍
2.1 开发技术说明
本系统前端框架采用了比较流行的APP框架,并针对Android平台进行适配。使用Vue-Router和Vuex实现动态路由和全局状态管理,通过Ajax实现前后端通信。借助Element UI组件库,可以快速构建页面并在不同屏幕尺寸下展示完美的布局。
后端部分则基于Java的SpringBoot框架进行开发,以提供稳定高效的后台支持。该框架集成了MyBatis和Redis等相关技术,用于实现数据库访问和缓存功能。SpringBoot的特性使得开发过程更加简化,并提供了丰富的插件和工具来支持系统的开发和部署。
通过前后端的协同工作,本系统能够提供用户友好的界面和良好的性能,同时满足iOS、Android、Web(响应式)、以及各种小程序等多个平台的需求。采用MVVM模式的前端开发和SpringBoot框架的后端开发,使系统具备良好的可维护性、可扩展性和易用性,为用户提供优质的使用体验。
2.2 APP工具
uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。
DCloud公司拥有900万开发者、数百万应用、12亿手机端月活用户、数千款uni-app插件、70+微信/qq群。阿里小程序工具官方内置uni-app,腾讯课堂官方为uni-app录制培训课程,开发者可以放心选择。uni-app在开发者数量、案例、跨端抹平度、扩展灵活性、性能体验、周边生态、学习成本、开发成本等8大关键指标上拥有更强的优势。在跨端的同时,通过条件编译+平台特有API调用,可以优雅的为某平台写个性化代码,调用专有能力而不影响其他平台。支持原生代码混写和原生sdk集成。
2.3 spring boot框架介绍
Spring Boot是一个基于Spring的开源框架,它通过简化配置和快速启动内嵌式服务器,帮助开发人员快速搭建基于Spring的应用程序。Spring Boot引入了“约定优于配置”的理念,提供了许多开箱即用的功能和插件,使得开发者能够更加专注于业务逻辑的开发,而不用花费太多精力在配置上。并且能够通过自动配置和约定优于配置的原则,大大简化了应用程序的配置过程,支持内嵌式的服务器,例如Tomcat、Jetty等,可以快速启动和运行应用程序,方便开发和部署。
2.4 MySQL数据库
科技的进步,给日常带来许多便利:教室的投影器用到了虚拟成像技术,数码相机用到了光电检测技术,比如超市货物进出库的记录需要一个信息仓库。这个信息仓库就是数据库,而这次的超市商品管理系统也需要这项技术的支持。
用MySQL这个软件,是因为它能接受多个使用者访问,而且里面存在Archive等。它会先把数据进行分类,然后分别保存在表里,这样的特别操作就会提高数据管理系统自身的速度,让数据库能被灵活运用。MySQL的代码是公开的,而且允许别人二次编译升级。这个特点能够降低使用者的成本,再搭配合适的软件后形成一个良好的网站系统。虽然它有缺点,但是综合各方面来说,它是使用者的主流运用的对象。
3.1 需求分析
在开发研究之前,对系统的需求进行认真分析是至关重要的。市场调研可以帮助确定实际场景中使用者的功能需求,并明确整个系统开发的目标和定位。本章节将对乳腺癌术后中医健康管理APP的性能、业务流程和数据等进行分析。
1.性能分析:
针对SpringBoot技术和APP框架,需要对系统的性能进行评估和分析。这包括系统的响应时间、并发处理能力、稳定性和扩展性等方面的考虑。通过对系统的性能进行分析,可以确保系统能够高效运行,并满足用户的需求。
2.业务流程分析:
通过分析乳腺癌术后中医健康管理APP的业务流程,可以清晰地了解系统的操作流程和各个模块之间的关系。这有助于确定系统的功能模块划分和设计,并确保用户和管理员能够顺利完成各项操作。同时,业务流程分析还可以帮助优化系统的流程和提升用户体验。
3.数据分析:
系统的数据分析是对系统所涉及的数据进行全面的理解和分析。这包括数据的来源、存储方式、处理方式以及数据的安全性和隐私保护等方面。通过对数据进行分析,可以确保系统能够有效管理和利用数据,同时保护用户的隐私和数据安全。
4.在分析了性能、业务流程和数据等方面后,可以更准确地确定Android平台上基于SpringBoot框架的乳腺癌术后中医健康管理APP的功能需求。系统设计应以用户和管理员的实际需求为出发点,了解他们所需的功能和管理工作,并确保系统能够满足这些需求。
5.通过可行性分析,确保开发的系统平台符合之前的需求,并能完成预定的功能。只有在对系统进行预先评估和分析后,才能确保系统的可行性和成功开发。最终目标是开发一个功能齐全且符合实际需求的乳腺癌术后中医健康管理APP,以促进乳腺癌术后中医健康管理APP的信息管理和沟通。
3.2 可行性分析
3.2.1技术可行性
乳腺癌术后中医健康管理APP采用了Java技术和MySQL数据库作为设计工具,开发了功能完备、使用简单的前端应用程序,并建立、维护了一个数据完整、安全、稳定性强的后台数据库系统。这些技术在APP前端应用框架和后端SpringBoot开发框架中得到了广泛应用。
通过使用Java技术和MySQL数据库,可以实现乳腺癌术后中医健康管理APP的开发和运行。Java作为一种常用的编程语言,具有广泛的应用领域和成熟的开发生态系统。它提供了丰富的库和工具,使开发人员能够轻松构建各种功能模块。而MySQL作为一种关系型数据库管理系统,具有数据完整性高、稳定性好的特点,适合处理乳腺癌术后中医健康管理APP的数据存储和管理需求。
通过将Java技术和MySQL数据库相结合,可以构建一个可靠、安全、高效的乳腺癌术后中医健康管理APP。前端应用程序的开发采用了简单易行的方式,用户可以轻松上手和操作。同时,后台数据库系统的建立和维护保证了数据的完整性和安全性,为功能分配和管理提供了基础。
通过APP前端应用框架和使用SpringBoot框架作为后端开发工具,uni-app是一个使用Vue.js开发所有前端应用的框架,可以发布在iOS、Android、Web(响应式)、以及各种小程序等多个平台;同时SpringBoot具有简化配置、内嵌Web服务器、自动化构建等优点,可以使开发过程更加简单且易于维护,让系统更加稳定和高效。
3.2.2经济可行性
桌面乳腺癌术后中医健康管理APP的开发由开发者自己完成,无需购买其他软件或端口等。在乳腺癌术后中医健康管理APP管理的开发之前进行的市场调研和参考其他类似的乳腺癌术后中医健康管理APP是没有任何费用的。开发者通过自身的努力来完成所有工作,并且大多数问题都能够通过与同学和指导老师的沟通和帮助解决。因此,在经济上,乳腺癌术后中医健康管理APP的开发是完全可行的,无需承担额外的费用。
采用Java技术进行开发是一种成熟的选择,因此在经济上也没有问题。Java技术具备广泛应用和丰富的资源库,开发者可以利用这些资源来实现所需的功能,而无需额外投入经济成本。
3.2.3操作可行性
可操作性主要指乳腺癌术后中医健康管理APP系统设计完成后,用户在使用过程中的体验度。对于管理员来说,他们可以随时通过管理相关的数据信息。同时,对于管理员和患者用户两个用户角色,他们可以简单明了地进入自己的系统界面,并通过界面导航菜单轻松地操作各个功能模块。这样方便了用户获取信息需求和满足乳腺癌术后中医健康的管理需求。
对于系统的操作,不需要专业人员也能够直接进行功能模块的操作和管理。本系统采用界面窗口进行登录,因此操作人员只需要具备基本的电脑操作知识即可轻松上手。
在Android平台上开发的乳腺癌术后中医健康管理APP也具备良好的可操作性。通过简洁直观的界面设计和友好的交互方式,用户可以轻松理解和使用系统的各项功能。无论是管理员还是患者用户,都能够通过简单的操作步骤完成所需的任务。
3.3 性能分析
对于性能分析来说,与传统的管理方式相比,乳腺癌术后中医健康管理APP的开发设计使用计算机和网络技术,采用流行的数据库进行数据存储和管理。传统的管理方式通常需要人工通过纸张和笔记进行数据信息的统计和管理,这种方式不仅效率低下,而且需要大量的人力和物力成本。同时,对于存储和查找特定数据信息也比较麻烦。
而通过开发一套基于计算机和网络技术的乳腺癌术后中医健康管理APP,可以降低成本费用,提高用户的工作效率。乳腺癌术后中医健康管理APP作为一个独立的系统,利用流行的数据库进行数据的存储和开发,主要目的是实现乳腺癌术后中医健康管理APP的用户角色和相应的功能模块。相比传统的管理方式,乳腺癌术后中医健康管理APP的实现可以节约资源,并且提高业务的处理速度。它具有快速、高效和强大的功能性。
在Android平台上开发的乳腺癌术后中医健康管理APP利用计算机和网络技术,实现了数据的集中存储和快速访问。通过合理的数据库设计和优化,可以提高系统的响应速度和处理效率。同时,通过界面友好的设计和操作简便的方式,用户可以更轻松地进行数据管理和信息查询。
3.4 系统总体设计原则
一个系统要在开发和维护的过程中方便使用,必须采取一定的设计原则,其主要设计原则有:
简单性:系统功能简单易懂,只需要掌握基本的计算机操作能力即可使用。
针对性:针对特定的用户,没有多余的其他功能,使用户可以专心使用。
实用性:能够满足用户进行园信息搜索等方面的需求。
一致性:设计风格、命名规范一致,整个系统的各个功能模块色彩、摆放位置、功能等都是一致的。
先进性:本系统的代码采用读取数据的方式,方便后续开发、拓展。
乳腺癌术后中医健康管理APP需要满足的设计需求有以下几个:
1.信息获取方便,用户可在网页上快速浏览到乳腺癌术后中医健康管理的相关信息
2.资讯详情,单独查看中医资讯等。
3.注册登录,需要吸引用户,即通过注册来提高用户的存留率。
4.修改用户信息,可以修改用户密码或者用户名等一些个性化操作。
5.管理员功能,管理员可以对用户或者乳腺癌术后中医健康管理信息进行管理。
6.系统安全,操作简便,不过于复杂。
7.系统可以稳定运行,不存在卡顿等问题造成用户反感。
3.5 系统功能分析
3.5.1功能性分析
根据用户对系统的需求,要求系统简单操作,能够准确,完整的对信息进行管理。对农商品销售管理做需求做解析后,划分为了患者用户和管理员两大功能板块。具体功能如下。
患者用户模块:
- 注册登录:游客可以通过注册成为系统用户,使用账号密码可进行登录,使用系统功能。
- 首页:可查看轮播图、健康评测、运动学习、健康公告、中医资讯、运动学习推荐和其他系统功能。例如:
- 点击“健康评测”,可查看所有健康评测信息,支持名称搜索,可点击进行答题操作,填写并提交答题信息(报名人数、报名备注),等待管理员评分;
- 点击“运动学习”,可查看所有运动学习信息,支持资料名称、资料类型搜索,可点击查看详情(资料封面、资料名称、资料类型、学习视频、资料简介),进行点赞、收藏和评论;
- 点击“健康公告”,可查看包括关于我们、联系方式、网站介绍等管理员发布的所有健康公告,点击可查看详情。
- 中医资讯:可查看管理员发布的所有中医资讯信息,支持搜索文章,点击可查看详情,进行点赞、收藏和评论。
- 我的:可对基本信息、收藏、复查提醒、测评结果等信息进行管控。
- 点击“基本信息”:可对个人信息进行管控,包括修改密码和修改资料(头像、昵称、邮箱、用户姓名、患者姓名、患者性别、联系电话等);
- 点击“收藏”,可查看所收藏的信息,包括运动学习、中医资讯等信息,可进行增删除操作;
- 点击“复查提醒”,可查看自己的复查提醒信息,进行查询操作,支持患者姓名搜索,可点击查看详情(患者用户、患者姓名、复查时间、复测内容);
- 点击“测评结果”,可查看自己的测评结果信息,进行查询操作,支持患者姓名搜索,可点击查看详情(患者用户、患者姓名、评测时间、健康程度、评测结果、恢复建议)。
管理员模块
- 登录:管理员账号密码由系统生成,可使用账号密码可进行登录,使用系统功能。
- 后台首页:可查看试卷平均分统计、考试成绩拥挤等信息数据统计分析图表。
- 系统用户:可对患者用户和管理员进行管控,包括进行增删改查操作,点击可查看详情。
- 复查提醒管理:可查看所有复查提醒信息,进行增删改查操作,支持患者姓名搜索,可点击查看详情(患者用户、患者姓名、复查时间、复测内容)。
- 运动学习管理:可查看所有运动学习信息,进行增删改查操作,支持资料名称、资料类型搜索,可点击查看详情(资料封面、资料名称、资料类型、学习视频、资料简介)和查看评论。
- 测评结果管理:可查看所有测评结果信息,进行增删改查操作,支持患者姓名搜索,可点击查看详情(患者用户、患者姓名、评测时间、健康程度、评测结果、恢复建议)。
- 系统管理:可对首页的轮播图进行管理,进行增删改查操作,支持标题搜索,可点击查看详情。
- 健康公告管理:可对健康公告进行管理,进行增删改查操作,支持标题搜索,可点击查看详情
- 资源管理:可对中医资讯和资讯分类进行管理,进行增删改查操作,中医资讯支持标题、标签、分类搜索,可点击查看详情(封面图、标题、分类、标签、描述、正文)和查看评论;资讯分类支持类型名称搜索。
- 考试管理:可对科目列表、试题库、错题记录、试卷列表进行管理。具体如下:
- 点击“科目列表”,可查看科目列表信息,进行增删改查操作,支持名称搜索,可点击查看详情;
- 点击“试题库”,可查看试题库信息,进行增删改查操作,支持科目名称、题目名称、题目类型搜索,可点击查看详情(科目、类型、题目、选项、参考答案、分值);
- 点击“错题记录”,可查看错题记录信息,进行查询和删除操作,支持科目名称、题目名称搜索,可点击查看详情;
- 点击“试卷列表”,可查看试卷列表信息,进行增删改查操作,支持科目名称、名称搜索,可点击查看详情(科目名称、试卷名称、答题时长、总分、状态),并可点击题库、生成(单选题目数目、多选题目数目、判断题数目、填空题数目、主观题数目)、查看分数、评分(提交人、评分状态)等操作,根据用户测评,得出测评结果。
3.5.2非功能性分析
乳腺癌术后中医健康管理APP的非功能性需求比如乳腺癌术后中医健康管理APP的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
表3-1乳腺癌术后中医健康管理APP非功能需求表
安全性 | 主要指乳腺癌术后中医健康管理APP数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指乳腺癌术后中医健康管理APP能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响乳腺癌术后中医健康管理APP占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着乳腺癌术后中医健康管理APP的页面展示内容进行操作,就可以了。 |
可维护性 | 乳腺癌术后中医健康管理APP开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
3.6 系统时序图分析
3.6.1登录模块时序图
登录模块主要满足了管理员以及用户的权限登录,登录模块顺序图如图4-3所示。
图3-1 登录顺序图
3.6.2添加信息模块时序图
管理员以及用户登录后均可进行添加信息操作,添加信息模块顺序图如图3-2所示。
图3-2 添加信息顺序图
3.7 系统活动图分析
根据乳腺癌术后中医健康管理APP的基本活动流程图如图3-3所示:
图3-3 系统活动图
3.8 系统流程分析
3.8.1数据流程
乳腺癌术后中医健康管理APP主要的目的就是实现在线健康测评,进行评分,并对测评评分进行分析,得出测评结果,图3-4就是健康测评的数据流图。
图3-4 健康测评操作展开图
3.8.2业务流程
分析完乳腺癌术后中医健康管理APP的数据流,接下来我们来看系统的业务流程,图3-5就是业务流程图:
乳腺癌术后中医健康管理APP选择B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式。适合在手机上进行操作,只要用户能连网,任何时间、任何地点都可以进行系统的操作使用。系统工作原理图如图4-1所示:
图4-1 系统工作原理图
本乳腺癌术后中医健康管理APP系统的架构设计主要分为可以3层,主要有Web层,业务层,Model层。其中web层还包括View层和Controller层,Model层包括元数据扩展层和数据访问层。系统架构如下图所示。
图4-2 系统架构
4.2 系统用例分析
系统用例分析是对系统中各个功能模块的用户需求和行为进行分析,以识别和描述不同的用户用例。通过系统用例分析,可以深入了解用户在平台上的操作流程和交互方式,为系统设计和开发提供指导,并确保平台能够满足用户的需求和期望。通过上文对系统功能的分析,得出了本乳腺癌术后中医健康管理APP的用例图。
乳腺癌术后中医健康管理APP管理员用例图如图4-3所示。
图4-3 乳腺癌术后中医健康管理APP管理员用例功能图
乳腺癌术后中医健康管理APP患者用户用例图如图4-4所示。
图4-4 乳腺癌术后中医健康管理APP患者用户用例功能图
4.3 系统功能模块设计
整个系统是由多个功能模块组合而成的,要将所有的功能模块都一一列举出来,然后进行逐个的功能设计,使得每一个模块都有相对应的功能设计,然后进行系统整体的设计。
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本乳腺癌术后中医健康管理APP中的用例。那么接下来就要开始对本乳腺癌术后中医健康管理APP的主要功能和数据库开始进行设计。根据前面章节的需求分析得出,乳腺癌术后中医健康管理APP总体设计模块图如下图所示。
图4-5 系统功能模块图
4.4 数据库设计
数据库可以说是所有软件的根本,如果数据库存在缺陷,那么会导致系统开发的不顺利、维护困难、用户使用不顺畅等一系列问题,严重时将会直接损害企业的利益,同时在开发完成后,数据库缺陷也更加难以解决。所以必须要对数据库设计重点把握,做到认真细致。因此,数据库设计是系统开发中至关重要的一环,它涉及到数据的组织、存储和管理。在数据库设计中,我们将根据系统的需求设计数据库的概念结构和逻辑结构,包括定义实体、属性、关系和约束等。
4.4.1概念结构设计
数据库概念结构设计主要涉及数据库的实体和实体之间的关系。通过实体-关系模型或者其他适当的模型,我们将定义系统中涉及的各个实体以及它们之间的联系。,概念模型通常使用E-R图,即实体-联系图(EntityRelationship Diagram)进行描述。E-R图中,矩形框表示实体、椭圆形框表示实体的属性,菱形框表示实体之间的联系。实体与属性间使用实心无向线段进行连接,实体与实体间使用实心无向线段进行连接并标注联系类型。实体之间的联系类型有一对一的联系、一对多的联系、多对多的联系。
根据前文的系统分析得出整个乳腺癌术后中医健康管理APP,以下为主要的数据库表总E-R图,具体如下所示。
图4-6总E-R图
下面根据乳腺癌术后中医健康管理APP设计与实现的数据库总E-R关系图可以得出乳腺癌术后中医健康管理APP设计与实现需要很多实体E-R图,在此罗列出来一些主要的数据库E-R模型图在此罗列出来一些主要的数据库实体属性E-R模型图,具体如下所示。
- 患者用户实体E-R关系如下图所示。
图4-7患者用户实体E-R关系图
- 考试(健康测评)实体E-R关系如下图所示。
图4-8考试(健康测评)实体E-R关系图
- 评测结果实体E-R关系如下图所示。
图4-9 评测结果实体E-R关系图
- 试题实体E-R关系如下图所示。
图4-10试题实体E-R关系图
- 复查提醒实体E-R关系如下图所示。
图4-11 复查提醒实体E-R关系图
将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。
表access_token (登陆访问时长)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | evaluation_results_id | int | 10 | 0 | N | Y | 评测结果ID | |
2 | patient_users | int | 10 | 0 | Y | N | 0 | 患者用户 |
3 | patient_name | varchar | 64 | 0 | Y | N | 患者姓名 | |
4 | evaluation_time | date | 10 | 0 | Y | N | 评测时间 | |
5 | health_level | varchar | 64 | 0 | Y | N | 健康程度 | |
6 | evaluation_results | text | 65535 | 0 | Y | N | 评测结果 | |
7 | recovery_suggestions | 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 | exam_id | mediumint | 8 | 0 | N | Y | 考试id | |
2 | name | varchar | 32 | 0 | N | N | 考试名称:[2,32] | |
3 | duration | int | 10 | 0 | Y | N | 答题时长 | |
4 | score | double | 9 | 2 | Y | N | 总分 | |
5 | status | varchar | 10 | 0 | Y | N | 状态:启用、禁用 | |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | exam_question_id | mediumint | 8 | 0 | N | Y | 试题ID | |
2 | type | varchar | 20 | 0 | Y | N | 类型 | |
3 | title | varchar | 255 | 0 | Y | N | 题目 | |
4 | question_item | varchar | 500 | 0 | Y | N | 选项 | |
5 | answer | varchar | 500 | 0 | Y | N | 参考答案 | |
6 | score | double | 9 | 2 | Y | N | 总分 | |
7 | question_order | int | 10 | 0 | Y | N | 排序 | |
8 | exam_id | mediumint | 7 | 0 | Y | N | 所属试卷 | |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | 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 | patient_users_id | int | 10 | 0 | N | Y | 患者用户ID | |
2 | patient_name | varchar | 64 | 0 | Y | N | 患者姓名 | |
3 | patient_gender | varchar | 64 | 0 | Y | N | 患者性别 | |
4 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | 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 | review_reminder_id | int | 10 | 0 | N | Y | 复查提醒ID | |
2 | patient_users | int | 10 | 0 | Y | N | 0 | 患者用户 |
3 | patient_name | varchar | 64 | 0 | Y | N | 患者姓名 | |
4 | review_time | date | 10 | 0 | Y | N | 复查时间 | |
5 | review_content | text | 65535 | 0 | Y | N | 复查内容 | |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | 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_learning_id | int | 10 | 0 | N | Y | 运动学习ID | |
2 | data_name | varchar | 64 | 0 | Y | N | 资料名称 | |
3 | data_type | varchar | 64 | 0 | Y | N | 资料类型 | |
4 | data_cover | varchar | 255 | 0 | Y | N | 资料封面 | |
5 | learning_videos | varchar | 255 | 0 | Y | N | 学习视频 | |
6 | data_introduction | text | 65535 | 0 | Y | N | 资料简介 | |
7 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
8 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | 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 | user_answer_id | mediumint | 8 | 0 | N | Y | ||
2 | user_id | mediumint | 7 | 0 | N | N | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
3 | exam_id | mediumint | 7 | 0 | N | N | 0 | 考试id |
4 | score | double | 9 | 2 | Y | N | 0.00 | 分数 |
5 | answers | text | 65535 | 0 | Y | N | 答案 | |
6 | score_detail | text | 65535 | 0 | Y | N | 评分详情 | |
7 | objective_score | double | 9 | 2 | Y | N | 0.00 | 客观题得分 |
8 | subjective_score | double | 9 | 2 | Y | N | 0.00 | 主观题得分 |
9 | score_state | tinyint | 4 | 0 | Y | N | 0 | 评分状态 |
10 | nickname | varchar | 255 | 0 | Y | N | 提交人 | |
11 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
第5章 系统实现
5.1.1登录界面
在登录界面输入账号+密码,点击“登录”按钮,系统在用户数据库表中会对管理员、用户的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,其主界面展示如下图5-1所示。
图5-1 登录界面图
登录代码如下:
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostM系统ing("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;
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());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
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, "账号或密码不正确");
}
}
5.1.2注册界面
当用户想要查询、管理相关信息,就必须进行登录,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好注册信息,添加提交,注册的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录,其主界面展示如下图5-2所示。
图5-2 注册界面图
注册代码如下:
/**
* 注册
* @param user
* @return
*/
@PostM系统ing("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
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);
}
5.1.3首页界面
可查看轮播图、健康评测、运动学习、健康公告、中医资讯、运动学习推荐和其他系统功能。例如:
点击“健康评测”,可查看所有健康评测信息,支持名称搜索,可点击进行答题操作,填写并提交答题信息(报名人数、报名备注),等待管理员评分;
点击“运动学习”,可查看所有运动学习信息,支持资料名称、资料类型搜索,可点击查看详情(资料封面、资料名称、资料类型、学习视频、资料简介),进行点赞、收藏和评论
点击“健康公告”,可查看包括关于我们、联系方式、网站介绍等管理员发布的所有健康公告,点击可查看详情。
首页主界面如下图所示。
图5-3 首页主界面图
首页健康评测界面如下图所示。
图5-4 首页健康评测界面图
5.1.4我的界面
可对基本信息、收藏、复查提醒、测评结果等信息进行管控。具体如下:
点击“基本信息”:可对个人信息进行管控,包括修改密码和修改资料(头像、昵称、邮箱、用户姓名、患者姓名、患者性别、联系电话等);
点击“收藏”,可查看所收藏的信息,包括运动学习、中医资讯等信息,可进行增删除操作
点击“复查提醒”,可查看自己的复查提醒信息,进行查询操作,支持患者姓名搜索,可点击查看详情(患者用户、患者姓名、复查时间、复测内容);
点击“测评结果”,可查看自己的测评结果信息,进行查询操作,支持患者姓名搜索,可点击查看详情(患者用户、患者姓名、评测时间、健康程度、评测结果、恢复建议)。
我的主界面如下图所示。
图5-6 我的主界面图
我的测评结果详情界面如下图所示。
图5-6 我的测评结果详情界面图
5.2.1后台首页界面
可查看试卷平均分统计、考试成绩拥挤等信息数据统计分析图表。界面如下图所示。
图5-7 后台首页界面图
5.2.2系统用户界面
可对患者用户和管理员进行管控,包括进行增删改查操作,点击可查看详情。界面如下图所示。
图5-8 系统用户界面图
5.2.3复查提醒管理界面
可查看所有复查提醒信息,进行增删改查操作,支持患者姓名搜索,可点击查看详情(患者用户、患者姓名、复查时间、复测内容)。界面如下图所示。
图5-9 复查提醒管理界面图
5.2.4运动学习管理界面
可查看所有运动学习信息,进行增删改查操作,支持资料名称、资料类型搜索,可点击查看详情(资料封面、资料名称、资料类型、学习视频、资料简介)和查看评论。界面如下图所示。
图5-10 运动学习管理界面图
5.2.5测评结果管理界面
可查看所有测评结果信息,进行增删改查操作,支持患者姓名搜索,可点击查看详情(患者用户、患者姓名、评测时间、健康程度、评测结果、恢复建议)。界面如下图所示。
图5-11测评结果管理界面图
5.2.6资源管理界面
可对中医资讯和资讯分类进行管理,进行增删改查操作,中医资讯支持标题、标签、分类搜索,可点击查看详情(封面图、标题、分类、标签、描述、正文)和查看评论;资讯分类支持类型名称搜索。界面如下图所示。
图5-12资源管理界面图
5.2.7考试管理界面
可对科目列表、试题库、错题记录、试卷列表进行管理。具体如下:
点击“科目列表”,可查看科目列表信息,进行增删改查操作,支持名称搜索,可点击查看详情;
点击“试题库”,可查看试题库信息,进行增删改查操作,支持科目名称、题目名称、题目类型搜索,可点击查看详情(科目、类型、题目、选项、参考答案、分值);
点击“错题记录”,可查看错题记录信息,进行查询和删除操作,支持科目名称、题目名称搜索,可点击查看详情;
点击“试卷列表”,可查看试卷列表信息,进行增删改查操作,支持科目名称、名称搜索,可点击查看详情(科目名称、试卷名称、答题时长、总分、状态),并可点击题库、生成(单选题目数目、多选题目数目、判断题数目、填空题数目、主观题数目)、查看分数、评分(提交人、评分状态)等操作,根据用户测评,得出测评结果。
考试管理试卷列表界面如下图所示。
图5-12考试管理试卷列表界面图
测试存在于软件开发进程中的最后一个阶段,它可以保证一个软件的开发质量是否符合设计者的初衷,也为程序的正式上线做了最后一道质量检测的工序。软件测试主要是控制各种条件、包括软件输出方式,使用模式和运行环境等,来评估一个系统或应用是否符合设计标准。在软件测试过程中,我们一般刻意的去制造错误和极端条件,不能仅依照正常模式允许,而是多去尝试那些意外的情况。
只有在运行和维护阶段之前经历大量的测试的软件,才能说明它的质量是经得起检验的。最近计算机业界也都一致认为,测试应该存在于软件设计的每个阶段,因为越早发现错误,修复起来就越容易。
实际上,对于一个软件应用,错误是必然存在的,无论使用何种技术或手段,都不可能绝对的排除软件漏洞。测试是随着软件开发一同诞生的,两者是共同发展进步的。实际上,测试可以大幅度的降低维护的成本,如果一个漏洞在开发的早期就被发现,那么修复它的成本远比上线后再修复的成本要低得多。
测试有白盒测试和黑盒测试两种方式。
其中,白盒测试是将软件看成一个透明的白盒子,按照程序的内部控制结构和处理技术逻辑来选定测试用例、软件系统测试的逻辑路径及过程需要进行管理测试,又称玻璃盒测试。因此白盒测试需要选择足够多的测试用例,覆盖尽可能多的代码来发现程序中的错误。
黑盒测试,也称为功能测试。它将需软件看作一个黑盒,像一个患者用户一样来模拟软件的使用流程。黑盒测试通过大量的输入边界值或错误数据,来检查是否可产生正确的输出。
本系统测试 主要选择黑盒测试,少量采用白盒测试。通过测试达到以下测试目的:
1.检查各大功能模块的运行,确保其能够正确运行,并检查各页面的完整性,保证页面完整。
2.检查各个接口是否可以正确地输入和输出,保证数据流通稳定可行。
3.检查数据结构,保证其和外部接口没有访问错误,访问顺利。
4.检查原计划的性能需求有没有完成,运行流畅。
本系统的测试用例(部分):
- 登录部分测试用例
登录部分测试用例 | |||||
编号 | 对象 | 项目 | 操作 | 预期结果 | 结果 |
1 | 登录 | 登录提示 | 使用正确的账号密码登录 | 成功登录 | 预期结果 |
2 | 登录提示 | 使用正确的账号但错误的密码登录 | 提示密码错误 | 预期结果 | |
3 | 登录提示 | 使用错误的账号登录 | 提示不存在账户 | 预期结果 | |
4 | 登录提示 | 不输入账号,点击登录 | 提示输入账号 | 预期结果 | |
5 | 登录提示 | 输入账号但不输入密码点击登录 | 提示输入密码 | 预期结果 | |
6 | 登录入口 | 已登录账号,查看登录入口 | 不显示登录入口 | 预期结果 |
- 医疗知识信息管理的测试用例
功能描述 | 用于医疗知识管理 | |
测试目的 | 检测医疗知识管理时的各种操作的运行情况 | |
测试数据以及操作 | 预期结果 | 实际结果 |
点击添加医疗知识,必填项合法输入,点击保存 | 提示添加成功 | 与预期结果一致 |
点击添加医疗知识,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改医疗知识,必填项修改为空,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改医疗知识,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击删除医疗知识,选择医生信息删除 | 提示删除成功 | 与预期结果一致 |
点击搜索医疗知识,输入存在的医生信息名 | 查找出医疗知识 | 与预期结果一致 |
点击搜索医疗知识,输入不存在的医生信息名 | 不显示医疗知识 | 与预期结果一致 |
- 预约信息管理的测试用例
功能描述 | 用于预约信息管理 | |
测试目的 | 检测预约信息管理时各种操作的情况 | |
测试数据以及操作 | 预期结果 | 实际结果 |
未选择预约,点击提交 | 提示请选择预约 | 与预期结果一致 |
未输入时间,点击提交 | 提示请输入时间 | 与预期结果一致 |
6.3 测试环境与测试条件
处理器:Inter Core I7-4710MQ四核处理器
内存:4GB
硬盘:1T
操作系统:Windows 10
数据库:MySQL
6.4 系统运行情况
全部测试用例都已通过(包括但不限于以上测试用例),且不存在漏洞,实现了论文开始时所作要求。本系统运行稳定,使用流畅,可以满足客户需求。
6.5 系统评价
试运行后进行系统评估,可以认为该系统达到预定的目标要求,可以满足用户的需求,也满足了系统开发前所作目标。
系统在经过大量重复测试后运行十分稳定,安全实用,功能模块已经达到预定目标所需。
在规定的时间内实现系统的大部分功能,且满足要求,节省开发成本,有助于提高科学管理水平,符合本人经济情况。
第7章 总 结
本文利用SpringBoot开源、APP框架和MySQL数据库技术,通过对乳腺癌术后中医健康管理的分析,完成了一个乳腺癌术后中医健康管理APP。经过调试,系统基本可以满足一个乳腺癌术后中医健康管理APP的业务需求。系统界面简洁美观,易于操作,并具有自己的特色。
然而,由于时间紧迫和缺乏系统开发经验,以及仅依靠少数问卷调查方式,本系统仍存在一些缺陷和不足之处。其中包括以下问题:
数据输入格式未完全检验:系统并未对所有数据输入进行格式校验,因此难以确保数据的准确性。可能会存在一些不符合规则的数据通过检验。
系统功能不够完善:目前系统提供的在线功能还不够丰富多彩,有待进一步扩展和完善。
此外,本系统还存在一些未解决的漏洞,无法完全避免在实际应用情境中出现错误。但相信通过进一步的改进和完善,可以调试出真正符合实际需求的乳腺癌术后中医健康管理APP。
在乳腺癌术后中医健康管理APP设计和开发过程中需要继续努力,解决现有的缺陷和不足,提升系统的稳定性、可靠性和功能性。通过持续的改进和完善,可以使乳腺癌术后中医健康管理APP真正符合用户的实际需求,并为用户提供更好的使用体验。
[1]王传政,陈艳秋.智慧移动医疗App的设计与实现[J].工业控制计算机,2024,37(02):140-141+143.
[2]刘沈馨雨,高敏,王洁等.心力衰竭患者居家康复APP服务质量评价体系的构建[J/OL].中国全科医学,1-6[2024-03-25].http://kns.cnki.net/kcms/detail/13.1222.R.20240206.0836.002.html.
[3]崇爱国,季红慧,罗秀英等.心血管疾病患者心血管运动管理App的使用意愿及应用[J].健康研究,2024,44(01):25-28.DOI:10.19890/j.cnki.issn1674-6449.2024.01.006.
[4]黄娟.基于SpringBoot和Vue.js的医院数据提取管理平台的设计与实现[J].信息与电脑(理论版),2023,35(22):91-93.
[5]徐伈,李娜,桑妮等.护患互动一体化APP在长效奥曲肽治疗的神经内分泌肿瘤患者中的应用[J].实用临床医药杂志,2023,27(22):127-130+137.
[6]黄赛英.基于Springboot的医院档案管理系统设计[J].集成电路应用,2023,40(11):384-385.DOI:10.19339/j.issn.1674-2583.2023.11.176.
[7]周建辉.基于uni-app的场馆预约微信小程序的设计与开发[J].江苏工程职业技术学院学报,2022,22(04):7-11.DOI:10.19315/j.issn.2096-0425.2022.04.002.
[8]顾静.基于手机APP的医院-社区一体化慢性病管理模式在慢性肾脏疾病患者中的应用[J].当代医学,2022,28(21):178-181.
[9]卢子月.基于患者体验的公立医院门诊全流程智慧服务优化研究[D].华中科技大学,2022.DOI:10.27157/d.cnki.ghzku.2022.006790.
[10]夏孟恒.云禾互联网医院:打造线上+线下一体化的医疗服务未来[J].智慧中国,2022,(06):34-37.
[11]李英玲,牛美雅,兰宏富.基于uni-app+SpringBoot的移动智能办公系统设计与实现[J].西南民族大学学报(自然科学版),2022,48(03):313-321.
[12]高长奎.浅析“互联网+”在医院信息化管理中的应用[J].电子元器件与信息技术,2022,6(04):88-91.DOI:10.19772/j.cnki.2096-4455.2022.4.022.
[13]王曼维,杨荻,李岩等.基于SpringBoot框架的智慧医疗问诊系统设计与实现[J].中国医学装备,2022,19(03):133-136.
[14]杨绪德.基于手机APP的病案管理模式探析[J].黑龙江中医药,2021,50(05):163-164.
[15]杨喆.互联网医院系统的自动化运维技术关键技术研究[D].北京邮电大学,2021.DOI:10.26969/d.cnki.gbydu.2021.002388.
[16]余维维.护理管理系统联合移动终端APP的应用研究[J].科技风,2021,(13):86-87.DOI:10.19392/j.cnki.1671-7341.202113041.
[17]胡小勇.基于SpringBoot的医院门诊管理信息系统的设计与实现[D].华中科技大学,2021.DOI:10.27157/d.cnki.ghzku.2021.001118.
[18]李一帆,邓雨婷,单逸捷等.基于5G通信技术的数字医疗应用——智慧医院App[J].电声技术,2020,44(11):58-60+65.DOI:10.16311/j.audioe.2020.11.014.
[19]周红,郑蓉.护理管理系统联合移动终端APP的应用研究[J].护士进修杂志,2020,35(10):912-915.DOI:10.16821/j.cnki.hsjx.2020.10.010.
[20]岑洁,杨丽.鼻咽癌患者健康管理APP的应用效果[J].中国护理管理,2019,19(11):1695-1701.
大学生活在这个时候即将划上一个句号,但是对于我的人生道路来说,这仅仅是一个逗号,我将面对的是又一次征程的开始。
回忆过去,许许多多的事情浮现在脑海:刚上大学时欢乐心情和兴奋的场景还历历在目。一切都是那么新鲜,那么富有吸引力。有快乐也有艰辛,有收获也有失落。衷心感谢信息学院所有支持帮助过我的老师,谢谢你们多年来的关心和爱护。同窗的友情同样难忘,你们与我共同走过了人生中不平凡的道路,给我留下了值得珍藏的美好记忆。
最后,我要特别感谢指导论文设计的老师。本论文是在他的悉心指导和热情帮助下完成的,老师认真负责的工作态度,严谨的治学精神和精深的理论水平都使我受益匪浅。老师无论在理论上还是在实践中,都给予我很大的帮助,使我专业技能的应用水平得到很大提高,这对于我以后的工作和学习都有益处。值此论文完成之际,特别向老师表示衷心的感谢和崇高的敬意,谢谢他细心而又耐心地辅导,使得我得以顺利的完成毕业设计开发工作,同时也要感谢其他帮助过我的老师和同学,他们在我成长过程中给予了我很大的帮助,在此一并表示感谢。
由于本人水平有限,加上时间紧促,本文一定有不少缺点和不足,恳请各位老师给予帮助和指正。
免费领源码,麻烦点赞、收藏、关注+私信博主哈
原文地址:https://blog.csdn.net/2403_87078834/article/details/143716810
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!