🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。
- 代码可以私聊博主获取。🌹
- 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
- 赠送开题报告模板,帮助书写开题报告。
作者完整代码目录供你选择:
- 《Springboot网站项目》400套
- 《ssm网站项目》800套
- 《小程序项目》300套
- 《App项目》500套
- 《python网站项目》600套
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
项目演示
摘 要
随着信息化时代的到来,管理系统都趋向于智能化、系统化,医院预约挂号系统小程序也不例外,但目前国内的市场仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变化,而医院预约挂号系统小程序能很好地解决这一问题,轻松应对医院预约挂号平时的工作,既能提高人力物力财力,又能加快工作的效率,取代人工管理是必然趋势。
本医院预约挂号系统小程序以php语言,b/s模式以及MySql作为后台运行的数据库。本系统主要包括首页、个人中心、用户管理、医生管理、科室分类管理、医生信息管理、预约挂号管理、系统管理等功能,通过这些功能的实现能够基本满足日常医院预约挂号管理的操作。
本文着重阐述了医院预约挂号系统小程序的分析、设计与实现,首先介绍开发系统和环境配置、数据库的设计,接着说明功能模块的详细实现,最后进行了总结。
关键词:医院预约挂号系统小程序; php;MySql数据库;
第一章 绪论
1.1 研究背景
科学技术日新月异的如今,计算机在生活各个领域都占有重要的作用,尤其在信息管理方面,在这样的大背景下,学习计算机知识不仅仅是为了掌握一种技能,更重要的是能够让它真正地使用到实践中去,以创新的视角去不断方便人们的生活,推动对新知识的学习,培养自学能力,锻炼动手实践的本领。现代的医院预约挂号系统小程序,也应该摆脱人工管理的模式,使用计算机技术来进行信息管理工作。所以本次系统设计的医院预约挂号管理结合了文字、图像,并能实现医院预约挂号管理的功能,这也是一般医院预约挂号系统小程序的重要的要素。医院预约挂号系统小程序经过几年的实践和总结正在往更深入的方向发展。由此,人们要改善系统功能迫在眉睫。随着科学技术的飞速发展,医院预约挂号系统小程序也要不断完善其工作流程的繁杂性、多样化、管理复杂、收缴费用与设备维护繁琐等存在的问题。所以要通过计算机胜任医院预约挂号管理的工作,使医院预约挂号系统更加准确、方便及快捷。
因此,开发出一套高效率、低差错的医院预约挂号系统是十分必要。本系统主要目的是全面实现医院预约挂号系统小程序数字化,管理员对于用户的所有信息能够全部掌握,而用户能够对自己的医院预约挂号信息能够有一个直观的了解。
1.2 研究现状
1.3 系统实现的功能
本次设计任务是要设计一个医院预约挂号系统小程序,通过这个系统能够满足医院预约挂号的管理功能。系统的主要功能包括首页、个人中心、用户管理、医生管理、科室分类管理、医生信息管理、预约挂号管理、系统管理等功能。
管理员可以根据系统给定的账号进行登录,登录后可以进入医院预约挂号系统小程序对医院预约挂号所有模块进行管理。包括查看和修改自己的个人信息以及登录密码。
该系统为每一个用户都分配了一个用户账号,用户通过账号的登录可以在系统中查看医院预约挂号信息及对个人信息进行修改等功能。
1.4 医院预约挂号系统的特点
本系统提供给管理员对首页、个人中心、用户管理、医生管理、科室分类管理、医生信息管理、预约挂号管理、系统管理等诸多功能进行管理。本系统对于用户输入的任何信息都进行了一定的验证,为管理员操作提高了效率,也使其数据安全性得到了保障。
1.5 本文的组织结构
本文的组织结构如下:
1、绪论。综述了本文的研究背景,分析了医院预约挂号系统小程序的结构;更好的从用户的角度出发,发现当今医院预约挂号系统小程序中的不足,同时要指出本次系统中的特色。
2、对系统主要的使用的技术,开发环境、环境配置的介绍。介绍了本次开发所用的语言,还介绍了MySql数据库和mysql环境配置。
3、系统的设计与实现。介绍了开发医院预约挂号管理信息系统的思路并进行了需求分析,在需求分析的基础上进行了总体设计、详细设计以及数据库等相关方面介绍;该部分是全文的主旨。
4、系统功能模块具体实现。对开发中一些主要具体功能的实现进行描述。涉及到数据库、页面参数传递等相关知识。
5、对系统进行测试;
6、总结;对整个论文及设计过程进行总结,指出系统设计过程设计中存在的不足;后期还有待完善的地方等。
第二章 开发技术与环境配置
2.1 Php语言简介
PHP,原名Hypertext Preprocessor。它是属于内嵌式语言,在服务器上执行嵌入HTML的脚本语言,有点像C语言的风格,运用的比较广泛。Hypertext Preprocessor混合了 Perl 、C、Java和自己创新的语法。综合成比前者执行动态网页更快。与其他的语言相比较,嵌入到HTML执行,效率要比完全生成HTML的CGI要高;PHP又能执行编译后代码,能做到加密、优化代码运行,让代码运行的速度更快。PHP的功能非常强大, CGI有的功能PHP都可以实现,几乎所有流行的数据库和操作系统它都可以支持。C、C++进行程序PHP也是可以用的扩展!
PHP包括:专业专注、源代码开放、免费使用、跨平台性强、快捷、面向对象、效率高、图像处理等特点;
2.2 微信小程序框架
微信小程序的开发框架是微信所独有的一套框架,分为View视图层和App Service逻辑层两部分。框架提供了一种类似于Web中html语言的wxml语言,作为视图层的标签语言,用于构造页面的布局。另外提供了一种类似Web中css语言的WXSS语言,作为视图层的标签样式语言,用于表述页面的显示。而在逻辑层的框架,则同样使用了JS语言。微信小程序为了使开发者专注在代码的逻辑层面和数据处理上,还专门提供了两种解决方案,一种是事件,一种是数据的传输。这两种方案都位于小程序框架的视图层和逻辑层之间。用户在视图层进行交互之后,传递到逻辑层对数据进行处理,并返回数据到视图层向用户反馈。对于微信小程序视图层的开发设计,小程序官方提供了一系列的组件,这些基本组件可以极大的帮助开发者完成视图层的开发。同时,对于逻辑层的开发,小程序官方提供了一系列API来方便开发者请求一些额外功能。
2.3 MySQL环境配置
(1)本系统的数据使用的是MySQL,所以要将MySQL安装到指定目录,如果下载的是非安装的MySQL压缩包,直接解压到指定目录就可以了。然后点击C:\Program Files\MySQL\bin\winMySQLadmin.exe这个文件其中C:\Program Files\MySQL是MySQL安装目录。输入winMySQLadmin的初始用户、密码(注:这不是MySQL里的用户、密码)随便填不必在意,确定之后右下角任务的启动栏会出现一个红绿灯的图标,红灯亮代表服务停止,绿灯亮代表服务正常,左击这个图标->winnt->install the service 安装此服务,再左击这个图标->winnt->start the service 启动MySQL服务。
(2)修改MySQL数据库的root密码。用cmd进入命令行模式输入如下命令:
cd C:\Program Files\MySQL\bin
MySQLadmin -u root -p password 123
回车出现Enter password: ,这是要输入原密码. 刚安装时密码为空,所以直接回车,此时MySQL 中账号 root 的密码被改为 123 安装完毕。
2.4 mysql数据库介绍
数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。简单来讲,存储粮食的仓库叫粮仓存储数据的仓库就叫数据库。数据库在软件项目中扮演着操作管理数据的角色同时还能够保证数据的独立性、一致性和安全性,并为系统访问数据提供有效方式不仅如此数据库还能大大减少程序员开发程序时间。在日常能够接触实用的一般有两类数据库,一类是以(Oracle,DB2,SQL Server,MySQL )为代表的关系型数据库和以(NoSql、MongeDB)为代表的非关系型数据库,两类数据库各有各的优缺点。其中非关系型数据库又分为网络数据库和层级数据库。-网络数据库是指在计算机网络系统中应用数据库技术然后借助网络技术将存储于数据库中的大量信息及时发布出去;在成熟的数据库技术的帮助下,计算机网络实现了对网络中的各种数据的有效管理,用户与网络中的数据库数据交互也借此得以进行。作为最成功的典型层次模型数据库系统,IMS是最早研制成功的数据库系统。1970年由埃德加•科德于首先提出的关系模型融合了“科德十二定律”。现如今即使很多人仍旧不看好这个模型,但它依旧是数据存储的传统标准。关系数据结构、关系操作集合、关系完整性约束构成了关系模型。作为数据库另外一种区分方式的存储介质被大家分为磁盘和内存这 两种。例如:关系型数据库就存储在磁盘中,非关系型数据库则存储在内存中。典型的关系型数据库有:Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL、SQLite。小型关系型数据库:Microsoft Access,SQLite;中型关系型数据库:SQL Server,Mysql;大型关系型数据库:Oracle,DB2。
大家常用的其他关系形数据库系统大多是MySQL AB公司开发的,其中MySQL也是由这家开发的,所应用的分布式数据库管理系统是客户机/服务器体系结构得益于此结构,而且用这个系统建造的数据库具有很强的适用性,用C和C++编写的系统让他拥有很强的适用性所以他可以在大部分操作系统上使用并能和php结合。不同的API函数针对不同的语言(C,C++,JAVA等)来处理不同数据;为了更好地支持多CPU多线程通过使用核心线程来实现;提供的存储机制分为事务和非事务存储机制;MySQL采用双重许可,不管是从MySQL AB公司获得正式的商业许可又或是许可条款下以免费软件或开放源码软件的方式使用MySQL软件都是被允许的。
MySQL作为数据库拥有很多优点,其中由于是开放源码,所以使用成本特别低,而它体积小的特点决定了速度快的特性。因此,My Sql具有开放性,多线程支持多种API,可跨数据库连接,国际化,数据库体积巨大等特点。简单的来说 ,MySql是一个开放的、快速的、多线程的、多用户的数据库服务器。
选用MySQL作为数据库的其中一个原因就是支持多线程,支持多线程的特点为利用系统资源提供了便捷并因此大大提高了系统运行速度和效率,而且连接数据库的方式多样包括但不局限于TCP/IP、ODBC和JDBC等途径;但是没有东西是完美无缺的,即便MySQL也如此,虽说它有着众多优点但其功能不够强大,规模也相对较小,无法应对大型数据哭的处理。但是对于本系统来说,选用MySQL作为数据库,其功能性能已绰绰有余,如果要进行二次开发的数据库表结构空间的扩展也是完全可行的。综上所述,MySQL是作为本系统数据库的最优选择。
2.5 B/S架构
B/S结构是目前使用最多的结构模式,它可以使得系统的开发更加的简单,好操作,而且还可以对其进行维护。使用该结构时只需要在计算机中安装数据库,和一些很常用的浏览器就可以了。浏览器就会与数据库进行信息的连接,可以实现很多的功能,B/S结构是可以直接进行使用的,而且B/S结构在使用中极大的减少了工作的维护。基于B/S的软件,所有的数据库之间都是相互独立的,因此是非常安全的。因为基于B/S结构可以清楚的看到系统正在处理的业务,并且能够及时的让管理人员做出决策,这样就可以避免企业的损失。B/S结构的基本特点是集中式的管理模式,用户使用系统生成数据后,这些数据就可以存储到系统的数据库中,方便日后能够用到,这样就可以满足人们的所有的需求。
图2-1 B/S模式三层结构图
第三章 系统分析与设计
3.1 可行性分析
一个完整的系统,可行性分析是必须要有的,因为他关系到系统生存问题,对开发的意义进行分析,能否通过本小程序来补充线下医院预约挂号管理模式中的缺限,去解决其中的不足等,通过对本小程序,不仅能使工作量不断地减少,还能使工作和管理的效率更加高。所以开发该小程序能实现更大的意义和价值, 小程序完成后,能否达到预期效果就要通过可行性分析,分析之后,决定此系统是否开发。该医院预约挂号系统小程序的开发设计中,对技术、经济、操作方面进行了可行性分析;
3.1.1 技术可行性
本系统开发选择php语言,它被研究的目的就是在于能够为网页创建等可以看到的信息。随着移动互联网技术的不断发展和创新,php俨然已成为下一代互联网的Web标准。所以后台设计选择使用mysql数据库主要用来的建立和维护信息。对于前台开发要求应具备功能完善、易于操作等优点,后台数据库的要求则是能够建立和维护数据信息的统一性和完整性。
3.1.2 操作可行性
现在随着科技的飞速发展,计算机早已经进入了人们的日常生活中,人们的工作环境也不像以前有那么多的要求,需要员工一定要到公司办公,有的工作在家也可以完成。这使得人们的工作效益有了很大的提高。操作的多样性也变高了。因此,管理的计算机化,智能化是社会发展而带来的必然趋势,各种智能的软件层出不穷,不同的软件能完成用户不同的需求,这不仅提高了工作效率还能完成一些客户特定的一些需求。本系统不仅界面简洁明了还采用可视化界面,用户只要用鼠标和键盘就可以完成对相关信息的修改,删除,添加等操作。因为这个系统的操作十分简单,方便上手,对于第一次使用系统的人,只需要很少的时间就可以上手操作。由此可见,本系统在操作上是可行的。
3.1.3经济可行性
基于医院预约挂号系统小程序,该网站软件开发仅需要一台普通的计算机便可完成实现开发,其成本很低。另外,作为毕业设计作品来讲,开发成本基本上可以忽略不计,且该系统软件的投入使用,可以实现更加快速高效的医院预约挂号管理,同时还能实现对人力资源和管理资源的有效节约,该医院预约挂号系统小程序在经济上完全可行。
3.2 系统现状分析
系统使用用户的数量直接决定了用户信息管理者的工作量,毫无疑问,管理者的工作量较大较繁琐。通过总结出系统当前对用户管理的工作状态得以下分析:
统筹规划,如果系统在信息化管理中不够全面,缺少综合性、系统性、整体性,那不可避免的需要投入大量人力物力来规划整理信息。引入信息化管理方式无疑可以达到节省信息管理成本的目的不仅减少资源浪费还可以使医院预约挂号信息变得井井有条,成为市场竞争中的一大优势。
要循序渐进,做事不能心急,一步一个脚印,都不可能一步到位,就算信息管理系统也一样,要让系统发挥最大效率还是应该多调研,多听取用户和管理者的意见,并进行必要的统筹规划,有组织有目的地设计系统功能,团结各个部门发挥主观能动性。
(3)信息安全措施不到位
隐私权神圣不可侵犯,这是中华人民共和国宪法赋予我们的权利,人和人都不能侵犯我们的正当权益,而网络用户信息管理存在极大安全隐患,信息泄露的案列不在少数,加强信息安全措施是完善网络信息管理过程中不可避免的一环。
(4)资源不能充分共享
资源共享是网络的一大特点,没有共享就没有社交,网络也就失去了他应有的魅力,如果能够实现用户信息共享,无疑对于用户的发展存在不可或缺的帮助。
(5)现有系统可扩展性不高。
如今科学技术发展飞速,随着而来的就是技术更新,那势必会给软件更新带来挑战,因此,系统必须具备良好的开放性和可扩充性,为了不落后于时代,这是必备特色之一。
基于上述分析,医院预约挂号系统小程序应该切合实际,做到确实有效,集体表现为:一是系统能够整理并集合归类用户信息,防止用户信息混乱,难以整理;二是系统要安全稳定,不能泄露用户信息,造成隐私泄露,不仅伤害用户利益更是对经营者名誉的损毁;三是系统要具有良好的开放性,不仅要方便定期的维护维修,更要方便及时增加新功能,保证先进的时代契合性。经过详细的讨论论证,确定系统的总体要求。
3.3 需求分析
利用Php语言和mysql数据库等知识点,结合相关设计模式、以及软件工程的相关知识,设计一个医院预约挂号系统小程序,来进行记录用户的信息,以及系统信息的增删改查的功能,根据实现需求,系统需完成这些基本功能:
(1)系统合理显示医院预约挂号小程序首页界面、管理员界面和医生界面等界面。
(2)管理员,用户和医生所有的信息都保存与数据库中。
(3)对医院预约挂号信息能够进行查询、修改、删除、添加等操作。
3.4 总体设计
根据医院预约挂号系统小程序的功能需求,进行系统设计。
前台功能:用户进入系统可以实现首页、医生信息、医院资讯、我的等内容,在我的页面可以对个人中心,预约挂号等功能进行详细操作;
后台主要是管理员和医生,主要包括首页、个人中心、用户管理、医生管理、科室分类管理、医生信息管理、预约挂号管理、系统管理等功能;
系统对这些功能进行整合,产生的功能结构图如下:
图3-1 系统总体结构图
3.5 数据库设计与实现
在每一个系统中数据库有着非常重要的作用,数据库的设计得好将会增加系统的效率以及系统各逻辑功能的实现。所以数据库的设计我们要从系统的实际需要出发,才能使其更为完美的符合系统功能的实现。
3.5.1 数据库概念结构设计
数据库的E-R图反映了实体、实体的属性和实体之间的联系。下面是各个实体以及实体的属性。
医生信息实体属性图如下所示:
图3-2医生信息实体属性图
医院资讯实体属性图如下所示:
图3-3医院资讯实体属性图
3.5.2 数据库具体设计
根据E-R图,设计每张表的变量名,变量的类型及主键等如下。
表名3-1:用户
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yonghuzhanghao | varchar | 200 | 用户账号 | ||
yonghuxingming | varchar | 200 | 用户姓名 | ||
mima | varchar | 200 | 密码 | ||
xingbie | varchar | 200 | 性别 | ||
touxiang | varchar | 200 | 头像 | ||
dianhuahaoma | varchar | 200 | 电话号码 |
表名3-2:医生信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yishenggonghao | varchar | 200 | 医生工号 | ||
yishengxingming | varchar | 200 | 医生姓名 | ||
keshifenlei | varchar | 200 | 科室分类 | ||
tupian | varchar | 200 | 图片 | ||
guahaofei | int | 挂号费 | |||
yishengjieshao | longtext | 4294967295 | 医生介绍 |
表名3-3:医生
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yishenggonghao | varchar | 200 | 医生工号 | ||
yishengxingming | varchar | 200 | 医生姓名 | ||
mima | varchar | 200 | 密码 | ||
xingbie | varchar | 200 | 性别 | ||
touxiang | varchar | 200 | 头像 | ||
dianhuahaoma | varchar | 200 | 电话号码 |
表名3-4:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
表名3-5:医院资讯
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
introduction | longtext | 4294967295 | 简介 | ||
picture | varchar | 200 | 图片 | ||
content | longtext | 4294967295 | 内容 |
表名3-6:科室分类
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
keshifenlei | varchar | 200 | 科室分类 |
表名3-7:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 |
表名3-8:预约挂号
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yuyuebianhao | varchar | 200 | 预约编号 | ||
yishenggonghao | varchar | 200 | 医生工号 | ||
yishengxingming | varchar | 200 | 医生姓名 | ||
keshifenlei | varchar | 200 | 科室分类 | ||
guahaofei | int | 挂号费 | |||
tupian | varchar | 200 | 图片 | ||
yuyueshijian | date | 预约时间 | |||
yonghuzhanghao | varchar | 200 | 用户账号 | ||
yonghuxingming | varchar | 200 | 用户姓名 | ||
sfsh | varchar | 200 | 是否审核 | 否 | |
shhf | longtext | 4294967295 | 审核回复 | ||
ispay | varchar | 200 | 是否支付 | 未支付 | |
userid | bigint | 用户id |
第四章 系统功能的具体实现
4.1小程序端
登录,用户通过输入账号和密码,选择角色并点击登录进行系统登录操作,如图4-1所示。
图4-1用户登录界面图
用户注册,在用户注册页面通过填写用户账号、用户姓名、密码、确认密码、性别、电话号码等信息进行注册操作;如图4-2所示。
图4-2用户注册界面图
用户登陆小程序端,可以对首页、医生信息、医院资讯、我的等功能进行详细操作,如图4-3所示。
图4-3小程序端首页界面图
医生信息,在医生信息页面可以查看医生姓名、医生工号、图片、科室分类、挂号费、医生介绍等信息,并根据需要进行立即预约操作;如图4-4所示。
图4-4医生信息界面图
医院资讯,在医院资讯页面可以查看标题、图片、简介、内容等详细信息;如图4-5所示。
图4-5医院资讯界面图
用户,在我的页面可以对个人中心,预约挂号等功能进行详细操作,如图4-6所示。
图4-6用户功能界面图
用户信息,在用户信息页面通过填写用户账号、用户姓名、密码、性别、头像、电话号码等内容进行保存或退出登录操作,如图4-7所示。
图4-7用户信息界面图
4.2 后台功能模块
后台登录,管理员和医生通过输入用户名、密码,选择角色并点击登录进行系统登录操作,如图4-8所示。
图4-8后台登录界面图
4.2.1管理员功能
管理员登陆系统后,可以对首页、个人中心、用户管理、医生管理、科室分类管理、医生信息管理、预约挂号管理、系统管理等功能进行相应操作,如图4-9所示。
图4-9管理员功能界面图
用户管理,在用户管理页面可以对索引、用户账号、用户姓名、性别、头像、电话号码等内容进行详情、修改或删除等操作,如图4-10所示。
图4-10用户管理界面图
医生管理,在医生管理页面可以对索引、医生工号、医生姓名、性别、头像、电话号码等内容进行详情,修改或删除等操作,如图4-11所示。
图4-11医生管理界面图
科室分类管理,在科室分类管理页面可以对索引、科室分类等内容进行详情,修改或删除操作,如图4-12所示。
图4-12科室分类管理界面图
医生信息管理,在医生信息管理页面可以对索引、医生工号、医生姓名、科室分类、图片、挂号费等内容进行详情,修改或删除操作,如图4-13所示。
图4-13医生信息管理界面图
预约挂号管理,在预约挂号管理页面可以对索引、预约编号、医生工号、医生姓名、科室分类、挂号费、图片、预约时间、用户账号、用户姓名、是否支付、审核回复、审核状态等内容进行详情,修改或删除等操作,如图4-14所示。
图4-14预约挂号管理界面图
系统管理,在医院资讯页面可以对索引、标题、图片等内容进行详情,修改或删除等操作,还可以对轮播图管理进行详细操作;如图4-15所示。
图4-15系统管理界面图
4.2.2医生功能
医生登陆系统后,可以对首页、个人中心、预约挂号管理等功能进行相应操作,如图4-16所示。
图4-16医生功能界面图
预约挂号管理,在预约挂号管理页面可以对索引、预约编号、医生工号、医生姓名、科室分类、挂号费、图片、预约时间、用户账号、用户姓名、是否支付、审核回复、审核状态、审核等内容进行详情,修改或删除等操作,如图4-17所示。
图4-17预约挂号管理界面图
第五章 系统测试
系统测试是软件开发过程中最后一步,但也是不可或缺的重要的一步,没有人可以保证一次性编写完成的系统不会出错,而系统测试就是将自己开发的系统成为成品前的最后一步。在测试过程中需要进行严谨细致的测试,要尽可能全面地在不同情况下运行该系统,排除一切出现错误的可能。
系统测试不仅仅是发现系统潜在的BUG或错误,而更为重要的是为用户提供一个良好的体验和安全可使用的产品服务。而通过发现错误或潜在的问题,将有助于提升产品的竞争力,这也是软件测试的其中的重要目的之一。
软件测试的方法有好几种,但目前主要采用的是包括以功能为主要测试方向的黑盒测试以及以逻辑为主要测试方向的白盒测试,这是两种不同的测试方法,针对的测试侧重点不同,本课题根据实际需求情况,选择以功能为主要的黑盒测试方法,同时测试是要遵循一定的规则来执行的,一个测试要执行其执行的依据一般是由测试用例来规定的,而测试用例一般是依据需求或说明书来综合制定的,测试在硬件出厂前是十分重要的一个过程,本课题由于时间和精力的关系,选择以实现的功能作为测试要点来进行测试。具体测试过程如下:
测试用例1及测试过程:
登录:录入登录信息,账号,密码,权限,然后单击登录进行操作,会出现两种情况:一种情况是登录成功,进入用户相应的功能界面进行下一步操作;另一种情况是提示登录失败,系统会弹出一个对话框要求重新登录操作;
测试用例2及测试过程:
管理员登录:录入登录信息,管理员账号,密码,权限,然后单击登录进行操作,会出现两种情况:登录成功进入管理员具有权限的功能界面和提示登录失败。一种情况是登录成功,进入管理员界面进行下一步操作;另一种情况是提示登录失败,系统会弹出一个对话框要求重新登录操作;
在这次毕业设计中,我使用了PHP语言,选择MySQL作为后台数据库进行访问及修改。在设计开始之初,我也在苦恼于系统的逻辑功能的具体实现,因为我对于医院预约挂号管理的概念还较为模糊,其间我也查询了大量的网上资料,清楚了解实际生活中医院预约挂号管理主要面对的对象和管理需要完成的基本功能。
虽然在这过程中也遇到了许多的困难,主要有系统逻辑功能不合适和系统设计中出错,当在自己查阅资料无法解决之时,我也会与同学和老师进行请教和讨论,所以在这个过程之中,也让我清楚的认识到自己的不足以及团队的力量才是最大,以后不论是在学习还是工作中,都要融入到集体之中,那样自己才会成长的更快。
当然,在此次设计中,仍然存在着很多的不足,本来之前我想让其系统可以更为完美的实现角色与权限之间的控制,让系统中每一次的权限操作都进行控制,但是也因为时间的不足以及本人的能力有限,并未完成,我希望自己在以后的学习中继续完善,使这个系统更为贴近实际的操作。
[1]黄安.基于PHP+Mysql技术的网站设计与实现——以美食网站系统的设计为例[J].轻纺工业与技术,2019,48(07):168-170.
[2]张世雄.PHP操作MySql数据库的面向对象模型类实现[J].清远职业技术学院学报,2018,11(06):45-48.
[3] 杜雅杉.基于PHP及MySQL数据库的行业网站建设研究[J].电脑开发与应用,2013,26(07):24-26.
[4]田茂然.在Web中基于PHP+MySQL实现分页查询[J].科学咨询(科技·管理),2017(03):40-41.
[5]宋澈. 基于PHP的信息管理系统的设计与实现[D].吉林大学,2016
[6]陈云芳,潘利华,陈瑞,刘小清,吴丽.基于PHP语言访问MySQL数据库的实现[J].中国新通信,2015,17(19):103.
[7]张嵩. PHP开发框架的研究与设计[D].厦门大学,2014.
[8]王炎.基于PHP和MySQL的校园订餐系统构建[J].计算机光盘系统与应用,2014,17(13):269-270.
[9]徐立艳.浅议PHP与MySQL之间的操作[J].电脑知识与技术,2014,10(15):3478-3480.
[10] 王志勇. 基于RIA和MVC的PHP开发框架的研究与实现[D]. 电子科技大学 2012
[11] Sa’’Adah U,Akhmad J,Hisyam M.Implementing Singleton method in design of MVC-based PHP framework. Electronics Symposium . 2015.78-80
[12] Chanchai Supaartagorn.PHP Framework for Database Management Basedon MVC Pattern. International Journal of Computer Science&Information Technology . 2011.45-48
[13] Research on the technology of detecting the SQL injection attack and non-intrusive prevention in WEB system . 2017.89-90
[14] Kar D,Agarwal K,Sahoo A K et al.Detection of SQL injection attacks using Hidden Markov Model. Engineering and Technology (ICETECH) 2016 IEEE International Conference on . 2016.34-37
[18] Jun Luo;Wen Xuan Gu. Establishment of Network Platform of Virtuai Teaching Laboratories in Colleges and Universities Based on php Technology. Advanced Engineering Forum.2012,Vol.4:189-192.
[19] Jing Ying Zhao;Hai Guo. Development of the php Basic Knowledge Learning Software. Advanced Materials Research.2013,Vol.831:481-485.
[20] Zeichick, Alan. J2EE 1.4 brings Web services to EJBs, adds language to php. Software Development Times.2003,No.70:6.
核心代码展示
/**
* 公告通知
* 后端接口
* @author
* @email
* @date 2021-03-09 11:33:59
*/
@RestController
@RequestMapping("/news")
public class NewsController {
@Autowired
private NewsService newsService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( NewsEntity news){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
ew.allEq(MPUtil.allEQMapPre( news, "news"));
return R.ok().put("data", newsService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(NewsEntity news){
EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();
ew.allEq(MPUtil.allEQMapPre( news, "news"));
NewsView newsView = newsService.selectView(ew);
return R.ok("查询公告通知成功").put("data", newsView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
NewsEntity news = newsService.selectById(id);
return R.ok().put("data", news);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
NewsEntity news = newsService.selectById(id);
return R.ok().put("data", news);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody NewsEntity news, HttpServletRequest request){
news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(news);
newsService.insert(news);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody NewsEntity news, HttpServletRequest request){
news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(news);
newsService.insert(news);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody NewsEntity news, HttpServletRequest request){
//ValidatorUtils.validateEntity(news);
newsService.updateById(news);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
newsService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = newsService.selectCount(wrapper);
return R.ok().put("count", count);
}
}