毕业设计论文-医院住院管理系统_第1页
毕业设计论文-医院住院管理系统_第2页
毕业设计论文-医院住院管理系统_第3页
毕业设计论文-医院住院管理系统_第4页
毕业设计论文-医院住院管理系统_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊安徽工业大学毕业设计(论文)说明书安徽工业大学毕业设计(论文)任务书课题名称医院住院管理系统学院计算机学院班级姓名学号毕业设计(论文)的主要内容:1、学习和掌握系统的开发和技术,按照软件工程的思想对医院住院管理系统进行设计编码和测试。2、系统能满足实际运行需求,能实现医院住院管理的基本需求。3、要求软件美观,使用方便。4、完成一篇论文。篇幅为1.5到2万字左右,中外文摘要约300字,关键词3到5个。5、完成与设计内容有关的外文资料翻译,译文约5000字。6、提交带有注释的原程序清单。起止时间:年月日至年月日共周指导教师签字系主任签字院长签字共IV页第PAGEIV页摘要随着网络技术的发展和普及,计算机管理信息系统在企业管理中扮演着重要的角色。高效率、无差错的医院住院管理系统的开发适应了时代的需要。该系统的主要目的是告别手工操作、安全快捷的保存数据信息、节约时间、从而提高快速和准确性。医院住院管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端程序的开发两个方面。为了更好的满足医护人员用户的需求,本系统包括如下功能模块:出入院管理、病人管理、病房管理、系统用户管理模块,每个模块都有其独自的功能,以达到更好的服务于用户。系统采用B/S结构,用当前最流行的JSP+SERVLETWEB开发技术开发,系统架构采用MVC模式,分层架构,其中持久层采用当前流行的持久层框架Hibernate来实现。数据库采用MySQL小型数据库,小巧方便使用。为了方便编码的过程,系统引入日志,使用Log4j来记录程序运行日志,以方便程序调试和查看程序运行信息。关键词:医院住院管理系统;B/S;JAVAWEB开发技术;HIBERNATE;Log4jAbstractWiththedevelopmentandpopularizationofnetworktechnology,computermanagementinformationsysteminenterprisemanagementplaysanimportantrole.Efficient,error-freehospitalmanagementsystemdevelopmenttoadapttotheneedsofthetimes,thesystem'smainpurposeistobidfarewelltomanualoperation,thepreservationofsafeandefficientdata,savingtime,therebyenhancingthespeedandaccuracy.HospitalManagementSystemisatypicalmanagementinformationsystem(MIS),whichmainlyincludestheestablishmentandmaintenanceofback-enddatabaseandfrontenddevelopmentofthetwo.Inordertobettermeetthemedicalneedsofusers,thesystemincludesthefollowingfunctionalmodules:thehospitalmanagement,patientmanagement,wardmanagement,systemusermanagementmodule,eachmodulehasitsownfeaturestoachievebetterserviceUsers.SystemusestheB/Sstructure,withthemostpopularJSP+SERVLETWEBdevelopmentoftechnologydevelopment,systemarchitectureusingMVCmodel,layeredarchitecture,whichusesthepopularpersistenceframeworkHibernatetoachievepersistencelayer.MySQLdatabaseisasmalldatabaseandcompacteasytouse.Inordertofacilitatetheprocessofencoding,thesystemintroducedlogtorecordtheprogramrunswithLog4jloggingtofacilitatedebuggingandviewruninformation.Keywords:Hospitalmanagementsystem;B/S;JAVAWEBdevelopmenttechnology;HIBERNATE;Log4j目录1.绪论 11.1系统开发的意义 11.2系统开发的目标 11.3相关研究工作 22.开发语言和开发工具简介 32.1JAVA简介 32.1.1JAVA的概念 32.1.2JAVA的特点 32.2JAVAWEB开发技术简介 42.2.1B/S结构 42.2.2Servlet技术 52.2.3JSP技术 62.2.4Hibernate和Log4j简介 72.3MySQL简介 82.3.1MySQL概述 82.3.2MySQL的优点 82.4TOMCAT简介 92.5Eclipse简介 103.可行性研究与需求分析 113.1可行性研究 113.1.1社会可行性分析 113.1.2技术可行性分析 113.1.3经济可行性 113.1.4可行性分析结论 123.2需求分析 123.2.1系统的目的 123.2.2目标 133.3医院住院管理系统数据流图 134.总体设计 164.1系统总体设计思想 164.2系统功能模块图 174.3系统的流程图 185.详细设计 195.1数据库设计的E-R图 195.2数据库设计 205.3输入输出设计 215.3.1输入设计 215.3.2输出设计 225.3.3输入输出的界面设计 225.4部分页面和代码设计、描述 225.4.1登录功能及其相关设计 225.4.2入院登记及其相关设计 245.4.3出院操作及其相关设计 255.4.4病房信息管理及其相关设计 275.4.5病房信息查询及其相关设计 285.4.6病人信息管理及其相关设计 295.4.7病人信息查询及其相关设计 305.4.8系统用户信息管理及其相关设计 315.4.9系统用户信息查询及其相关设计 325.5DAO层代码设计与描述 336.系统测试 356.1功能测试 356.2测试结果 35结论 37致谢 38主要参考文献 39附录一实现本系统的部分源代码 40附录二外文资料翻译 49外文原文 49中文译文 54 共58页第58页1.绪论1.1系统开发的意义目前,我国医疗卫生制度和医疗保障制度的改革不断深化,医院也被迫向市场经济的海洋深处移动,经验主义的管理方法已明显表现出不科学、落后的弱点,如何用最快捷的方式取得医院运行的各项指标,如何对医院人,才、物进行科学的成本核算,怎样保证医院医疗、教学、科研的质量监控,怎样在医院内,甚至院外实行信息交流、网上会诊、继续教育等一系列问题都摆在医院管理者和行政人员以及每位医护人员的面前。因此,医疗卫生事业发展和管理的信息化、数字化、网络化、之间的关系,以及对医院信息化、数字化、网络化的要求,从来没有像今天这样感到迫切与巨大的压力。医院信息管理就是在这种情况下产生的一门应用科学。一直以来医院的管理都是手工操作。手工操作手续复杂,不方便管理,不能保证数据的准确性和及时性,不仅浪费人力、物力和时间,重要的是手工操作可能造成数据录入的错误,影响工作效率。随着计算机性能不断提高,价格不断下降,计算机已在医院医疗、教学、科研、管理等方面得到越来越广泛的应用。计算机化的医院信息系统(HIS)已成为现代化医院运营过程中必不可少的基础设施与技术支撑环境。就好像一个现代化医院的成功运行离不开功能完整、美观舒适的建筑物、及时娴熟的医护人员、性能齐全、高精尖的医疗设备一样,它也离不开计算机的医院信息系统。医疗行业是关系人类健康的重要事业,医院信息系统是医疗保险体制的信息源头,因此,医院的信息化建设不仅是今后医院发展的重要方向,也将是IT界关注的领域。一个设计合理、功能完善的检验信息系统,成为医院网络资源中的重要部分,在提高医院医疗服务和检验工作的科学管理方面具有重大意义。1.2系统开发的目标通过简单的需求分析,完成的医院住院管理系统,能够实现辅助医院医护人员工作,提高医院医护人员的工作效率。通过本系统,能够实现对住院部门的病人和病房两大信息的管理包括增、删、改、查,减轻医护人员的工作负担。本系统提供强大的查询功能,可以让系统用户根据各种不同的查询条件查询出相应的数据。出入院操作能够简单的实现病人的出入院操作,方便医院医护人员的操作,系统应该界面美观,操作简单,功能明确、完善。系统操作,应该有很高的效率,数据库操作方面应该提高效率,不能反应缓慢,这在系统搭建上要求合理、完善。通过建立该医院住院管理系统,采用计算机对医院病房和病人进行管理和查询,进一步提高医院住院管理效益和现代化水平,帮助提高医院住院管理工作人员工作效率,实现医院住院管理工作流程的系统化、规范化和自动化。系统应该具有很好的扩展性,这就要求系统架构合理、可扩展,充分考虑到以后的需求变化。设计良好的代码允许更多的功能在必要时可以被插入到适当的位置中。这样做的好处是为了应对未来可能需要进行的修改,这就需要系统设计时能够有一个良好的软件框架。系统的安全性,也是本次系统设计的一个重要目标,设计中要考虑到用户的非法访问,通过拒绝用户的非法访问来保证用户数据的安全和系统的安全。1.3相关研究工作为了顺利完成基于医院住院管理系统系统的设计与实现,我在毕业设计期间所做的研究工作如下:1.研究了相关文献中关于医院住院管理系统的内容,了解需求、制定需求2.学习JAVAWEB开发技术,了解JSP、servlet、B/S架构3.学习Hibernate持久层、Log4j日志的的使用4.学习WEB项目的搭建和MVC架构模式5.设计医院住院管理系统的体系结构6.设计医院住院管理系统的模块及其界面2.开发语言和开发工具简介2.1JAVA简介2.1.1JAVA的概念JAVA是SUN公司于1995年5月推出的JAVA面向对象程序设计语言和JAVA平台的总称。Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。Java是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。Java也号称是能跨平台使用的语言,这主要是因为Java本身被编译之后,并不是直接产生可执行的码,而是产生一种中间码叫作ByteCode,这种码必需在透过Java的直译器来解读它,才能够真正的被执行,所以只要平台上装有这种Java的直译器,就能解读ByteCode也就能执行Java编译过的程序,故与Java程序是在那种平台上被编译的,就完全没有干系了。Java写出来的程序可分为两类,分别是JavaApplet与一般的Application,而Application这一类就与一般的程序如C++的作用是比较类似的,是一个独立可执行的应用程序,像HotJava是一个浏览器,且就是使用Java程序所发展出来的。最常见的Java程序包括应用程序和applets。应用程序是单独的程序,诸如HotJava浏览器软件就是用Java语言编写的。Applets类似于应用程序,但是它们不能单独运行,Applets可以在支持Java的浏览器中运行。Applet主要是内置于HTML网页中,在浏览时发挥作用。Java的目标是为了满足在一个充满各式各样不同种机器,不同操作系统平台的网络环境中开发软件。利用Java程序语言,可以在网页中加入各式各样的动态效果。可以放上一段动画,加入声音,也可以建立交互式网页等。2.1.2JAVA的特点1.平台无关性平台无关性是指Java能运行于不同的平台。Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与机器无关,Java虚拟机(JavaVirtualMachine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能,提供于不同平台的接口的。2.安全性Java的编程类似C++,学习过C++的读者将很快掌握Java的精髓。Java舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。面向对象Java吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。Java提供了众多的一般对象的类,通过继承即可使用父类的方法。在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。Java提供的Object类及其子类的继承关系如同一棵倒立的树形,根类为Object类,Object类功能强大,经常会使用到它及其它派生的子类。分布式Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。健壮性Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。并且Java还提供了Null指针检测、数组边界检测、异常出口、Bytecode校验等功能。2.2JAVAWEB开发技术简介2.2.1B/S结构B/S结构(Browser/Server结构)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易。B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。B/S三层体系结构采用三层客户/服务器结构,在数据管理层(Server)和用户界面层(Client)增加了一层结构,称为中间件(Middleware),使整个体系结构成为三层。三层结构是伴随着中间件技术的成熟而兴起的,核心概念是利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次。三个层次的划分是从逻辑上分的,具体的物理分法可以有多种组合。中间件作为构造三层结构应用系统的基础平台,提供了以下主要功能:负责客户机与服务器、服务器与服务器间的连接和通信;实现应用与数据库的高效连接;提供一个三层结构应用的开发、运行、部署和管理的平台。这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。而其余如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和应用程序的执行等工作全部由WebServer完成。随着Windows将浏览器技术植入操作系统内部,这种结构已成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序是一个非常大的进步。B/S结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。例如通过浏览器进行大量的数据输入或进行报表的应答、专用性打印输出都比较困难和不便。此外,实现复杂的应用构造有较大的困难。虽然可以用ActiveX、Java等技术开发较为复杂的应用,但是相对于发展已非常成熟C/S的一系列应用工具来说,这些技术的开发复杂,并没有完全成熟的技术工具供使用。2.2.2Servlet技术Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。Servlet是使用JavaServlet应用程序设计接口(API)及相关类和方法的Java程序。除了JavaServletAPI,Servlet还可以使用用以扩展和添加到API的Java类软件包。Servlet在启用Java的Web服务器上或应用服务器上运行并扩展了该服务器的能力。Javaservlet对于Web服务器就好象Javaapplet对于Web浏览器。Servlet装入Web服务器并在Web服务器内执行,而applet装入Web浏览器并在Web浏览器内执行。JavaServletAPI定义了一个servlet和Java使能的服务器之间的一个标准接口,这使得Servlets具有跨服务器平台的特性。Servlet通过创建一个框架来扩展服务器的能力,以提供在Web上进行请求和响应服务。当客户机发送请求至服务器时,服务器可以将请求信息发送给Servlet,并让Servlet建立起服务器返回给客户机的响应。当启动Web服务器或客户机第一次请求服务时,可以自动装入Servlet。装入后,Servlet继续运行直到其它客户机发出请求。图2-1Servlet运行过程2.2.3JSP技术JSP(JavaServerPages)技术是由Sun公司发布的用于开发动态Web应用的一项技术。它以其简单易学、跨平台的特性,在众多动态Web应用程序设计语言中异军突起,在短短几年中已经形成了一套完整的规范,并广泛地应用于电子商务等各个领域中。在国内,JSP现在也得到了比较广泛的重视,得到了很好的发展,越来越多的动态网站开始采用JSP技术。JSP技术可以以一种简捷而快速的方法生成Web页面。使用JSP技术的Web页面可以很容易地显示动态内容。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器、应用服务器、浏览器和开发工具共同工作。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与JavaServlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。2.2.4Hibernate和Log4j简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate作为一种ORM技术,实现了对象模型和关系型数据库之间的映射。Hibernate将JavaBean对象和数据库的表建立了对应关系。这样程序员在操作数据库时,就不需要再使用JDBC调用SQL语句,而可以直接操作JavaBean对象,进行数据库操作。Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。图2-2Hibernate接口关系图Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIXSyslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。 图2-3Log4j类图2.3MySQL简介2.3.1MySQL概述MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。如雅虎、阿尔卡特—朗讯、Google公司、诺基亚公司、百度等公司就采用了MySQL数据库。MySQL数据库可以称得上是目前运行速度最快的SQL语言数据库。除了具有许多其它数据库所不具备的功能和选择之外,MySQL数据库是一种完全免费的产品,用户可以直接从网上下载。2.3.2MySQL的优点1、可移植性使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。2、可扩展性和灵活性MySQL可以支持UNIX、Linux和SUNOS以及Windows等多种操作系统平台。在一个操作系统中实现的应用可以很方便地移植到其他操作系统。MySQL作为开源性质的数据库服务器,可以为那些想要增加独特需求的用户提供完全定制的功能。3、强大的数据保护功能MySQL有一个非常灵活且安全的权限和密码系统。为确保只有获授权用户才能进入该数据库服务器,所有的密码传输均采用加密形式,同时也提供了SSH和SSI。支持,以实现安全和可靠的连接。MySQL强大的数据加密和解密功能,可以保证敏感数据不受未经授权的访问。4、支持大型的数据库虽然对于用PHP编写的网页来说,只要能够存放数百条以上的记录数据就是够了,但MySQL可以方便地支持上千万条记录的数据库。作为一个开放源代码的数据库,MySQL可以针对不同的应用进行相应的修改。5、超强的稳定性MySQL拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用而不必担心其稳定性。线程是轻量级的进程,它可以灵活地为用户提供服务,而不占用过多的系统资源。用多线程和C语言实现的MySQL能很容易地充分利用CPU。6、强大的查询功能MySQL支持查询的select和where语句的全部运算符和函数,并且可以在同一查询中混用来自不同数据库的表,从而使得查询变得快捷、方便。2.4TOMCAT简介Tomcat是一个小型的轻量级应用服务器,是开发和调试JSP程序的首选。他运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能。Tomcat是一个免费的开放源代码的Servlet容器,它是Apache软件基金会(ApacheSoftwareFoundation)的一个顶级项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat6支持最新的Servlet2.5和JSP2.1规范。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱,并得到了部分软件开发商的认可,成为目前比较流行的Web服务器。Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache,我们可以将Apache和Tomcat集成在一起使用,Apache作为HTTPWeb服务器,Tomcat作为Web容器。图2-4Tomcat服务器接受客户请求并做出响应的过程2.5Eclipse简介Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)Eclipse是由一个很小的核心和基于这个核心之上的大量插件组成,这种插件式结构给当时开发社区带来了冲击,可以使用大量插件来进行扩展开发。Eclipse对内存控制很好,Eclipse对这些插件的调用是动态的,也就是说在使用这个插件的时候才会被调入内存,如果不去使用就不会占用内存,而且Eclipse会在适当时候将长时间不使用的插件清理出内存。Eclipse拥有漂亮的开发界面,是基于SWT开发。标准部件库(StandardWidgetToolkit,SWT)是基于Java环境下的新类库,它提供了Java环境下的图形编程接口,SWT中的图形库和工具包取代了AWT和SWING。SWT直接调用操作系统的图形库,这使得Java程序的运行速度得到了保证,但是SWT的缺点是支持的平台太少,Eclipse也可以开发基于SWING的程序。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。3.可行性研究与需求分析3.1可行性研究可行性分析是对现行系统进行初步调查和研究之后的结论,它反映了新系统开发策略。下面分别从社会可行性、技术可行性以及经济可行性三方面进行可行性分析。3.1.1社会可行性分析由于医院住院病人数量众多,因而通过电脑化操作可以减少纸张的使用,同时由于数据直接通过局域网传输,可以减少信息传递时间,提高效率,同时也方便医生,病人搜查相关住院信息,提高医院工作透明度和工作效率。因此从社会可行性分析角度来说,该系统的开发和设计是可行的。3.1.2技术可行性分析本系统是一个基于B/S结构的医院住院信息管理系统,采用面向对象技术、数据库技术、各种JAVA流行框架的应用等JAVAWEB先进技术开发的应用程序,现有的开发技术已非常成熟,且被广泛应用于各行各业,利用现有技术完全可以达到功能目标。其中软件主要使用Eclipse、TOMCAT二者都是开源免费开发组件,数据库采用MySQL。该管理系统以JAVA为主要开发语言,通过DAO方式与后台数据库MySQL相连接,建立了一个基于B/S(浏览器/服务器)的数据库应用管理系统。维护工作方便,由于MySQL的易用性,使得后台的操作十分便捷,操作人员可以在短时间内完全掌握系统的维护工作。在硬件方面,随着它的不断发展,给设计人员更大的灵活性,使研制周期变短,使复杂的设计轻而易举得以实现。医院住院管理系统在技术可行性上完全可以胜任,由于本医院住院管理系统,采用MySQL数据库,以及JAVA语言。JAVA语言的跨平台、安全性等特性,和众多优秀开源的框架的使用,因此在技术可行性上完全能够完成。3.1.3经济可行性在经济上,本系统只是对医院中的住院部进行设计,医院住院部门是医院必不可少的部分,是医院主要的收入来源,通过本系统的开发设计,使得医院住院管理更加流程化,方便,减轻医院住院部门的压力。除此之外,在可扩充性方面,系统采用生命周期法把一个复杂的系统开发工作分解成一些相对独立的部分,可以分阶段实施,为以后的扩充提供方便,随着医院规模的扩大,可以扩充其它的功能,而不须对系统的软硬件作大的改动,从而满足中小型医院扩建的要求。采用本系统后,医院不但可以减少医院工作人员的工作量,减少工作人员数量,还可以提高工作效率,减少病人等待时间,从而更有利于医院的发展和以后的竞争。本系统对设备要求不高,普通的服务器和几台客户机完全可以胜任本系统的运行,因此在设备费用方面将不会十分巨大。软件开发过程中,主要是针对住院管理部门过程中的开发及后台业务管理。住院管理部门是医院人流量最大,也最频繁的,一个好的信息管理系统将显著提高医院住院部门的工作效率,从而进一步提高医院的经济效益,而传统的手工操作不仅效率低下、工作人员容易犯错,而且不会提高医院的经济效益。本系统设计时从用户角度出发,界面美观,操作可视化,提供很多的提示信息,管理流程简单易懂,对医院工作人员来说容易上手。另外,系统开发时,充分考虑到,系统以后的可能扩展,因此对于二次开发,将会更加方便,也即是说,系统的适应性很强,可以长期使用。最后,对于每个住院部门,可以根据自己需要,配置性能一般的计算机做为终端,向服务器存储数据或搜索数据。根据分析研究,使用本套住院信息管理系统对于整个住院部门来说并不是一个很大的负担,因而在经济上是可行的。3.1.4可行性分析结论通过在社会、技术、经济三方面的可行性研究分析,发现系统的开发满足这三方面的要求,因此一致认为系统应该立即开发。3.2需求分析3.2.1系统的目的利用计算机管理,使医院的日常工作简单化和规范化,缩短住院办手续的时间,同时对员工的管理工作增加了透明度,进而使医院的各项资源得到更加充分的利用。具体的目的包括:(1)加快办理病人入院、出院的速度,实现病人的资料在住院的全过程中实现信息化管理;(2)准确记录病人和床位的各项信息,并提供全方位的查询功能,让病人、医生、护士,能够及时准确的掌握病人和床位的各种信息,从而有效提高工作效率,缩短工作时间。(3)系统具有一定的安全性和运行稳定性、可扩展性。系统需要医院员工输入账号和密码才能操作,可以避免其它人员的恶意操作给医院信息带来的损失。(4)系统能够提供一个界面友好、功能完善的信息管理系统,方面医护人员学习和操作,尽可能的简化医院操作,减少医护人员学习和掌握系统的时间。3.2.2目标本系统主要实现与病人相关的各种信息的系统化、规范化和自动化,本住院管理系统主要完成的功能有:★出入院管理模块。包括入院登记、病人出院操作。★病房管理模块。包括对病房的增删改查(CRUD)操作,支持多种查询条件★病人管理模块。包括对病人信息的维护:增删改查操作。支持多种查询条件★系统管理模块。包括对修改用户、添加用户、删除用户、退出系统★系统功能模块。包括首页、前进、后退、刷新等操作和显示当前时间3.3医院住院管理系统数据流图管理员登陆系统医护人员登陆系统管理员登陆系统医护人员登陆系统 医院住院管理系统医院住院管理系统用户信息用户信息病房信息病人信息病人出入院信息 图3-1医院住院管理系统顶层对病人信息的维护、CRUD操作医护人员登陆系统对病人信息的维护、CRUD操作医护人员登陆系统 对病房信息的维护、CRUD操作入院登记出院操作对病房信息的维护、CRUD操作入院登记出院操作病人信息管理病房信息管理出入院管理病人信息管理病房信息管理出入院管理病房信息病房信息病人信息病人出入院信息用户信息 系统用户系统用户管理对病房信息的维护、CRUD操作对病房信息的维护、CRUD操作管理员登陆系统管理员登陆系统图3-2医院住院管理系统第一层病人信息表、病人-病房对应表、病房信息表医护人员病人信息表、病人-病房对应表、病房信息表医护人员输入病人详细信息输入病人详细信息入院登记病人-病房对应表、病房信息表病人-病房对应表、病房信息表根据病人信息设置各种查询条件,查询病人信息学详细信息根据病人信息设置各种查询条件,查询病人信息学详细信息出院操作病房信息管理病房信息管理病房信息表病房信息表根据病人信息设置各种查询条件,查询病人信息学详细信息根据病人信息设置各种查询条件,查询病人信息学详细信息对病房信息进行管理,增删改操作详细信息病房信息查询病房信息查询病房信息表通过设置各种查询条件,方便查询操作病房信息表通过设置各种查询条件,方便查询操作病人信息管理病人信息管理病人信息表对病人信息进行管理,增删改操作病人信息表对病人信息进行管理,增删改操作详细信息病人信息查询病人信息查询病人信息表通过设置各种查询条件,方便查询操作病人信息表通过设置各种查询条件,方便查询操作管理员管理员用户信息表用户信息管理用户信息表用户信息管理对用户信息进行管理,增删改操作对用户信息进行管理,增删改操作学详细信息用户信息管理用户信息管理用户信息表用户信息表根据病人信息设置各种查询条件,查询病人信息学详细信息根据病人信息设置各种查询条件,查询病人信息学详细信息通过设置各种查询条件,方便查询操作详细信息图3-3医院住院管理系统第二层4.总体设计4.1系统总体设计思想系统采用JSP+SERVLET开发,采用当前最流行的JAVAWEB开发模式MVC,采用分层的思想,从系统中分出持久层,使用Hibernate作为持久层的开发工具,MVC开发模式流程图如下所示:(控制器)(控制器)接受用户请求调用模型响应用户请求选择视图显示响应结果(视图)显示模型的业务数据接受用户请求把用户输入数据传给控制器(模型)包含业务数据响应业务数据查询处理业务逻辑通知视图业务数据更新方法调用选择视图业务处理用户请求业务数据查询通知业务数据更新图4-1MVC流程图控制层获取持久层dao时,采用工厂模式,即先初始化dao实例放到工厂中,然后如果控制层或者视图层获取访问某个表的dao的话,即通过工厂获取该dao的实例。系统模块功能分开开发,容易扩展,每个模块功能单独、明确。为了能够实现分页显示信息,除了数据库中采用分页查询外,系统中封装分页信息类,这样,每次访问数据库中查询数据时,就必须先构造分页信息对象,如此实现查询分页显示功能。通过构造过滤器,来加强系统的安全性和适用性,本系统中通过tomcat配置了两个过滤器,一个是编码过滤器,已解决普遍存在的中文乱码问题,另一个是URL地址过滤器,为了能够防止外部用户的不合法的访问,使系统更加安全和数据更加安全。最主要的是,通过一个合理的架构设计,以使系统达到一个很好的可扩展性。4.2系统功能模块图住院管理系统住院管理系统用户信息管理系统用户管理病人管理病房管理出入院管理用户信息管理系统用户管理病人管理病房管理出入院管理修改用户信息新增用户信息删除用户信息批量删除用户信息修改用户信息新增用户信息删除用户信息批量删除用户信息病人信息管理病人信息管理 批量删除病人信息删除病人信息新增病人信息修改病人信息批量删除病人信息删除病人信息新增病人信息修改病人信息病房信息查询病房信息管理出院操作入院登记病房信息查询病房信息管理出院操作入院登记病人信息查询病人信息查询按用户名查询按用户姓名和性别查询按用户名查询按用户姓名和性别查询按病房类型和病房状态查询按病房类型和病房状态查询按病人姓名和病人性别查询病人信息查询按科室名称查询按病人姓名和病人性别查询病人信息查询按科室名称查询按病房编号查询批量删除病房信息删除病房信息修改病房信息新增病房信息按病房编号查询批量删除病房信息删除病房信息修改病房信息新增病房信息按病人编号查询按病人编号查询按病房编号查询按病房编号查询图4-2系统功能模块图4.3系统的流程图NN输入是否正确登陆界面输入是否正确登陆界面输入用户名和密码输入用户名和密码YY用户类型用户类型医护人员医护人员病人管理病房管理出入院管理病人管理病房管理出入院管理管理员管理员系统用户管理病人信息管理病人信息查询病房信息查询病房信息管理出院操作入院登记系统用户管理病人信息管理病人信息查询病房信息查询病房信息管理出院操作入院登记病人-病房对应信息病房信息病人信息病人-病房对应信息病房信息病人信息病房信息管理病房信息管理系统用户信息系统用户信息病房信息查询病房信息查询图4-3系统流程图5.详细设计5.1数据库设计的E-R图1)实体及其属性·病人:住院编号,病人姓名,病人性别,病人入院时间,病人婚姻状态,病人出生地·病房:病房编号,病房类型,病房租金,病房状态,病房所属科室,病房负责人,病房床位数,病房医生,病房医生号码。各个实体间有如下关系:·一个病人只能入住一个病房,而一个病房可以住多名病人2)E-R图:见图5-1,图中的1表示实体与实体间的对应关系是一对一,“m”“n”表示实体与实体间的关系是一对多。 入院时间病人性别病人姓名住院编号ID入院时间病人性别病人姓名住院编号ID 出生地婚姻状态 出生地婚姻状态 病人病房病人病房nn入住入住1病房医生病房负责人1病房医生病房负责人病房医生号码病房床位数病房医生号码病房床位数病房所属科室病房状态病房租金病房编号病房类型ID病房所属科室病房状态病房租金病房编号病房类型ID图5-1本系统数据库E-R图5.2数据库设计数据库设计是整个程序设计的最关键部分。数据库的设计是否合理,将对数据库的大小、代码的优化起到至关重要的作用。因此,在设计程序前必须对数据库进行设计,而在设计数据库前必须对所要完成的功能进行认真的研究分析。根据系统的要求,需要建立存放系统使用过程中所用到的各种信息表:用户表,病人信息表,病房信息表,病人病房对应表。用户表:用来存放使用此系统的用户的信息。表具体结构如表5-1所示。表5-1用户信息表编号字段名称数据结构可否为空说明1IDint否2USER_NAMEvarchar否用户名3USER_REALNAMEvarchar否用户姓名4USER_TYPEtinyint否用户类型,0为医护人员,1为管理员5PASSWORDvarchar否密码6USER_GENDERtinyint否用户性别,0为男,1为女,默认为男7USER_TELvarchar否用户电话8USER_ADDRvarchar否用户地址2)病人信息表:存放病人信息。表具体结构如表5-2所示表5-2病人信息表编号字段名称数据结构可否为空说明1IDint否2HOSPITAL_NUMvarchar否病人住院编号,由系统自动生成3PATIENT_NAMEvarchar否病人姓名4PATIENT_GENDERtinyint否病人性别,0为男,1为女,默认为男5PATIENT_BIRTHDAYdate可病人入院时间6PATIENT_MARRYtinyint可病人婚姻状况,0为已婚,1为未婚7PATIENT_BIRTHPLACEvarchar可病人出生地3)病房信息表:存放病房信息。表具体结构如表5-3所示。表5-3病房信息表编号字段名称数据结构可否为空说明1IDint否2WARD_NUMvarchar否病房编号3WARD_TYPEtinyint否房间类型,0为单人间,1为双人间,2为四人间,3为六人间4WARD_RENTdouble否病房租金5WARD_STATEtinyint否病房使用状态,0为可用,1为已满6WARD_DEPARTMENTtinyint否病房所属科室,0为内儿科,1为妇产科,2为外科,3为骨伤科7WARD_RESPNAMEvarchar否病房负责人8WARD_BEDNUMint否病房床位数9WARD_DOCTORvarchar否病房管理医生10WARD_DOCTORTELvarcher否病房管理医生号码4)病人-病房对应表:存放病人住院信息。表具体结构如表5-4所示表5-4病人-病房对应表编号字段名称数据结构可否为空说明1IDint否2HOSPITAL_NUMvarchar否住院编号3WARD_NUMvarchar否病房编号5.3输入输出设计5.3.1输入设计输入数据是为了在计算机内进行加工处理而从外部接收数据,它的正确与否对于整个系统质量的好坏是起决定作用的。1)设计原则第一,尽量采用人机对话方式输入数据;第二,输入格式的设计要便于填写,便于归档,尽量减少汉字输入以减轻输入设计过程,保证输入精度;第三,输入数据的校核工作尽量由程序来保证。2)输入设计输入设备为键盘。输入方式为文本输入方式。5.3.2输出设计输出设计的目的是使系统能够输出满足用户需求的有用信息。1)设计原则第一,表格输出要实用、方便、考虑用户已经习惯的输出格式;第二,输出表格要考虑系统发展的需要;第三,屏幕输出格式要清晰,重要数据要显示在突出位置上。2)输出设备输出设备为显示器,输出格式举例如下:序号住院编号病人姓名入院时间费用类型基本操作5.3.3输入输出的界面设计1)人机对话部分是人和计算机联系的主要途径,该部分主要从用户操作方便的角度出发进行考虑,主要有选项卡、数据列表框、数据组合框、文本框、按钮等形式。2)设计的系统界面从简,避免了复杂界面给用户造成的困惑。输入界面色彩鲜艳会给操作员带来疲劳,界面灰暗又会影响用户的心情,因此,在设计输入界面时采用了柔和色彩,减轻了操作员因长时间工作而感到的劳顿。5.4部分页面和代码设计、描述5.4.1登录功能及其相关设计登录界面设计图5-2登录界面功能描述输入URL地址,访问住院管理系统,首先映入眼帘的是一个登陆界面,如上图所示。根据提示,不同的操作员输入各自的用户号和登录口令。其中用户号会根据输入的正确与否从后台数据库“ACCOUNT”表中自动提取。输入正确,点击“确认”按钮登录系统,转到主界面;若用户不存在,则提示用户名错误;若用户密码不正确,则提示密码错误;主要代码设计 //获取用户名和密码 StringuserName=req.getParameter("username"); Stringpassword=req.getParameter("password"); log.debug("用户"+userName+"请求登陆系统"); AccountDAOadao=(AccountDAO)DAOFactory.getDAO(AccountDAO.class.getName()); Accountaccount=adao.findAccountByName(userName); log.debug("用户"+account); //提示错误信息,如何提示 if(account==null){ req.setAttribute("errorMessage","用户名错误"); req.getRequestDispatcher("login.jsp").forward(req,resp); return; } if(!password.equals(account.getPassword())){ req.setAttribute("errorMessage","密码错误"); req.getRequestDispatcher("login.jsp").forward(req,resp); return; } req.getSession().setAttribute("isLogin",true); req.getSession().setAttribute("account",account); resp.sendRedirect("main.jsp"); 5.4.2入院登记及其相关设计入院登记界面设计图5-3入院登记界面功能描述医护人员通过登记病人的详细信息,和为病人分配床位,实现病人的入院登记操作,这是病人住院的首要操作。登记时会检测病房的状态,若病房已满,则提示【住院失败,该房间已满】,若无该房间,则提示【住院失败,无该房间号!!!】,若登记成功,则会提示【登记成功!!!】,登记成功后,将病人信息存入【病人信息表中】,并将病人入院信息存入【病人-病房对应表中】,若此时房间满员,则更改房间状态为“已满”。存病人信息时,有系统自动生成住院编号,分配给该住院病人。入院登记主要代码设计 //获得床位信息 ① StringwardNum=req.getParameter("wardnum"); WardInfoDAOwidao=(WardInfoDAO)DAOFactory.getDAO(WardInfoDAO.class.getName()); WardInfowi=widao.getWardInfoByWardNum(wardNum); //如果无该房间 if(wi==null){ resp.sendRedirect("inHospitalRegister.jsp?result=1"); return; }elseif(wi.getWardState()==1){//如果该房间状态为已满 resp.sendRedirect("inHospitalRegister.jsp?result=2"); return; } ② //系统自动生成住院编号 patientInfo.setHospitalNum(pidao.getNextHospitalNum()); //包存病人信息 pidao.savePatientInfo(patientInfo); PatientWardMapDAOpwmdao=(PatientWardMapDAO)DAOFactory.getDAO(PatientWardMapDAO.class.getName()); PatientWardMappwm=newPatientWardMap(); pwm.setHospitalNum(patientInfo.getHospitalNum()); pwm.setWardNum(req.getParameter("wardnum")); //病人入院,建立关系 pwmdao.savePatientWardMap(pwm); //更改房间状态 intcount=pwmdao.findPatientWardMapByWardNum(req.getParameter("wardnum")).size(); ("已入住"+count); ("一共能入住"+wi.getWardBednum()); if(wi.getWardBednum()==count){ wi.setWardState(1); widao.updateWardInfo(wi); } resp.sendRedirect("inHospitalRegister.jsp?success=true");5.4.3出院操作及其相关设计出院操作界面设计图5-4出院操作界面功能描述医护人员通过执行此操作,进行病人出院操作。该功能模块提供三种查询病人信息的方法,分别为根据病人姓名和性别来查询、根据病房编号来查询、根据住院编号来查询,这样可以让医护人员工作更加方便、快捷的完成操作。出院时更新该病人所住房间的状态为可用,然后删除【病人-病房对应表中】相应的病人入院记录,并提示【出院操作成功!!!】,从而完成该病人的出院操作,方便、快捷、步骤简单。出院操作主要代码设计 if(search==0){ //查询1 PatientInfopatientInfo=newPatientInfo(); StringpatientName=req.getParameter("patientname"); intpatientGender=newInteger(req.getParameter("patientgender")); patientInfo.setPatientName(patientName); patientInfo.setPatientGender(patientGender); patientInfos=pidao.queryListWithCondition(patientInfo); maps=pwmdao.findPatientWardMapByListPatientInfo(patientInfos); }elseif(search==1){ //查询2 PatientInfopatientInfo=newPatientInfo(); StringhospitalNum=req.getParameter("hospitalnum"); patientInfo.setHospitalNum(hospitalNum); patientInfos=pidao.queryListWithCondition(patientInfo); maps=pwmdao.findPatientWardMapByListPatientInfo(patientInfos); }elseif(search==2){ //查询3 StringwardNum=req.getParameter("wardnum"); List<PatientWardMap>pwms=pwmdao.findPatientWardMapByWardNum(wardNum); maps=pidao.queryListWithHospitalNums(pwms); }elseif(search==3){ //出院操作 //更改房间的状态为可用 Integerid=newInteger(req.getParameter("id")); StringwardNum=pwmdao.getPatientWardMapById(id).getWardNum(); WardInfowi=widao.getWardInfoByWardNum(wardNum); wi.setWardState(0); widao.updateWardInfo(wi); //删除相应的关联关系 pwmdao.deletePatientWardMapById(id); req.setAttribute("success",true); resp.sendRedirect("outHospitalOperator.jsp?success=true"); return; }5.4.4病房信息管理及其相关设计病房信息管理界面设计图5-5病房信息管理界面设计功能描述医院相关工作人员,可以通过该功能,实现对病房信息的管理包括增删改,本模块能够实现信息的分页显示,通过设置分页信息,让信息数据分页显示,方便工作人员查看。通过该功能模块,能够实现病房信息的添加,工作人员填写相关病房信息,如租金等后单击保存即可成功添加一条病房信息,同样,病房的编号,也会由系统自动生成。也可以实现病房信息的修改,修改完需要修改的信息后,单击保存将会改变相应的病房信

温馨提示

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

评论

0/150

提交评论