王曉雷,王 威
基于條形碼的安卓平臺醫(yī)療設(shè)備信息查看軟件開發(fā)
王曉雷,王 威
目的:在Andriod平臺上設(shè)計開發(fā)一套基于條形碼掃描的醫(yī)療設(shè)備信息查看軟件,以方便設(shè)備科人員及時查看設(shè)備信息,并提高信息安全性。方法:在Andriod平臺上利用ZXing條形碼掃描插件及SQLite數(shù)據(jù)庫系統(tǒng)實現(xiàn)相關(guān)功能。結(jié)果:在Andriod設(shè)備上實現(xiàn)了對醫(yī)院現(xiàn)有設(shè)備標(biāo)簽上Code-39條形碼的掃描識別,并從數(shù)據(jù)庫中提取到設(shè)備檔案號對應(yīng)詳細(xì)信息,初步用于科室日常工作中。結(jié)論:設(shè)計的系統(tǒng)避免了信息泄露,同時也減小了標(biāo)簽的尺寸,方便了設(shè)備標(biāo)簽的粘貼,提高了工作效率。
Andriod;條形碼;醫(yī)療設(shè)備;數(shù)據(jù)庫
醫(yī)療設(shè)備是醫(yī)院開展各項醫(yī)療服務(wù)必不可少的物質(zhì)保障,是醫(yī)院固定資產(chǎn)的重要組成部分。為了方便對醫(yī)療設(shè)備進(jìn)行管理,掌握醫(yī)療設(shè)備運行的各項信息,絕大多數(shù)醫(yī)院醫(yī)療設(shè)備管理部門在設(shè)備上張貼管理卡片,以便標(biāo)示設(shè)備信息。但這種方式將設(shè)備的相關(guān)信息完全公開,存在一定的信息安全隱患,且無法直接實現(xiàn)數(shù)字化、信息化讀寫。隨著條形碼讀寫技術(shù)的發(fā)展,醫(yī)院逐漸開始對設(shè)備進(jìn)行編號,并使用條形碼保存設(shè)備編號信息,利用數(shù)據(jù)庫查找對應(yīng)編號的設(shè)備詳細(xì)信息[1-2],這樣既實現(xiàn)了設(shè)備信息的數(shù)字化存儲,又達(dá)到了設(shè)備信息保密的目的。
目前醫(yī)院條形碼的讀寫識別多采用專門的讀寫設(shè)備[3],增加了成本,且這些設(shè)備多集中在管理部門,便攜性差,無法實現(xiàn)工程師下科室巡檢時對設(shè)備信息的及時查看。隨著智能手機(jī)的普及,照相功能和圖像處理能力不斷提高,使得在智能手機(jī)上實現(xiàn)條形碼信息的讀取成為可能,一些公司基于二維條形碼開發(fā)了移動式的醫(yī)療設(shè)備管理系統(tǒng)。參考相關(guān)資料與本院設(shè)備管理的實際情況,本文擬實現(xiàn)在安卓設(shè)備上對醫(yī)院設(shè)備標(biāo)簽上的Code-39條形碼進(jìn)行讀取、識別,并通過后臺數(shù)據(jù)庫查找顯示對應(yīng)的設(shè)備詳細(xì)信息,從而低成本地實現(xiàn)對醫(yī)院設(shè)備信息的查看。
1.1 Code-39條形碼介紹
條形碼是目前最成熟、應(yīng)用領(lǐng)域最廣泛的自動識別技術(shù)之一,廣泛應(yīng)用于商業(yè)、倉儲、圖書管理、醫(yī)療衛(wèi)生等領(lǐng)域。目前,條形碼技術(shù)可分為一維條形碼和二維條形碼2種。一維條形碼中以EAN-13、EAN-8、EAN-128、Code-39等應(yīng)用較為廣泛,二維條形碼中以PDF-417、QR Code等應(yīng)用較為廣泛。
Code-39碼是美國Intermec公司于1975年研制的一種條形碼,可對數(shù)字、英文字母等字符進(jìn)行編碼,且具有自動校驗、誤讀率低等優(yōu)點。我國于1991年研究制定了Code-39條形碼標(biāo)準(zhǔn)(GB/T 12908),推薦在運輸、倉儲、圖書情報、醫(yī)療衛(wèi)生等領(lǐng)域使用[4]。每個條形碼字符由5個條單元和4個空單元組成,且有3個位寬單元表示二進(jìn)制“1”,其余窄單元表示二進(jìn)制“0”,符號結(jié)構(gòu)如圖1所示。
圖1 Code-39條形形碼符號結(jié)構(gòu)圖
1.2 安卓設(shè)備上的條形碼識別技術(shù)
安卓(Android)是由Google公司開發(fā),為移動終端打造的基于Linux平臺的開源手機(jī)操作系統(tǒng),具有開放性、應(yīng)用程序平等、可方便快速地進(jìn)行應(yīng)用程序開發(fā)等特點[5]。安卓為開發(fā)人員提供了大量的可使用的庫和工具,使得開發(fā)人員可以快速地創(chuàng)建自己的應(yīng)用程序。此外,第三方應(yīng)用程序也提供了大量的接口,使得開發(fā)人員可以通過調(diào)用這些程序的功能來開發(fā)新的軟件。
為了在安卓設(shè)備上實現(xiàn)條形碼掃描,程序員無需自己重新開發(fā)一套條形碼識別程序,只需調(diào)用Google提供的ZXing條形碼掃描程序接口即可。作為谷歌的開源項目之一,ZXing可以實現(xiàn)對條形碼和二維碼的掃描識別,其提供了多重編碼格式的支持,如EAN-8、EAN-13、Code-39、Code-128、PDF-417、QR Code等,并提供了多種開發(fā)平臺下進(jìn)行應(yīng)用的類庫,如J2ME、J2SE和Android等[6]。
1.3 SQLite數(shù)據(jù)庫技術(shù)
為實現(xiàn)對大數(shù)據(jù)量的存儲、查找、編輯等處理,可以使用Android系統(tǒng)自帶的SQLite數(shù)據(jù)庫。SQLite作為一個輕量級數(shù)據(jù)庫,具有移植性好、占用內(nèi)存低、高效可靠等特點,支持SQL語言且集成在Android系統(tǒng)中,非常適合嵌入式設(shè)備軟件應(yīng)用[7]。Android提供了SQLite Base、SQLite Open Helper等類幫助開放者簡化對數(shù)據(jù)庫程序的開發(fā)[8]。
2.1 界面布局
設(shè)計的軟件界面如圖2所示。為確保信息安全,軟件提供了管理員登錄模式,若是系統(tǒng)審核過的登錄信息,則可以在登錄成功后進(jìn)入設(shè)備條形碼掃描及信息查看功能,否則提示登錄失敗、用戶名或密碼錯誤。在設(shè)備條形碼掃描及信息查看界面下,工程師通過點擊“掃描”按鈕,將手機(jī)攝像頭對準(zhǔn)設(shè)備標(biāo)簽上的條形碼,軟件自動識別條形碼后讀出條形碼信息即設(shè)備檔案號,并從數(shù)據(jù)庫中查找到該檔案號對應(yīng)的設(shè)備詳細(xì)信息進(jìn)行顯示。
圖2 軟件運行界面
2.2 利用ZXing實現(xiàn)條形碼掃描
為了實現(xiàn)條形碼掃描,首先在軟件項目中導(dǎo)入ZXing資源,主要是導(dǎo)入Intent Integrator和Intent Result類的代碼。在軟件中通過調(diào)用Intent Integrator類的parse Activity Result函數(shù)以及Intent Result類的get Contents函數(shù)得到條形碼識別后的結(jié)果,關(guān)鍵代碼如下:
private Button.OnClickListener main_scan_clink= new Button.OnClickListener()
{
public void onClick(View v)
{ //通過Intent啟動第三方應(yīng)用“ZXing”進(jìn)行圖書條形碼掃描
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
{
//設(shè)備編號
String fN=result.getContents();
mEditNum.setText(fN);
}
}
2.3 數(shù)據(jù)庫查詢
2.3.1 本地數(shù)據(jù)庫的建立
為了在軟件上實現(xiàn)SQLite數(shù)據(jù)庫查找目前科室工作中以Excel形式保存的設(shè)備信息,首先需要將Excel數(shù)據(jù)生成SQLite數(shù)據(jù)庫文件。我們采用SQLite Expert Professional軟件生成數(shù)據(jù)庫,該軟件功能強(qiáng)大,可以在可視化的環(huán)境下完成對數(shù)據(jù)庫的操作,比如進(jìn)行數(shù)據(jù)庫建立,表的建立、刪除、查找、修改等。首先將Excel文件另存為以逗號分隔的CSV文件,接著用記事本打開該文件,并以UTF-8編碼另存。打開SQLite Expert Professional軟件,首先新建一個數(shù)據(jù)庫,如圖3所示,然后導(dǎo)入之前建立的文本數(shù)據(jù)庫文件myBMEDevice.csv,注意將編碼格式選為UTF-8,分割符為逗號,新建一個名為Devices的數(shù)據(jù)表,點擊“Start”開始執(zhí)行,如圖4所示。執(zhí)行成功后,會在Log窗口中顯示執(zhí)行完成信息。最終通過軟件自動建立一個Sqlite數(shù)據(jù)庫,并自動導(dǎo)入Excel保存的數(shù)據(jù),建立名為Devices的數(shù)據(jù)表,確立數(shù)據(jù)字段,填充各個數(shù)據(jù)項。
圖3 利用SQLite Expert Professional軟件新建數(shù)據(jù)庫文件
圖4 利用SQLite Expert Professional軟件導(dǎo)入數(shù)據(jù)文件
2.3.2 數(shù)據(jù)庫查詢的實現(xiàn)
利用條形碼掃描后得到的數(shù)據(jù)即設(shè)備檔案號,操作SQLite數(shù)據(jù)函數(shù),實現(xiàn)對設(shè)備詳細(xì)信息的查找。我們實現(xiàn)了DeviceDBManager類,以便對數(shù)據(jù)庫文件進(jìn)行操作,關(guān)鍵代碼如下所示:
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); //設(shè)備名稱
m_device_spect=cursor.getString(3); //設(shè)備型號
……
}
}
}
catch(SQLException e)
{
Log.e("sql","error");
e.printStackTrace();
}
}
將軟件安裝在安卓手機(jī)上運行,輸入賬號和密碼登錄之后點擊“掃描”按鈕,將手機(jī)攝像頭對準(zhǔn)條形碼,對醫(yī)院某臺設(shè)備上的條形碼標(biāo)簽進(jìn)行掃描,設(shè)備條形碼標(biāo)簽和掃描后的軟件界面分別如圖5、6所示??梢娷浖_地讀取了設(shè)備的條形碼標(biāo)簽,同時通過條形碼代表的設(shè)備檔案號在數(shù)據(jù)庫中查找到了設(shè)備的詳細(xì)信息。通過軟件得到設(shè)備信息的方式可以完全取代之前在設(shè)備標(biāo)簽上標(biāo)明設(shè)備參數(shù)的方式,若今后在設(shè)備標(biāo)簽上僅打印設(shè)備名稱和科室以及條形碼,則既可以減小標(biāo)簽尺寸、便于張貼,又可
圖5 醫(yī)院某設(shè)備現(xiàn)有標(biāo)簽
(????)(????)保證設(shè)備信息的安全性。但使用手機(jī)自帶相機(jī)對條形碼進(jìn)行掃描時,在昏暗的環(huán)境下不易識別出設(shè)備條形碼,因此操作軟件時應(yīng)盡量保證充足的環(huán)境光線。
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—),男,助理工程師,主要從事醫(yī)療設(shè)備管理和維修方面的研究工作。
430010武漢,解放軍161醫(yī)院藥械科(王曉雷);430070武漢,廣州軍區(qū)武漢總醫(yī)院醫(yī)學(xué)工程科(王 威)