医院管理系统的设计与实现

医院管理系统的设计与实现
医院管理系统的设计与实现

医院管理系统的设计与实现

摘要

本论文的课题来源于第一人民医院医院管理系统开发项目,通过对医院管理系统的设计与实现,分析并讨论了一种基于J2EE的Web应用的设计方案,重点研究了Struts2框架,Java数据库连接等技术。本文在需求分析的基础上,设计出了医院管理系统的基本功能,完成了基本管理,医师管理,药品管理,门诊管理,住院管理,系统查询等主要功能模块的设计与实现,基本满足了医院的日常工作的需要。系统界面设计简单大方,交互性强,便于操作。本系统基于B/S结构,采用Struts2的MVC模式进行开发。整个系统在MyEclipse8.5下开发与调试,在Tomcat6.0上部署运行,数据库服务器采用MySQL。

关键词:医院管理系统,B/S模式,Struts2 ,MySQL

Design and Implementation of the Medical Management System

Abstruct

This thesis’project came from the clinic’s development of the medical management system of Nanyang first people’s hospital. Through the design and implementation of medical management system, this thesis analyzes a kind of applied website design scheme based on J2EE and mainly discusses the Struts2 framework, Java database connection technologies. Based on the analysis of the demand, this thesis gives the basic functions of this system that including the basic management, physician management, drug management, clinic management, hospital management, system inquirement, which basically meets the needs of practical work of this clinic. Simple and intuitive operation is provided using the system. This system based on B/S structure, Struts2 MVC pattern of development. This system is developed with the tools of MyEclipse8.6 and deployed on the Tomcat5.0, while the database server adopts MySQL.

Key Words:medical management system ,Browser/Server model ,Struts2 ,MySQL

目录

摘要........................................................................ I 关键词...................................................................... I Abstract .................................................................... I Key Words ................................................................... I 第1章前言............................................................. - 1 -

1.1 系统研究的背景及意义............................................ - 1 -

1.2 系统完成的工作及解决方案........................................ - 2 -

1.3 论文的组织结构.................................................. - 3 - 第2章系统开发的关键技术............................................... - 4 -

2.1 J2EE模式的系统架构简介.......................................... - 4 -

2.1.1 J2EE的概念................................................ - 4 -

2.1.2 J2EE的四层模型............................................ - 5 -

2.2 Struts2框架简介................................................. - 5 -

2.2.1 Struts2工作原理........................................... - 6 -

2.2.2 Struts2的作用及优势....................................... - 7 -

2.3其他相关技术简介................................................. - 8 -

2.3.1 JavaScript技术............................................ - 8 -

2.3.2 Ajax技术.................................................. - 8 -

2.3.3 JDBC技术.................................................. - 8 - 第3章系统需求分析.................................................... - 10 -

3.1 系统功能需求分析............................................... - 10 -

3.1.1 系统功能分析.............................................. - 10 -

3.1.2 系统功能描述及用例分析.................................... - 11 -

3.1.3 系统时序图分析............................................ - 12 -

3.2 业务流程分析................................................... - 14 -

3.3 系统非功能需求................................................. - 15 -

3.3.1 性能需求.................................................. - 15 -

3.3.2 运行环境需求.............................................. - 16 - 第4章系统设计........................................................ - 18 -

4.1数据库设计...................................................... - 18 -

4.1.1 数据库设计原则............................................ - 18 -

4.1.2 数据库概念设计............................................ - 18 -

4.1.3 数据库逻辑设计............................................ - 20 -

4.1.4 数据库表格设计............................................ - 21 -

4.2 系统体系设计................................................... - 24 -

4.2.1 系统总体设计原则.......................................... - 24 -

4.2.2 系统的逻辑与结构.......................................... - 24 - 第5章编码与实现...................................................... - 26 -

5.1 登录页面的编码实现............................................. - 26 -

5.2 主页面的编码实现............................................... - 27 -

5.3 门诊挂号的编码实现............................................. - 29 -

5.4 门诊就诊的编码实现............................................. - 30 -

5.5 医师信息录入的编码实现......................................... - 32 -

5.6 门诊出诊的编码实现............................................. - 34 -

5.7 系统查询的编码实现............................................. - 35 - 第6章测试与运行...................................................... - 36 -

6.1 测试的目的和意义............................................... - 36 -

6.2 医务管理系统功能测试........................................... - 36 -

6.2.1 管理员登录模块测试........................................ - 36 -

6.2.2 医师登录模块测试.......................................... - 37 -

6.2.3 门诊管理模块测试.......................................... - 37 -

6.2.4 系统查询模块测试.......................................... - 37 - 结束语................................................................. - 39 - 参考文献............................................................... - 40 - 致谢................................................................... - 41 -

附录................................................................... - 42 -

第1章前言

1.1 系统研究的背景及意义

