APP下载

基于Access开发的医疗设备管理系统

2011-11-16周健煖

中国医疗设备 2011年11期

周健煖

佛山市南海区第二人民医院 设备科,广东 佛山 528251

基于Access开发的医疗设备管理系统

周健煖

佛山市南海区第二人民医院 设备科,广东 佛山 528251

我院设备科根据对医疗设备数字化管理的具体需求,使用Microsoft Access开发了医疗设备管理系统,使医疗设备管理更加规范化、系统化。本文介绍了Access的基本知识,并详解了此系统的设计与实现过程。

HIS;医疗设备管理系统;医疗设备;Access数据库

1 需求分析

我区各医院为了实现病人病历和医保信息的互通,统一使用了某HIS,但此系统缺少对医疗设备管理的支持。医疗设备是实现医院的社会、经济效益的重要条件,医疗设备管理的优劣,直接关系经济效益的好坏[1]。医疗设备管理包括医疗设备的购买、运作、维护直至报废等所有信息的录入和分析。此前,我科只用Word和Excel来录入这些信息,时间久了文件多、繁杂且使用效率低下,甚至会出错。而专业的医疗设备管理软件价格比较昂贵,功能特点和使用习惯也不是很适合我科的具体需求。因此,有必要开发出一套于自己的医疗设备管理系统。

Access是Microsoft Office中的关系数据库管理软件,其中文版的特点是全汉化的窗口界面,具备一系列的工具用来收集、检索、显示和打印数据。具有功能强大,操作直观方便、易学易掌握的优点[2],比较适合中小型数据库系统的开发。

2 系统结构

医疗设备管理系统由用户登录、医疗设备信息、维修记录、维修发票、计量检测、购买申请、购买招标、报表生成和功能设置等模块组成(图1)。

图1 医疗设备管理系统结构图

3 系统功能

(1)用户登录模块。使具有操作权限的用户输入密码后进入系统,以防外人使用医疗设备管理系统。

(2) 医疗设备信息模块。管理所有医疗设备的基本信息。

(3)维修记录模块。管理医疗设备的维修记录。

(4)维修发票模块。管理医疗设备维修所形成的维修发票。

(5)计量检测模块。管理每年定期进行计量检测的医疗设备的计量检测记录。

(6)购买申请模块。管理临床科室申购医疗设备的申请单。

(7)购买招标模块。管理医疗设备购买的招标、合同文件。

(8)报表生成模块。将各医疗设备使用科室的医疗设备信息、维修记录、维修发票生成Excel文件。

4 具体设计

Access数据库中有7大要素:表、查询、窗体、报表、页、宏和模块[3],本系统只用到表、查询、窗体、报表、模块。

4.1 创建表

表是Access中存放数据的最基本单位,同时也是查询、窗体等对象的数据来源[3],表的列称作字段,行称作记录。打开Access创建名为“医疗设备管理系统”的空数据库,创建表的数据字典、用户表、医疗设备信息、维修记录、维修发票、计量检测、购买申请和购买招标等。

在Access中,组合框的好处在于减少输入数据的操作,只需用鼠标点击组合框的下拉列表选取数据而不用手工输入。本系统通过在数据字典表里存放字段名及其常用字词,作为组合框的“表/查询”类型的行来源。表中包含数据项、分组序号、值和备注字段,将前两者设为主键。数据项存放字段名,如使用科室等;值存放对应的常用字词,如手术室、ICU等;分级序号用来辅助值的排序。单表双主键的设计使多种字段集中到一个表中,如使用科室、发票类型和对应的值存放到数据字典表中,巧妙地避免了一个组合框只创建一个表而造成多个表的混乱局面。用户表包含用户名、密码和权限字段。医疗设备信息、维修记录和购买申请表的字段名及属性,见表1。

表1 各表字段名及属性

4.2 创建窗体、查询、模块和报表

窗体是Access应用程序之间的人机交流界面[3]。首先创建一个名为“主窗体”的窗体,按图2放置标签、文本框、按钮、子窗体、选项卡等控件。在选项卡中创建名分别为“医疗设备信息”“维修记录”“维修发票”“计量检测”“购买申请”“购买招标”和“报表生成的页,1页对应1个功能模块,各模块间通过单击页来切换。

