医院信息管理系统开发文档(共95页).doc
精选优质文档-倾情为你奉上 学生实训报告 (医院信息管理系统) 20112012学年 第 一 学期实 习 类别开发实训专 业软件开发与测试指 导 教师王鹏学 院软件学院小组成员徐 灿 魏至锐 李 渊 周海南 2011年 12 月 专心-专注-专业目录 绪论 伴随着社会经济的迅速发展,人们的生活水平提高的同时,也带来了许多负面 影响,各种疾病的产生并入侵人体,严重伤害人们的身心健康,医院担负着保卫人们健康的负担也逐步加大,单单靠传统的手工作业,不仅工作繁琐,而且也极易出错,给医院造成不必要的损失的同时,也对病人带来许多负面作用。随着计算机的普及和性能的不断提高,计算机已经涉足到各个行业,人们开始越来越多地利用计算机解决实际问题,于是可使用计算机进行医院信息管理,该系统已经成了现 代化的 医院在运营 过程中必不可少的基础设施与技术支撑环境。医院管理系统,是利用计算机和网络通信设备,为医院所属的各 个部门 提供病人诊 疗和行政管理信息的收集、存储、处理提取和数据交换的能力。医院管理信息系统实现了用计算机对医院病人 进行看 病和药品流 通的全过程管理进行动态监测,那些传统上全靠手工操作,工作量大、效率低、易出错的大量数据完全可以用计算机代替处理,大大减轻了管理人员的工作负担,同时又可向病人提供完整的数据,使病人提供方面和快捷。本系统作为医院管理系统的一部分,与住院管理系统,收费系统,病历管理系统有着密切的联系,设计时必须考虑与这些模块的兼容性。基于以上情形,我决定开发该软件。这是一款专门用于医院管理设计的软件。它具有良好的用户界面、风格独特的设计。 开发计划和任务分工1>、工作任务分解第一阶段:文档设计(2011-10-252011-11-8) 1、需求分析、数据库设计文档(2011-10-252011-11-1) 2、详细设计文档(2011-11-22011-11-8)备注: 人员分配:需求分析由魏至锐负责; 详细文档设计由徐灿负责; 概要设计文档由周海南和李渊负责。第二阶段:代码设计(2011-11-92011-11-22) 1、前台界面设计(2011-11-92011-11-14) 2、后台功能代码设计(2011-11-152011-11-22)备注:人员分配:护士管理模块,医生管理块由徐灿负责; 管理员模块由魏志锐负责; 前台界面设计模块由周海南李渊负责。第三阶段:软件测试(2011-11-232011-11-29) 备注: 人员分配:软件测试由徐灿负责。 2>甘特图第一章 系统可行性分析 1.1技术可行性 经过周密的调查与研究,技术、操作上还是社会方面开发该医院管理信息系统都是十分可行的。对现有技术进行评价,以明确能否利用现有技术进行系统开发及系统实施。计算机网络技术的发展和计算机硬件性价比的不断提升,使计算机全面应用于医院管理的各个环节成为可能。B/S开发模式在国内各行各业的信息管理系统开发中已经被广泛采用,实践证明这些技术都非常适合医院管理信息系统的开发。对开发条件进行评价,以J2EE开发的医院信息管理系统的开发语言是Java,也就是在JDK的环境下进行开发。J2EE是一个开源框架,没有系统限制,我们用最熟悉的Windows7来安装JDK1.6版本进行开发系统。随着网络技术的不断发展,单纯的静态页面已经不能满足发展的需要,因为静态页面是用单纯的HTML语言组成的,它没有交互性。因此,为了满足实际的发展需要,出现了以“PHP”,”ASP”,”JSP”,”SHTML”等为后缀的网页文件,这些都是采用动态网页技术制作出来的。本系统采用Java语言开发,故Web容器的选择上使用JSP。服务器利用Tomcat6.0.X来加载Web容器。本医院信息管理系统是基于J2EE技术开发,数据库采用SQL Server 2008进行数据的连接查询,使用的是Java语言编写程序体。J2EE为编写系统提供了很多的平台和框架等技术支持。利用J2EE的开源框架,如structs来编写整个系统的框架,我们不必关心框架如何运行。我们只关心依附于框架内的各个功能模块是如何工作,如何来连接数据进行查询修改等。 在技术上该系统用的是完全面向对象的程序设计语言java,因而对于代码的维护是很方便的,系统采用生命周期法把一个复杂的系统开发工作分解成一些相对独立的,可以分阶段实施并且便于管理的步骤,使将来的扩展更为容易,不须对系统的软硬件作大的改动,即可满足系统扩展的要求。操作可行性方面,在考虑到新系统将来投入使用后的管理维护人员水平及工作的方便简洁程度。新开发的系统的界面和WINDOWS界面一样直观,从而使用户使用起来十分的方便,就像在WINDOWS操作窗口中操作一样。用户只需要告诉计算机做什么,而不用考虑怎么去做,新系统会引导用户一步一步去完成相应的操作。并且系统的安全可靠性比较好,用户不需要担心系统会操作出错。用户只需要阅读相应的系统说明书就可以进行使用、维护,在短时间内熟练使用系统工作,而不用花费大量的时间学习系统的源程序,原理,操作方法。 1.2环境可行性 在运行方面,本系统采用WINDOWS 7/xp,它具有友好的窗口界面,操作简方便,易于用户掌握,管理方便,安全性能好,价格低廉。在可扩充性方面,系统采用生命周期法把一个复杂的系统开发工作分解成一些相对独立的,可以分阶段实施并且便于管理的步骤,使系统将来的扩充更为容易,不须对系统的软硬件作大的改动,即可满足系统扩充的要求。系统在检修维护方面采用面向对象的程序设计语言java,它相较于C+等面向对象的语言,更易学习,这样有利于医院工作人员对系统的日常维护。1.3 经济可行性在经济上,本系统只是对门诊,药房,住院部进行设计,这些部分都是医院必不可少的部分,不存在让中小型医院花冤枉钱的问题,与市面上出售的医院管理系统相比,更适合中小型医院使用。除此之外,在可扩充性方面,系统采用生命周期法把一个复杂的系统开发工作分解成一些相对独立的部分,可以分阶段实施,为以后的扩充提供方便,随着医院规模的扩大,可以扩充其它的功能,而不须对系统的软硬件作大的改动,从而满足中小型医院扩建的要求。采用本系统后,医院不但可以减少医院工作人员的工作量,减少工作人员数量,还可以提高工作效率,减少病人等待时间,从而更有利于医院的发展和以后的竞争。第二章 系统需求分析2.1 医院信息系统社会背景随着社会的发展,人们对健康越来越关注,医院的业务不断增长,处理越来越复杂,简单的人工经营管理,已无法满足医院的需要, 成为医院发展的瓶颈,人们对医疗服务的要求也越来越高。传统的手工操作模式,病人帐目繁杂,病人查帐困难, 病区和药房的药品浪费现象严重且无法追踪,人工传送各种记帐单容易漏、错帐,人工划价收费差错难以避免,因此,如何提高服务水平、提高工作效率,成为迫待解决的问题。医院管理信息化不仅能提高医务人员的工作效率和医疗水平,而且能提高医院的服务质量和管理水平。因此,医院对管理信息系统有着强烈的需求1。美国著名教授Morris.Collen于1988年曾著文为医院信息系统(HIS)下了如下定义:利用电子计算机和通讯设备,为医院所属各部门提供病人诊疗信息和行政管理信息的收集、存储、处理、提取和数据医交换的能力,并满足所有授权用户的功能需求。开发医院管理信息系统(HIS)的目标就是立足医院应用实际,着眼院未来发展,以强化医院管理,提高医疗质量,方便患者就医和查询,提高医院的服务效率和服务质量,设计一套符合国家功能规范要求,安全稳定,操作简便的医院信息系统,为医院提供一套全方位的解决方案。计算机性能不断提高,价格不断下降,计算机已在医院医疗、教学、科研、管理等各个方面得到越来越广泛的应用。计算机化的医院信息系统已成为现代化医院运营必不可少的基础设施与技术支撑环境。就好象一个现代化医院的成功运行离不开功能完整、美观舒适的建筑物,技术娴熟的医护人员,性能齐全、高精尖的医疗设备一样,它也离不开计算机化的医院信息系统。 在高科技的信息社会里,手工处理庞大的医院信息需要高强度的劳动而且工作效率低下,医师护士和管理人员的大量时间都消耗在事务性工作上,在经济管理上也因而存在漏、跑、错费现象;医院物资管理由于信息不准确,家底不明,积压浪费,以致“物不能尽其用”。开发HMIS是解决上述问题的有效途径。HMIS系统的有效运行,将提高医院各项工作的效率和质量,促进医学科研、教学;减轻各类事务性工作的劳动强度,使他们腾出更多的精力和时间来服务于病人;改善经营管理,堵塞漏洞,保证病人和医院的经济利益;为医院创造经济效益。2.2用户工作流程病人来看病时,用户要登记病人个人信息,病人买药时登记药时,用户要对录药品的购买情况进行记录,并打印取药单据;当病人出院时办理离院手续,用户要查询病人的医药费情况,并结算,将病房设为空等。2.3 用户业务需求(1) 该系统需要要对患者的基本信息进行录入(性别,年龄,住址,病史等)。(2) 该系统需要对有处方划价和收费统计等功能。(3) 该系统需要具有对药品的采购、发出与库存量进行统计。(4) 该系统需要对住院患者的个人信息,医嘱信息,用药信息,费用信息,费用预警, 费用清单,费用汇总等功能。(5) 该系统需要有对指定的药品的采购,消耗,库存,挂号收费,门诊收费以及住院收费方面具有查询和统计的功能。 2.4 系统E-R图 2.4.1 实体属性图 图2.1 病历表 图2.2 医生表 图2.3医院表 图2.4 病人表 图2.5 病房表 图2.6 科室表 图2.7 药物表 图2.8 账目表 图2.9病房表2.4.2实体关系图 图2.102.5数据流图 2.5.1医院管理系统顶层 图2.11顶层图2.5.2第一层图2.122.5.3第二层 图2.13 图2.14取药数据流图2.15 取药2.6用例图 2.6.1第一层用例图 图2.16第一层用例图 2.6.2第二层用例图(1)门诊子系统用例图 图2.17门诊挂号用例图(2)药房管理用例图 图2.18取药用例图(3)住院管理用例图 图2.19住院用例图(4)住院护理用例图 图2.20住院用例图(5)药房管理用例图 图2.21财务用例图(6)决策查询用例图 图2.22药房用例图(7)财务管理用例图 图2.23财务用例图 2.6.3三层用例图(1)挂号管理用例图 图2.24 挂号用例图(2)收费退费管理用例图 图2.25收费用例图(3)生成处方用例图 图2.26 财务用例图(4)病员管理用例图 图2.27 病房用例图(5)住院医护用例图 图2.28 看病用例图第三章 系统概要设计3.1总体结构图 图3.1系统结构功能图3.2 设计思想(1)系统分成几个相对独立的模块,但这些模块都进行集中式管理。(2)分层的模块化程序设计思想,整个系统采用模块化结构设计。作为应用程序有较强的可操作性和扩展性。(3)合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。3.3 设计原则为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了如下原则:(1)合法性原则:依据产品核算系统的工作规定以及要求,参照核算实际的工作情况,进行诸如产品进货、销售等工作。(2)实用性原则:适合产品信息管理工作的实际需求,并能够处理一些特殊情况的要求,此外,尽可能预留空间,以便扩充功能。(3)准确性原则:对输入的相关资料建立检错机制,及时报错,使用户能够及时准确的输入合法资料(如:类型匹配,长度不超限等)。(3)易操作原则:要求设计的系统功能齐全,界面友好,操作方便,必要的地方进行提示。(5)源程序可读性原则:为了便于其他设计,维护人员读懂代码或以后的代码修改,软件升级维护,即可能做好代码注释工作。(6)优化原则:为了达到优化的目的,合理的运用窗口,菜单,对象等的继承,自定义用户对象,事件,函数,减少不必要的重复性代码,使程序简介明了,也方便了将来的维护。(7)安全性原则:可以为该系统的用户设置用户权限。 3.4 系统数据库设计 3.4.1 关系模式转换 医院(医院编号,医院名称,病房号,档案号,账目号,药物编号) 病床(床位号,病房号,床位类型,床位状态) 病人(病人号,科室号,科室,姓名,性别,年龄,地址,所患病症,是否结束) 档案(档案号,病历号,医生编号) 挂号(编号,姓名,年龄,科室,住址,年龄) 医生(医生编号,姓名,性别,年龄,地址,联系方式,所在科系,登录名,登录密码, 是否激活,科室编号) 护士(编号,员工号,姓名,性别,职称号,职称,登录名,登录密码) 账目(账目号,进账,出账) 药物(药物编号,药物名,数量,入库时间,出库时间) 诊断(编号,科室,备注,医生号,病人号) 住院(病人号,病床号,住院天数,编号) 手术室(手术室编号,是否占用,手术编号,类型,地址,备注,护士列表) 手术(手术编号,手术室编号,开始时间,结束时间,费用,病人号,主治医生号, 生编号,科室,是否结束) 护士_手术室(手术编号,护士编号,编号) 护士_病床(病床号,护士号) 收据(编号,收款人,收款编号,收款日期,医生类型,费用,病人姓名,病人编号, 是否结束) 手术日程(手术编号,开始时间,结束时间,编号) 职称(职称名,职称编号) 3.4.2 数据表1、 挂号单数据表(Register)该表主要是记录患者医院挂号的信息,该信息的记录可以通过日期来搜索统计当时的挂号量,也即患者人数。该表的数据由操作员进行页面的输入。字段定义如表4-6-1所示:表4-6-1挂号单数据表(GuaHao)属性名存储代码类型长度备注挂号号idint8挂号单的序列号挂号类别mcNameString20病人所看医科挂号人姓名nameString20病人姓名住址addressString20病人住址挂号人性别sexString5性别病人号patientNoString10病人号2、 护士数据表(docPrescription)该表记录的是护士相关的信,姓名,性别,年龄,职称,登录名,登录密码,是否激活。字段定义如表所示:表4-6-2护士数据表(prescription)属性名存储代码类型长度备注护士idInt 8护士编号性别sexString 20护士性别年龄ageint8护士年龄职称postString 100护士职称是否激活isActiveBoolean1'0'为否,'1'为是登录名loginNameString10护士登录名登录密码loginPasswordString10护士登录密码职称号postIdString10护士职称号姓名nameString10护士姓名3、 医生数据表(doctor)该表记录的是各个科室的医师在职时间。字段定义如表所示:表4-6-3医生数据表(Mzdoc)属性名存储代码类型长度备注医师号doctorIdstring10门诊医师序列号科室号mcId String 10医师所属科室名科室名mcNameString 10医生所在科室姓名nameString10医生姓名性别sexString5医生性别年龄ageint5医生年龄是否激活isActiveint2医生是否激活登录名loginNameString10医生登录名登录密码loginpasswordString10医生登录密码员工编号staffNoString10医生员工号编号id int10医生编号4、 手术室数据表(presciption)该表记录的是手术室相关的信息,手术室编号,相关的护士,占用情况等该表的字段定义如表所示:表4-6-4手术室数据表(Yaostore)属性名存储代码类型长度备注手术室编号operatingRoomIdInt 8手术室编号护士列表nurseListString 20护士列表编号id String 20编号备注infoString 40备注地址address String8地址类型typeString20类型手术编号orNoString 20手术编号是否占用isUseableString 20是否占用5、 病床数据表(Drugorder) 该表包括字段有:字段定义如表所示:表4-6-5病床数据表(Drugorder) 属性名存储代码类型长度备注病床号bedNoint8订单号编号idint8药品的编号科室mcNameString20药品单价是否占用isUseableInt 8购买药品数量6、 手术数据表(Takedruginfor)该表记录手术情况。其字段定义如表:表4-6-6手术数据表(Takedruginfor)属性名存储代码类型长度备注编号Tdi_noInt 8药品请领单序号病人编号Tdi_brnoint8病人编号领用单位Tdi_LydwString20领用药品单位名称药品编号Tdi_drugnoint8领用药品编号领药量Tdi_numint8药品编号单价tdi_singlepricefloat 20单价 7、 诊断数据表(Yizhu)该表记录的是患者的医嘱信息。包括的字段:表号、医师姓名、病人编号、医嘱内容。其中表号是该表的关键字。定义如表4-6-7所示:表4-6-7医嘱数据表(Yizhu) 属性名存储代码类型长度备注诊断单序号idInt8病情诊断单序列号主治医师姓名doctorIdString10开出医嘱医师编号病人编号patientNoInt8病人编号医嘱内容infoString50医嘱内容8、 住院病人数据表(Zhuyuanbr)该表记录的是病人住院时的各种信息,包括住院时间,出院时间,床位信息等。个字段定义如表所示:表4-6-8住院病人数据表(Zhuyuanbr)属性名存储代码类型长度备注病人编号patientNoint8病人编号床位号sickbedNoInt8床位号入院科别mcNameSrting8入院科别入院时间starttimeDate10入院时间是否出院isFinishedboolean1'1'出院,'0'没出院9、 床位数据表(Chuangwei)该表记录的是住院患者所在的床位号,可以通过该表查出患者的住院费用,具体位置信息。其字段定义如表所示:表4-6-9床位数据表(Chuangwei)属性名存储代码类型长度备注床号sickbedNoInt8床位序号所属病区mcNamestring10 本床位所属病区是否空床isuseableBool1“是”、“否”床位租金rentfloat8床位租金费用10、 病人信息数据表(Patient)该表记录的是患者挂号是所填写的信息。其字段定义如表4-6-10所示:表4-6-10病人信息数据表(Brinfor)属性名存储代码类型长度备注病人编号patientNoint8病人编号姓名namestring20姓名性别sexstring4性别出生日期birthdayint3年龄科室mcNamestring10科室地址addressstring20地址是否结束isfinishedint2是否结束备注infoString50备注所挂科室号mcIdint10科室号11、 病人费用信息数据表(Brdruginfor)该表记录的是患者住院及用药的费用信息。字段定义如图所示:表4-6-11病人费用信息数据表(Brdruginfor)属性名存储代码类型长度备注表号idInt 8表号病人编号patientNoint8病人编号账单总额pay float20账单总额费用条目itemsString20费用条目收款人payeeString10收款人收款人编号payeeIDString10收款人编号收款日期pdateDate10收款日期是否结束isFinishedint5是否结束病人姓名patientNameString10病人姓名12、 职称表数据(Empinfor)该表记录的是医院各个部门的职员信息。可以通过这些信息来检查各个职员对系统操作的权限。字段定义如表所示:表4-6-12职称表数据字典(Empinfor)属性名存储代码类型长度备注职称编号postIdstring10职称编号职称名poststring10职称名 3.4.3 数据表关系图 图3.2 数据表关系图3.4.4 连接数据的方式 采用java数据库本地驱动连接方式,主要步骤如下:采用Class.ForName()方法加载本地对应的sql.jar包驱动,再利用DriverManager加载各种不同驱动程序(Driver),并根据不同的请求,向调用者返回相应的数据库连接(Connection)。 Driver:驱动程序,会将自身加载到DriverManager中去,并处理相应的请求并返回相应的数据库连接(Connection)。 Connection:数据库连接,负责与进行数据库间通包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)。 CallableStatement:用以调用数据库中的。 SQLException:代表在数据库连讯,执行以及事务处理都是在某个特定Connection环境中进行的。可以产生用以执行SQL的Statement。 Statement:用以执行SQL查询和更新(针对静态SQL语句和单次执行)。 PreparedStatement:用以执行接的建立和关闭和SQL语句的执行过程中发生了例外情况(即错误),主要方式如下:JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java应用程序与各种不同数据库之间进行对话的方法。而 JDBC 正是作为此种用途的机制。JDBC 扩展了 Java 的功能。例如,用 Java 和 JDBC API 可以发布含有 applet 的网页,而该 applet 使用的信息可能来自远程数据库。企业也可以用 JDBC 通过 Intranet 将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有 Windows、 Macintosh 和UNIX 等各种不同的操作系统)。随着越来越多的程序员开始使用Java 编程语言,对从 Java 中便捷地访问数据库的要求也在日益增加。MIS 管理员们都喜欢 Java 和 JDBC 的结合,因为它使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务, Java 和JDBC 可为外部客户提供获取信息更新的更好方法。3.5画面迁移图 图3.3系统状态图 3.6系统时序图 图3.4医院系统管理者角色时序图图3.5病人角色时序图图3.6医生角色时序图 图3.7护士时序图 第四章 系统详细设计4.1 总体类图(画出实体类图及其关系) 图4-1总体类图 4.2 各个类类图 图4-2 医生类 图4-3护士类 图4-4病人类 图4-5 病房类 图4-6手术室类 图4-7 病床类 图4-8 用户类 图4-9 SQLConnection类图 图4-10 SQLServerDBManager类 图4-11 ReceiptDAO类 图4-12用户类4.2.1属性列表 表4-1医生类属性 属性名 具体表示 类型 备注 姓名 name String 医生姓名 性别 sex Stri