为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

医院药品管理系统的设计与实现毕业论文

2017-09-29 50页 doc 529KB 79阅读

用户头像

is_153723

暂无简介

举报
医院药品管理系统的设计与实现毕业论文医院药品管理系统的设计与实现毕业论文 题 目: 鹤壁煤矿集团医院药品管理系统 的设计与实现 姓 名: 王 洋 学 院: 信息科学技术学院 专 业: 网络工程 班 级: 网络工程102班 学 号: 19310204 指导教师: 朱淑鑫 职称: 讲师 2014 年 5 月 20 日 南京农业大学教务处制 目录 摘要 ................................................................. 1 1 绪论 ..........................
医院药品管理系统的设计与实现毕业论文
医院药品管理系统的设计与实现毕业 题 目: 鹤壁煤矿集团医院药品管理系统 的设计与实现 姓 名: 王 洋 学 院: 信息科学技术学院 专 业: 网络 班 级: 网络工程102班 学 号: 19310204 指导教师: 朱淑鑫 职称: 讲师 2014 年 5 月 20 日 南京农业大学教务处制 目录 摘要 ................................................................. 1 1 绪论 .............................................................. 2 1.1 选题背景 ...................................................... 2 1.2 当前研究现状 .................................................. 2 1.3 选题的目的和意义 .............................................. 2 2 需求分析 .......................................................... 2 2.1 可行性分析 .................................................... 4 2.1.1 技术可行性 .............................................. 4 2.1.2 开发环境可行性 ........................................... 4 2.1.3 运行可行性 ................................................ 4 2.2 需求分析 ...................................................... 4 3 总体设计 .......................................................... 9 3.1 系统模块设计 .................................................. 9 3.1.1 系统功能模块设计 ......................................... 9 3.1.2 系统功能模块描述 ......................................... 9 3.1.3 系统主要功能的UML顺序图表示.......................... 10 3.2 数据库设计 ................................................... 13 3.2.1 系统数据分析 ............................................ 13 3.2.2 数据库的详细设计 ........................................ 15 4 系统详细设计 .................................................... 19 4.1 系统运行环境的设置 .......................................... 19 4.1.1 系统需求的硬件环境 ...................................... 19 4.1.2 系统需求的软件环境 ...................................... 19 4.2 开发环境介绍 ................................................. 19 4.2.1 软件开发工具 ............................................ 19 4.2.2 数据库开发工具 .......................................... 20 4.2.3 相关开发技术简介 ........................................ 20 4.3 系统主界面设计 ............................................... 21 4.3.1 用户登录界面设计 ........................................ 21 4.3.2 主程序界面设计 .......................................... 22 4.4 药品入库管理模块设计 ........................................ 23 4.4.1 首次入库模块 ............................................ 23 4.4.2 追加入库模块 ............................................ 25 4.4.3 入库查询模块设计 .................................... 26 4.5 药品销售相关模块设计 ........................................ 28 4.6 查询明细模块设计 ............................................. 30 4.6.1 药库明细查询模块 ........................................ 30 4.6.2 药品紧缺查询模块 ........................................ 31 4.7 药品退货模块设计 ............................................. 32 4.8 厂商模块设计 ................................................. 33 4.8.1 厂商信息管理模块 ........................................ 33 4.8.2 厂商黑名单管理模块 ...................................... 35 5 系统测试和应用 .................................................. 37 5.1 系统测试 ..................................................... 37 5.1.1 单元测试 ................................................. 37 5.1.2 集成测试 ................................................. 37 5.2 开发测试的难点及解决方法 .................................... 38 5.2.1 汉字自动转换拼音 ........................................ 38 5.2.2 数据库存储过程中实现模糊查询 ........................... 38 5.3 系统应用说明 ................................................. 39 5.3.1 信息设置模块 ............................................ 39 5.3.2 入库信息管理模块 ........................................ 39 5.3.3 销售管理模块 ............................................ 40 6 结论 ............................................................. 41 6.1 总结 .......................................................... 41 6.2 不足和展望 ................................................... 41 致谢 ................................................................ 42 参考文献 ........................................................... 42 鹤壁煤矿集团医院药品管理系统的设计与实现 网络工程专业 王洋 指导教师 朱淑鑫 摘要:随着迅速发展的计算机技术,多数医院为了节约资源,提高工作效率,开始逐步利 用计算机软件来辅助管理。本文首先阐述了医院药品管理系统的开发背景、可行性分析及 需求分析,并利用UML模型图的方式形象地描述了系统内各个对象之间的关系。接着利 用数据库E-R图表示了数据库设计模式及数据表的结构,并简要介绍了系统开发的环境配 置。最后,利用各个模块设计及测试的截图和说明文字相结合的方式,详细阐述了本系统 主要模块的设计和测试过程。最终在各项工作完成的前提下,使用C#.Net语言开发了具有 药品管理、药品销售、明细查询等多功能管理系统。 关键词:药品管理;数据库;系统开发;Visual C# Design of Hebi Colliery Hospital Medicine Management System Student majoring in network engineering Wang Yang Tutor Zhu Shuxin Abstract: With the rapid development of computer technology, the hospital in order to save resources, improve work efficiency, gradually increasing use of computer management software. First of all, this paper describes the development background of hospital medicine management systems, feasibility analysis and demand analysis, and using UML model diagram describes the relationship between the individual objects within the system. Then the database E-R diagram shows the structure of the database design patterns and data tables, and briefly describes the system development environment configuration. At the end of the paper, the use of the design and testing of each module screenshots and captions combination, Expounds in detail the design and testing process of main modules of this system. Key words: Medicine Management; Database; System Development; Visual C# 1 1 绪论 1.1 选题背景 随着我国经济的高速发展,人们经济水平的提高,不少负面的问题也渐渐出现,其中以各类疾病的产生为首要难题,这同样加大了医院保卫人们健康的责任。相比现代高效率的工作方式,传统医院的手工作业形式,不仅工作繁琐,而且人为处理错误率较高,这不但给医院造成了一定损失,对病人的病情也有不利影响。计算机技术的高速发展使得人们开始越来越多地利用它来解决各种繁琐的问题。药品管理系统利用计算机实现了对医院药库及药品的各项管理,以往那些工作繁琐、容易出错的数据处理问题可以让计算机来替代人工进行,这不仅极大地减轻了管理人员的工作负担,而且药物的管理记录也可以随时查询,让药物的管理更加透明化。 1.2 研究现状 计算机80年代初就被引进了我国医疗系统,当时以IBM公司的M340小型计算机为主流,大多数应用在教学和科研项目。80年代中期,伴随着苹果个人电脑的上市和BASIC语言的广泛使用,一部分医院开始研发小型的系统管理软件,如人事管理软件等;80年代后期,随着XT286计算机的出现,加之DBASElll和UNIX操作系统的研发成功,一部分医院开始建立小型的内部网络,并开发了关于部门之间管理的信息系统,如病房管理,药房管理等。进入90年代后,NOVELL网和FOXBASE等数据库迅速发展,完善的医院管理系统的实现成为可能,于是一部分有实力的医院开始研发自己医院的管理系统。 随着我国医药事业的发展,我国药品管理方面发展相对滞后的实际情况却与此不相符合,虽然有技术人员不断开发出新的药品管理系统供医院使用,但受到开发周期等诸多因素的影响,药品系统管理软件的发展仍旧落后于药品的发展,总结下来有如下几点:(1)老版本的数据库软件安全性不高,读取、修改信息时错误率较高,甚至会导致数据丢失,造成巨大损失。(2)工作负荷方面,原有的系统因为数据库表的限制及当时开发需求的限制,已经无法满足管理人员的需求。(3)局限性方面,现有的操作系统在处理速度和兼容性上已经适应不了实际的需要,由于平台的更新,对现有系统的改进性维护已不能解决面临的问题。(4)由于医疗用品的发展,各种先进医疗器械的出现,医院对管理方面的不断改革,现有系统已无法满足要求。 进入21世纪后,特别是2003年SARS灾难过后,我国的医疗卫生系统开始真正意识到医院信息系统的重要性,并开始着手进行系统的深入研究和推广应用[1]。 1.3 选题的目的和意义 在现今医疗技术高速发展的前提下,纯人工录入或早期简单的药品管理软件逐渐不能满足用户的要求,落后的系统间接影响了医院管理人员的工作效率, 基于以上的几点原因,本次毕业设计提出了药品管理系统的设计目标。 药品管理系统使医院管理趋于信息化,同时让药库管理人员能简便地利用药库信息做出正确的判断,更重要的是计算机作为管理工具可以让药库管理更加规 2 范化,并提高管理效率,减少管理人员的工作量,使药品管理可以有条不紊地进 行下去。 3 2 需求分析 2.1 可行性分析 在软件的开发流程中,可行性分析是一种普遍采用的研究项目工程的方法。它通过各种有效的手段对工程项目进行分析,从技术、运行等多个方面加以评价。 2.1.1 技术可行性 本系统开发使用的是当前流行的Visual C#.NET语言,该语言直观规范,初学者也可以很好的使用该语言来进行系统开发。而且,使用该语言开发的软件适用范围很广,可以很好地应用于安装有Windows平台的计算机上,所以从技术方面是可行的。 2.1.2 开发环境可行性 从软件系统开发的可行性和灵活性考虑,本系统的软件开发环境选择了当前流行的Visual C#.NET语言来进行前台的开发,而后台则选用了功能强大的SQL Server 2008数据库作为数据管理平台。 从硬件角度来说,本系统要求相对较低,一般情况下,计算机硬盘空间应不小于5G,内存应不小于1GB。当然,硬件环境的配置越好,软件系统的开发与运行效率相对就相应地提高,可行性相应也会大幅提高。 2.1.3 运行可行性 随着计算机技术的普及,医药经营企业逐渐借助计算机软件辅助医院药品的管理,所以药品管理系统成为了药品经营企业实现药品管理智能化、信息化的重要工具。对于多数医院来说,利用计算机来管理药品,不仅可以提高药品管理的效率,而且可以给医院带来先进的管理思想。市场的需求和技术的支持,最终会有更多优秀的药品管理信息系统软件的出现,并在今后的竞争中得到不断完善和优化。根据以上分析,该系统在运行方面是可行的。 2.2 需求分析 用户对目标软件系统在功能、行为、性能等方面的期望叫做软件需求。它通过对应用问题及其环境的理解与分析,将涉及的信息、功能及系统行为抽象为模型,最终形成需求分析说明。需求分析是介于系统分析和软件设计阶段之间的重要桥梁。 本系统针对的是鹤壁煤矿集团医院药房,所以出发点必须满足小型医院药品管理的需求。通过对鹤煤医院药库的了解分析,管理人员主要对药品的入库、退货及销售进行管理,所以系统的开发将从这些需求展开。鉴于该医院药品流动较少,而且是建立在内部流动的基础上,故在功能方面主要有以下几个需求: (1)用户管理,包括用户密码修改、用户权限修改等功能; (2)药品入库管理,包括药品首次入库管理、入库药品维护、入库药品记录查询和药品入库统计; (3)药品销售管理,包括药品销售、查询及药物反馈信息管理; (4)查询明细功能,包括药品明细查询、销售查询及药品紧缺查询功能; 4 (5)药库退货管理,包括退货功能、退货记录查询 (6)厂商的信誉管理,包括查询退货厂商及黑名单管理 (7)相关信息的设置,包括采购员信息管理、药品信息管理、药品调价、厂商信息管理和消费者信息管理 同时,本系统是针对医院内部工作人员使用的,外部人员无法接触到内部计算机,故对于系统用户来说,只需要用户类型分为三种,即系统管理员、药房管理员、药库管理员,这些用户各司其职,管理着不同的方面。 UML用例图表示从软件系统的外部使用者的角度看到的各项系统功能,并清晰地说明软件系统地边界,即用例图中的所有用例的集合构成目标软件系统应该提供的功能。 系统管理员拥有最高的权限,可以对整个系统进行管理,包括基本信息设置、用户管理、厂商管理等,用例图如图2-1所示: 药品调价 药品销售管理基本信息设置 退货模块 用户管理 药库查询系统管理员药品入库管理 厂商管理 图2-1 系统管理员用例图 药库管理员只拥有药库的管理权限,可以对药品的入库或者退货进行管理,包括药品入库、药品调价等,如图2-2所示: 5 药品调价退货模块 药品入库管理药库查询 药库管理员 图2-2 药库管理员用例图 药房管理员只拥有药房的管理权限,但是拥有查询药品库存的权限,用例图如图2-3所示: 药品销售管理 药库查询药房管理员 图2-3 药房管理员用例图 根据基本的了解分析,加之用户的基本需求,可以得到药品管理系统的基本用例图,如图2-4所示: 6 药品管理系统 药品入库药品退货*<><>** *药库管理员*库存管理<>**厂商管理厂商 <>药品调价 *<>用户管理 <>系统管理员基本信息设置* *密码修改 ** 药品销售 **消费者*药房管理员* 图2-4 系统基本用例图 在用户需求的基础上,药品管理系统的工作流程有以下几个方面组成:首先是登录名和密码的认证,接下来是权限的自动区分,单一权限的管理员是无法执行本权限外的其他功能,接着各个管理员开始通过各个模块进行工作,最后数据库更新数据退出管理系统。利用UML的活动图表示如图2-5所示: 7 初始化窗口 [要求用户重新 输入]输入用户名密码 [密码正[密码错确]误]判断权限 提示用户名或者密码错误系统管理员药库管理员药房管理员 信息设置药品入库药品退货药品销售更新数据 图2-5 用户活动图 8 3 总体设计 根据对前期系统的可行性分析及需求分析,可以得出系统总体设计模块及相关的设计方法,为代码的编写提供了指导性思想。 3.1 系统模块设计 3.1.1 系统功能模块设计 一系列树状的矩形框组成的,描绘系统层次结构的模型图叫层次方框图。从顶层功能的分类开始,沿着图中各条路径分支细化,直至确定了系统功能的全部结构为止。本系统主要由用户管理、入库管理、退货管理等七大模块组成,如图3-1所示: 图3-1 系统功能模块图 3.1.2 系统功能模块描述 本药品管理系统共分为七大模块,所有模块之间都是紧密关联的,每个模块的功能都在了解分析的基础上开发创建。依据上述的分析,系统在各个模块的基础上将每个模块再分为几个小模块。 1. 用户管理分为五个模块: (1) 密码修改:当前用户可以修改当前的登录密码 (2) 锁屏:用户暂时离开时保护系统不被他人操作 (3) 用户管理:本模块是系统管理员用来管理用户权限及添加、删除用户的,普通用户无法执行 (4) 重新登录 (5) 退出 2. 入库管理分为三个模块: 9 (1) 首次入库:药品首次进入药品仓库时入库信息的录入 (2) 追加入库:药库已有药品再次进入药库时入库信息的录入 (3) 入库记录查询:管理员查询药品进入仓库的记录 3. 药品销售管理分为两个模块: (1) 药品销售:药房管理员对药品进行销售及销售信息的管理 (2) 药品销售查询:管理员对药品销售的情况及销售记录进行查询 4. 查询明细分为三个模块: (1) 药库明细管理:查询整个药库的药品流向,例如某药品入库日期,销售日期等 (2) 库存查询:对仓库中存在的药品数量进行查询,便于工作人员管理 (3) 药品紧缺查询:查询药库中剩余数量不足的药品以便追加入库 5. 退货管理分为两个模块 (1) 药库退货:工作人员可以对某些存在问题的药品进行退货处理 (2) 退货记录查询:可以查询本药品系统所有出现过的退货情况及其细节 6. 厂商信誉管理分为两个模块 (1) 退货厂商查询:可以查询出现过药品退货的厂商详细信息 (2) 厂商黑名单:将经常性出现退货的厂商信息添加至黑名单中,工作人员可以查询 7. 信息设置模块分为很多小模块,主要是系统管理员对药品管理的信息进行设 置,这里不再赘述 3.1.3 系统主要功能的UML顺序图表示 将交互关系表示为一个二维的UML模型图叫做顺序图。该图的纵向表示时间轴,横向表示在协作中各独立对象的类元角色。类元角色用生命线表示,当对象存在时,角色便用一条虚线表示,当对象的过程处于激活状态时,生命线便是 [6]一个双道线。 根据上述需求分析及初步建模,我们得到了药品管理系统主要功能在时间上的工作流程。下面将按功能分别阐述本系统运行的时间逻辑顺序。 首先是药品入库的功能,这个功能在时间逻辑上需要先由药品厂商进行报价,接着药库管理员确认,将入库信息录入数据库中,之后药品管理系统自动更新数据,将入库清单打印出来交给管理人员,由管理人员开具收据给生产厂商。整个过程涉及数据的大部分由计算机完成,用UML顺序图表示如图3-2所示: 10 药品入库界面药品 厂商药库管理员 药品入库信息录入添加药品入库信息药品报价 打印收据入库记录信息显示入库成功并显示入库信息 药品追加信息录入更新药品入库信息 打印收据显示成功信息并显示入库信息入库记录信息 图3-2 入库模块顺序图 然后就是药品出售前调价功能的时间逻辑顺序了。在药品入库之后,厂商的报价信息也一同录入,药库调价人员根据市场行情和药品报价来衡量药品出售的价格,之后将最终的价格录入系统,药品管理系统会自动计算出调价百分比供工作人员参考,最后将调价信息显示给管理人员。用UML顺序图表示如图3-3所示: 药品调价界面药品 厂商药库管理员 3.药品价格调整2.药品信息及报价1.药品报价 4.药品价格6.调整价格显示 5.销售价格变更 图3-3 药品调价顺序图 调价完毕后就要考虑药品销售的问题了。在时间逻辑上,消费者提出购买某药品,由药房管理员通过系统查询该药品信息,在管理系统得到该药品信息后, 11 将信息返回到管理员处,然后管理员进行收费等工作,最后将药品出售小票和药品一并交还给消费者完成药品销售工作。用UML顺序图表示如图3-4所示: 药品销售界面药品 顾客药房管理员 1.购买药品()2.需求信息录入3.获取药品信息 5.显示药品信息7.销售小票打印4.药品信息 更新销售信息 图3-4 药品销售顺序图 药品退货类似于药品入库的逆过程,由药库管理员确认退货药品信息,之后管理系统更新数据库信息,将退货药品发回生产厂商即完成退货流程。用UML顺序图表示如图3-5所示: 药品入库界面药品 厂商药库管理员 退货药品信息药品信息查询 显示退货成功药品退货更新退货药品信息 图3-5 药品退货顺序图 12 查询模块总体来说时间逻辑顺序相差不大,基本先由管理员输入查询信息,选择查询类型,之后有药品管理系统自动完成相关的查询工作,并将查询到的信息反馈给管理员。用UML顺序图表示如图3-6所示: 药品查询界面药品 管理员 2.查询药品信息1.获取查询信息和类别 4.显示药品信息3.药品信息 图3-6 查询顺序图 3.2 数据库设计 数据库设计指在给定的数据库服务、操作系统和硬件环境下,怎样将用户的需求表示出来,并将它抽象成有效的数据库结构。数据库设计的过程可分为两大阶段:数据库系统的分析阶段和数据库表的设计阶段。 3.2.1 系统数据分析 系统数据分析是数据库设计的第一步,数据分析过程同数据库的逻辑结构密 [2]切相关,需要确定、编制、组织、筛选应用程序所使用的信息。 在本系统中,经上述分析得到,主要的实体包括管理员用户、药品、厂商、消费者,其余部分都是有这些实体属性信息组合完成。下面将一一分析这些实体在数据库中的表示方式。 对于本药品管理系统的用户主体,首先用户名和密码是必需的两个属性,对于本药品管理系统,由于使用环境是医院内部局域网,能接触到本系统的人员较少,故用户的权限属性包含的值也较少,即系统管理员、药房管理员、药库管理员,这三种权限足够满足该医院的日常使用。用数据库实体图表示用户关系如图3-7所示: 图3-7 系统用户E-R图 13 药品信息作为药品管理系统中最为关键的组成部分,其属性信息会影响众多数据库表的信息,故应含有如下属性:药品编号(作为区分药品的唯一凭据),药品名称,药品拼音码,药品类型,药品种类,药品单位,药品生产厂商编号,药品厂商名称,药品功效,药品禁忌,药品给药方式。这些属性详细描述了药品全方位的信息,给药品的管理带来便利,同时也为其他数据库表的信息表示打下基础。用数据库实体图表示药品信息如图3-8所示: 图3-8 药品信息E-R图 在第二章需求分析中,我们已经知道,药品的报价信息直接或间接影响了整个药品入库、销售的过程,而报价这个流程是由厂商来完成的,所以说厂商也是本药品管理系统中不可缺少的实体之一。厂商这个实体包含的属性有:厂商编号(作为区分厂商的唯一凭据),厂商名称,厂商地址,厂商联系人,厂商电话,厂商邮箱,厂商银行账号,厂商进货次数,厂商退货次数。这些属性全部或部分会影响到多个表的信息。利用数据库实体图表示如图3-9所示: 图3-9 厂商E-R图 药品的销售必然需要消费者的参与,消费者作为药品管理系统中药品的最终流向,需要包含以下属性来保证销售信息记录的准确性:消费者编号(作为区分消费者的唯一凭据),消费者姓名,消费者性别,消费者年龄,身份证号,消费者电话,利用以上属性来记录药品的最终流向。用数据库实体图表示如图3-10所示: 14 图3-10 消费者E-R图 其余数据库表基本都由以上主体的属性组成,这些主体及他们之间的关系共同组成了本药品管理系统的数据库基本结构。如图3-11是本系统的基本E-R图: 图4-11 系统E-R图 3.2.2 数据库的详细设计 详细数据库表的设计作为数据库设计的第二步,也是最重要的一步,决定了整个系统的数据保存及流动。通过之前与用户的交流、对系统的需求分析和总体模块的设计,便可对本系统的数据库进行详细设计,根据了解分析的实际情况,本药品管理系统创建了名称为hospital_info的数据库,利用这个数据库来存储医 15 院药品的相关信息、厂商的基本信息、消费者基本信息及各种数据记录。在本数据库中共创建了19张数据库表,包括baojia药品报价表、caigou入库表、caigouyuan采购员表、customer消费者表、email邮件记录表、heimingdan黑名单表、mingxi明细表、tiaojia调价表、usertime记录时间表、yp_danwei药品单位表、yp_leixing药品类型表、yp_zhonglei药品种类表、yp_information药品基本信息表,changshang 厂商表,users用户表,tuihuo退货表、xiaoshou销售记录表、kucun库存记录表等,这些表相互联系紧密,共同完成本药品管理系统的数据库记录工作。 下面简要介绍下数据库中八个重要的表的组成: 1. 系统用户表结构如表3-1所示 表 3-1 系统用户表 字段名 字段类型 长度 对应中文名称 是否主键 username varchar 20 登录名 Y password varchar 50 登录密码 N power varchar 20 登陆权限 N 2. 药品信息表结构如表3-2所示 表 3-2 药品信息表结构表 字段名 字段类型 长度 对应中文名称 是否主键 yp_num int null 药品编号 Y yp_name varchar 100 药品名称 N yp_pinyin varchar 50 拼音码 N yp_leixing varchar 20 药品类型 N yp_zhonglei varchar 20 药品种类 N yp_danwei varchar 20 药品单位 N yp_cs_num int null 厂商编号 N yp_cs_name varchar 100 厂商名称 N yp_gongxiao varchar Max 药品功效 N yp_jinji varchar Max 药品禁忌 N yp_geiyaofangshi varchar 30 给药方式 N 3. 厂商信息表结构如表3-3所示 表 3-3厂商信息表结构表 字段名 字段类型 长度 对应中文名称 是否主键 cs_num int null 厂商编号 Y cs_name varchar 100 厂商名称 N cs_address varchar 100 厂商地址 N cs_lianxiren varchar 20 厂商联系人 N cs_dianhua varchar 50 厂商电话 N cs_email varchar 50 厂商邮箱 N 16 cs_bank varchar 40 厂商银行卡号 N cs_jinhuocishu int null 厂商进货次数 N cs_tuihuocishu int null 厂商退货次数 N 4. 退货记录表结构如表3-4所示 表 3-4 退货记录表结构表 字段名 字段类型 长度 对应中文名称 是否主键 th_num int null 退货自动编号 Y th_yp_num int 退货药品编号 null N th_yp_name varchar 100 退货药品名称 N th_cs_num int null 退货厂商编号 N th_cs_name varchar 100 退货厂商名称 N th_yp_leixing varchar 20 退货药品类型 N th_yp_danwei varchar 20 退货药品单位 N th_shuliang float null 退货数量 N th_yuanyin float Max 退货原因 N th_date datetime null 退货日期 N 5. 消费者信息表结构如表3-5所示 表 3-5 消费者信息表结构表 字段名 字段类型 长度 对应中文名称 是否主键 customer_num int 顾客编号 null Y customer_name varchar 顾客姓名 30 N customer_sex varchar 顾客性别 10 N customer_age int 顾客年龄 null N customer_idcard varchar 顾客身份证号 50 N customer_dianhua varchar 顾客电话 30 N 6. 消费记录表结构如表3-6所示 表 3-6 消费记录表结构表 字段名 字段类型 长度 对应中文名称 是否主键 xs_num int 销售自动编号 null Y xs_yp_num int 销售药品编号 100 N xs_yp_name varchar 销售药品名称 100 N xs_yp_leixing varchar 销售药品类型 30 N xs_yp_zhonglei varchar 销售药品种类 30 N cs_yp_danwei varchar 销售药品单位 20 N xs_cs_num int 厂商编号 null N xs_cs_name varchar 厂商名称 100 N xs_jiage float 销售单价 null N 17 xs_customer_num int 顾客编号 null N xs_customer_name varchar 顾客姓名 30 N xs_shuliang flaot 销售数量 null N xs_date datetime 销售日期 null N 7. 药库明细表结构如表3-7所示 表3-7 药库明细表结构表 字段名 字段类型 长度 对应中文名称 是否主键 mx_num int 明细自动编号 null Y mx_yp_num int 药品编号 null N mx_yp_name varchar 药品名称 100 N mx_yp_cs_num int 厂商编号 null N mx_yp_cs_name varchar 厂商名称 100 N mx_yp_rk_date datetime 药品入库日期 null N mx_yp_rk_shuliang float 药品入库数量 null N mx_yp_rk_caigouyuan_num int 入库采购员编号 null N mx_yp_xs_date datetime 销售日期 null N mx_yp_xs_shuliang float 销售数量 null N mx_yp_xs_customer_num int 顾客编号 null N mx_yp_xs_customer_name varchar 顾客名字 30 N mx_yp_th_date datetime 退货日期 null N mx_yp_th_shuliang float 退货数量 null N 8. 采购员信息表结构如表3-8所示 表3-8 采购员信息表结构表 字段名 字段类型 长度 对应中文名称 是否主键 cgy_num int 采购员编号 null Y cgy_name varchar 采购员姓名 20 N cgy_sex varchar 采购员性别 10 N cgy_age int 采购员年龄 null N cgy_idcard varchar 身份证号 50 N cgy_dianhua varchar 采购员电话 30 N cgy_pic image 采购员照片 null N 18 4 系统详细设计 详细设计表示对该系统进行详细的设计,在总体设计的基础上进一步明确系统结构,详细地介绍系统的各个模块,为系统的开发实现和测试做准备。 4.1 系统运行环境的设置 4.1.1 系统需求的硬件环境 在提到系统运行是否成功的时候,首先就是从物理设备上考虑,即系统硬件环境的配置问题。本药品管理系统在实施运行过程中,需要普通计算机一台,包括键盘、鼠标等基本输入设备,也可添加更多辅助输入设备。计算机相关的硬件配置最低要求是处理器型号在Pentium IV以上,内存在1Gb以上,硬盘应至少保留空余空间在1Gb以上,而且计算机应含有一个网卡来确保可以连接至医院局域网。这是硬件环境的基本要求,当然这些要求并不是完全固定的,在条件允许的情况下,如果可以采用更好的物理配置,随着配置的增高,系统运行的速度也会随之提高。 4.1.2 系统需求的软件环境 在外部硬件环境支持的条件下,系统运行同样需要相应软件环境的支持。由于本系统是基于Windows平台开发,故其运行的硬件环境需要安装有Windows操作系统。同时,本系统是基于微软的.Net平台开发,故计算机中还需要安装Microsoft .NET Framework环境。从上述可知,为了让本系统得以运行,同时保证较高的运行效率,客户端计算机中必须安装Windows XP/Windows 7平台,且需要安装配置了Microsoft .NET Framework 3.5及其以上版本;服务器端的计算机中必须安装Windows Server 2003及其以上版本,且安装配置了Microsoft SQL Server 2008 数据库。 4.2 开发环境介绍 4.2.1 软件开发工具 本药品管理系统是基于C#.net语言开发,C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,它包括了诸如单一继 [3]承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发[3,4]的首选语言。 使用C#.Net开发必然需要相应的开发工具,我使用的是Microsoft Visual Studio 2010。Visual Studio是微软公司设计的软件开发环境,由于它具有使用方便、简单易学、功能丰富等诸多优点,故它成为了最流行的Windows应用程序的开发工具之一。加上本系统是基于C/S架构的软件,Visual Studio在前台页面设计方面具有明显的优势,控件使用方式简单随意,故成为了本系统开发的首选环境 19 4.2.2 数据库开发工具 SQL Server 2008是在Microsoft的数据平台上发布的,可以组织管理任何数据的数据库软件。它可以将非结构化、半结构化和结构化的数据直接存储到数据库中,也可以对数据进行查询、搜索、同步、和分析等操作。 SQL Server 2008 允许在使用了 Microsoft .NET 和Visual Studio开发的自定义应用程序中使用数据,也允许在面向服务的架构中使用数据。这些数据信息工作人员可以通过常见的工具直接访问。 由于SQL Server 2008具有可信任、高效和智能等众多优点,所以它成为了本药品管理系统信息存储的首选数据库。 4.2.3 相关开发技术简介 4.2.3.1 数据库触发器技术 触发器是针对数据表(库)的特殊存储过程,当这个表发生了Insert、Update [4]或Delete操作时,会自动激活执行,可以处理各种复杂的操作。本系统用到了触发器的以下功能: 1. 修改或添加其它数据表中的数据:当一个SQL语句对数据表进行操作时,触发器可以根据该SQL语句的操作情况对另一个表进行相应操作。 2. 更改原本要操作的SQL语句:触发器可以修改原本要操作的SQL语句 本系统中创建触发器的代码如下所示: create trigger ruku_mingxi on dbo.caigou for insert as insert into dbo.mingxi (mx_yp_num,mx_yp_name,mx_yp_rk_date,mx_yp_rk_shuliang) select cg_yp_num,cg_yp_name,cg_date,cg_shuliang from inserted 代码的作用是管理系统对caigou 入库记录表进行插入操作时,将同样的信息插入到mingxi药库明细表中。 4.2.3.2 数据库存储过程 数据库的存储过程就是指在数据库系统中,一些为了完成特定功能的SQL 语句集合,这些语句集合经编译后存储在数据库中,用户可以通过调用这些语句集[2]的名字并给出参数来执行它。以后要使用数据库中已定义好的存储过程时,只需在程序中调用,即可自动完成数据库命令。使用数据库存储过程具有以下优点: 1. 存储过程只是在开发时进行一次编译,以后每次执行存储过程都不需再重新编译。而一般SQL语句每执行一次就必须编译一次,所以使用存储过程可提高数据库执行效率。 2. 存储过程可以重复多次使用,可以大大减少数据库开发人员的工作量 3. 系统安全性高,数据库中可设定只有具有权限的用户才能使用某些存储过程 本系统中创建存储过程的代码举例如下: create procedure 登陆 @username varchar(20),@password varchar(20) 20 as select * from users where username=@username and password=@password 4.2.3.3 数据库连接技术ADO.NET 由于本系统开发使用的数据库连接技术是ADO.NET,所以在此对该技术做 简单介绍。 ADO.NET是一种非连接的数据访问技术,只有在需要时才会形成一个到数 据源的连接,使用完毕后就关闭连接。访问者可以对相关数据做出修改,但是这 种修改冰没有立即更新至数据库,而只是保存在本地,在需要进行修改时,要再 [4]次打开连接。这种做法在网络环境中优势是可以明显降低网络的流量。 连接数据库并执行调用存储过程的代码如下所示: static SqlConnection conn; conn = new SqlConnection("Data Source=127.0.0.1; Initial Catalog=my_hospital;Integrated Security=true"); conn.Open(); SqlCommand sqlcom = new SqlCommand("登陆", db.GetConnection()); sqlcom.CommandType = CommandType.StoredProcedure; sqlcom.Parameters.Add("@username", SqlDbType.VarChar, 20).Value = name; sqlcom.Parameters.Add("@password", SqlDbType.VarChar, 20).Value = pwd; SqlDataReader read = sqlcom.ExecuteReader(); 4.3 系统主界面设计 在上述一系列准备工作之后,进入了系统界面的设计阶段。 4.3.1 用户登录界面设计 在进入主界面前将初始化登录页面,在这里将会根据用户输入的信息来判断 信息的正确性,并记录登录用户的相应信息。登陆界面如图4-1所示: 图4-1 登陆界面 21 1. 实现目标 当运行主程序时自动弹出,根据数据库中的用户信息验证用户输入的信息是否正确,如果正确便进入药品管理系统主页面,如果不正确则提示用户。登录模块流程图如图4-2所示: 开始 初始化数据访 问对象 输入用户 名和密码 否 是是否退出?执行查询 获取用户信息 并记录该信息 是否密码正确? 进入药库主页退出 图4-2 登陆流程图 2. 实现过程 页面名称:login.cs 控件的属性设置和作用如表4-1所示。 表4-1 名称 主要属性设置 作用 username , 输入用户名 password passwordchar=* 输入用户密码 Button1 , 确定 Button2 , 重置 4.3.2 主程序界面设计 本系统基于C/S模式下开发的,通过运行初始化登陆到界面。主界面的整体结构为菜单式结构。主要包括菜单项、快捷键以及主窗体。 系统主界面如图4-3所示: 22 图4-3 主界面图 1. 实现目标 当点击上面的菜单时会调出相应的功能模块,在进入主页前初始化登陆程序,也就是说只有登陆才能进入到主页来,并且记录登录传过来的用户名以及登录时间等信息。在主页下方显示系统时间、用户名以及用户的登录时间。 2. 实现过程 页面名称:main.cs 控件的属性设置和作用如表4-2所示: 表4-2 名称 主要属性设置 作用 Timer1 , 即时触发 menuStrip1 , 创建菜单 toolStrip1 , 创建快捷栏 statuStrip1 , 主页的下边框 toolStripButton , 快捷键 ToolStripMenuItem , 菜单项 4.4 药品入库管理模块设计 入库管理主要是对药品的采购进行相应的操作,下面包含三个子模块,即首次入库模块、追加入库模块、入库记录查询模块。 4.4.1 首次入库模块 药品首次入库就是药品的第一次进入仓库,需要将信息录入数据库,主要是对数据表的添加操作,界面如图4-4所示: 23 图4-4 首次入库界面 1. 实现目标 当点击确认按钮时将所填数据添加到相应的表中。在填写时药品编号时,系统会自动前端匹配相应编号供管理员选择,在药品编号确定之后,跟药品相关的信息全部会自动补全,这些信息均由其他数据库表提供,管理员只需输入采购数量和选择采购日期即可。 2. 实现过程 页面名称:yp_shouciruku.cs 控件的属性设置和作用如表4-3所示: 表4-3 名称 主要属性设置 作用 dataGridView1 , 显示入库信息表的信息 Datatimepicker1 , 选择—输入入库日期 Textbox1 , 输入采购员编号 Textbox2 , 输入药品编号 Textbox3 , 输入药品名称 Textbox4 , 显示药品单位 Textbox5 , 显示药品类型 Textbox6 , 显示药品种类 Textbox7 , 输入入库数量 Textbox8 , 显示厂商编号 Textbox9 , 显示厂商名称 Textbox10 , 显示采购价格 Button1 , 确定添加 Button2 , 重置 Button3 , 返回 24 printDialog1 Document=printDocument1 弹出打印窗口 printDocument1 , 设置打印文本和格式 timer1 , 设置计时器来控制自动匹配 4.4.2 追加入库模块 药品追加入库是对与首次入库相对应药品信息的表的修改操作,界面如图4-5所示: 图4-5 追加入库界面 1. 实现目标 当点击datagridview时将数据放到下面的控件中,根据入库的信息对数据库进行相应操作,并且可以根据药品编号进行相应的查找操作,将查找到的数据显示在datagridview和相应控件上。并且在操作时将采购员编号、药品编号、药品名称、药品单位、药品类型、药品种类、厂商编号、厂商名称、采购单价设为只读,使用户无法修改以上信息。同时,点击打印按钮,可以打印当前该条入库清单。 2. 实现过程 页面名称:yp_zhuijiaruku.cs 控件的属性设置和作用如表4-4所示: 表4-4 名称 主要属性设置 作用 dataGridView1 , 显示入库信息表的信息 Datatimepicker1 , 选择—输入追加日期 Textbox1 , 输入追加采购员编号 25 Textbox2 , 显示药品编号 Textbox3 , 显示药品名称 Textbox4 , 显示药品单位 Textbox5 , 显示药品类型 Textbox6 , 显示药品种类 Textbox7 , 输入追加数量 Textbox8 , 显示厂商编号 Textbox9 , 显示厂商名称 Textbox10 , 显示采购价格 Button1 , 确定追加 Button2 , 返回 Button3 , 打印该条入库清单 4.4.3 入库记录查询模块设计 药品入库记录查询即通过输入关键词查询药品进入仓库的记录,也可以通过选择查询类型来缩小查询范围。非按时间查询界面如图4-6所示,按时间查询界面如图4-7所示: 图4-6 入库记录查询 26 图4-7 入库记录查询 1. 实现目标 本系统提供了按采购员编号、按药品编号、按日期和按厂商编号四种类型来查询,选择了查询类型之后,在输入查询内容后,点击查找按钮,系统便可按用户要求模糊查询数据库并将查到的数据显示在DataGridView中,而且在点击其中任意一项信息时,其详细信息会自动填充到下方的控件中。 2. 实现过程 用户需要先选择查询类型,之后输入查询内容,最后执行查询,具体流程图如图4-8所示: 图4-8 查询流程图 27 页面名称:rukutongji.cs 控件的属性设置和作用如表4-5所示: 表4-5 名称 主要属性设置 作用 dataGridView1 , 显示入库信息表的信息 Textbox1 , 显示采购员编号 Textbox2 , 显示药品编号 Textbox3 , 显示药品名称 Textbox4 , 显示药品单位 Textbox5 , 显示药品类型 Textbox6 , 显示药品种类 Textbox7 , 显示入库数量 Textbox8 , 显示厂商编号 Textbox9 , 显示厂商名称 Textbox10 , 显示采购价格 Textbox11 , 显示入库日期 radioButton1 , 按采购员编号查询 radioButton2 , 按药品编号查询 radioButton3 , 按入库日期查询 radioButton4 , 按厂商编号查询 dateTimePicker1 当前日期时间 查询初始时间设置 dateTimePicker2 当前日期时间 查询终止时间设置 4.5 药品销售相关模块设计 药品销售模块就是对药品销售信息的记录并存储进数据库的模块,还包含有 打印销售小票的功能,界面如图4-9、4-10所示: 图4-9 销售界面—药品编号搜索 28 图4-10 销售界面—药品拼音搜索 1. 实现目标 药品销售模块只需药房管理员输入药品编号及消费者信息即可,其他信息系统会根据药品编号的录入来自动补全,而且在输入药品编号的过程中,本系统会自动执行前端模糊匹配,帮助管理员选择。同时,在点击确定按钮之后,系统还会询问是否需要打印销售小票,如果需要,则会调用打印功能进行小票打印。 2. 实现过程 页面名称:xiaoshou.cs 控件的属性设置和作用如表4-6所示: 表4-6 名称 主要属性设置 作用 Textbox1 , 输入药品编号 Textbox3 , 显示药品类型 Textbox4 , 显示药品种类 Textbox5 , 显示药品单位 Textbox6 , 显示药品销售单价 Textbox7 , 显示厂商编号 Textbox8 , 显示厂商名称 Textbox9 , 输入消费者编号 Textbox10 , 显示消费者姓名 Textbox11 , 输入购买数量 comboBox1 , 输入—选择药品名称 Button1 , 确定销售 Button2 , 重置所填信息 Button3 , 退出销售模块 29 4.6 查询明细模块设计 4.6.1 药库明细查询模块 药库明细查询模块类似于入库查询模块,但是本模块所包含的内容远远多于其他模块。本模块包含了药库的药品从入库到销售出库的全部过程,整个过程的基本信息都将通过数据库触发器加入了相应的数据库表中。管理员可以通过输入关键词来查询药品的具体流向,也可以通过选择查询类型来缩小查询范围。界面如图4-11所示: 图4-11 明细查询界面 1. 实现目标 本系统提供了按药品编号、按药品名称、按厂商编号和按消费者编号四种类型来查询,选择了查询类型之后,在输入查询内容后,点击查找按钮,系统便可按用户要求模糊查询数据库并将查到的数据显示在DataGridView中,而且在点击其中任意一项信息时,其详细信息会自动填充到下方的控件中。 2. 实现过程 页面名称:mingxi.cs 控件的属性设置和作用如表4-7所示: 表4-7 名称 主要属性设置 作用 dataGridView1 , 显示明细表的信息 Textbox1 , 显示药品编号 Textbox2 , 显示药品名称 Textbox3 , 显示厂商编号 Textbox4 , 显示厂商名称 Textbox5 , 显示入库时间 30 Textbox6 , 显示入库数量 Textbox7 , 显示采购员编号 Textbox8 , 显示退货时间 Textbox9 , 显示退货数量 Textbox10 , 显示销售时间 Textbox11 , 显示销售数量 Textbox12 , 显示消费者编号 Textbox13 , 显示消费者姓名 radioButton1 , 按药品编号查询 radioButton2 , 按药品名称查询 radioButton3 , 按厂商编号查询 radioButton4 , 按消费者编号查询 4.6.2 药品紧缺查询模块 药库紧缺查询模块是针对药库中库存数量不足200单位的药品所执行的查询操作,它很直观的显示出药库当前库存数量过少的药品信息。本模块界面如图4-12所示: 图4-12 紧缺药品界面 1. 实现目标 这个模块提供了对药品库存的人性化管理,在模块窗体初始化过程中,会自动检索库存药品中库存数量不足的药品,并将其基本信息显示在DataGridView 中,同时,药品的相关信息也将被放置到窗体下方的控件中,管理人员可以根据具体情况来点击左上角的按钮来追加药品。 2. 实现过程 页面名称:jinque.cs 控件的属性设置和作用如表4-8所示: 31 表5-8 名称 主要属性设置 作用 dataGridView1 , 显示紧缺药品的信息 Textbox1 , 显示药品编号 Textbox2 , 显示药品名称 Textbox3 , 显示厂商编号 Textbox4 , 显示厂商名称 Textbox5 , 显示药品单位 Textbox6 , 显示药品类型 Textbox7 , 显示药品种类 Textbox8 , 显示当前库存数量 4.7 药品退货模块设计 药品退货模块针对的是药品在药库中因为药品本身出现的问题而需要退回厂商,通过管理员录入药品信息来执行退货,减少药库中该药品的库存数量。本模块页面如图4-13所示: 图4-13 药品退货界面 1. 实现目标 在管理员输入药品编号时,本模块会自动前端匹配符合条件的药品编号,供管理员选择,之后其余信息由系统读取表中信息自动补全,退货原因有五项常见原因供选择,管理员也可以选择其他原因来自定义。 2. 实现过程 页面名称:tuihuo.cs 控件的属性设置和作用如表4-9所示: 表4-9 名称 主要属性设置 作用 Textbox1 , 输入药品编号 32 Textbox2 , 显示药品名称 Textbox3 , 显示厂商编号 Textbox4 , 显示厂商名称 Textbox5 , 显示药品类型 Textbox6 , 显示药品单位 Textbox7 , 输入退货数量 comboBox1 , 选择退货原因 dateTimePicker1 当前时间 选择退货时间 richTextBox1 , 输入自定义退货原因 4.8 厂商模块设计 4.8.1 厂商信息管理模块 厂商信息管理对药品供应商的信息进行添加、删除、修改,并提供了对厂商发送邮件的功能,便于管理员的管理。 厂商信息修改界面如图4-14所示: 图4-14 厂商信息管理界面 厂商信息添加界面如图4-15所示: 33 图4-15 添加厂商界面 厂商信息添加界面如图4-16所示: 图4-16 发送邮件界面 1. 实现目标 管理员可以通过鼠标点击DataGridView中的内容来查看某个厂商的具体信息,这些信息将显示在下方的控件中,也可以通过修改某些信息点击提交后更改某个厂商的信息,同时也可以点击发送邮件给某厂商发邮件。需要添加厂商时也可以通过点击添加按钮完成这项工作。 2. 实现过程 页面名称:changshang.cs , add_changshang.cs 控件的属性设置和作用如表4-10所示: 34 表4-10 名称 主要属性设置 作用 Textbox1 , 显示厂商编号 Textbox2 , 输入—显示厂商名称 Textbox3 , 输入—显示厂商地址 Textbox4 , 输入—显示联系人 Textbox5 , 输入—显示联系电话 Textbox6 , 输入—显示银行账号 Textbox7 , 输入—显示进货次数 Textbox8 , 输入—显示退货次数 Textbox9 当前时间 输入—显示邮箱 richTextBox1 , 输入自定义退货原因 button1 , 确认提交信息 button2 , 重置输入的信息 button3 , 退出厂商管理模块 4.8.2 厂商黑名单管理模块 厂商黑名单显示了退货次数过多的厂商信息,管理员也可以管理这些信息,还可以给出现在黑名单中的厂商发送提醒邮件,界面如图4-17所示: 图4-17 黑名单界面 (1) 实现目标 管理员可以通过鼠标点击DataGridView中的内容来查看某个厂商的具体信息,这些信息将显示在下方的控件中,也可以通过添加按钮来将某个厂商加入至黑名单中,同时也可以点击发送邮件给某厂商发邮件。需要添加厂商时也可以通过点击添加按钮完成这项工作。 35 (2) 实现过程 页面名称:heimingdan.cs 控件的属性设置和作用如表4-11所示: 表4-11 名称 主要属性设置 作用 dataGridView1 , 显示黑名单厂商信息 Textbox1 , 显示厂商编号 Textbox2 , 输入—显示厂商名称 button1 , 添加黑名单 button2 , 删除某黑名单 button3 , 退出模块 button4 , 发送邮件 36 5 系统测试和应用 5.1 系统测试 随着计算机的高速发展,软件产品随之应用到社会生活的种种方面,软件的质量问题成为了人们关注的重点之一。质量低下的软件不仅会使用户的使用成本和维护成本增加,还可能产生其他的责任风险,造成公司的信誉下降。所以,软件测试是系统开发的必需步骤。 根据软件测试的方法及测试步骤先对本药品管理系统做测试,由于本系统的模块较多,本文中仅列举几个重要模块的测试流程,同时由于测试环境有限,故软件测试仅仅做到集成测试即可。 5.1.1 单元测试 单元测试亦称模块测试,开发人员在编写好一个模块的代码后,总是会该模块进行单元测试,检查它是否实现了预期功能,是否存在错误或者漏洞等。本系统的测试模块用例及结果如表5-1所示: 表5-1 实际结果 测试内容 测试用例 预期结果 无法登陆,弹出“密码错误”提登录模块 错误的用户名或密码 无法登录系统,弹出提示窗口 示框 入库成功提示框弹出,弹出入库成功提示框,表中存在刚药品入库 一组正确的药品信息 DataGridView显示刚录入的数录入的数据 据 正确的药品编号信息及日弹出退货成功提示,该药品库存数弹出“退货成功”,库存已经减药品退货 期 量减少 少 正确的药品信息和顾客信弹出销售成功提示框,可以打印销弹出“销售成功”,正常打印小药品销售 息 售小票 票 选择某一药品,调整其零该药品零售价正确变更 药品调价 零售价正确调整 售价 查询到了想要的内容 各种查询 无 正确查询到想要的内容 5.1.2 集成测试 通过使用权限是药库管理员的用户名yaoku成功登录系统后,将某种药品入库信息录入,使用库存查询模块查询该药品库存量;之后通过退货模块将部分该药品退货,查询退货记录模块是否更新;将部分该药品通过销售模块销售出去,查询销售记录模块是否更新;最后,通过药库明细模块查询药库明细是否更新。 经过上述流程的测试,入库模块通过测试,库存查询模块也得到了更新。在药品退货之后,退货记录表中插入了新的记录,库存数量也得到了更新;在药品销售之后,销售记录表同样得到了更新,库存量减少成功。最后药库明细表分别增加了入库记录、退货记录和销售记录。 以上结果表明,各个模块之间的信息传递正确无误,各个模块均通过了测试。 37 5.2 开发测试的难点及解决方法 5.2.1 汉字自动转换拼音 在本药品管理系统的药品信息设置模块,汉字自动转换拼音存入数据库中这个功能是药品查询时拼音检索的前提,也是本系统要解决的难点之一。首先,汉字数量繁多,而且药品名称中包含的文字常有生僻字,普通的转换方法无法完美转换。通过查询一系列资料查询和学习,本系统采用了微软的类库Microsoft Visual Studio International Pack来处理汉字与拼音的转换,这个类库提供了相关的API接口供开发者使用,调用该接口的核心代码如下: public string GetPinyin(string str) { string r = string.Empty; foreach (char obj in str) { try { ChineseChar chineseChar = new ChineseChar(obj); string t = chineseChar.Pinyins[0].ToString(); r += t.Substring(0, t.Length - 1); } catch { r += obj.ToString(); } } return r; } 通过系统中调用上述方法,系统便将输入的药品名称汉字自动转成拼音字母存储到数据库表中,这一难题也迎刃而解。 5.2.2 数据库存储过程中实现模糊查询 实现数据库存储过程是保证系统安全的第一步,也是本系统开发的重点和难点之一。在开发存储过程的过程中,遇到了一个问题,即对阿拉伯数字执行模糊查询时数据库总是不执行或者执行报错,使用的是如下代码: create procedure 销售按药品编号查询 (@xs_yp_name int) as select * from xiaoshou where xs_yp_num like '%'+@xs_yp_num+'%' 在数据库中直接输入SQL语句可以正确执行,但是在存储过程中却出错,这让人很是头疼。经过一番上网查询,发现存储过程实际上是作为函数在数据库中存储运行的,所以跟普通运行SQL语句不同,需要加入一个函数来表明“%”的意义,故在使用如下代码后错误成功解决。 create procedure 销售按药品编号查询 (@xs_yp_name int) 38 as select * from xiaoshou where xs_yp_num like '%'+rtrim(@xs_yp_num)+'%' 5.3 系统应用说明 5.3.1 信息设置模块 本操作是整个系统的运行基础,应在第一次运行本系统时使用 步骤一:设置药品类型信息; 步骤二:设置药品种类信息; 步骤三:设置药品单位信息; 步骤四:设置厂商信息; 步骤五:添加药品信息; 步骤六:添加厂商报价信息; 步骤七:设置采购员信息; 步骤八:设置消费者信息; 如图5-1所示: 图5-1 首次登陆设置 5.3.2 入库信息管理模块 步骤一:用鼠标左键点击主页菜单上的首次入库图标; 步骤二:输入所要入库的药品编号、采购员编号,输入药品编号后系统会将该药品对应的生产厂家、厂家编号、药品名称、药品类型、药品种类、采购价格等信息自动补全。 步骤三: 输入其余数据点击确定,添加成功后数据会在上面的Datagridview中的最后一条显示出来。 如图5-2所示: 39 图5-2 药品信息录入 5.3.3 销售管理模块 步骤一:用鼠标左键点击主页菜单上的药品出售图标或按键盘的F1键; 步骤二:输入所要销售的药品编号,输入药品编号后系统会将该药品对应的药品名称、药品类型、药品种类、药品单位、销售单价、厂商编号、厂商名称等信息自动补全 步骤三: 输入其余数据点击确定,药品即销售成功 步骤四:弹出打印小票确认框之后,选择是否打印即可 如图5-3所示: 图5-3 药品销售信息录入 40 6 结论 6.1 总结 本文以鹤壁煤矿集团医院药品管理为背景,阐述了药品管理系统的发展现状和存在意义,及系统开发过程中的种种流程分析,同时对系统开发使用的环境、开发工具及运行所需的环境做了介绍。经过各方面的准备和分析,我使用了Visual C#.NET作为本软件的开发工具,数据库方面使用的是当今较为流行的SQL Server 2008,利用Visual Studio 2010提供的各种面向对象的开发工具,对系统进行详细的设计。在选择开发环境之后便开始对本药品管理系统进行可行性分析,然后进行需求分析,明确相应的用户功能,并设计出具体的模块及实现方法。最后便是对系统业务流程的分析,为后续代码的编写打下重要的基础。当所有分析趋于完善的时候,便对系统进行了代码的实际编写。在代码基本完成后,通过对系统的不断测试和改进,最终得到了功能较为完整的药品管理熊,基本实现预期的设计目标。 6.2 不足和展望 本药品管理系统在开发完成后,虽然通过多次测试和修改,系统不断地维护和更新,功能不断添加,漏洞逐渐减少,基本实现了预期的功能,但是相对于目前大型医院的药品管理系统,本系统还有诸多的不足,大致总结下来包括以下几个方面: (1) 界面的美观性还需进一步完善 (2) 药品入库时应该支持条形码扫描,更加快捷准确 (3) 打印模块需要修改,以便支持最新的打印凭条硬件 (4) 拼音检索功能需要进一步完善 药品管理系统作为医院管理系统的一部分,与门诊系统、住院管理系统等有着诸多联系,它们共同为医院的信息管理服务,也为医院的现代化科学化管理贡献着力量。信息管理系统利用计算机智能、高速、精确的优点,快速地为医院精确处理众多的病患信息和医疗器材信息,极大地提高了医务人员和管理人员的工作效率,并减少了人为工作带来的高错误率,一方面照顾了病人的就医感受,另一方面也节约了医院的人力物力。我相信此类管理系统将不断被人开发出来,并随着社会的发展随之发展,为将来各行各业的管理工作贡献自己的力量。 41 致谢 本次毕业设计共历时三个月的时间,在这三个月里我要感谢身边每一个人曾给予我帮助的人,正是有了他们的帮助指导,我才能够顺利地完成本次毕业设计。 在这些人中,我首先要感谢的就是在技术和设计思想上给予我最大帮助的朱淑鑫老师。在朱老师的严格要求下,通过本次毕设我懂得了软件开发的严谨性,对我今后的人生态度产生了积极的影响。在我对毕业设计陷入困境找不到方向时,朱老师也对我提出了宝贵建议,这些建议宛如黑夜明灯,为我的毕业设计指明了方向。所以在此我对朱老师表示深深的谢意。 然后,我要对这段时间内帮助过我的同学表示感谢。正是有了他们帮助和意见,我才能对毕业设计的开发打开思路,也正是在他们的影响下,我在遇到困难时才能不气馁,最终完成毕业设计。在这里我对同学们表示深深的谢意。 由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和同学批评指正。 42 参考文献 [1]王琳.基于三层C/S的药品管理系统的设计与实现[D].上海:华东师范大学,2008:13. [2]王珊,萨师煊.数据库系统概论[M].高等教育出版社,2007.7:1-50. [3]刘烨,季石磊.C#编程及应用程序开发教程[M].清华大学出版社,2007.5:1-50. [4]沈洁,杨华.C# 2008数据库入门经典[M].第四版.清华大学出版社,2009.3:61-95. [5]上官万平.医药代表实务篇[M].第四版.上海交通大学出版社,2005:78—104. [6]齐治昌,谭庆平.宁洪.软件工程[M].第3版.高等教育出版社,2012.5:83-115. [7]李明,郑志宏.医院信息系统中的药房管理[J].中国临床医药研究杂志,2004, (09):106-107. [8]郑敏玲,刘碧波. 医院药品库存管理的[J].医学文选,2003,(02):252-254. [9]Niwa, M.Suzuki and K. Kimura. Electrical Shock Absorber for Docking System in Space. IEEE International Workshop on Intelligent Motion Control, Bogazici University, Istenbul, 1990: 825-830 [10]R. McDonnell, D. Wagen. Evolving Recurrent Perceptions for Time-Series Modeling. IEEE Trans. on Neural Networks. 1994, (1):24-38 [11]Niwa, M. Suzuki and K. Kimura. Electrical Shock Absorber for Docking System in Space. IEEE International Workshop on Intelligent Motion Control, Bogazici University, Istanbul, 1990:825-830 [12]Dann S(Modern inventory analysis techniques. Am J Health-System Pharmacists(2000, (02):351-355 [13]董保国,温业兵. 计算机在医院药品管理中的应用[J].华南国防医学杂志,1997, (02):102-103 [14]聂存玲.医院药品管理存在的问题及对策[J].中国农村卫生事业管理,2003,(04): 64 [15]王学年,梁桂风. 对医院药品管理的几点建议[J].中国药事,1999,(03): 45-46 [16]黄静.计算机在医院药品管理中的应用[J].广东药学,2000,(04): 58 [17]赵东坤,耿丽.医院药品管理合理化措施[J].中国药事, 2003,(10):12-13 43
/
本文档为【医院药品管理系统的设计与实现毕业论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索