在全球信息化下,信息社会得到了较快的发展,改变了人类的生产和生活方式,促进了知识经济的成长,加快了世界经济全球化的进程。信息全球化已经全面进入我们的生活,对人们生活以及各个方面都产生了影响,并且成为一种显而易见的发展趋势。医院信息化属于现存企业及信息系统中比较复杂的一类,这是由医院的目标,性质和任务所决定的,它应用于医院的医疗管理和经济管理各个方面,牵涉的信息种类十分复杂;融合了医院的管理思想和各部门的业务经验,是当前医院运营方式和业务流程的具体体现,同时在一定程度上反作用于医院的日常运营的效率。医院信息化所采用的技术手段与当前快速发展的信息技术密切相关,实施的技术手段又要受到当前计算机信息技术发展的高度的大环境的制约,又要受到国家和有关部委制定的相关法律法规的影响。

所以,医院医疗信息化的建设并不是一个简单的,封闭的,静止的过程,相反它却是一个复杂的,开放的,动态的研究过程。医院医疗信息化建设工作具有长期性,复杂性和内容的多变性,医院医务系统的设计和实现,有利于提高医院医务办公自动化水平,工作效率和管理水平,从而更好的为管理人员,医师,病人和药物服务,具有十分重要的意义[1]。

医院在改革开放以来,发展迅速,现已成为一家大型综合医院,因此医院投入了大量的人力物力财力推进医院的信息化建设,目前已经建成了覆盖全院的信息化平台,并在此基础上购置和研制了OA办公系统,人力资源管理系统,财务管理系统等,进一步实现了数字化医院的建设,但是有些部门及日常运营信息化工作水平还是比较低,比如病人在门诊就诊时,医生还是采用手写记录病人信息的方式进行门诊就诊的,手写的方式记录的病人的信息查询管理门诊信息难度大,不易进行门诊的报表和业务管理。

为了推动医院信息化建设,利用现代计算机技术将医院的病人信息管理,医师信息管理,药物信息管理,门诊管理,住院管理等工作移植到统一的软件网络空间环境下,从而可以达到医院日常运营效率和管理水平的目的。本论文针对第一人民医院目前的现状,结

合单位的实际情况,决定开发一个基于B/S模式的医务管理系统,一个规范化的J2EE系统软件。

1.2 系统完成的工作及解决方案

本文采用了软件工程的设计思想,经过深入的调查编写了医务管理系统的需求分析,系统的总体设计,数据库设计和系统的详细设计和实现。本系统符合医院的管理要求和工作人员的工作习惯,方便医护人员及管理员的使用,采用计算机方式记录医院的医师信息,药品信息,住院信息以及门诊信息,实现了对病人在医院整个就医过程中的各项信息的详细规范的记录和人员信息,药物信息的变更的记录。

系统的设计使用了面向对象的编程方法,把系统分成了多个模块,开发环境采用了MyEclipse8.5,后台数据库采用MySQL,部署运行服务器采用的是Tomcat5.0。

本系统按照软件工程理论的开发流程,主要完成以下几个线性内容:计划阶段,需求分析,系统设计,编码实现,测试及运行等几个阶段。

(1) 计划阶段

主要进行可行性分析,主要包括:a.经济可行性b.技术可行性c.法律可行性。

(2) 需求分析阶段

在此阶段,软件开发人员和用户共同讨论和决定哪些需求是可以满足的,哪些需求是需要改进的,对一些需求和需要加以特殊的描述,写出软件需求说明书或系统功能说明书及初步的用户使用手册。

(3) 系统设计阶段

此阶段是软件工程的核心部分,大致分为总体设计和详细设计。总体设计根据需求得到的数据流,数据结构;详细设计是使用表格和图形等详细设计工具。

(4) 编码与实现阶段

把用户可以接受的需求用计算机编程语言实现出来,使用哪种计算机编程语言由计算机编程人员自己确定。

(5) 测试与运行阶段

包括改正性维护,适应性维护,完善性维护。在本阶段主要编写测试用例来实现测试过程[2]。

1.3 论文的组织结构

本文主要分为六节。

第一节绪论,主要介绍该系统研究的背景及意义,需要解决的问题和解决问题的方案以及本论文的组织结构。

第二节系统开发的关键技术,主要介绍系统实现过程中使用到的技术和方法。

第三节系统需求分析,主要介绍了系统实现之前的用户期望达到的效果。

第四节系统设计,主要介绍了系统的数据库设计和系统的体系设计。

第五节编码与实现,主要介绍了一些功能模块的代码实现。

第六节测试运行,主要介绍了软件测试的目的和意义,对本系统进行一些功能测试,列举了一些测试用例。

第2章系统开发的关键技术

2.1 J2EE模式的系统架构简介

J2EE是Java2平台企业版(Java 2 Platform, Enterprise Edition),J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共同的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的窘境。J2EE的体系结构如图2.1所示:

图2.1 J2EE体系结构

2.1.1 J2EE的概念

J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML 技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。

J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。

2.1.2 J2EE的四层模型

