药库管理系统论文.doc_第1页
药库管理系统论文.doc_第2页
药库管理系统论文.doc_第3页
药库管理系统论文.doc_第4页
药库管理系统论文.doc_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

药库管理系统论文开发人:许亚亚、吕彬彬、周茜、郑燕娜开发工具: C#、 SQL Server 2000 浙江中医药大学1课题背景、目的及意义:61.1背景61.2目的及意义61.3在国内的发展情况72系统需求分析72.1药品管理系统总体规划72.2系统功能介绍83系统概要设计103.1系统分析103.2界面设计123.3建立系统用例模型133.4建立系统动态模型133.5系统类模型153.6建立系统构件图174系统详细设计174.1系统界面174.1.1修改密码界面174.1.2新药录入界面184.1.3药品入库界面194.1.4药品出库界面234.1.5药品调价界面274.1.6药品查询界面284.2缺陷数据度量295参考文献291 课题背景、目的及意义:1.1 背景医院信息系统( hospital information system , HIS) 是运用计算机网络技术, 对医院内各种信息进行采集、加工、传送和反馈的综合系统。当今社会已进入信息化时代, 信息化建设已成为加强医院现代化管理, 对医院的规范化管理和医疗质量的提高起到了积极的推动作用, 医院信息化程度的高低已成为衡量一所医院综合实力的重要标志。但是,医院信息化还有许多不尽如人意之处,大部分医院的信息化建设还处于管理信息系统向临床信息系统转化的过程中,而且全行业信息化的进一步开展还面临着资金、人才、产品等方面的障碍,但本论文所反映的信息却足以让人对其未来发展产生信心。1.2 目的及意义现在应用的软件有:HIS系统软件、省厅统一的病案统计软件、财务软件、各医技科室随仪器设备附带的软件、全市统一的档案管理软件、出生证管理、防疫科管理软件等。 医院的整体规划,目的是实现信息的共享,信息内容主要包括财务成本,医疗等。其中,财务里有门诊财务信息、住院财务信息、药品财务信息以及医疗财务里的电子病历、影像、超声、内镜等。对内还有内部行政、办公事物、人事事物等的共享管理。本设计开发的是医院管理信息系统的一个子系统-医院药库管理系统,采用C#作为系统开发工具,SQL作为数据库开发工具。Microsoft Visual Studio 2005与SQL Server 2000数据库的连接,用来显示SQL Server 2000数据库表中的数据,以实现对SQL Server 2000数据库中表的添加、删除、修改和查询等功能。它主要实现了对库存、入库数据表、出库数据表、入库退货表、采购单、系统用户、供应商以及采购员进行增加、删除、修改等维护工作,还有实时的药品示警通知。通过该系统的使用,可以实现医院药品库房管理的自动化,可以很大程度的缩短药品的流通时间,尽可能的提高药品库房的工作效率,减轻工作人员的工作负担,给所有患者和整个医院系统带来便利。1.3 在国内的发展情况随着医疗制度改革的进行,药品招标采购的逐年规范和扩大,药品管理已经成为药剂科乃至整个医院管理的重要内容。传统的管理模式已经跟不上顾客对快节奏生活的要求了!随着计算机的普及和计算机软件的不断发展,越来越多的医疗机构开始注视计算机这个辅助工具为自己带来的效益了。医院的售药机构需要通过计算机提高自已工作效率、建立与病人之间的友好关系,提升自己的知名度,提高经济效益4。2 系统需求分析2.1 药品管理系统总体规划药品管理是医院药品管理的核心,是节流增收最有潜力的环节。本药库管理系统是按照卫生部新的财务制度的要求设计的,采用药品分类国家标准编码体系,实现了发药与库存管理一体化,整个药剂科药物流、财务流一体化,药品价格实现统一调整。支持药品多种规格的变换,支持药品先进先出,后进后出,加权平均等多种仓库管理模式。支持药品有效期管理,防止药物的过期浪费,可以根据现有的库存、药品有效期以及往年同期的药品消耗情况制定采购计划、失效预报或应暂停采购的药品清单,方便领导决策。主要包括药库初始化、药品进销存管理、药品账务管理、业务统计分析、有效期管理。2.2 系统功能介绍药库管理系统药库维护药供维护药品入库药品出库药库盘点药库调价药库报损效期处理各项查询(注:“药供”指药品的供应,“效期”指药品的期限及快过期或过期的药品)系 统: 登陆、修改密码、退出数据维护: 药库维护(表)、药供维护(表)库房工作:药品入库(入库单表)、药品出库(出库单表)、药库盘点(药库盘点表)、药库调价(药品调价表)、药库报损(药库报损表)、效期处理(药品效期表)查 询:药品信息查询、报损查询、出库查询、入库查询、调价查询、供应商查询、效期查询“药库管理系统”模块用于管理医院药库的采购、入库及出库等业务。l 药库维护完成对药品详细信息录入。管理员首次录入药品编号,系统自动检索是否有重复编号,若有,提示重新录入。相同的药品名称,但不同的规格,药品编号不同。增加换算单位。确定销售价格。l 药供维护完成对供应商详细信息的录入。要求有供应商助记符,有供应商公司帐号(包括银行帐户,开户行)。要求可写备注。l 药品入库-打印单据进货时应有许可证号,批号,药品编号可根据助记符列出下拉选项(药品编号、名称、规格),然后选择合适的。两次入库单中同一种药品的批号、有效期限不同,调拨药品时应先调拨有效期早的。同一入库单中可有若干种药品,录入药品后,应统一选择付款方式及付款比例、付款状态(已付、欠款、已退)。l 药品出库在库药品应按先产先出、近期先出、按批号发货的原则出库。如“先产先出”与“近期先出”出现矛盾时,应优先遵循“近期先出”的原则。库管人员发货完毕后,在发货单上签字,将货交给复核员复核。复核员应按发货清单逐一核对品种、批号,对实物及包装进行质量检查和数量、项目的核对。复核项目应包括:品名、剂型、规格、数量、生产厂商、批号、生产日期、有效期、发货日期等项目,核对完毕后应填写出库复核记录。对于不符合规定要求的药品,应不予出库并上报。l 药库盘点药品管理,实行金额核算、重点统计、实耗实销的原则。一级库房实现数量管理,必须做到帐物符合率100。药品重点统计,即对下列重点管理药品从入库、出库、领用、消耗、调配、库存都要进行数量统计: 麻醉药品、一类精神药品实行专人负责、专柜加锁、专用账册、专用处方、专册登记、做到处方统 计、每耗实销。 毒性药品、二类精神药品实行专人负责管理,专柜存放。 贵重药品和自费药品实行每日处方统计、实耗实销。日报药品种由科室根据药品价格、使用频度和 临床用途确定。按药品调价通知及时调价,并及时盘存调价药品。与医药公司和药厂协商,尽可能补足差价。其他药品实行金额管理,每半年(节假日除外)盘点一次。药库、各药房应统一时间(一般在下班后)对所有药品进行盘点,按货位负责到人。l 药库调价调价(生成售价金额的亏损表)按新价格入库(入的是是全院所有药品的现库存数量)把入库的这些数量全部退库(按照老价格),生成售价金额的盈余表,并且生成进价差额的统计给供应商l 药库报损药品报损应是不可避免的,非人为的药品正常损耗。药品验收入库后发现的破损由保管员负责,药品出库签字后发现的破损由领用科室负责。工作人员因责任心不强而造成的人为的药品破损,验收查对制度执行不好,过有效期等情况发生的损耗不予报损(急救药品等特殊情况除外),责任由当事人自负。工作中不慎损坏的药品,应保留损坏药品残留物,并报告负责人,填写药品损耗登记簿。l 效期处理药品应按批号进行储存、养护,根据药品的有效期相对集中存放,不同批号的药品不得混垛。发放药品时应严格掌握先进先出及近效期先出原则。对有效期不足3个月的药品应加强养护管理、陈列检查及销售控制。药品应标明有效期,未标明有效期或更改有效期的的按劣药处理,验收时拒绝入库。医院采购药品时,效期在半年内的不予进库验收,在库药品效期在3个月以内的下架到退货区,药房的药品则是效期在1个月以内的下架退库,按规定作处理。l 各项查询对于药库维护、药品信息的查询。3 系统概要设计3.1 系统分析本系统可以实现信息化的药品管理,管理员通过过接收药房的领药申请给药房发药。通过查询药品库存量,及时向供应商进货。图1为本系统E-R图药库药品库存表药房药品库存表发 药库存编号药品编码药品名称药品类型药品规格库存量进价零售价剂量剂量单位频率备注领药编号药品编码申请数量申请时间是否发药发药时间供应商编号名称地址电话供应药品图1图2为本系统的数据流图药 库供应商供应药 房申请领药药品入库药品出库药品调价图23.2 界面设计登录界面主界面药库维护药品管理药品查询退出系统药品入库药品出库药品调价发药3.3 建立系统用例模型3.4 建立系统动态模型图3活动图图3图4为时序图图4图5为协作图图5图6为状态图图63.5 系统类模型(1) “drug”类的属性设置 (2) “申请领药”和“发药”类之间的聚焦关系 3.6 建立系统构件图 4 系统详细设计4.1 系统界面 4.1.1 修改密码界面 用户名为admin密码可更改为数字、字母类型任意。4.1.2 新药录入界面 入录日期自动生成缺陷:药品进价、零售价类型没有规定为int整形,如输入字母或其他非数字类型的数据不会提示出错。4.1.3 药品入库界面 添加 功能:点击添加按钮,界面中的输入信息全部置空。private void button1_Click(object sender, EventArgs e) textBox2.Text = 0; /入库数量置为0 textBox4.Text = null; textBox5.Text = 0.0;/零售价置为0.0 textBox6.Text = null; textBox8.Text = null; 删除 功能:当选中dataGridView1中的某一行时,点击删除,即可删除该条入库信息。 private void button2_Click(object sender, EventArgs e) int rowindex = dataGridView1.CurrentCell.RowIndex; string value = dataGridView1.Rowsrowindex.Cells0.Value.ToString(); int i = 0; DataSet ds = new DataSet(); string sql = delete from ds_tstorage where ds_storage=+value+; /删除记录的SQL语句 try /执行SQL语句 i = Dao.execute(sql); if (i = 1) ds = Dao.getDataSet(select ds_storage as 入库单号,ds_tstorage.ds_drugnum as 药品编码,ds_unit as 单位,ds_stoqty as 入库数量,ds_tstorage.ds_retailprice as 零售价,ds_totalpri as 总价,ds_stomode as 入库方式,ds_supplyunit as 供货单位,ds_indate as 入库日期,ds_tstorage.ds_notes as 备注from ds_tstorage,ds_tinventory where ds_tstorage.ds_drugnum=ds_tinventory.ds_drugnum, storse); dataGridView1.DataSource = ds.Tablesstorse; MessageBox.Show(删除成功!); else MessageBox.Show(删除失败!); catch(Exception ex) MessageBox.Show(Error+ex.Message); 保存功能:保存保存入库信息到入库表中,并将入库信息显示在dataGridView1中。private void button3_Click_1(object sender, EventArgs e) string id; /插入的入库单号date = System.DateTime.Now.ToString(yyyyMMdd); DataSet ds = Dao.getDataSet(select max(ds_storage) from ds_tstorage, ds_tstorage); storageId = ds.Tablesds_tstorage.Rows00.ToString(); if (string.IsNullOrEmpty(storageId) id = RK+date + 001; else string subId = storageId.Substring(10, 3); int intId = Int32.Parse(subId); intId = intId + 1; id =RK+ date + string.Format(0:D3, intId) ; Dao.openDB(); string sql = insert into ds_tstorage(ds_storage,ds_drugnum,ds_unit,ds_stoqty,ds_retailprice,ds_totalpri,ds_stomode,ds_supplyunit,ds_indate,ds_notes) values( + id + , + comboBox1.Text.Trim() + , + textBox4.Text.Trim() + , + textBox2.Text.Trim() + , + textBox5.Text.Trim() + , + textBox6.Text.Trim() + , + comboBox2.Text.Trim() + , + textBox8.Text.Trim() + , + textBox9.Text.Trim() + , + richTextBox1.Text.Trim() + ); /添加记录并保存 if (Dao.execute(sql) 0) ds = Dao.getDataSet(select ds_storage as 入库单号,ds_drugnum as 药品编码,ds_unit as 单位,ds_stoqty as 入库数量,ds_retailprice as 零售价,ds_totalpri as 总价,ds_stomode as 入库方式,ds_supplyunit as 供货单位,ds_indate as 入库日期,ds_notes as 备注from ds_tstorage, storse); dataGridView1.DataSource=ds.Tablesstorse; into.setSoreid(comboBox1.Text); into.setName(textBox1.Text.Trim(); into.setDate(textBox9.Text.Trim(); MessageBox.Show(插入成功); 生成入库单 功能:将药品入库信息添加到库存表中。private void button1_Click(object sender, EventArgs e) int i = 0; string sql = Update ds_tinventory set ds_qty =ds_qty + +Int32.Parse( textBox3.Text.Trim() + where ds_drugnum= + textBox1.Text.Trim() + ; try i=Dao.execute(sql); if (i = 1) MessageBox.Show(入库成功!); else MessageBox.Show(入库失败!); catch(Exception ex) MessageBox.Show(ex.Message); 总价会根据入库数量和零售价自动生成(总价=零售价*入库数量)缺陷:入库数量和零售价如输入字母或其他非数字类型的数据会出错,可是没有提示框提示。4.1.4 药品出库界面 添加 功能:点击添加按钮,界面中的输入信息全部置空。private void button2_Click(object sender, EventArgs e) textBox2.Text = 0; textBox4.Text = null; textBox6.Text = 0.0; textBox5.Text = null; textBox7.Text = null; 保存 功能:保存保存入库信息到入库表中,并将入库信息显示在dataGridView1中。private void button1_Click_1(object sender, EventArgs e) string id; /插入的入库单号 date = System.DateTime.Now.ToString(yyyyMMdd); DataSet ds = Dao.getDataSet(select max(ds_outboundnum ) from ds_toutbound, ds_toutbound); outboundnum = ds.Tablesds_toutbound.Rows00.ToString(); if (string.IsNullOrEmpty(outboundnum) id = CK+date + 001; else string outnum = outboundnum.Substring(10, 3); int intId = Int32.Parse(outnum); intId = intId + 1; id =CK+ date + string.Format(0:D3, intId) ; Dao.openDB(); string sql = insert into ds_toutbound(ds_outboundnum ,ds_drugnum ,ds_actualqty ,ds_outmode ,ds_byunit ,ds_outdate ,ds_retailprice ,ds_totalpri,ds_notes) values( + id + , + comboBox1.Text.Trim() + , + textBox2.Text.Trim() + , + comboBox2.Text.Trim() + , + textBox4.Text.Trim() + , + textBox5.Text.Trim() + , + textBox6.Text.Trim() + , + textBox7.Text.Trim() + , + richTextBox1.Text.Trim() + ); if (Dao.execute(sql) 0) ds = Dao.getDataSet(select ds_outboundnum as 出库单号,ds_drugnum as 药品编码,ds_actualqty as 实发数量,ds_outmode as 出库方式,ds_byunit as 收货单位,ds_outdate as 出库日期,ds_retailprice as 零售价,ds_totalpri as 总价,ds_notes as 备注from ds_toutbound, outbound); dataGridView1.DataSource = ds.Tablesoutbound; MessageBox.Show(插入成功); 生成出库单功能:将药品出库信息添加到库存表中。private void button4_Click(object sender, EventArgs e) int i = 0; int j = 0; string sql = Update ds_tinventory set ds_qty =ds_qty - + Int32.Parse(textBox2.Text.Trim() + where ds_drugnum= + comboBox1.Text.Trim() + ;/更新药库药品库存表 string sql1= Update hp_tinventory set hp_qty =hp_qty + + Int32.Parse(textBox2.Text.Trim() + where hp_drugnum = + comboBox1.Text.Trim() + ;/更新住院药房药品库存表 try Dao.openDB(); i = Dao.execute(sql); j = Dao.execute(sql1); if (i = 1&j = 1) MessageBox.Show(出库成功!); else MessageBox.Show(出库失败!); catch (Exception ex) MessageBox.Show(ex.Message); 总价会根据实发数量和零售价自动生成(总价=零售价*实发数量)缺陷:入库数量和零售价如输入字母或其他非数字类型的数据会出错,可是没有提示框提示。4.1.5 药品调价界面 缺陷:零售价的类型没有规定为float类型,可输入任意字符。4.1.6 药品查询界面 功能:管理员可以根据药品编码,输入关键字进行药品查询。private void button1_Click(object sender, EventArgs e) string sql=null; if (comboBox1.Text = 药品编码) sql = select * from ds_tinventory where ds_drugnum like % + textBox1.Text.Trim() + %;/根据药品编码查询 else if (comboBox1.Text = 库存量) sql = select * from ds_tinventory where ds_qty = +Int32.Parse( textBox1.Text.Trim() + ; /根据库存量查询 else sql = select * from ds_tinventory; DataSet ds = Dao.getDataSet(sql,dt); dataGridView1.DataSource = ds.Tablesdt; 可按照药品编码关键字模糊查询。可按照库存量查询。库存量小于一定数值的可被查询出来。缺陷:如输入的库存量小于一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论