图2 医疗设备管理系统主界面(部分截图)

4.2.1 医疗设备信息模块

医疗设备信息的建立过程也就是原始资料的搜集过程,必须做到原始资料积累的真实性、完整性[4]。此模块设计步骤如下:

(1)使用创建名为“医疗设备信息”窗体,选定医疗设备信息表的所有字段,选择表格布局方式。

(2)医疗设备信息页中插入名为“窗体1”的子窗体,源对象设为窗体“医疗设备信息”使在“子窗体1”中以表格方式同步显示医疗设备信息表的所有记录。

(3)使用向导创建名为“医疗设备信息录入”的窗体,选定医疗设备信息表的所有字段,选择纵栏表布局方式。窗体在载入VB代码中加入“设备ID = DMax("设备ID","医疗设备信息", ") + 1”,使其自动加1;文本框 “使用科室”改为组合框,行来源设为“SELECT 值 FROM 数据字典 WHERE 数据项='使用科室' AND 分组序号>0 ORDER BY 分组序号;”,类型设为“表/查询”,使“使用科室”的下拉列表是数据字典表中数据项为使用科室的所有值;更新后事件VB代码加入“Me.设备名称.SetFocus”,使其更新后光标自动跳进文本框“设备名称”;文本框“在用状况”设计和“使用科室”的相似,默认值设为“良好’;文本框数量默认值设为1。通过上述设计,能大大提高新建医疗设备信息记录的速度。

(4)在窗体“医疗设备信息录入”的 “发票日期”“出厂日期”文本框右侧插入名为“新建”“关闭”“日”按钮。在前2个按钮单击事件里加入VB代码,实现新建医疗设备信息表记录和关闭窗体的功能;新建名为“Calendar”的模块(VB编程环境中最基本的对象,编写程序代码就存放于模块中[3])和名为“日期选择器”的窗体模块里加入日期选择器的VB代码,单击按钮“日”后打开窗体“日期选择器”选择日期输入到 “发票日期”或“出厂日期”。“医疗设备信息录入”窗体,见图3。

图3 “医疗设备信息录入”窗体

(5)创建名为“数据查询器”窗体界面,见图4。组合框运算符根据字段名的数据类型变化而变化,字段名、运算符和值组合成SQL代码查询条件,也可加上逻辑符组合成多查询条件来实现万能的查询;加入“新建”“删除”“保存”查询方案的功能来管理常用的查询方案。

图4 “数据查询器”窗体

(6)在医疗设备信息页中插入名分别为“新建”“修改”“删除”“升序”“查询”“清除查询”“导出”和“导入”按钮,分别给这些按钮加入单击事件VB代码。当单击“新建”时调出医疗设备信息录入窗体,对医疗设备信息表录入记录;当单击“修改”或“删除”时,修改或删除医疗设备信息表记录;单击“升序”时,将医疗设备信息表记录按光标所在的字段名升序排列,同时按钮名会变为“降序”,再单击“降序”则按降序排列,按钮名会变回“升序”,在单击事件加入更改按钮Caption属性、使用acCmdSortAscending和acCmdSortDescending排序命令的VB代码实现这些效果;当单击“查询”时使子窗体1获得焦点并调出数据查询器窗体来查询所需要的内容;当单击“清除查询”时,使医疗设备信息表的所有记录载入子窗体1中;当单击“导出”时,导出经查询或清除查询后的子窗体1中当前的记录集成Excel文件,这里使用“查询”(查询就是对存储在数据库中的数据,通过设置某些条件,依靠表之间建立的关系,以多表中查找并提出用户所需要的一组记录[3])转变为Excel文件的方法:创建名为“导出”的查询,经查询或清除查询后的记录载入到“导出”,最后使用CurrentDb.QueryDefs(导出)方法和DoCmd.TransferSpreadsheet acExport命令将查询“导出”转变为Excel文件;当单击“导入”时,使用DoCmd.TransferSpreadsheet acImport命令导入字段规格与医疗设备信息表或者导出过的Excel文件一样;导出和导入VB代码都用到Application.FileDialog方法调出文件目录对话框选择导出或导入的目录,使用msoFileDialogSaveAs参数实现导出保存功能,使用msoFileDialogFilePicker参数实现导入文件的选取。

(7) 在子窗体1的页面、页脚处插入名为 “当前设备总额”的文本框, 控件来源设为“=nz(Sum([金额]),0)”;在医疗设备信息页右上方插入名为“当前设备总额”的文本框,控件来源设为“=Forms!主窗体!子窗体1.Form!当前设备总额”,显示子窗体1中的当前设备总额。用相似方法设计显示当前设备数量。4.2.2 维修记录模块(图5)

在维修记录页中插入名分别为“新建”“修改”“删除”“升序”“查询”“清除查询”“导出”“导入”的按钮和名为“子窗体2”的子窗体,设计过程和医疗设备信息模块相似。因为医院每天都有医疗设备报障,所以此模块的使用频率在医疗设备管理系统中最大。为了实现维修记录的快速录入,使用多组合框的联动方法,设计步骤如下:

图5 “维修记录录入”窗体

(1)使用向导创建名为“维修记录录入”的窗体。

(2)文本框“报障日期”和“解决日期”的设计方法和医疗设备信息模块中的“发票日期”相似。两者默认值设为“Date()”,即今天的日期。

(3)文本框“使用科室”“设备名称”“型号”“机身编号”“故障现象”“处理方法”和“检修人”改为组合框,行来源类型都设为“表/查询”。

(4)“使用科室”的行来源设置和医疗设备信息模块的“使用科室”一样,更新后事件VB代码加入"Me.设备名称.RowSource = "SELECT DISTINCT 医疗设备信息.设备名称 FROM 医疗设备信息 WHERE ((医疗设备信息.使用科室)=forms!维修记录录入!使用科室));"、Me.设备名称Value= DLookup("设备名称", "医疗设备信息", "使用科室='Me.使用科室.Value'")。“Me.设备名称.SetFocus”和“Me.设备名称.Dropdown”,使在“使用科室”的下拉列表选择“使用科室”后,光标跳到“设备名称”并下拉列表,而“设备名称”的行来源是医疗设备信息表中字段“使用科室”等于所选择的使用科室的所有设备名称,默认值为第1个;“设备名称”的设计方法与“使用科室”的相似,使在“设备名称”列表选择“设备”名称后,光标跳到“型号”并下拉列表,“型号”的行来源是医疗设备信息表中字段“使用科室”等于所选择的使用科室且 “设备”名称等于所选择的设备名称的所有型号;“机身编号”的设计方法和“型号”的类同。

