医院网上预约挂号系统设计与实现-毕业论文

医院网上预约挂号系统设计与实现-毕业论文

ID:4449589

大小:3.62 MB

页数:43页

时间:2017-12-01

上传者:U-1863
医院网上预约挂号系统设计与实现-毕业论文_第1页
医院网上预约挂号系统设计与实现-毕业论文_第2页
医院网上预约挂号系统设计与实现-毕业论文_第3页
医院网上预约挂号系统设计与实现-毕业论文_第4页
医院网上预约挂号系统设计与实现-毕业论文_第5页
资源描述:

《医院网上预约挂号系统设计与实现-毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

成都学院学士学位论文(设计)医院网上预约挂号系统设计与实现题目医院网上约挂号系统的设计与实现学院信息科学与技术学院专业软件工程学生姓名肖云来学号200910414309年级2009级指导教师易勇职称教授2013年4月23日 成都学院学士学位论文(设计)医院网上预约挂号系统的设计与实现专业:软件工程学号:200910414309学生:肖云来指导教师:易勇摘要:随着科学技术的不断发展与进步,计算机网络的利用也逐步深入到各行各业,互联网成为了人们生活中的一部分。随着城镇人口的增加,人们去医院挂号就医总是排长长的队伍,对于时间比较紧的人是一个非常头痛的问题,有的人可能就只是挂号就要用去半天时间。人们为了缓解挂号就医排长队的问题,本论文探讨利用正在不断发展和进步的网络技术,实现网上预约挂号。本论文主要介绍了基于ASP.NET的医院网上预约挂号系统的设计与实现,主要介绍医院预约挂号系统前台应用,后台管理等。通过Internet实现网上挂号,查询预约挂号,取消预约挂号,查询医生,后台管理功能的处理等。本论文系统开发上使用三层架构,SQLServer数据库,IIS服务,VisualStudio2010和DreamweaverCS5开发工具。结构上使用B/S结构,B/S模式是现在比较流行的数据库应用模式,通过Internet进行通信,可以不受地域的限制。在编程思想上采用面向对象编程的特性及“封装性”的特点。本系统界面简单,容易操作,方便医院的管理与使用者的交流。 关键词:预约挂号;设计与实现;Web应用;ASP.NET;三层架构 成都学院学士学位论文(设计)TheDesignandImplementationofHospitalOnlineRegistrationBookingSystemSpecialty:SoftwareEngineeringStudentNumber:200910414309Student:XiaoYunlaiSupervisor:YiYongAbstract:Withthecontinuousdevelopmentandprogressofscienceandtechnology,theusingofcomputernetworkhasgonedeeplyintoallwalksoflifeandInternethasbeenapartofpeople’slifeaswell.Withtheincreasingurbanpopulation,peoplealwayswaitinalonglineforhospitalregistration,whichisaveryheadacheproblemforthepeoplewhosetimeistight.Peopleevenspendhalfadayforhospitalregistration.Toalleviatetheproblemofwaitinginalonglineforhospitalregistration,thisthesiswilldiscussthecontinuousdevelopmentandprogressofnetworktechnologythatcanbeutilizedinimplementingonlineappointment.ThisthesismainlyintroducesthedesignandimplementationofhospitalonlineregistrationbookingsystemthatisbasedonASP.NETandtheforegroundapplicationandbackgroundmanagementofthesystemandsoon.Peoplecanmakeappointmentsonline,searchtheappointment,andcanceltheappointmentthroughInternet.Inaddition,peoplecansearchthedoctors;dealwiththebackgroundmanagement,etc.Three-tierarchitecture,SQLServerdatabaseandIISservicewillbeutilizedinthedevelopmentofthesystem.VisualStudio2010andDreamweaverCS5willbeusedasthedevelopmenttools.B/Smodewillbeutilizedinthestructuredesign,whichisaverypopulardatabaseapplicationmode.CommunicatingthroughtheInternetisnosubjecttoregionalrestrictions.ObjectOrientedProgrammingthoughtwillbeutilizedandtheencapsulationcharacteristicaswell.Thissystemhasthefollowingcharacteristics:easyinterface,easyoperationandconvenientmanagementofthesystemandalsothecommunicationbetweentheusers.Keywords:Bookingregistration;DesignandImplementation;Webapplication;ASP.NET;Three-tierArchitecture 成都学院学士学位论文(设计)目录绪论11需求分析和可行性分析31.1系统设计的原则31.1.1系统设计架构31.1.2模块要求31.2系统可行性分析41.2.1技术可行性41.2.2经济可行性41.2.3操作可行性51.3相关技术介绍51.3.1浏览器/服务器结构51.3.2ASP.NET技术简介61.3.3SQLServer数据库81.4开发工具和开发坏境81.5本章小结82数据库设计92.1数据库需求分析92.2数据库E-R图设计102.3数据库表设计112.3.1医生信息表(doctor-info)112.3.2科室信息表(subject)112.3.3预约信息表(booking)112.3.4普通用户表(users)122.3.5系统用户表(sys)132.4本章小结133详细设计143.1系统设计思想143.2系统功能模块设计143.3系统结构设计153.4后台系统界面设计163.4.1用户管理16III 成都学院学士学位论文(设计)3.4.2专家管理163.4.3预约管理173.4.4科室管理173.4.5系统管理员管理183.5前台系统界面设计183.5.1母板界面183.5.2用户登录193.5.3用户注册193.5.4预约查询203.5.5资料修改203.5.6密码修改213.6本章小结214重难点分析234.1表现层重难点234.2业务逻辑层重难点244.3数据访问层重点244.3.1获取信息244.3.2添加信息254.4用户登录264.4.1验证码264.4.2登录264.5预约记录274.6资料修改284.6.1输出现有用户信息284.6.2更新用户信息数据库294.7密码修改304.8本章小结305系统的发布和测试315.1系统的测试315.1.1目的315.1.2测试用例315.2系统发布315.2.1发布网站32III 成都学院学士学位论文(设计)5.2.2配置IIS6.0335.3本章小结336全文总结与未来工作346.1全文总结346.2未来工作346.3本章小结34结论35参考文献36致谢37III 成都学院学士学位论文(设计)绪论一、选题背景及意义随着科学技术的不断发展与进步,计算机的应用已经进入到社会的每一个角落。互联网的应用也日益普及,人们与网络应用之间的联系也越来越多,互联网成为人们快速获取、发布和传递信息的重要渠道。它在人们生活、经济、政治等各个方面发挥着非常重要的作用。互联网上发布信息主要是通过网站来实现的,获取数据信息也是要在互联网的“海洋”中按照规定的检索方式将所需要的数据信息从网站上下载下来。目前人们正处于医疗保健意识日益重视的时代,各医院都在积极快速地完善自身的体制,规范机构的管理方式,以适应医疗越来越多的需求规范。因此网站建设在Internet应用上的地位也变得格外重要,医院预约挂号系统可以使得人们方便快速的挂上号,避免浪费不必要的排队时间。二、国内外研究现状医院网上预约挂号主要是指患者通过登陆网站实现远程挂号,不需走出家门,不需排队等候。医院网上预约挂号看病在国外已经成为最主要的就医方式。医院网上预约挂号就医在国外是一件非常普及的事情,通过预约就医,既方便了患者,也减轻了医院管理的负担,对于医院和患者都非常方便快捷,是一种比较符合大众的服务方式。国内则处于刚刚起步的阶段,比如说天津市网上预约挂号系统就是目前国内发展之一,但是里面模块相对复杂,操作很不方便。所以大多数的患者还是最初的排队挂号,耗费了大量宝贵的精力和时间。三、本论文的研究内容及主要解决的问题在以上背景下,本文论述医院预约挂号系统中的预约挂号,新闻信息和后台系统管理的设计实现,其中预约挂号主要是实现类似患者在门诊的挂号功能,是医院网上预约挂号系统中的一个重要组成部分,它是患者门诊就诊的入口,为门诊管理提供基础数据。网上有医生介绍和科室信息说明,可以供患者参考并做出选择预约,减少病人到医院预约环节,减少医院的工作负担。可以通过挂号单提前查取患者信息,可以从挂号门诊部获取预约挂号收费信息。新闻动态信息是医院最近的动态信息或者健康知识说明等。这样可以提前让患者知道医院的一些37 成都学院学士学位论文(设计)动态变化,这样可以大大提高患者就医效率。通过以上简单模块的分析,大概说明了医院网上预约挂号系统的开发需求过程及各种技术细节。本论文主要解决的问题是解决支持注册用户的在线查询医生资料,挂号,以及对挂号成功与否的查询和取消;医生也能通过本系统对患者资料和挂号情况进行统计和安排。它能够准确记载和查阅有关医院的大量数据,帮助医院掌握和分析管理情况,及时做出正确决策,并且有利于医院内部的财务、人员、情况等管理,因而大大提高了现代医院的管理水平,实现了患者在网上进行对科室与医生的了解、选择和挂号,降低了医生和工作人员的工作量,更提高了患者的就诊效率。四、论文的组织结构本文主要从以下七个方面来对本系统进行介绍和说明:1)绪论:在绪论中主要是对本论文的开发背景及意义;国内外研究的现状以及本文的研究内容进行详细的说明。2)第一章需求分析和可行性分析:在本章中是对系统的设计原则,系统的可行性分析,相应技术的介绍以及开发工具和开发环境的介绍,简单的说明了该系统是一个什么样的系统,具有哪些功能等等。3)第二章数据库设计:本章主要包括数据库设计的注意事项,数据库的介绍,数据库的原则,E-R图,数据库表设计,数据库关系图等,主要是对本系统使用的数据,以及数据之间的关系进行说明。4)第三章详细设计:本章主要包括开发平台介绍,程序开发的任务及质量要求,主要功能模块的详细介绍等,主要是对本系统的功能进行详细的说明。5)第四章重难点分析:本章中主要是对在开发本系统中遇到的技术难点进行一个分析和说明,目的是为了更好的进行项目的开发和后期的维护。6)第五章系统的发布和测试:主要包括系统的发布和测试,说明系统的发布平台和测试的相应结果。7)第六章系统的不足与展望:本章主要是对本系统在开发的过程中有不足的地方进行总结,以及对后期的扩展和维护进行总结,以便能更好的对该系统进行全面的认识。37 成都学院学士学位论文(设计)1需求分析和可行性分析1.1系统设计的原则本系统主要是面向大众化的普通用户,所以要求系统要有很高的实用性,由于本系统会设计个人资料的敏感信息问题,可靠性和经济性也是我们考虑的重点。1.1.1系统设计架构根据对项目需求的分析,总结出项目的总体架构设计如图1-1所示:图1-1医院网上挂号系统架构图本系统分为前台用户操作和后台用户管理两个大功能,在前台用户操作中,用户可以注册成为本医院的会员,可以进行专家查询,预约查询与修改,个人信息修改等操作。而后台用户可以对注册的会员进行管理,对专家信息管理,对注册的用户的预约管理和对系统管理员的管理等操作。1.1.2模块要求前台用户操作界面功能主要有:专家查询、预约查询、用户信息修改、密码修改等功能设置。专家查询:通过这个功能可以浏览到每个专家的简介及所属科室,从而选择是否对该专家进行具体预约。预约查询:此功能汇总了用户的预约信息,包括:门诊号、专家、门诊日期、预约日期,同时还可以对预约进行取消。37 成都学院学士学位论文(设计)用户信息修改:可以对自己的信息进行修改,如:姓名、出生年月、性别、居住地、身份证号等信息。安全退出:用户可以点击安全退出按钮返回到最初的登陆界面。后台管理员可操作的有:专家管理、用户管理、预约管理、系统管理等功能设置,具体描述如下:用户管理:显示用户的预约信息,也可以对某个特定用户进行查询。专家管理:对专家进行添加与删除,修改专家档案。预约管理:对预约信息进行查询管理,取消已过期的预约信息。系统管理:对管理员进行添加与删除,修改管理员信息。科室管理:对科室进行添加与删除,科室的信息进行修改。1.2系统可行性分析主要从技术的可行性,经济的可行性以及操作的可行性3个方面对本系统进行了可行性的分析和论证。充分说明了本系统的实现是可行的。1.2.1技术可行性根据查询用户提出的系统性能、功能及实现系统的各项要求,根据目前所拥有的条件,从开发技术的角度讨论考虑系统实现的可行性。本系统前台数据库采用sqlServer2005,该数据库系统拥有开发简单,易学易用,接口灵活,界面友好等特点,是一款典型的新一代数据信息管理和信息系统开发工具。具有较独特的优势-提供了更加强大的数据组织结构,安全检查,信息管理等功能。系统基于Windows平台,界面使用Dreamweaver设计动态网页。系统涉及后台管理与前台操作,前台用户可以进行个人信息修改、密码修改、专家查询、预约查询与修改等操作。后台包括专家管理、用户管理、科室管理及系统管理等功能。界面简单,使用操作方便。1.2.2经济可行性从本系统开发的角度来看,系统的开发运用成本比较低,只需购买一定的参考资料以及开发系统时所需要的一些开发工具;从使用本系统所能带来的效益来看,用户通过网上预约医院的专家、专科号,不会再经受门诊挂号排长队对精神和时间的消磨。它能更好的简化就医环节,节约就医时间,改善患者就医环境,真正体现了以患者为中心,一切从方便患者为出发点,符合当今医院所推崇的人37 成都学院学士学位论文(设计)性化温馨服务的理念。因此,本系统的开发在经济方面是可进行的。1.2.3操作可行性由于当今科技的飞跃式发展,计算机早已在生活的方方面面普及,科技便利的条件给人们创造了优越的工作环境,这使人们对工作效率及可操作性都有了更高的要求。本系统用户平台直接面向患者用户和管理员,界面明了、简单,采用可视化界面,用户只需要用鼠标和键盘就可以对系统进行预约及管理等功能。由于本系统的操作简单、易懂,在使用软件之前对企业内部相关工作人员进行简单培训即可。系统维护需要有专业知识的人员进行操作,而现在企业中都有专业的技术人员,所以这都不是什么问题。综上所述,本系统在操作方面是可行的。1.3相关技术介绍本部分主要对网上医院挂号系统的实现使用到的相关技术如:WEB浏览器/服务器结构,ASP.NET[1],以及SQLServer数据库进行了介绍。1.3.1浏览器/服务器结构WEB浏览器/服务器结构(Browser/Server,简称B/S)[2]是基于WEB技术的新型网络结构,成功地弥补了C/S结构的很多不足。B/S结构网络中是通过WEB服务器再与数据库服务器相连,用户的请求先送到WEB服务器,再由WEB服务器负责将处理结果格式化为HTML格式,最后再反馈给用户。该结构的实质是传统的二层C/S模式的进一步发展,通常称为三层结构[3]。B/S结构本质上是请求驱动结构,但是它在综合多项技术的同时克服了C/S结构的一些不足,采用B/S[4]模式构造的MIS系统的优点是:客户端软件简单而统一,大大节省客户机的硬盘空间和内存;极大地减少了系统开发和维护费用;解决了客户/服务器应用中存在的客户端跨多平台的问题,界面通用统一;特别适用网上信息的发布,这是其他结构所无法实现的。B/S结构的MIS关键要解决好WEB数据库的存取问题,传统的CGI技术存在效率低、速度慢、调试维护困难及API(ApplicationProgrammingInterface,应用程序编程接口)兼容性差的缺点[4]。ASP技术出色地解决了WEB数据库的存取问题,它可使WEB信息系统的开发变得快速、简单、高效。现在ASP技术己经被广泛地采用来开发WEB数据库应用,从而极大地促进了WEB37 成都学院学士学位论文(设计)信息系统的应用[4]。B/S(Brower/Server)结构是指客户端通过浏览器访问web和与web相连的后台数据库,其结构如图1-2所示。图1-2B/S结构图1.3.2ASP.NET技术简介随着网络时代的到来,人们对Internet信息服务的要求也不断提高,普通的静态网站已不能满足各种应用需求。因此,网站开发人员必须掌握客户/服务器技术,以便创建动态的网站内容。ASP技术就是用来开发动态网站的语言之一。ASP是ActiveServerPages的缩写,中文名称叫做“动态服务器页面”,是一种WEB服务器端的开发语言,本质上是一个服务器端的脚本编写环境,是目前开发WEB动态交互网页的主流技术,应用该技术可以轻松快捷地开发高效的、运行动态的、交互的服务器端WEB应用程序[5]。ASP是一种类似于VB的面向对象的程序语言,微软的ActiveServer[6]支持ASP技术,微软从IIS3.0开始增加了ActiveServer功能,ActiveServer是在服务器端提供对ActiveX和VBScript的支持,这样不论客户端使用哪一种浏览器,都能正常地进行浏览查询、修改、删除、录入等操作,使用ASP可以组合HTML页、脚本命令和ActiveX组件以创建交互的WEB页和基于WEB的功能强大的应用程序,并且使用ASP代码编写的应用程序很容易开发和修改,因此,ASP被广为运用。当用户通过浏览器向WEB服务器请求.asp文件时,ASP脚本开始运行。然后WEB服务器就调用ASP,ASP全面读取请求的文件,所有脚本命令均被执行,最后给浏览器返回一个响应页面;ASP中的脚本在WEB服务器端运行,WEB服务器负责所有的脚本处理并生成标准的HTML页面传送给浏览器,而不是传统的在用户浏览器中的运行,这一措施使用户的浏览器无须担心服务器端的网页使用何种脚本,ASP都会生成一个符合HTML[7]37 成都学院学士学位论文(设计)标准的网页送回用户端,减轻了浏览器的负担,可大大提高交互的速度。ASP工作原理示意图如图1-3所示。图1-3ASP工作原理示意图以下是ASP独具的一些特点:1)使用VBScript、JavaScript[8]等简单易懂的脚本语言,同时结合HTML代码,即可快速地完成网站的应用程序。2)使用普通文本编辑器,如Windows的记事本,即可进行编辑设计,而利用诸如Dreamweaver[9]等所见即所得的网页编辑软件可以方便地进行编辑,易学易用。3)与浏览器无关(BrowserIndependence[10]),用户端只要使用可执行HTML代码的浏览器,即可浏览ASP所设计的网页内容;ASP所使用的脚本语言(VBScript、JavaScript)均在Web服务器端执行,用户端浏览器不需要能够执行这些脚本语言。4)ActiveServerPages的源程序,不会被传到客户端浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。ASP程序语言有如下的优势:1)ASP完全与HTML完全融合在一起,应用程序无需编译和连接,就可在服务器端直接执行。2)面向对象,能用任何ActiveX[11]脚本语言来编写,由于脚本在服务器端执行,因此它几乎可以支持任何一种浏览器。3)用ASP开发的WEB[12]应用程序,返回到浏览器的是纯HTML语言,不依赖浏览器和操作系统,因此源代码不会传到浏览端,源程序不会外漏,具有较好的保密性。用在服务器端执行的ASP程序代码生成或修改在客户端执行的脚本。4)开发者可通过使用ActiveX服务器组件无限扩充应用程序功能。由于ASP的出现,使网页访问者和服务器进行交互更加容易;利用ASP37 成都学院学士学位论文(设计)还可以实现基于WEB的信息管理系统,简化了系统的开发与维护;利用ASP实现的信息管理系统使用户非常方便地对后端数据库记录进行增加、删除、修改、查询操作,而且利用ASP可以实现分页技术,使用户对大量记录的查询一目了然,可以轻松地查看所有记录;ASP是微软产品,它与微软的SQLServer等办公软件可以有机结合,可轻松实现对报表的打印,且美观实用[13]。1.3.3SQLServer数据库SQLServer[14]数据库是美国Microsoft公司推出的一种关系型数据库系统,SQLServer是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案,其主要特点如下:1)高性能设计,可充分利用WindowsNT的优势;2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。强壮的事务处理功能,采用各种方法保证数据的完整性;3)支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言,SQLServer以其内置数据复制、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。1.4开发工具和开发坏境数据库:SQLServer2005网页界面设计:DreamwearCS5开发坏境:VisualStudio20101.5本章小结从上面的几点分析出了,该项目应该具有的功能以及在实现上的可行性。并简单的说明了开发工具和开发的坏境。37 成都学院学士学位论文(设计)2数据库设计当一个系统涉及数据库时,其运行效率、冗余程度、可靠性、稳定性等评价指标除了与上层代码有关外,更多的会受到底层数据库效率的影响。因此,一个好的数据库设计能够让你的系统跑的更顺畅、稳定。数据库设计的好坏对我们接下来编程起到很大的影响,一个好的数据库设计可以简化很多代码,给我们带来了很多编程上的方便,也可以节省很多时间。2.1数据库需求分析预约挂号系统面向的对象有两个,即管理员和普通用户,所以数据库需求分析中就要考虑这两个方面的因素。对于普通用户来说,他们关心的是医院预约挂号、信息检索、信息的浏览等。医院信息包括:医生信息、科室信息等。信息检索包括:医生信息检索等。预约挂号包括:普通用户注册、挂号操作、取消挂号操作(主要是对已挂号进行取消操作)、挂号记录、用户信息修改等。普通用户如果要网上预约挂号的话,如果没有注册过,可以在主页面进行注册,再登陆后选择科室进行挂号,用户可以在登录后修改自己的信息,取消预约挂号查看挂号记录等。对于管理员来说,他们关心的是如何对后台数据进行查询、添加、修改、删除等操作。管理员禁用进行内容的添加,删除。医生信息管理:对医生信息进行添加、删除、查询、修改。预约设置管理:对预约设置进行添加、删除、查询、修改。科室信息管理:对预约设置进行添加、删除、查询、修改。预约信息管理:对预约信息进行查询、解除(操作失误等时用)。普通用户管理:对普通用户进行查询、注销、解除。对上述分析和需求总结,设计如下面所示的数据项和数据结构。医生信息,数据项包括医生编号、所属科室、医生姓名、医生性别、医生照片、创建时间、职称、医生类别、从医年数、专业名称、学历、E-mail等。普通用户(就诊人信息),数据项包括用户编号、用户名、用户密码、37 成都学院学士学位论文(设计)社保卡号、真实姓名、性别、联系电话、证件类型、证件号码、通信地址、邮编号码、注册时间、备注、修改时间、信誉分、用户状态等。科室信息,数据项包括科室编号、科室名称、科室描述等。预约信息,数据项包括预约信息编号、医生编号、用户编号、挂号时间、预约状态、出诊日期等。系统用户,数据项包括管理员编号、登录名、密码。2.2数据库E-R图设计首先确定各个实体之间相互关系,这是设计好一个数据库的基础。根据上面的设计规划出有5个实体:医生信息实体、普通用户实体、科室信息实体、预约信息实体、系统用户实体。实体间关系如图2-1所示:图2-1实体关系图由上图2-1可知,本数据库共有5个角色,管理员(sys)可以对医生信息(doctor_info)进行管理,每个医生又属于一个科室,用户可以进行预约挂号。将各个角色的所有信息分别放在独立的表中,其中包括该角色的全部信息。选取一个字段作为主键。37 成都学院学士学位论文(设计)2.3数据库表设计数据库表的设计,这里有5个实体,所以要建立5张表:医生信息表、普通用户表、预约信息表、科室信息表、系统用户表。2.3.1医生信息表(doctor-info)医生信息表里的属性:医生ID、科室ID、医生编号、医生姓名、医生性别、医生照片、职称、医生类别、从医年数、专业名称、学历、E-mail,简介。医生ID为主键。如表2-1所示:表2-1医生信息表字段含义类型长度是否为空备注doctor_id医生IDint—N主键,自增doctor_brief简介text—Y—doctor_code医生编号varchar12N—doctor_name医生姓名varchar20N—doctor_pic医生照片varchar100Y—doctor_post职称varchar10Y—doctor_sex医生性别char2N—doctor_specialty专业名称varchar30Y—doctor_type医生类别char10N—doctor_xl学历varchar30Y—doctor_years从医年数int5N—emailE-mailvarchar30N—subject_id科室IDint—N外键2.3.2科室信息表(subject)科室信息表里的属性:科室ID,科室名称,科室描述。其中科室ID为主键。如表2-2所示表2-2科室信息表字段含义类型长度是否为空备注subject_id科室IDint—N主键,自增subject_describe科室描述text—Y—subject_name科室名称varchar30N—2.3.3预约信息表(booking)预约信息表里的属性:预约信息ID、医生ID、用户ID、挂号时间、预约状态、出诊日期、出诊开始时段、出诊结束时段、用户预约状态。其中预约信息ID37 成都学院学士学位论文(设计)为主键,如表2-3所示:表2-3预约信息表字段含义类型长度是否为空备注booking_id预约信息IDint—N主键,自增booking_state预约状态nvarchar()2N是否过期booking_time出诊日期datetime—N—book_now挂号时间datetime—N—doctor_id医生IDint—N外键user_id用户IDint—N外键2.3.4普通用户表(users)普通用户表(就诊人信息表)里的属性:用户ID、用户名、用户密码、曾用挂号、社保卡号、真实姓名、性别、联系电话、证件类型、证件号码、通信地址、邮编、备注、信誉分、用户状态。其中用户ID为主键。如表2-4所示:表2-4普通用户表字段含义类型长度是否为空备注user_id用户IDint—N主键,自增certificate_number证件号码varchar30N—certificate_type证件类型char10N—create_time注册时间datetime—N—user_address通信地址varchar50N—user_name真实姓名varchar30N—user_password用户密码varchar12N—user_postcode邮编varchar10Y—user_remark备注text—Y—user_sex性别char2N—user_state是否预约nvarchar()2N—user_tel联系电话varchar20N—reputation_value信誉分int5Y—sb_number社保卡号varchar20Y—37 成都学院学士学位论文(设计)2.3.5系统用户表(sys)系统用户表里的属性:系统管理员编号、系统管理员登录名,系统管理员密码。如表2-5所示:表2-5系统用户表字段含义类型长度是否为空备注sys_id管理员编号int—N主键,自增型sys_loginname管理员用户名varchar20N—sys_password管理员密码varchar20N—2.4本章小结本章主要分析了数据库设计。数据库设计主要有需求分析,E-R图设计数据库逻辑结构设计。分析医院预约挂号系统面向的对象有两个,即普通用户和管理员,所以数据库需求分析中就要考虑这两方面的因素。E-R图设计主要是各个实体之间的联系,涉及到5个实体:医生信息实体、普通用户实体、科室信息实体、预约信息实体、系统用户实体。数据库逻辑设计主要是各个表的字段设计及说明。37 成都学院学士学位论文(设计)3详细设计系统设计可分为系统设计思想、系统功能模块划分、系统结构设计。3.1系统设计思想后台管理与前台显示模块分开:把后台管理员的管理模块和前台用户浏览、挂号模块独立分开,而又统一同一个数据库,这样即方便管理员维护数据,又便于前台用户操作。页面使用设计:把页面中的一些常用的部分集成为模块,比如把页面的头和尾部分集成为模版,因为大部分的页面首尾是相同的,所以只要把首尾组装起来就可以了。3.2系统功能模块设计医院预约挂号系统可以划分:前台客户端界面的系统功能模块、后台管理界面的系统功能模块。前台客户端界面的系统功能模块如图3-1所示。图3-1前台客户端界面的系统功能模块图如上图3-1可知,前台用户登录系统过后,主要有以下功能:专家查询,多专家信息查询和对相应科室信息查询;个人信息管理,主要对个人的资料信息进行查询修改,对账号密码进行修改;预约信息管理,主要对个人预约信息的查看和修改。后台管理界面的系统功能模块如图3-2所示。37 成都学院学士学位论文(设计)图3-2后台管理界面的系统功能模块图管理员进入后台过后可以进行以下操作,用户管理实现对用户的查询、添加以及删除功能;专家管理实现对专家的查询、添加以及删除功能;预约管理实现对预约信息的查询,删除功能;科室管理实现对科室的查询、添加以及删除功能;管理员管理实现管理员的添加、删除已经密码修改功能。3.3系统结构设计根据系统功能和系统特点,可得出如图3-3所示的系统结构设计图。图3-3系统结构信息图由上图3-3系统结构信息图可知,本系统普通用户登录后主要是进行预约挂号,取消挂号,以及对个人信息的修改;管理员系统的全部管理权限,包括用户信息的管理,专家信息管理,用户预约的管理、科室的管理,以及对管理员信息的管理等。用户还可以选择门诊来对相应的专家进行查询,以及通过用户中心来管理个人信息。37 成都学院学士学位论文(设计)3.4后台系统界面设计后台界面主要有6个部分,分别为后台登录,用户管理,专家管理,预约管理,科室管理,管理员管理。其中专家管理又分为专家列表和专家添加。3.4.1用户管理用户管理界面主要是对用户的个人信息进行管理,如下图3-4所示:图3-4用户管理界面如上图3-4所示,本界面内主要包含了用户的详细个人信息,包括用户姓名,性别,密码,证件号,证件类型以及家庭住址和联系方式等。并且可以对出编号外的所有用户信息进行修改,也可以对用户进行选择性删除。3.4.2专家管理专家管理分为专家列表和专家添加两个部分,在专家列表中可以查看全部专家信息,并可以进行修改,专家添加主要是对专家进行添加。图3-5专家信息列表管理界面如上图3-5所示,本界面内主要包含了专家的详细个人信息,包括用户姓名,性别,学历,职称和E-mail等。并提供了对专家信息的三种操作:编辑、查看、删除。点击编辑界面会跳转到一个新的页面,可以对专家的各项信息进行编辑和更新。37 成都学院学士学位论文(设计)下面介绍专家添加界面,如图3-6所示:图3-6专家信息添加界面专家添加界面主要是对专家的个人信息的填写和添加,包括专家姓名、编号、性别、所属科室、职称、专业、类别、学历、E-mail以及专家简介。当填写所有信息后点击添加就会自动将输入的内容录入数据库,然后页面将会跳转到专家列表界面。3.4.3预约管理预约管理界面主要是对用户的预约信息进行查看和处理用户预约信息,如下图3-7所示:图3-7预约管理界面预约管理界面主要是查询所有预约记录,并对用户超期预约进行处理和删除。当点击操作栏中的处理后,会将用户的预约状态改为已就诊或者已超期。3.4.4科室管理科室管理主要是对现有科室进行列表查询,并提供删除和编辑科室信息操作。如下图3-8所示:37 成都学院学士学位论文(设计)图3-8科室管理界面科室管理主要提供对现有科室的查询以及对现有科室的信息进行修改,并可以删除科室功能。页面下面添加科室可以对科室进行添加,点击添加或者取消后会自动刷新界面,显示科室列表。3.4.5系统管理员管理管理员管理主要是提供管理员查询和管理员信息展示,如下图3-9所示:图3-9管理员管理界面管理员管理界面主要提供对现有管理员进行查询,并可以对管理员登录号,密码进行修改,以及删除、添加管理员的操作。3.5前台系统界面设计界面设计总体遵循“简洁明快,方便使用的原则”。3.5.1母板界面将所有界面都相同的元素的做成母版页,其它页面都继承这个页面。如图3-10所示,母板界面主要包括页眉,页脚和中间的给其他界面编辑的部分,其中页眉是会员注册、登录以及帮助中心的连接,网站logo37 成都学院学士学位论文(设计)图片以及导航;页脚主要是用户帮助的连接和其他连接。中间就是其它页面需要包含的内容,由其它页面继承后添加,这里就用“主要内容”标识其它界面需要填充。图3-10母板界面3.5.2用户登录登录界面主要提供给用户登录。如图3-11所示,该界面是在母板的基础上,添加了登录窗口,里面主要分成两部分,左边部分是用来填写登录信息,右边部分为两个连接,一个是注册,另外一个是忘记密码。图3-11用户登录界面3.5.3用户注册注册界面主要是让用户输入用户注册的基本信息并提交。如图3-1237 成都学院学士学位论文(设计)所示,注册页面主要包括有,用户的证件类型、证件好嘛、家庭住址、用户名、登录密码、邮编、性别、联系电话、社保卡号、以及用户备注,其中用户备注可以为空。图3-12用户注册界面3.5.4预约查询预约记录界面,就是用表格把登录的用户的预约信息展现给用户看。如图3-13所示,预约查询界面主要包括预约号、预约时间、看病时间、预约的医生以及预约的状态。图3-13预约记录界面3.5.5资料修改资料修改界面主要展示用户的基本信息,有些信息可以让用户修改。如图3-14所示,界面中主要是用户的基本信息,包括用户身份证号、姓名、性别、医保卡号、手机号码(就是前面说的联系电话)37 成都学院学士学位论文(设计)、用户备注、详细地址、邮政编码。其中身份证是肯定不能让用户改的。图表3-14用户个人信息修改界面3.5.6密码修改密码修改界面,提供给用户修改自己登录密码的功能。如图3-15所示,密码修改界面首先提示用户保管好登录密码,下面就让用户输入旧密码、新密码、以及确认新密码。外加一个提交修改的按钮。图3-15密码修改界面3.6本章小结本章主要分析了系统设计,系统设计可分为系统设计思想、系统功能模块划分、系统结构设计;主要说明了系统功能模块的划分为:前台客户端界面的系统功能模块、后台管理界面的系统功能模块。并对前后台各个界面的功能和界面效果、布局进行分析。最终确定系统后台主要分为6个部分,分别为后台登录,用户管理,专家管理,预约管理,科室管理,管理员管理。其中37 成都学院学士学位论文(设计)用户管理提供对用户信息的查询和修改,专家管理又分为专家列表和专家添加,对专家信息进行修改和添加。预约管理提供对预约的查询和处理预约和删除预约。科室管理提供对科室的信息添加和删除。管理员管理提供对管理员的删除和信息修改。而前台主要分为5个部分,分别为用户登录,预约挂号,预约查询,用户基本信息更改,用户密码修改。37 成都学院学士学位论文(设计)4重难点分析在本次开发过程中,主要有一下几个方面的重点难点,需要进行分析和说明。4.1表现层重难点变现层有两个方面的重难点,一个是后台管理界面采用了Iframe,上下部分和左边部分界面在admin.aspx界面中不动,剩下部分采用一个Iframe,当我们点击左边部分的按钮时,系统会自动将相应的界面链接到Iframe中。这是采用模版之外的又一种采用固定界面的方式。下图4-1所示部分代码截图:图4-1admin.aspx界面Iframe使用截图另一个重难点是表格字段的绑定,对表头和表格字体进行设置,用固定的表头和字体。下图4-2所示部分代码截图:图4-2UserList.aspx界面表头绑定及表格字体设置截图用属性HeaderText进行表头的绑定,在HeaderStyle和RowStyle中利用Font-size对字体大小和用Height对高度进行设置。37 成都学院学士学位论文(设计)4.2业务逻辑层重难点业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。业务逻辑层在体系架构中的位置非常关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。下面展示获取医生相关信息的业务逻辑层doctor_infobll部分代码,如下图4-3所示图4-3业务逻辑层doctor_infobll部分代码截图当前台进入医生信息时,首先新建一个doctor_infodao()方法,然后用getdocinfo(did)获取医生信息。业务逻辑层起到了数据交换中承上启下的作用,对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。4.3数据访问层重点数据访问层:又称为DAO层,有时候也称为是持久层,其功能主要是负责数据库的访问。简单的说法就是实现对数据表的Select(查询),Insert(插入),Update(更新),Delete(删除)等操作。数据访问层,简单的说,就是通过DAO对数据库进行的SQL语句等操作。4.3.1获取信息由于本系统中有很多地方需要获取用户或者医生信息,并且这些信息都会重复使用多次。所以使用数据访问层可以增加代码的重用性,并且消除业务逻辑对数据源的操作,隐藏数据操作的细节。下面以获取管理员信息为列来说明获取信息的重要性。获取管理员信息代码如下图4-4所示:37 成都学院学士学位论文(设计)图4-4数据访问层SysDao.cs中获取管理员信息代码截图代码说明:数据访问层将SQL查询语句封装在代码中,有利于数据的安全性。首先新建一个list()方法,当sys==null时,查询管理员所有信息的操作,或者获取当前管理员编号,对当前管理员进行查询,查询出管理员名和密码。4.3.2添加信息本系统中涉及到很多添加信息的地方,比如说用户注册,管理员的添加,科室的添加以及医生的添加。添加信息会对数据库进行访问和读写,数据的操作也是本系统中最难的地方,保证数据的正确读写也是很困难的。由于数据库中保存的数据有多种类型,但是我们在进行数据操作时难免会需要进行数据转换,数据的转换也是数据库中最容易出问题的地方。下面通过本系统中添加管理员来做个示范。如下图4-5数据访问层SysDao.cs中添加管理员代码截图所示:图4-5数据访问层SysDao.cs中添加管理员代码截图37 成都学院学士学位论文(设计)代码解释:首先判断是否连接上数据库,如果没有连上则返回错误;如果连接上了数据库,判断输入框tb_name和tb_passworde中是否为空,为空直接返回。不为空就获取他们的数据,然后通过insertinto方法插入到数据库中。4.4用户登录用户登录设计到用户账号和密码,还有验证码的核对。4.4.1验证码验证码单独用一个窗口实现,然后在登录几面用imageButton控件中调用。产生随机验证码字符的方法:通过代码我们可以知道该方法仅仅随机产生一个intLength长度的字符,然后调用DrawValidateCode()方法将字符串画到图片上,另外,这里用session把随机生成的字符串保存起来,以便在登录界面做判断。其中,方法把字符串画到图片中的代码为:4.4.2登录37 成都学院学士学位论文(设计)登录就是对用户输入的证件号和密码与数据库中相应用户的证件号和密码进行匹配,如果匹配成功,才能登录成功。在匹配密码之前,先对验证码进行匹配,这样避免验证码输入错误,多次调用数据库,其中通过证件号查找密码的代码如下:通过用户输入的证件号嘛,到数据库中去查找对应的密码,如果要考虑安全,还应该将密码加密,这里为了简单,就仅仅是把相应密码取出来,如果没有找到密码,那该用户就不存在,如果找到了,就和用户输入的密码进行对比,确定密码是否正确。4.5预约记录这部分做得很简单,仅仅是将数据库中booking表中的信息选择性取出来给用户看。代码如下:通过用户id查询用户信息,然后返回一个集合,在页面的后台数据代码中37 成都学院学士学位论文(设计)将集合绑定到数据控件中展示出来,这里用的是用户id,而登录用的是证件号,因此,需要通过证件号获取用户id,代码如下:4.6资料修改修改用户的个人资料包括用户查看现有资料,以及提交更新很的用户个人资料。4.6.1输出现有用户信息将用户原有的用户信息,从数据库中取出,展现在界面上。代码如下:将用户信息取出来放入ModelUser中,以便用户修改后,再以ModelUser37 成都学院学士学位论文(设计)信息更新到数据库中。4.6.2更新用户信息数据库用户修改信息后也先存入ModelUser中然后以ModelUser作为参数传递给更新用户信息数据库的函数,其中更新数据库的代码如下:该函数返回一个bool值,用来表示用户个人信息是否更新成功,如果成功,返回true,否则返回false,参数是一个Model,就不用将用户要更改的所有信息作为参数,使参数个数比较少。然后在更新用户数据的页面中调用该方法,代码如下:通过上面代码我们可以看到首先把用户修改后的信息封装到ModelUser37 成都学院学士学位论文(设计)中,然后调用DAO_user.UpdateUser(mu)函数,通过返回值判断是否更新成功。4.7密码修改密码应该是用户个人信息,但是由于这设计到安全问题,因此需要用户知道自己以前的密码,否则不能修改,因此要先确定用户输入的旧密码和数据库中的密码先匹配,再把用户输入的新密码更新到数据库中,用户两次输入新密码必须相同以便于确定用户不是随意输入的密码。关键代码如下:首先调用getUserpwdBycer()方法获取数据库中的用户密码,然后与控件中用户输入的旧密码匹配,匹配成功后,再判断用户输入的两次新密码是否相同,只有相同后,才调用UpdateUserPWD()方法把新密码更新到数据库。否则,用