1、1 导言1.1 研究背景及意义随着经济与互联网的迅猛发展,中国已经进入了一个信息化的社会。中国的网民数量已经大大增加,到 2014 年已达到 2 亿,而且这还只是用台式电脑上网的用户量,还不包括没联网的用户。信息化的速度加快,必然引发一系列的社会变革。随着工业技术的不断提高,计算机的价格不断的下降,而且性能越来越好。现在,计算机已经在科研,经济,管理,医疗领域得到越来越广泛的应用。但是,我国的医疗发展相对较慢,还远远没有达到发达国家的水平。计算机与医疗的结合也停留在最初的摸索阶段,医院的很多工作还是由医护人员进行手工式的操作。这样不仅劳动强度大,而且工作的效率也相对较低。在加上我国人口众多,医
2、疗发展不完善的问题,导致了我国特有的挂号难、看病难问题。现在,随着计算机的快速普及,医院门诊预约挂号应运而生,而且将会快速发展与扩大。利用医院门诊预约挂号系统,用户省去了到医院排队等候挂号的麻烦, 将极大的方便用户。而且医院可以在第一时间获得用户的挂号信息,从而有时间从容的做出应对的最佳策略。因为是网上提前预约挂号,所以医院可以对预约者合理的安排就诊时间。这就将真正杜绝就诊高峰期就诊环境拥挤混乱,就诊低谷期空无一人的现象。此外,病人对医院医生的相关信息了解不多,对所要挂号的对应科室的的专科 医生的情况了解甚少,只能感觉和他人介绍进行选择,具有很大的盲目性和趋从性。而当医院门诊网上预约挂号系统开
3、始实行以后,预约者仅需要坐在电脑前,轻点几 下鼠标,就可以对医生信息有适当的了解,真正做到理性的挑选合适自己的医生。 网上预约挂号看病正悄悄的向世界走来。网上预约挂号看病,将离我们越来越近。 医院门诊网上预约挂号将成为我国医疗改革历程中的一个重要的里程碑。1.2 国内外研究概述随着人类社会进入互联网时代,计算机用户数量呈爆炸式增长。医院网上预约挂号看病已经悄悄的走进了我们的世界。据了解,现在在国外网上预约挂号看病已经变得相当普遍。尤其是在西方的发达国家,预约者看病前都需要提前预约相应的12医生。随着我国经济和互联网的快速发展,我国也越来越重视网上预约挂号看病这一新的挂号看病方式。虽然,现在我国
4、在这方面面临的问题有很多,但是向这方面迈进的决心已经一目了然。而且,在迈进的途中,不乏一些较为成功的案例。广东省人民医院在 2004 年就成功的引用了一套较为完整的医院门诊预约挂号系统,而且效果相当明显,较为成功。虽然现在还在持续的运营和改进中,但仍然得到了很多用户的好评。医指通云就医网,也是一个成功的鲜活的例子。医指通是中国第一个省市统一的公益性预约挂号看病统一平台。预约者进行实名登记注册后,通过网站并遵循医指通的预约规则就可以免费的预约平台中存在的相关医院的专家号。为了方便预约者能够更快的找到自己所需要的医院,网站中还推出了 “医院、医生推介”的服务模块,其下更详细分热门医院、名医堂、名医
5、推介、受欢迎医生、热门医生等类别。既方便了就医者,也提高了医院的工作效率。1.3 研究内容与方法本文主要的研究内容是当前较为新颖的网上预约挂号系统,该系统具有操作简单明了而且与互联网紧密相关、适应时代发展潮流的特征。通过医院门诊预约挂号系统,可以极大的方便挂号者进行挂号预约,同时还能使医院更合理的安排挂号者就医并提供更优质的医疗服务。既能适当的解决当前中国面临的医院门诊挂号排队时间长、挂号环境乱的问题,又能方便广大预约者挂号预约自己相对满意的医生、专家。系统使用 Tomcat 7 Web 应用服务器,容易安装而且相对而言更容易部署系统项目。后台数据库使用 SQL Server2008,数据库性
6、能稳定,能很好的满足系统的需要。页面展示和设计使用的是 Dreamweaver CS6,方便快捷,易于维护和操作。在系统编写和构建的过程中,使用了 Tomcat 7,Dreamweaver CS6,SQL Server2008,PlayColor, AAA LOGO3.10,MyEclipese2014 等开发工具。软件开发环境为 Windows 8,系统开发环境为计算机系统 Windows 8 中文版 64 位(6.2,版本 9200),内存: 4.00 GB。 用户界面利用菜单界面驱动方式,界面友好,支持多种输入方式。2 系统开发工具医院门诊预约挂号系统使用 Tomcat 7,Dreamw
7、eaver CS6,SQL Server2008, PlayColor,AAA LOGO3.10,MyEclipese2014 等作为网站系统的开发工具,使用 java 代码实现数据库连接。2.1 Tomcat 72.1.1 Tomcat 7 简介Tomcat 7 是 Tomcat 服务器的一个较新版本。 Tomcat 是阿帕奇软件基金会(Apache Software Foundation)中 Jakarta 大项目的一个核心项目,主要由 Sun 公司、阿帕奇公司和其他一些公司以及个人联手共同开发而成。由于有了 Sun 公司的积极参与和技术支持,最新的 JSP 和 Servlet 的标准规范
8、总是能在 Tomcat 中完整的体现出身影,从 Tomcat 5 开始,Tomcat 就支持当前最新的 JSP 2.0 和 Servlet 2.4 规范。因为 Tomcat 服务器专业技术先进、工作性能稳定,而且还拥有完全免费的特点,所以深受广大 Java 开发者和爱好者的喜爱。并且,Tomcat 已经得到了大部分软件开发商的集体认可,成为了目前最为流行的 Web 应用服务器之一。目前 Tomcat 的最新版本是 Tomcat 8.0。Tomcat 7 服务器是一个少见的免费开放程序源代码的 Web 应用服务器。它属于轻量级的应用服务器范围,在中小型的系统和并发访问的用户不是很多的情况下被开发
9、商普遍使用。它是开发、调试 JSP 程序的首选,修改 JSP 代码后无需重启服务器,直接保存后刷新网页即可。对于一个开发项目的初学者来说,我们可以认为, 当我们在一台计算机上配置好 Tomcat 7 服务器后,那就可利用它响应 HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上 Tomcat 7 部分意义上是阿帕奇服务器的扩展,但是它是独立运行的,所以当你运行Tomcat 7 时,它实际上是作为一个与阿帕奇服务器相独立的进程而单独运行的。诀窍是,当你配置正确时,阿帕奇会为 HTML 页面服务,而 Tomcat 7 实际上是运行 JSP 页面和 Servlet 的。另外,Tomcat
10、 7 和 IIS 等 Web 服务器一样,不仅具有强大的处理 HTML 页面的功能,此外它还是一个 JSP 和 Servlet 的容器。单独的 Servlet容器其实是 Tomcat 7 的默认模式。不过,Tomcat 7 处理静态 HTML 的能力远远不如阿帕奇服务器。2.2 MyEclipese20142.2.1 MyEclipese2014 简介MyEclipse2014,是在 eclipse 的基础上加上自己特有的插件开发而成的功能强大且操作简单的企业级集成开发环境。它主要用于 Java、移动应用、Java EE 的开发。MyEclipse2014 的应用功能非常的强大,其支持也非常的
11、广泛,尤其是对各种开源产品的技术支持非常不错。它的基础特征包含 JSP 、HTML 5 可视化设计、JS 编辑器、CSS 编辑器、Database 工具、Java Servlets、Embedded Tomcat Server 等。MyEclipse2014 在界面的设计上与 eclipse 相差不大,很多功能也都类似,所以极为方便 eclipse 的老用户上手使用。对于 java 初学者来说,在 JSP 页面设计的时候, 你无需修改一个样式就重新打开网页查看效果。因为 MyEclipse2014 为用户在代码编写位置提供了可视化的窗口,帮助用户及时的查看页面简单效果。2.3 网页编辑工具 D
12、reamweaver CS62.3.1 Dreamweaver CS6 简介Dreamweaver CS6 是世界顶级的软件厂商 adobe 公司推出的一套拥有可视化操作、编辑界面,用于设计、制作和编辑网站以及 java 应用程序的网页的软件。由于它可以支持代码、设计、拆分、实时视图等多种功能强大的方式来设计、创作、编写和修改网页(通常是 HTML 和 JSP 类型)。对于初级使用者,你无需担心代码不会的问题,因为你可以在不编写任何代码的情况下就能快速的创建出高手才能创建出的 web 页面。当然,它也有专门为高手准备一些适合他们的工具。它成熟的代码编辑工具是web 开发高级人员的最爱之一。Dr
13、eamweaver CS6 的新版本使用了自动适应网格版面创建页面。因此,在发布前开发者可以使用多屏幕预览审阅自己的设计,这可以大大的提高开发者的工作效率。它改善的 ftp 性能,能更高效地传输大型的文件。它包含的“实时视图”和“多屏幕预览”面板可以很好的呈现 HTML 5 代码。因此,开发者可以很简单的就能检查自己的工作。Dreamweaver CS6 是 Dreamweaver 的当前最新版本。Dreamweaver 是当前唯一提供原始码编辑、Roundtrip HTML 与视觉化编辑同步的设计工具。它包含了 HomeSite 和 BBEdit 等主流文字的编辑器。帧(frames)和表格
14、(table)的制作速度快的惊人。进阶表格编辑功能能够使您更简单的选择单格、行、列或不连续的区域。甚至,你 还可以对表格群组进行排序或格式化。Dreamweaver 支持精准定位,利用可以轻易转换成表格的图层进行拖拽放置的方式进行版面的配置。 Dreamweaver 成功整合了动态式的出版视觉编辑和电子商务的功能,提供了超强的支持能力给第三部分厂商。当您在使用 Dreamweaver 设计动态网页的时候,所见即所得的功能,可以让您不需要透过其他的浏览器就能自行预览网页布局和效果。梦幻的样版和 XML Dreamweaver 把内容与设计进行了分离,可以更好的应用于快速的网页更新和团队合作编辑网
15、页。在建立网页外观的样版的时候,可以指定可编辑的或不可编辑的部份, 内容的提供者可以直接编辑以样式为主的内容但却不会因为不小心而改变已经确定 的样式。当然,您也可以使用样版进行正确地输入、输出XML 的内容。 利用Dreamweaver 设计出来的网页,可以全方位的呈现在现存的任何平台的热门的浏览器上。对于 Cascading Style Sheets 的动态 HTML 支持和鼠标的换图效果,动画和声音的 DHTML 的效果资料库可以在 Microsoft 浏览器上执行。当您使用不同的浏览器检示页面功能时,Dreamweaver 可以简洁明了的反馈给您在不同浏览器上执行的效果。当新的浏览器出现
16、上市时,只要在 Dreamweaver 的网站中下载它的描述档,那您便可以及时的获知相关的成效报告。2.4 PlayColorPlayColor 软件是主要用于获取 RGE 三原色的。它是美工人员和程序员必备的重要软件之一。PlayColor 软件的特点就是拥有友好的可操作界面和小巧却完整的身躯。它可以简单的获取屏幕上任何一处的颜色,并以网页色,RGB 三原色,色素代码,16 进制, Delphi 颜色进行输出。它更可以输入相应的颜色代码来调配自己需要的颜色;并且, 它还带有颜色收藏夹和一些较为常用的颜色的处理功能。适用于图片颜色获取,编程和网页制作,方便且实用。PlayColor 软件的功能
17、有:(1) 可以灵活的获取屏幕任何一处的颜色;(2) 支持颜色值的分组收藏并且可以自由的调用;(3) 支持对颜色的处理:反色和灰度的调整 ;(4) 分析网页颜色的颜色值,得到对应网页的基调色;(5) 方便的操作:单击标签便可以复制其色值 ;(6) 支持热键拾取颜色功能,而且带有浮动的窗体,使用方便;(7) 提供包含当前流行的五种颜色值的输出:RGB 三原色,网页色,16 进制, 色素代码,Delphi 颜色等。2.5 AAA LOGO 3.10AAA Logo 3.10 是一款功能非常强大的 Logo 设计软件。它提供了 60 多种模板, 2000 余种素材,是 logo 设计初学者的好帮手。
18、而且,它所包含的所有的素材都是向量图的,可以方便的放大缩小,不会失真。当然,该软件还有一个更为强大的功能,那就是 logo 设计者可以自己创作属于自己的素材,用于设计全新的 logo。2.6 SQL Server2008SQL Server 2008 是当前比较流行的数据库之一。它可以组织和管理任何类型的数据,并可以将结构化的、半结构化的和非结构化的文档数据进行直接存储。它还可以简单的对数据进行增加、查询、修改、删除之类的操作。SQL Server 2008 的数据可以存储在各种各样的设备中,从台式电脑到数据中心的大型服务器,它都可以完好的控制数据。SQL Server 2008 平台有以下几
19、个鲜明的特点:(1) 可信任性在过去的 SQL Server 2005 的基础之上,SQL Server 2008 在简单的数据加密、外键管理等方面又做了增强,使其在安全性方面更加可靠。因此,它也更值得用户的信任。(2) 高效性SQL Server 2008 提供了集成的开发环境和更为高级的数据提取技术。开发人员可以简化对数据的访问,从而提高开发项目的速度,其高效性不言而喻。(3) 智能化SQL Server 2008 可以集成任何数据。它在数据仓库方面实现了数据压缩、备份压缩、资源监控器、捕获变更数据等功能。并且它提供了一个可扩展的数据仓库平台,可以用单独的一个分析存储进行强大的分析,从而满
20、足成千上万的用户的需求。3 系统规划与系统分析3.1 系统的总体结构本系统分前台展示和后台管理两大子系统。前台子系统主要用于预约者浏览信息和进行预约操作等。后台子系统主要用于管理前台展示信息、查看整个系统的运行情况,方便医院及时的全方位了解当前系统的信息。3.1.1 前台展示前台展示主要为了方便用户浏览信息和预约操作。主要包括以下几个模块:(1) 医院新闻资讯模块该模块主要是为了方便用户了解医院相关信息,查看医院新闻和医院通告信息。医院还会适时的针对当前季节发布一些健康小常识,有利于提高用户对健康的重视程度。同时,用户通过医院新闻资讯模块还可以提高自己对医院的相关了解度。(2) 医院风采模块该
21、模块主要用于展示医院的先进风采,例如医护楼的先进化建设、科研装备的适时更新、医疗水平的提高、医院所获荣誉、医生所获荣誉等。(3) 医生详细介绍模块该模块主要用于展示医生的详细信息,方便用户更加深入的了解医生的信息, 从而为自己选择更合适的就诊医生。(4) 在线预约模块该模块是本系统的重点功能之一,主要是用于用户挂号预约医生。而且在预约的同时可以查看医生所在科室等信息,方便简洁,便于操作。(5) 用户注册登录模块该模块主要用于用户的注册和登录。用户在注册的同时,必须填写相应的信息。如果用户没有注册,那么用户将不能使用本系统的重要的几个功能,甚至说用户只 能在首页查看一些医院的基本信息。(6) 留
22、言板功能模块随着电脑技术的普及,人员素质相对提高。另外,本系统所拥有的专门的后台管理界面,更是方便了管理者对系统的管理及维护。(7) 其他扩展功能模块该模块主要是为前台首页添加一些辅助功能,他包含系统公告和闪电查询两个 方面。系统公告主要就是向用户及时的反馈系统信息,例如系统维护,暂停操作等。闪电查询,类似于友情链接,主要就是向用户提供一些基础的查询网站,方便用户 上网搜索查询。3.1.2 后台管理后台管理主要包含三个方面:用户管理,医生管理和管理员管理。(1) 用户管理该方面包含两个模块:个人资料管理,我的预约查询。(2) 医生管理该方面包含两个模块:个人资料管理,预约查询。(3) 管理员管
23、理该方面包含八个模块:管理员账号管理、医院新闻管理、注册用户管理、科室信息管理、医生信息管理、预约信息管理、医院风采管理和留言板管理。每个管理模块分别对应的前台的相应模块,这样可以极大的方便管理者对系统进行维护和看管,也利于医院对整个系统拥有全方位的掌控。3.2 系统的数据流程分析本系统的数据流程如下图 1 所示:医院门诊预约挂号系统用 户管理员个人资料修改管理员系统管理系统数据库管理员信息登录注销数据库备份图 1系统数据流程图4 系统设计与实现系统的设计阶段的主要任务是通过全方位的考虑所有的应用技术的限制,以方便最大化的扩展和详细化的分析各个阶段的模型。系统设计的主要目的是要指出一种能将思想
24、方案转化成数据、代码的工作方案,这是对系统分析工作的一种细化, 也就是要进一步的细化分析各个阶段的所有系统功能。实现阶段就是利用现有的开发工具和软件环境,把设计阶段设计好的方案成功的转化成数据和代码,从而实现系统的设计目标。4.1 系统设计针对医院门诊预约挂号系统要实现的各个功能,对系统中各个模块的结构进行了较为详细的设计。4.1.1 系统功能结构的设计对于本系统而言,系统功能结构的设计是至关重要的。这关系到系统的后续结构和整体框架。因此,在设计系统功能结构的时候要仔细、全方位的思考,谨慎的做出决定。本系统的功能结构图如下图 2 所示:运营状况医生信息录入用户注册新闻信息录入数据处理预约查询预
25、约处理医生查询数据存储中心系统数据录入4.1.2 系统功能页面的设计图 2系统功能结构图在系统功能结构设计的基础上,要进行更为细致的系统功能页面的设计。这将决定界面展示的模块划分。本系统的功能页面主要分为两大部分:前台功能页面和后台功能页面。医院门诊预约挂号系统前台展示(1) 前台功能页面设计如下图 3 所示:系医注医预医留系首医医医在留后用页院院生线言台户新风详预板管注闻采细约理册信登息录图 3前台功能页面设计图医院门诊预约挂号系统后台展示(2) 后台功能页面设计如下图 4 所示:系医注医预医留系系医注医预医留系统院册生约院言统功新用信信风板管能闻户息息采管理列管管管管管理表理理理理理图 4
26、后台功能页面设计图4.1.3 系统业务流程的设计本系统的业务流程设计如下图 5 所示:数据库备份查 寻录 入修 改数据保存自动写入数据库浏 览管理员删 除4.1.4 系统操作流程的设计图 5系统业务流程图医院门诊预约挂号系统用 户管理员系统操作管理员系统管理数据库管理员的信息注销登录数据库备份一个系统要想让用户能够简单的操作,不仅需要一个简洁明了、清晰易懂的页面,还需要在系统设计的时候就设计一套完整的系统操作流程。本系统的操作流程如下图 6 所示:图 6系统操作流程图4.2 系统实现本系统的实现主要划分为前台系统模块的实现、后台系统模块的实现和数据库模块的实现。前台功能模块的实现主要涉及到用户
27、的操作,后台功能模块的实现主要涉及到的是信息的管理操作,数据库模块主要涉及到的是前台展示页面中数据格式的设计。4.2.1 前台系统模块的实现(1)用户注册登录模块图 7用户登录模块图 8用户注册模块验证用户必填信息的 javascript 代码:if(document.form1.yonghuming.value=)alert(请输入用户名 );document.form1.yonghuming.focus();return false;/如果用户没有输入用户名时,提示框提示:请输入用户名13if(document.form1.xingming.value=)alert(请输入姓名);docu
28、ment.form1.xingming.focus();return false;/如果用户没有输入姓名时,提示框提示:请输入姓名if(document.form1.mima.value=)alert(请输入密码);document.form1.mima.focus();return false;/如果用户没有输入密码时,提示框提示:请输入密码if(document.form1.dianhua.value=)alert(请输入电话);document.form1.dianhua.focus();return false;/如果用户没有输入电话时,提示框提示:请输入电话上传功能中上传文件框设置的
29、 javascript 代码:var pop=newPopup( contentType:1,isReloadOnClose:false,width:300,height:50); pop.setContent(contentUrl,upload.jsp?Result=+tt); pop.setContent(title,文件上传);/提示框 title 设置为文件上传pop.build();pop.show();(1)医院新闻资讯模块 站内新闻图 9站内新闻关键代码:/对查询的结果进行获取/设置图片的宽度和高度a href=gg_detail.jsp?id= 医院新闻图 10医院新闻界面医院
30、新闻的关键部分代码:String sql=select * from xinwentongzhi where id=+id;/查询 id 号对应的新闻通知表中的一整条记录。String biaoti=; String leibie=; String neirong=; String tianjiaren=;ResultSet RS_result=connDbBean.executeQuery(sql); while(RS_result.next()biaoti=RS_result.getString(biaoti); leibie=RS_result.getString(leibie); ne
31、irong=RS_result.getString(neirong);tianjiaren=RS_result.getString(tianjiaren); 医院风采模块15图 11医院风采模块界面医院风采关键代码:16/设置该列为居中对齐a href= target=_blankimg src= width=88 height=99 border=0 /以上数据共条,打印本页 医生详细介绍模块图 12医生列表模块界面17医生详细介绍模块界面如下图 13 所示。图 13医生详细介绍模块界面医生详细主要代码:String sql=;sql=select * from yisheng where
32、1=1;/查询所有医生的信息if(request.getParameter(bianhao)=|request.getParameter(bianhao)=null ) else sql=sql+ and gh like %+new String(request.getParameter(bianhao).getBytes(8859_1)+%;/从医生表中模糊查询有相似工号的医生信息if(request.getParameter(mingcheng)=|request.getParameter(mingcheng)=null ) else sql=sql+ and xingming like
33、%+new String(request.getParameter(mingcheng). getBytes(8859_1)+%;/从医生表中模糊查询有相似姓名的医生信息if(request.getParameter(dh)=|request.getParameter(dh)=null ) else sql=sql+ and ksm like %+new String(request.getParameter(dh).getBytes(8859_1)+%;/从医生表中模糊查询有相似科室的医生信息sql=sql+ order by id desc;ResultSet RS_result=conn
34、DbBean.executeQuery(sql);18String id=;String gh=;String xingming=;String mima=;String dianhua=;String xingbie=;String youxiang=; String QQ=;String dizhi=;String touxiang=;String beizhu=;String ksm=;String issh=; String addtime=;String zhiwei=;String worktime=;String qingjia=; int i=0;while(RS_result
35、.next() i=i+1; id=RS_result.getString(id); gh=RS_result.getString(gh);xingming=RS_result.getString(xingming); mima=RS_result.getString(mima); worktime=RS_result.getString(worktime); zhiwei=RS_result.getString(zhiwei); qingjia=RS_result.getString(qingjia); dianhua=RS_result.getString(dianhua); xingbi
36、e=RS_result.getString(xingbie); youxiang=RS_result.getString(youxiang); QQ=RS_result.getString(QQ); dizhi=RS_result.getString(dizhi); touxiang=RS_result.getString(touxiang); beizhu=RS_result.getString(beizhu); ksm=RS_result.getString(ksm); issh=RS_result.getString(issh); addtime=RS_result.getString(
37、addtime);/对定义的变量进行赋值 在线预约模块图 14在线预约模块界面在线预约模块主要代码:String sql=;String s1 =(String)request.getSession().getAttribute(username); sql=select * from yisheng where 1=1 and gh=+s1; if(request.getParameter(bianhao)=|request.getParameter(bianhao)=null ) else sql=sql+ and gh like %+new String(request.getParam
38、eter(bianhao).getBytes(8859_1)+%;if(request.getParameter(mingcheng)=|request.getParameter(mingcheng)=null ) else 19sql=sql+ and xingming like %+new String(request.getParameter(mingcheng).getBytes(8859_1)+%;if(request.getParameter(dh)= |request.getParameter(dh)=null ) else sql=sql+ and ksm like %+new String(request.getParameter(dh).getBytes(8859_1)+%