版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
II线上预约挂号信息系统的设计与实现目录TOC\o"1-3"\h\u24068摘要 121502第1章绪论 474901.1研究背景及意义 4227371.2研究现状分析 4218251.3研究内容 513064第2章系统相关技术介绍 7161552.1Java语言概述 737402.2SpringBoot技术 7228182.3Maven技术 7209602.4MySQL数据库 75218第3章系统需求分析 9260113.1可行性分析 927883.1.1技术可行性 9262723.1.2经济可行性 9279913.1.3操作可行性 9218603.2需求分析 927703.2.1普通用户 10151543.2.2管理人员 10112083.2.3医生 10148093.3数据库设计 113503.3.1数据库概念设计 11251093.3.2数据逻辑设计 1213516第4章系统设计及功能实现 15199724.1系统总体设计 15159844.2代码整体结构 15103334.2.1视图层 16109324.2.2控制器 16200384.2.3数据层 16253424.3患者模块功能的实现 16268764.3.1登录操作 168314.3.2注册界面 1714574.3.3用户预约界面 17186534.3.4预约信息查询 1895374.3.5密码修改 18199814.4医生功能模块实现 19191224.4.1排班信息查询 1973834.4.2患者情况查询 1916944.5管理员功能实现 20162144.5.1医生信息管理 20120194.5.2可视化分析 2024317第5章系统测试 2211694第6章总结与展望 26212126.1论文工作总结 26262396.2后续工作展望 2615678参考文献 27摘要:当前,世界已经进入到信息化时代,人们的生活也随着信息技术的发展发生了较大的变化。并且随着互联网技术的发展,较多的传统行业受到的冲击也较大。例如全新通信方式的出现,让传媒业从报纸、书面的方式开始借助互联网技术进行信息的传递,不仅扩大了信息的传播速度,而且也增加了人们获取信息的方式。而医疗行业,采用线下挂号的方式,不仅会浪费患者的时间,还会导致医院出现拥堵的现象。因此本文选择网上挂号预约系统作为研究对象,从而实现患者能够通过互联网技术进行挂号预约,从而有效的缓解医院挂号拥挤的现象。本文对网上在线预约系统进行了设计。本系统采用SpringBoot框架进行系统的构建,选择Java语言作为本系统的开发语言,选择MySql作为本系统的数据库。页面则采用Html语言以及Jsp技术开发。本论文在对系统功能需求进行了深入分析,并根据功能需求进行系统设计。本系统将用户角色划分为三种类型,分别为患者,医生以及管理员。其中患者可以执行的功能有注册,登录,在线预约,医生信息查询,预约信息查询、个人信息修改以及预约支付等功能,其中在线预约等功能,需要在患者登录本系统之后,才可以进行操作。医生用户所具有的功能有登录,个人信息修改,患者预约情况查询,以及排班情况查询。其中排班查询功能,排班主要是管理员用户对医生进行排班,医生可以通过本功能对自己的排班情况查询,从而根据自己的排班情况,查看各个时间段患者的预约情况。管理员用户是本系统的最高权限拥有者,其具有登录,信息管理,预约信息管理以及医生排班管理等功能。管理员在登录本系统之后,可以对本系统中的医生,患者信息进行查看,对医生的个人描述进行修改,对医生的排班时间进行设置,能够对患者的预约情况进行查看。本系统在设计完成之后,采用黑盒的测试方法对本系统功能进行了测试,从测试结果中可以看出,本系统基本实现了上述的功能,并且本系统的操作简单,无需掌握复杂的计算机技术就可以进行操作,所以本系统具有较好的推广意义和使用价值。关键词:互联网;医疗行业;在线预约第1章绪论1.1研究背景及意义当前,世界已经进入到信息化时代,人们的生活也随着信息技术的发展发生了较大的变化。并且随着互联网技术的发展,较多的传统行业受到的冲击也较大。例如全新通信方式的出现,让传媒业从报纸、书面的方式开始借助互联网技术进行信息的传递,不仅扩大了信息的传播速度,而且也增加了人们获取信息的方式。互联网和传统行业之间是慢慢开始融合,逐渐的改变传统行业的生存方式。目前,互联网技术已经深入到各行各业。而医疗行业,采用线下挂号的方式,不仅会浪费患者的时间,还会导致医院出现拥堵的现象。而互联网技术因为其信息传播的多样性,快速性,所以可以采用互联网挂号的方式进行挂号预约,能够有效的提高预约挂号的效率。而这种方式也是未来医疗行业发展的主要趋势[1]。生老病死是自然规律,也是人生中都会经历的过程,但是对于一些疾病可以早发现,早治疗,可以有效的避免发生大病的概率[2]。人们的生活水平在不断提高,人们对于生活的追求也越来越高,但是因为各个行业发展的不均衡,导致人们对于一些需求在增多,例如减少在医院排队挂号的时间,解决老百姓挂号难的问题。社会在不断的发展,医疗行业的服务也需要做出一些改变,从而满足当前社会信息化发展的要求,而医疗行业采用信息化技术,不仅能够减低患者挂号难的问题,还是有效的提高医疗行业的服务效率。所以医疗行业中融入信息化技术,对于医疗行业的发展有着较大的帮助、当前,国内的互联网行业发展速度较快,已经成为了带动我国经济行业发展的主要行业。并且互联网行业用着较多的高新技术,能够有效的处理目前医疗行业中存在的问题。因此,在医疗行业中融入信息化技术,可以从患者的角度对医疗资源进行合理的分配,从而提高医疗行业资源的使用效率。所以在医疗行业中融入互联网技术已经成为了目前医疗行业发展的主要趋势[3]。而且,国内的医疗行业一致存在着“看病难”和“看病贵”的问题。虽然这些问题随着社会的发展得到了一定的缓解,但是现在依然是压在患者身上的两座大山。而且这两座大山也是阻碍医疗行业发展的主要原因。对造成这一现象的根本原因进行分析,发现很多有名的医生被安排查看一些小病上,从而占用了大量的医疗资源,而一些真正需要攻克的疑难杂症上却少有医生专研。并且医疗行业对于医疗资源的分配也较为混乱,科室划分的不明确,医疗体系的结构不完善,从而导致医疗行业的珍贵资源被大量浪费[4]。1.2研究现状分析当前,国内的一些发达城市已经开始实施预约门诊服务,但是在一些落后的城市中,这种线上预约的方式还没有开始试运行,并且对应的制度还存在较多的缺陷。国外相比国内而言,国外的一些国家发展较为发达的国家,线上预约不管是在技术上还是在制度上已经逐渐完善。从美国的医疗服务中就可以看出。患者需要看病时,可以通过电话的方式和医生进行预约,如果没有事前预约则会遭受到医生的拒绝。而国内,最近才开始出现现场挂号、电话预约等多样的挂号方式,之前都是采用现场挂号的方式。但是随着预约挂号方式的增多,现场挂号难的问题依然没有得到较大的改善。通过WAP手机进行挂号预约有着较大的优势,但是这种预约方式受到用户对于软件的熟悉程度以及对于手机操作的熟悉性。但是这种操作方式对于老年人并不友好,当前中国的老年人受教育程度低,并且对于新生事物的接受能力较差,虽然可以花费大量的时间进行练习和熟悉,但是从当前信息化建设的要求来看,这种预约挂号方式还显得较为稚嫩。而语音挂号系统而言,对于不熟悉语音系统的用户而言,不方便使用,因为也不存在输入方式,所以这种预约方式也存在者较多的缺陷。人工电话预约的方式,虽然操作简单,对于患者也较为友好,但是受到电话带宽的影响,所以这种挂号方式效率较低。鉴于上述的预约挂号方式都存在着较多的缺陷,而互联网技术的发展,杜宇这些缺陷都有了一定的改善,所以未来可以采用互联网技术完成挂号预约。国内的挂号预约系统虽然和国外相比,其发展较慢,但是目前也已经取得了较大的成果,国内很多的医院都开始采用这种挂号方式。国内已经有很多的研究学者开始展开对挂号预约系统的研究的。昆山市中医院开始采用预约挂号的机制。并且已经有专家学者对其进行研究,并且研究结果也给其他医院提供了参考。王珂,孙晓红(2019)所研究的是一款能够在手机上进行网上预约的挂号系统。对目前的医疗市场进行分析,然后在利用互联网行业的高新技术实现对移动端的医院挂号系统开发。该系统主要划分为三个层次,分别为移动终端,服务器,数据库结构,采用Eclipse进行软件的开发[5]。刘博(2014)所研发的是基于HIS系统的医院挂号系统,其中进行预约挂号功能是系统的核心功能,其中能够对预约选号,能够对历史预约记录进行查询,并能够完成挂号相关的业务,能够为其他的业务提供数据来源[6]。孙通(2018)根据盖州妇儿医院的现状,然后在对当前社会对其进行功能分析,从而确定系统当前的功能。该系统采用Java语言进行系统开发,患者能够通过微信,手机,电脑完成挂号预约,该系统在正式投入使用之后,对患者提高了较大的便利,从而让患者能够随时随地的完成挂号预约,从而有效的缓解了患者挂号难的问题[7]。就目前而言,门诊预约挂号的出现能够有效的缓解挂号难的问题,其对窗口挂号的工作流程进行了优化,从而减少了患者花费在排队挂号上的时间,并且环节了医院挂号大厅挂号拥挤的现象。门诊预约挂号的出现能够提高医院的经济效益,也能合理的对医院的资源进行分配。张雪梅等学者对预约挂号等问题进行了研究,问题都直接指向医疗行业是缺乏科学组织,并且存在医院资源分配不合理的现象。网上预约挂号这种形式出现之后,不管是在使用上,还是在技术上看,都还存在较多的缺陷,所以可以预料,网上预约挂号系统的发展道路还任重而道远。1.3研究内容北京同仁堂健康公司所采用的挂号预约系统为例,该系统的主要使用对象有三种类型,分别是患者,医生以及管理员三种角色。本系统所具有的功能有用户登录,用户信息注册等功能。本设计的主要目的是借助互联网技术完成挂号预约,并且这种方式也是响应当前社会信息化的发展。希望能够通过网络挂号的方式有效的缓解,挂号难和挂号拥堵的现象,从而提高医院的工作效率。本系统采用的技术有JSP技术,jdbc技术等。本系统采用SpringBoot作为框架,从而完成对网上预约挂号系统的开发。并且在开发的过程中,采用了大量的B/S结构进行系统的开发。采用Java语言完成对系统逻辑的处理,借助JSP技术和SpringBoot技术完成对系统网页的开发,网页上的一些基本逻辑采用JSP技术完成。
第2章系统相关技术介绍本系统选择当前最热门的开发框架SpringBoot,采用Mybatis框架对系统的一些数据进行处理,采用Mysql数据库存储本系统的数据。本系统的前端页面采用JavaFx框架进行开发。2.1Java语言概述Java是当前最热门的编程语言之一,该语言在设计之初,借鉴C++语言的优点,所以Java语言具备了C++所有的优点,并且还舍弃了指针,多继承等一些复杂的概念,所以java语言能够满足开发者对于开发系统的需求。Java技术能够保证系统功能的有效性,所以Java技术是一种比较稳定可靠的技术。Java技术的出现让Web网页开发变得更加容易[8]。2.2SpringBoot技术Spring框架最早出现在2003年,其仅仅是小型的开发框架。然后在其基础上一步步进行功能扩展,从而发展到现在的SpringBoot框架。该框架的出现,也让对小型系统的开发过程变得简洁,方便。其作为一种设计框架,采用分层框架的形式。设计者在进行设计时,可以自由选择开发组件[9]。SpringBoot是一种全新的设计开发,其属于Spring旗下的一个子项目。其出现的目的主要是对Spring框架的一些应用进行配置和环节构建。该框架的出现让对框架的配置更加简单,并且简化了优化的难度,从而让开发人员不再使用模板化的方式对框架进行配置。使用SpringBoot框架能够极大的降低创建Spring项目的难度,并且可以减少对框架的配置[10]。2.3Maven技术Maven是一个项目管理工具。开发人员可以借助Maven软件对开发项目进行管理。开发人员可以借助Maven自动完成对项目基础环境的配置,Maven软件在配置项目的目录结构时,是采用标准的目录结构完成对项目的构建。Maven能够在短时间内完成对项目的所有配置,并且可以创建模板,利用该模板对类似的项目进行配置。这样可以有效的减少开发者花费在项目配置上的时间。2.4MySQL数据库无论开发何种软件,数据库都是必不可少的一部分,可以利用数据库对系统的数据进行管理和存储,并且还能在一定程度上保证系统数据的安全性,此外还能保证数据的独立型和完整性。除此之外,利用数据库能够有效对系统的数据进行管理,还能在一定程度上减少开发者的开发时间[11]。Mysql数据库能够使用多线程技术对其进行访问。采用多线程的方式让资源被充分利用。Mysql数据库对于硬件平台要求减低,基本目前所有的硬件平台都能够让Mysql数据库运行。除此之外,数据库和前端页面进行连接的方式也较为多样,可以采用TCP/IP方式连接,也可以采用JDBC方式对数据进行连接。虽然Mysql在性能上和其他的数据库相比要较差,但是完全满足本系统对于系统库的要求。该数据库是以SQL为基础进行构建,能够通过客户端对数据库直接访问,也可以通过服务器对其进行访问,其具有较高的稳定性,并且有着操作较为简单,能够很简单的将数据库运行起来。Mysql数据库所占用的系统资源较少,并且能够在多个平台上使用,这也是目前很多的系统采用Mysql作为操作系统的主要原因。除了上述的优点之外,可以使用多种语言对其驱动程序进行设计开发,所以设计者能够根据自己的实际情况选择开发语言[12]。
第3章系统需求分析3.1可行性分析不断地研究和分析市场对系统的需求提高系统的可操行性是进行系统设计的基础。市场需求、技术可行性以及开发系统所需的资金以及技术是开发系统所需要考虑的因素。综合考虑这些因素能够提高系统在市场中的竞争力。本文主要从技术、经济以及操作这三个方面分析开发医院在线预约挂号系统的可行性[13]。3.1.1技术可行性医院在线预约挂号系统主要采用B/S模式,相比采用C/S模式构建系统有着更多的优势。使用B/S模式构建的系统只需要借助浏览器就能正常的访问,不需要额外下载客户端。使用B/S模式更利于开发者对系统进行维护和更新,用户不需要更新任何软件就能使用最新的功能,从而提高用户的产品使用感。B/S模式相比C/S模式有着更好的跨平台性,能够在不同的平台上运行,不需要针对平台重新开发,并且B/S模式下相比C/S模式所需的成本更少。市场上众多的动态系统开发工具中,本文所设计的医院在线预约挂号系统选择使用JSP作为本设计的动态系统开发工具。目前,大多数的动态网页都采用JSP和Java相结合的方式进行开发。Java语言能够在不同的平台上运行,并且拥有使用简单,较好的性能,能够在较短的时间内掌握其使用方法等特点。医院在线预约挂号系统选择MySQL作为本设计的数据库。MySQL是一款完全免费小型的数据库。因为MySQL的规模较小,因此运行MySQL所需的系统资源较少,从而保证数据库能够快速的根据请求做出反应,同时MySQL数据库已经能够满足市场上对于数据库大多数的要求,还具有学习简单,操作简单等特点[14]。3.1.2经济可行性本系统是一个线上的医院在线预约挂号系统,其设计结构较为简单,并且所需的研究费用和开发费用较少,所使用的架构模式基本都是开源的,所以不会有架构费用的产生,因为有着较好的跨平台性,因此只需要进行一次开发极大地降低了开发成本。本系统所需要的数据库——MYSQL是一款完全免费的数据,只需要下载安装使用。系统运营时需要使用服务器。目前,市场上针对学生租赁服务器上有着较大的优惠,并且所提供的网络带宽也能满足系统的需求。所以,本系统能够使用极少的成本完成系统的开发。3.1.3操作可行性本系统是基于Web的医院在线预约挂号系统,用户只需要了解计算机的基本操作,不需要额外学习计算机的知识就能操作本系统。网络连接方式可以选择通过局域网和移动通信网接入,然后用户就能直接在浏览器中进行医生信息查询,挂号预约,挂号费支付等功能的操作。用户不需要专门下载工具可以直接借助浏览器完成对本系统的操作和浏览,操作方式和一般的电商系统类同,不需要具备进行专门的学习,所以有着较好的可操作性。3.2需求分析对国内外医疗行业的现状进行深入分析,在根据目前国内医疗行业的发展趋势,本文所设计的在线预约挂号系统是一个医疗行业和互联网技术完美结合的产品,能够让医疗资源得到更好的分配。对于需要治病的患者而言,预约挂号系统能够帮助患者通过互联网技术进行网络挂号,减少用户在医院现场排队挂号的时间,对于医生而言,本系统的操作简单,在给患者提供便利的同时却不给医生带来额外的工作量[15]。根据在线预约挂号系统的服务对象对本系统提出的功能需求,本系统应当具备的功能应当满足如下要求:3.2.1普通用户1)能够通过本系统查看医生的出诊时间,并能够维护系统中的个人信息;2)预约,患者能够根据自身的身体情况进行排号预约,并且预约费用会从账户上直接扣除;3)退订操作。如果患者因为自身的原因或者医生的原因,导致不能准时的进行看病,可以在本系统中取消该次预约;4)能够在本系统中查看自己的所有预约情况;5)账户管理,例如个人信息修改,密码找回等;3.2.2管理人员1)能够对系统的整个管理、新闻等信息进行维护和更新;2)能够对本系统中所有医生的信息进行管理,并能够对医生的信息进行修改;3)可视化分析,管理人员可以通过本功能查看历史预约情况,从而对医生的排班情况进行调整;3.2.3医生1)能够查看个人的排班情况和预约就诊量;2)能够查看历史的排班情况和预约就诊信息。本系统的所有使用者不管是否执行登录操作都可以对本系统中的一些信息进行操作,例如医生的排班情况,医院当前的最新资讯等。但是需要执行预约挂号等操作时,则需要执行登录操作。如果还不是本系统的用户,需要先进行用户注册,然后再登录本系统。普通用户在登录本系统之后,可以执行挂号预约、个人信息修改等操作;医生用户在登录本系统之后,可以执行查看挂号预约情况,个人排班情况等;管理员用户登录本系统之后,则可以对本系统中的所有信息进行修改,也可以安排医生的排班情况。用例图如图3.1所示。图3.1系统用例图3.3数据库设计3.3.1数据库概念设计在数据分析基础上,自底向上地建立整个系统的数据库概念结构,使用实体关系(E-R)图进行系统数据库概念结构设计,建立起系统数据库的概念模型。数据库设计分为需求分析、数据概念、数据逻辑、物理结构、数据实施运行再加上维护。信息世界的数据模型化就是概念结构设计,这种模型一般选用E-R模型。现实世界的实体类型及实体间联系要通过E-R模型来形象化和直观化。这样做的好处是由于对数据的处理接近于人类的思维方式,因此易于被理解和编程者所接受。E-R图,顾名思义就是反映现实世界实体-联系图,为现实世界的实体属性和联系的方法构建概念模型。其表示方法有以下几种:(1)矩形表示实体型,矩形框内的文字为实体名;(2)椭圆形表示属性,要与实体建立一定的联系;(3)菱形表示联系,菱形框内写明联系名,并用无向边分别与有关实体连接起来,联系的类型有1:1型,1:n型或m:n型。本系统的各实体类的属性图如下所示:图3.2系统E-R模型图3.3.2数据逻辑设计从对本系统的功能需求以及设计需求来看,本系统中所需要建立的数据表主要有用户表、科室表、排班表等。不同数据表之间的联系如图3.3所示。图3.3数据库表关系图有了E-R图对设计一个系统数据库来说还不够,还需要将E-R模型与一定的关系相对应,换句话说,就是要在其指导之下,设计出为数众多的建立一个系统数据库所想要的表格体系。关系数据库为此通常被优先选用。因为其二维表格可心数据之间的联系很清楚地描述出来。系统所使用的表格须严格遵从一定的范式标准,即三范式的要求。依据本系统的功能特点,经对相关数据规范化后,有五张表格事最有用的,它们分别是用户信息表、科室信息表、医师信息表、时刻表和管理员信息表。通过对这五张表格的功能性操作,可以确保能较顺畅地完成系统的各项功能,五张表格之间有着不同程序的关系。此文档系统采用MySQL数据库管理系统。首先在MySQL中建立一个数据库,将其命名为hospital,然后根据数据库的逻辑结构分析创建了5张数据表。(1)系统管理员信息表:用于存放系统管理员信息,如表3.1所示。(2)用户信息表表:用于存放所有用户的信息,包括账号、密码、编号、姓名、性别、住址等基本信息,如表3.2所示。(3)病人信息表:用于存入病人编号、姓名、性别、年龄、身份证号、病史、单位和联系电话等所有等信息,如表3.3示。(4)医师信息表:用于存放所有医师的信息,包括医师姓名、医师职称、医师简介、所属科室等信息,如表3.4所示。(5)科室信息表:用于存放所有科室的信息,包括科室名称,科室简介等,如表3.5所示。(6)按时间和部门预约信息编码表:用于存放时间和部门预约信息,包括预约人、预约时间、预约科室、预约医生、预约人电话和病情描述等信息,如表3.6所示。(7)预约成功编码表:用于存放预约成功信息,包括预约人编号、预约日期、预约班别、预约时段、坐诊地址、预约人电话和已预约人数等信息,如表3.7所示。表3.1系统管理员信息表列别名列名数据类型注释管理员序列号Administor_idint(16)主键登录账号Loginnamevarchar2(16)登录密码Passwordvarchar2表3.2用户信息表列别名列名数据类型注释用户序列号User_idint(16)主键用户姓名NameVarchar2(32)登录名称LoginnameVarchar2(32)登录密码LoginpasswordVarchar2(32)所属机构OrganizationVarchar2(32)所属部门DepartmentVarchar2(32)联系电话PhoneVarchar2(32)电子邮箱EmailVarchar2(32)表3.3病人信息表列别名列名数据类型注释病人编号Patient_idint(16)主键病人姓名NameVarchar2(32)性别SexVarchar2(32)年龄AgeVarchar2(32)身份证号ID_numberint(16)病史Medical_history单位UntiVarchar2(32)联系电话PhoneVarchar2(32)表3.4医师信息表列别名列名数据类型医生编号Doctor_idint(16)主键姓名loginNameVarchar2(32)年龄PasswordVarchar2(32)职称ZhichengVarchar2(32)学历EducationVarchar2(32)从医年数Medicial_yearsVarchar2(32)专业ProfessionalVarchar2(32)简介DecriptionVarchar2(32)坐诊地址Examine_addressVarchar2(32)科室名称Dep_nameVarchar2(32)表3.5部门科室信息编码表列别名列名数据类型注释科室编号Dep_idint(16)主键科室名称Dep_nameVarchar2(32)科室介绍Dep_descriptionVarchar2(32)科室主任Dep_directorVarchar2(32)表3.6按时间和部门预约信息编码表列别名列名数据类型注释预约人编号appointment_nameint(16)主键预约日期appointment_timeDatetime预约科室appointment_depVarchar2(32)预约医生appointment_doctorVarchar2(32)预约人电话appointment_phoneVarchar2(32)病情描述Condition_descriptionVarchar2(32)表3.7预约成功编码表列别名列名数据类型注释预约人appointment_idint(16)主键预约日期appointment_dateDatetime预约班别appointment_classVarchar2(32)预约时段appointment_timeVarchar2(32)坐诊地址Examine_addressVarchar2(32)预约人电话Condition_phoneVarchar2(32)已预约人数appointment_numberVarchar2(32)第4章系统设计及功能实现4.1系统总体设计本系统采用B/S结构设计。界面采用JSP技术完成,采用SpringBoot框架进行设计,其中界面显示和后端之间的联系采用SpringMVC结构设计。本系统中不同的数据类型构建了对应的数据关系表,所有的系统请求都在服务器端完成[16]。通过上一章节对本系统的功能需求分析,将本系统划分为三个部分。具体如图4.1所示。图4.1系统模块图4.2代码整体结构本系统的代码结构采用Model2模式进行设计,代码层次关系如图4.2所示。图4.2代码结构图4.2.1视图层视图层中的代码主要在JSP文件中生成,存放在web.inf目录下,该目录下内容不具备直接修改权限或者访问权限,只能借助控制器才能对这些文件进行访问或者修改。xml文件主要是配置文件,对系统的一些配置进行补充或者设置。本系统的视图层主要通过Html和Java语言实现,Validte中的输出部分需要对其输出内容进行验证,防止出现表单重复提交的现象。4.2.2控制器控制器的主要功能是完成本系统的业务逻辑控制,也是用于将数据传递给各个层次。其中Atcion类是本部分的核心部分。本设计中,过滤器是构建控制器的核心部分,因此需要将控制器的控制方式以及实现方式写入到Web.xml配置文件中。本系统所使用的框架是SpringBoot框架,该框架内对于一些基础的配置信息都以全部实现。一般基本的功能配置都是通过继承Action类完成,一些较为特殊的功能则是在Json.default包中完成。为Action类提供相应的数据,然后将这些数据传递给Jsp界面进行显示。页面的整体设计逻辑清晰,对于数据库的访问请求也较少,因此本系统具有较快的数据相应速度,网页上需要显示的内容数据较多,如果每次进行页面刷新时,都从数据库中读取数据,那么将会增加系统资源的开销,从而导致系统的相应速度降低,所以本系统中采用数据缓存技术,将数据库中一些常用的数据缓存到系统中,之后在访问同样的数据时,只需要从缓存中读取数据或者完成数据的修改,等用户的所有操作都执行完成之后,在将对应的数据写入到数据库中。这样有效的降低了系统访问数据库的次数,从而有效的提高了系统的响应速度。4.2.3数据层数据层的主要功能是提高数据的生存周期,并为服务层提供数据,本系统中采用Java语言编写数据库的驱动,不同的数据库在进行访问时都可以调用相应的驱动接口,本设计中采用Sqlhelper类完成对JDBC驱动程序的编写,从而为访问不同的数据库提供相关的数据接口。Domin包中会存放数据表中的全部元素,数据变量的存储都采用统一的方式进行命名,这样能够让系统的结构更加清晰,也有利于后续对其进行错误的排查,所有的元素都会具备两种数据,从而方便逻辑层对其进行调用。Sqlhelper类是是一个专用于操作数据库的组件,能够有效的降低数据库链接访问的效率,参数在封装之后只需要传入相应的参数就能访问相应的数据库,该类中,对于同一种数据库的访问都提供了一组一致的重载方式,这样可以更加灵活的访问数据库。4.3患者模块功能的实现4.3.1登录操作用户登录模块是防止非法用户登录的第一道防线,通过它可以保护后台数据库的安全性,当用户要进行预约或者个人信息修改时,首先要进入的就是身份验证界面,只有在密码正确的情况下才能进行有效的预约和修改,如果输入的密码不正确,则不能进入系统。用户登录系统后仅可以对个人的信息进行修改和查询个人的预约情况。登录界面如图4.3所示。图4.3登录界面主要代码如下:publicstaticstringgetUserpwdBycer(stringcertificate_number){SqlConnectironconn=null;stringuPwd=null;conn=conndb.OpenSqlDB();if(certificate_number!=””){stringscm=”selectuser_passwordfromuserswherecertificate_number=”””+certificate_number+””;using(conn){SqlConmandcmd=newSqlConmand(scn.conn);SqIDataReaderdr=cnd.ExecutrReader();if(dr.Read()){Upwd=dr[0].ToString();}}}returnuPwd;}4.3.2注册界面用户要想使用更多的系统的功能,就必须成为系统用户。用户可以采用注册的方式成为系统的会员。注册界面如图4.4所示:图4.4注册界面主要代码如下:defusr_sign_up():defsign_to_Mofan_Python():np=new_pwd.get()npf=new_pwd_confirm.get()nn=new_name.get()withopen('usrs_info','rb')asusr_file:exist_usr_info=pickle.load(usr_file)ifnp!=npf:tk.messagebox.showerror('Error','Passwordandconfirmpasswordmustbethesame!')elifnninexist_usr_info:tk.messagebox.showerror('Error','Theuserhasalreadysignedup!')else:exist_usr_info[nn]=npwithopen('usrs_info.pickle','wb')asusr_file:pickle.dump(exist_usr_info,usr_file)tk.messagebox.showinfo('Welcome','Youhavesuccessfullysignedup!')4.3.3用户预约界面用户需要进行就诊时间预约时,首先需要选择所需要预约的科室和需要预约医生的就诊时间,预约界面如图4.5所示。图4.5按科室预约主要代码如下:StringOffId=request.getParameter(“offId”);StringdocId=request.getParameter(“docId”);if(docId!=null){Doctordoctor=doctorService.get(Integer.valueOf(docId));Offdiceoffice=officeService.get(doctor.getOffId());request.setAttribute(“office”,office);request.setAttribute(“doctor”,doctor);request.getRequestDispatcher(“/guhaoStart.jsp”).forward(request,response0;}else{List<Doctor>doctorList=doctorService.getByOffId(Integer.valueOf(offId));Officeoffice=officeService.get(Integer.valueOf(offId));request.setAttribute(“office”,office);request.setAttribute(“docList”,doctorList);request.getRequestDispatcher(“/showDoctor.jsp”).forward(request,response);}4.3.4预约信息查询用户可以在本系统中查询自己的预约情况。预约查询界面如图4.6所示。图4.6预约查询界面查询医师可预约时间的代码实现如下:publicActionForwardfindDoctorById(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){//TODOauto-generatedmethodstubIntegerid=Integer.parseInt(request.getParameter(“doctorId”));try{Doctordoctor=(Doctor)this.doctorService.findDoctorById(id);ListallTimes=this.timeService.findAllTimes();ListdateTimes=newArrayList<Time>0;if(doctor.getUsers().size()>0){for(Usersu:doctor.getUsers()){if(u.getTimes().size()>0){for(Timet:u.getTimes()){for(inti=0;i<allTimes.size();i++){Timetime=(Time)allTime.get(i);if(!t.getId().equals(time.getId())&&!dateTtains(time);dateTime.add(time);}4.3.5密码修改用户需要按照一定的周期或者时间对自己的密码进行修改,从而提高账号的安全性。用户在进行密码修改时,首先需要确定用户身份的准确性,因此需要验证是否为本人操作,因此首先需要输入旧密码,然后在输入新密码,最后对新密码进行确认。如果旧密码和当前的登录密码或者两次输入的旧密码不一致则不能完成密码的修改。密码修改界面如图4.7所示。图4.7密码修改主要代码如下:ModelUsernu=newModeUser();nu=DAO_user.getUserBYcer(Session[“certificate_numbe”].ToString());if(txtoldpwd.Text.Trim()==oldPwd){if(txtnewpwd.Text==txtnewpwdr.Text){nu.user_password=txtnewpwd.Text;if(DAO_user_password=txtnewpwd.Text;if(DAO_user.UPtateUserPwd(mu)){Response.Write(“<scriptlanguage=’javascript’>alert(‘mimayichongzhi’)</script>”);}else{Respon.Write(scriptlanguage=’javascript’>alert(‘mimaxiugaishibai’)</script>”);}}else{Response.Writ(“<scriplanguage=”javascript’>alert(‘liangcimimashutybutong,qingchongxinshuru’),/script>”);}}else{Respon.Write(“<scriptlanguage=’javascrip’>alert(‘jiumimashurucuowu,qingchongxinshuru’)</script>”);}4.4医生功能模块实现4.4.1排班信息查询医生在登录本系统之后,可以通过排班信息查询功能查询自己的排班情况。排班信息查询界面如图4.8所示。图4.8排班信息查询主代码如下:List<Register>rList=registerService.getList(checkTime,pageData);List<RegisterDto>regList=newArryList<RegisterDto>();RegisterDto=null;for(Registerreg:rList){Patientpatient=patientService.get(reg.getpId());Doctordoctor=doctorService.get(reg.getDocId());Officeoffice=officeService.get(doctor.getOffId());dto=newRegisterDto();dto.setRegId(reg.getRegId());dto.setpId(patient.getpId());dto.setpName(patient.getpName());dto.setOffName(office.getOffName());dto.setDocId(doctor.getDocId());dto.setDocName(doctor.getDocName());regList.add(dto);}request.setAttribute(“regList”regList);request.setAttribuet(“page”pageData);request.setAttribute(“checkTime”,checkTime);request.getRequestDispatcher(“/admin/registerList.jsp”.)forward(request,response);4.4.2患者情况查询医生可以通过该功能查看各个出诊时间段的患者信息。患者信息查询界面如图4.9所示。图4.9患者信息查看界面主要代码如下:StringcheckName=request.getParameter(“checkName”);PageDatapageData=newPageData();List<Patient>pList=patientService.getList(checkName,pageData);request.setAttribute(“pList”,pList);request.set.Attribute(“page”,pageData);request.setAttribute(“checkName”,checkName);request.getRequestDispatcher(“/admin/patientList.jsp”.)forward(request,response);4.5管理员功能实现4.5.1医生信息管理管理员具有对本系统中所有信息更改的权限,因此管理员用户可以对医生的信息进行管理。医生信息管理界面如图4.10所示。图4.10医生信息管理界面主代码如下:List<Doctor>docList=doctorSevice.getList(checkName,pateData);List<Doctor>docDtoList=newArrayList<DoctorDto>();for<Doctordoc:docList){dto=newDoctorDto();Officeoffice=officeService.get(doc.getOffId());dto.setDocId(dco.getDocId());dto.setDocName(doc.getDocName());dto.setOffName(office.getOffName());booleanisReg-isHasReg(doc.getDocId(),request,response);if(isReg){dto.setColor(“red”);}else{dto.setColor(“black”);}docDtoList.add(dto);}request.set.Attribute(“docDtoList”,docDtoList);request.setAttribute(“page”,pageData);requset.setAttribute(“checkName”,checkName);request.getRequestIispatcher(“/admin/doctorList.jsp”).forward(request,response);4.5.2可视化分析管理员可以通过本功能查看过去一段时间内的预约情况,从而根据预约情况调整医生的出诊时间。可视化分析界面如图4.11所示。图4.11可视化分析界面主代码如下:consttranslateY=(value)=>{return`translateY(${value}px)`;}constDynamicBarChart=(props)=>{const[dataQueue,setDataQueue]=useState([]);const[activeItemIdx,setActiveItemIdx]=useState(0);const[highestValue,setHighestValue]=useState(0);const[currentValues,setCurrentValues]=useState({});const[firstRun,setFirstRun]=useState(false);letiterationTimeoutHolder=null;functionstart(){if(activeItemIdx>1){return;}
第5章系统测试系统的功能模块进行测试时编写较多的相应的测试用例,按照用例内容进行验证系统功能。本系统的功能测试步骤及测试结果如下:表51用户注册测试用例测试用例ID001测试用名称用户注册测试功能点正常测试目的是否可以正常注册测试级别基本功能测试测试类型功能测试预置条件无测试步骤1.打开Chrome浏览器输入正确的URL。2.进入到注册页面。3.填入相关用户信息。4.点击注册按钮。预期结果可以成功注册实际结果用户注册成功表52用户正常登录测试用例测试用例ID002测试用名称用户登录测试功能点用户正常登录测试目的测试用户正常登录测试级别详细功能测试测试类型功能测试预置条件无测试步骤1.打开Chrome浏览器输入正确的URL。2.输入正确的用户名。3.输入正确的密码。4.点击登录按钮。预期结果可以正常登录系统实际结果可以正常登录系统
表53用户异常登录测试用例测试用例ID003测试用名称用户登录测试功能点用户异常登录测试目的测试错误用户名和密码是否可以登录测试级别详细功能测试测试类型功能测试预置条件无测试步骤1.打开Chrome浏览器输入正确的URL。2.输入错误的用户名。3.输入正确的密码。4.点击登录按钮。5.在此输入正确的用户名。6.输入错误的密码。7.点击登录按钮。预期结果不能登录系统实际结果不能登录系统表54预约挂号模块测试用例测试用例ID004测试用名称预约挂号测试功能点预约挂号测试目的正常进行预约挂号测试级别详细功能测试测试类型功能测试预置条件无测试步骤1.打开Chrome浏览器输入正确的URL。2.使用admin登录到系统。3.进入到预约挂号界面,选择需要预约的医生和预约
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 康复运动对于肌肉拉伤的治疗方法
- 个人隐私泄露后的心理影响分析
- 2025年卫生监督技能竞赛案例分析题库合集附答案
- 2026安徽蚌埠市卫生健康委委属医院第二批“校园招聘”79人备考题库带答案详解(培优b卷)
- 蒙牛2026届春季校园招聘备考题库附参考答案详解【满分必刷】
- 2026山东省新动能基金管理有限公司校园招聘8人备考题库附参考答案详解(综合卷)
- 2026山东出版集团有限公司山东出版传媒股份有限公司招聘193人备考题库含答案详解【综合题】
- 2026江苏宿迁市泗洪县招聘合同制和公益性岗位人员15人备考题库含答案详解(巩固)
- 2026广东云浮市郁南县招聘公益性岗位人员27人备考题库(第二轮)带答案详解(模拟题)
- 公路工程汛期报告制度
- 高速公路安全养护作业规程优质资料
- unit4a glimpse of the future教学设计新外研版2019高中英语选择性必修第三册
- 雁行理论优质获奖课件
- 伊利亚穆辛俄国指挥艺术的一代宗师
- JJF 1609-2017余氯测定仪校准规范
- GA/T 487-2020橡胶减速丘
- CB/T 3798-1997船舶钢质舾装件涂装要求
- 第十六章制药工艺学微生物发酵制药工艺课件
- 《八声甘州》(柳永)课件
- 康复医疗项目可研报告
- 全员安全生产“大学习、大培训、大考试”的专项行动方案
评论
0/150
提交评论