医院信息系统中经济管理分系统的设计与实现.doc
医院信息系统中经济管理分系统的设计与实现The Design and Realization of Economic Management of HIS目 录摘 要IAbstractII引 言11 绪论31.1 医院信息系统的概述31.2 医院信息系统的发展情况和现状31.2.1 国外的发展情况和现状31.2.2 国内的发展情况和现状41.3 医院信息化的必要性41.4 本文的研究方向和主要工作52 相关知识介绍72.1 PowerBuilder数据库开发语言72.2 C/S体系结构72.3 数据库开发技术92.3.1 数据管理技术的发展92.3.2 SQL Server 2000大型数据库102.3.3 结构化查询语句SQL112.3.4 关系数据库设计122.4 软件工程方法132.4.1 软件概念132.4.2 软件开发周期142.4.3 面向对象的开发思想153 医院信息系统设计方案概述173.1 设计原则和目标173.1.1 设计原则173.1.2 设计目标183.2 设计模块及结构183.3 硬件环境分析与选择194 医院信息系统中经济管理部分的设计方案204.1 经济管理部分概述204.2 经济管理部分功能设计204.2.1 门诊挂号收费管理子系统功能设计214.2.2 住院收费管理子系统功能设计224.3 经济管理部分数据库设计234.3.1 数据库设计原则234.3.2 SQL Server 2000关系数据库的约束244.3.3 关系数据库的规范化设计254.3.4 经济管理部分数据表格的设计265 医院信息系统经济管理部分的具体实现275.1 门诊挂号收费管理子系统的实现275.1.1 系统的需求分析275.1.2 系统数据库分析和设计285.1.3 系统功能流程305.1.4 系统主窗口组成315.1.5 系统菜单组成315.1.6 系统功能介绍315.1.7 系统功能使用335.2 住院收费管理子系统的实现415.2.1 系统的需求分析415.2.2 系统数据库分析和设计425.2.3 系统功能流程435.2.4 系统主窗口组成435.2.5 系统菜单组成445.2.6 系统功能介绍445.2.7 系统功能使用456 医院信息系统的测试506.1 测试的相关知识506.1.1 测试的目的506.1.2 测试的步骤506.1.3 测试的方法516.1.4 测试用例开发516.2 医院信息系统的测试过程526.2.1 参考文档526.2.2 约定526.2.3 测试过程536.2.4 测试结案54结 论56参 考 文 献57攻读硕士学位期间发表学术论文情况59致 谢60大连理工大学学位论文版权使用授权书61- III -引 言在经济全球化、信息社会化的进程中,医院与其他行业相比(如电信、银行、证券、电力、商业等)己经大大滞后。近十年来,医院信息化建设在国家信息高速公路和信息化建设的热潮中迅速升温。医院信息化建设如何处理、医院局部不合社会时宜的现状、保证发展方向的合理性,是医院决策者和信息化建设管理人员需要思考的重要问题。目前国内很多医院己经选择医院信息系统,但是医院信息系统在我国的发展时间还比较短,还需要继续研究才能达到国际水平。医院信息系统中的经济管理部分随着卫生事业的发展,数据结构及处理日益复杂。它不仅要求准确无误地保留有关经济数据,而且要求迅速可靠地采用各种数据信息进行综合分析和决策。计算机所具有的数字化技术和交互式的处理能力,使其能对数据庞大、程序繁杂的各类信息进行综合处理,从而为医院经济管理的运行提供决策依据。以前医院经济管理中存在的问题主要有以下几点:(1) 医院仍然沿用计划经济体制下的机构设置和人员管理模式,在这种条件下,财务管理人员素质不高,地位不高,参与医院经济管理决策的意识不强,医院管理者无法准确及时获得经营过程中的经济信息,造成医院经营管理的滞后和被动。(2) 医院管理者缺乏有效的经济管理模式,缺少科学、准确的经济与成本信息,导致盲目决策,有些医院内部控制能力薄弱,盲目扩大经营规模,提高负债比例,造成卫生资源利用率不高,资源配置不合理。(3) 医院绩效考核与分配制度设计不当,片面追求业务收入增长而忽略效益的提高。目前医院大多以科室收支结余或单项收入作为奖金分配或业务提成的基础,这种分配制度刺激了医院片面追求业务收入的增长而忽略了伴随着这种增长产生的医疗成本的提高,由此医院在经营过程中盲目引进医疗设备,开展过度医疗服务,这些虽然可以带来医疗业务收入的增长,但并不一定使医院整体效益提高。(4) 医院缺乏完整的成本核算与管理方法。目前,医院普遍开展的科室成本核算实质上是对医疗业务活动中的收支核算,不能准确、全面反映医院的成本状况和经营成果。针对医院经济管理中存在的这些问题,结合计算机技术的应用和发展,本文开发了医院信息系统中经济管理分系统,用以来解决现存的问题。(1) 优化工作流程,提高工作效率使科学的管理方法与先进的技术手段相结合,对医院原有的管理模式和工作流程进行了重大的改革和重组,由过去的经验型管理向科学型管理方式转换,彻底废弃了原有的传统和原始手工作业方式,加速了医院内部的信息流动和传递,提高了卫生和经济信息资源的共享和利用,减轻了医务人员和管理人员的劳动强度,提高了工作效率和工作质量,使医院管理向正规化、现代化、科学化方向发展。(2) 加强过程控制,提高了医疗护理质量医疗活动中产生的各种医疗、护理、经费、物资等信息具有很强的动态性、连续性和实时性,原始的人工管理方法很难从环节管理机制上加以控制。通过应用信息系统,管理人员可随时从终端上很方便地掌握全院的医疗动态信息,及时发现医疗护理过程中各环节存在的问题,针对发生的问题和医疗市场的变化,及时调整管理措施和经营策略,将事后管理变成事前预测或事中监督管理,克服了经验型管理中的盲目性和滞后性,使医院始终处在最佳的管理和经营状态。(3) 减少医疗经费流失,提高经济效益具有规范的工作流程和严格的工作制度,加强了挂号就诊收费制度,严格按流程先挂号后交费,然后才能进行各种检查处置和住院治疗,杜绝了医疗活动中间环节造成的经费流失。住院患者设置了催补预交金限度,确保了在院患者不欠费,解决了过去住院欠费的老大难问题。(4) 辅助决策分析,促进了管理水平的提高可以随时查询多种医疗指标,还可以在网上查询各种信息,医疗管理部门可以动态地掌握医疗工作的变化情况。成本核算提供了方便快捷的效益监督手段,经管部门可随时通过网络了解科室收支情况,及时掌握和分析科室消耗和收益情况。从小到1块纱布的消耗,大到1台设备的收入和消耗均可及时为成本核算提供详细可靠的依据,不仅为经管部门提供了一本明白帐,也大大提高了医院的管理水平。(5) 提高了医院信誉,增强了竞争能力为就诊患者提供方便、快捷、实时的药品检查、收费价格和住院费用自动查询,不仅节约了患者的看病时间,维护了患者的权益,也提高了医院收费的透明度,增强了医院的信誉知名度和竞争力,这种良好形象的无形资产可帮助医院赢得社会和患者的信任。1 绪论1.1 医院信息系统的概述伴随着信息技术的高速发展,计算机管理与网络应用已渗透到社会生活的各个领域,它的每一步发展与变革都直接导致了社会各部门的经营管理模式的改变。为达到管理上的先进性、准确性和实时性,社会各部门已逐步实现了管理的计算机化。在这一特定的社会环境和技术条件下,医院的财务与信息管理也必将由手工转向计算机化和网络化,由此形成了医院信息系统(HIS)这一新兴领域。医院信息系统在国际学术界已被公认为是新兴的医学信息学(Medical Informatics)的重要分支。美国该领域的著名教授Morris.Collen在1988年曾著文为医院信息系统下了这样的定义:HIS就是利用计算机和网络通信设备,以患者就医流程为线索,实现患者从挂号、门诊、药局取药到入院登记、医生诊断、护士护理等全面的计算机管理,为医院及其所属部门提供医疗信息、财务核算分析、行政管理信息和决策分析以及统计信息的收集、存储、处理、提取和通讯,并满足所有授权用户对信息的各种功能需求1。1.2 医院信息系统的发展情况和现状1.2.1 国外的发展情况和现状在国外,医院信息系统起步较早。60年代初,美国便开始了HIS的研究,著名的麻省总医院(MGH)开发的COSTAR系统是60年代初开始并发展到今天成为大规模的临床病人信息系统2。70年代,随着计算机技术的发展,HIS进入快速发展时期,美日欧各国的医院,特别是大医院及医学中心纷纷开发HIS,成为医药信息学形成和发展的基础3。欧洲的HIS发展比美国稍晚,大约是70年代中期和80年代开始的。欧洲HIS的特点是实现了一些区域信息系统,如丹麦的Red System,管理76所医院和诊所,法国第八医疗保健中心实现了能管理三所大医院和三所医药学院的一体化信息系统。发达国家医院信息系统的开发实现至今已有40多年的历史,已经取得了长足的进步4,根据国外医疗系统的信息化水平划分,医院信息化发展要经历三个阶段:第一个阶段,集中在开发医院行政管理的功能上;第二个阶段,在继续完成和实现医院管理信息的计算机化的同时,开发者的努力已进入医疗信息的处理领域;最后一个阶段至今,研究者又把重点放在了病人床边系统、医学影像处理、病人计算机化病案(电子病历)、区域性医疗网络等方面。可以说,医院信息系统正在经历着分散化、智能化、广域化和集成化的改造过程。1.2.2 国内的发展情况和现状计算机70年代末期进入了我国医疗行业,当时以IBM的M340小型机为主,只有少数几家大型的部属综合医院和教学医院拥有,如北京的协和医院、北京肿瘤医院等,主要用于科研和教学,还没有应用于医院的管理。80年代初期,随着苹果PC机的出现和BASIC语言的普及,一些医院开始开发一些小型的管理软件,如工资软件等。80年代中期,随着XT286的出现和国产化,以及DBASEIII和UNIX网络操作系统的出现,一些医院开始建立小型的局域网络,并开发出基于部门管理的小型网络管理系统,如住院管理、药房管理等5。二十世纪90年代初期,我国关于医院综合信息系统的研究项目正式起步,经过近10年努力,已有多家公司的HIS产品面世,各家公司提供的HIS产品,从总体设计上看,主要有两种模式:以财务核算为中心的模式和以病人为中心的模式。早期的HIS产品多采用前一种模式,近期的HIS产品基本上采用后一种模式。不管采用哪一种模式,本质上都是属于核算型的事务处理系统,是对人工处理流程的模仿或复制,在医院业务的各个环节上,都配有相应的处理程序。但是,现有的HIS产品,在医院资源的综合管理、优化使用、提高医院医疗质量、社会经济效益和竞争能力方面,基本上是没有涉及或涉及甚少。1.3 医院信息化的必要性我们大家应该都经历过去医院看病就医的情况。在过去医院以手工操作或半手工半微机为主要管理手段时,可能最让病人头痛的就是排队等待,尤其在一些高峰时间,挂号要等,就诊要等,交款也要等。医院工作宗旨是以病人为上帝,一切为病人着想,一切为病人服务,然而,病人很难享受到很舒服的待遇。病人们要在忍受疾病折磨的同时,奔波往返于门诊大厅、诊室、检查/治疗科室、药房,排队等待几个小时甚至大半天也不足为奇,疲惫的诊疗结束后,还需要耐心地排队划价、交款、检查、治疗、取药,几乎每个过程都要等,经常是等待的时间远远大于就诊时间。如遇缺药或设备故障等原因还要往返于门诊大厅与相应科室多次,许多患者怨声载道,有的甚至忍无可忍,争吵现象时有发生,影响了医院正常的医疗秩序,也在一定程度上损害了医院的形象。对于住院管理,存在的问题就更为严重。住院病人,一开始就要交几千元甚至上万元的住院费用,但是有些病人还是会遇到这样的情况,住院费用不够,医院通知要补交住院费,病人并不知道也无从知道花了多少钱,钱是怎么就花光了,即使是在结算出院时,你的住院费具体花在何处,院方有无差错也是不得而知,若想查找困难重重。另外,病案、临床检验、病理检查等许多宝贵的数据资料的检索十分费事甚至难以实现;不能对这些资料进行深入的统计分析,不能充分为医学科研利用;在经济管理上也存在漏、跑、错收费现象;医院物资管理由于信息不准,家底不明,积压浪费,以致“物不能尽其用” 6。以上种种,只是医院非信息化管理的几个典型弊端,无论从方便患者角度出发,还是从院方的科学管理考虑,医院信息化建设都无法回避地摆在每家医院的决策者面前,信息化作为一个战略问题,一直受到中国高层领导的关注和重视。1.4 本文的研究方向和主要工作由于医院收费项目的复杂、价格的昂贵和封闭性,加上手工管理的人为性和不确定性,导致其账目不清、医院管理屡屡受到病人的质疑。各大医院与病人之间矛盾重重、纠纷不断。为此,国家卫生部曾于2000年8月专门发布过住院病人的费用必须做到一日一清的通知,显然以手工统计的方式是无法做到这一点的,它必须只能以计算机管理为基础才能实现。目前,各医院为争夺市场,提高自己的信誉,扩大就诊率,急切地盼望着能有一个管理思维先进的医院信息管理系统的出现,将他们从目前的窘境中解脱出来,提高其自身的管理水平与服务质量,拉近与病人之间的距离,使医院的发展能真正的走上一个新台阶。 本文的任务是医院信息系统中经济管理部分的研究与应用。系统功能覆盖医院门诊和住院部分的相关经济收费方面的业务工作、管理活动和辅助决策等各个环节。在此基础上构建起论文的结构:第一部分绪论,主要包括医院信息系统的定义、发展情况和现状,在此基础上提出实现医院信息化的必要性,其中重点强调了涉及到收费等医院的经济活动存在的弊端、现状以及研究的内容和实现的目标。第二部分相关知识介绍,对系统开发中所应用的工具、开发环境、开发模式、数据库开发和软件工程等一些相关知识和工具进行介绍。第三部分信息系统医院信息系统设计方案概述,简要的介绍整个医院信息系统的开发方案,包括设计原则、目标、模块和硬件环境,是系统的整体规划。 第四部分医院信息系统中经济管理部分的设计,主要介绍了本文开发的医院经济管理部分详细设计过程。首先,对经济管理部分进行整体的概要介绍。然后,考虑系统性能的综合平衡,提出了实现系统的技术方案,包括功能和数据库的主要设计方案。 第五部分经济管理部分的具体实现,设计了经济管理部分逻辑数据流图、功能结构图、ER图和分布式作业,从实现的具体细节着手,详细分析各个功能模块的设计与实现。 第六部分医院信息系统的测试,对于一个系统而言,最后可以准确可靠的应用到实践中才是开发的最终目的。完整的医院信息系统开发完毕后,对系统进行测试是十分重要的一步。在处理速度、操作难度、操作结果、设计能力等方面对系统的每一个功能项进行了测试,然后,依据测试结论对系统进行不断的修改和完善。 第七部分结论,主要是对课题研究进行了系统性的总结,并提出了今后需要做的工作。2 相关知识介绍2.1 PowerBuilder数据库开发语言目前有许多先进的可用做企业级开发的工具,例如Microsoft公司的Visual C+企业版、Inprise(原Borland )公司的Delphi, Oracle公司的Developer和Sybase公司的PowerBuilder等。本系统选择PowerBuilder,主要是因为其卓越的性能。它功能强大,使用方便,为用户提供了完善的开发环境,是一套软件编程人员理想的开发工具。相对于其他任何应用开发工具,PowerBuilder可以使开发人员的工作速度更快、成本更低、质量更高、功能更强7。全面支持面向对象编程,是集成强大并易于使用的第四代编程语言。其主要的优点主要表现在以下几个方面:(1) 除Windows外,PowerBuilder还支持Macintosh和Unix平台,而且PowerBuilder可以在它所支持的所有操作平台上,执行同一个P-code代码的文件。利用它,用户可以轻松开发出各种大型数据库应用系统。(2) PowerBuilder可提供优秀的报表生成方法和完整的在线帮助以及丰富的Internet访问功能和组件特性。(3) PowerBuilder几乎可以实现在Web上进行所有的工作,它集成了应用开发工具PowerSite,成为Client/Sever和多层分布式应用的一个完整的4GL RAD环境8。(4) PowerBuilder具有更高的开发效率,它的基础类库是基于面向对象程序设计的思想而设计的,它包含了大多数应用共有的内容,例如它具有各种形式的菜单、窗口、用户对象、数据窗口以及错误处理、报表预览和打印和查询等。通过继承的方法,我们可以方便的把这些类加载到自己的程序中去,从而达到提高开发效率的目的。(5) PowerBuilder的应用程序是事件驱动的,即用户通过各种动作控制应用程序的流程,用户可以通过编写脚本来说明当事件被触发时所要完成的处理过程9。2.2 C/S 体系结构医院信息系统的开发模式发展经历了3个阶段:主机加终端的分时系统、微机网络加文件服务器系统和客户机/服务器系统。(1) 主机加终端分时系统是美国、西欧与日本自70年代到80年代末在开发综合医院信息系统时的基本选择。许多成功的著名的HIS都是基于这样的体系结构开发出来的。但随着技术的不断发展与更新,现在普遍认为这样的集中式系统一次性投入太大,应用系统被过多地束缚在厂家的软、硬件产品之上,失去了系统的开放性、灵活性、可伸缩性,笨拙的软件开发工具影响应用软件的开发速度,无法与PC相比的API及GUI技术影响应用软件开发的质量与成功率。 (2) 微机网络加文件服务器系统可以说是当今中国医院信息系统体系结构的主流选择。微机网络支持分布式处理,而且直接继承了PC系统的全部优点,用户可以在充分使用自己的CPU的同时又可以共享昂贵的外部设备,亦能实现多用户的数据共享。实际上,己有一些中、小型的医院在这样体系结构基础上成功地部分实现了HMIS。虽然这样的系统也许可以承担大型医院部门一级(例如财务处、人事处或病人入、出院管理等)的信息管理任务,但此类结构的先天不足会使其难以担负起建立整个医院完整的信息系统的重任。(3) 客户机/服务器(Client/Server)是在网络基础上,以数据库管理系统为后援,以微机为工作站的一种系统结构。其关键点在于“一分为二”,即把数据存取与应用程序分离开,分别由数据库(Server端)及工作站(Client端)来执行,从而明显地既保证整个系统的运行性能,又增加了系统的易开发性、可扩充性和可维护性10。在C/S体系结构中,应用程序分为两大部分:即客户机部分和服务器部分。客户机部分负责执行前台功能;服务器部分执行后台服务。服务器端一定要有一个完整的高效能的关系数据库管理系统(RDBMS, Relational Data Base Management System) 11。C/S结构应用系统基本运行关系体现为“请求/响应”的应答模式。每当用户需要访问服务器时就由客户机发出“请求”,服务器接受“请求”并“响应”,然后执行相应的服务,将执行结果送回给客户机,由它进一步处理后再提交给用户。B/S结构是一种以Web技术为基础的新型的MIS系统平台模型。它是由两层C/S结构发展而来的三层C/S结构在Web上的应用,即浏览器/Web/服务器(Browser/Web/Server)的三层结构12。B/S体系结构是把两层C/S结构的客户事务逻辑模块从客户机的任务中分离出来,由单独的一层来处理,把任务均衡地分配给了Web服务器,不再负责处理复杂计算和数据访问等关键事务,只负责显示部分,使客户机的任务减轻了许多。综上所述,C/S结构在系统综合性能上达到了良好的平衡,而B/S结构则是计算机系统结构的发展趋势所在,考虑到C/S模式是一种计算模式,利用这种模式,可以将一种任务通过网络分配到客户机和服务器这2个分离的逻辑实体上,由它们共同协调完成,从而大大降低了整个系统的应用成本。而本次开发的HIS系统主要是面对中小型医院,为了节省成本、缩短开发周期,我们本次HIS的设计主要采用以C/S结构为主,B/S结构为辅的系统结构方式,主要是应用C/S模式,但是在HIS与Internet的接口模块上我们采用B/S结构。2.3 数据库开发技术随着计算机的应用由科学部门扩展到企业、行政部门,数据处理迅速上升为计算机应用的主要方面。数据库技术就是作为数据处理中的一门技术发展起来的,数据库技术是计算机软件领域的一个重要分支。2.3.1 数据管理技术的发展计算机数据管理技术经历了由低到高的发展过程。数据管理技术随着计算机硬件(主要是外存储器)、软件技术和计算机应用范围的发展而不断发展,许多年来大致经历了如下四个阶段:(1) 手工管理阶段 20世纪50年代中期以前,计算机主要用于科学计算。当时在硬件方面,外存储器只有卡片、纸带、磁带;软件方面只有汇编语言,没有专门的数据管理软件,数据由计算或处理它的程序自行携带,数据处理方式基本是批处理。(2) 文件系统阶段 20世纪50年代后期至60年代中后期,计算机开始大量的用于管理,大量的数据存储、检索和维护成为紧迫的需求。在硬件方面,可直接存储的磁鼓、磁盘成为联机的主要外存;在软件方面,出现了高级语言和操作系统。操作系统中的文件系统是专门管理外存的数据管理软件。数据处理方式有批处理,也有联机实时处理。(3) 数据库阶段 从20世纪60年代后期开始,计算机应用于管理的规模更加庞大,需要计算机管理的数据呈急剧增长,并且对数据共享的需求日益增强。大容量磁盘(数百兆字节以上)系统的采用,使计算机联机存取大量数据成为可能;软件价格上升,硬件价格相对下降,使独立开发系统软件的成本增加。文件系统的数据管理方法已无法适应开发应用系统的需要。为解决数据的独立性的问题,实现数据的统一管理,达到数据共享的目的,发展了数据库技术。数据库是通用化的相关数据的集合,它不仅包括数据本身,而且包括关于数据之间的联系。数据库中的数据不只面向某一项特定应用,而是面向多种应用,可以被多个用户、多个应用程序共享。例如,某企业、组织或行业所涉及的全部数据的汇集,其数据独立于使用数据的程序,对于数据的增加、删除、修改和检索由系统进行统一的控制,而且数据模型也有利于将来应用的扩展。数据库也是文件方式存储数据的,但是它是数据的一种高级组织形式,在应用程序和数据库之间,有一个数据库管理系统DBMS(Data Base Management System)。数据库管理系统是为数据库的建立、使用和维护而配置的软件,它是在操作系统支持下运行的。数据库管理系统可以有效的组织和管理数据,方便地将数据输入到计算机中,根据用户要求将数据从计算机中抽取出来。(4) 分布式数据库系统阶段20世纪70年代后期之前,数据库多数是集中式的。分布式数据库系统是数据库技术和计算机网络技术相结合的产物,在20世纪80年代中期已有商品化产品问世14。分布式数据库是一个逻辑上集中、地域上分散的数据库集合,是计算机网络环境中各个局部数据库逻辑集合,同时受分布式数据库管理系统的控制和管理。分布式数据库在逻辑上就像一个集中式数据库系统,实际上数据存储在不同地点的计算机上。每个结点有自己的局部数据库管理系统,它有很高的独立性。用户可以由分布式数据库管理系统,通过网络通信相互传输数据,实现数据的共享和数据的存取。分布式数据库有高度的透明性,每台计算机的用户并不需要了解他所访问的设计究竟在什么地方,就像在使用集中式数据库一样。2.3.2 SQL Server 2000大型数据库在分布式数据库管理系统中,比较常见的有Oracle, Sybase, SQL Server等,这些数据库由于可以很好地在Windows系列平台上实现分布式数据库管理,因此其应用范围比较广泛15。本方案选择SQL Server 2000作为应用程序的数据库管理系统。SQL Server 2000是Microsoft公司开发的大型关系数据库管理系统,它具有安全性好、工作性能优秀、系统稳定、支持分布式数据库、支持数据仓库等特点,能满足不断发展的医院信息管理对数据库系统实时性、安全性、数据存贮量、信息来源多元化的要求16。SQL Server 2000是一个客户/服务器关系型数据库管理系统(RDBMS ),即中央服务器用来存放数据库,该服务器可以被多台客户机访问,数据库应用的过程分布在客户机和服务器上,使用Transact_sql语句在客户机和SQL Server之间发送请求,SQL Server使用客户/服务器体系结构把工作负载分成在服务器计算机上运行的任务和客户机上运行的任务17。在HIS实际应用中,SQL Server性价比较高,满足需要。下面对SQL Server中的一些重点知识做简单的介绍。首先是存储过程。定义为将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。存储过程的优点: (1) 存储过程只在创建时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 (2) 当对数据库进行复杂操作时(如对多个表进行Update, Insert, Query, Delete操作),可将复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。(3) 存储过程可以重复使用,可减少数据库开发人员的工作量。(4) 安全性高,可设定只有某些用户才具有对指定存储过程的使用权。另一个较为重要的是事务处理机制。事务是这样一种机制,它确保多个SQL语句被当作单个工作单元来处理。事务具有以下的作用:(1) 一致性同时进行的查询和更新彼此不会发生冲突,其他用户不会看到发生了变化但尚未提交的数据。(2) 可恢复性一旦系统故障,数据库会自动地完全恢复未完成的事务。事务是完整性的单位,一个事务的执行是把数据库从一个一致的状态转换成另一个一致的状态。因此,如果事务孤立执行时是正确的,但如果多个事务并发交错地执行,就可能相互干扰,造成数据库状态的不一致性。在多用户环境中,数据库必须避免同时进行的查询和更新发生冲突。这一点是很重要的,如果正在被处理的数据能够在该处理正在运行时被另一用户的修改所改变,那么该处理的结果会是不明确的。数据库本身肩负着管理事务的责任。事务是最小的逻辑工作单元,在这个工作单元中,对数据库的所有更新工作,要么必须全部成功,要么必须全部失败(回退)。只要应用程序指定了某段程序为一个事务并做了相应的处理,数据库系统会自动维护事务本身的特性。在HIS系统的每个功能中,当涉及存盘时都会用到事务处理,保证了数据的一致性和可恢复性。2.3.3 结构化查询语句SQLSQL语言是一种关系数据库语言,是结构化查询语句(Structure Query Language)的缩写,它实际上包括查询、定义、操作和控制四个部分,是一种功能齐全的数据库语言18。SQL语言是于1974年由Boyce和Chamberlin提出,在大型计算机上实现(当时称为SEQUEL语言)。由于SQL语言具有语言简洁、方便实用、功能齐全等特点,很快得到推广和应用,随着关系数据库的流行,SQL在计算机界和广大用户中已经得到公认。1986年10月美国国家标准局(ANSI)的数据库委员会颁布了SQL的美国标准,作为标准关系数据库语言。1987年6月,国际标准化组织(ISO)采纳SQL为关系数据库语言的国际标准,我国也在1990年制定了SQL标准。实际系统中实现的SQL语言往往对标准版本有所扩充。当前各种数据库管理系统几乎都支持SQL,或者提供SQL接口,从而使得无论是大型机、中型机,或是小型机以至微机上的各种数据库系统都有了共同的存取语言标准接口。为更广泛的数据共享开创了乐观的前景。SQL语言可以单独使用,这就是交互式SQL语言,也可以在应用程序中使用18。这样应用程序可能是某种高级语言编写的,这些语言称为宿主语言,我们本次使用的SQL Server 2000也是应用SQL语言作为数据库开发语言,使SQL语言嵌入到PB中,实现对数据库的操作。2.3.4 关系数据库设计现在,一般的信息系统都比较庞大、复杂,大都建立在数据库管理系统之上,依靠数据库管理系统对其中庞大的数据进行管理,这就是我们平时说的数据库应用系统。数据库应用系统的中心问题是数据库结构的设计19。按照软件工程方法,数据库设计一般要有下列几个步骤:(1) 系统需求分析系统需求分析是整个数据库设计过程中最重要的步骤之一,是以后各步骤的基础。这一阶段数据库设计人员和用户应共同收集数据库所需要的信息内容和处理要求,以及数据库的安全性和完整性要求;在收集数据的基础上,对这些数据进行分析和处理,以充分理解用户的要求,并把理解的内容精确地表达出来,加以规范化。这一步的主要成果是“系统需求说明书”,它是由分层的数据流图和数据字典两部分组成。(2) 概念设计概念设计的目的是产生反映信息需求的整体数据库概念结构,能以用户可以理解的形式表达出来,这就是概念模式。概念设计应独立于计算机的任何数据模型,不受特定的数据库管理系统的约束,也不考虑计算机软硬件的技术细节。概念设计最常用的方法是实体联系方法,即ER图。用ER图可以将实体集合抽象成实体模型,用实体间联系的类型反映现实世界事物间的联系。(3) 逻辑设计逻辑设计的主要目标是产生一个DBMS能处理的模式,这个模式能够满足全部用户的要求,从完整性和一致性约束一直到数据库的增生和复杂性。这个目标实际上就是把概念设计阶段的实体联系模型转换成特定DBMS所支持的数据模型,如网状模型、层次模型、关系模型、面向对象模型等。这个转换过程不太复杂,但是转换过程中要根据应用要求和存储要求对模型不断求精。这一阶段同时可以进行应用程序的设计,但目标只是开发应用程序的梗概。对于每个处理程序,设计出数据存取功能梗概,提供过程逻辑的界面、程序模块功能说明书以及对数据查询的表达集合。(4) 物理设计对于给定的逻辑数据模型选取一个最合适应用环境的物理结构的过程,称为数据库物理设计。数据库的物理结构主要指数据库的存储记录格式、存储记录安排和存取方法,这些完全依赖于具体的系统。(5) 数据库的实现和维护数据库的实现是根据物理设计的结果产生一个具体的数据库和它的应用程序,并把原始数据装入数据库。应用程序的开发基本上依赖于主语言和逻辑结构,较少的依赖于物理结构。对实现的系统要进行试运行,要测量系统的性能指标,分析是否符合设计目标,如果不符合,则返回前面几步再次修改数据库的逻辑结构和物理结构。数据库的维护是指维护数据库的安全性和完整性,监测并改善数据库性能,并在必要的情况下重新组织数据库。2.4 软件工程方法医院信息系统作为一个大型软件项目的开放,其整个开放过程一定要遵照某种步骤和方法才可以使整个开发过程有条不紊的进行,这就是软件工程的方法。随着计算机应用领域的扩展,对计算机软件的需求越来越大。为保证软件开放的质量和满足软件市场的需求,软件也应当与其他产业的产品一样,以系统的、工程的方法进行开发研制,并提供售后服务。以下就简单的介绍一下有关软件开发方面的知识。2.4.1 软件概念首先讲一下软件的概念。从狭隘的观点理解软件这个概念,通常认为软件即程序。这样简单的理解不仅不能表达软件的确切含义,而且会将软件开发技术与程序设计方法等同起来,从而忽略了软件开发技术中许多重要的东西。随着克服软件危机而产生的各种软件开发方法、技术及其相对应的软件工作模型,人们对软件这个概念进行了各种新的定义,其中较全面的定义为:软件是程序以及开发、使用和维护程序所需的各种文档20。对于一个计算机系统来讲,软件是计算机系统中与硬件相互依存的另一部分。通常,软件部分的完整配置应包括四个主要的部分:(1) 应用程序直接面向用户,为解决各种问题而编制的程序,如实时控制、科学计算、信息系统、人工职能等。(2) 系统程序为应用程序服务所编制的程序汇总,面向计算机硬件,是应用程序的支撑部分。(3) 面向用户的文档如何使用和维护应用程序的资料,如用户手册、操作手册以及维护手册。(4) 面向开放者的文档记载了应用程序的设计和开放过程,以便进一步开发和修改。如可行性研究报告、项目开发计划、需求规格说明书、设计说明书、测试报告等。2.4.2 软件开发周期软件开发周期的概念是从工业产品生存周期概念借用过来的。一种产品从订货开始,经过设计、制造、调试和使用维护,直到该产品被淘汰不生产为止,这就是所谓的产品生存周期。一个软件从用户提出开发要求,到软件在使用中消退的全过程,称为软件的开发周期。软件工程采用的生存周期方法就是从时间角度对软件开发和维护的复杂问题进行分解,将软件的生存周期划分为若干个阶段,每个阶段又有相对独立的任务,便于不同人员分工协作,使软件开发过程按有秩序的方法组织起来,从而降低整个软件开发的难度。软件生存周期一般分为三个阶段:制定计划、开发和运行维护,其中开发可进一步分为需求分析、设计、编码和测试。(1) 计划时期的主要任务是分析用户需求,分析软件系统所追求的目标,分析开发该系统的可行性。这一时期需要用户与系统分析员的交互和配合。 问题定义收集、分析、理解、确定用户的要求,系统分析员在与用户讨论的基础上共同提出“软件系统目标与范围的说明书”。 可行性研究确立对问题定义阶段确定的问题是否有可行的解决办法,并对各种可能方案做出成本/效益分析,系统分析员据此提出“可行性论证报告”,作为使用部门负责人是否继续进行这项工程的依据。(2) 开发时期包括设计和实现两个任务,其中设计包括需求分析和设计两个阶段,实现包括编程和测试两个阶段。 需求分析确定用户对软件系统的全部需求,并以“需求说明书”的形式表达,其目的是明确软件系统“做什么”。 设计设计软件系统的模块层次结构,设计数据库的结构,设计模块的控制流程,其目的是明确软件系统“如何做”。这个阶段通常可分为两个步骤:概要设计和详细设计,概要设计完成软件系统的模块的划分和模块的层次结构以及数据库设计;详细设计完成每个模块的控制流程的设计。这个阶段结束应交付“设计说明书”。 编程按照选定的程序设计语言将设计说明书中每个模块的控制流程编出相应的程序,得到软件系统的源程序。 测试检查并排除软件中的错误,提高软件的可靠性。测试分为如下步骤:模块测试,测试程序的每个模块是否有错;组装测试,测试模块之间的接口是否正确;确认测试,测试整个软件系统是否满足用户功能性要求。本阶段结束应交付“测试报告”,说明测试的对象,测试数据的选择,测试结果是否符合预期结果。如果测试人员发现问题,经过调试,找出出错原因,然后进行改正。(3) 运行和维护时期的主要任务是软件维护。其任务是修