还剩64页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
医院药库管理系统的设计与实现摘要随着计算机技术的发展,许多医院都建立了小型的药库信息管理系统,为医院的管理和服务工作发挥了重大作用但随着计算机网络技术、大型数据库技术的推广与应用,医院小型的药库信息管理系统不论在技术水平还是数据处理水平,都无法满足日益发展的社会需求和本身业务的需要,数据的共享性不高、系统的稳定性差、业务的处理效率低下等诸多问题制约着医院业务的发展因此,利用最新的计算机技术、计算机网络技术、大型数据库技术以及面向对象的开发技术,开发一套满足医院实际业务需求的医院药库信息管理系统是非常必要的本系统基于C/S开发模式,采用SQLServer2000作为后台数据库,PowerBuilder
9.0作为前台开发工具,按照软件工程的设计开发规范和数据库的设计原则,结合医院药库的实际业务需求,进行了医院药库管理系统的设计与开发在满足设计原则、总体目标的基础上,给出了医院药库管理系统的设计思想和设计模型;在需求分析的基础上,描述了医院药库管理系统的功能和性能;给出了药品的入库管理、药品的出库管理、药品的库存管理以及药品的财务管理等业务的实现方法和实现过程;对医院药库药品出入库、药品价格管理、药品效期管理等诸多方面提供了良好的记录程序并向用户提供了以拼音码为主的多种、多条件组合模式的查询和统计,为用户及时准确地统计和查询所需要的信息提供了很大的方便,对药品的管理更加实时有效本系统操作简单,实用方便,可操作性和实用性强,具有技术先进、功能完善、性高稳定、安全性程度高等优点,基本实现了医院药库管理的信息化、规范化、安全化、科学化关键词药库管理;管理系统;powerbuilderHospitalDrugWarehouseManagementSystemDesignandImplementationAbstractWiththedevelopmentofcomputertechnologymanyhospitalshaveestablishedasmalldrugswarehouseinformationmanagementsystem;itplaysamajorroleforhospitalmanagementandservice.Butwiththedevelopmentofcomputernetworktechnologythepromotionandapplicationoflarge-scaledatabasetechnologythehospitalinformationmanagementsystemofsmalldrugswarehousewhetherintechnologyordataprocessingareunabletomeetthegrowingneedsofthecommunityandtheirownbusinessneedssuchproblemsaslowdatasharingpoorsystemstabilityinefficientoperationsandmanyotherissuesrestrictedthedevelopmentofthehospitalbusiness.Thereforeitisverynecessaryusingthelatestcomputertechnologycomputernetworktechnologylarge-scaledatabasetechnologyandobject-orienteddevelopmenttechniquestodeveloparealbusinesstomeettheneedsofthehospitalinformationmanagementsystemofhospitaldrugswarehouse.ThissystemisdevelopedbasedonC/SmodelusingSQLServer2000databaseasabackgroundPowerBuilder
9.0asforegrounddevelopmenttooltoimplementthehospitaldrugswarehousemanagementsystemdesignanddevelopmentaccordingtosoftwareengineeringdesignanddevelopmentprinciplesofdatabasecombinedwiththepracticalbusinessneeds.WegiventhehospitaldrugswarehouseManagementSystemdesignideasanddesignmodelaswellasmeetingthedesignprinciplesconsideringtheoverallobjectivestodescribethefunctionalityandperformanceofhospitaldrugswarehousemanagementsystembasedondemandanalysis;giventheimplementationandrealizationprocessofdrugsstoragemanagementdrugdeliverymanagementdrugsinventorymanagementanddrugfinancialmanagement;providedagoodrecordsprogramforhospitaldrugslistofreceiptnoteandissuenotemanagementofdrugpricesdrugExpirationdatemanagementandsoon.Andprovideduserswiththequerytermsandstatisticsofavarietyofthealphabetcodemulti-combinationmodeprovidedagreatconveniencewithtimelyandaccuratestatisticsquerywhichcontainstheinformationtheyneedthemanagementofdrugsiseffective.Thesystemissimpleandpracticalwithadvancedtechnologyfullyfunctionhighstabilityhighdegreeofsecuritytorealizethehospitaldrugswarehousemanagementwithinformationtechnologystandardizationsecurityscientific.Keywords:DrugstoreManagement;ManagementSystem;Powerbuilder目录声明········································································································I中文摘要·······························································································IIABSTRACT·························································································III第1章绪论··························································································
11.1选题背景及研究意义··········································································
11.2项目的来源······················································································
21.3本文的开发工作及其组织····································································3第2章相关理论研究··········································································
52.1数据库技术······················································································
52.
1.1数据库···················································································
52.
1.2数据库的体系结构····································································
62.2SQLServer2000技术········································································
72.3PowerBuilder9.0软件开发工具····························································
72.
3.1PowerBuilder语言的特点··························································
72.
3.2PowerBuilder主要应用范围·······················································8第3章需求分析··················································································
93.1医院药库管理系统业务现状·································································
93.2医院药库管理系统的工作流程····························································
103.3医院药库管理系统的功能需求····························································
103.4实体分析及E-R图··········································································
123.
4.1医院药库管理系统实体联系分析················································
133.
4.2医院药库管理系统E-R图·························································
143.5数据词典·······················································································
173.6小结····························································································18第4章系统设计·················································································
194.1系统总体设计·················································································
194.
1.1系统设计原则········································································
194.
1.2系统体系结构········································································
194.2系统功能设计·················································································
204.
2.1药品入库管理功能··································································
214.
2.2药品出库管理功能··································································
234.
2.3药品库存管理功能··································································
244.
2.4药品财务记账管理功能···························································
254.
2.5药品计划管理功能··································································
254.
2.6系统维护功能········································································
264.3数据库设计···················································································
274.
3.1数据库设计原则····································································
274.
3.2SOLServer2000关系数据库的约束条件····································
273.
3.3关系数据库的规范化设计······················································
284.
3.4数据库表结构设计·································································
294.4系统安全设计·················································································
354.5小结·····························································································35第5章系统实现·················································································
375.1系统环境配置·················································································
375.
1.1系统硬件环境········································································
375.
1.2系统软件环境········································································
385.2系统实现的关键技术········································································
385.
2.1PowerBuilder的数据窗口技术··················································
385.
2.2数据库事务处理·····································································
395.
2.3数据库的数据连接··································································
405.3系统主要功能的实现········································································
415.
3.1系统登录模块的实现·······························································
415.
3.2药品入库模块的实现·······························································
435.
3.3药品入库查询管理模块····························································
435.
3.4药品出库管理模块··································································
445.
3.5药品出库查询管理模块····························································
465.
3.6药品效期管理模块··································································
465.4小结·····························································································49第6章系统测试·················································································
516.1软件测试原则和过程········································································
516.
1.1软件测试原则········································································
516.
1.2软件测试的过程·····································································
526.2测试用例的设计及测试过程·······························································
536.
2.1登录安全性测试·····································································
536.
2.2系统基础数据字典维护测试······················································
546.
2.3药品购进系列模块测试····························································
546.
2.4药品出库购进系列模块测试······················································
546.
2.5药品效期管理模块··································································
546.3测试结论·······················································································
556.4小结·····························································································55第7章结论·························································································57参考文献······························································································59致谢······································································································61第1章绪论
1.1选题背景及研究意义随着计算机技术的迅猛发展,计算机技术的应用已渗透到各个领域,成为各行各业必不可少的工具医院作为社会不可缺少的一个行业部门,对计算机技术的应用也随着计算机技术的发展而不断发展医院药库是医院的一个重要部门,医院药库信息技术发展的规模和水平直接影响到医院的管理水平和服务水平特别是当今时代,计算机网络技术、计算机通信技术、大型数据库技术以及面向对象技术的不断飞跃发展,直接推动医院药库的管理水平提高到一个更高的层次随着医院规模的扩大和业务的发展,医院药库信息的存储量和处理信息的内容也不断扩大,药品分类、药品种类不断增加,不同批次、不同产地、不同效期的有效管理,单纯的靠人工管理或者早期的文件数据库系统的计算机管理模式已经不能适应医院的长期发展和药库管理业务的需要因此,完善、升级医院管理的信息化水平是提高医院管理水平、提高管理效率的必由之路
[1]医院药库的信息化管理经历了一个从手工管理阶段、文件数据库管理阶段到网络大型数据库阶段不断发展的过程最原始的药品管理是通过手工管理的方法,最明显的缺陷就是工作效率低通常来说,一般的综合性医院都有上千种药品,每种药品分为不同产地、不同批次、不同有效日期在原始的药品管理工作中,这些都是由人工书写记录的使用人工制作的表格来记录这些药品的名称、归属的种类、出入库时间、出入库时的库存量、药品的价格、药品的有效期限等诸多信息随着药品品种的增多,药品信息量随之增大,信息记录的工作量也随之增大,通过人工记录完成这些繁重的工作变得非常困难其次就是药品数据的一致性得不到较好的维护例如,如果对某种药品信息的记录进行改动如更改编号,那么该药品的其他记录就与此不一致,造成查询时费时费力而如果要把该药品的全部信息数据都进行更改,又需要相当大的工作量在对药品库存的盘点时要需要更较多的人来进行管理操作,不仅费时耗力,而且很容易出错,从而造成数据的不一致,在管理过程中产生的错误信息可能会造成极坏的严重后果20世纪90年代初期,由于计算机技术的发展和文件数据库的应用,以文件数据库为代表的计算机应用技术广泛地流行,具有代表性的是以文件数据库管理模式dBase、fox系列为基础开发的计算机管理应用软件医院药库的管理也同样如此用dBase、fox开发的药库信息管理系统大多是单机运行,能够实现对药品的入库、出库、库存进行管理,能够实现医院药库管理的自动化与手工阶段比较,确实是发生了巨大的变化,有效的提高了工作人员的工作效率但由于计算机的单机运行及文件数据库性能的局限性,这一阶段的药库信息管理总体上处于数据安全性能低、系统存储数据能力不足、数据处理能力低下的状态,最大的缺陷是数据不能共享
[2]这种实现技术落后、模式简单、数据的共享性不高、系统的稳定性差的计算机管理水平已经不能适应于网络环境下的社会发展和业务需求随着计算机技术的发展,网络操作系统、数据库管系统、面向对象的开发工具的不断问世,特别是Internet技术的推广应用,把计算机技术的应用推广到了一个前所未有的新局面网络操作系统的发展使一个企业或者事业单位形成各自的Intranet网络成为一种必然的趋势;大型数据库系统的应用使得数据共享成为一种现实的可能;面型对象的开发工具使软件的开发能力、开发水平提高了一个更高的水准在这种情况下,为适应医院未来业务发展的需要,开发新的医院药库管理系统已经成为历史的必然
1.2项目的来源本课题的来源基于胶州市中心医院,开发是目的是基于目前医疗技术和计算机网络技术的快速发展,开发一套适应于中小型医院的药库管理系统胶州市中心医院是胶州市的市属医院,中等规模水平,药库是该医院的重要医疗单位,负责对住院部、门诊中药房、门诊西药房等各个医疗用药供药及药品采购工作长期以来,该医院药库使用一台计算机对药库的几千种药品进行入库、出库、库存的管理,所使用的软件是早期用foxpro系统编写系统软件由于文件数据库不具备大型数据库用户的概念,因此数据保密性、安全性不强特别是随着业务的发展,数据量的急剧增加,系统的业务处理、查询速度缓慢;再者由于早期设计的不完善,导致药品效期预警、效期查询以及不动销药品的跟踪等无法实现,过期药品、滞销药品连年增多,这造成了药品的极大的浪费;同时由于药品种类繁多,流通环节繁杂,既要保障对临床各科室的供应,又要控制药品品种、数量、质量,等等,所使用的软件已经不能满足实际的需要因此,为了满足新形势下的业务需要,利用先进的计算机技术、网络技术、数据库技术以及面向对象的开发技术,针对医院的实际情况,开发设计了本医院药库管理系统在设计过程中,力求超越用户的需求,在针对本医院需求的基础上,兼顾同类型同层次医院的业务本系统的使用,可使药库的工作人员可及时了解库房药品进、出、存的动态变化,既做到为临床及时提供所需药品而不使药品供应中断,又能有效减少盲目进货造成药品积压现象,药品的信息化管理不仅可加快药品周转,而且可大大提高工作人员的工作效率和管理质量,也更加有利于及时、安全、优质地的保证临床用药
1.3本文的开发工作及其组织本文的开发工作源自胶州市中心医院药库管理系统的设计与开发,其目的主要是为了开发一个操作方便、使用快捷、处理高效的药品管理系统本系统从实现技术、实现模式、数据共享、数据稳定等几个方面入手,通过使用PowerBuilder
9.0作为开发工具,采用C/S三层应用体系构造系统构架,并利用SQLServer2000作为后台数据库,设计与实现该医院药库管理系统本文的主要工作是介绍了开发本系统所涉及的相关技术,并对医院药库管理系统进行了详尽的需求分析,完成了对整个系统的总体设计,系统的实现过程,系统测试用例的设计以及系统测试过程最终完成了医院药库管理系统开发在章节安排上,第一章绪论阐述了选题背景及研究意义;第二章介绍了项目开发相关的技术与知识;第三章介绍了系统的需求分析;第四章介绍了药品管理系统的设计;第五章介绍了系统的实现;第六章介绍了软件测试理论、软件测试用例的设计及系统测试及结论论文最后进行了总结第2章相关理论研究
2.1数据库技术随着计算机自身的不断发展,计算机的应用己由早期的用于工程设计中的数值运算,发展到目前的科学计算,数据处理和过程控制中数据处理迅速上升为计算机应用的主要方面,数据库技术就是作为数据处理中的一门新技术而发展起来的其发展速度之快、应用范围之广是其他技术所远不及的目前已成为计算机领域最重要的技术之一,是软件学科一个独立的分支数据库技术与网络通讯技术、人工智能技术、面向对象设计技术、并行计算技术等相互渗透,相互结合,成为当前数据库技术发展的主要特征数据库技术所研究的问题就是如何科学地组织和储存数据,如何高效地获取和处理数据数据库技术作为数据管理的最新技术目前已广泛应用于各个领域,数据库已成为当代计算机系统的重要组成都分
2.
1.1数据库数据库DataBase就是按照一定的组织结构存储在计算机存储介质上的相关数据的集合
[3]它有以下几个特点数据结构化一个数据库由一个或多个数据文件组成,每个数据文件内部的数据都有一定的结构同一数据库的各个库文件在整体上也服从一定的结构形式数据独立性用户的应用程序与数据库中的数据的逻辑组织和物理存储方式无关,任何一方的改变一般不会影响另一方数据共享、减少冗余在数据库中数据集中存储,数据为不同用户共享,大大提高了数据的利用率,减少了数据冗余,有利于保持数据一致性数据安全性与完整性安全性指数据保密,为防止数据被窃成破坏,DBMS设置措施严密,层层保护数据库管理系统是用来帮助用户建立、使用和管理数据库的软件系统,简称DBMSDataBaseManagementSystem
[4]其功能可概括如下建立数据库、操作数据库、数据安全性控制、数据完整性控制、数据库的并发控制一个数据库系统由数据库、数据库管理系统、应用程序和数据库管理员四部分组成
2.
1.2数据库的体系结构数据库分为三级外模式、模式和内模式数据库体系结构图见图
2.1图
2.1数据库体系结构图Fig
2.1Databasearchitecturediagram用户级数据库也称为用户视图View或子模式,对应于外模式,它是单个用户看到并获准使用的那部分数据的逻辑结构称为局部逻辑结构,用户根据系统给出的子模型,用询问语言或应用程序去操作数据库中的数据概念级数据库对应于概念模式,简称模式是对数据库所有用户的数据的整体逻辑描述故称为数据库的整体逻辑结构,又称为DBA视图,即数据库管理员看到的数据库,它是所有用户视图的一个最小并集设立概念级的目的是为了把用户视图有机地结合成一个逻辑整体,统一地考虑所有用户要求,它涉及的仍然是数据库中所有对象的逻辑关系,而不是它们的物理情况物理级数据库对应于内模式、又称为存储模式它包含数据库的全部存储数据,这些被存储在内、外存介质上的数据也称为原始数据,是用户操作的对象对一个数据库系统来说,实际上存在的只是物理级数据库,它是数据访问的基础
[5]概念级数据库只是物理级数据库的一种抽象逻辑描述,用户级数据库是用户与数据库的接口用户根据子模式进行操作,数据库管理系统通过子模式到模式的映射将操作与概念级联系起来,又通过模式到存储模式的映射与物理级联系起来这样一来,用户可以在较高的抽象级别上处理数据,而把数据组织的物理细节留给系统事实上,DBMS中心工作之一就是完成三级数据库之间的转换,把用户对数据库的操作转化到物理级去执行
[6]
[7]
2.2SQLServer2000技术SQLServer2000是Microsoft公司最新开发的大型关系数据库管理系统,它具有安全性好、工作性能优秀、系统稳定、支持分布式数据库、支持数据仓库等特点,能满足不断发展的信息管理对数据库系统实时性、安全性、数据存贮量、信息来源多元化的要求SQLServer2000是一个关系型数据库管理系统,它以其丰富的图形化管理工具,充分的Intemet技术支持,丰富的编程接口工具和很好的伸缩性、可靠性而广泛流行当今计算机系统正日益朝着分布式、网络化的方向发展,因而需要有一种新型的、面向客户机/服务器ClienVServer的数据库管理系统,能够在微机的平台上实现以前必须基于巨型机平台的数据库系统管理功能,MicrosoftSQLserver系列软件就是这样一种应运而生的优秀数据库管理系统与以往的版本相比,SQLServer2000还提供了以下新的特性与Intemet的紧密结合SQLServer2000的数据库引擎集成了对XML的支持,同时以可扩展、易于使用和安全的特点成为建设大型web站点最好的数据存储设备之一可扩展性和高可靠性通过对高端硬件平台以及最新的网络和存储技术的支持,可以为大型的web站点和企业级的应用提供可扩展性和高可靠性企业级数据库和简单、友好的操作界面SQLServer2000关系数据库引擎具备完善而强大的数据处理功能,它的分布式查询允许用户引用多处数据源,但友好的界面使用户管理好像自始至终都在使用同一个数据源强大的数据仓库支持为了满足现代企业对大规模数据进行有效分析和利用的要求,SQLServer2000包含了一系列提取、分析、总结数据的工具,从而使联机分析处理成为可能
[8]
2.3PowerBuilder9.0软件开发工具系统开发选用了PowerBuilder9.0作为前台软件开发工具PowerBuilder是著名的数据库应用开发商SybaseInc的公司Powersoft推出的新一代数据库应用开发工具,它能够设计传统的高性能、基于Clent/Server体系结构的应用系统,也能够用于开发基于Internet的应用系统在数据库开发工具领域,PowerBuilder是其中非常优秀的一个,利用它可以开发出功能非常强大的数据库应用程序对本系统软件开发而言,PowerBuilder是一种可选的较好的编程工具
2.
3.1PowerBuilder语言的特点PowerBuilder完全按照c/s体系结构来研制提供Sybase数据库专用接口,它采用了面向对象和可视化技术,提供可视化的应用开发环境它具有如下特点PowerBuilder开发的应用程序可独立于服务器上的数据库管理系统支持目前流行的大多数关系数据库管理系统,并提供支持ODBC接口.在应用程序中对数据库访问的部分采用国际化标准数据库查询语言SQL和扩展的T-SQL,开发的应用程序可以不做修改或只做少量的修改就可以在不同的后台数据库管理系统上使用PowerBuilder的工作方式是事件驱动方式在这种工作方式中,程序的运行没有固定的流程,程序中的代码是为各种可能发生的事件编写的当程序开发运行之后,它就可以接受来自系统,用户或者其它应用程序触发的事件,执行相应事件PowerBuilder是一种面向对象的开发工具各种WINDOWS应用程序中常见的窗口、菜单、控件等在PB中都是一个个的对象,在PowerBuilder中可以创建用户自己的用户对象它全面支持面向对象方法中的各种技术,可利用面向对象方法中的对象的封装性、继承性、多态性等特点,开发出来的应用程序具有极大的可重用性和可扩展性,完全符合软件工程中对应用程序所提出的重要目标PowerBuilder的另外一个很大的特点就是数据窗口,数据窗口对象是PowerBuilder的一种对象类型,与其它对象不同的是数据窗口对象是专门为了访问后台的数据库服务的,在数据窗口对象中可定义数据的来源和数据的显示风格,在编程过程中只需把精力完全放在程序的运行流程控制上,而不是关心具体数据的来源数据窗口对象提供了丰富的数据显示方式,可以满足各种不同的需要PowerBuilder
9.0提供了基础类库PFC,它为应用程序的开发提供了许多可重用的预定义类和对象,利用基本类库PFC可以快速开发出高质量重用性好的应用性程序真正发挥面向对象编程的巨大威力
[9]
[10]
2.
3.2PowerBuilder主要应用范围大型数据库C/S模式前端开发工具或B/S模式应用服务器开发工具,一般应用于需要大型或中型数据库系统支持如Oracle、Sybase、MSSQLServer、DB
2、Informix作为后台数据支撑平台的管理系统和可以承受千万级记录量的系统,中、小型数据库系统开发,一般数据量为10万左右,支持并发或仅单机用户如中小型企业的内部信息管理、各种小型软件、共享软件等与PHP、Java、ASP集成,作为Intranet或Intcrnet的后台数据库系统维护工具,如异种平台Unix、Linux、Solaris上的Oracle、MySQL、DB2等的Client方式维护
[11]第3章需求分析软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望需求分析所要做的工作就是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求,通过对应用问题及其环境的理解与分析,对问题所涉及的信息、功能及系统性为建立模型,将用户需求精确化、完全化
[12]从广义上理解需求分析包括需求的获取、分析、规格说明、变更、验证、管理的一系列需求工程狭义上理解需求分析指需求的分析、定义过程
[13]需求分析阶段的工作对于整个软件的开发过程,以及软件的产品质量是非常重要的这是因为,在实际进行软件的需求分析中,软件系统的结构越复杂,需求分析的工作难度越大同时,在进行需求分析时会涉及到很多人员由于相关人员所具备的技术知识不同,会给交流带来障碍另外,需求分析时用户提出的软件需求会在软件的生存周期内不一致所以,软件项目开发时必须做好需求分析的工作为了做好需求的工作,在进行需求分析时,可以采用的方法和工具进行工作这些方法和工具能够表达出所处理问题的数据范围和功能范围,它可以把要解决的复杂问题进行分解和抽象,通过建立要开发的软件项目的模型,帮助开发人员理解要做的工作需求分析的基本任务包括收集来自用户各个方面对软件功能的要求,这些需求的表现形式是多样的、不系统的,有些甚至是不是十分明确;对得到的需求进行补充、完善和加工,利用软件开发的描述工具表示出软件项目的逻辑结构;利用分析与综合的思想进行进一步的整理,形成软件需求说明书,以及其他相关的软件开发的文档,这些文档为后期的软件开发提供依据
3.1医院药库管理系统业务现状医院药库是医院综合业务中的一个重要部门,负责医院所有医药药品的购进入库、医药及医疗器械的分发出库、毒麻药品的监管、过期药品的处理等功能,是医院药品管理的核心在相当长的时间内,该院利用一台计算机运行单机版的以文件数据库为基础的医院药库管理软件随着医院业务的发展,医院药库规模的不断扩大,再加上医院药品分类的不断增加,国家对毒麻药品、二类精神药品监管力度的不断扩大,原来的单机版的医院药库管理软件已远远不能满足药库业务的需要,常常导致药品购进价格难以监督控制,药品丢失无法查证,过期药品难以监控,毒吗药品难以监管因此需要一套技术先进、功能完善、性能稳定、符合实际业务需求的网络系统管理软件在这样的现状下,本系统利用先进的计算机技术、计算机网络技术、大型数据库技术以及面向对象的开发技术,结合医院药库的实际情况,在广泛调研的基础上,进行了医院药库管理系统的开发,实现了医院药库业务处理的综合管理,不仅提供药品信息查询、药品管理、药品分类、药品出人库功能,还能相关科室提供当前用药动态、用药合理性等信息,并提供有价值的数据,供医院领导决策同时药品管理信息资源共享化、集约化,提高了工作效率,体现了医院信息化管理的优越性、科学化
3.2医院药库管理系统的工作流程医院药库负责医院医药的所有购进、出库、库存的管理工作其工作流程是药库负责人根据药品的库存情况提出药品购进计划,上报给分管院长,分管院长审核批复后由药库采购人员进行药品的采购;药品到货验收合格后根据原始购进单据进行药品入库记账;门诊西药房、门诊中药房、病区西药房、病区中药房、药剂科等各单位根据自己的实际用药情况提出申请,药库根据各单位申请进行药品的出库发放,形成药品的库存入出库商品帐同时药品出入库单据凭证等与财务进行对接,形成财务的药品商品帐其流程图如图
3.1图
3.1医院药库管理系统工作流程图Fig
3.1HospitalDrugWarehouseManagementSystemworkflowchart
3.3医院药库管理系统的功能需求医院药库管理的主要功能是药品入库、采购划管理、药品出库、库存管理,有效期预警管理及库存上下限报警管理的,另外就是保证库存的正确性,而此程序对以上的功能都提供了相应的管理程序以下是药库管理系统的主要功能实现药品入库记账的管理依据入库单据进行药品的入库记账,在入库过程中自动产生入库记账单号,保持入库与记账的分离性,更有利于药品入库的方便使用药品的入库记账以入库单据打印为基准实现药品出库及记账管理根据各单位的申请,进行药品出库及记账管理出库过程自动产生出库单号,保持出库与记账的分离性药品出库以药品出库单打印为基准实现药品入库凭证管理入库时输入药品入库的记账凭证,且与药品入库单号相关联,保障入库原始单据的关联性实现药品库存的管理除了正常的入出库外,对药品的盘点、报损、破碎、过期、抽检等涉及到库存变化的业务进行计算机自动处理、记账与监控对临界库存的药品进行预警与监控实现药品效期的管理药品是药品管理的重要方面,能够对过期药品进行报损、对近效期药品进行预警与监控,不动销药品的管理在规定时间段内对不动销或者滞销的药品进行监控,从而对滞销药品进行相应的处理,减少医院药品因滞销过期而导致的浪费与损失进行药品的财务记账财务记账与业务管理是对药品药库管理的不同的两个方面业务管理主要是数量管理,财务记账则是对药品进行数量与金额的双重管理,是对药品的账面进行管理在相对的时间内,业务管理与财务管理在数量和金额上是统一的药品的计划管理根据某段时间的药品销售情况以及药品库存情况,自动生成药品的计划,并提供药品的历史购进记录,供相关人员对计划进行修正与完善实现药品的入库综合组合条件的统计与查询设置基本条件,由用户自选条件进行药品的查询与统计,并生成所需要的入库的各种查询统计报表,打印报表或者自动生成相关的EXCEL报表实现药品的出库库综合组合条件的统计与查询设置时间、品种、出库单位等基本条件,由用户自选条件进行药品出库的查询与统计,并生成所需要的出库库的各种查询统计报表,打印报表或者自动生成相关的EXCEL报表实现库存的各种统计查询表表,打印或者自动生成相关的EXCEL库存报表实现每种药品的库存商品帐依据药品入库、出库、盘点、破损、抽检等业务的处理,自动生成药品的业务商品帐和财务商品帐,并能实现对药品的每次库存变更的跟踪查询,保证药品业务的准确性、完整性和账目往来的统一性药品基本档案信息的管理和设置以药品编码、药品名称、规格、单位、拼音码等为基础,设立药品档案信息药品档案信息是所有药品管理的基础,所有的药品入库、出库、库存的管理,必须以药品档案为基准对药品的上限于下线进行设置实现药品的调价功能,并自动计算因调价产生的库存的报损与报溢设立购销用户的管理对医院药库的关联业务单位进行自动编码及类别说明进行用户的关联管理在管理过程中以购销用户的编码为唯一管理依据.进行人员、药品类别、规格、药品单位等信息的自定义维护管理,由用户根据自己的实际情况进行管理维护实现操作人员的登陆密码的自维护、药品的备份、年初始化等管理功能系统所有的信息输入、查询以及统计,均支持拼音码快速搜索定位医院药库管理系统功能流程如图
3.2图
3.2医院药库管理系统功能流程图Fig
3.2HospitalDrugWarehouseManagementSystemFunctionFlowChart
3.4实体分析及E-R图E-R图方法是广泛被采用的概念模型设计方法,它直接从现实世界抽象出实体型及其相互间的联系,并用实体-联系图(Entity-RelationshipDiagramE-R图)来表示概念模型,E-R方法也称为E-R模型
[14]E-R模型是一种语义模型,是数据库设计人员与用户进行交流的最有效工具用E-R模型来描述概念模型非常接近人的思维,容易被人理解,而且E-R模型与具体的计算机系统无关,容易被不具备计算机知识的最终用户所接受
[15]E-R图是直观表示概念模型的工具,它有四个基本成分矩形框,表示实体类型考虑问题的对象;菱形框,表示联系类型实体间的联系;椭圆形框,表示实体类型和联系类型的属性;直线,联系类型与其涉及的实体类型之间以直线连接本系统作为医院的药库管理系统,主要负责药品的出入库、库存管理、药品信息的管理等业务根据药库管理系统的实际情况,并且在综合考虑了多方面的因素以后,确定如下实体及其属性
3.
4.1医院药库管理系统实体联系分析医院药库管理系统实体属性及联系如下药品档案药品编码、药品名称、药品条形码、规格、产地、批次、有效日期、药品单位、最低库存、最高库存、零售价、批发价、出库价;购进客户/出库单位客户编码、客户名称、客户类别、客户拼音码、所在地区、邮政编码、联系电话、联系人;入库单据发票号、购进单位、入库单号、购进日期、药品编码、药品名称、入库数量、入库单价、入库金额、药品批次、药品有效期、业务员、操作员;出库单据出库单位、出库单号、计划单号、出库日期、药品编码、药品名称、出库数量、结算价格、药品金额、领用人、操作员;药品库存药品代码、药品名称、药品规格、药品类别、药品单位、药品产地、药品批次、有效日期、药品单价、药品金额、药品数量;药品明细业务日期、业务单位、入出库单号、药品编码、药品名称、入出库说明、单价、入出库数量、入出库金额、药品产地、药品批次、有效日期、操作员;操作员操作员编号、名称、所属单位、权限;在本系统中药品是根本,没有药品,整个药库管理系统就无从谈起药品档案是药品的基本信息,是对药品进行规范化管理的信息基础及依据药库是药品的存放场所,其重要性显而易见,是药品出入操作的结构入库单据、出库单据实体都是药品管理系统中非常重要的实体,整个系统管理的关键就是通过入库单据、出库单据来实现的药品明细是对药品入出库进行管理的综合流水信息的记录,是对药品来源以及流向管理的数据依据购进客户/出库单位实体的添加主要出于对药品出库以及药品来源问题的思考通过添加购进客户/出库单位可以比较清楚地了解药品的进货渠道和药品使用单位,从药品供应商的信誉以及医院各单位使用药片的类别数量等,可很好地监管监控药品的整个流通渠道操作员实体的设立主要是落实医院药库管理的责任和管理权限
3.
4.2医院药库管理系统E-R图通过分析,医院药库管理系统各实体及联系的E-R图如下药品档案E-R图,如图
3.3图
3.3药品档案E-R图Fig
3.3E-RdiagramDrugFile购进客户/出库单位E-R图,如图
3.4图
3.4客户信息E-R图Fig
3.4E-RdiagramCustomerInformation入库单据E-R图,如图
3.5图
3.5入库单据E-R图Fig
3.5E-RdiagramDrugsreceiptnote出库单据E-R图,如图
3.6图
3.6出库单据E-R图Fig
3.6E-RdiagramDrugsissuenote药品库存E-R图,如图
3.7图
3.7药品库存E-R图Fig
3.7E-RdiagramDrugstocks药品入出库明细E-R图,如图
3.8图
3.8药品入出库明细E-R图Fig
3.8E-RdiagramDrugslistofreceiptnoteandissuenote操作员E-R图,如图
3.9图
3.9操作员E-R图Fig
3.9E-RdiagramofOperator
3.5数据词典数据词典是对系统中所用数据的解释和说明,是信息管理系统的重要的数据文档资料
[16]数据词典的建立,有利于开发人员对数据的处理及流程更加明确和规范,系统开发时更加准确和便利,同时也是将来系统维护的重要文档和参考资料本系统的重要的数据说明见表
3.1表
3.1系统数据说明表Table
3.1Systemdataonthetable数据名称数据描述类型长度小数位药品编码药品的编码,用于表表之间的关联每种药品都有唯一的一个药品编码,是药品的唯一标识字符型6药品名称用于描述药品的名字,每种药品都有一个通用的名字字符型40条形码国际上通用的条形码,依据条形码,通过条形码扫描器可进行药品编码的快速输入,提高了入库、出库、查询统计等操作的速度字符型13药品类别对药品的类别进行描述,有利于对药品的管理字符型2药品规格对药品的不同规格进行描述字符型12拼音码根据药品的汉字拼音,对每种药品进行描述,有利于药品快速输入、定位及查询字符型20产地药品的生产产地,药品必须的属性描述字符型40批次对药品的生产批次进行描述,是药品必须的属性字符型20有效日期药品的有效期限字符型20药品单位药品的计量单位描述字符型20批发价药品的批发价格数字型103零售价药品零售的价格数字型103药品库存药品实际的库存数字型103入库单号入库单据的流水号码字符型8入库数量药品入库的数量数字型103入库金额药品入库的金额数字型103入库单价药品入库的价格数字型
1033.6小结本章主要对系统的需求进行了描述,主要描述了系统的业务流程、系统的功能需求、实体的E-R图、以及数据词典的描述主要为系统的设计做好准备工作第4章系统设计在系统设计过程中,以软件工程理论为指导、以面向对象的方法理论为系统设计思想、以医院药库的行业规范和业务需求为研究内容进行研究和设计本系统定位为医院药库管理系统的研究和应用,目的是给用户提供最终解决方案,这决定了技术选型的主导原则是考虑技术的先进性、可维护性、标准化程度、开放程度和发展的方向性
4.1系统总体设计
4.
1.1系统设计原则依据软件工程的设计标准和设计规范,参照医院药库管理系统的特点,软件设计的原则坚持“简单实用、高效流畅”在系统设计时充分考虑以下原则技术的先进性充分利用软件项目技术领域的最新成果结构的合理性本着‘高内聚,低耦合’的原则,各功能模块之间应具有最大的独立性,使各模块之间的相互干扰降低到最小,便于系统各模块之间的独立开发功能的完备性充分了解医院药库管理的各个环节,功能设置完备合理系统的安全性系统开发要采用大型数据库,大型数据库本身的安全机制为本系统的后台提供了可靠的安全保证任何进入本系统工作的人员都必须通过本系统身份和权限的验证,受权限的制约使用的方便性系统在界面设计和功能设置方面应完整合理,充分考虑操作人员的计算机水平和使用习惯,界面设计美观合理,提示信息详细完备易于扩充和维护尽量使用面向对象的分析设计方法和数据封装技术,使程序代码具有继承性,减少维护工作量性能要求系统应具有快捷的响应速度,不应随着数据量的增加而使速度大幅度下降
[17]
4.
1.2系统体系结构本系统采用C/S(Client/Server)体系结构,即客户机和服务器结构这种体系结构模式是以数据库服务器为中心、以客户机为网络基础、在信息系统软件支持下的两层结构模型这种体系结构中,用户操作模块布置在客户机上,数据存储在服务器上的数据库中客户机依靠服务器获得所需要的网络资源,而服务器为客户机提供网络必须的资源C/S体系结构见图
4.1B/S三层体系结构采用三层客户/服务器结构,在数据管理层Server和用户界面层Client增加了一层结构,称为中间件Middleware,使整个体系结构成为三层三层结构是伴随着中间件技术的成熟而兴起的,核心概念是利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次三个层次的划分是从逻辑上分的,具体的物理分法可以有多种组合
[18]中间件作为构造三层结构应用系统的基础平台,提供了以下主要功能负责客户机与服务器、服务器与服务器间的连接和通信;实现应用与数据库的高效连接;提供一个三层结构应用的开发、运行、部署和管理的平台这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能图
4.1C/S体系结构图Fig
4.1E-RC/SSystemstructure目前大多数信息系统是采用Client/Server结构C/S体系结构根据系统规模需要相应的硬件配置,一般建立在小范围网络环境上,局域网之间再通过专门服务器提供连接和数据交换服务C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑
[19]
4.2系统功能设计系统功能结构设计在遵循结构化和模块化设计思想基础上,实现子系统的划分和功能模块之间关系的确定使用模块化设计方法,把一个复杂的系统分解为多个功能较单一的功能模块,一方面,各个模块具有相对独立性,可以分别加以设计实现,另一方面,确保模块之间的相互关系,各模块在这些关系的约束下共同构成一个统一的整体,完成系统的功能系统功能的设计,应当遵循结构化和模块化的思想结构化设计思想,就是把系统设计成由相对独立、功能单一的模块组成的层次结构模块化设计思想,就是将系统设计成由相对独立、单一功能的模块组成的结构,从而简化研制工作,防止错误蔓延,提高系统的可靠性
[20]在这种模块结构图中,模块之间的调用关系非常明确、简单每个模块可以单独的被理解、编写、调试、查错与修改模块结构整体上具有较高的正确性、可理解性与可维护性根据系统分析阶段需求分析,遵循结构化和模块化的设计思想,系统主要功能结构见图
4.2图
4.2系统功能结构图Fig
4.2Systemfunctionstructure
4.
2.1药品入库管理功能药品入库管理主要是对药品入库各功能进行管理药品入库当采购的药品到达药库时,将药品入库信息添加到药品入库表中,包括药品信息、供应商信息和进货价格、数量信息其中药品信息包括药品编码、药品类别、药品名程、规格、单位、效期等信息供应商信息包括供应商码和供应商名等信息在药品入库时,自动生成入库单流水号,依据入库单流水号可对药品入库信息进行查询统计等功能药品信息输入完毕后,可对药品信息进行记账入库在入库时,还可以输入本单据的入库凭证号,可对本入库单据信息进行打印、虚打印等功能所谓单据虚打印,就是给本单据设置打印标志因为只有单据打印了才算是正式入库,才能结账任何一个单据如果不打印或者不虚打印,只能是出于信息输入状态入库单重新打印入库单重新打印功能就是重新打印入库单据于因为在药品入库中,只有单据打印了或者需打印了才能进行入库记账在很多情况下,需要进行入库单的重新打印入库单重新打印,需要入库单号或者发票号进行查询索引,找到要打印的单据后才能重新打印填制入库凭证每张入库单据的信息都要进入财务系统进行管理的,因此财务系统要对本单据信息进行结算时要制作财务凭证的在药库业务管理中,鉴于与财务信息的关联查询,需要输入每笔业务入库单据的财务凭证信息药品入库查询药品入库查询就是要对药品入库的各种信息进行查询查询的信息包括入库凭证号、入库单据号、入库日期、购进单位、药品名称、规格、产地、数量、单价、批次、有效日期等信息查询的条件是查询关键项目的各种组合条件的联合查询,可以单项某条件的查询,也可以是多项条件的查询条件的随意组合查询的关键项包括入库单据的起始结束日期、购进单位、药品类别、凭证号、入库单号、药品编码、拼音码、业务员等药品入库统计药品入库统计就是要对入库的药品进行统计,主要是入库数量和金额的统计,统计的条件是统计关键项目的各种组合条件的联合组合,可以单项某条件的统计,也可以是多项条件的统计条件的随意组合统计的关键项包括入库单据的起始结束日期、购进单位、药品类别、凭证号、入库单号、药品编码、拼音码、业务员等采购单位入库明细采购单位入库明细主要是列出某采购单位所有药品的入库明细,有利于与采购单位药品信息的对账、结算、退药等业务的实现采购单位入库明细以采购单位和某时间段位主列出药品明细列出的药品内容有入库日期、药品名称、规格、药品单位、产地、数量、批发价、进价、进价金额、药品批次、有效日期,购进业务员等信息药品入库明细药品入库明细是按入库时间的先后顺序对所有入库的药品进行排列是药品入库的流水记录单,以某时间段为基准列出药品的对象包括日期、业务单位、药品名称、规格、药品单位、产地、数量、价格、金额、业务员等信息同时还可以把入库明细以文本文件的格式或者电子表格的形式转存到磁盘上保留,以便于库存对账和永久存放
4.
2.2药品出库管理功能药品出库管理主要是对药品出库各功能进行管理药品出库药品出库,就是依据医院各科室的需求,将药库药品出库到医院各医疗用药单位药品出库单将记录这些出库到医院各单位的药品及其他信息,这些信息包括医院用药单位和出库价格、数量其中药品信息包括药品编码、药品类别、药品名程、规格、单位、效期等信息在药品出库时,自动生成出库单流水号,依据出库单流水号可对药品出库信息进行查询统计等功能药品出库信息输入完毕后,可对药品信息进行出库记账在出库时,可对本出库单据信息进行打印、虚打印等功能所谓单据虚打印,就是给本单据设置打印标志因为只有单据打印了才算是正式出库,才能结账任何一个单据如果不打印或者不虚打印,只能是出于药品出库输入状态药品出库单重新打印药品出库单重新打印就是重新打印药品出库单据于因为在药品出库中,只有单据打印了或者需打印了才能进行出库记账在很多情况下,需要进行出库单的重新打印出库单重新打印,需要出库单号进行查询索引,找到要打印的单据后才能重新打印药品出库查询药品出库查询就是要药库对出库到医院各部门的药品进行查询查询的信息包括出库凭证号、出库单据号、出库日期、领药单位、药品名称、规格、产地、数量、单价、批次、有效日期等信息查询的条件是查询关键项目的各种组合条件的联合查询,可以单项某条件的查询,也可以是多项条件的查询条件的随意组合查询的关键项包括出库单据的起始结束日期、用药单位、药品类别、凭证号、出库单号、药品编码、拼音码、业务员等药品出库统计药品出库统计就是统计药库出库到医院各单位的药品数量及金额统计的条件是统计关键项目的各种组合条件的联合组合,可以单项某条件的统计,也可以是多项条件的统计条件的随意组合统计的关键项包括出库单据的起始结束日期、用药单位、药品类别、凭证号、入库单号、药品编码、拼音码等药品出库单位明细药品出库单位明细主要是列出医院用药单位从药库出库的药品明细,有利于与医院用药单位药品信息的对账、退药等业务的处理出库明细以用药单位和某时间段位主列出药品明细列出的药品内容有出库日期、药品名称、规格、药品单位、产地、数量、金额、药品批次、有效日期等信息药品出库明细药品出库明细是按出库时间的先后顺序对所有出库的药品进行排列是药品出库的流水记录单,以某时间段为基准列出药品的对象包括日期、用药单位、药品名称、规格、药品单位、产地、数量、金额等信息同时还可以把出库明细以文本文件的格式或者电子表格的形式转存到磁盘上保留,以便于库存对账和永久存放
4.
2.3药品库存管理功能药品库存管理主要是对库存药品的各项业务进行管理药品库存清单药品库存清单主要是按照药品种类或者按照药品拼音码查询药品库存信息的查询浏览的药品属性主要有药品编码、名称、类别、规格、单位、药品库存,计划库存等信息药品分类库存查询药品分类库存查询主要是按照药品类别查询药品库存信息的,查询信息包括药品编码、名称、规格、单位、零售价、批发价、产地、批号有效日期数量等信息药品明细账查询药品明细账查询,主要是查询每种药品的入出库明细账对每种药品的入库出流水信息、结存信息、入出库日期、入出库业务单位、药品名称、产地、批号、有效日期、业务员、每笔业务的操作员等提供详细的记录信息药品入出库汇总药品入出库汇总主要是汇总每种药品的入出库情况的对每种药品在一定时间段内的期初数量、入库数量、出库数量以及结存数量给出准确的统计信息药品有效期查询药品有效期查询主要是对每种库存药品的过期信息进行查询以及分析对每种药品的产地信息、批次信息、库存数量有效日期等信息进行浏览,重要的是分析每种药品在规定时间内是否过期、以及药品的有效期天数和过期天数,这对减少过期药品数量,避免药品的浪费提供了有利的保障不动销药品库存查询不动销药品库存查询主要是统计查询药品在一定时间内的滞销情况的,查询统计在一定的时间内没出库的药品的种类、名称、数量产地、效期等对滞销药品的库存处理提供了必要的监控措施库存盘点调账库存盘点调账是对库存药品的盘点情况、盘盈、盘亏、过期作废、药品破碎等情况下进行的计算机库存账目的调整做到每种药品库存账物相符,库存数量的变化都有详细的记录可查
4.
2.4药品财务记账管理功能药品财务记账管理功能主要是针对药品财务信息进行综合管理和处理的药品财务记账通业务记账一样,财务记账是对药品的财务库存数量进行增减财务库存同业务库存是不一样的,业务库存是动态实时变化的而财务库存只有财务人员做了凭证后财务记账,财务库存才发生变化但至月底或年底,业务库存和财务库存是相等的药品财务商品帐主要是对药品的财务商品帐进行查询的查询具体内容同业务商品帐查询药品财务库存药品财务库存主要是对药品的财务库存进行查询,可按类别查询,也可按拼音码查询药品财务查询药品财务查询主要是对药品的财务信息进行综合查询的,比如购进单位的账务信息、医院领药单位的结算信息等财务凭证查询主要是按凭证对财务信息进行查询的,实现与医院独立的财务系统的对接财务入出库查询主要是对财务的入出库信息进行查询查询的项目同业务入出库信息查询
4.
2.5药品计划管理功能药品计划管理功能主要是对药品的计划进行综合处理及管理的药品购进参考药品购进计划参考主要是列出每种药品历史购进药品的参数主要包括每种药品购进的最低进价、最低进价药品购进的单位、以及最低进价购进药品的日期,以对制定购进药品计划时提供参考药品购进计划根据一定时间段内药品的出库情况、库存药品数量以及要求的标准库存数量,自动给出每种药品的需求计划这在很大程度上实现了药品购进的自动化管理,提高了药品购进的准确性购进计划调整根据实际情况,对系统自动形成的计划进行调整,以应对医院药库用药季节性变化等特殊情况下对药品计划的调整购进计划查询购进计划查询主要实现对购进计划的综合组合查询包括计划号、计划日期、药品名称、数量、计划制定人等
4.
2.6系统维护功能系统维护功能主要是系统的动态的字典信息类药品特性进行动态维护包括如下功能药品档案维护药品档案信息是药品的最基本的信息,是药品所有业务处理的根本和基础所有业务的处理都基于药品档案信息药品档案定义的主要信息有药品编码、药品名称、药品条形码、类别、规格、药品单位、拼音码、最高库存、最低库存、计划标准库存以及药品的各种价格药品的维护必须具有相应权限管理人员来执行药品类别维护主要是对药品的类别进行动态维护,保证药品类别的统一性和一致性药品规格维护主要是对药品的规格进行动态维护,保证药品规格输入的快速、准确、统一药品计量单位维护主要是对药品的单位进行动态维护,保证药品单位输入的快速、准确、统一人员档案维护主要是对业务人员以及操作人员进行动态修改及维护购销用户资料维护购销用户资料维护主要是对本系统的药品购进单位和本医院的药品出库单位进行建档对药品入出库单位进行规范化管理,有利于业务及财务数据的准确、完整、规范和管理的方便操作员口令修改操作员口令修改是由操作人员修改自己的口令登陆密码使得系统安全性能更加提高,人员责任更加到位操作员口令修改时必须输入原口令,并且原口令最多输入三次,超过三次,系统拒绝继续操作年初始化结账主要是实现年底结算和年初药品业务信息、财务信息的初始化工作主要是初始化各类统计信息、各类药品的业务库存和财务库存的初始化信息
4.3数据库设计数据库的设计是指数据库中各个表结构的设计,包括信息保存在哪些表格中、各个表的结构如何及各个表之间的关系
4.
3.1数据库设计原则数据库设计是信息系统开发的关键,不同的设计方案将影响数据的访问方式及编程效率,数据库设计要遵循以下原则一致性原则对数据进行系统、统一的分析与设计,协调好各数据源,做到“数出一门”、“算法统一”、“度量一致”,保证系统数据的一致性和有效性完整性原则数据库的完整性是指数据的正确性和相容性要防止合法用户使用数据库时向数据库加入不合语义的数据
[21]对输入到数据库中的数据要有审核和约束机制完整性包括实体完整性、参照完整性、用户定义完整性安全性原则数据库的安全性是指保户数据,防止非法用户使用数据库或合法用户非法使用数据库造成数据泄露、更改或破坏,要有认证和授权机制可伸缩性原则数据库结构的设计应充分考虑发展的需要、移植的需要、具有良好的扩展性、伸缩性和适度冗余规范化原则数据库的设计应遵循规范化理论,规范化程度过低的关系,可能会存在插入、删除异常、修改复杂、数据冗余等问题,解决的方法就是对关系模式进行分解或合并规范化,转换成高级范式
[22]
4.
3.2SOLServer2000关系数据库的约束条件在数据库管理系统中,建立和使用约束的目的是确保数据的完整性,约束是SQLServer强制实行的应用规则它能够限制用户存放到表中数据的格式和可能值,约束作为数据库定义的一部分在CREATETABLE语句中声明,所以又称作声明完整性约束约束独立于表结构,可以在不改变表结构情况下通过ALTERTABLE语句来添加或者删除在删除一个表时,该表所带的所有约束定义也随之被删除在SQLServer中约束主要包括以下几种PRIMARYKEY主键约束;FOREIGNKEY外键约束;UNIQUE唯一约束;CHECK检查约束;DEFAULT默认约束;PRIMARYKEY主键约束主键约束用来强制数据的实体完整性,它是在表中定义一个主键来唯一标识表中的每行记录主键约束有如下特点每个表中只能有一个主键,主键可以是一列,也可以是多列的组合;主键值必须唯一并且不能为空,对于多列组合的主键,某列值可以重复,但列的组合值必须唯一FOREIGNKEY外健约束外键是指一个表中的一列或列组合,它虽不是该表的主键,但却是另一个表的主键通过外键约束可以为相关联的两个表建立联系,实现数据的引用完整性,维护两表之间数据的一致性关系UNIQUE惟一约束唯一约束用来强制数据的实体完整性,它主要用来限制表的非主键列中不允许输入重复值唯一约束有如下特点一个表中可以定义多个唯一约束;每个唯一约束可以定义到一列上,也可以定义到多列上空值可以出现在某列中一次CHECK检查约束检查约束用来强制数据的域完整性,它使用逻辑表达式来限制表中的列可以接受哪些数据值DEFAULT默认约束默认约束用来强制数据的域完整性,它为表中某列建立一个默认值,当用户插入记录时,如果没有为该列提供输入值,则系统会自动将默认值赋给该列默认值可以是常量、内置函数或表达式使用默认约束可以提高输入记录的速度
4.
3.3关系数据库的规范化设计关系数据库设计之时是要遵守一定的规则的,尤其是数据库设计范式关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式满足最低要求的是第一范式,简称1NF在第一范式中满足进一步要求的为第二范式,其余以此类推第一范式1NF在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系第二范式2NF如果关系模式RU,F在满足第一范式的条件下,所有非主属性都完全依赖于主关键字,则称关系R是属于第二范式的第三范式3NF如果关系模式RU,F在满足第一范式的条件下,所有非主属性对主关键字都不存在传递信赖,则称关系R是属于第三范式的BCNF如果关系模式RU,F在满足第一范式的条件下,所有属性包括主属性和非主属性都不传递依赖于R的主关键字,那么称关系R是属于BCNF的
[23]
[24]综合上述的几种数据库规范标准,一个关系可以分解成多个关系,要使得分解有意义,起码的要求是分解后不丢失原来的信息这些信息不仅包括数据本身,而且包括由函数依赖所表示的数据之间的相互制约进行分解的目标是达到更高一级的规范化程度,但是分解的同时必须考虑两个问题无损联接性和保持函数依赖有时往往不可能做到既有无损联接性,又完全保持函数依赖需要根据需要进行权衡
4.
3.4数据库表结构设计按照上述提出的数据库设计原则,药库管理系统的数据库表设计严格遵守了关系数据库表的约束以及规范化设计等要求,尽可能的采用了满足第三范式标准同时考据到查询的速度要求尽量少的表的关联和实际需求,又保留了信息的应有部分的合理冗余限于篇幅原因,数据库表结构设计分只给出了以下部分数据表结构的设计药品档案信息表gl_ypda药品档案信息表记录了药品的基本信息,是药品所有其他表的基础,见表
4.1表
4.1药品档案信息表Table
4.1Drugfileinformationtable字段名称字段说明数据类型长度小数位允许空其他说明Yp_id编码char6NotnullPRIMARYKEYYp_name名称char40NotnullYp_txm条形码char13NotnulYp_bm_name别名varchar40Yp_lb类别char2NotnullYp_gg规格char12NotnullYp_dw单位char20NotnullYp_pym拼音码varchar20NotnullYp_bm_pym别名拼音码varchar20Yp_lsj零售价numeric103NotnullYp_pfj批发价numeric103NotnullYp_pjdj平均价numeric103Yp_end_gjdj最后进价numeric103Yp_ckdj出库价numeric103Yp_qtj其他价numeric103Yp_end_rq最后进价日期char10Yp_zdjj最低进价numeric103Yp_zdjjdw最低进价单位char40Yp_yp_zdjjrq最低进价日期char10Yp_kc库存numeric103NotnullYp_zm_kc账面库存numeric103Yp_kcje库存金额numeric103NotnullYp_kcsx库存上限numeric103Yp_kcxx库存下限numeric103Yp_bzkc标准库存numeric103药品入库信息表gl_yprk药品入库信息表记录了药品的入库信息,相关属性描述见表
4.2表
4.2药品入库信息表Table
4.2Drugstorageinformationtable字段名称字段说明数据类型长度小数位允许空其他说明Yw_fph发票号char8NotnullUNIQUEYw_dw购进单位char40NotnullYw_rkdh入库单号char8NotnullYw_rq入库日期char10NotnullYp_id药品编号char6NotnullYp_name药品名称char40NotnullYp_gg药品规格char12NotnullYp_cd产地varchar40NotnullYp_dw药品单位char20NotnullYp_sl入库数量numeric103NotnullYp_gjdj入库单价numeric103NotnullYp_je入库金额numeric103Yp_lsj零售价numeric103Yp_pfj批发价numeric103Yp_qtj其他价numeric103Yp_pc药品批次char20NotnullYp_yxrq有效日期char10NotnullYp_pym拼音码char20Yp_bm_pym别名拼音码char20If_kc_jz业务记账标记char1初始0If_cw_jz财务记账标记char1初始0Yp_kc_jzrq业务记账日期char10Yp_cw_jzrq财务记账日期char10czy操作员代码char3id唯一ID标识char13NotnullUNIQUE药品出库信息表gl_ypck药品出库信息表记录了药品的出库信息,相关属性描述见表
4.3表
4.3药品出库信息表Table
4.3Drugdeliveryinformationtable字段名称字段说明数据类型长度小数位允许空其他说明Yw_ckdh出库单号char8NotnullUNIQUEYw_fph出库发票号char8Yw_dw出库单位char40NotnullYw_rq出库日期char10NotnullYp_id药品编号char6NotnullYp_name药品名称char40NotnullYp_lb药品类别编码char3NotnullYp_gg药品规格char12NotnullYp_cd产地varchar40NotnullYp_dw药品单位char20NotnullYp_pym拼音码char20Yp_bm_pym别名拼音码char20Yp_pc药品批次char20NotnullYp_yxrq有效日期char10NotnullYp_sl出库数量numeric103NotnullYp_lsj零售价numeric103Yp_pfj出库价numeric103Yp_gjdj入库单价numeric103NotnullYp_ckdj出库单价numeric103NotnullYp_je出库金额numeric103czy操作员代码char3id唯一ID标识char13NotnullUNIQUEYp_txm条形码char13Notnulbeizhu备注Varchar40药品库存表yw_ypkc药品库存信息表记录了药品的业务、财务的动态库存信息,相关属性描述见表
4.4表
4.4药品库存信息表Table
4.4DrugstocksInformationtable字段名称字段说明数据类型长度小数位允许空其他说明Yp_id药品编号char6NotnullYp_name药品名称char40NotnullYp_bmname药品别名char40Yp_txm条形码char13NotnulYp_lb药品类别编码char3NotnullFOREIGNKEYYp_gg药品规格char12NotnullYp_cd产地varchar40NotnullYp_pc药品批次char20NotnullYp_yxrq有效日期char10NotnullYp_dw药品单位char20NotnullYp_pym拼音码char20Yp_bm_pym别名拼音码char20Yp_lsj零售价numeric103Yp_pfj出库价numeric103Yp_ckdj出库单价numeric103NotnullYp_pjdj平均单价numeric103Yp_end_gjdj最后单价numeric103Yp_yw_sl业务库存数量numeric103NotnullYp_yw_je业务库存金额numeric103Yp_cw_sl财务库存数量numeric103NotnullYp_cw_je财务库存金额numeric103beizhu备注Varchar40药品入出库明细表yw_ypmxz_yw药品入出库明细表记录了每种药品的入出库明细,相关属性描述见表
4.5表
4.5药品入出库明细表Table
4.5Drugslistofreceiptnoteandissuenotetable字段名称字段说明数据类型长度小数位允许空其他说明Yw_nd年度char4NotnullYw_rq日期char8NotnullYw_dw业务单位char40NotnullYw_rckdh入出库单号char8Yw_rckdj入出库单据Char8Yw_zy摘要说明Char20Yp_rcksm入出库说明Int11入库-1出库Yp_id药品编号char6NotnullYp_name药品名称char40NotnullYp_rk_sl入库数量numeric103Yp_rk_dj入库单价numeric103Yp_rk_je入库金额numeric103Yp_ck_sl出库数量numeric103Yp_ck_dj出库单价numeric103Yp_ck_je出库金额numeric103Yp_jcsl结存数量numeric103Yp_jcje结存金额numeric103Yp_gg药品规格char12NotnullYp_cd产地varchar40NotnullYp_pc药品批次char20NotnullYp_yxrq有效日期char10NotnullYp_dw药品单位char20Notnullywy业务员代码char3id唯一ID标识char13NotnullUNIQUE
4.4系统安全设计考虑到任何人,只要是能够打开数据库就可以查看到用户信息其中包括用户密码,从而可以盗用他人的用户信息对数据库进行数据操作,这样系统的安全性将会大大降低,因此必须给用户信息进行加密药品管理部分的系统中需要加密的是用户密码用户密码的加密采用在客户端加密的方式,信息的传递以密文的方式进行数据库中存放的密码也应为加密后的密文,这样即使是数据库的管理员也无从知道用户的个人密码,从而保证了用户的私人信息加密采用目前比较成熟的MD5MessageDigestAlgorithm5不可逆加密算法由于该加密方法是不可逆的,因此如果需要验证用户密码是否正确只需将用户提供的密码使用MDS加密后和数据库中存放的密文做比较即可
[25]此外备份与恢复是实现信息系统安全运行的重要技术之一,是确保系统因不测事件受到破坏时,能尽快投入再使用的重要保证药品管理部分的系统提供一表及多表定时备份功能,这样就可以避免系统在受到非灾难性破坏时数据的全部丢失从而保证了数据的完整性和正确性在用户对数据进行操作时系统还建立了相应的日志机制,用来记录用户在系统中进行活动的相关信息例如用户帐号名称、登陆时间、操作描述等通过日志记录可以清楚地追踪相关用户的操作,从而可以达到制止个别授权用户对数据的恶意修改行为
[26]
4.5小结本章主要对系统的设计进行了全面的说明,主要说明了系统的设计规则、系统的体系结构、系统的功能设计、系统的数据库设计以及系统安全设计,为系统的实现做好准备工作第5章系统实现系统实现阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得到对目标系统的精确描述,在编码阶段可以直接翻译成用某种程序设计语言书写的程序
5.1系统环境配置
5.
1.1系统硬件环境医院药库管理系统要求在网络环境下运行系统硬件包括服务器、工作站、网卡、路由器、集线器、双绞线、打印机和UPS电源等,在选择时需要根据不同的网络应用需求,进行整体的分析和考虑服务器网络的重点设备,采用专用服务器,网络性能要比普通计算机好很多工作站选择流行机种,以满足需求的基本配置为度,数量的选择兼顾集线器端口的数量,一般集线器常见端口数为8口、12口、16口和24口,不要造成太多的端口浪费网卡工作站计算机选择10M/100M自适应PCI总线网卡,专用服务器采用1000M网卡路由器采用华为的AR18-2X系列的路由交换机该款路由器采用MPC8247266MCPU,64MMEMORY,8MFLASH,2个WAN接口,24个LAN接口包转发速率为148800pps采用双WAN接口能够实现链路备份,交换机端口支持VLAN划分,同时支持Web网管、端口镜像等特性接入交换机采用华为S2126-EI-ENT-AC交换机该款交换机具有25个10/100M以太网电口,二层转发速率
3.87Mpps,可以划分512个VLAN最多支持4K个MAC地址,支持IEEE8023x流控(全双工,同时支持WEB网管,端口镜像等特性集线器集线器的选择很大程度取决于组建的局域网的网络工作性质,各工作站的网络通信主要是与服务器之间的通信,工作站之间通信较少,这种情况可以采用10M/100M自适应集线器来组建局域网双绞线采用5类或超5类双绞线,每根UTP需要两个RJ-45连接器(俗称水晶头)打印机选择流行的打印机即可,一般选择针式打印机,即实惠耐用又廉价方便网络设备分为网络交换设备、路由设备、服务器设备、磁盘阵列存储设备、终端工作站、打印设备以及UPS电源根据需要分别选择供服务器使用的UPS电源和供工作站使用的UPS电源
5.
1.2系统软件环境系统的软件配置包括网络操作系统、数据库管理系统、系统开发平台、工作站客户端系统、网络协议等网络操作系统选择最流行的Windows2000Server网络操作系统数据库管理系统选用SQLServer2000以及其客户端软件系统开发平台选用PowerBuilder9.0软件开发工具工作站客户端系统可适当选用WindowsXP或Windows2000Personal网络协议:选用网际互联协议TCP/IP协议,对于服务器采用静态IP地址的方式以提高网络速度
5.2系统实现的关键技术
5.
2.1PowerBuilder的数据窗口技术
5.
2.
1.1数据窗口介绍数据窗口对象DataWindow是PowerBuilder的核心,它是PowerBuilder的高级结构,它对数据的处理方法相当简洁而有效,将数据访问封装到功能强大的、智能的、以数据为中心的对象中在实际应用中,经常要对数据库进行操作,利用PowerBuilder开发应用程序,使用数据窗口与数据库通信是非常有效的在数据窗口中可以方便的操作数据库,不但可以对每个数据库的表进行检索、查询、插入、删除和更新,还可以为数据指定输入格式、输出格式和显示风格等等另外,在数据窗口中,还可以为数据窗口添加各种对象来装饰并增强它的功能数据窗口既是数据库操作工具,又是界面的重要组成部分数据窗口是PowerBuilder提供给开发人员的快速建立应用程序的强有力的工具,也是PowerBuilder与其他面向对象的数据库应用前端开发工具的最主要区别
[27]它以自动化的用户/数据库接口为开发人员最大限度的节省了时间和精力,但这种自动化并不限制开发人员的主观能动性,开发者能够以独具特色的方式灵活运用数据窗口数据窗口包括两方面的内容数据窗口对象和数据窗口控件数据窗口对象主要用于展示数据并允许用户增删改数据,数据窗口控件则把数据窗口对象放置到窗口上并呈现在用户面前
5.
2.
1.2数据窗口的构造在构造数据窗口对象时,首先要考虑两方面的内容数据和显示样式风格,数据窗口对象中的数据来源于数据源,数据源决定了数据窗口对象从什么地方得到数据显示风格决定了数据窗口以何种方式展示、表现数据大连理工大学硕士学位论文数据窗口对象主要用于操作数据库中的数据,除了不能完成数据库中数据定义包括定义表和视图、修改表与视图定义、删除表与视图外,不仅能够图形化的增加、删除、修改、更新、查询数据库中的数据,而且还可以指定数据的输入格式和输出格式,以及数据的显示风格,同时,开发人员还可以在数据窗口对象中增加多种对象包括按钮、静态文本框、图片等应用程序中使用的数据窗口通常由数据窗口对象和数据窗口控件两部分组成数据窗口控件是粘贴到窗口上的一个对象,与OLE控件有点类似数据窗口对象是粘贴到数据窗口控件或数据存储中的对象,它通过数据窗口画笔来创建,并保存到应用库中通过数据窗口对象与数据窗的配合使用,完成数据的显示、增加、删除、修改等操作使用数据窗口对象的一般方法为使用数据窗口画笔创建数据窗口对象,并把它保存到应用库中数据窗口对象的处理机制首先是根据所需的显示方式将数据源表中的列字段设计好,在运行时将所要的数据从数据库服务器上下载到客户机上处理,然后将更改后的数据进行提交Commit或回滚Rollback这种处理机制大大降低了数据的传输量,减轻了网络的负担,也提高了数据的处理速度
5.
2.
1.3数据窗口技术在系统中的应用药库管理部分的各个子系统实现大量的使用到数据窗口技术通过数据窗口,药品信息管理系统完成数据库中药品信息的表格数据的显示和变更在需要显示数据库数据源的窗口中,可以方便的定制各种数据窗口对象显示风格来满足不同用户需求,从而进行数据行的增加、删除和更改此外,在不需要显示数据库中数据的时候,还可以利用数据窗口对象和数据存储对象,在应用程序中实现对数据的检索、删除和更改等操作一个数据窗口对象可以封装复杂的SQL语句,因此使程序的编写更加方便和容易
5.
2.2数据库事务处理事务是整体成功或失败的操作,事务处理用于对数据库进行可靠的更新也就是说,在一次事务活动中,要么所有的操作都成功,要么所有的操作都失败,从而保证关系数据库中数据的完整性
[28]特别是在一些商业应用程序中更需要具有在事务内部运行脚本和组件的能力,它的事务是一种服务器操作,即使该操作包括很多步骤(如定货、查看帐单、付款等),都只能整体返回操作是成功还是失败用户可以创建在事务内部运行的PB脚本程序,如果脚本的任何一部分执行失败,那么整个事务都应该终止事务的开始和结束可以由用户显式控制,定义事务的语句有3条BEGINTRANSACTION、COMMIT、ROLLBACK事务通常以BEGINTRANSACTION开始,以COMMIT或ROLLBACK结束COMMI表示提交,即提交事务的所有操作具体的说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中事务正常结束ROLLBACK表示数据回滚,即在事务运行的过程中发生了某种故障,事务不能继续运行,系统将事务中对数据库的所有已完成的操作全部撤销,回滚到事务开始的状态事务结束由于事务的原子性、一致性、隔离性和持续性,保证了在数据在并发控制下的完整性、准确性
5.
2.3数据库的数据连接PowerBuilder是数据库的专用开发工具,在与数据库连接时有两种方式,一种是通用的开放式数据库接口ODBC,一种旨在提高数据库访问效率的专用数据库接口通过ODBC与数据库链接,速度较慢,效率较低专用数据库接口就是在powerbuilder中直接与数据库连接的接口,每个专用的数据库接口使用自己的接口,通过厂家指定的数据库操作API函数与制定的数据库连接
[29]Powerbuilder提供了SQLServer系列的专用数据库接口,是以动态链接库形式提供的这种方式存取数据的速度要比采用ODBC方式存取数据速度上快很多Powerbuilder连接数据库时提供了如下连接参数DBMSstring:所使用的数据库管理系统的名字;Databasestring:要连接的数据库名字;UserIDstring:连接数据库所用的用户名;DBPassstring:用户连接数据库的口令;Lockstring:这是数据库的保护级别,一般不必给出;LogIDstring:登录到数据库服务器上的用户名;LogPassstring:登录到数据库服务器上的用户口令;ServerNamestring:数据库服务器名;AutoCommitboolean:指定是否将数据库设置成自动提交所有事务默认是False,也就是说,必须在应用程序中进行事务管理,并在适当的时候对数据库提交事务如果选择True,则每个事务都由系统自动提交除此之外,PowerBuilder还提供了与SQLServer数据库连接的数据通信区SQLCA因此与数据库连接时只要利用SQLCA通信区给以上参数赋值即可SQLCA.dbms=MSSMicrosoftSQLServer//接口类型SQLCA.database=//数据库SQLCA.userid=//连接数据库所用的用户名SQLCA.dbpass=//用户连接数据库的口令SQLCA.logid=//登录到数据库服务器上的用户名SQLCA.logpass=//登录到数据库服务器上的用户口令SQLCA.serverName=//服务器名SQLCA.autocommit=false//如果选择True,则每个事务都由系统自动提交
5.3系统主要功能的实现在系统设计的基础上,按照软件工程的标准和规范,本着性能稳定、功能齐全、界面友好、操作简便的原则,结合医院的实际需求,重点考虑了系统的可使用性性、灵活性、复杂性和可靠性,进行了界面设计和程序编码,实现了系统设计的功能系统主界面见图
5.1图
5.1系统主界面Fig
5.1Themaininterface
5.
3.1系统登录模块的实现运行该系统,首先运行登录模块,只有是系统的合法用户并且口令字正确的情况下,才能允许用户登录任何非法用户或者用户口令字与系统不符合,系统都将拒绝登录每个用户登录输入口令字的机会有3次,口令字超过三次,系统拒绝登录,自动退出
5.
3.
1.1登录界面的实现系统登录时间不超过60秒,超过60秒系统自动退出见面见图
5.2图
5.2系统登录界面Fig
5.2Systemlogininterface
5.
3.
1.2登录模块程序流程图系统登录模块程序流程图见图
5.3图
5.3系统登录程序流程图Fig
5.3SystemloginProgramflowchart
5.
3.2药品入库模块的实现药品入库管理的功能是实现药品的入库、生成入库单号、填入入库凭证、对入库信息进行增加、删除、修改等操作,实现药品存盘、入库打印(入库单虚打印)、库存记账等功能为了方便药品的快速输入,系统全部采用拼音码方式索引,输入拼音后,在库存药品信息中列出所有包含次拼音的药品,由操作员选择
5.
3.
2.1药品入库界面的实现药品入库界面提供了药品入库的用户界面见图
5.4入库界面提供了药品输入、记录增加、记录删除、单据打印、存盘、退出等入库操作的各种功能图
5.4药品入库界面Fig
5.4Drugstorageinterface
5.
3.
2.2药品入库模块程序流程图药品入库模块程序流程图见图
5.
55.
3.3药品入库查询管理模块入库查询主要是查询药品入库情况的,实现按照入库日期、购进单位、药品类别、凭证号、入库单号、药品编码、拼音码以及业务员综合组合查询图
5.5药品入库程序流程图Fig
5.5DrugstorageProgramflowchart
5.
3.
3.1药品入库查询模块主界面药品入库查询主界面提供了用户查询入库的界面,见图
5.
65.
3.
3.2药品入库查询模块程序流程图药品入库查询模块程序流程图见图
5.
75.
3.4药品出库管理模块药品出入库管理的功能是根据医院各科室部门的用药计划实现药品的出库、生成出库单号、填入出库凭证、对出库信息进行增加、删除、修改等操作,实现药品存盘、出库打印(出库单虚打)、库存记账等为了方便药品快速输入,系统全部采用拼音码方式索引,输入拼音后,在库存药品信息中列出所有包含次拼音的药品,由操作员选择图
5.6药品入库查询界面Fig
5.6DrugstorageQueryinterface图
5.7药品入库查询程序流程图Fig
5.7DrugstorageQueryProgramflowchart
5.
3.
4.1药品出库模块主界面药品出库主界面提供了用户出库的界面操作,见图
5.8图
5.8药品出库界面Fig
5.8Drugdeliveryinterface
5.
3.
4.2药品出库模块程序流程图药品出库模块程序流程图见图
5.
95.
3.5药品出库查询管理模块出库查询主要是查询药品出库情况的,实现按照出库日期、出库单位、药品类别、凭证号、出库单号、药品编码、拼音码等综合组合查询
5.
3.
5.1药品入库查询模块主界面药品出库查询主界面提供了用户查询出库信息的界面,见图
5.
105.
3.
5.2药品出库查询模块程序流程图药品出库查询模块程序流程图见图
5.
115.
3.6药品效期管理模块效期管理是药库管理非常重要的功能,本系统效期管理实现了具体到每一天的库存药品的效期信息药品是否有效以及药品的有效期天数,过期药品用不用颜色显示
5.
3.
6.1药品效期模块主界面药品效期管理主界面见图
5.12图
5.9药品出库程序流程图Fig
5.9DrugdeliveryProgramflowchart图
5.10药品出库查询界面Fig
5.10DrugdeliveryQueryinterface图
5.11药品出库查询程序流程图Fig
5.11DrugdeliveryQueryProgramflowchart图
5.12药品效期管理界面Fig
5.12DrugsExpirationdateManagementInterface
5.
3.
6.2药品效期管理模块程序流程图药品效期管理模块程序流程图见图
5.13图
5.13药品效期管理程序流程图Fig
5.13DrugsExpirationdateManagementProgramflowchart限于篇幅,本系统其他功能模块的实现,在再次不再在描述
5.4小结在系统设计的基础上,本章着重描述了系统的实现过程首先描述了系统的软硬件配置,描述了系统实现的关键技术,描述了系统登录模块、系统入库模块、系统入库查询模块、系统出库模块、系统出库模块查询、系统效期管理模块实现过程的主界面、程序流程图和实现的部分程序代码限于篇幅,系统其他模块的实现过程,本论文没有描述第6章系统测试系统测试是软件开发时期的最后一个阶段,也是软件质量保证中至关重要的一个环节在软件开发的过程中,尽管使用了许多保证软件质量的方法分析、设计和实现软件,但开发的软件难免会遗留一些潜在的错误和缺陷因此,在软件投入运行之前,必须依据一定的规则对软件进行全面的运行与检测,发现其中隐含的错误和缺陷,对测试发现的错误进行调试与调整,保证最终交付给用户的软件的准确性和健壮性
[30]
6.1软件测试原则和过程
6.
1.1软件测试原则软件测试的目标是想以最少的时间和人力找出软件中潜在的各种错误和缺陷,成功的测试是发现了错误的测试,附带的收获是,它能够证明软件的功能和性能与需求的相符基于这样的目的软件测试应遵从如下原则应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭不应把软件测试仅仅看作是软件开发的一个独立阶段,而应当把它贯穿到软件开发的各个阶段中错误发现的越早,修改的代价也就越小测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成测试以前应当根据测试的要求选择测试用例,用来检验程序员编制的程序,因此不但需要测试的输入数据,而且需要针对这些输入数据的预期输出结果程序员应避免检查自己的程序如果程序员测试自己编写的程序,对软件规格说明理解错误而引入的错误很难发现如果由别人测试的话,会更客观、更有效、更容易的发现错误在设计测试用例时,应当包括合理的输入条件和不合理的输入条件合理的输入条件是指能验证程序正确的输入条件,不合理的输入条件是指异常的,临界的,可能引起问题异变的输入条件充分注意测试中的群集现象在被测程序段中,若发现错误数目多,则残存错误数目也比较多根据这个规律,应当对错误群集的程序段进行重点测试,以提高测试投资的效益严格执行测试计划,排除测试的随意性测试计划应包括所测软件的功能、输入和输出、测试内容、进度安排、资源要求、测试用例的选择、测试的控制方式和过程等应当对每一个测试结果做全面检查必须对预期的输出结果明确定义,对实测的结果仔细分析检查,抓住特征,暴露错误
[31]
[32]
6.
1.2软件测试的过程软件测试的过程包括单元测试、组装测试、确认测试、系统测试软件总体测试流程图见图
6.1图
6.1软件总体测试流程图Fig
6.1SoftwareTestingFlowchart单元测试单元测试又称模块测试,是针对软件模块进行正确性检验的测试工作其目的在于发现各模块内部可能存在的各种差错单元测试需要从程序的内部结构出发设计测试用例多个模块可以平行地独立进行单元测试在这个测试步骤中所发现的往往是编码和详细设计的错误组装测试组装测试,又叫集成测试、联合测试通常,在单元测试的基础上,需要将所有模块按照设计要求组装成为系统组装测试需要考虑的问题是在把各个模块连接起来时,穿越模块接口的数据是否会丢失;一个模块的功能是否会对另一个模块的功能产生不利的影响;各个子功能组合起来,能否达到预期要求的父功能;全局数据结构是否有问题;单个模块的误差累积起来,是否会放大,从而达到不能接受的程度确认测试确认测试又称有效性测试任务是验证软件的功能和性能及其它特性是否与用户的要求一致;对软件的功能和性能要求在软件需求规格说明书中已经明确规定;要进行有效性测试以及软件配置复审,进行验收测试和安装测试,通过之后,才能成为可交付的软件系统测试系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试在测试过程中的每一部,若出现问题均需要修改系统,重新测试,即所谓跟踪测试其目的是为防止软件修改影响其它部分或者带来新的错误另外,在测试过程中填写测试日志、测试记录、测试事件报告等,测试完后要编制测试报告,给出系统可用性、稳定性等评价
[33]
6.2测试用例的设计及测试过程根据实际情况,设计测试用例进行测试首先以SA超级用户登录登陆后根据各模块的功能设计恰当的测试用例进行测试测试用例的设计必须符合软件工程测试规范的要求具体的测试用例、测试过程、数据测试结果以及各功能的测试结论如下
6.
2.1登录安全性测试以系统超级用户sa登录,成功建立用户user1,并设立user1默认密码超级用户sa第一次使用的密码即为超级用户的默认密码,sa登陆后成功修改密码Sa用户退出系统系统启动后,以user1身份登录,输入密码与user1不符,系统拒绝登录,3次拒绝登录后系统自动退出再次启动系统,以user1登录,输入正确密码后系统成功登录测试结论测试正确
6.
2.2系统基础数据字典维护测试建立药品类别信息01-针剂,02-片剂,03-中成药,04-医疗器械,05-进口药品,06-毒麻药品存盘成功建立药品档案字典信息药品编码-2020372,药品名称-Co新诺明,药品类别-针剂,药品规格-
0.5x15,药品单位-板,药品拼音码-SMZ,零售价-
2.900,批发价-
2.520存盘成功建立购销用户购进用户编码-2001,用户名称-胶州市医药公司,用药用户编码-1001,用户名称-门诊西药房存盘成功测试结论测试正确
6.
2.3药品购进系列模块测试进入药品购进模块,生成新入库单号-00000001,选择入库单位-胶州医药公司,根据拼音码输入入库药品-Co新诺明,药品批次-090812,有效日期-
2012.
09.19,入库数量-100,购进单价-
2.20存盘成功打印入库单正确查询库存药品-100正确药品购进查询-100正确药品购进统计-100正确测试结论测试正确
6.
2.4药品出库购进系列模块测试进入药品出库模块,生成新出库单号-00000001选择入库单位-门诊西药房根据拼音码输入出库药品-Co新诺明出库数量-
40.数据存盘成功打印入库单(记账)正确查询库存药品-60正确药品出库查询-40正确药品出库统计-40正确药品明细账入库-100正确出库-40正确结存-60正确测试结论测试正确
6.
2.5药品效期管理模块进入效期管理模块,结果显示Co新诺明库存-60正确有效期-
2012.
09.19正确有效期天数716天(测试日期是
2010.
10.04)正确测试结论结果完全正确
6.3测试结论通过测试,系统实现所有功能以及系统需求,测试用例的输入后,输出结果与输出测试用例结果一直,数据完全正确可以很好完成输入和输出,达到预期的效果
6.4小结本章描述了软件测试的必要性,描述了软件测试的规则及过程根据不同模块设计了测试用例,并对各模块进行了测试,得出了测试结论第7章结论本论文针对医院药库信息系统的设计与实现进行了综合说明和详细的论述医院药品管理系统的开发是一项较为复杂的系统工程,通过整个系统的需求分析、相关技术的应用,并结合胶州中心医院药品管理系统的经营业务管理工作的实际需要,对整个药品管理系统流程、功能需求、数据库设计等进行了详细的设计,对系统分析与开发实现过程运用到的关键技术进行深入的研究,设计实现了药品入库管理、药品出库管理、药品库存管理、药品财务管理,基本上实现了药库药品管理的自动化在系统的设计过程中,采用了的流行的数据库管理系统SQLSERVER2000作为后台数据库、面向对象的开发工具PowerBuilder9.0为前端开发平台,依据数据库设计规范和软件工程开发规范,系统架构合理,功能基本齐全,性能稳定可靠,具有良好的可移植性和可扩充性,基本实现了预期的设计需求,满足了用户的基本需求本系统具有如下特点采用c/s模式开发,客户端实现与服务器的直接相连,没有中间环节,响应速度快;系统的安全性较为完善,通过用户的权限分配、身份验证,使得系统安全性显著提高;界面友好、使用简洁方便,容错功能强;整个系统的药品入库、出库、查询、统计等功能的操作几乎全部通过拼音码实现,操作简单方便,查询信息准确,速度快;系统数据可通过Excel表格快速导出,方便地实现了系统数据与管理者的交换,可以帮助管理者更好的利用数据进行决策通过系统的开发,我深深地体会到第一,系统需求分析的重要性系统需求做的是否准确、是否完全理解用户的真实需求,是系统开发成败的关键第二,用户大都不是计算机专业人员,他们提出的需求是基于对使用及处理业务的描述,作为计算机程序设计人员在进行系统设计的过程中要超越用户的需求,在系统可移植性、可扩展性上要充分考虑用户业务的发展,要站在更高的角度进行系统的设计与开发第三,要严格按照软件工程的开发规则进行系统的开发,这样可少走弯路,不仅保障了软件开发的质量,更能加速软件开发的进度总之,实践出真知,通过本系统的开发,我学到了太多的书本上未学到的知识,目前由于条件所限,本系统是基于C/S模式下开发的,在条件成熟时,把本系统升级为B/S模式参考文献
[1]杜育雄、王平根.log线性模型在病案储存管理中的应用[J],医院信息,
2006.2,23-25
[2]王伟.医院信息系统的发展规划[J],中国卫生统计杂志,
2008.6,11-15
[3]微软公司.SQLServer2000数据库程序设计[M],高等教育出版社,2003,106-180
[4]美GavinPowell.BeginningDatabaseDesign[M],清华人学出版社,2006,56-68
[5]RaymondMcLeodJr.ManagementInformationSystem8thEdition[M],北京大学出版社,2006,195-199
[6]LanceMortensenRickSawtell.MCSE.SQLServer2000Administration[M],电子工业出版社,2007,136-152
[7]EvelynStiller.CathieLeBlanc.Project—basedsoftwareengineering anobject—orientedapproach[M],高等教育出版社,2006,59-73
[8]MickJ,GezegorzC.MicrosoftCommerceServer2000ResourceKit,SoftwareToolsfortheProfessionalProgrammer[M],2008,17-19
[9]张遂芹.PowerBuilder9.0系统开发实例[M],中国水利水电出版社,2005,59-81
[10]郭宝利、康海涛、李冬冬.PowerBuilder
9.0实用解析[M],电子工业出版社,2005,221-236
[1]1朱爱民.PowerBuilder编程实用技术与案例[M],清华大学出版社,2006,235-280
[12]池雅庆、贾小敏.数据库应用项目开发实践[M],中国铁道山版社,2005,132-140
[13]杨文龙、姚淑珍、吴芸著.软件工程M],电子工业出版社,2007,60-80
[14]陈春玲.软件工程与数据库概论[M],西安电子科技大学出版社,2006,93-109
[15]路晓丽、葛玮.软件测试技术[M],机械工业出版社,2007,123-153
[16]杨冬青、唐世渭译.数据库系统概念[M],机械工业出版社,2005,245-256
[17]徐家俊.开发医院信息管理系统的原则、方法及实践[J],医疗卫生装备,2004.01,27-28
[18]臧昕.C/S结构在医院机关办公自动化系统中的应用[J],医院信息,2006.5,294—295
[19]张秀娟.三层C/S结构及其应用开发[J],电信交换,2006,3,13—19
[20]DengShuiGunagDynamicWorkflowModelingandDesignMethod[J]ComputerIntegratedManufacturingSystem2004106:601-607
[21]RogerS.PressmanSoftwareEngineering APractitioner’SApproach[J],SixeditionMcGraw-Hill,2006,197-201
[22]郑少慧.HIS系统数据的安全与维护[J],医疗设备信息,2007.7,16—17
[23]陈永强、谢维成.SQLServer数据库企业应用系统开发第一版[M],清华大学出版社,
2004.4,55-112
[24]靳敏、夏素霞、张益星.数据库原理及应用[M],机械工业出版社,2007,235-257
[25]彭文波.MD5算法原理及应用[J],信息网络安全,2007,544-46
[26]宋振会.SQLServer2000中文版基础教程[M],清华大学出版社,2008,117-130
[27]杨昭.owerBuilder9.0数据窗口技术[M],中国水利水电出版社,2004,91-124
[28]A.Blakeman.HospitalComputing TechnologyVersusPeople.Computing&ControlEngineeringJournal,2004,814-8.
[29]MenasceDA,GomaaH.AMethodforDesignandPerformanceModelingofC1ient/ServerSystems.IEEETransactionsonSoftwareEngineering,2005,26111066-1085.
[30][美]WilliamE.Perry.Effectivemethodsofsoftwaretesting[M],机械工业出版社,
2006.3,71-125
[31]美.StevenSplaine著.李昂等译.Web安全测试[M],机械工业出版社2007,231-247
[32]郑仁杰等.软件工程[M],清华大学出版社,2005,241-256
[33]陆惠恩.实用软件工程[M],清华大学出版社,2006,59-106致谢!模式/内模式映像外模式/模式映像数据库内模式模式外模式3外模式2外模式1应用E应用D应用C应用B应用A出库价药品单位批发价最高库存零售价最低库存批次产地规格条形码药品名称药品编码药品档案联系人拼音码编码名称所在地区客户类别邮政编码联系电话客户信息操作员入库数量购进日期药品编码入库单价药品名称入库金额批次入库单号有效期业务员发票号购进单位入库单据操作员出库数量出库日期药品编码结算价格药品名称药品金额计划单号出库单号领用人出库单位出库单据类别药品数量有效日期药品单价药品单位药品金额批次产地规格药品名称药品编码药品库存操作员业务日期入出库数量有效日期药品单价入出库单号入出库金额批次产地业务单位药品名称药品编码药品明细编号名称所属单位权限操作员SQL请求客户机服务器数据库管理系统年初始化结账数据备份设置数据备份操作员口令修改购销用户资料维护人员档案维护药品档案调整药品计量单位维护药品规格维护药品类别维护药品档案维护购进计划查询购进计划调整药品购进计划药品购进参考财务单位查询财务入出库汇总财务凭证查询药品财务查询药品财务库存药品财务商品帐财务库存记账药品出库明细出库单重新打印药品出库单明细药品出库统计药品出库查询药品出库库存盘点调账不动药品库存查询药品效期查询业务库存入出库汇总库存药品明细账查询药品分类库存查询药品库存清单药品入库明细单位药品入库明细药品入库统计药品入库查询填制入库凭证入库单重新打印药品入库系统维护药品计划药品商品帐药品库存药品出库药品入库医院药库管理系统YNYN验证用户是否有权限登录用户登录输入提示输入用户及口令开始系统验证用户名及口令是否正确登录系统开始进入登录界面提示输入用户及口令开始开始返回退出Y存盘入库单虚打印入库单打印删除记录记录增加记录选择相应药品退出、结束增加药品空记录、输入药品拼音码、在药品选择窗口中显示相应药品填写入库凭证号选择药品供应单位生成新的入库单号入库界面排序、打印等操作业务员凭证号类别购进单位删除记录记录入库日期增加记录执行查询语句退出、结束组合查询条件显示查询结果入库查询主界面选择查询条件……存盘出库单虚打印出库单打印删除记录记录增加记录选择相应药品退出、结束增加药品空记录、输入药品拼音码、在药品选择窗口中显示相应药品填写出库凭证号选择出库单位生成新的出库单号出库界面排序、打印等操作拼音码出库单证号类别出库单位删除记录记录出库日期增加记录执行查询语句退出、结束组合查询条件显示查询结果出库查询主界面选择查询条件……打印等其他操作指定日期一月15日一周过期已经过期到期出库日期增加记录执行查询语句退出、结束判断选择条件显示查询结果效期管理主界面选择条件……NNN测试结束测试报告通过系统管理测试通过系统运行效率测试通过可靠、容错测试修改系统满足要求系统功能测试性能评价报告总体性能测试测试开始N-I-。