王晓雷,王 威
基于条形码的安卓平台医疗设备信息查看软件开发
王晓雷,王 威
目的:在Andriod平台上设计开发一套基于条形码扫描的医疗设备信息查看软件,以方便设备科人员及时查看设备信息,并提高信息安全性。方法:在Andriod平台上利用ZXing条形码扫描插件及SQLite数据库系统实现相关功能。结果:在Andriod设备上实现了对医院现有设备标签上Code-39条形码的扫描识别,并从数据库中提取到设备档案号对应详细信息,初步用于科室日常工作中。结论:设计的系统避免了信息泄露,同时也减小了标签的尺寸,方便了设备标签的粘贴,提高了工作效率。
Andriod;条形码;医疗设备;数据库
医疗设备是医院开展各项医疗服务必不可少的物质保障,是医院固定资产的重要组成部分。为了方便对医疗设备进行管理,掌握医疗设备运行的各项信息,绝大多数医院医疗设备管理部门在设备上张贴管理卡片,以便标示设备信息。但这种方式将设备的相关信息完全公开,存在一定的信息安全隐患,且无法直接实现数字化、信息化读写。随着条形码读写技术的发展,医院逐渐开始对设备进行编号,并使用条形码保存设备编号信息,利用数据库查找对应编号的设备详细信息[1-2],这样既实现了设备信息的数字化存储,又达到了设备信息保密的目的。
目前医院条形码的读写识别多采用专门的读写设备[3],增加了成本,且这些设备多集中在管理部门,便携性差,无法实现工程师下科室巡检时对设备信息的及时查看。随着智能手机的普及,照相功能和图像处理能力不断提高,使得在智能手机上实现条形码信息的读取成为可能,一些公司基于二维条形码开发了移动式的医疗设备管理系统。参考相关资料与本院设备管理的实际情况,本文拟实现在安卓设备上对医院设备标签上的Code-39条形码进行读取、识别,并通过后台数据库查找显示对应的设备详细信息,从而低成本地实现对医院设备信息的查看。
1.1 Code-39条形码介绍
条形码是目前最成熟、应用领域最广泛的自动识别技术之一,广泛应用于商业、仓储、图书管理、医疗卫生等领域。目前,条形码技术可分为一维条形码和二维条形码2种。一维条形码中以EAN-13、EAN-8、EAN-128、Code-39等应用较为广泛,二维条形码中以PDF-417、QR Code等应用较为广泛。
Code-39码是美国Intermec公司于1975年研制的一种条形码,可对数字、英文字母等字符进行编码,且具有自动校验、误读率低等优点。我国于1991年研究制定了Code-39条形码标准(GB/T 12908),推荐在运输、仓储、图书情报、医疗卫生等领域使用[4]。每个条形码字符由5个条单元和4个空单元组成,且有3个位宽单元表示二进制“1”,其余窄单元表示二进制“0”,符号结构如图1所示。
图1 Code-39条形形码符号结构图
1.2 安卓设备上的条形码识别技术
安卓(Android)是由Google公司开发,为移动终端打造的基于Linux平台的开源手机操作系统,具有开放性、应用程序平等、可方便快速地进行应用程序开发等特点[5]。安卓为开发人员提供了大量的可使用的库和工具,使得开发人员可以快速地创建自己的应用程序。此外,第三方应用程序也提供了大量的接口,使得开发人员可以通过调用这些程序的功能来开发新的软件。
为了在安卓设备上实现条形码扫描,程序员无需自己重新开发一套条形码识别程序,只需调用Google提供的ZXing条形码扫描程序接口即可。作为谷歌的开源项目之一,ZXing可以实现对条形码和二维码的扫描识别,其提供了多重编码格式的支持,如EAN-8、EAN-13、Code-39、Code-128、PDF-417、QR Code等,并提供了多种开发平台下进行应用的类库,如J2ME、J2SE和Android等[6]。
1.3 SQLite数据库技术
为实现对大数据量的存储、查找、编辑等处理,可以使用Android系统自带的SQLite数据库。SQLite作为一个轻量级数据库,具有移植性好、占用内存低、高效可靠等特点,支持SQL语言且集成在Android系统中,非常适合嵌入式设备软件应用[7]。Android提供了SQLite Base、SQLite Open Helper等类帮助开放者简化对数据库程序的开发[8]。
2.1 界面布局
设计的软件界面如图2所示。为确保信息安全,软件提供了管理员登录模式,若是系统审核过的登录信息,则可以在登录成功后进入设备条形码扫描及信息查看功能,否则提示登录失败、用户名或密码错误。在设备条形码扫描及信息查看界面下,工程师通过点击“扫描”按钮,将手机摄像头对准设备标签上的条形码,软件自动识别条形码后读出条形码信息即设备档案号,并从数据库中查找到该档案号对应的设备详细信息进行显示。
图2 软件运行界面
2.2 利用ZXing实现条形码扫描
为了实现条形码扫描,首先在软件项目中导入ZXing资源,主要是导入Intent Integrator和Intent Result类的代码。在软件中通过调用Intent Integrator类的parse Activity Result函数以及Intent Result类的get Contents函数得到条形码识别后的结果,关键代码如下:
private Button.OnClickListener main_scan_clink= new Button.OnClickListener()
{
public void onClick(View v)
{ //通过Intent启动第三方应用“ZXing”进行图书条形码扫描
IntentIntegrator integrator=new Intent-Integrator(MainActivity.this);
integrator.initiateScan();
}
};
@Override
protected void onActivityResult(int request-Code,int resultCode,Intent data)
{
IntentResultresult=IntentIntegrator.parse Activity Result(requestCode,resultCode,data);
if((result==null)||(result.getContents() ==null))
{ return;
}
else
{
//设备编号
String fN=result.getContents();
mEditNum.setText(fN);
}
}
2.3 数据库查询
2.3.1 本地数据库的建立
为了在软件上实现SQLite数据库查找目前科室工作中以Excel形式保存的设备信息,首先需要将Excel数据生成SQLite数据库文件。我们采用SQLite Expert Professional软件生成数据库,该软件功能强大,可以在可视化的环境下完成对数据库的操作,比如进行数据库建立,表的建立、删除、查找、修改等。首先将Excel文件另存为以逗号分隔的CSV文件,接着用记事本打开该文件,并以UTF-8编码另存。打开SQLite Expert Professional软件,首先新建一个数据库,如图3所示,然后导入之前建立的文本数据库文件myBMEDevice.csv,注意将编码格式选为UTF-8,分割符为逗号,新建一个名为Devices的数据表,点击“Start”开始执行,如图4所示。执行成功后,会在Log窗口中显示执行完成信息。最终通过软件自动建立一个Sqlite数据库,并自动导入Excel保存的数据,建立名为Devices的数据表,确立数据字段,填充各个数据项。
图3 利用SQLite Expert Professional软件新建数据库文件
图4 利用SQLite Expert Professional软件导入数据文件
2.3.2 数据库查询的实现
利用条形码扫描后得到的数据即设备档案号,操作SQLite数据函数,实现对设备详细信息的查找。我们实现了DeviceDBManager类,以便对数据库文件进行操作,关键代码如下所示:
public void findDeviceByfN(String fileNum)
{
String where=Device_ID+"=?";
String[]whereValues={fileNum};
try
{
Cursor cursor = this.m_database. query(TABLE_NAME,null,where,whereValues,null, null,null);
int num=cursor.getCount();
if(cursor.moveToFirst())
{
if(num==1)
{
m_device_name=cursor.getString(2); //设备名称
m_device_spect=cursor.getString(3); //设备型号
……
}
}
}
catch(SQLException e)
{
Log.e("sql","error");
e.printStackTrace();
}
}
将软件安装在安卓手机上运行,输入账号和密码登录之后点击“扫描”按钮,将手机摄像头对准条形码,对医院某台设备上的条形码标签进行扫描,设备条形码标签和扫描后的软件界面分别如图5、6所示。可见软件正确地读取了设备的条形码标签,同时通过条形码代表的设备档案号在数据库中查找到了设备的详细信息。通过软件得到设备信息的方式可以完全取代之前在设备标签上标明设备参数的方式,若今后在设备标签上仅打印设备名称和科室以及条形码,则既可以减小标签尺寸、便于张贴,又可
图5 医院某设备现有标签
(►►►►)(◄◄◄◄)保证设备信息的安全性。但使用手机自带相机对条形码进行扫描时,在昏暗的环境下不易识别出设备条形码,因此操作软件时应尽量保证充足的环境光线。
Development barcode-based medical equipment information checking software on Android platform
WANG Xiao-lei1,WANG Wei2
(1.Department of Drug and Instrument,the 161st Hospital of the PLA,Wuhan 430010,China;2.Department of Biomedical Engineering,Wuhan General Hospital of Guangzhou Military Area Command,Wuhan 430070,China)
ObjectiveTo design a barcode-based medical equipment information checking software on Android platform in order to read the device information in time and improve information security.MethodsBy using ZXing plugin and SQLite database,the software identified the equipment file number indicated by Code-39 barcode and then extracted the detailed information of equipment from the database.ResultsA software running on Android platform was designed to identify the barcode and check the medical equipment information,and was initially used in the daily operation.ConclusionThis software can avoid information leakage,reduce the size of the label used,facilitate the equipment label paste and finally improve the work efficiency.[Chinese Medical Equipment Journal,2015,36(6):64-66,69]
Android;bar code;medical equipment;database
R318;TP311.1
A
1003-8868(2015)06-0064-04
10.7687/J.ISSN1003-8868.2015.06.064
王晓雷(1986—),男,助理工程师,主要从事医疗设备管理和维修方面的研究工作。
430010武汉,解放军161医院药械科(王晓雷);430070武汉,广州军区武汉总医院医学工程科(王 威)