J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。事实上,sun设计J2EE的初衷正是为了解决两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议,通常是某种数据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在J2EE 的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,以下是 J2EE 典型的四层结构:运行在客户端机器上的客户层组件

运行在J2EE服务器上的Web层组件

运行在J2EE服务器上的业务逻辑层组件

运行在EIS服务器上的企业信息系统(Enterprise information system)层软件

J2EE应用程序组件

J2EE应用程序是由组件构成的.J2EE组件是具有独立功能的软件单元,它们通过相关的类和文件组装成J2EE应用程序,并与其他组件交互。J2EE说明书中定义了以下的J2EE 组件:

应用客户端程序和applets是客户层组件。

Java Servlet和JavaServer Pages(JSP)是web层组件。

Enterprise JavaBeans(EJB)是业务层组件[3]。

2.2 Struts2框架简介

Struts 2是Struts的下一代产品,是在 struts 和Web Work的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以Web Work为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为Web

Work的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于Web Work,Struts 2只有很小的变化。

Struts是MVC模式的经典实现,具有组件的模块化、灵活性和重用性的优点,同时也简化了基于MVC的Web应用程序的开发。从应用的角度来说,Struts有三大块,分别是Struts核心类、Struts配置文件及Struts标签库。一般情况下所说的Struts框架指的是Struts 1框架,而非Struts 2框架。由于本系统使用Struts 2框架开发,所以主要介绍Struts 2框架。Struts2是一个优秀的、可扩展的企业级Java Web应用程序开发框架。Struts2并不是Struts 1的升级版本,它是Web Work及Struts1结合的产物。根据J2EE的特点,做了相应的变化和扩展。它是在JSP Model的基础上实现的一个MVC框架,其结构如图2-2所示:

图2.2 Struts2结构图

2.2.1 Struts2工作原理

当客户浏览器发起一个请求,请求被发送到控制组件Dispatch Filter,Dispatch Filter就好比公司的前台,它会根据请求地址将其转到相应的模型组件。每个模型组件都会关联一系列的拦截器,拦截器的作用就好比一层层的守卫,进入模型组件的请求都要首先经过这些拦截器的审查处理,才能进入下一环节处理。在经过拦截器的“层层盘查”后,请求才能到达实现业务逻辑的核心组件Action,Action完成后,根据业务处理的结果。将返回一个Result到客户浏览器。看起来事情到此为止,事实上,拦截器还要进行处理后的一系列善后工作,整个处理流程才算真正的完成。只是此时拦截器进行的这些善后工作对于用户看到的Result组件的显示没有任何影响。Struts2工作原理如图2-3所示:

图2.3 Struts2工作原理

Struts2框架的大概处理流程如下:

(1) 加载类(Filter Dispatcher)

(2) 读取配置(struts配置文件中的Action)

(3) 派发请求(客户端发送请求)

(4) 调用Action(Filter Dispatcher从struts配置文件中读取与之相对应的Action )

(5) 启用拦截器(Web Work拦截器链自动对请求应用通用功能,如验证)

(6) 处理业务(回调Action的execute()方法)

(7) 返回响应(通过execute方法将信息返回到Filter Dispatcher)

(8) 查找响应(Filter Dispatcher根据配置查找响应的是什么信息如:SUCCESS、ERROR,将跳转到哪个jsp页面)

(9) 响应用户(jsp 用户浏览器端显示)

(10) struts2标签库(相比struts1的标签库,struts2是大大加强了,对数据的操作功能很强大)[4]

2.2.2 Struts2的作用及优势

Struts清晰地划分了控制部分,事务逻辑和外观视图,让开发者遵循一个统一的模式进行设计编码,简化了系统后期维护的工作量,尤其是当其他开发者接受项目时,这种优势体现得更加明显。

Struts给开发者提供了了良好的页面导航功能,开发者可以通过配置文件struts.xml 把握整个系统各部分之间的相互关联,侵袭地掌握整个系统的结构,同时Struts对Taglib 标签库进行了扩展,使得功能更加强大。使用Taglib可以简化JSP页面的开发,使得页面嵌套的Java代码变得更少,页面的工作量减轻,开发人员可以更加灵活的在控制层中编写代码。

2.3其他相关技术简介

2.3.1 JavaScript技术

JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。JavaScript是Sun公司的注册商标。Ecma国际以JavaScript 为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程。完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,字节顺序记号。

本系统主要运用JavaScript技术提供系统数据验证以及页面跳转等功能。

2.3.2 Ajax技术

AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML),AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词,是指一种创建交互式网页应用的网页开发技术。

AJAX 指异步 JavaScript 及 XML。通过 AJAX,您的 JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信。通过这个对象,您的 JavaScript 可在不重载页面的情况与 Web 服务器交换数据。在本系统主要运用AJAX技术实现数据异步刷新和读取等功能[5]。

2.3.3 JDBC技术

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。

相关文档
最新文档