版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
年6月23日人民医院药品管理系统设计与实现资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。中文题目:人民医院药库管理系统的设计与实现外文题目:THEDESIGNANDIMPLEMENTATIONOFPHARMACYMANAGEMRNTSYSTEMFORFXHIS毕业设计(论文)共XX页(其中:外文文献及译文XX页)图纸共X张完成日期20XX年X月答辩日期20XX年X月摘要在中国最新的医疗改革背景下,国内的大型综合性医院正在向实现医疗信息化的目标前进,可是在一些县级城市中,部分综合性医院依然采用手工记账的方式处理医院的日常工作。本文以人民医院为例,经过周密的调研之后,为改变医院药库人工管理的现状,设计并开发出一套医院药库管理系统。项目的实施充分利用了软件工程提出的工程化思想,严格按照软件的生命周期为主线来展开项目进度。软件设计部分采用面向对象的软件设计方法,利用UML的标准对系统的主要部分进行建模和设计。本系统采用C/S结构,以MicrosoftVisualStudio专业版为开发平台,经过VisualC#程序设计语言及三层架构的思想对项目进行开发。项目开发使用winform窗体技术,基于.netframework3.5提供的框架进行实现。系统后台利用Oracle10g作为数据库服务器支持,实现了药品基本信息维护、药品调价管理、药品入出库管理、药品库存盘点及统计查询等功能,使信息整理快速、准确、简单,从而提高了药库管理的效率和质量。关键字:C/S结构;Winform;Oracle数据库;UMLABSTRACTInthecontextofChina'smedicalreform,thedomesticlarge-scalegeneralhospitalistoachievethegoalofhealthinformationtechnologyforward,butsomecounty-levelcities,partofthegeneralhospitalstillusingmanualbookkeepingapproachtothedailyworkofthehospital.FuxinCountyPeople'sHospital,forexample,afterathoroughinvestigation,tochangethestatusquooftheartificialmanagementofthehospitalstoreroom,designanddevelopedahospitalstoreroommanagementsystem.Implementationoftheprojecttakesfulladvantageofthesoftwareengineeringprojectideas,andthemainlinetoexpandtheprogressoftheprojectinstrictaccordancewiththesoftwarelifecycle.Softwaredesignusingobject-orientedsoftwaredesignmethods,modelinganddesignusingUMLstandardsforthemainpartofthesystem.ThesystemusestheC/Sstructure,theMicrosoftVisualStudioProfessionalEditiondevelopmentplatformusingVisualC#programdesignlanguageandthinkingofthethree-tierprojectdevelopment.ProjectdeveloperstousethethewinformFormstechnology,basedonthenetframework,3.5framework.BackendsystemusingOracle10gasthedatabaseserversupport,basicmedicinesinformationmaintenance,drugpriceadjustment,management,medicineintoadatabasemanagement,druginventoryandstatisticalinquiry,finishingfast,accurate,simple,therebyenhancingthestoreroommanagementtheefficiencyandquality.Keyword:C/Sstructure;winform;Oracledatabase;UML目录引言 11项目概述 21.1现状概述 21.2组织机构 21.3系统业务流程 32系统需求分析 62.1需求陈述 62.2UseCase建模 72.2.1定义参与者 72.2.2UseCase图 72.3系统功能描述 93总体设计 123.1系统结构 123.2软件架构 123.2.1架构设计目标 123.2.2软件架构设计 133.2.3软件架构类图 173.3数据库设计 193.3.1数据库概念模型设计 193.3.2数据库表结构设计 194详细设计 294.1系统交互图 294.1.1系统架构类交互图 294.1.2参与者与模块间的交互 294.1.3系统协作图 334.1.4系统状态图 354.1.5系统活动图 374.2业务逻辑对象类设计 394.2.1发现业务逻辑类 394.2.2业务逻辑对象类图 394.3开发环境的选择 414.3.1系统开发工具 414.3.2数据库的选择 434.4.3系统网络架构设计 435编码 455.1概述开发工具及源程序代码 455.2源程序习惯说明 455.3源程序代码 486测试 516.1测试过程及测试方法概述 516.2测试项目测试用例 536.3软件测试结论 586.3.1软件能力 586.3.2缺陷和限制 586.3.3建议 596.3.4测试评估及总结 597结束语 62致谢 63参考文献 64附录A中文译文 65附录B英文原文 71附录C源程序清单 78引言随着计算机技术的飞速发展,计算机在系统管理中的应用越来越普及,利用计算机实现各个系统的管理显得越来越重要。中国在新医疗改革的背景下,对医院的信息化管理提出了更高的要求。在很多县级城市的综合医院里,信息化水平依然不达标,医院的信息管理还停留在手工记账阶段。手工记账的工作方式加大了人员的工作量,数据上的错误往往来自于手工上的疏忽。医院药库主要负责医院的药品流动,同时药品的统计数据是衡量医院水平的重要指标。医院信息系统中的药库管理系统实现了药品信息的全过程追踪和动态管理,对药品的库存和基本信息实现了有效的监管。人民医院药库管理系统正是为人民医院的药库管理流程而定制的,该项目改进了医院原先手工记账的状况,显著地提高了医院药库管理的信息化水平。本文将以面向对象的设计方式,采用工程化的思想,论述阜新县人民医院药库管理系统的设计与实现过程。开发医院药库管理系统的目标就是立足医院应用实际,着眼于未来发展,以强化医院管理,提高医疗质量,方便药库管理员对药品的管理和查询,提高医院的服务效率和服务质量,设计一套符合医院功能规范要求,安全稳定,操作简便的医院信息管理信息系统,为医院信息提供了一套全方位的解决方案。医院药库管理系统能够实现对医院药库管理系统入出库管理,在医院实现药库药品库存流向的监管和控制。为满足系统的全面性、实时性、操作简单的方便性和系统功能扩展灵活性的要求,该系统将进一步促进医院的信息化管理。医院药库管理系统主要针对药库业务展开,医院药库管理系统的应用,简化了药库管理员管理药品库存、药品出入库操作以及盘点查询等工作,从而提高了药库管理的效率,使药库管理员的工作更加高效,速度,统计结果更加准确,对于整个医院有着举足轻重的地位。改进医院管理,支持医教研,以科学、规范的医院内部管理体系为基础,充分利用电子计算机、网络通信及数据库等现代信息技术,在几年时间内,优化医院工作流程,实现医院信息的全电子化管理,建立远程医疗系统,全面建设数字化医院。1项目概述1.1现状概述人民医院位于辽宁省阜镇繁荣大街中段,是一所集医疗、科研、教学、预防为一体的县级综合性医院,也是辽宁省第一批被国家评审经过的二级甲等医院,担负着全县74万各族人民的医疗、保健、急救任务。人民医院现有正式职工508人,床位300张,总资产达4900万元。人民医院诊疗实力雄厚,汇聚了多位权威专家、教授,拥有一支由医学博士、博士生导师专家学者组成的专家组坐镇医院亲诊,始终坚持以发展为主题,深入开展科研攻坚,积极引进国际尖端设备,深度落实以患者为中心的服务理念,使医疗专业水平再上新台阶。人民医院以”病人至上,质量第一”为办院宗旨,以人性化的空间设计、全程导医陪护服务、先进网络管理流程为特色,以”星级的服务,普通的收费”构筑起医患之间的和谐平台。然而,人民医院的药库管理依然处于手工记账的阶段,每次到月结盘点的时候,不完善的信息化建设使药库管理的工作人员叫苦不迭。在药剂科科长徐明新的监督和指导下,医院西药库、中药库、草药库、大补液库、麻药库和卫材库各部门负责人对发票进行管理,将药品信息记录在医院统一印制的账本上。药剂科还专人负责发票的管理,医院药品入库则先对发票进行详细的记录并手工保存。医院药品出库的时候由请领人负责签字取药。每逢库存盘点和月结,需要翻出一个月时间的记录账本逐条计算。医院为了提高全院信息化建设,为药剂科配备了一台计算机,每月药剂科的人员需要统计各科室消耗及药品入出库信息并绘制Excel报表提交给财务科。虽然为科室配备了计算机,可是医院的信息管理依然未达到信息化的标准。1.2组织机构当前阜新县人民医院组织机构如图1-1所示:阜新县人民医院下设院部、药剂科、护理部、门诊部、住院部、财务科、检查检验终端科室、后勤等八大行政科室,其中护理部下设15个护士站,门诊部下设27个门诊诊察科室,住院部下设12个住院科室,每个一级科室设立了1名部长,2名副部长监督下级科室,下级科室设立一名科长和一名副科长带领科员完成医院的日常工作。其中院部主要指的是医院的机关部门,负责全院的日常管理工作和党建工作。医院药剂科负责管理医院的三个药局和五个药库,使医院的药品管理呈现三级管理制度,即药库——药局——科室,医院的药品由医嘱控制流动,库存管理由药库方面和药局方面进行管理。护理部主要负责管理医院护士和护士长的工作。住院部和门诊部负责管理和监督医生工作。财务科负责统计和向上级提交报表,管理着医院财务流动。检查检验科室是医院的检验和化验中心,负责患者检查、化验工作。后勤部门主要管理医院的物资和设备。图1-1人民医院组织机构图Fig1-1DiagramoftheFuXinCountyHospitalofPeopleOrganizationalStructure1.3系统业务流程经过前期调研分析和综合其它各方面相关理论知识,现归纳阜新县人民医院药库管理的业务流程如下:1.药剂管理员入库前先查找药品信息,没有就添加新记录到药品账目账本上。2.药库库管员将药品入库,保存药品采购发票到发票簿中,更新药品库存账本,填写好入库日期和库管员姓名。3.药库库管员执行药品出库,并根据药局申请药品进行出库操作。请领人需要在药品出库单上签字,药库库管员需要在药品库存账本上更新信息,并填写好领用科室和领用人。4.药库库管员对药品进行调价、填写药品价格变动明细表、填写药品的调价信息,并通知药局调价结果,进而发放调价通知单。5.药库库管员制定药品采购计划,填写药品入库计划单,然后整理备案。6.药库库管员通知药库封账,之后经过人工盘点药品库存数量,填写好药品的盘点单,然后比对药品库存账本,更新库存后,结存。根据以上总结出来的业务流程,结合在学校学习到的软件工程知识,经过对需求调研的总结,给出医院药库管理系统的业务流程图。业务流程图用于描述现系统各项业务处理过程,并结合业务流程图详细、准确地说明业务处理过程中数据的收集、输入、传递、存储、加工的方法、算法、输出的数量及形式等。业务流程图的图例见表1-1,阜新县人民医院药库管理业务流程图如下图1-2所示:表1-1业务流程图图例Tab1-1theLegendofWorkflow符号名称说明处理能改变数据值或数据位置的加工部件输入输出数据的输入与输出人员使用程序的人或系统数据流指明数据流动方向账册、报表用于记录数据的纸质文档医院药库管理系统系统的开发主要围绕上述业务流程进行,开发过程采用面向对象的开发技术,具体开发过程见下面的章节。图1-2人民医院药库管理业务流程图Fig1-2theWorkflowofPharmacyManagementOfFXHis2系统需求分析2.1需求陈述为了开发出真正满足用户需求的软件产品首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论人们把设计和编码工作做得如何出众,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼。[1]需求陈述为以下工作提供了良好的机制:理解客户需要什么,分析要求,评估可行性,协商合理的方案,无歧义的详细说明方案,确认规格说明,管理需求以致将这些需求转化为可运行的系统。[2]根据调研分析得知,阜新县人民医院药库管理系统共需要完成5项中心任务,即:基本信息维护、药价管理、库存管理、入出库管理、查询统计。每项任务具体描述如下:1.基本信息维护基本信息维护模块主要由医院药剂管理人员负责使用,提供了药库管理系统基本信息的管理功能,包括系统的常数维护、生产厂家及供货公司维护、入出库科室维护、药品基本信息维护等功能,录入的数据将在其它模块中作为选项出现。2.药价管理药价管理模块主要由药剂科的药价管理人员来操作,主要负责对医院药品的批发价、购入价、零售价进行调整。同时选择生效执行时期。3.库存管理药品的库存管理主要是用来查看药品的实际库存,可对药品进行停用操作。同时库存管理加入了盘点功能,用来保证系统库存数量为实际库存数量。4.入出库管理药品的入出库管理提供了药库管理人员对药品的入出库操作功能,药品的入库包括正常入库、特殊入库和入库退库操作,药品的出库操作包括正常出库、特殊出库和出库退库操作。由于医院的药品是三级管理制度,即药库、药局、患者,因此药品的入出库会在药库、药房的库存上产生库存数量的变化。5.统计查询统计查询提供了丰富的报表,方便医院做统计工作。药库的统计查询主要针对于查询药品的入出库操作记录,保证了医院院部对医院药品的监管工作的准确与高效。系统任务确定之后,下面的工作就是进行系统分析。面向对象的分析的主要任务是:分析问题领域、找出问题解决方案、发现对象、分析对象的内部构成和外部关系、建立软件系统的对象模型。分析问题领域是软件系统开发的一项基本工作,是项目开发之初必须首先进行的重要工作。分析问题领域的结果是对问题领域清晰、精确的定义,即明确目标系统将做什么。分析问题领域的主要任务是:对问题领域进行抽象、提出解决方案、对未来的系统进行需求分析、确定系统的职责范围、功能需求、性能需求、应用环境及假设条件等。实施面向对象分析的一般步骤如下:1.分析用户需求,建立UseCase并经过用例图来描述用户的需求。2.经过建立域模型以识别类与对象,从而识别系统中的各种对象。3.确定对象的内部特征,从而定义出各个属性与服务,以进一步细化类的结构。4.识别对象之间的关系并使用设计模式对类的结构进行优化和改造。5.获得对象之间的行为关系,绘制各种动态图形(顺序图、协作图、状态图等)。2.2UseCase建模2.2.1定义参与者参与者(actor)是指系统以外的、需要使用系统或与系统交互的东西,包括人、设备、外部系统等。[3]根据人民医院药库管理系统的需求能够确定5个参与者,即:药剂管理员使用药库管理系统来维护系统基本信息、管理和调整药价、查询实库存、药品入出库、统计查询打印报表。药库管理员使用药库管理系统对医院药库中药品的库存进行操作,能够调整药价、查询药品实库存、对药品进行入出库管理、统计查询打印报表。药局管理系统模块人民医院药库管理系统的外部系统参与者,是为了完成医院药库三级管理而实现的药局工作站,负责向药库发送入库申请。院长查询WEB模块是人民医院药库管理系统的外部系统参与者,负责提取药品的出入库信息用来生成医院院长查询的报表,方便领导对医院药品的督查。医院财务管理模块是人民医院药库管理系统的外部系统参与者,负责从药品的入出库信息统计科室消耗量和药品消耗量。2.2.2UseCase图用例图定义:由参与者(Actor)、用例(UseCase)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。用例图(UserCase)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。用例图的图示见表2-1。表2-1用例图图例Tab2-1theLegendofUseCaseDiagram符号名称说明用例交互动作的序列说明参与者除系统外需要与系统交互的事物关联actor和usecase之间的关系根据系统需求分析,并结合上节系统活动者的定义分析,得到人民医院药库管理系统块的5个用例如下:1.基本信息维护用例2.药价管理用例3.库存管理用例4.入出库管理用例5.查询统计用例结合参与者和用例得到人民医院药库管理系统的的用例图如图2-1所示,现对用例描述如下:1.基本信息维护维护院内所用药品的基本信息,添加、修改、删除常数;对于药理分类、剂型、包装单位、最小单位、计量单位、生产厂家、储藏条件、药品性质、药品类型、医保类别、使用方式、频次、使用方法以及价格形式等参数能够从相应常数维护表里取数据;校验数据的准确性;保存数据。2.药价管理主要包括药品调价和调价单管理,用户输入最新价格和生效时间,然后生成调价单。图2-1人民医院药库管理系统UseCase图Fig2-1UseCaseforPharmacyManagementforFXHIS3.库存管理其中包括药品实际库存查询、药品库存盘点。4.入出库管理其中包括药品的入出库管理功能,是药品库存操作的主要模块。5.统计查询提供了医院所需的财务管理报表。2.3系统功能描述根据上述需求,分析出人民医院药库管理系统功能如下:1.药品基本信息维护维护院内所用药品的基本信息,添加、修改、删除常数;对于药理分类,剂型,包装单位,最小单位,计量单位,生产厂家,储藏条件,药品性质,药品类型,医保类别,使用方式,频次,使用方法,价格形式等参数能够从相应常数维护表里取数据;校验数据的准确性;保存数据。2.常数维护维护药品的单位、包装等属性。3.供货公司维护维护药品的供货公司信息。4.生产厂家维护维护药品的生产厂家信息。5.入出库科室维护维护药品的入出库科室。6.药品调价根据调价文件进行药品调价处理,选择需要调价的药品(能够根据拼音码、五笔码、自定义码容易调出药品信息)。录入调后的新零售价,调价依据,备注等信息。调价的生效方式(系统自动跳出供选择,有两种方式:立即生效,择期生效)生效后,调整药品帐目表的零售价和计算全院各库房的调价盈亏金额,记录调价明细生成调价单。对于择期生效的调价信息,在未生效之前还能够进行修改。7.药品消耗前十名汇总近期药品的消耗信息,属于数据挖掘范畴,来指导药库管理员的采购工作。在整理出系统的主要功能之后,将在后续章节进行设计。8.调价管理对调价操作的管理,能够更改调价记录。9.库存管理维护部门内部药品的信息,对本库房的药品进行停用和警戒线设置不影响其它的库房,判断用户是否拥有基本数据维护的权限。选择部门的库存药品信息(需要维护的药品),经过五笔码、拼音码能够方便的调出信息。对需要维护的部门药品信息按照需要进行停用或者是设置警戒线或者维护库位号。校验数据的有效性,保存维护的数据。10.盘点管理盘点库房中的药品实际数量与计算机系统中的记录的数量差额。开始封帐,提取当时的计算机系统库存数据。打印盘点单,用于对照盘点用如果全盘,那么就把计算机的系统的库存数据作为盘点的实际数。将对应药品的实际库存数填写到对应的盘点数里,系统自动形成盘点盈亏值(如果不结存的话,盈亏是不计入月结帐的)。11.药品库存查询实时查询药库中药品的实际库存。12.入库计划库管人员根据库房的实际情况做入库计划生成入库计划单,判断用户是否拥有药品入库权限。选择入库计划方式,根据不同的方式形成不同的计划内容。补充录入计划信息。保存计划内容13.药品入库库管人员根据供货商送的货进行药品入库登记操作,能够进行退货操作。能够根据采购单来进行入库,也能够手工录入,同时修改库存。14.药品出库将库存中的药品做出库处理,判断用户是否拥有出库权限,选择要出给的目标科室,录入要出库的药品信息,保存信息,置状态为出库状态。15.综合查询查询药品入库、出库、库存、调价、盘点等信息。16.月结查询统计汇总当月的入库、出库、报废、盘点数据,计算当月结存数据。17.药品过期统计统计过期的药品,医院统一进行处理。18.盘点单综合查询能够查看药品的盘点单信息。19.药品入库汇总汇总某一时间段的药品的入库信息。20.药品出库汇总汇总某一时间段的药品的出库信息。3总体设计需求分析阶段已经完全弄清楚了目标系统的各种需求,较好地解决了要让所开发的软件”做什么”的问题下一步就要着手实现软件的需求,即要着手解决”怎么做”的问题。总体设计过程首先寻找实现系统的各种不同的方案,需求分析阶段得到的用例图是各种方案的基础。本章将从系统结构设计、软件架构设计和数据库设计着手,对阜新县人民医院药库管理系统进行总体设计。3.1系统结构根据需求分析阶段得到的软件功能描述,抽象出药库管理系统的系统结构如图3-1所示。下面模块划分只是抽象意义上的划分,各模块之间需要共享数据,相互协作,完成整个系统流程,单一事物功能模块间是相互独立的。3.2软件架构软件的架构是指经过某种特定的技术平台,完成软件系统整体功能的开发过程。也能够通俗地理解为:总体设计和总体结构布局。一般而言,软件系统架构有两个要素:1.它是一个软件系统从整体到部分的最高层次的划分。2.建造一个系统所做出的最高层次的、以后难以更改的、商业和技术的决定。3.2.1架构设计目标软件架构设计要达到如下的目标:可行性(Feasible):架构具有可行性是架构设计的基石。可靠性(Reliable):软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠。安全行(Secure):软件系统所承担的交易的商业价值极高,系统的安全性非常重要。可定制化(Customizable):同样的一套软件,能够根据客户群的不同和市场需求的变化进行调整。可扩展性(Extensible):在新技术出现的时候,一个软件系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展。可维护性(Maintainable):软件系统的维护包括两方面,一是排除现有的错误,二是将新的软件需求反映到现有系统中去。一个易于维护的系统能够有效地降低技术支持的花费。图3-1阜新县人民医院药库管理系统系统结构图Fig3-1FunctionModelsofPharmacyManagementSystemforFXHIS可升级性(Scalable):软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。只有这样,才能适应用户的市场扩展得可能性。客户体验(CustomerExperience):软件系统必须易于使用。软件的最终用户很可能是不具有计算机专业技术的人员。3.2.2软件架构设计以下将根据架构设计原则和信息系统原理来建立系统的架构设计模型。将信息系统中比较关心的对象分层,可分为三层:用户界面层、业务逻辑层、数据访问层,如图3-2所示,再把各层中的一些公共部分提出来:权限管理、异常处理,这样得到包图如图3-3所示:图3-2系统体系架构图Fig3-2TheDiagramofSystemArchitecture图3-3医院药库管理系统包图Fig3-3PackageDiagramofPharmacyManagementModel1.Winforms(用户界面)包用户界面包的职责是:与用户的交互,接收用户的各种输入以及输出各种提示信息或处理结果。对于输入的数据进行数据校验,过滤非法数据。向业务处理对象发送处理请求。用于封装界面的数据,并设计数据显示的方案。用户界面包图展开如图3-4所示:图3-4Winforms包展开图Fig3-4PackageDiagramofWinformsWinforms包含的类见图3-5:图3-5用户界面类图Fig3-5ClassDiagramofWinforms2.BizProcess(业务逻辑)包业务逻辑包的职责是:1)接收用户界面层传来的数据;2)根据用户界面的数据定义SQL命令;3)实现业务逻辑的算法并检查操作权限及异常处理;4)拼装数据访问层提供的方法形成完整业务;5)传递业务执行命令给数据访问层业务逻辑实现持久化操作。包图展开如图3-6所示:图3-6业务逻辑包图展开Fig3-6PackageDiagramofBusiness业务逻辑包包含的类见图3-7:图3-7业务逻辑类图Fig3-7ClassDiagramofBusiness、3.DataAccess(数据访问)包数据访问层的职责是:1)实现数据持久化操作;2)执行事务处理,维持事务原子性。数据访问包图展开如图3-8所示:图3-8数据访问包图展开Fig3-8PackageDiagramofDataAccess数据访问包包含的类见图3-9:对于每一个业务处理中需要持久化操作的对象都能够对应为一个数据库访问对象,在很多业务处理中需要请求多个数据库访问对象来进行数据的读写操作,而这些操作又必须在同一个事务中,这时需要用同一个数据库连接对象来进行统一的事务处理。图3-9数据访问类图Fig3-9ClassDiagramofDataAccess对于每一个业务处理中需要持久化操作的对象都能够对应为一个数据库访问对象,在很多业务处理中需要请求多个数据库访问对象来进行数据的读写操作,而这些操作又必须在同一个事务中,这时需要用同一个数据库连接对象来进行统一的事务处理。这里的数据库连接类的创立用到了单件(Singleton)模式,保证一个类仅有一个实例,一个客户在同一时刻只能用一个数据库连接对象。4.Model(模型)包模型包的主要职责是:1)提供数据封装的对象;2)提供系统参数的枚举;3)提供数据库逻辑结构模板。模型包图展开如图3-10所示:图3-10权限管理包图展开Fig3-10PackageDiagramofAccessAuthorization模型包包含的类见图3-11:图3-11权限管理类图Fig3-11ClassDiagramofAccessAuthorization3.2.3软件架构类图将包图展开,得到类图,它是架构的静态结构图,表示了各个类之间的静态联系。阜人民医院药库管理系统架构类图如下图3-13所示。图3-13系统架构类图Fig3-13ClassDiagramofSystemArchitecture3.3数据库设计数据库设计是软件开发的灵魂和基础,是整个系统成功的关键所在,是开发高品质应用的前提。关系型数据库是当前应用最广泛的数据库,接下来将从面向对象设计的角度出发设计数据库的概念模型和逻辑模型。3.3.1数据库概念模型设计根据需求描述和软件架构设计,用户、权限、药品基本信息、药品入库、药品出库、科室信息、药品盘点、科室对照、常数信息等都是模型层的实体类,能够直接映射为二维表。阜新县人民医院药库管理系统的E-R模型图见图3-14。图3-14药库管理系统数据库E-R图Fig4-2InteractiveDiagrambetweenSalesmanandSalesManagement3.3.2数据库表结构设计将药库管理系统E-R模型中的实体转换为物理表,得到物理表结构如下:1.员工信息表STAFF表3-1员工信息表结构tab.3-1StructureofStafftable主键标识字段名类型可否为空注释PKSTAFFCODEVARCHAR2(50)N用户编码STAFFNAMEVARCHAR2(50)Y用户名称SPELLCODEVARCHAR2(50)Y拼音码ROLEVARCHAR2(50)Y角色编码PASSWORDVARCHAR2(50)Y密码DEPTCODEVARCHAR2(50)Y所属科室编码2.科室信息表COM_DEPARTMENT表3-2科室信息表结构tab.3-2StructureofCOM_DEPARTMENT主键标识字段名类型可否为空注释PKDEPT_CODEVARCHAR2(4)N科室编码DEPT_NAMEVARCHAR2(30)Y科室名称SPELL_CODEVARCHAR2(8)Y拼音WB_CODEVARCHAR2(8)Y五笔DEPT_ENAMEVARCHAR2(20)Y科室英文DEPT_TYPEVARCHAR2(4)Y科室类型MEDI_TIMENUMBERY发药时间CYCLE_BEGINNUMBERY周期开始CYCLE_ENDNUMBERY周期结束REGDEPT_FLAGVARCHAR2(1)Y是否挂号科室TATDEPT_FLAGVARCHAR2(1)Y是否核算科室DEPT_PROVARCHAR2(1)Y特殊科室属性ALTER_MONEYNUMBER(7,2)Y警戒线EXT_FLAGVARCHAR2(2)Y扩展标志EXT1_FLAGVARCHAR2(2)Y扩展标志1VALID_STATEVARCHAR2(1)N有效性标志SORT_IDNUMBERY顺序号OPER_CODEVARCHAR2(6)N操作员OPER_DATEDATEN操作时间USER_CODEVARCHAR2(8)Y自定义码SIMPLE_NAMEVARCHAR2(16)Y科室简称3.入出库科室对照表COM_DEPTCOMPARE表3-3入出库科室对照表结构tab.3-3StructureofCOM_DEPTCOMPARE主键标识字段名类型可否为空注释DEPT_NAMEVARCHAR2(50)N原科室名称IN_DEPTCODEVARCHAR2(50)Y入库科室代码IN_MARKVARCHAR2(100)Y入库科室备注OUT_DEPTCODEVARCHAR2(50)Y出库科室代码OUT_MARKVARCHAR2(100)Y出库科室备注4.公共常数表COM_DICTIONARY表3-4公共常数表结构tab.3-4StructureofCOM_DICTIONARY主键标识字段名类型可否为空注释PKTYPEVARCHAR2(20)N常数类型PKCODEVARCHAR2(20)N编码NAMEVARCHAR2(1000)Y名称MARKVARCHAR2()Y备注SPELL_CODEVARCHAR2(30)Y拼音码WB_CODEVARCHAR2(30)Y五笔码INPUT_CODEVARCHAR2(30)Y输入SORT_IDNUMBERY顺序号VALID_STATEVARCHAR2(1)N有效性标志OPER_CODEVARCHAR2(6)Y操作员OPER_DATEDATEY操作时间IS_COMMONVARCHAR2(1)Y院感模块KIND_IDVARCHAR2(100)Y分类名PARENT_CODEVARCHAR2(14)N父级医疗机构编码CURRENT_CODEVARCHAR2(14)N本机医疗机构编码5.系统权限表COM_PERMISSION表3-5系统权限表结构tab.3-5StructureofCOM_PERMISSION主键标识字段名类型可否为空注释PKSTAFF_CODEVARCHAR2(50)N员工编码FUNCIDVARCHAR2(50)Y功能编码DEPT_CODEVARCHAR2(50)Y权限科室编码6.拼音码表COM_SPELLBASE表3-6拼音码表结构tab.3-6StructureofCOM_SPELLBASE主键标识字段名类型可否为空注释PKSPELL_CODEVARCHAR2(1)N拼音WB_CODEVARCHAR2(1)N五笔PKNAMEVARCHAR2(2)N名称SPELL_ALLVARCHAR2(10)Y全拼TONENUMBER(1)Y声调7.药品目录表PHA_COM_BASEINFO表3-7药品目录表结构tab.3-7StructureofPHA_COM_BASEINFO主键标识字段名类型可否为空注释PKDRUG_CODEVARCHAR2(12)N药品编码TRADE_NAMEVARCHAR2(50)Y商品名称SPELL_CODEVARCHAR2(16)Y商品名拼音码WB_CODEVARCHAR2(16)Y商品名五笔码CUSTOM_CODEVARCHAR2(16)Y商品名自定义码REGULAR_NAMEVARCHAR2(50)Y通用名REGULAR_SPELLVARCHAR2(16)Y通用名拼音码REGULAR_WBVARCHAR2(50)Y通用名五笔码REGULAR_CUSTOMVARCHAR2(50)Y通用名自定义码FORMAL_NAMEVARCHAR2(50)Y学名FORMAL_SPELLVARCHAR2(16)Y学名拼音码FORMAL_WBVARCHAR2(16)Y学名五笔码FORMAL_CUSTOMVARCHAR2(16)Y学名自定义码OTHER_NAMEVARCHAR2(50)Y别名OTHER_SPELLVARCHAR2(16)Y别名拼音码OTHER_WBVARCHAR2(16)Y别名五笔码OTHER_CUSTOMVARCHAR2(16)Y别名自定义码ENGLISH_REGULARVARCHAR2(32)Y英文通用名ENGLISH_OTHERVARCHAR2(32)Y英文别名ENGLISH_NAMEVARCHAR2(32)Y英文名INTERNATIONAL_CODEVARCHAR2(20)Y国际编码GB_CODEVARCHAR2(20)Y国家编码CLASS_CODEVARCHAR2(3)N系统类别FEE_CODEVARCHAR2(3)N最小费用代码DRUG_TYPEVARCHAR2(1)N药品类别DRUG_QUALITYVARCHAR2(2)N药品性质ITEM_GRADEVARCHAR2(1)Y项目等级SPECSVARCHAR2(32)Y规格RETAIL_PRICENUMBER(12,4)N参考零售价WHOLESALE_PRICENUMBER(12,4)Y参考批发价PURCHASE_PRICENUMBER(12,4)Y最新购入价TOP_RETAILPRICENUMBER(12,4)Y最高零售价PACK_UNITVARCHAR2(16)N包装单位PACK_QTYNUMBER(4)Y包装数MIN_UNITVARCHAR2(16)N最小单位DOSE_MODEL_CODEVARCHAR2(10)Y剂型编码BASE_DOSENUMBER(10,4)Y基本剂量DOSE_UNITVARCHAR2(16)Y剂量单位USAGE_CODEVARCHAR2(10)Y用法编码FREQUENCY_CODEVARCHAR2(6)Y频次编码ONCE_DOSENUMBER(10,4)Y一次用量CAUTIONVARCHAR2(50)Y注意事项PHY_FUNCTION1VARCHAR2(20)Y一级药理作用PHY_FUNCTION2VARCHAR2(20)Y二级药理作用PHY_FUNCTION3VARCHAR2(20)Y三级药理作用VALID_STATEVARCHAR2(1)Y有效性标志SELF_FLAGVARCHAR2(1)Y自制标志OCT_FLAGVARCHAR2(2)YOCT标志GMP_FLAGVARCHAR2(1)YGMP标志TEST_FLAGVARCHAR2(1)Y是否需要试敏NEW_FLAGVARCHAR2(1)Y新药标记APPEND_FLAGVARCHAR2(1)Y附材标志LACK_FLAGVARCHAR2(1)Y缺药标志SHOW_FLAGVARCHAR2(1)Y大屏幕显示标记TENDER_FLAGVARCHAR2(1)Y招标标志TENDER_PRICENUMBER(14,4)Y招标价TENDER_COMPANYVARCHAR2(10)Y中标公司TENDER_BEGINDATEDATEY中标开始日期TENDER_ENDDATEDATEY中标结束日期COMPANY_CODEVARCHAR2(10)Y最新供药公司PRICE_FORMVARCHAR2(2)Y价格形式CONTRACT_CODEVARCHAR2(30)Y招标采购合同编号PRODUCING_AREAVARCHAR2(50)Y产地PRODUCER_CODEVARCHAR2(10)Y生产厂家APPROVE_INFOVARCHAR2(32)Y批文信息LABELVARCHAR2(50)Y商标INGREDIENTVARCHAR2(50)Y有效成分EXECUTE_STANDARDVARCHAR2(50)Y执行标准STORE_CONDITIONVARCHAR2(50)Y储藏条件BRIEF_INTRODUCTIONVARCHAR2(50)Y药品简介MANUALVARCHAR2()Y说明书内容BAR_CODEVARCHAR2(20)Y条形码OLD_DRUG_CODEVARCHAR2(20)Y旧系统药品编码MARKVARCHAR2(200)Y备注OPER_CODEVARCHAR2(6)Y操作员OPER_DATEDATEY操作时间SPECIAL_FLAGVARCHAR2(1)Y省限制SPECIAL_FLAG1VARCHAR2(1)Y市限制SPECIAL_FLAG2VARCHAR2(1)Y自费项目SPECIAL_FLAG3VARCHAR2(1)Y特限药品标记SPECIAL_FLAG4VARCHAR2(1)Y特殊标记SHIFT_TYPEVARCHAR2(1)Y变动类型SHIFT_DATEDATEY变动时间SHIFT_MARKVARCHAR2(50)Y变动原因TRADE_PICTUREVARCHAR2(50)Y药品外观图片SPLIT_TYPEVARCHAR2(1)Y拆分类型NOSTRUM_FLAGVARCHAR2(1)Y协定处方标志EXTEND1VARCHAR2(20)Y扩展数据1EXTEND2VARCHAR2(20)Y扩展数据2CREATE_TIMEDATEY字典建立时间8.药品盘点明细表PHA_COM_CHECKDETAIL表3-8药品盘点明细表结构tab.3-8StructureofPHA_COM_CHECKDETAIL主键标识字段名类型可否为空注释PKCHECK_NONUMBER(12)N盘点流水号CHECK_CODEVARCHAR2(12)Y盘点单号DRUG_DEPT_CODEVARCHAR2(4)Y科室代码DRUG_CODEVARCHAR2(12)Y药品编码BATCH_NOVARCHAR2(16)Y批号TRADE_NAMEVARCHAR2(50)Y商品名称SPECSVARCHAR2(32)Y规格RETAIL_PRICENUMBER(12,4)Y零售价WHOLESALE_PRICENUMBER(12,4)Y批发价PURCHASE_PRICENUMBER(12,4)Y购入价DRUG_TYPECHAR(1)N药品类别DRUG_QUALITYVARCHAR2(2)Y药品性质MIN_UNITVARCHAR2(16)Y最小单位PACK_UNITVARCHAR2(16)Y包装单位PACK_QTYNUMBER(4)Y包装数PLACECODEVARCHAR2(12)Y货位号VALID_DATEDATEY有效期PRODUCERVARCHAR2(32)Y生产厂家FSTORE_NUMNUMBER(14,4)Y封帐库存数量ADJUST_NUMNUMBER(14,4)Y实际盘存数量CSTORE_NUMNUMBER(14,4)Y结存库存数量MIN_NUMNUMBER(14,4)Y对应最小单位的数量PACK_NUMNUMBER(14,4)Y对应包装单位的数量PROFIT_FLAGVARCHAR2(1)Y盘点盈亏标记QUALITY_FLAGVARCHAR2(1)Y药品质量情况ADD_FLAGVARCHAR2(1)Y是否是附加药品DISPOSE_WAYVARCHAR2(30)Y处理方式CHECK_STATEVARCHAR2(1)Y盘点状态标志OPER_CODEVARCHAR2(6)Y操作员编码OPER_DATEDATEY操作员日期PROFIT_LOSS_NUMNUMBER(14,4)Y盈亏数量9.药品盘点统计表PHA_COM_CHECKSTATIC表3-9结构药品盘点统计表tab.3-9StructureofPHA_COM_CHECKSTATIC主键标识字段名类型可否为空注释PKCHECK_CODEVARCHAR2(12)N盘点单号CHECK_NAMEVARCHAR2(20)Y盘点单名称PKDRUG_DEPT_CODEVARCHAR2(4)N库存单位编码CHECK_STATEVARCHAR2(1)Y盘点状态标志FOPER_CODEVARCHAR2(6)Y封帐人FOPER_TIMEDATEY封帐时间COPER_CODEVARCHAR2(6)Y结存人COPER_TIMEDATEY结存时间CHECK_LOSS_COSTNUMBER(17,4)Y盘亏金额CHECK_PROFIT_COSTNUMBER(17,4)Y盘盈金额OPER_CODEVARCHAR2(6)Y操作员OPER_DATEDATEY操作日期10.药品厂家或供货商表PHA_COM_COMPANY表3-10药品厂家或供货商表结构tab.3-10StructureofPHA_COM_COMPANY主键标识字段名类型可否为空注释PKFAC_CODEVARCHAR2(10)N公司编码FAC_NAMEVARCHAR2(100)N公司名称ADDRESSVARCHAR2(200)Y公司地址RELATIONVARCHAR2(100)Y联系方式GMP_INFOVARCHAR2(200)YGMP信息GSP_INFOVARCHAR2(100)YGSP信息SPELL_CODEVARCHAR2(20)Y拼音码WB_CODEVARCHAR2(20)Y五笔码CUSTOM_CODEVARCHAR2(20)Y自定义码COMPANY_TYPECHAR(1)Y公司类别OPEN_BANKVARCHAR2(200)Y开户银行OPEN_ACCOUNTSVARCHAR2(100)Y开户账号ACTUAL_RATENUMBER(5,4)Y政策扣率MARKVARCHAR2(64)Y备注OPER_CODEVARCHAR2(6)Y操作员OPER_DATEDATEY操作日期VALID_FLAGVARCHAR2(1)Y有效性11.药品库存表PHA_COM_STORAGE表3-11药品库存表结构tab.3-11StructureofPHA_COM_STORAGE主键标识字段名类型可否为空注释PKGROUP_CODEVARCHAR2(20)N批次号PKDRUG_DEPT_CODEVARCHAR2(14)N库存科室DRUG_CODEVARCHAR2(12)N药品编码BATCH_NOVARCHAR2(16)Y批号TRADE_NAMEVARCHAR2(50)Y药品商品名SPECSVARCHAR2(32)Y规格DRUG_TYPEVARCHAR2(1)Y药品类别DRUG_QUALITYVARCHAR2(2)Y药品性质RETAIL_PRICENUMBER(12,4)Y零售价WHOLESALE_PRICENUMBER(12,4)Y批发价PURCHASE_PRICENUMBER(12,4)Y实进价PACK_UNITVARCHAR2(16)Y包装单位PACK_QTYNUMBER(4)Y包装数MIN_UNITVARCHAR2(16)Y最小单位SHOW_FLAGVARCHAR2(1)Y显示的单位标记SHOW_UNITVARCHAR2(16)Y显示的单位VALID_DATEDATEY有效期STORE_SUMNUMBER(14,4)Y库存数量STORE_COSTNUMBER(14,2)Y库存金额PREOUT_SUMNUMBER(14,4)Y预扣库存数量PREOUT_COSTNUMBER(14,2)Y预扣库存金额VALID_FLAGVARCHAR2(1)Y有效性标志PRODUCER_CODEVARCHAR2(10)Y生产厂家LAST_MONTH_NUMNUMBER(14,4)Y最近月结的库存量PLACE_CODEVARCHAR2(12)Y货位号STORE_SEQVARCHAR2(10)Y更新库存的流水号STATEVARCHAR2(1)Y在库状态TARGET_DEPTVARCHAR2(10)Y目标科室BILL_CODEVARCHAR2(20)Y单据号SERIAL_CODENUMBER(14)Y单据序号MARKVARCHAR2(100)Y备注OPER_CODEVARCHAR2(6)Y操作员OPER_DATEDATEY操作日期CLASS2_CODEVARCHAR2(10)N库存操作类型INVOICE_NOVARCHAR2(10)Y发票号ARK_FLAGVARCHAR2(1)Y是否药柜管理药品ARK_QTYNUMBER(14,4)Y库存汇总数量12.药品入库记录表PHA_COM_INPUT表3-12药品入库记录表结构tab.3-12StructureofPHA_COM_INPUT主键标识字段名类型可否为空注释DRUG_DEPT_CODEVARCHAR2(4)N库存科室PKIN_BILL_CODENUMBER(12)N入库单流水号SERIAL_CODENUMBER(4)N序号GROUP_CODEVARCHAR2(20)N批次号IN_LIST_CODEVARCHAR2(20)Y入库单据号IN_TYPEVARCHAR2(4)N入库类型CLASS3_MEANING_CODEVARCHAR2(8)Y入库分类OUT_BILL_CODENUMBER(12)Y出库单号OUT_SERIAL_CODENUMBER(4)Y出库单序号OUT_LIST_CODEVARCHAR2(20)Y出库单据号DRUG_CODEVARCHAR2(12)Y药品编码TRADE_NAMEVARCHAR2(50)Y药品商品名DRUG_TYPEVARCHAR2(1)Y药品类别DRUG_QUALITYVARCHAR2(2)Y药品性质SPECSVARCHAR2(32)Y规格PACK_UNITVARCHAR2(16)Y包装单位PACK_QTYNUMBER(4)Y包装数MIN_UNITVARCHAR2(16)Y最小单位SHOW_FLAGVARCHAR2(1)Y显示的单位标记SHOW_UNITVARCHAR2(16)Y显示的单位BATCH_NOVARCHAR2(16)Y批号VALID_DATEDATEY有效期PRODUCER_CODEVARCHAR2(10)Y生产厂家COMPANY_CODEVARCHAR2(10)Y供货单位代码RETAIL_PRICENUMBER(12,4)Y零售价WHOLESALE_PRICENUMBER(12,4)Y批发价PURCHASE_PRICENUMBER(12,4)Y购入价IN_NUMNUMBER(14,4)YRETAIL_COSTNUMBER(12,2)Y零售金额WHOLESALE_COSTNUMBER(12,2)Y批发金额PURCHASE_COSTNUMBER(12,2)Y购入金额STORE_NUMNUMBER(14,4)Y入库后库存数量STORE_COSTNUMBER(14,4)Y入库后库存总金额SPECIAL_FLAGVARCHAR2(1)Y特殊标记IN_STATEVARCHAR2(1)Y入库状态APPLY_NUMNUMBER(14,4)Y申请入库量APPLY_OPERCODEVARCHAR2(6)Y申请入库操作员APPLY_DATEDATEY申请入库日期EXAM_NUMNUMBER(14,4)Y审批数量EXAM_OPERCODEVARCHAR2(6)Y审批人EXAM_DATEDATEY审批日期APPROVE_OPERCODEVARCHAR2(6)Y核准人APPROVE_DATEDATEY核准日期PLACE_CODEVARCHAR2(16)Y货位码RETURN_NUMNUMBER(12,4)Y退库数量APPLY_NUMBERNUMBER(12)Y申请序号MED_IDVARCHAR2(15)Y制剂序号INVOICE_NOVARCHAR2(10)Y发票号DELIVERY_NOVARCHAR2(20)Y送药单流水号TENDER_NOVARCHAR2(15)Y招标序号ACTUAL_RATENUMBER(5,4)Y实际扣率CASH_FLAGVARCHAR2(1)Y现金标志PAY_STATEVARCHAR2(1)Y供货商结存付款状态OPER_CODEVARCHAR2(6)Y操作员OPER_DATEDATEY操作日期MARKVARCHAR2(64)Y备注EXT_CODEVARCHAR2(10)Y扩展字段EXT_CODE1VARCHAR2(10)Y草药产地EXT_CODE2VARCHAR2(10)Y生产日期IS_TENDER_OFFERVARCHAR2(1)Y招标标记INVOICE_DATEDATEY发票上的发票日期IN_DATEDATEY入库时间SOURCE_COMPANY_TYPEVARCHAR2(1)Y源科室13.药品出库记录表PHA_COM_OUTPUT表3-13药品出库记录表结构tab.3-13StructureofPHA_COM_OUTPUT主键标识字段名类型可否为空注释DRUG_DEPT_CODEVARCHAR2(4)N出库科室编码PKOUT_BILL_CODENUMBER(12)N出库单流水号SERIAL_CODENUMBER(4)N序号GROUP_CODEVARCHAR2(20)N批次号OUT_LIST_CODEVARCHAR2(20)Y出库单据号OUT_TYPEVARCHAR2(4)N出库类型CLASS3_MEANING_CODEVARCHAR2(8)Y出库分类IN_BILL_CODENUMBER(12)Y入库单号IN_SERIAL_CODENUMBER(4)Y入库单序号IN_LIST_CODEVARCHAR2(20)Y入库单据号DRUG_CODEVARCHAR2(12)N药品编码TRADE_NAMEVARCHAR2(50)Y药品商品名DRUG_TYPEVARCHAR2(1)Y药品类别DRUG_QUALITYVARCHAR2(2)Y药品性质SPECSVARCHAR2(32)Y规格PACK_UNITVARCHAR2(16)Y包装单位PACK_QTYNUMBER(4)Y包装数MIN_UNITVARCHAR2(16)Y最小单位SHOW_FLAGVARCHAR2(1)Y显示的单位标记SHOW_UNITVARCHAR2(16)Y显示的单位BATCH_NOVARCHAR2(16)Y批号VALID_DATEDATEY有效期PRODUCER_CODEVARCHAR2(10)Y生产厂家COMPANY_CODEVARCHAR2(10)Y供货单位代码RETAIL_PRICENUMBER(12,4)Y零售价WHOLESALE_PRICENUMBER(12,4)Y批发价PURCHASE_PRICENUMBER(12,4)Y购入价OUT_NUMNUMBER(14,4)Y出库数量SALE_COSTNUMBER(12,2)Y零售金额TRADE_COSTNUMBER(12,2)Y批发金额APPROVE_COSTNUMBER(12,2)Y购入金额STORE_NUMNUMBER(14,4)Y出库后库存数量STORE_COSTNUMBER(14,4)Y出库后库存总金额SPECIAL_FLAGVARCHAR2(1)Y特殊标记OUT_STATEVARCHAR2(1)Y出库状态APPLY_NUMNUMBER(14,4)Y申请出库量APPLY_OPERCODEVARCHAR2(6)Y申请出库人APPLY_DATEDATEY申请出库日期EXAM_NUMNUMBER(14,4)Y审批数量EXAM_OPERCODEVARCHAR2(6)Y审批人EXAM_DATEDATEY审批日期APPROVE_OPERCODEVARCHAR2(6)Y核准人APPROVE_DATEDATEY核准日期PLACE_CODEVARCHAR2(12)Y货位号RETURN_NUMNUMBER(12,4)Y退库数量DRUGED_BILLVARCHAR2(18)Y摆药单号MED_IDVARCHAR2(15)Y制剂序号DRUG_STORAGE_CODEVARCHAR2(4)Y领药单位编码RECIPE_NOVARCHAR2(14)Y处方号SEQUENCE_NONUMBER(3)Y处方流水号SIGN_PERSONVARCHAR2(16)Y签字人GET_PERSONVARCHAR2(16)Y领药人STRIKE_FLAGVARCHAR2(1)Y冲账标志MARKVARCHAR2(64)Y备注OPER_CODEVARCHAR2(6)Y操作员OPER_DATEDATEY操作日期ARK_FLAGVARCHAR2(1)Y出库记录ARK_BILL_CODENUMBER(12)Y药柜发药OUT_DATEDATEY出库记录发生时间14.药品调价记录表COM_CHANGE表3-14药品调价记录表结构tab.3-14StructureofCOM_CHANGE主键标识字段名类型可否为空注释PKCHANGE_NOVARCHAR2(50)N调价单流水号DRUG_CODEVARCHAR2(100)Y药品编码DRUG_NAMEVARCHAR2(100)Y药品名称SUPPLY_NAMEVARCHAR2(100)Y供货商COMPANY_NAMEVARCHAR2(100)Y生产厂家OLD_PRICEVARCHAR2(100)Y原价NEW_PRICEVARCHAR2(100)Y现价MARKVARCHAR2(1000)Y备注SUB_PRICEVARCHAR2(100)Y差价4详细设计详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统。经过这一阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段能够把整个描述直接翻译成用某种程序设计语言书写的程序。[4]本章主要涉及软件系统的动态建模和系统类图的详细设计。软件系统的动态模型分为交互模型和活动状态模型,其中的交互模型主要由顺序图和协作图构成,活动状态模型主要包括活动图和状态图。经过为软件系统项目建立动态模型,从而产生体现系统动态行为的可视化分析结果——包括对象的时间特性和对象为完成目标任务而相互进行通信的机制、对象行为的改变和状态变化情况,以及对象可能出现的各种活动状况等信息。4.1系统交互图4.1.1系统架构类交互图系统架构类的工作流程如下:1.用户窗体对象在接收了用户的登录信息后,进行权限验证,然后显示权限对应的菜单;2.用户窗体在提交业务请求前,先利用Model实体类对数据进行封装,然后将封装的数据对象和业务请求传给业务逻辑类的对象进行处理;3.业务逻辑对象接收到请求后,进行业务处理,生成对应的SQL命令,然后提交给数据库访问层进行执行;4.数据库访问对象连接数据库并执行SQL命令后,如果正常执行则返回数据,若产生异常则交付异常处理对象进行处理;5.业务逻辑对象获得返回的数据进行进一步的业务处理,如发生异常则交付给异常处理对象;6.业务逻辑对象将处理的结果经过Model实体对象返回用户窗体类;7.用户窗体类经过Model实体类进行解除封装,然后显示处理结果在窗体上。系统架构类的交互图如图4-1所示:4.1.2参与者与模块间的交互与药库管理系统进行交互的参与者主要包括药剂管理员和药库库管员。药剂管理员和药库库管员与药库管理系统的交互图如下图4-2和图4-3所示:图4-1系统架构类的交互图Fig4-1InteractiveDiagramofSystemArchitectureClass图4-2药剂管理员与药库管理系统的交互图Fig4-2InteractiveDiagrambetweenPharmacyAdministratorsandPharmacyManagement图4-3药库库管员与药库管理管理系统的交互图Fig4-3InteractiveDiagrambetweenStorageAdministratorsandPharmacyManagement下面对药库管理系统活动的情况进行动态建模,以下论述将以药剂管理员与药价管理模块、药品盘点管理模块、入出库管理模块分别进行时序图、协作图、状态图和活动图的建模。1.药价管理模块药价管理模块的程序流程如下:1)药剂管理员登录系统,打开药价管理窗体;2)药剂管理员选择要更改药价的药品,并输入更新之后的价格;3)药剂管理员设置调价生效时间。药剂管理员对药价管理的时序图如下图4-4所示。2.药品入出库模块1)药剂管理员登录系统,打开药品入出库管理窗体;2)药剂管理员录入药品出库科室和数量信息;3)药品入出库单打印,并更新库存。药剂管理员对药品入出库管理的时序图如下图4-5所示。图4-4药剂管理员药品调价的时序图Fig4-4TimingDiagramforPharmacyAdministratorsChangePrice图4-5药剂管理员药品入出库的时序图Fig4-5TimingDiagramforPharmacyAdministratorsInput/OutputDrugs3.药品库存盘点模块1)药剂管理员登录系统,打开药品库存盘点管理窗体;2)开始盘点,记录盘点时间并封账;3)选取盘点的药品,录入盘点数量;4)保存盘点单;5)盘点单结存,更新库存。药剂管理员对药品盘点管理的时序图如下图4-6所示。图4-6药剂管理员药品盘点的时序图Fig4-6TimingDiagramforPharmacyAdministratorsInventoryDrugs4.1.3系统协作图交互图用来说明系统如何实现一个用例或用例中的一个特殊场景。UML提供两类交互图:时序图和协作图。时序图按时间顺序描述系统元素之间的交互;协作图则按照时间和空间顺序来描述系统元素之间的交互。根据上节描述的药剂管理员对药品调价的协作图,如下图4-7所示。图4-7药剂管理员药品调价的协作图Fig4-7CollaborationDiagramforPharmacyAdministratorsChangePrice药剂管理员对药品入出库管理的协作图,如下图4-8所示。图4-8药剂管理员药品入出库的协作图Fig4-8CollaborationDiagramforPharmacyAdministratorsInput/OutputDrugs药剂管理员对药品入出库管理的协作图,如下图4-9所示。图4-9药剂管理员药品盘点的协作图Fig4-9CollaborationDiagramforPharmacyAdministratorsInventoryDrugs4.1.4系统状态图状态图是经过类对对象的生命周期建立模型来描述对象随时间变化的动态行为。状态图显示了一个状态机,它基本上是一个状态机中的元素的一个投影,也就意味着状态图包括状态机的所有特性。在药价管理模块中,系统存在药品调价界面、药品原价显示、保存调价信息、调价生效等状态,药剂管理员药品调价的状态图如下图4-10所示。在药品入出库管理模块中,系统状态包括显示药品入出库界面、药品入出库单编辑、数据更新、药品入出库单打印等状态,药剂管理员对药品入出库管理的状态图如下图4-11所示。在药品盘点理模块中,系统有药品盘点界面、库存封账状态、记录盘点时间、盘点单保存、数据更新等状态,药剂管理员对药品盘点的状态图如下图4-12所示。图4-10药剂管理员药品调价的状态图Fig4-10StatechartDiagramforPharmacyAdministratorsChangePrice图4-11药剂管理员药品入出库的状态图Fig4-11StatechartDiagramforPharmacyAdministratorsInput/OutputDrugs图4-12药剂管理员药品盘点的状态图Fig4-12StatechartDiagramforPharmacyAdministratorsInventoryDrugs4.1.5系统活动图活动图是描述活动是如何协同工作的。当一个操作必须完成一系列事情,而又无法确定以什么样的顺序来完成这些事情时,活动图能够更清晰地描述这些事情。在药库管理系统中,主要涉及药剂管理员的活动。在药价管理模块中,药剂管理员登录系统后,能够选取药品进行调价或者查询调价记录,如果是调价,则录入药品信息和最新价格并保存,查询则需要录入查询条件进行查询。药剂管理员对药品调价的活动图如下图4-13所示。在药品入出库管理模块中,药剂管理员登
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年加工30万立方米建筑石料项目可行性研究报告模板拿地申报
- 年产25000吨建筑结构用焊管智能化生产项目可行性研究报告模板立项申批备案
- 2025北京清华附中高二(上)期中数学试题及答案
- 年产5万套高精密流量控制器高精密压力控制器项目可行性研究报告模板-立项申报用
- 未来两年成长计划
- 护理应急操作规范
- 脑梗死诊疗专业考试试题及答案解析
- 2026 三年级下册数学《正方形的面积》课件
- 医院清洁卫生与美化制度
- 医院财务部上墙规章制度
- 二氧化碳地质封存与检测 课件全套 第1-7章-绪论、CO2多相流基础理化性质-矿场应用
- 傩戏文化课件
- 肢体创伤后水肿管理指南(2025)解读课件
- 2025不动产登记代理人-《不动产权利理论与方法》考前冲刺备考速记速练300题-含答案
- SPASCAD(V31)用户手册标准版
- 小酒馆创新创业计划书
- 常用125条危险化学品法律法规和标准规范目录
- 2023年上海申康医疗卫生建设工程公共服务中心工作人员招聘考试真题及答案
- 检验科职业暴露事件应急预案
- 电工(四级)理论知识考核要素细目表
- 榆树盆景怎么养 小叶榆树盆景怎么养
评论
0/150
提交评论