获取项目源文件,学习交流联系Q:1415736481,可指导毕设,课设
【摘要】计算机信息技术应用于医院的日常管理,可以为医院的发展提供巨大的动力。本系统采SQL server2000为后台数据库,以MyEclipse 6.5为前端开发工具,以TomCat 6.0为服务器,采用MVC三层开发框架。系统实现了挂号管理、处方管理、收费管理、药品管理等必需的功能,其操作简单、功能完善、运行比较稳定,适用于小型医院的门诊信息管理工作。
【关键词】门诊;管理信息系统;SQL server2000;Jsp
The Development of Hospital Management Information System
Abstract: Computer information technology in the daily hospital management, hospitals can provide a tremendous impetus to the development. The system adopted for the background SQL server2000 database to MyEclipse 6.5 as the front-end development tools to TomCat 6.0 as the server, three-tier development using MVC framework. System to achieve the registration management, prescription management, charge management, drug management, the necessary functions. Its operation is simple、perfect function 、stable operation、for small hospital outpatient information management.
Key words: diagnosis ;management information system;SQL server2000;Jsp
目 录
引 言
随着计算机技术的飞速发展,计算机在医院管理中应用的普及,利用计算机实现医院门诊信息
的管理势在必行,当前的医院门诊管理系统正在由C/S结构向B/S结构转移,但是由于安全性等方面的因素,C/S结构的信息系统仍然占据医院管理信息系统的主流。
逐渐地随着计算机在社会各个领域的广泛应用,大量繁杂的工作得以快递、高效的完成,使人们从繁重的劳动中解脱出来,提高了工作效率和工作质量。在计算机应用的众多领域中,管理信息系统占据着十分重要的地位,它使用系统的观点,以计算机科学和现代通信技术为基础,对某一组织或机构中有关管理的数据进行收集、处理,并输出有用信息, 使大量的手工劳动自动完成,避免了因人工操作带来的各种错误。
医院门诊管理系统是现代医院管理不可缺少的一部分,是适应现代医院要求,推动医院的门诊信息管理走向科学化、规范化、高效化的必要条件。现代医院需要高效的完成医院门诊信息管理的日常业务,包括病人挂号管理,处方管理,收费,取药,药品管理等操作。并达到操作过程中的直观、方便、使用、安全等要求。此外,医院门诊信息管理系统还需要后台用户的管理功能,以及用户需求进行数据的添加、删除、修改等操作。为了方便医院门诊信息管理需要,我们设计制作了医院门诊信息管理系统提供。
该医院门诊信息管理系统可以应用在一个医院的局域网中,系统地、全面的进行门诊信息管理。支持病人的挂号管理,处方管理,收费管理,药品管理以及在各个模块中信息的增加、删除、修改、查询等,系统以其系统性、全面性、使用的安全性和稳定性以及应用的广泛性为特点,极大地减轻了医院工作人员的工作强度,提高了医院门诊信息管理工作的水平,下面章节将详细介绍本系统的设计过程。
1概述
1.1开发背景
近年来,信息产业发展迅猛,信息技术的发展形成了一系列的热点。这些热点既为医院信息化建设带来了许多的发展机遇,同时又提出了新的挑战。医院担负着保障人民生命健康,治病救人的艰巨任务,是我国医疗卫生事业的主要支柱。信息科学和计算机应用的发展,将极大的加快医院信息化建设的发展。
门诊部是医院的一个重要部门,是直接向广大患者提供医疗服务的主要窗口之一,门诊部的信息化建设工作,直接关系到整个医院的信息化建设工作。因此,作好门诊部信息化建设工作,对于规范门诊部的管理,建立更加方便患者就医的门诊工作流程,从而促进整个医院的信息化建设都具有极其重要的意义。我们认为门诊部信息化建设应达到的总体目标是:以医院信息化建设工程为依托,充分发挥现代计算机网络信息共享的优势,从而达到方便患者就诊,减轻医护人员工作强度,推动医院门诊管理水平提高的目的。
1.2开发意义
当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的原因。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了更好管理门诊信息而设计的。当前,医院作为病人就诊的地方,有许多信息需要处理和管理。现今,有很多门诊信息系统都是初步开始使用,甚至尚未使用计算机进行信息处理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于处方等很多信息都是用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。数据处理手工操作,工作量大,出错率高,出错后不易更改。基于这此问题,我认为有必要建立一个门诊信息管理系统,使门诊信息管理工作规范化,系统化,程序化,避免管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改情况。
1.3系统目标
医院门诊信息管理系统是用于管理医院门诊信息的重要工具,一个完善的医院门诊信息管理系统的功能主要包括以下几项:
挂号管理:包括挂号、挂号单处理。
处方管理:包括开处方、处方查询、处方管理。
收费查询:包括处方查询、收费单处理。
药品管理:包括收费单查询、录入药品信息、药品管理。
后台管理:主要用于添加各个板块的用户。
2 系统设计原理
2.1系统设计的基本思想
医院门诊信息管理系统主要是针对医院门诊的信息自动化管理而开发的,作为一个典型的信息管理系统,其系统开发任务主要包括数据库的设计与维护、客户端应用程序的开发两方面。对于前者要求建立起的数据库具有完整性和一致性,且具有一定的数据安全性,对于系统要求程序界面友好、功能完备等特点。经过详细的分析,选用MyEclipse 6.5作为前端开发工具,TomCat6.0为WEB服务器,以及SQL server2000为后台数据库来达到实现这个系统的目的。
2.2 SQL servser数据库简介
SQL Server 2000是一个关系数据库管理系统,它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了。Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本;Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。在本书中介绍的是Microsoft SQL Server 以后简称为SQL Server或MS SQL Server。
SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本。该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。
SQL Server 2000 的特性包括:
1)Internet 集成。SQL Server 2000 数据库引擎提供完整的XML 支持。它还具有构成最大的Web 站点的数据存储组件所需的可伸缩性、可用性和安全功能。SQL Server 2000 程序设计模型与 Windows DNA 构架集成,用以开发 Web 应用程序,并且SQL Server 2000 支持 English Query 和 Microsoft 搜索服务等功能,在Web 应用程序中包含了用户友好的查询和强大的搜索功能。
2)可伸缩性和可用性。同一个数据库引擎可以在不同的平台上使用,从运行Microsoft Windows 2000 数据中心版的大型多处理器服务器。SQL Server 2000 企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大 Web 站点所需的性能级别。
3)企业级数据库功能。SQL Server 2000 关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。SQL Server 2000 分布式查询使您得以引用来自不同数据源的数据,就好象这些数据是 SQL Server 2000 数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。复制同样使您得以维护多个数据复本,同时确保单独的数据复本保持同步。可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。
4)易于安装、部署和使用。 SQL Server 2000 中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用 SQL Server 的过程。SQL Server 2000 还支持基于标准的、与 Windows DNA 集成的程序设计模型,使 SQL Server 数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。这些功能使您得以快速交付 SQL Server 应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。
数据仓库。 SQL Server 2000 中包括析取和分析汇总数据以进行联机分析处理 (OLAP) 的工具。SQL Server 中还包括一些工具,可用来直观地设计数据库并通过 English Query 来分析数据。
SQL Server 2000共有4个版本,分别是个人版,标准版,企业版和开发版
SQL server 2008是微软出的SQL系列最新版本。
其主要特点如下:
(1)高性能设计,可充分利用WindowsNT的优势。
(2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。
(3)强壮的事务处理功能,采用各种方法保证数据的完整性。
(4)支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。 SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。
2.3 MyEclipse开发工具描述
2.3.1 MyEclipse简介
MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Struts、 JSF、 CSS、Javascript、 SQL、 Hibernate。
在结构上,MyEclipse的特征可以被分为7类:
1. JavaEE模型
2. WEB开发工具
3. EJB开发工具
4. 应用程序服务器的连接器
5. JavaEE项目部署服务
6. 数据库服务
7. MyEclipse整合帮助
对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。
简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse。
2.3.2MyEclipse的开发环境
myeclipse6.5 GA 是基于eclipse 3.3开发,要找STP All in one基于eclipse 3.3开发包。它支持Java 5 & Java 6 ,可运行在Windows (XP, Vista)、Linux、 Mac操作系统下。
2.3.3 MyEclipse的数据库的访问方法
在MyEclipse6.5中,我们有两种方法进行数据库的连接,一种是通过java语句直接写出类,对JDBC进行操作;一种是直接通过配置数据库连接池对数据库连接的类进行封装。本文将主要讨论在MyEclipse6.5中, 应用JDBC技术,对数据库进行操作。下面讨论应用JDBC访问数据库方法。
(1)用JDBC连接Oracle8/8i/9i数据库
先要在MyEclipse6.5添加相应的jar包,然后在连接数据库的类中写入如下语句:
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);
(2)用JDBC连接DB2数据库
先要在MyEclipse6.5添加相应的jar包,然后在连接数据库的类中写入如下语句:
Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
(3)用JDBC连接Sql Server7.0/2000数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
//mydb为数据库
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
(4)用JDBC连接MySQL数据库
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Stringurl="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" //myDB为数据库名
Connection conn= DriverManager.getConnection(url);
3 系统分析
3.1可行性分析
(1)经济可行性分析
开发需求较低,加上成熟的软硬件环境、目标系统并不是十分复杂和开发周期较短,人员经济支出有限。开发完成运行后,为使用者带来便利,为系统的进一步推广创造了条件,经济收益将远超过投资。从经济角度考虑,此系统开发可行。
(2)法律可行性分析
由于整个系统是自行开发,自行使用,所以系统本身不存在版权争议,符合国家各种政策法规。
(3)技术可行性分析
采用SQL server 2000作为数据库MyEclipse6.5作为开发工具TomCat 6.0作为服务器,采用MVC三层框架来进行开发。现在的MVC开发模式发展的已经很成熟,资料也很丰富,即使遇到问题也有很多资料,所以说从在技术上是可行的。
3.2需求分析
3.2.1功能需求
医院门诊管理系统是管理医院门诊信息的重要工具,医院门诊信息管理涉及挂号信息、处方信息、收费信息、药品信息等多种数据管理。从信息管理角度出发可将分为五类:挂号管理、处方管理、收费管理、药品管理和后台用户管理。
一个完善的医院门诊信息管理系统的任务主要包括以下几项:
挂号管理:包括病人挂号、挂号单处理。
处方管理:包括开处方、处方查询、处方管理。
收费管理:包括处方查询、收费单管理。
药品查询:包括收费单查询、录入药品信息、药品管理。
后台管理:主要是对各个模块的用户进行添加和删除。
安全退出:主要是删除系统中的用户登录记录。
3.2.2数据需求
(1)动态数据
输入数据:点击提交按钮时上传的数据;
查询时所输入的关键字;
点击增加、删除和修改时所上传的数据;
录入和修改时所上传的数据;
点击功能按钮时所上传的数据;
输出数据:查询关键字确定的数据库记录的子集;
挂号单、收费单、处方单、药品信息表等操作结果;
3.2.3系统数据流图
数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理元素,它只是描绘信息在软件中流动和被处理的情况。因为数据流图是系统逻辑功能的图形表示,即使不是专业的计算机人员也容易理解它,所以它是分析员和用户之间极好的通信工具。
如图3.1所示,数据流图的四种基本符号和具体描述如下:
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
图3.1 数据流图的基本符号
医院门诊管理系统的顶层数据流图3.2所示:
图3.2 顶层数据流图
医院门诊管理系统的一层数据流图如图3.3所示:
图3.3 一层数据流图
3.2.4数据字典
数据字典是所有与系统相关的数据元素的有组织的列表,并且包含了对这些数据元素的精确、严格的定义,从而使得用户和系统分析员都对输入、输出、存储的成分甚至中间计算结果有共同的理解。简而言之,数据字典是描述数据的信息的集合,是对系统中使用的所有数据元素的定义的集合。下面是对各数据存储的详细说明:
编号:D1 数据存储名称:病人挂号信息 简述:病人在医院门诊时挂号所产生的信息 组成:病人挂号信息=自增项id+挂号单编号+病人姓名+病人性别+病人年龄+所挂可是类别+所挂科室名+所要办理的业务 来源:挂号信息录入 去向:医生 |
编号:D2 数据存储名称:处方信息 简述:医生对病人进行开处方时所产生的信息 组成:处方信息=自增项id+处方单编号+病人姓名+病人性别+病人年龄+是否交费 来源:处方添加 去向:医院收费人员、药房管理人员 |
编号:D3 数据存储名称:收费信息 简述:病人在医院交费处交费所产生的信息 组成:收费信息=自增项id+收费单编号+收费日期+病人名+开处方的当事人+处方价钱+备注 来源:挂号信息录入 去向:医院收费人员、药房管理人员 |
编号:D4 数据存储名称:药品信息 简述:药房管理人员处理药品信息时所产生的信息 组成:药品信息=自增项id+药品单编号+药品名+药品类型+药品规格+生产企业+包装量+包装单位+单位价格+现有数量 来源:药品信息录入 去向:药房管理人员 |
编号:D5 数据存储名称:用户信息 简述:管理员添加用户信息时所产生的信息 组成:用户信息=自增项id+用户名+用户密码 来源:用户信息录入 去向:后台管理员 |
通过对数据字典的定义,我们就可以开始的程序和数据库,进行系统的设计了。
4 系统设计
首先根据系统功能分析设计出数据库,包括各个数据表和数据表关系图的详细结构。
实现功能模块时,采用先模块化,后集成的方式。即对系统各个功能模块分别独立设计和调式,在创建系统主窗体时再将各个功能模块通过主窗体的菜单系统集成到一起,最后进行系统整体设计调式。
在访问数据库时,采用功用数据模块存放数据库需要的对象。该模块在各个功能模块中被直接调用,避免对数据库的反复连接,并可减少代码编写,从而提高系统开发效率。
4.1总体设计
在设计医院门诊信息系统时:根据实际情况,进行模块化设计;由上可得出,医院门诊信息管理系统需要实现的功能模块有:
(1)详细模块设计
医院门诊信息管理系统 |
挂号管理 |
处方管理 |
收费管理 |
药品管理 |
挂号 |
挂号信息处理 |
开处方 |
处方信息查询 |
处方信息管理 |
处方查询及收费 |
收费单信息处理 |
收费查询及开药 |
录入药品信息 |
药品信息管理 |
后台管理 |
图4.1 “医院门诊信息管理系统”功能模块
4.2数据库设计
4.2.1概念结构设计
E-R图是一种信息模型图,体现了系统实体之间的关系。通过系统需求分析,了解系统的分解功能以及数据流程。根据这些实体及属性和实体之间的关系,可以得到系统E-R图
系统中所涉及的实体属性图如图4.2 图4.3 图4.4 图4.5 图4.6所示。
图4.2“病人”实体属性图
图4.3“医生”实体属性图
图4.4“收费人员”实体属性图
图4.5“药品管理人员”实体属性图
图4.6“管理员”实体属性图
下面是系统的E-R图,如图4.7所示:
图4.7系统E-R图
4.2.2逻辑结构设计
数据库逻辑结构设计是把概念模型(E-R图)转换为符合数据库管理系统的数据模型,就是把概念模型(E-R图)转换为关系模型。把系统的概念模型(E-R图)转换为关系模型可得如下的关系模式。
挂号表(自增项,挂号单编号,病人姓名,病人性别,病人年龄,所挂科室类别,所挂科室名,所要办理的业务),挂号单编号为此关系的码。
处方表(自增项,处方单编号,日期,病人姓名,病人性别,病人年龄,备注),处方单编号为此关系的码。
处方内容表(自增项,处方单编号,药品1编号,药品1数量,…),处方单编号为此关系的码。
收费表(自增项,收费单编号,日期,病人名,收费的当事人,处方价钱,备注),收费单编号为此表的码。
药品管理表(自增项,取药单编号,取药时间,取药人姓名,开药人姓名,备注),取药单标号为此表的码。
药品信息表(自增项,药品单编号,药品名,药品类型,药品规格,生产企业,包装量,包装单位,单位价格,现有数量),药品单编号为此表的码。
4.2.3物理结构设计
在医院门诊管理系统中数据库的名称设置为hospital 数据库中的表名称和字符标识,如下所示:
表4.1挂号表(guahao)
序号 |
字段名 |
描述 |
数据类型 |
数据长度 |
主键 |
可否为空 |
1 |
G_id |
自增项 |
int |
|
|
n |
2 |
G_number |
编号 |
archar |
30 |
√ |
n |
3 |
G_name |
姓名 |
varchar |
20 |
|
Y |
4 |
G_age |
年龄 |
varchar |
4 |
|
Y |
5 |
G_sex |
性别 |
Varchar |
4 |
|
Y |
6 |
G_kenei |
科室类别 |
Varchar |
40 |
|
Y |
7 |
G_ke |
科室名 |
varchar |
40 |
|
Y |
8 |
G_nei |
办理事务 |
Varchar |
40 |
|
Y |
.表4.2处方表(chufang)
序号 |
字段 |
描述 |
数据类型 |
数据长度 |
主键 |
可否为空 |
1 |
C_id |
自增项 |
int |
|
|
n |
2 |
C_number |
编号 |
varchar |
20 |
√ |
n |
3 |
C_time |
日期 |
varchar |
20 |
|
Y |
4 |
C_name |
病人名 |
varchar |
20 |
|
Y |
5 |
C_sex |
病人性别 |
varchar |
10 |
|
Y |
6 |
C_age |
病人年龄 |
varchar |
10 |
|
Y |
7 |
C_cost |
是否交费 |
varchar |
10 |
|
Y |
表4.3处方内容表(C_drug)
序号 |
字段 |
描述 |
类型 |
数据长度 |
主键 |
可否为空 |
1 |
D_id |
自增项 |
int |
|
|
N |
2 |
D_number |
处方单编号 |
Varchar |
20 |
√ |
N |
4 |
DY_name1 |
药品1名称 |
Varchar |
20 |
|
y |
5 |
DY_number1 |
药品1数量 |
Float |
|
|
y |
6 |
DY_name2 |
药品2名称 |
Varchar |
20 |
|
y |
7 |
DY_number2 |
药品2数量 |
Float |
|
|
Y |
表4.4收费表:(shoufei)
序号 |
字段 |
描述 |
数据类型 |
长度 |
主键 |
可否为空 |