医院门诊查询系统的设计与实现.doc_第1页
医院门诊查询系统的设计与实现.doc_第2页
医院门诊查询系统的设计与实现.doc_第3页
医院门诊查询系统的设计与实现.doc_第4页
医院门诊查询系统的设计与实现.doc_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

医院门诊查询系统的设计与实现总计:毕业论文 56 页表 格 1 表插 图11 幅指导教师: 赵 欣 评 阅 人: 完成日期: 2011年 5月16日摘 要通过对小型的医院门诊查询系统来演示如何将数据库、Serverlet、JSP整和在一起,从而实现一个信息收集、处理到查询的完整处理方案。 此系统设计上采用三层结构、Web Service技术,使之在选用平台、采用技术上具有先进性、前瞻性、扩充性,从而保证建成的系统具有良好的稳定性、可扩充性。系统设计按标准化、规范化,分层设计,构件化实现。采用软件构件化的开发方式,使系统结构分层,业务与实现分离,逻辑与数据分离;以统一的服务接口规范为核心,使用开放标准。从功能上来说,系统是比较完备的,系统以Web界面与用户交互,为用户提供信息并接受其操作,同时通过数据库管理系统来存储信息数据。系统实现了对信息数据的浏览、查询、编辑和管理等基本数据库操作,采用了模块化设计方法,根据用户的需求及程序的应用与维护的易用性,将各个部分置于不同的模块当中,方便了程序的扩展与维护,同时建立了程序功能复用的基础。关键词:医院门诊查询系统;B/S结构;数据库ABSTRACTThrough the small hospital outpatient service inquires the system to demonstrate how to database, Serverlet. JSP whole and together, so as to achieve a information collection, processing to complete solutions. InquiryThe design of the system, a three-layer structure, Web Service technology, make in selecting platform, adopting technology has advanced, forward-looking, scalable, thereby ensuring built into the system has a good stability and scalability. The systems design, according to the standardization, layering design, realization of components. Using software components development way, make the system structure, business and separated layer, logic and data apart; In a unified service interface standard as the core, the use of open standards. For from the function, the system is relatively complete, system to Web interface and the user interaction, to provide users with information and accept its operation, and at the same time through a database management system to store information data. System realize the information data to browse, search, editing and management basic database operation, using modular design method, according to the needs of the users and the application and maintenance program of each part in usability, will be among different modules, convenient maintenance and expansion of the programs, also established the program function multiplexing foundation.Keywords: hospital outpatient service inquires the system; B/S structure; database目录1.绪论11.1本文研究的背景、目的与意义11.1.1研究背景11.1.2研究目的11.1.3研究意义21.2本文的组织安排22.系统开发的理论依据与开发环境42.1系统开发的理论依据42.1.1数据库系统42.1.2规范化与范式42.1.3B/S结构与C/S结构52.1.4管理信息系统62.2系统开发环境82.2.1Mysql82.2.2JSP93.系统需求分析与设计123.1系统需求分析123.1.1系统预期实现目标123.1.2系统可行性分析133.2系统数据库设计133.3系统功能设计163.4.1系统功能划分(功能模块图)19功能模块图如图3.2.3。194.系统功能设计及主要方法概述204.1逻辑层的设计204.2 表示层设计315系统功能实现与演示345.1、选择角色类型进行登录,345.2、患者登录界面355.3、患者查询病历界面365.4、新用户注册界面365.5、管理员界面375.6、医生修改密码界面386.结论与展望396.1结论396.2存在的问题与展望40参考文献41附录1外文译文42附录2外文原文48致谢55大连大学学位论文版权使用授权书561.绪论1.1本文研究的背景、目的与意义1.1.1研究背景门诊医疗是医院管理的门面,流量大,手续繁琐,在手工方式下,医护人员要做大量不必的重复工作、效率低,准确性差、不方便管理,影响工作效率,造成了很多就诊病人得不到合理有效的快捷就诊服务,甚至还影响了医疗的质量,为此,很多医院加快了医院信息化建设的步伐。我国医院的信息系统发展可以分为三个部分:第一阶段,是医院信息管理系统建设阶段;第二阶段,是医院临床信息系统建设阶段;第三阶段,是建设区域卫生信息系统阶段。在国际上,医院信息化管理也大致分为三个阶段:第一个十年,集中在开发医院行政管理的功能上,如财务收费等,但带哦了1972年的Collen仍报告美国连一个成功的已完成的全面医院管理系统都没有。第二个十年,开发者的努力已经进入医疗信息处理领域,如病人医疗处理等。到了1985年,美国全国医院数据处理工作调查表明,25%有了完整的管理系统。最后一个十年至今,研究者又把重点放在床边系统、病人计算机化病案、统一的医学语言系统等方面。1.1.2研究目的在实现医院信息化过程中,标准化是一个不能回避的问题,流程的标准化是和医院改革、建设现代化医院密不可分的。而医院信息系统正经历着小型化、智能化和集成化的改造过程,就是意味着,当前的医院信息化管理系统发展的总趋势是系统化,网络化,综合性,开始走自上而下的开发开发路线,而门诊查询系统作为医院信息管理系统的重要且关键部分,未来发展趋势也是越来越智能化化系统化,而不是单一的查询医生病人的状况,更能包括多种挂号和预约手术等等。随着信息技术的不断发展,如今,高科技信息化技术已经融入到各行各业的日常管理与企业运行当中。信息化管理不是I T与管理的简单结合,它是一种融合, 是一种创新和革命。信息化管理是一个动态的系统和一个动态的管理过程,因此管理信息化系统软件也要与之相适应。另一方面,随着jsp技术的不断发展,其平台和服务器的独立性和开放的开发过程,以及其 jsp标签的可扩充、可跨平台运行等优点早已深入人心。而用jsp开发的各类软件也早已深入到现代化信息建设的各个领域。因此固定资产信息化管理系统可以利用jsp为编写语言,并且基于 WE B实现 ,基于WE B的系统在网络通讯方面可以很容易的实现跨网操作,而且在多数情况下客户端不用安装任何插件,这样相关用户可以随时随地登陆系统进行相关操作 。如果该系统配合信任与授权服务平台使用甚至可以实现资产管理全过程的数字认证 ( 一般需要在客户端安装相应的安全插件 ) 。而设计出一个简洁高效全面的数据库,也是开发过程中必不可少的关键环节。数据库当中主要存储和医院门诊相关的一切信息,这样与医院管理有关的所有数据可以集中处理,很好的避免信息孤岛现象。1.1.3研究意义该研究以医院门诊查询为背景,应用jsp技术与mysql数据库编写一个基于web的大型的信息管理系统。该系统涉及门诊涉及到档案的增加、变更和删除情况。包括医生管理、病人管理、管理员管理等。在系统管理方面,应该采用关系型数据库进行管理来对医生管理系统的各种查询功能的实现,并具有对医生和病人资料的保存、数据查询、插入、修改和删除等多项数据的操作。各种报表具有进行自动生成的功能,系统还应该有导入导出功能,实现对数据的快速操作。通过该系统,用户可以进行病人信息的录入和批量导入、导出。同时结合病人病例对保密性要求最大程度地保证数据的安全性和一致性。1.2本文的组织安排第一章,简单介绍一下本论文研究的背景、意义和目的。第二章,先介绍一下数据库系统设计思想和规范化理论;详细地介绍了C/S结构、B/S结构的特点,给出了一个管理信息系统的定义、特点、功能;接着介绍了MySql、JSP、tomcat的特点。第三章详细的介绍了开发系统的需求分析,包括:系统实现目标、系统可行性分析、关系模式的设计、系统功能设计。第四章主要介绍系统各个模块的设计与主要方法。第五章主要介绍系统功能的实现和演示第六章总结一下本系统,指出系统还存在的问题,提出展望。2.系统开发的理论依据与开发环境2.1系统开发的理论依据本系统以B/S(Browser/Server)作为基本结构,使用Access作为应用程序的数据库。所有程序和数据库存放在服务器上,通过ASP方式实现交互动态的应用程序,客户端只需要安装操作系统和浏览器即可。2.1.1数据库系统数据库是数据管理的最新技术,是计算机科学的重要分支。数据库,顾名思义,是存放数据的仓库。只不过这个仓库是在计算机存储设备上,而数据是按一定的格式存放的。所谓数据库是指长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。数据库管理系统是位于用户和操作系统之间的一层数据管理软件。数据库管理系统能高效地获取和维护数据。数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。2.1.2规范化与范式(1)规范化的必要性数据库领域当前的研究工作都是以关系方法为基础,关系模型是目前应用最为广泛,也是最重要的数据模型。为了使数据库设计的方法走向完备,人们研究了规范化理论,其规范化理论是关系型数据库逻辑设计的基础。任何数据库设计者都强调两个基本问题:数据存储磁盘空间的最佳利用导致最低的开销;存储数据最快的响应时间导致最高的性能。在理想的情况下,可以实现一个低开销、高性能的系统。遗憾的是,对这两方面来说一个目标的实现常常会以另一个目标的损失为代价。规范化的设计是一种把数据分布到多个表的技术,这样相关信息以某一种规则放在一起,规范化设计控制了数据的冗余,因此,提供了磁盘使用空间和性能的较好的平衡。(2)规范化的特点由于信息在逻辑上是紧凑的,规范化提供了一个较易理解的系统含义。规范化控制了数据冗余,因此可以节约磁盘空间,并使得维护系统的引用完整性变得更加容易。规范化导致表的大小减少,有利于索引的创建和更快的排序。由于SQL Server仅允许一个表上有一个簇索引,簇索引常常能够提供更快的搜索速度,使用规范化规则常常会有多个小表,因此可以创建较多的簇索引,从而提高系统的性能3。(3)范式美国IBM公司San Jose研究室的研究员E.F.Codd在19711972年系统地提出了1NF、2NF、3NF的概念。1974年Codd和Boyce又共同提出了BCNF。1976年Fagin又提出了4NF。后来又有人提出了5NF。在这里简单介绍一下1NF、2NF、3NF。第一范式:每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构。第二范式:满足第一范式条件,而且每个非关键字属性都由整个关键字决定(而不是由关键字的一部分来决定)。第三范式:符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述(即一个非关键字属性值不依赖于另一个非关键字属性值)。2.1.3B/S结构与C/S结构随着Internet/Intranet和WWW技术的飞速发展,软件的开发环境和开发技术也在不断的变化,基于此,应用系统的结构也从最初的单机结构系统逐步发展到C/S、B/S及结构。(1)C/S(客户机/服务器)模式特点最早的C/S模式是两层结构,它较传统的基于主机的结构相比有较好的可伸缩性,且具有高性能、高可靠性和开放、易扩充等特点。但是对于拥有较多客户端的复杂系统,两层C/S结构表现出很多的不足,如效率不够高、系统潜在问题多、对客户机性能要求较高、存在安全隐患以及维护代价高等,基于以上诸多缺陷,三层C/S结构应运而生。三层C/S结构是把原来的客户端分为两大块。一块主要解决数据库来连接、业务逻辑处理和安全性服务等问题;另一块为客户层,它只提供应用的用户界面,根据用户的操作调用相应的业务逻辑,它永远不会直接访问后台数据库,不需要考虑数据访问、数据完整性和业务逻辑处理。但是不管是两层还是三层C/S结构都存在一个致命的弱点,即客户端的维护问题。(2)B/S(浏览器/服务器)模式特点随着Internet技术的兴起,浏览器成为展现信息的主要平台之一。采用浏览器作为数据显示平台的应用系统成为B/S应用系统。B/S结构是建立在三层C/S结构的基础之上,是对C/S结构的一种变化或改进,其本质是一种三层C/S结构。在B/S体系结构中,用户通过浏览器向分布在网络上的Web服务器发出请求,首先需要执行相应的扩展应用程序与数据库进行连接,然后将相应的信息返回给浏览器4。B/S结构模式同传统的C/S结构模式相比,使用时不需要对所有计算机进行软件安装和设置,只需要浏览器就可以进入系统,这样便使系统的维护变得简单,同时简化了客户端功能。2.1.4管理信息系统 管理信息系统(Management Information System ,MIS)是20世纪80年代才逐渐形成的一门新学科,其概念至今尚无统一的定义,其理论基础尚不完善,其定义方法尚未明确统一。中国企业管理百科全书给出管理信息系统的定义是:一个由人、计算机组成的能进行信息的收集、传递、储存、加工、维护和使用的系统。管理信息系统是一个一体化系统或集成系统,这就是说,管理信息系统进行的信息管理是从总体出发、全面考虑,保证各种职能部门共享数据,减少数据的冗余度,保证数据的兼容性和一致性。具有集中统一规划的数据库是管理信息系统成熟的重要标志,它象征着管理信息系统是经过周密的设计而建立的,它标志着信息已集中成为资源为各种用户共享。数据库有自己功能完善的数据库管理系统,管理着数据的组织、数据的输入、数据的存取,使数据为多种用户服务。(1)管理信息系统的特点管理信息系统主要以实现管理活动中数据处理为中心,为管理者提供管理信息为目的。管理信息系统追求的目标是管理工作的高效率,服务对象主要是组织的管理控制层,随着管理方法由定性分析转变为定量分析,使管理控制活动更实际、更全面、更科学。 管理信息系统主要解决结构化的管理问题,或者说管理信息系统解决的问题能够用逻辑模型来描述。管理信息系统自动化程度较高。管理信息系统以数据库及其管理系统为中心,趋向于数据的集中管理,系统使用的数据主要来自组织内部。管理信息系统是一个数据库应用系统。(2)管理信息系统的主要功能 信息的采集功能管理信息系统首先应具备信息采集的功能,它能够将各种有关信息收集起来,并转换为系统所需要的数据形式。信息处理功能信息处理是指管理信息系统能够对各种类型的数据进行录入、加工、整理、收集、检查、查询、存储、传输和管理等工作的总称。这是管理信息系统的最基本的功能,也是管理信息系统要完成的首要任务。计划功能计划功能是指通过系统能够对组织的各种具体工作进行合理的计划和安排,有利于提高各个管理层次的工作效率。控制功能控制功能是指通过信息反馈来对整个系统活动中的各个部门、各个环节的运行情况进行监测、协调和控制。这样有利于从系统的整体角度保证正常运行。(3)管理信息系统存在的必要性在社会经济领域中,每时每刻都在产生着大量的、种类繁多的社会信息和经济信息。这些信息对社会组织的发展和社会经济的发展都起着十分重要的影响和作用。特别是进入被称之谓信息时代的21世纪以来,信息的运用更为广泛,信息对现代科学技术的创新以及人类社会的发展产生着越来越重要的和深刻的影响。信息与物质和能源并列被称为人类社会发展的三大资源,因此,研究和利用信息是我们认识、适应及控制社会发展的重要手段和途径。管理信息系统是一个人工系统,它主要由硬件、软件、数据流程以及人员等多种资源组织而成,它存在的目的是及时、准确地收集、加工、存储、传递和提供信息,实现组织中各项活动的计划、管理、调节和控制15。2.2系统开发环境此应用程序可以广泛运行于互联网即 Internet,也适用于内部局域网。运行要求:客户端:Windows95/98, WindowsNT/2000, Internet Explorer(IE)等。服务端:WindowsNT/2000,Internet Information Server(IIS)4.0及其以上版本,IE等。数据库:采用Mysql运行于服务器端。2.2.1Mysql(1)Mysql简介 MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。(2)Mysql的特点1.使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植性 2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统 3.为多种编程语言提供了API。这些编程语言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 4.支持多线程,充分利用CPU资源 5.优化的SQL查询算法,有效地提高查询速度 6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名 7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径 8.提供用于管理、检查、优化数据库操作的管理工具 9.可以处理拥有上千万条记录的大型数据库2.2.2JSP JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。(1)JSP的本质JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 JSP与Java Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。 JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。 JSP可用一种简单易懂的等式表示为:HTML+Java=JSP(2)JSP的特点(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。 (2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/.net的局限性是显而易见的。(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。 (5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。2.2.3 TomcatTomcat是目前比较流行的web应用服务器。是开发和调试JSP 程序的首选。Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。3.系统需求分析与设计3.1系统需求分析需求分析是软件定义时期的最后一个阶段,也是数据库设计过程的基础。它的基本任务是明确系统到底要完成哪些工作。对目标系统提出完整、准确、清晰、具体的要求。3.1.1系统预期实现目标门诊查询系统是针对医院医生和患者之间的各种需要建立起来的一个科学、有效的现代化管理系统。它杜绝了过去手工操作系统的各种弊端,完善了门诊看病预约的处理过程,是对医院的一次技术性变革。本系统实现了预约,诊疗服务,方便了工作人员和病人,使医院的医生管理以及时间分配更加科学、合理,使医院进行现代化信息改革的重要组成部分。本文就此系统地分析、设计、实施作了详细地介绍和描述,并对系统的具体功能和现实意义作了科学地分析和说明。系统最终实现的主要功能如下:1.软件整体功能(1)操作者的权限层次要有明确的分类,进入软件需要进行身份验证。(2)出于对患者个人隐私的负责,患者的病历记录只能在患者就医期间由主治医生调阅,其他任何人包括管理员无权查阅。2.患者角色(1)可联机注册成为用户,设定自己的登录名和密码。(2)可按医生姓名自定义查询。(3)可基于查询结果进行预约,若指定医生当日预约量已满,则预约失败。预约结果随即返回给患者。(4)可对已经进行的预约情况查看或撤销。(5)预约成功后可查询主治医生信息,病历信息。3. 医生角色(1)可查看预约患者的情况(2)可查询患者病历(3)可创建患者病历(4)可对患者的病历进行修改4.管理员角色可以添加和删除医生账号3.1.2系统可行性分析(1)技术约束:要求采用B/S结构,数据库采用Mysql。(2)未来可能提出的需求增加药方管理和收费功能。3.2系统数据库设计当一个系统设计数据库时,其运行效率,冗余程度,可靠性,稳定性等评价指标除了与上层的代码有关外,更多地会受到底层数据库效率的影响。因此,一个好的数据库设计(至少是规范的)能够让你的系统跑的更顺畅,稳定。然而,设计一个规范的数据库需要一定的计算机专业知识。所以只是用一种比较容易被接受的,说明书式的形式来介绍如何去设计数据库。本系统定义实体图的相互关系如图3.2.1患者医生管理员有有病历预约信息可预约数量有有管理治疗管理图3.2.1实体图所以将实体和关系转换成表。将各个角色的所有信息分别单独的放在独立的表中,其中包括该角色的全部信息。选定一个字段作为主键,这个字段存储的信息正在整个表中两两相异,比如医生的编号等。如果表中没有此类信息,可人为加入惟一的ID作为标志,比如PID,AID,QID等。保证表中其他字段只与主键有关系,如果一组信息同时与一个以上的表或者一个表中一个以上的字段有关系,则必须将这组信息抽出去独立构成一张表。如预约信息既与医生有关也与患者有关。所以将其独立成一张表。对所有会成为查询关键字的字段进行索引,以提高查询效率。针对以上内容需要对数据库进行整体分析,主要建立7个模块,分别是:医生模块:(doctor)用来存储医生的个人信息。包括医生的编号,姓名,年龄,登录时的密码,性别,职称,所属科室,专家门诊科目,联系电话患者模块(patient):用来存储患者的个人信息。包括患者编号,姓名,登录时用户名,登录时密码,年龄,性别,家庭住址,联系电话.病历模块(history):用来记录患者的病历信息。包括病历记录编号,主治医生编号,症状,诊断,患者编号,处方,开始时间,结束时间,就诊过程是否结束.预约记录模块(pinqueue):记录了已预约但尚未创建病历的患者信息。包括记录编号,主治医生编号,预约时间,预约就诊时间(星期)以及预约就诊时间(上下午)。管理员模块(administrator):主要存放的是管理员有关信息。包括管理员编号,登录时的用户名,登录时密码,电子邮件,姓名,联系电话。医生最大可预约数量模块(appointment):每天可预约的最大数量。包括医生编号,周1-周日上下午最大可预约数。医生当前可预约数量模块(curappointment):存储了医生当前可预约的数量信息。包括医生编号,周1-周日上下午最大可预约数。注:周1至之日的的时间安排分上下午从1-14数字划分。表和表之间通过表名.字段以及主键来联系各表之间联系如表1表名字段名关联表关联字段Pinqueue预约DoctordoctorDIDPatientpatientPIDHistory医院DoctordoctorDIDPatientpatientPIDAppointment一天预约限制DIDdoctorDIDCurappointment当前预约最大量DIDdoctorDID表 1设计思想及注意事项适当对信息单调的字段进行索引,这样不但不会带来性能上的提高,反而会延长插入,删除以及更新操作的时间。字符串的存储方式与字符串尤其是中文字符串相比较,数据库在处理字符和数字上面比较有效率,因此一些复杂度有限的字符串数据应该设计成字符或数字类型的,并与字符串建立一一对应的关系。转换工作交给逻辑层处理。3.3系统功能设计1. 软件整体功能(1)操作者的权限层次要有明确的分类,进入软件需要进行身份验证。(2)出于对患者个人隐私的负责,患者的病历记录只能在患者就医期间由主治医生调阅,其他任何人包括管理员无权查阅。2. 患者角色(1)可联机注册成为用户,设定自己的登录名和密码。(2)可按医生姓名自定义查询。(3)可基于查询结果进行预约,若指定医生当日预约量已满,则预约失败。预约结果随即返回给患者。(4)可对已经进行的预约情况查看或撤销。(5)预约成功后可查询主治医生信息,病历信息。3. 医生角色(1)可查看预约患者的情况(2)可查询患者病历(3)可创建患者病历(4)可对患者的病历进行修改4.管理员角色可以添加和删除医生账号注1:管理员不是医生,只能添加医生和删除医生账号。同时医生创建完成后无需设置密码,默认密码为医生本身编号。注2:医生用户可以通过自己的编号登录系统,同时可以对默认密码进行修改。可以查看到预约自己的患者。同时对患者的病情进行诊治等。注3:患者用户可以查看可预约的医生,当选择自己指定的医生后,可以查看其所擅长的能力。当对方医生选择预约后,可以在自己的主治医生栏中看到,并且可以查看到自己的病情和解决时间等信息。网站总体设计图如图3.2.2。是是否否是否未注册是是否登录系统输入帐号,密码输入注册信息注册成功预约取消预约成功登录成功患者医生管理员病历信息坐诊信息患者信息预约队列信息医生信息取消?用户已存在?输入信息正确?已预约?输入正确?有合适的时间?查询预约信息查询医生信息预约预约成功?否是否是否已注册图3.2.2网站总体设图3.4.1系统功能划分(功能模块图)功能模块图如图3.2.3。登录注销患者医生管理员注册查询医生信息预约查询预约信息取消预约查询主治医生信息查询预约患者信息创建病历查询患者病历修改病历删除病历添加医生帐号删除医生帐号图3.2.3系统功能模块图4.系统功能设计及主要方法概述4.1逻辑层的设计4.1.1 逻辑层包结构设计逻辑层的设计是本次毕业设计的重点环节,根据三层结构,逻辑层封装了系统能够执行的所有机制和程序,以及对数据库的操作。用户只要在表示层里面调用逻辑层内相映的CLASS文件就可以了,这些类文件都存放在/WEB-INF/CLASSES下面。而且程序只要编译一次,就可以多次使用。(1)hospital包概述整个逻辑层都封装在hospital包中。(2)hospital.db包的概述hospital.db封装了整个系统用于完成基础功能的类,如数据库连接、日志记录等。 hospital.db.Util:辅助类,用于完成一些JSP中常用的功能。hospital.db.InitServlet:初始化整个Servlet环境。hospital.db.DBconnection:与数据库建立连接,返回Connection对象。hospital.db.Debug:记录日志,将信息写入指定的日志文件中。(3)hospital.db.dboperation包概述hospital.db.dboperation包封装了所有与用户角色有关的模型。其中DBOperation类是一个抽象类,用于建立用户模型,供具体角色(Admin、Patient、Doctor)继承。hospital.db.dboperation.DBOperation:建立用户的抽象模型,供子类继承。hospital.db.dboperation.Admin:继承DBOperation,定义管理员模型。hospital.db.dboperation.Patient:继承DBOperation,定义患者模型。hospital.db.dboperation.Doctor:继承DBOperation,定义医生模型。hospital.db.dboperation.InvalidUserException:继承自Exception,用以封装一个表示“非法用户名”的异常。4.1.2与数据库建立连接类DBConnection 本类位于hospital.db包中,由于Connection是一个非常耗资源的对象,因此在这里使用单例模式来设计DBConnection类,保证了整个生命周期内只存在一个Connection对象,该对象可以被其他类重复利用,这样可以大大节省系统资源。类名:DBConnection类型:抽象作用:此类主要是建立一个单例模式来连接数据库。返回:Connection对象该类中一些关键的原理值得说明一下。将类定义为抽象类防止被实例化,这样可以保证内部封装的Connection对象只能用该类定义的静态方法(getConnection())来访问。将内部的Connection对象“conn”定义为静态私有变量,保证整个生命周期只有一份“conn”实例存在,且不能被其他类直接访问。数据库服务器为了保证资源被充分利用,会设定一个连接保持时限,当一个连接时限内与数据库没有通信时,会被服务器关闭。而“Debug.log()”是定义在Debug类中的静态方法,用来将信息存入日志文件。4.1.3 用于将网站运行时遇到的信息记录到文件中的类Debug类:Debug类型:final方法:1.static synchronized Debug init(String path);作用是初始化Debug对象,定义path日志文件存储路径。返回Debug单例对象。 2. public static synchronized void log(String msg);作用是将信息记录进日志文件,日志信息为 msg. 3. private String writeFile(String msg);作用将信息记入日志文件,供log(String msg)调用。 4. public static String getExceptionMsg(Exception e);作用生成格式化异常信息。异常信息为e。同时返回格式化后的异常信息。4.1.4 用于初始化Servlet的类InitServlet类:InitServlet类型: public继承:HttpServlet方法:1.public void init() ;作用是该方法从HttpServlet类继承,在初始化Servlet会自动调用。 2.public void destroy();作用是该方法从HttpServlet类继承,销毁Servlet对象时会自动调用。4.1.5 用于定义了一些辅助方法的类Util类:Util类型:抽象方法: public static int parseSpDays(String dayPattern);作用是处理医生预约信息的字符串,dayPattern为预约信息(14个整数,由逗号或空格分隔),返回一个长度为14的整数数组。以上类为hospital.db下面类。下面的类为hospital.db.dboperation下面的类。包含角色信息以及事务的处理。4.1.6 hospital.db.dboperation类(1)用以封装子类需要用到的数据库操作对象和方法的抽象类DBOperation类:DBOperation类型:抽象方法:1. public ResultSet getResultSet();作用是返回数据集。参数:无返回值数据集对象2. protected abstract int login(String password);作用是用户登录,需要子类实现,所以子类继承它。参数:password密码返回值操作结果代码3. public void closeConnection();作用是关闭数据连接。如果无法关闭或出现错误。返回异常值记录事件中参数:无返回值:无4. protected abstract void checkUser(String id);作用是查询用户名合法性,需要子类实现参数:id用户标识符(2)继承自Exception类的InvalidUserException。重新返回我们需要的异常信息。类:InvalidUserException作用:重写Exception的getMessage()方法,获得我们需要的异常信息。方法public String getMessage();作用:覆盖父类方法参数;无返回值自定义异常信息(3)医生模型Doctor类本类位于hospital.db.dboperation包中,doctor类封状了医生角色可执行的所有操作。比如登录,查询患者病历,修改病历等操作。每个方法对应一个可执行操作。具体方法说明:1. public int login(String password);作用是用户登录信息的验证。返回值为操作结果 1登录成功 0抛出一般异常 -1抛出数据库异常 -2登录失败2. public int getPatientsHistory(String orderBy);作用是获取所有患者病历,orderBy为结果的排序方式。返回值操作结果: 1操作成功 0抛出一般异常 -1抛出数据库异常3public int getPatientHistory(int hid);作用是获取与hid匹配的患者病历,hid为病历号。返回值操作结果: 1操作成功 0抛出一般异常 -1抛出数据库异常4. public int getPatientInQueueInfo();作用是获取预约队列中患者信息。返回值操作结果: 1操作成功 0抛出一般异常 -1抛出数据库异常5. protected void checkUser(String id);作用检查用户合法性。id为医生编号,无返回值。6. public synchronized int createHistory(int qid,String diagnose,String rx,String description);作用是创建病历。参数: qid患者在预约队列中编号 diagnose诊断 rx处方返回值操作结果: 1操作成功 0抛出一般异常 -1抛出数据库异常 -2非法qid值 description症状7. public synchronized int updateHistory(int hid,String description,String rx,String diagnose);作用:修改病历参数: hid病历编号 diagnose诊断 rx处方 description症状 返回值操作结果: 1操作成功 0抛出一般异常 -1抛出数据库异常 -2非法hid值(4)管理员模型Admin类本类位于hospital.db.dboperation包中,admin类封状了管理员可执行的所有操作,每个方法对应一个操作。方法定义如下:1. public int login(String password);作用是管理员登录。参

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论