医院药房信息管理系统的设计与开发.docx
《医院药房信息管理系统的设计与开发.docx》由会员分享,可在线阅读,更多相关《医院药房信息管理系统的设计与开发.docx(49页珍藏版)》请在冰豆网上搜索。
医院药房信息管理系统的设计与开发
摘要
随着计算机的普及,它在各行各业得到越来越广泛的应用,坊县医院正面临着信息时代的挑战。
坊县医院信息管理的计算机化、网络化将是建设现代化医院必不可少的重要手段。
为了紧跟时代发展的步伐和潮流,必须实现坊县医院全面的信息化管理,为病人提供现代化的服务,提高对病人的服务水平。
坊县医院药房信息管理系统主要由门诊系统、体检系统、药品管理系统这三个主要功能模块共同构成。
本文叙述的是坊县医院药房信息管理系统中的一个子系统——药品管理系统,本系统采用了visualstudio2008作为开发工具。
它主要使用c#.NET以及SQLSEVER2005数据库。
关键词:
药品管理系统,SQLSEVER2005,C#
1绪论
1.1系统开发背景概述
随着计算机技术的飞速发展,计算机在医院管理中应用的普及,利用计算机实现医院管理势在必行。
对于坊县医院来说,利用计算机支持坊县医院高效率完成医院管理的日常事务,是适应现代医院管理制度要求、推动医院管理走向科学化、规范化的必要条件;计算机管理所无法比拟的优点检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高医院管理的效率,也是实现医院的科学化、正规化管理的重要条件。
随着坊县医院规模的扩建以及人数不断的增多,对各种药品的需求量在不断增加,同时医患人员的信息也在不断的增加和更新。
为了更好的为病人提供优质的医疗服务,使医护人员能从繁忙的记账式管理中解放出来,充分发挥医护工作人员的工作潜力,因此坊县医院药房信息管理系统成为我们必然的选择,整个坊县医院药房信息管理系统是很庞大的,不是一个人短期内所能完成的,我做的仅仅是其中很小一部分的开发——药品管理系统。
本课题主要研究的是:
用户管理其中包括用户登录、修改密码、增加用户、医护人员信息查询,药品管理其中包括药品分类信息查询、药品详细信息查询,药房药品库存统计,库存管理其中包括药房库存信息查询、药品入库、药品出库、失效药品查询、药品出库金额折线图形显示、药品出库数量折线图形显示。
1.2系统开发的目的与意义
随着现代化社会的发展,世界贸易组织的加入,当今时代已成为信息化的社会。
世界已进入在计算机信息管理领域中激烈竞争的时代。
信息已成为继劳动力、土地、资本之后的又一大资源,谁控制的信息越多,谁利用信息资源的效率越高,谁就会在各方面的竞争中,占有一席之地,那么他就会更有优势,这一点已得到举世公认。
伴随着我国工业的迅猛发展,为了抓住机遇,在竞争中占得先机,作为管理企业的一个必不可少的重要环节—在线管理的信息化、计算机化也就迫在眉捷了。
开发药品信息管理系统即有宏观上的意义,那就是顺应时代信息化、现代化潮流,提高效益,促进国民经济管理的结构优化;也有微观上的意义,那就是可以提高管理的现代化程序,加强管理的信息化手段,提高工作效率,增加单位效益。
电子计算机和通信技术的快速发展使人类已经逐渐地进入信息化社会。
信息和材料、能源一样成为一种社会的基本生产资料,在人类的社会生产活动中发挥着重要的作用。
同时人们对信息和数据的利用与处理也已进入自动化、网络化和社会化的阶段,因此,开发相关的管理信息系统已经成为各行各业的必要和必需了,管理信息系统作为一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体,可以解决企业或组织所面临的问题,对内来看,可以提高工作效率;对外来看,获得竞争优势。
现在的医院要能紧跟时代发展的步伐和潮流,适应医疗制度改革和社会医疗保险改革的需要,必须实现医院全面的信息化管理,树立良好的社会形象,为病人提供现代化的服务,提高对病人的服务水平,方便、准确、快捷地为病人提供医疗服务和医疗费用信息,进而增强病人对医院的信任和支持。
使医院管理晋等升级,进入现代化管理。
当前,医院还面临着越来越激烈的市场竞争、要想在竞争中取胜,也必须采用先进的管理方法和手段。
一个规划周详、设计先进的药品信息管理系统是取得竞争胜利的必备手段。
通过实现先进的计算机网络化管理,能为领导层的管理和决策及时提供可靠的数字依据,使管理更合理、更先进;减少人力、物力资源的浪费,降低成本;提高工作效率,提高管理效率;提高经济效益,从而提高医院的整体竞争力。
在这样一个信息时代的洪流中,我们坊县医院也必须跟上时代前进的步伐,实现自身全面的信息化管理,最大力度为学校师生提供优质服务成为我们努力的方向和目标。
2系统需求分析
2.1引言
需求分析与管理是IT项目软件生存周期中重要的一步,也是最关键的一步。
只有通过IT项目需求分析与管理,才能将IT项目功能和性能研究清楚,并将其描述为具体的软件需求规格说明,进而建立软件开发的基础。
可行性研究是一种系统的投资决策的科学分析方法。
项目可行性研究是指,在项目投资决策前,通过对项目有关工程技术、经济、社会等方面的条件和情况进行调查、研究分析,对各种可能的技术方案进行比较论证,并对投资项目建成后的经济效益和社会效益进行预测和分析以考察项目技术上的先进性和通用性,在经济上的合理性赢利性,以及建设的可能性和可行性,继而确定项目投资建设是否可行的科学分析方法。
2.2系统的需求分析
管理信息系统是一门新兴的、集管理科学、信息科学、系统科学及计算机科学为一体的综合性学科,研究的是信息管理活动的全过程,以便有效的管理信息,提供各类管理决策信息,辅助企业进行现代化管理。
(1)用统一标准处理和提供信息,排除使用前后矛盾的不完整的数据。
(2)完整、及时提供在管理及决策中需要的数据。
(3)利用指定的数据关系分析数据,客观预测未来。
(4)系统运行在Windows平台上,需要有一个较好的图形用户界面,操作要求简单。
(5)系统应该有良好的构架和可扩展性,以便医院根据实际情况进行补充与修改。
对一个医护人员来讲,医院药房库存药品种类齐全、数量繁多,每天药品入出存数量动态变化,数据时刻处于动态更新之中,这给他们对药品的检索过程带来不便,甚至是返回错误的数据。
药品到医院后,所需要的一般流程如下所示。
数据流图简称DFD,是SA方法中用于表示系统逻辑模型的一种工具。
它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
数据流图有四种基本图形符号:
“→”箭头表示数据流;“○”圆或椭圆表述加工;“=”双杠表示数据存储;“”方框表示数据的源点或终点。
图4-3和图4-4简单的画出了该系统的数据流图。
图2.2.10层数据流图
图2.2.21层数据流图
为适应医疗信息管理发展的需要,开发基于C/S结构的医院药品库存管理系统。
该系统应具有以下功能:
(1)药品的基本信息明细到数据库中。
(2)能够对药品的类别和详细信息进行检索
(3)及时反映库存中药品的动态变化。
(4)记录药品入出库的情况。
(5)对于每月药品入出库的金额信息进行图形化统计。
医院药品库存管理系统的数据库服务器要求:
数据库服务器作为整个系统的核心,运行系统最为关键的应用,存储整个系统最为重要的生产数据。
因此,数据库服务器要有强大的CPU和I/O处理能力,足够的内外存储容量和高可靠性;数据库服务器系统应代表当代计算机技术的较高水平,并具有长远的生命周期和易扩充性,能适应医院信息电子化现在及未来的需要,并且具有最佳的性能价格比。
数据库服务器系统应遵循开放系统标准,具有良好的用户界面,拥有丰富的应用集成工具,具有分布处理能力和应用程序的可移植性和互操作性。
数据库服务器系统还应能支持多种先进的数据库管理系统。
总体来说,数据库服务器系统的选择需充分考虑到:
①高性能
所采用的数据库服务器必须吞吐量大,响应时间快。
具体表现在具有很高的实时联机事务处理能力及快速的I/O通道。
②高可靠性和可用性
选择高可靠性硬件、软件和网络设备,具有高可靠性的保证措施,具有错误的自动识别、自动纠错和恢复的能力,如冗余供电系统、自动再引导、散热控制、内存自动纠错和RAID
支持及双机互相备份等,保证系统不会停机。
③开放性
选择开放性好的硬件、软件和网络系统,保证系统之间的可连接性、互操作性、应用可移植性及其将来的扩充。
可支持各种标准的外部设备。
④先进灵活性
选择的设备必须是当今世界较先进的,同时要考虑到未来国内外发展方向。
至少在5年内技术不落后。
⑤安全性
系统必须具有较高的安全级别,对本信息系统而言,它所涉及的数据来自医院各个部门,包括技术数据、技术信息,涉及到医院利益。
所以保证数据的安全性和一致性是十分重要的。
⑥支持先进的数据库管理系统
选用的数据库管理系统应是先进的、并被广泛应用的、支持基于C/S结构、支持海量数据库、支持图形和多媒体数据,具有较高的安全级别和保证数据完整性、一致性的策略,管理简便等。
数据库开发工具功能完备。
2.3系统基本功能描述
2.3.1主要功能
基本信息:
医护人员登录、医护人员基本信息查询、修改密码、增加用户。
药品管理:
药品类别信息查询,药品详细信息明细,药房药品库存统计。
库存管理:
药品入库、药品出库、失效药品查询、药品出库金额折线图形显示、药品月出库数量折线图形显示。
2.3.2功能介绍
1.基本信息
医护人员登录:
输入用户名和密码。
医护人员基本信息查询:
医护人员姓名,权限,新增。
修改密码:
修改登录用户密码。
增加用户:
输入用户的基本信息添加注册新用户。
2.药品管理
药品类别查询:
查询各种药品的类别。
药品详细信息查询:
查询某种药品的详细信息如:
生产厂商、有效期、售价、规格等详细信息。
药房药品库存统计:
通过药品类别、批号、名称等条件查询坊县医院药房库存中药品的详细信息,并对即将过期的药品进行黄色显示报警,对已过期的药品进行红色显示报警
3.库存管理
药品入库:
记录入库药品的基本信息更新入库表和入库日志表,同时入库存,查询最近入库的药品信息。
药品出库:
记录出库药品的基本信息更新出库表和出库日志表,同时减库存,查看最近出库的药品。
失效药品查询:
可以查询到任意日期截止的失效药品。
药品出库折线图形显示:
将每月出库的药品金额以折线图形显示出来。
药品月出库数量折线图形显示:
将每月出库的各种药品数量以折线图形显示出来。
3系统开发工具
3.1C#概述
C#(读做C-sharp)编程语言是由微软公司的AndersHejlsberg和ScottWillamette领导的开发小组专门为.NET平台设计的语言,它可以使程序员移植到.NET上。
这种移植对于广大的程序员来说是比较容易的,因为C#从C,C++和Java发展而来,它采用了这三种语言最优秀的特点,并加入了它自己的特性。
C#是事件的驱动的,完全面向对象的可视化编程语言,我们可以使用集成开发环境来编写C#程序。
使用IDE,程序员可以方便的建立,运行,测试和调试C#程序,这就将开发一个可用程序的时间减少到不用IDE开发时所用时间的一小部分。
使用IDE迅速建立一个应用程序的过程称为快速反映开发。
1、泛型:
在我看来,泛型就是通过将数据类型参数化从而实现了代码的更为灵活的复用,泛型的出现使得C#能够使用同一段代码来操作多种数据类型。
泛型无疑是C#2.0最重大的改进,它的出现赋予了C#代码更强的类型安全,更好的复用,更高的效率和更清晰的约束。
2、匿名方法:
匿名方法允许我们将代码直接与委托实例相关联,使委托实例化工作更加直观和方便。
在我看来,这只是C#又多了一种语法格式而已,不再像以前必须将方法名传给委托实例,而是又多了一种选择。
3、迭代器:
迭代器允许我们更加方便的编写用于foreach语句的类型。
在我看来,迭代器的出现只不过是改进了1.0中不便的可用foreach语句类型的编写限制,简化了一些接口。
4、局部类型:
局部类型允许我们将一个类的代码分别写在不同的cs文件中。
最典型的应用就是使用VS2005创建Form文件时,VS会自动将系统生成的代码与用户代码分开。
局部类型通过partial关键字来声明。
5、空属类型:
空属类型是一种像int?
一样可以为空的变量类型。
本质上是一种泛型的应用,是System.Nullable<>的一种类型实例化。
6、静态类:
静态类是只用于包含静态成员的类型,它既不能实例化,亦不能被继承。
使用.NET开发医院药品信息管理系统的优越性
自从美国微软公司推出的.NET以来,.NET技术在业界得到极大的认同,并在短时间内得到迅速的推广,越来越多的人转移到这个平台上来。
而C#在.NET中,扮演着举足轻重的角色。
.NET框架主要是由他的实现。
因此,C#在.NET中具有先天的优势。
也能很好的实现此管理系统的所有功能。
3.2系统数据库软件的介绍
建立一个数据库我们有多种选择,现在市场上有各种各样的数据库,而且每一种数据库都有其自身的特点,不能说哪一种更好,只能在其中寻找一种能更好地适应系统需求、更好地满足用户的要求以及适应开发人员的习惯。
在本系统中,作为坊县医院的药品信息管理,它所产生和处理的数据量也不太大。
因此,没有必要使用像Access和Oracle这样的大型数据库。
MicrosoftOffice中的SQL数据库在计算机上的应用比较普及,是开发中小型数据库系统的比较理想的选择,所以,在本系统中我选择了SQL数据库。
SQLServer2005简称是“结构化查询语言(StructuredQueryLanguage)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是SQUARE语言。
SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。
如今无论是像Oracle,Sybase,Informix,SQLserver这些大型的数据库管理系统,还是像VisualFoxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。
StructuredQueryLanguage包含4个部分:
数据查询语言DQL-DataQueryLanguageSELECT
据操纵语言DQL-DataManipulationLanguageINSERT,UPDATE,DELETE
数据定义语言DQL-DataDefinitionLanguageCREATE,ALTER,DROP
数据控制语言DQL-DataControlLanguageCOMMITWORK,ROLLBACKWORK
SQL的优点:
SQL广泛地被采用正说明了它的优点。
它使全部用户,包括应用程序员、DBA管理员和终端用户受益非浅。
1.非过程化语言
SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。
SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。
所有SQL语句接受集合作为输入,返回集合作为输出。
SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。
SQL不要求用户指定对数据的存放方法。
这种特性使用户更易集中精力于要得到的结果。
所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。
查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。
2.统一的语言
SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。
基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可掌握。
SQL为许多任务提供了命令,包括:
查询数据
在表中插入、修改和删除记录
建立、修改和删除数据对象
控制对数据和数据对象的存取
保证数据库一致性和完整性
以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。
3.是所有关系数据库的公共语言
由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。
所有用SQL编写的程序都是可以移植的。
SQL是PostgreSQL(和大多数其它关系型数据库)用做查询语言的语言。
它是可以移植的,并且容易学习使用。
但是所有SQL语句都必须由数据库服务器独立地执行。
这就意味着客户端应用必须把每条查询发送到数据库服务器,等待它处理这个查询,接收结果,做一些运算,然后给服务器发送另外一条查询。
所有这些东西都会产生进程间通讯,并且如果客户端在另外一台机器上甚至还会导致网络开销。
如果使用了PL/pgSQL,那么可以把一块运算和一系列查询在数据库服务器里面组成一个块,这样就拥有了过程语言的力量并且简化SQL的使用,因而节约了大量的时间,因为用不着付出客户端/服务器通讯的过热。
通过使用PL/pgSQL,应用可以获得可观的性能提升。
3.3关于ADO.NET
ADO.NET是一组用于和数据源进行交互的面向对象类库。
通常情况下,数据源是数据库,但它同样也能够是文本文件、Excel表格或者XML文件。
ADO.NET允许和不同类型的数据源以及数据库进行交互。
然而并没有与此相关的一系列类来完成这样的工作。
因为不同的数据源采用不同的协议,所以对于不同的数据源必须采用相应的协议。
一些老式的数据源使用ODBC协议,许多新的数据源使用OleDb协议,并且现在还不断出现更多的数据源,这些数据源都可以通过.NET的ADO.NET类库来进行连接。
ADO.NET提供与数据源进行交互的相关的公共方法,但是对于不同的数据源采用一组不同的类库。
这些类库称为DataProviders,并且通常是以与之交互的协议和数据源的类型来命名的。
如图3.1描述了在程序中利用ADO访问数据库的流程。
图3.1ADO访问数据
3.4系统开发工具VisualStudio简介
VisualStudio是一套完整的开发工具集,用于生成ASP.NETWeb应用程序、XMLWebServices、桌面应用程序和移动应用程序。
VisualBasic、VisualC++、VisualC#和VisualJ#全都使用相同的集成开发环境(IDE),利用此IDE可以共享工具且有助于创建混合语言解决方案。
另外,这些语言利用了.NETFramework的功能,通过此框架可使用简化ASPWeb应用程序和XMLWebServices开发的关键技术。
5系统总体设计
系统设计是系统开发过程中的另一个重要阶段,在这一阶段中将根据前一阶段逻辑分析的结果,在系统分析报告的基础上,按照逻辑模型的要求,科学合理地进行新系统的设计。
系统设计包含两个方面:
首先是总体结构设计,其实是具体物理模型的设计。
这个阶段的主要目标是将反映用户信息需求的系统逻辑方案转换成可以事实的基于计算机的物理方案,并为下一阶段的系统事实提供必要的技术资料。
系统设计的依据如下:
(1) 系统分析阶段的成果
(2) 现行计算机软硬件技术、数据库技术等
(3) 现行信息管理与信息技术的标准、规范等有关法律制度
(4) 用户要求
(5)系统运行环境条件
我们采用结构化设计的方法来实现系统总体功能,提高系统的各项指标,即将整个系统合理的划分成各个功能模块,正确地处理模块之间和模块内部的联系以及它们之间的调用关系和数据联系,定义各模块的内部结构,通过对模块的设计和模块之间关系的系统来实现整个系统的功能。
5.1系统总体结构设计
系统设计是信息开发过程中的另一个重要阶段,在这一阶段中将根据前一阶段逻辑分析的结果,在系统分析报告的基础上,按照逻辑模型的要求,科学合理地进行新系统的设计。
系统设计包含两个方面:
首先是总体结构设计,其实是具体物理模型的设计。
这个阶段的主要目标是将反映用户信息需求的系统逻辑方案转换成可以事实的基于计算机的物理方案,并为下一阶段的系统事实提供必要的技术资料。
系统设计的依据如下:
(1) 系统分析阶段的成果
(2) 现行计算机软硬件技术、数据库技术等
(3) 现行信息管理与信息技术的标准、规范等有关法律制度
(4) 用户要求
(5) 系统运行环境条件
我们采用结构化设计的方法来实现系统总体功能,提高系统的各项指标,即将整个系统合理的划分成各个功能模块,正确地处理模块之间和模块内部的联系以及它们之间的调用关系和数据联系,定义各模块的内部结构,通过对模块的设计和模块之间关系的系统来实现整个系统的功能。
模块设计的主要方法是结构化方法,主导思想是以系统的逻辑功能设计和数据流关系为基础,采用“自顶向下,逐步求精”的设计方法,将本系统分解为功能明确,易于修改,大小适中的模块结构。
系统的功能结构图分析如下:
图5.1系统的功能结构图
5.2实体关系
实体关系图简记E-R图是指以实体、关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式。
利用实体关系图我们可以很容易看出各者之间的关系,也可以让数据库的建立更加简单。
如图4-1所示为总体E-R图,以下实体的属性将在下面进行进一步的描述。
图4.1总体E-R图
1用户:
属性主要包括用户名,密码,编号,用户权限和科室。
用户名和密码主要是用户用来登录的,编号是标识管理员唯一性的属性,完全与业务逻辑无关,在数据库表中设置编号为顺序自动增加的。
我们可以有多个用户对不同的员工进行操作,所以用户和员工之间是多对多的关系,用户的实体关系图如图4.1.1所示
图4.1.1用户信息实体图
2.医护人员:
医护人员的属性包括编号、医生编号、医生姓名、科室、性别、身份证、生日、工作时间、电话号码、级别等等。
如图4.1.2所示:
图4.1.2医护人员信息实体图
3.科室:
科室的属性有科室号,科室名称,科室负责人,部门联系人,部门联系号码,编号,其中编号是标识科室的唯一属性,它在数据库表中的编号为顺序自动增加的。
员工和科室之间是多对一的关系,如图4.1.3所示:
图4.1.3科室部门信息实体图
4药品:
药品的属性有编号、药品编码、药品名称、药品类别、药品类别编号、药品规格、单位、医保类别、最小库存数量、录入人员、录入日期。
自动编号是标识药品的唯一属性,药品和药品信息之间是一对一的关系,如图4.1.4所示:
图4.1.4药品信息实体图
5.入库信息:
编号、药品编码、药品名称、药品规格、单位、批号、药品类别、进价、比例、售价、入库数量、金额、最终数量、入库日期、有效期、产地、供应商、医保类别、最小库存数量、GMP认证、批准文号、入库单号、录入人员、录入日期。
自动编号是它的主键。
药品和它之间是一对多的关系。
如图4.1.5所示:
图4.1.5入库信息实体图
6.出库信息:
编号、药品编码、药品名称、药品规格、单位、批号、药品类别、售价、出库数量、金额、入库日期、出库日期、有效期、产地、供应商、医保类别、GMP认证、批准文号、出库单号、出纳员、出库日期。
自动编号是它的主键。
药品和它之间是一对多的关系。
如图4.1.6所示:
图4.1.6出库信息实体图
7.供应商:
编号、供应号、供应商、供应商地址、供应商联系人、供应商号码、供应商等级,其中供应号是它的主键,它和药品之间是多对多的关系。
如图4.1.7所示:
图4.1.7供应商信息实体图
5.2数据库表的设计
5.2.1用户登录表Sys_UserLogin
包括Id编号、Userid用户编号、UsereName登录名、UserName用户名、PassWord密码、UserRole用户权限