(5)“故障现象”“处理方法”和“检修人”的设计和“使用科室”的相似,“检修人”默认值设为当前用户名。

(6)创建名为“新增”和“关闭”的按钮,实现新增维修记录和关闭窗体的功能。4.2.3 购买申请模块

购买申请模块的主体设计和医疗设备信息模块相似。购买设备申请单要打印出来,因此,使用报表(报表和窗体比较相似,适用于将特定的数据打印出来[3])来实现预览打印功能。使用向导创建名为“购买申请”的报表,选定购买申请表的所有字段,选择两端对齐布局方式。创建名为“预览”的按钮,加入“DoCmd.OpenReport "购买申请", acPreview"申请ID=" & 子窗体4.Form.CurrentRecord”的单击事件VB代码,单击“预览”后打开当前记录的报表,右击弹出菜单选择“打印(P)…”即可打印。报表打印界面,见图6。

图6 报表打印界面(部分截图)

4.2.4 表格生成模块

我院在年末都要将各临床科室的医疗设备信息、维修记录、维修发票的数据导出来,在报表生成页插入名为“导出各科室医疗设备信息”“导出各科室维修记录”“导出各科室维修发票”的按钮,单击事件VB代码,选用MkDir命令创建带日期和功能模块名的文件夹,如“各科室维修记录110607”, 导出Excel文件代码和医疗设备信息模块的导出方法相同,查询条件设为使用科室等于各科室的名称,再导出各科室的信息到先前生成的文件夹中。

4.2.5 功能和设置模块

(1)数据字典。为了方便管理表数据字典,创建窗体新建、修改或删除数据项或值,如新建数据项“使用科室”并在值里新建常用的科室名,作为组合框“使用科室”的行来源。

