《基于J2EE的医院医护信息管理系统.doc》由会员分享,可在线阅读,更多相关《基于J2EE的医院医护信息管理系统.doc(78页珍藏版)》请在三一办公上搜索。
1、基于J2EE的医院医护信息管理系统摘要:医院医护信息管理系统是一个适用于小型医院的计算机化的医护信息管理系统,用于支持医院的行政管理与事务处理业务,减轻事务处理人员的劳动强度,辅助医院管理,辅助高层领导决策,提高医院的工作效率,从而使医院能够以少的投入获得更好的社会效益与经济效益。本系统是一个运用Struts、Spring、iBatis等开源框架技术开发的基于J2EE的B/S信息管理系统,通过本系统可以实现以下主要功能:(1) 管理员通过网络登陆对员工信息进行管理与维护。(2) 用户通过网络登陆对个人信息进行管理与维护。(3) 医生通过网络登陆对病人信息进行管理与维护。(4) 医生通过网络登陆
2、记录病人诊疗情况。(5) 管理员通过网络登陆对病房信息进行管理与维护。(6) 产生病房使用情况。关键字:J2EE; Struts; Spring; iBatis;HIS。Doctor&Nurse Information Management SystemAbstract: Doctor&Nurse information management system is a computerized system which applies into the small-scale hospitals. The system is used to facilitate the administrati
3、on and transaction processing, alleviate the labor intensity of the hospital staff, as well as assist the high-level officers to manage the hospital and make big decisions. In this way, the work efficiency is improved. Therefore, the hospital is able to obtain better social and economical benefit at
4、 a lower price. This system is a B/S information management system based on J2EE and it is developed with the open source framework technology such as Struts, Spring and iBatis. The following functions can be achieved by this system: (1)The administrator log onto the system to administrate and maint
5、ain the staffs information and the basic information of the hospital.(2) The users log onto the system to administrate and maintain the personal information.(3) The doctors log onto the system to administrate and maintain the patients information.(4) The doctors log onto the system to record the dia
6、gnosis result and treat process of the patients. (5) The administrators log onto the system to manage and maintain the room information.(6) The room usage condition can be generated.key words: J2EE; Struts; Spring; iBatis;HIS.目录第一章 引言11.1 系统应用背景11.2国内外研究现状11.3 本系统的特点与定位1第二章 技术方法12.1开发环境介绍32.1.1集成开发环
7、境:eclipse32.1.2 Web应用服务器:JBoss32.1.3 数据库服务器:MySql32.2开源框架介绍32.2.1 Struts32.2.2 Spring42.2.3 iBatis42.3设计模式介绍42.4 J2EE简介52.4.1 J2EE的概念52.4.2 J2EE的优点52.4.3 J2EE三层模型62.5 研究设计方法62.5.1表现层62.5.2 控制层62.5.3 DAO层62.6 与其他技术的比较72.6.1 ASP开发语言72.6.2 PHP开发语言72.6.3 JSP开发语言72.6.4性能比较:83.1需求概述93.1.1业务功能93.1.2信息交流功能9
8、3.1.3安全93.2 业务流程分析94.1系统设计114.2 系统框架114.3数据库设计115.1页面的组装155.2 struts的配置165.3 Spring的配置165.4 iBatis的配置175.5 datasource的配置185.6 系统编码实现205.6.3管理医生模块245.6.4管理护士模块:265.6.5 管理挂号员模块275.6.6管理病房模块285.6.7管理病房类型模块305.6.8管理医生类型模块305.6.9 管理科室模块315.6.10诊疗模块32第一章 引言1.1 系统应用背景随着计算机性能不断提高,价格不断下降,计算机已在医院医疗、教学、科研、管理的各
9、个方面得到越来越广泛的应用。计算机化的医院信息系统已成为现代化医院运营必不可少的基础设施与技术支撑环境。一个现代化医院的成功运行离不开功能完整、界面友好、操作方便的医院信息系统,而一套成功的医院信息系统也大大促进了医院及医疗行业的信息化发展。计算机化的用户管理系统,支持医院的行政管理与事务处理业务,,减轻事务处理人员的劳动强度,辅助医院管理,辅助高层领导决策,提高医院的工作效率,从而使医院能够以少的投入获得更好的社会效益 与经济效益。J2EE是当前世界上应用最广泛,安全性最高的开发模式。而使用Struts、Spring等成熟的开源框架技术开发的应用系统,具有更高的运行效率和可扩展性。J2EE企
10、业级应用软件的平台无关性使其可以应用到几乎所有的系统平台上,具有很强的可移植性。1.2国内外研究现状发达国家医院信息系统的开发实现已有三十多年的历史,正在经历着小型化(Downsizing)、智能化(Intelligence)和集成化(Integration)的改造过程。我国医院信息系统的研发工作,从八十年代初期算起,至今有十多年的历史,在这期间有了很大进步。医院信息管理系统的应用已经涉及到医院业务的各个方面。1.3 本系统的特点与定位作为一个毕业设计的课题,eHealthier的主要目的是将在学校所学的知识用于实践操作中,一方面提高自己的动手能力,将知识用于实践,另一方通过使用当前最前沿的软
11、件开发技术,使自己更好的适应工作岗位,另外通过毕业设计亲身体会软件开发的流程,包括项目计划、需求分析、程序设计、代码编写、软件测试、运行和维护。所以eHealthier并没有把开发目标确定在功能完备上,而是选用医院信息系统比较实用的医护管理、病人管理模块,通过对这些实用功能的实现,提高自己对新技术的运用和实践能力。系统以真实项目的标准对系统的输入输出进行校验,具有良好的安全性和稳定性。Ehealthier使用了J2EE的开发模式,整个系统分为表现层、控制层、DAO层和数据持久层,以JSP、Struts作为表现层和控制层的主要实现技术、以Spring作为DAO层的主要实现技术,以iBatis作为
12、数据持久层的实现技术。第二章 技术方法2.1开发环境介绍2.1.1集成开发环境:eclipseEclipse 是一个由IBM公司资助的开放源代码的Java 集成开发环境,但它的目标不仅仅是成为Java程序的IDE环境,根据Eclipse的体系结构,通过开发插件,它能扩展到任何语言的开发。Eclipse是一个开放源代码的项目,任何人都可以下载Eclipse的源代码,并且在此基础上开发自己的功能插件,同时也可以通过开发新的插件扩展现有插件的功能,比如在现有的Java开发环境中加入WEB服务器插件。可以无限扩展,而且有着统一的外观,操作和系统资源管理。Eclipse在JAVA程序开发工具领域内占有绝
13、对的优势。2.1.2 Web应用服务器:JBossJBoss是一个开放源代码的J2EE应用服务器,遵循最新的J2EE规范。从JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于的J2EE的一个web 操作系统(operating system for web),体现了J2EE规范中最新的技术。2.1.3 数据库服务器:MySql MySQL是一个多用户、多线程的SQL数据库,是一个客户机/服务器结构的应用,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。MySQL是目前运行速度最快的数据库服务器之一,而且MySQL对于商业和个人用户是免费的,MySQL的功能特点如下:
14、可以同时处理几乎不限数量的用户;处理多达50,000,000以上的记录;命令执行速度快;简单有效的用户特权系统。2.2开源框架介绍2.2.1 StrutsStruts是Apache 基金会Jakarta 项目组的一个开源项目,它采用MVC模式,能够很好地帮助java 开发者利用J2EE开发Web应用。是当前应用最广泛、最成熟的开源框架之一,Struts 是面向对象设计,分离显示逻辑和业务逻辑。Struts 框架的核心是一个弹性的控制层,基于如 Java Servlets,JavaBeans,ResourceBundles与XML等标准技术,以及 Jakarta Commons 的一些类库。St
15、ruts有一组相互协作的类(组件)、Serlvet以及jsp tag lib组成。基于struts构架的web应用程序基本上符合JSP Model2的设计标准,是一个传统 MVC设计模式的一种变化类型。2.2.2 Spring Spring 是为了解决企业应用程序开发复杂性而创建的一个开源框架,是当前最活跃的开源框架之一,它运用BeanFactory来统一管理和实例化JavaBeans, Spring框架通过容器事务的管理, 提供了一个轻量级的容器事务处理, 针对的对象是普通的java类, 使用Spring事务管理, 可以按照自己的业务把一些相关的方法纳入其事务管理里面, 避免了程序员在处理事
16、务的过程中繁琐的工作。2.2.3 iBatis iBatis是持久层的一个开源框架,它是O/R实现的一种方式,可以很方便的实现Java对象和数据库的映射。2.3设计模式介绍MVC即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。 视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的
17、处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。 模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计是MVC最主要的核心。控制(Control):用来接收和转发用户的交互信息,调用模型层进行相关的处理,将矗立的结果交给相应的视图显示给用户。2.4 J2EE简介2.4.1 J2EE的概念J2EE是一种利用J
18、ava 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如编写一次、随处运行的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server PagES)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。 J2EE体系结构提供中间层集成框架用来满
19、足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。2.4.2 J2EE的优点J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制,基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用。基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE的程序只需开发一次就可部
20、署到各种平台。一些J2EE部署在WINDOWS环境中,也可选择健壮性能更好的操作系统如Sun Solaris、IBM OS/390。最健壮的操作系统可达到99.999%的可用性或每年只需5分钟停机时间。这是实时性很强商业系统理想的选择。2.4.3 J2EE四层模型J2EE 的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,图2-1是 J2EE 典型的层结构:图2-1 J2EE四层模型2.5 研究设计方法本系统按照J2EE层次结构进行设计:2.5.1表现层 由Jsp和struts扩展标签库实现,主要用于用户交互和处理结果展现给用户。2.
21、5.2 控制层 运用Struts框架的ActionServlet和Action进行控制转发,主要作用是描述应用程序中的商业流程,调用相应的DAO进行结果控制。2.5.3 DAO层 运用Spring的BeanFactory机制进行底层类的实例化,并由iBatis的Sql Mapping机制进行相应的数据库操作。2.6 与其他技术的比较2.6.1 ASP开发语言 ASP全名Active Server Pages,是一个WEB服务器端的开发环境,利用它可以产生和执行动态的、互动的、高性能的WEB服务应用程序。ASP采用脚本语言VBScript(Java script)作为自己的开发语言,开发比较简单
22、。ASP只能执行于微软的服务器产品,IIS(Internet Information Server),而且每次执行都要进行编译,所以性能比较低。而且ASP所有代码均写在页面中,表现与实现混合在一起,安全性差,只要得到页面,便能得到全部源码。2.6.2 PHP开发语言PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态产生页面。它支持目前绝大多数数据库。而且PHP是完全免费的。由于PHP本身存在的一些缺点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点。首先,PHP缺乏规模支持。其次
23、,缺乏多层结构支持。对于大负荷站点,解决方法只有一个:分布计算。数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,群组成二维数组。而PHP则缺乏这种支持。而且PHP提供的数据库接口支持不统一,这就使得它不适合运用在电子商务中。2.6.3 JSP开发语言 JSP是Sun公司推出的新一代网站开发语言,JSP可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。JSP技术能够支持高度复杂的基于Web的应用。JSP页面的内置脚本语言基于Java程序设计语言,所有的JSP页面都被编译成为Java Servlet,所以JSP页面就具有Java技术的所有好处,包括健壮
24、的存储管理和安全性。作为Java平台的一部分,JSP拥有Java程序设计语言“一次编写,各处执行”的特点。JSP可以执行于所有平台。如Win NT,Linux,Unix。从一个平台移植到另外一个平台,JSP和JavaBean甚至不用重新编译,因为Java字节码都是标准的与平台无关的。对于脚本语言来讲,JSP虽然在开发和部署方面相对其他脚本语言来说要复杂一些,但对于跨平台的中大型网站系统来讲,基于JAVA技术的JSP(结合JavaBean和EJB)几乎成为唯一的选择。2.6.4性能比较:有人做过试验,对这三种语言分别做回圈性能测试及存取Oracle数据库测试。在循环性能测试中,JSP只用了四秒钟
25、就结束了2000020000的回圈。而ASP、PHP测试的是20002000循环(少一个数量级),却分别用了63秒和84秒。(参考PHPLIB)。 数据库测试中,三者分别对 Oracle 8 进行 1000 次 Insert,Update,Select和Delete: JSP 需要 13 秒,PHP 需要 69 秒,ASP则 需要 73 秒。 第三章 系统分析3.1需求概述3.1.1业务功能 系统实现医院基础信息的管理,包括病房管理,病房类型管理,科室管理,医生专业管理;系统实现员工信息管理,包括医生管理、护士管理、挂号员管理、管理员管理;系统实现病号挂号管理,病号信息保存与追踪;系统实现病号
26、诊疗纪录添加、保存与查询功能。系统实现用户个人信息管理功能。系统实现病房使用情况查询功能。3.1.2信息交流功能 系统实现邮件的自动发送功能。3.1.3安全 系统实现用户密码的加密功能,使用不可逆的单向加密方式保存用户的密码;系统实现密码找回功能,用户可通过输入自己的用户名和邮箱地址,通过邮箱实现密码找回功能3.2 业务流程分析流程图如下(图3-1):找回密码登录成功?输入用户名和邮箱生成随机密码发送邮件存在此用户?检测用户类型挂号员 管理员医生出院挂号医生管理新病人?分配医护搜索诊疗查询病历新病人?添加病人信息添加诊疗记录护士管理挂号员管理病房管理添加医生编辑信息删除医生添加护士编辑护士删除
27、护士添加挂号员编辑信息删除挂号员添加病房删除病房编辑信息管理类型发送邮件发送邮件发送邮件有病人?删除提示信息编辑病人信息图3-1 系统流程图 第四章 概要设计4.1系统设计4.1.1表现层 由Jsp和Struts标签库实现,主要用于用户交互和处理结果展现给用户。4.1.2控制层 运用Struts框架的ActionServlet和Action进行控制转发,主要作用是描述应用程序中的商业流程,调用相应的DAO进行结果控制。4.1.3 DAO层 运用Spring的BeanFactory机制进行底层类的实例化,并由iBatis的Sql Mapping机制进行相应的数据库操作。4.2 系统框架医院医护信
28、息管理系统实现主要功能图示如下(图4-1):医生管理、护士管理、维护病房信息、科室管理医护人员管理模块医 院 门 诊 查 询 系 统添加病房、查看病房使用记录、查找病房、修改病房信息病 房 管 理 模 块 查找病人、添加病人、修改病人信息、给病人安排医生和护士、病人的登入和登出、安排房间、医生填写病历、查询病人病历。病 人 管 理 模 块图4-1 系统功能图4.3数据库设计4.3.1 Admin表表4-1 admin表 Field NameField TypeSizeisKeywordAllowNullisAutoIncrementIdINTEGER10YNYNAMEVARCHAR18NNNP
29、ASSWORDVARCHAR128NNNGENDERCHAR6NNNDOBCHAR20NNNEMAILVARCHAR50NNNADDRESSVARCHAR50NNNPHONE_NUMBERCHAR20NYNDEPARTMENTINTEGER4NNNIdINTEGER10YY4.3.2 Doctor表表4-2 Doctor表Field NameField TypeSizeisKeywordAllowNullisAutoIncrementIdINTEGER10YNYNAMEVARCHAR18NNNPASSWORDVARCHAR128NNNGENDERCHAR6NNNDOBCHAR20NNNEMAI
30、LVARCHAR50NNNADDRESSVARCHAR50NNNPHONE_NUMBERCHAR20NYNDEPARTMENTINTEGER4NNNSPECIALITYINTEGER4YNN4.3.3 CASES表表4-3 Cases表Field NameField TypeSizeisKeywordAllowNullisAutoIncrementIdINTEGER10YNYCASESINTEGER10NNNDATE_TIMECHAR20NNNCOMMENTSVARCHAR200NNN4.3.4 Nurse表表4-4 Nurse表Field NameField TypeSizeisKeywor
31、dAllowNullisAutoIncrementIdINTEGER10YNYNAMEVARCHAR18NNNPASSWORDVARCHAR128NNNGENDERCHAR6NNNDOBCHAR20NNNEMAILVARCHAR50NNNADDRESSVARCHAR50NNNPHONE_NUMBERCHAR20NYNDEPARTMENTINTEGER4NNN4.3.5 Patient表表4-5 Patient表Field NameField TypeSizeisKeywordAllowNullisAutoIncrementIdINTEGER10YNYNAMEVARCHAR18NNNHEIGHT
32、VARCHAR20NYNGENDERCHAR6NNNDOBCHAR20NNNEMAILVARCHAR50NNNADDRESSVARCHAR50NNNPHONE_NUMBERCHAR20NYNWEIGHTCHAR20NYNBLOOD_GROUPCHAR2NNN4.3.6 Register表表4-6 Register表Field NameField TypeSizeisKeywordAllowNullisAutoIncrementIdINTEGER10YNYNAMEVARCHAR18NNNPASSWORDVARCHAR128NNNGENDERCHAR6NNNDOBCHAR20NNNEMAILVAR
33、CHAR50NNNADDRESSVARCHAR50NNNPHONE_NUMBERCHAR20NYN4.3.7 Room表表4-7 Room表Field NameField TypeSizeisKeywordAllowNullisAutoIncrementIdINTEGER10YNYROOM_MARKVARCHAR20NNNROOM_TYPEINTEGER10NNNCAPACITYINTEGER2NNNCURRENT_PEOPLEINTEGER2NNN4.3.8 ROOM_TYPE表表4-8 Room_Type表Field NameField TypeSizeisKeywordAllowNull
34、isAutoIncrementIdINTEGER10YNYROOM_TYPEVARCHAR40NNN4.3.9 DEPARTMENT表表4-9 Department表Field NameField TypeSizeisKeywordAllowNullisAutoIncrementIdINTEGER10YNYDEPARTMENTVARCHAR40NNN4.3.10 SPECIALITY表表4-10 Speciality表Field NameField TypeSizeisKeywordAllowNullisAutoIncrementIdINTEGER10YNYSPECIALITYVARCHAR4
35、0NNN第五章 系统详细设计5.1页面的组装 本系统应用了Tiles框架组合可以复用的Tiles来搭建网页,从而形成界面风格统一,格式整齐的用户界面。5.1.1配置tiles插件 首先在sturst配置文件struts-config.xml 中配置tiles插件,使系统能够辨析符合tiles规范的路径。格式如下: /plug-in 建立Tiles的配置文件tiles-defs.xml,用来定义tiles模板和子页面,在本系统中所有的用户界面都用tiles来组装。 建立模板页baseTemplate.jsp,页面中以的方式定义网页标题;以的方式定义插入点。 建立二级模板页,继承baseTempl
36、ate.jsp,设定个二级模板的左侧菜单。 建立最终用户界面,继承各自的二级模板页,并定义自己的body,通过body页的编写,与二级模板和baseTemplate.jsp进行组装,形成最终的用户界面。5.2 struts的配置 (1)struts标签库文件的配置:将struts标签库文件放入WEB-INF文件夹下,文件如下:struts-config.xml、struts-html.tld、struts-logic.tld、struts-nested.tld、struts-tiles.tld,在web.xml文件中配置标签库,格式如下: /WEB-INF/struts-bean /WEB-I
37、NF/struts-bean.tld (2)struts类库的配置:将struts的类库文件放入WEB-INF下lib文件夹下,struts.jar、jakarta-oro.jar、commons-validator.jar、commons-logging.jar、commons-fileupload.jar、commons-digester.jar、commons-beanutils.jar、antlr.jar。 (3)建立Struts配置文件struts-config.xml文件并放入WEB-INF文件夹下,Struts-config.xml文件是Struts的核心文件,这个文件里描述了所
38、有的Struts组件,定义了所有的Action, ActionForm以及所有Action的映射关系,struts-config.xml文件还定义了系统的消息资源文件,系统中所有的用户消息都在ApplicationResources文件中进行定义,这样就方便了对消息文件的统一管理。 另外,struts-config.xml文件还定义了struts的各种插件,Spring插件就是在这个文件中定义。5.3 Spring的配置 (1) Spring 类库的配置: 将spring的类库文件放到WEB-INF下lib文件夹中。 (2) Spring配置文件配置:建立applicationContext.
39、xml文件放入WEB-INF文件夹中,文件格式如下:java:jdbc/eHealthierDS (3)在struts-config.xml中配置spring插件,格式如下:5.4 iBatis的配置 (1) iBatis类库的配置:将iBatis类库文件放到WEB-INF下lib文件夹中,主要文件如下:ibatis-sqlmap-2.jar、ibatis-dao-2.jar、ibatis-common-2.jar。 (2)iBatis配置文件配置:建立sql-map-config.xml文件并放入WEB-INF文件夹中,文件格式如下: 5.5 datasource的配置 (1)数据库驱动程序的配置:将数据库jdbc驱动放到WEB-INF下lib文件夹中。 (2)建立数据源配置文件mysql-ds.xml,文件格式如下: jdbc/eHealthierDS jdbc:mysql:/127.0.0.1:3306/ehealthier?useUnicode=true&characterEncodi