摘 要
本文介绍了基于Spring、SpringMVC和MyBatis(简称SSM)框架的庆阳市人民医院预约小程序的设计与实现过程。随着移动互联网的普及和医疗信息化的发展,线上预约服务成为提升患者就医体验和医院管理效率的重要手段。因此,本文旨在开发一款便捷、高效、安全的线上预约小程序,以满足庆阳市人民医院患者的预约需求。
在系统设计方面,本文首先分析了庆阳市人民医院的预约业务流程和用户需求,确定了系统的功能模块和数据库设计。然后,采用SSM框架作为后端技术栈,实现了用户管理、医院信息管理、科室信息管理、医生信息管理、预约挂号管理、咨询信息管理等功能模块。其中,Spring框架负责业务逻辑的处理和事务管理,SpringMVC框架负责请求的接收和响应,MyBatis框架负责数据库的操作。
在实现过程中,本文注重系统的稳定性和安全性。通过合理的异常处理、日志记录等手段,保证了系统的稳定运行。同时,采用加密技术、安全认证等措施,保护了患者和医院的隐私及数据安全。
最终,本文实现了庆阳市人民医院预约小程序,并通过测试验证了系统的功能完整性和性能稳定性。该小程序的成功上线,为庆阳市人民医院提供了更加便捷、高效的预约服务,提升了患者的就医体验和医院的管理效率。同时,本文的研究成果也为类似场景下的系统设计与实现提供了一定的参考和指导意义。
关键词:医院预约小程序;微信小程序;SSM;系统设计与实现
Abstract
This article introduces the design and implementation process of a reservation mini program for Qingyang People's Hospital based on Spring, SpringMVC, and MyBatis (SSM) framework. With the popularization of mobile Internet and the development of medical informatization, online reservation service has become an important means to improve patients' medical experience and hospital management efficiency. Therefore, this article aims to develop a convenient, efficient, and secure online appointment mini program to meet the appointment needs of patients at Qingyang People's Hospital.
In terms of system design, this article first analyzes the appointment business process and user requirements of Qingyang People's Hospital, and determines the functional modules and database design of the system. Then, using the SSM framework as the backend technology stack, functional modules such as user management, hospital information management, department information management, doctor information management, appointment registration management, and consultation information management were implemented. Among them, the Spring framework is responsible for handling business logic and transaction management, the Spring MVC framework is responsible for receiving and responding to requests, and the MyBatis framework is responsible for database operations.
In the implementation process, this article focuses on the stability and security of the system. By means of reasonable exception handling and logging, the stable operation of the system has been ensured. At the same time, measures such as encryption technology and security authentication are adopted to protect the privacy and data security of patients and hospitals.
Finally, this article implemented the appointment mini program for Qingyang People's Hospital and verified the system's functional integrity and performance stability through testing. The successful launch of this mini program has provided Qingyang People's Hospital with more convenient and efficient appointment services, improving the patient's medical experience and hospital management efficiency. Meanwhile, the research findings of this article also provide certain reference and guidance for system design and implementation in similar scenarios.
Keywords: Hospital appointment mini program; WeChat Mini Program; SSM; System Design and Implementation
目 录
1 绪论
1.1 课题研究背景
随着信息技术的快速发展和普及,移动互联网已经深入到了人们生活的各个方面,特别是在医疗领域,信息化、数字化、智能化的趋势日益明显。线上预约服务作为医疗信息化的一种重要形式,不仅可以提高患者的就医体验,减少排队等待的时间,还能优化医院的管理流程,提高服务效率。
庆阳市人民医院作为当地的医疗服务提供者,面临着日益增长的医疗需求和患者预约的压力。传统的线下预约方式已经不能满足现代患者的需求,因此,开发一款基于移动互联网的预约小程序成为了迫切的需求。
同时,随着Java技术的成熟和广泛应用,Spring、SpringMVC和MyBatis(简称SSM)框架因其稳定、高效、易扩展的特点,成为了企业级应用开发的热门选择。SSM框架能够提供强大的数据处理能力、灵活的业务逻辑处理和优秀的性能表现,非常适合用于开发医疗预约小程序。
因此,本研究旨在基于SSM框架设计和实现庆阳市人民医院的预约小程序,以满足患者的线上预约需求,提升医院的服务效率和管理水平。通过该小程序的建设,不仅能够为患者提供更加便捷、高效的预约服务,还能推动医院的数字化转型和信息化进程。
1.2 课题研究现状
随着移动互联网的快速发展和医疗信息化建设的推进,线上预约服务已成为现代医疗服务体系的重要组成部分。国内外众多医疗机构纷纷推出自己的预约系统,以满足患者日益增长的线上预约需求。
在国内,许多大型医院已经建立了完善的预约系统,这些系统大多基于成熟的Web开发框架,如SSM(Spring、SpringMVC、MyBatis)等。这些框架提供了丰富的功能和灵活的配置选项,能够满足医院复杂的业务需求和高效的数据处理能力。同时,随着移动互联网的普及,许多医院也开始推出基于微信小程序、支付宝小程序等平台的预约服务,以便更好地满足患者的移动化需求。
在国外,医疗信息化发展较早,线上预约服务已经相当成熟。许多国外医疗机构采用了先进的技术手段,如人工智能、大数据等,来提升预约系统的智能化水平和用户体验。这些先进的技术手段为国内的医疗预约系统提供了有益的参考和借鉴。
然而,尽管线上预约服务已经得到了广泛的应用和推广,但仍存在一些问题和挑战。例如,如何确保信息的真实性和准确性、如何提高系统的可用性和稳定性、如何保障患者的隐私和数据安全等。因此,本研究旨在基于SSM框架设计和实现庆阳市人民医院的预约小程序,通过合理的系统设计和先进的技术手段解决这些问题和挑战,为患者提供更加便捷、高效的预约服务。同时,本研究也将为类似场景下的系统设计与实现提供一定的参考和指导意义。
1.3 系统开发技术的特色
(1)系统采用前后端分离的开发模式,使得前端和后端可以独立开发和维护,提高了开发效率和系统的可维护性。
(2)系统采用微服务架构,将系统拆分成多个独立的服务,每个服务可以独立部署和扩展,提高了系统的灵活性和可扩展性。
(3)系统采用 Docker 容器化部署技术,使得系统可以快速部署和迁移,提高了系统的可靠性和可移植性。
(4)系统采用自动化测试技术,包括单元测试、接口测试和性能测试等,提高了系统的稳定性和可靠性。
(5)系统采用安全保障技术,包括用户认证、授权、数据加密等,保障了系统的安全性和用户的隐私。
这些技术特色使得基于SSM的庆阳市人民医院预约小程序具有高效、稳定、可靠、安全等优点,能够满足用户的需求和提高用户的体验。
基于SSM的庆阳市人民医院预约小程序分析
基于SSM的庆阳市人民医院预约小程序可在微信端实现登录注册、首页、网站公告、医院信息、医生信息、新闻资讯、我的(基本信息、收藏、预约挂号、咨询信息)等操作,相对于传统医院预约方式,基于SSM的庆阳市人民医院预约小程序提高了效率和便利性。在后台可对系统用户、医院信息、科室信息、医生信息、预约挂号、咨询信息、系统轮播图、通知公告、新闻资讯等进行管理,充分了解用户的需求,更有针对性的服务用户。
2.1 可行性分析
2.1.1 技术可行性分析
基于SSM的庆阳市人民医院预约小程序存储所使用的mysql数据库以及开发中所使用的IDEA、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用SSM框架进行开发,使系统的可扩展性和维护性更佳,减少java配置代码,简化编程代码,目前SSM框架也是很多企业选择的框架之一。
2.1.2 经济可行性分析
在开发基于SSM的庆阳市人民医院预约小程序中所使用的开发软件像IDEA开发工具、Tomcat8.0服务器、MySQL5.7数据库、Photoshop图片处理软件等,这些都是开源免费的,并且基于SSM的庆阳市人民医院预约小程序是自己设计并编码实现的,数据库是使用流行mysql进行数据的存储,开源的mysql等技术的使用,减少系统开发费用。
2.1.3 操作可行性分析
在日常生活中,随着小程序的快速推广和使用,越来越多人掌握小程序的使用方法,基于SSM的庆阳市人民医院预约小程序在这种条件背景下是很容易被人们所接受和熟悉的,所以在操作上没任何问题。
2.2 功能需求分析
基于SSM的庆阳市人民医院预约小程序中的web后台管理端采用了IntelliJ IDEA 2019.3.4 开发工具,配合了java开发语言中SSM开发框架以及tomcat8.0服务器、jdk1.8,微信端采用了微信开发者工具稳定版1.05.2111300,页面使用wxss和wxml进行布局,微信端和web后台管理端采用json接口通信。
登录注册: 提供病人用户注册和登录功能,确保用户身份安全。
首页: 展示小程序的主要功能入口、最新的网站公告和医院信息,引导用户浏览医疗服务。
网站公告: 提供医院发布的重要通知和通知公告,包括医疗活动、医院更新等。
医院信息: 展示医院的基本信息,包括医院名称、地址、联系方式等。
医生信息: 提供医生的个人信息和专业领域,方便病人选择合适的医生进行咨询和就诊。
新闻资讯: 展示医疗行业相关的新闻和资讯,如健康知识、医疗技术等。
我的:
基本信息: 病人个人信息管理,包括修改密码、更改联系方式等。
收藏: 病人收藏的医院信息、医生信息等,方便日后查看和选择。
预约挂号: 病人可以预约挂号,选择医生和就诊时间。
咨询信息: 病人对医生进行咨询的信息管理,包括咨询记录和医生回复。
2. 管理员功能:
后台首页: 提供管理员登录后的管理主页,展示系统的重要信息和功能入口。
系统用户: 管理系统内的用户信息,包括管理员、医生用户和病人用户的账户信息和权限设置。
医院信息管理: 管理医院的基本信息,包括名称、地址、联系方式等。
科室信息管理: 管理医院内各科室的信息,包括添加、编辑和删除科室。
医生信息管理: 管理医生的个人信息和专业领域,包括添加、编辑和删除医生信息。
预约挂号管理: 管理病人的预约挂号信息,包括审核、修改和取消预约。
咨询信息管理: 管理病人对医生的咨询信息,包括回复病人咨询和处理问题。
轮播图管理: 管理小程序首页的轮播图内容,确保信息更新及时。
通知公告管理: 发布、编辑和删除医院的通知和通知公告。
资源管理:
新闻资讯管理: 管理小程序发布的医疗资讯内容,包括添加、编辑和删除资讯。
资讯分类: 管理医疗资讯的分类信息,包括添加、编辑和删除分类。
3. 医生用户功能:
后台首页: 提供医生登录后的管理主页,展示个人信息和预约挂号情况。
医生信息管理: 医生可以查看和编辑个人信息,包括专业领域、联系方式等。
预约挂号管理: 医生可以查看病人的预约挂号情况,及时安排就诊时间。
咨询信息管理: 医生可以查看病人的咨询信息,回复病人的咨询并提供帮助。
以上是基于SSM的庆阳市人民医院预约小程序的功能需求分析,涵盖了病人用户、管理员和医生用户三个角色的功能设计与实现要求。
2.3 用例分析
基于SSM的庆阳市人民医院预约小程序的完整UML用例图分别是图2-1,图2-2河图2-3。在参与者上包括病人用户、医生用户以及管理员。
病人用户角色的用例包括登录注册、首页、网站公告、医院信息、医生信息、新闻资讯、我的(基本信息、收藏、预约挂号、咨询信息)。
图2-1 基于SSM的庆阳市人民医院预约小程序病人用户角色用例图
医生用户角色的用例包括后台首页、医生信息管理、预约挂号管理、咨询信息管理。
图2-2基于SSM的庆阳市人民医院预约小程序医生用户角色用例图
管理员角色的用例包括后台首页、系统用户、医院信息管理、科室信息管理、医生信息管理、预约挂号管理、咨询信息管理、系统管理(轮播图管理)、通知公告管理、资源管理(新闻资讯、资讯分类)。
图2-3 基于SSM的庆阳市人民医院预约小程序管理员角色用例图
3 基于SSM的庆阳市人民医院预约小程序总体设计
在上一章节中分析了基于SSM的庆阳市人民医院预约小程序的功能性需求,并且根据需求分析了基于SSM的庆阳市人民医院预约小程序中的用例。那么接下来就要开始对基于SSM的庆阳市人民医院预约小程序架构、主要功能和数据库开始进行设计。
3.1 系统功能模块设计
通过对基于SSM的庆阳市人民医院预约小程序的功能需求分析以及用例分析,得出了基于SSM的庆阳市人民医院预约小程序的功能模块图如图3-1所示。
3.3 数据库设计
3.3.1 数据库E-R模型
下面是整个基于SSM的庆阳市人民医院预约小程序的数据库表的E-R实体关系图,如图3-2所示:
图3-2 基于SSM的庆阳市人民医院预约小程序E-R实体关系图
3.3.2 数据库表设计
通过上一小节中基于SSM的庆阳市人民医院预约小程序中总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: |
表consultation_information (咨询信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | consultation_information_id | int | 10 | 0 | N | Y | 咨询信息ID | |
2 | consultation_title | varchar | 64 | 0 | Y | N | 咨询标题 | |
3 | doctor_users | int | 10 | 0 | Y | N | 0 | 医生用户 |
4 | patient_users | int | 10 | 0 | Y | N | 0 | 病人用户 |
5 | patient_name | varchar | 64 | 0 | Y | N | 病人姓名 | |
6 | patient_content | text | 65535 | 0 | Y | N | 病人内容 | |
7 | doctors_reply | 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 | 更新时间 |
表department_information (科室信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | department_information_id | int | 10 | 0 | N | Y | 科室信息ID | |
2 | department_number | varchar | 64 | 0 | Y | N | 科室编号 | |
3 | department_name | varchar | 64 | 0 | Y | N | 科室名称 | |
4 | number_of_departments | varchar | 64 | 0 | Y | N | 科室人数 | |
5 | department_location | varchar | 64 | 0 | Y | N | 科室位置 | |
6 | department_introduction | 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_information_id | int | 10 | 0 | N | Y | 医生信息ID | |
2 | department_name | varchar | 64 | 0 | Y | N | 科室名称 | |
3 | doctor_users | int | 10 | 0 | Y | N | 0 | 医生用户 |
4 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
5 | registration_fees | int | 10 | 0 | Y | N | 0 | 挂号费用 |
6 | working_hours | varchar | 64 | 0 | Y | N | 工作时间 | |
7 | doctors_photo | varchar | 255 | 0 | Y | N | 医生照片 | |
8 | content_introduction | longtext | 2147483647 | 0 | Y | N | 内容介绍 | |
9 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | doctor_users_id | int | 10 | 0 | N | Y | 医生用户ID | |
2 | department_name | varchar | 64 | 0 | Y | N | 科室名称 | |
3 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
4 | doctors_gender | varchar | 64 | 0 | Y | N | 医生性别 | |
5 | doctors_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 | 更新时间 |
表have_an_appointment_with_a_doctor (预约挂号)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | have_an_appointment_with_a_doctor_id | int | 10 | 0 | N | Y | 预约挂号ID | |
2 | department_name | varchar | 64 | 0 | Y | N | 科室名称 | |
3 | doctor_users | int | 10 | 0 | Y | N | 0 | 医生用户 |
4 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
5 | registration_fees | varchar | 64 | 0 | Y | N | 挂号费用 | |
6 | patient_users | int | 10 | 0 | Y | N | 0 | 病人用户 |
7 | patient_name | varchar | 64 | 0 | Y | N | 病人姓名 | |
8 | patient_gender | varchar | 64 | 0 | Y | N | 病人性别 | |
9 | patient_age | varchar | 64 | 0 | Y | N | 病人年龄 | |
10 | patient_phone_number | varchar | 64 | 0 | Y | N | 病人电话 | |
11 | appointment_date | datetime | 19 | 0 | Y | N | 预约日期 | |
12 | appointment_remarks | text | 65535 | 0 | Y | N | 预约备注 | |
13 | appointment_status | varchar | 64 | 0 | Y | N | 预约状态 | |
14 | appointment_reply | 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 | 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 | patient_age | varchar | 64 | 0 | Y | N | 病人年龄 | |
5 | patient_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 | 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 | 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 | 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 | 更新时间: |
4 基于SSM的庆阳市人民医院预约小程序实现
基于SSM的庆阳市人民医院预约小程序划分了微信小程序病人用户端和web后台医生用户、管理员端,微信端实现登录注册、首页、网站公告、医院信息、医生信息、新闻资讯、我的(基本信息、收藏、预约挂号、咨询信息)等功能,web端是为后台管理员、医生用户提供医生信息管理、预约挂号管理、咨询信息管理的平台。
4.1 前台微信端
4.1.1 用户注册界面
不是基于SSM的庆阳市人民医院预约小程序的用户可以通过微信小程序在线进行注册,填写上自己的账号、密码、重复密码、昵称、邮箱登信息后点击“提交”按钮后将会验证是否有非空数据,再验证密码和重复密码是否一样,最后验证是否账号重复,都验证没问题后即可注册成功。注册实现了用户注册和发布者注册两部分,其用户注册界面展示如下图4-1所示。
图4-1用户注册界面图
4.1.2 用户登录界面
微信小程序上注册后的用户可以通过自己的用户名和密码进行登录,在用户填写好自己的用户名和密码信息并点击“登录”按钮后,将会先验证是否有非空数据,再验证填写的用户信息和数据库中保存的是否一致,一致后将会登录成功,登录成功后将会在左上角上显示用户信息;否则将会提示相应错误信息,用户登录界面如下图4-2所示。
图4-2用户登录界面图
输入有效的用户名和密码信息,点击“登录”按钮,自动跳转到“首页”页面,首页界面如下图4-3所示。
图4-3首页界面图
4.1.3 新闻资讯界面
用户点击新闻资讯按钮,可以进入新闻资讯列表,点击感兴趣的新闻资讯,进入新闻资讯详情页面,用户可以进行查看、点赞、收藏、评论等操作,界面如下图4-4所示。
图4-4新闻资讯详情界面图
4.1.4 医生信息详情界面
用户点击医生信息可以进入医生信息列表,点击任意一个医生信息后将可以进入到该医生信息的详情界面中,用户可以查看医生信息的详细介绍,还可以进行预约挂号、咨询医生、收藏、评论等,医生信息详情界面如下图4-5所示。
图4-5医生信息详情界面图
4.1.5 预约挂号信息界面
在医生信息详情页面左下角点击“预约挂号”后进入到“预约挂号信息”界面,输入相关信息后,点击“提交”按钮后将会生成自己的预约挂号信息,预约挂号信息界面如下图4-6所示。
图4-6预约挂号信息界面图
4.1.6 医院信息界面
用户点击医院信息可以进入医院信息列表,点击任意一个医院信息后将可以进入到该医院信息的详情界面中,用户可以查看医院信息的详细介绍,还可以进行收藏、评论等,医院信息详情界面如下图4-7所示。
图4-7医院信息界面图
4.1.7 咨询界面
在医生信息详情页面左下角点击“咨询医生”后进入到咨询界面,用户可以就相关问题咨询医生,界面如下图4-8所示。
图4-8咨询界面图
4.2 后台医生用户用户端
4.2.1 咨询信息管理界面
医生用户点击“ 咨询信息管理”这一菜单,可以查看病人的咨询信息,回复病人的咨询并提供帮助。界面如下图4-9所示。
图4-9咨询信息回复界面图
4.2.2 医生信息管理界面
医生用户点击“医生信息管理”这一菜单会显示医生信息列表、医生信息添加这两个子菜单,支持输入关键词对医生信息进行查询,如果想要添加新的医生信息,点击“医生信息添加”按钮,输入相关信息,点击“提交”按钮就可以添加了,同时可以选择某一条医生信息,点击“删除”进行删除。界面如下图4-10所示。
图4-10医生信息列表界面图
4.2.3 预约挂号信息管理界面
医生用户点击后台左边的“预约挂号信息管理”菜单后,医生用户可以查看和审核用户提交的预约挂号信息,界面如下图4-11所示。
图4-11预约挂号信息审核界面图
4.3 后台管理员端
4.3.1 系统用户界面
管理员点击“系统用户”这一菜单会显示管理员、病人用户、医生用户用户这三个子菜单,管理员可以对这三个角色的信息进行增删改查操作。界面如下图4-12所示。
图4-12用户管理界面图
4.3.2医院信息管理界面
管理员点击后台左边的“医院信息管理”菜单后将可以对医院信息进行管理,包括添加、编辑和删除医院信息等,医生信息管理界面如下图4-13所示。
图4-13医院信息列表界面图
4.3.3 系统管理界面
管理员点击“系统管理”这一菜单会显示轮播图这一个子菜单,管理员可以对前台展示的轮播图进行设置,界面如下图所示。
4.3.4 通知公告管理界面
点击“通知公告管理”这个菜单,可以查看到系统中所有添加的通知公告,支持通过标题对通知公告进行查询,添加、删除等操作。通知公告管理界面如下图所示。
图4-15通知公告界面图
4.3.5 资源管理界面
管理员点击“资源管理”这一菜单会显示新闻资讯、资讯分类这两个子菜单,管理员可以对这两部分涉及到的功能进行更新维护,更好的服务于前台用户。界面如下图所示。
5 基于SSM的庆阳市人民医院预约小程序测试
基于SSM的庆阳市人民医院预约小程序测试是为了检验软件是否达到设计要求,是否存在错误,通过测试的方法来检查基于SSM的庆阳市人民医院预约小程序,以便发现基于SSM的庆阳市人民医院预约小程序中的错误。测试工作是保证基于SSM的庆阳市人民医院预约小程序质量的关键。
5.1 系统测试
微信端上用户在线预约挂号功能测试:
表5-1微信端上用户在线预约挂号功能测试用例表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
在线预约挂号功能模块测试 | 医生信息详情信息正常的显示 | 浏览医生信息详情信息 | 在小程序端上选择一个医生信息将会进入该医生信息的详情界面,同时可以预约挂号、评论、收藏。 | 进入该医生信息的详情信息界面 | 正确 |
在线预约挂号功能模块测试 | 医生信息详情信息正常的显示 | 浏览医生信息详情信息 | 点击“预约挂号”填写预约挂号信息,点击“提交”按钮。 | 生成自己的预约挂号信息。 | 正确 |
微信端上评论功能测试:
表5-2微信端上评论功能测试用例表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
评论功能模块测试 | 医院信息正常的显示 | 浏览医院信息详情信息 | 点击“医院信息”进入医院信息详情页面,点击“评论”输入自己的评论内容。 | 评论成功 | 正确 |
web后台端上医生用户发布医生信息功能测试:
表5-3web后台端上医生用户发布医生信息功能测试用例表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
医生用户发布医生信息功能测试 | 添加医生信息的情况 | 输入新医生信息的基本信息 | 后台选择“医生信息管理”菜单后,填写新医生信息基本信息后点击“提交”按钮 | 新医生信息发布成功 | 正确 |
5.2 测试结果
通过编写了基于SSM的庆阳市人民医院预约小程序的测试用例,已经检测完毕了5.1章节中的3大模块,它为基于SSM的庆阳市人民医院预约小程序系统的后期推广运营提供了强力的技术支撑。
总结与展望
本次基于SSM的庆阳市人民医院预约小程序的设计与实现,功能方面,通过功能模块图区分该程序的用户端与管理端各自的功能权限;数据库方面,数据库使用口碑较好的mysql进行数据的存储,开源的mysql等技术的使用,相对来说体积较小,服务稳定,减少系统开发成本费用,通过数据库表的E-R实体关系图建立了表单与表单之间的连接,区分不同的表单之间的关系,更好的完善数据库的内容;测试方面,通过测试用例检查基于SSM的庆阳市人民医院预约小程序的设计缺陷和程序存在的错误,在系统测试阶段的过程中,出现了一些问题,例如,注册信息,没有规范用户在注册页面填写信息时输入两次密码,而导致后期登录错误,最后通过多次修改程序和测试解决了问题。最终经过不断的检测、修改,实现项目的稳定,达到了预期的设计效果。
系统整体的功能到达预期的效果,但页面的美化方面还是存在一些不足,例如:小程序中的图标过于简洁;wxss页面的渲染布局方面不够完善,人们在使用软件过程中,对某些功能不易找寻,针对此次项目产生的问题,日后将不断改进,使该项目更加完善。
参考文献
[1]税俊洁,王黎光.基于微信小程序的医院预约挂号系统的设计与实现[J].电脑编程技巧与维护,2023,(10):64-67.DOI:10.16184/j.cnki.comprg.2023.10.033.
[2]张雨辰,林龙,赵传超等.基于短链接机制的患者入出院提醒小程序平台的应用建设与实践[J].中国数字医学,2022,17(07):28-34.
[3]游国强.网上预约挂号系统的设计与实现[D].华中科技大学,2022.DOI:10.27157/d.cnki.ghzku.2022.004182.
[4]巩蕾.医院挂号预约管理系统设计[J].电脑编程技巧与维护,2022,(02):66-68+80.DOI:10.16184/j.cnki.comprg.2022.02.033.
[5]陈博,焦娣,李晨等.门诊预约挂号系统的设计与应用[J].智慧健康,2022,8(04):1-4.DOI:10.19335/j.cnki.2096-1219.2022.04.001.
[6]王蕊琳.微信小程序应用于病案查询预约复印服务的设计探讨[J].信息系统工程,2021,(11):73-76.
[7]邢娜,郑蕾,王莉.医院网站预约挂号系统设计[J].解放军医院管理杂志,2021,28(10):929-930+969.DOI:10.16770/J.cnki.1008-9985.2021.10.012.
[8]肖扩礼.基于微信公众平台的医院预约挂号服务技术系统的实现路径研究[J].中国设备工程,2021,(18):184-185.
[9]万杰.基于微信公众号的医院预约挂号系统开发[J].湖州职业技术学院学报,2021,19(03):76-80.DOI:10.13690/j.cnki.hzyxb.issn.1672-2388.2021.03.19.
[10]吴雨柯.基于ASP.NET MVC的线上预约挂号系统[J].轻工科技,2021,37(09):68-69.
[11]严灵杰.门诊患者就诊报到系统设计与实现[J].现代信息科技,2021,5(14):141-143+147.DOI:10.19850/j.cnki.2096-4706.2021.14.037.
[12]尹劲峰,纪晨,邹强等.微信小程序在病案查询预约复印中的应用体会[J].中国继续医学教育,2021,13(19):125-127.
[13]郭若楠,梁雅丽,王正禹等.基于微信小程序的通达学院疾病防控平台[J].电脑知识与技术,2021,17(19):61-64.DOI:10.14004/j.cnki.ckt.2021.1864.
[14]黄巧,曹奕,李雪.智慧医疗视角下产科门诊应用全预约挂号系统的回顾性研究[J].现代医院,2021,21(06):903-906.
[15]万杰,卢嫄,项中华等.基于微信平台的智慧医疗系统设计与应用[J].信息与电脑(理论版),2021,33(06):121-124.
[16]宗金运,芦立华,姬庆等.医院智能挂号系统的设计和实现[J].福建电脑,2020,36(08):1-9.DOI:10.16707/j.cnki.fjpc.2020.08.001.
[17]周雅娟,赵亚丽,王燕华等.微信小程序在门诊预约挂号中的应用效果探究[J].甘肃科技,2020,36(13):121-123.
[18]董清洁.微信小程序在优化三甲医院门诊流程中的应用[J].中国新通信,2020,22(11):98.
[19]王秋颖,李昂,张爱莹.门诊预约挂号管理系统应用微信小程序的实践与展望[J].中国医药导报,2019,16(28):170-173.
[20]Zexin A ,Xiao Z .System Design of Multiple Network Platform Outpatient Appointment Registration System for Large General Hospitals[J].Journal of Physics: Conference Series,2019,1288012036-012036.
致 谢
至此论文结束,感谢您的阅读。首先,我要感谢我的父母对我的支持与理解,在两年的本科学习生活中,倾其所能的爱护我,使我能够心无旁骛,全心全意的投入到学习中;不断鼓励我,让我能够拥有不断前进的动力。其次还要感谢我的导师,感谢在这段时间给予我有效的建议,以至于我的毕设有了整体的设计思路,尽管我在实习期间很忙,论文撰写总是停停改改,但是导师依然十分负责,时不时的询问我的任务进展情况,跟进我的论文进度。在老师的帮助下,我逐步完成了自己的论文和程序,从导师身上也学习到很多知识,和经验,这些知识和经验令我受益匪浅。
此外,还要感谢我的同学,热心的解答了我在程序上遇到的问题,是他们在我编写程序过程中给了我很多的启发和感想,也帮助了我对于程序的调试和检测,让我受益良多。在这两年的时间里,我学会了许多专业的知识,还有老师们的谆谆教诲和同学们的帮助使我不断进步,能够做得更好;我也会不断给自己充电,不断突破,成为更好的自己。
最后向所有关心我、帮助我的老师及同学们表示衷心的感谢!