(2)初始化。使用时间长了,数据库容量就会变得很大,拖慢数据库运行速度,这时可以导出所有表成为Excel文件作为备份数据,然后初始化数据库。初始化是使用CurrentDb.Execute命令来清除所有表记录的;也可用“If MsgBox("确定清除?", vbQuestion + vbYesNo) = vbYes Then…”的信息框判断语句来选择性清除哪些表记录。

(3)用户管理和切换用户。用户管理是管理用户名、用户密码和使用权限。使用权限包含新建、修改、删除、查询、导出和导入记录以及功能设置,在主窗体载入VB代码中加入验证当前用户的使用权限来决定按钮是否失效的方法来管理权限。切换用户是指切换到登录界面,选择所需的用户登录。

(4)查找替换。查找替换功能和Word的查找替换功能相似,使用VB代码“DoCmd.DoMenuItem acFormBar, acEditMenu,10, acMenuVer70”调出Access的内置查找替换模块。

(5)“关于”和“退出”。在按钮“关于”和“退出”的单击事件VB代码中加入MsgBox函数和Quit,实现弹出系统信息和退出系统功能。

5 功能扩展

5.1 拆分前、后台

本系统由前台主程序和后台数据库(表)组成。为了避免由于中毒、非法关机或其它意外造成前后台俱毁,可打开“医疗设备管理系统.mdb”,在“工具-数据库实用工具-拆分数据库”将所有表另存为“data.mdb”,前者变为前台,后者变为后台,两者通过链接表管理链接。拆分后,主程序体积小了,打开快了,数据变化只发生在“data.mdb”,且平时只对主程序升级维护就不用考虑后台了。

5.2 局域网共享

利用医院已有的局域网,使有需要的科室共同使用医疗设备管理系统,共享医疗设备信息。先打开“data.mdb”,在“工具-选项-高级-默认”打开方式处设为共享,文件属性设为可读可写,然后放在服务器电脑的网上邻居中,最后将“医疗设备管理系统.mdb”拷贝到科室的工作站电脑上。前台能链接后台数据库的前提是服务器和工作站在同一局域网内,且在“医疗设备管理系统.mdb”中加入主窗体载入前自动链接“data.mdb”的VB代码。

6 总结

自使用本系统数月以来,促使医院医疗设备管理进一步系统化、规范化。充分利用计算机信息化的优势使医疗设备的选购、管理和维修保养更科学[5-8],促进了医疗设备综合效益的最大化。

[1] 谢育波,张象琳.建设数字化的医疗设备管理系统[J].世界今日医学杂志,2007,8(1):25-27.

[2] 朱文芳.利用Access管理医疗设备档案[J].中国医疗设备,2008,23(5):32-33,38.

[3] 陈春霞.Excel+Access公司数据管理实例精讲[M].1版.北京:科学出版社,2007:164-169.

[4] 赵志平.浅谈医疗设备档案的管理[J].医疗装备,2006,19(3):38-39.

[5]杜昱铿.新形势下医疗设备管理系统的设计讨论[J].医学信息,2009,1(6):33-34.

[6] 梅雪琴,韩超.医疗设备维修管理信息系统的开发与应用[J].医疗设备信息, 2007,(8):24-26.

[7] 欧阳斌,刘科秋.Access2000在基层卫生单位中医疗器械管理的应用[J].医疗装备,2002,(7):24-26.

[8] 刘继航,衣红梅.医疗设备建档在医院管理中的作用[J].医疗装备,2006,(8):26-27.

The Design of Medical Equipment Management System Based on the Development of Microsoft Access

ZHOU Jian-xuan
Equipment Department, The Second People's Hospital of Nanhai District,Foshan Guangdong 528251, China

According to the specific needs of digital management for medical equipments, the equipment department in our hospital uses Microsoft Access developing a set of high efficiency of medical equipment management system, which makes the medical equipment management standardized and systematic. This paper introduces the basic knowledge of Access, and explains the design process of the system in detail.

HIS; medical equipment management system; medical devices; Access database

TP311.52

A

10.3969/j.issn.1674-1633.2011.11.012

1674-1633(2011)11-0038-04

2011-06-15

作者邮箱:zjxuan163@163.com