趙 一 李 鳳
(西安市疾病預(yù)防控制中心 西安 710054)
?
?醫(yī)學(xué)信息技術(shù)?
基于二維碼技術(shù)的健康證管理信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
趙 一 李 鳳
(西安市疾病預(yù)防控制中心 西安 710054)
在分析西安市服務(wù)行業(yè)從業(yè)人員健康證發(fā)放管理工作存在問題的基礎(chǔ)上,指出引入信息化手段輔助管理健康證數(shù)據(jù)的必要性,提出采用二維碼技術(shù)的管理系統(tǒng)對(duì)健康證信息進(jìn)行管理的方案,就該系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行詳細(xì)描述。
二維碼;健康證;管理信息系統(tǒng)
隨著現(xiàn)代科學(xué)技術(shù)的不斷發(fā)展,人類社會(huì)逐漸邁入信息化時(shí)代,信息技術(shù)的各類應(yīng)用也逐步成熟起來。一個(gè)符合自身特點(diǎn)的管理信息系統(tǒng)能以更高的效率把管理內(nèi)容有機(jī)地組織起來,完成數(shù)據(jù)處理、統(tǒng)計(jì)預(yù)測、計(jì)劃控制、輔助決策等工作內(nèi)容[1]。安全、適用、先進(jìn)的健康管理信息系統(tǒng)是實(shí)現(xiàn)現(xiàn)代化從業(yè)人員健康數(shù)據(jù)管理和信息服務(wù)的必要基礎(chǔ)和前提條件。目前,西安市從業(yè)人員健康證管理體系還是以手工化為主,已經(jīng)無法滿足當(dāng)前工作中要求的機(jī)構(gòu)檢驗(yàn)數(shù)據(jù)共享、健康證在線真?zhèn)尾樵?、區(qū)域數(shù)據(jù)統(tǒng)計(jì)分析等要求[2],存在諸多弊端。如健康證采用普通紙質(zhì)介質(zhì),制造的技術(shù)和成本不高,導(dǎo)致假證泛濫,監(jiān)管部門不得不花費(fèi)大量人力物力用于健康證的防偽、查偽[3];由于各個(gè)管理部門之間沒有把從業(yè)人員的健康信息數(shù)據(jù)共享,從業(yè)人員更換就業(yè)區(qū)域或者健康證遺失、損壞,就不得不在有效期內(nèi)重復(fù)辦理,付出高額的時(shí)間和金錢成本。因此迫切需要通過信息化的手段來進(jìn)行輔助管理[4]。
二維碼技術(shù)作為一種新型的信息存取技術(shù),可以在一個(gè)有限的區(qū)域內(nèi)容納大量的信息,且可以和現(xiàn)有移動(dòng)互聯(lián)及物聯(lián)網(wǎng)等新興技術(shù)緊密結(jié)合,在一些大型管理信息系統(tǒng)中已經(jīng)嶄露頭角。本文開發(fā)一個(gè)基于二維碼技術(shù)的健康證管理信息系統(tǒng),利用二維碼技術(shù),配合相應(yīng)的信息管理平臺(tái),通過安卓手機(jī)完成健康證的查驗(yàn),解決西安市健康證管理中存在的諸多問題,降低整個(gè)健康證管理過程的人力、財(cái)力、時(shí)間成本[5]。
2.1 框架設(shè)計(jì)
基于二維碼技術(shù)的健康證管理信息系統(tǒng)由3個(gè)子系統(tǒng)構(gòu)成: (1)健康證查驗(yàn)子系統(tǒng),為監(jiān)督執(zhí)法用戶提供便捷的健康證查驗(yàn)功能。(2)健康數(shù)據(jù)管理子系統(tǒng),用于體檢發(fā)證用戶及衛(wèi)生行政部門對(duì)健康體檢數(shù)據(jù)進(jìn)行管理。(3)Web服務(wù)子系統(tǒng),用于持證用戶查詢打印紙質(zhì)健康證明及體檢預(yù)約。其中健康數(shù)據(jù)管理子系統(tǒng)與Web服務(wù)子系統(tǒng)采用B/S架構(gòu),服務(wù)端使用Jave Web(JSP、Servlet、Struts、AJAX)技術(shù)進(jìn)行開發(fā),數(shù)據(jù)庫采用Oracle11g;健康證查驗(yàn)子系統(tǒng)采用C/S架構(gòu),客戶端運(yùn)行在Android 4.1操作系統(tǒng)中,服務(wù)端采用Web Service提供網(wǎng)絡(luò)數(shù)據(jù)服務(wù)。體檢發(fā)證機(jī)構(gòu)通過瀏覽器訪問健康數(shù)據(jù)管理子系統(tǒng),進(jìn)行健康體檢數(shù)據(jù)的錄入以及健康證的生成與管理;監(jiān)督執(zhí)法用戶通過安卓手機(jī)客戶端掃描二維碼查驗(yàn)健康證;持證從業(yè)人員通過瀏覽器訪問查詢服務(wù)器,打印含有二維碼的紙質(zhì)健康證;主服務(wù)器定時(shí)向查詢服務(wù)器推送數(shù)據(jù)[6-8]。系統(tǒng)業(yè)務(wù)框架[9],見圖1。
2.2 功能模塊
2.2.1 健康數(shù)據(jù)管理子系統(tǒng) 整個(gè)系統(tǒng)的核心部分,所有從業(yè)人員的個(gè)人信息與健康證明發(fā)放信息都要通過該子系統(tǒng)錄入到數(shù)據(jù)庫中;同時(shí),所有系統(tǒng)用戶的管理也都通過該子系統(tǒng)完成。該子系統(tǒng)的用戶群體為體檢發(fā)證機(jī)構(gòu)、衛(wèi)生行政管理部門以及系統(tǒng)管理人員,這些用戶的辦公地點(diǎn)相對(duì)固定,因此該子系統(tǒng)采用B/S架構(gòu)進(jìn)行設(shè)計(jì),用戶使用個(gè)人計(jì)算機(jī)通過網(wǎng)頁瀏覽器即可訪問系統(tǒng)。健康數(shù)據(jù)管理子系統(tǒng)由用戶登錄模塊、用戶管理模塊、體檢數(shù)據(jù)錄入模塊、健康證明管理模塊、日志管理模塊、統(tǒng)計(jì)分析模塊、數(shù)據(jù)交換模塊共7個(gè)模塊構(gòu)成[10-11]。
圖1 系統(tǒng)業(yè)務(wù)框架
2.2.2 健康證查驗(yàn)子系統(tǒng) 為監(jiān)督執(zhí)法機(jī)構(gòu)提供快捷的健康證查驗(yàn)功能而設(shè)計(jì)。該子系統(tǒng)采用C/S架構(gòu),客戶端的主要功能包括:接收用戶登錄驗(yàn)證信息,二維碼掃碼查驗(yàn),手動(dòng)錄入查驗(yàn),查驗(yàn)記錄管理;服務(wù)端的主要功能包括:對(duì)客戶端傳來的用戶驗(yàn)證信息進(jìn)行驗(yàn)證并返回驗(yàn)證結(jié)果,連接健康數(shù)據(jù)管理數(shù)據(jù)庫處理客戶端傳來的查詢請(qǐng)求并返回查詢結(jié)果,對(duì)客戶端的查詢動(dòng)作進(jìn)行記錄。
2.2.3 Web服務(wù)子系統(tǒng) 主要功能是為服務(wù)行業(yè)從業(yè)人員(以下簡稱從業(yè)人員)提供紙質(zhì)健康證明的網(wǎng)上查詢、打印功能;同時(shí),為了方便從業(yè)人員安排時(shí)間,合理分流體檢機(jī)構(gòu)的體檢人群,在Web服務(wù)子系統(tǒng)中還提供健康體檢的預(yù)約功能。系統(tǒng)整體功能模塊設(shè)計(jì),見圖2。
圖2 系統(tǒng)功能模塊
2.3 系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
2.3.1 實(shí)體屬性分析[12](1)體檢機(jī)構(gòu){機(jī)構(gòu)編號(hào)、機(jī)構(gòu)名稱、地址、聯(lián)系電話、負(fù)責(zé)人}。(2)體檢數(shù)據(jù)錄入人員{用戶ID、用戶姓名、用戶角色、所屬機(jī)構(gòu)、聯(lián)系方式}。(3)監(jiān)督執(zhí)法機(jī)構(gòu)用戶{用戶ID、用戶姓名、用戶單位、用戶手機(jī)ID、聯(lián)系方式}。(4)持證從業(yè)人員{姓名、身份證號(hào)}。(5)健康體檢數(shù)據(jù){體檢人員姓名、性別、年齡、工作崗位、體檢結(jié)果(合格/不合格)、身份證號(hào)、體檢機(jī)構(gòu)、體檢時(shí)間}。(6)數(shù)字健康證{證件編號(hào)、持證人姓名、性別、年齡、工種、發(fā)證日期、體檢單位、二維碼}。(7)預(yù)約體檢信息{預(yù)約編號(hào)、體檢人員姓名、性別、年齡、工作崗位、身份證號(hào)、照片、預(yù)約時(shí)間}。
2.3.2 部分實(shí)體之間的關(guān)系 (1)一個(gè)體檢機(jī)構(gòu)內(nèi)有多個(gè)體檢數(shù)據(jù)錄入人員,一個(gè)體檢錄入人員只能屬于一家體檢機(jī)構(gòu)。(2)一個(gè)體檢錄入人員可輸入且僅能輸入所屬體檢機(jī)構(gòu)的多條體檢數(shù)據(jù)。(3)一條體檢數(shù)據(jù)對(duì)應(yīng)一個(gè)數(shù)字健康證。(4)一個(gè)從業(yè)人員在一個(gè)證件有效期內(nèi)只有一條有效體檢數(shù)據(jù)。(5)監(jiān)督執(zhí)法機(jī)構(gòu)用戶可查詢所有的數(shù)字健康證信息。通過分析實(shí)體間的關(guān)系,繪制系統(tǒng)E-R圖[13],見圖3。
圖3 系統(tǒng)E-R圖
3.1 健康數(shù)據(jù)管理子系統(tǒng)的實(shí)現(xiàn)(圖4)
圖4 健康數(shù)據(jù)管理子系統(tǒng)工作流程
3.1.1 健康數(shù)據(jù)錄入模塊的實(shí)現(xiàn) 用于體檢發(fā)證機(jī)構(gòu)將用戶所在機(jī)構(gòu)完成的從業(yè)人員健康體檢信息錄入本系統(tǒng)中。該模塊包含數(shù)據(jù)錄入與數(shù)據(jù)審核兩個(gè)工作步驟。其中,數(shù)據(jù)錄入部分包括:(1)用戶基本信息的錄入及照片上傳功能。(2)驗(yàn)證錄入信息合法性及完整性。(3)按照當(dāng)前日期及錄入順序生成健康證編號(hào),編號(hào)格式實(shí)例(XAHC-201406020148,表示2014年6月2日錄入的第148個(gè)用戶信息)。(4)根據(jù)用戶身份證號(hào)碼,判斷用戶年齡及性別。(5)Excel表格批量導(dǎo)入用戶基本信息。數(shù)據(jù)審核部分包括:(1)顯示錄入的用戶信息。(2)回退需要修改的用戶信息編號(hào)。系統(tǒng)中的流程控制通過在數(shù)據(jù)表中設(shè)立流程位(dateflow)字段來實(shí)現(xiàn),從數(shù)據(jù)錄入到健康證的打印/歸檔共需5個(gè)流程,分別用1-5來表示。dateflow的值是多少,那么該用戶編號(hào)中的數(shù)據(jù)只能在該值所代表的流程中進(jìn)行顯示,如編號(hào)為XAHC-201411210013的用戶數(shù)據(jù)行中的dateflow字段的值為2,則該用戶數(shù)據(jù)只能顯示在數(shù)據(jù)審核流程中。本系統(tǒng)所有的流程控制都通過修改dateflow來實(shí)現(xiàn)。本系統(tǒng)的用戶界面具有較強(qiáng)的一致性[14]:左側(cè)為功能選擇樹,右側(cè)為操作區(qū)。各個(gè)功能模塊的操作區(qū)基本相同,主要由3部分組成:功能按鈕區(qū)、數(shù)據(jù)選擇區(qū)和數(shù)據(jù)編輯/顯示區(qū)。
3.1.2 健康證明管理模塊的實(shí)現(xiàn) 用來實(shí)現(xiàn)電子健康證的生成及管理,其主要功能包括:(1)即時(shí)生成二維碼,二維碼中包含健康證明的唯一性編號(hào)、持證者體檢日期、發(fā)證日期、發(fā)證機(jī)構(gòu)。本系統(tǒng)中涉及二維碼的部分分別采用了兩種不同技術(shù)的JAR包來完成:PC平臺(tái)上的二維碼生成模塊采用日本Denso公司的QRCode.jar包來開發(fā),Android平臺(tái)上的二維碼讀取模塊采用Google公司的ZXing.jar包來開發(fā)。系統(tǒng)生成的二維碼圖像為139×139像素,容錯(cuò)率為15%。(2)電子健康證明的管理及打印,電子健康證明文件中含有用戶姓名、性別、年齡、照片信息、體檢日期、發(fā)證日期、有效日期、發(fā)證機(jī)構(gòu)及發(fā)證機(jī)構(gòu)的電子簽章、二維碼等信息。由于西安市從業(yè)人口數(shù)量多,健康證有效期短,若生成的健康證采用靜態(tài)HTML網(wǎng)頁格式存儲(chǔ)必然會(huì)產(chǎn)生海量數(shù)據(jù);同時(shí),在查詢過程中由于數(shù)據(jù)傳輸量較大,當(dāng)網(wǎng)絡(luò)條件不好時(shí),會(huì)導(dǎo)致查詢緩慢,影響用戶體驗(yàn)。因此本系統(tǒng)將從業(yè)人員的照片文件保存在文件服務(wù)器上,照片文件的儲(chǔ)存路徑及其他健康證相關(guān)數(shù)據(jù)保存在數(shù)據(jù)表中,當(dāng)用戶觸發(fā)查詢請(qǐng)求時(shí),使用CSS+HTML+JS彈窗與二維碼生成模塊動(dòng)態(tài)生成電子健康證明,這種方式節(jié)省大量存儲(chǔ)空間,同時(shí)可以精確、快速地顯示格式化的電子健康證明,而不受用戶瀏覽器限制。(3)健康證明的有效期管理。健康證明的有效期為1年,系統(tǒng)對(duì)發(fā)證日期超過1年的記錄自動(dòng)歸檔,歸檔后的記錄只能以數(shù)據(jù)表形式查看信息內(nèi)容,不能再生成健康證樣式的HTML文件。
3.2 健康證查驗(yàn)子系統(tǒng)的實(shí)現(xiàn)
3.2.1 結(jié)構(gòu)及工作流程 采用C/S架構(gòu),其客戶端通過Eclipse開發(fā),部署在基于Android 4.1的操作系統(tǒng)智能手機(jī)上;服務(wù)端部署在Tomcat服務(wù)器上,手機(jī)和服務(wù)器端之間通過 Http完成JSON格式的數(shù)據(jù)交換。手機(jī)端與服務(wù)端的結(jié)構(gòu),見圖5。
圖5 健康證查驗(yàn)子系統(tǒng)的架構(gòu)
安卓客戶端的工作流程為:用戶登錄——檢查更新——掃描二維碼/錄入查詢信息——獲取查詢結(jié)果——管理查詢結(jié)果,其中的每一個(gè)流程都由相應(yīng)的功能模塊完成。服務(wù)端被動(dòng)響應(yīng)客戶端的請(qǐng)求,將查詢結(jié)果返回客戶端。
3.2.2 用戶驗(yàn)證模塊 安卓客戶端的用戶驗(yàn)證頁面包含3個(gè)文本輸入框,用于接收用戶輸入的用戶名、密碼、驗(yàn)證碼信息,當(dāng)用戶輸入完成并點(diǎn)擊登錄按鈕后,會(huì)激發(fā)登錄處理依次處理以下步驟:對(duì)用戶輸入內(nèi)容的格式及合法性進(jìn)行校驗(yàn)并使用android.provider.*包獲取Android_ID及DEVICE_ID;通過工具類將用戶名和密碼及獲取的設(shè)備識(shí)別碼向服務(wù)端URL發(fā)送請(qǐng)求;通過Json解析程序獲取服務(wù)器響應(yīng),進(jìn)行解析和判斷,如果用戶輸入的用戶名、密碼錯(cuò)誤,系統(tǒng)調(diào)用錯(cuò)誤顯示類來顯示對(duì)話框,提示登錄失??;如果登錄成功,系統(tǒng)啟動(dòng)主界面,用戶通過主界面提供功能列表使用各個(gè)功能。
3.2.3 二維碼掃碼查詢模塊 主要由兩個(gè)用于與用戶交互的Activity和若干工具類構(gòu)成。兩個(gè)Activity為PScanActivity和PViewActivity,其中PScanActivity用于調(diào)用手機(jī)攝像頭進(jìn)行掃碼,PViewActivity用于顯示服務(wù)端返回的電子健康證信息。PScanActivity由下列功能部件構(gòu)成:(1)通過com.Zxing.*包中提供的函數(shù)進(jìn)行掃碼、解碼。(2)用1個(gè)TextView存放并顯示解碼獲得的信息。(3)用1個(gè)ImageView存放和顯示掃碼成功后截取到的圖像。(4)用3個(gè)按鈕分別實(shí)現(xiàn)查詢結(jié)果、繼續(xù)掃碼和返回主界面。
3.2.4 查驗(yàn)記錄管理 手機(jī)客戶端的所有查詢記錄都存儲(chǔ)在SQLite數(shù)據(jù)庫中。SQLite是一個(gè)部署在本地的輕量級(jí)數(shù)據(jù)庫,在安卓系統(tǒng)中為某個(gè)應(yīng)用程序創(chuàng)建的數(shù)據(jù)庫,只有它可以訪問,其他應(yīng)用程序是不能訪問的,數(shù)據(jù)庫位于安卓設(shè)備/data/databases文件夾中。本文創(chuàng)建一個(gè)輔助類DBAdapter,在DBAdapter中定義SQLite數(shù)據(jù)庫的創(chuàng)建、打開、關(guān)閉和使用方法,封裝所有對(duì)數(shù)據(jù)庫的復(fù)雜訪問。查驗(yàn)記錄管理模塊通過對(duì)DBAdapter進(jìn)行實(shí)例化來實(shí)現(xiàn)對(duì)SQLite數(shù)據(jù)庫中數(shù)據(jù)的查詢。
3.3 Web服務(wù)子系統(tǒng)的實(shí)現(xiàn)
Web服務(wù)子系統(tǒng)的功能比較簡單,單次查詢的數(shù)據(jù)量少,但該子系統(tǒng)需要直接為服務(wù)業(yè)從業(yè)人員提供服務(wù),查詢并發(fā)數(shù)大。為了保證系統(tǒng)的可靠性,該子系統(tǒng)采用標(biāo)準(zhǔn)的MVC設(shè)計(jì)模式進(jìn)行開發(fā)。在該子系統(tǒng)中需要實(shí)現(xiàn)的功能由健康證查詢和健康體檢預(yù)約兩部分組成,其中健康證查詢功能相對(duì)簡單,通過調(diào)用健康數(shù)據(jù)管理子系統(tǒng)中相應(yīng)的數(shù)據(jù)查詢模塊就可以完成。體檢預(yù)約功能的實(shí)現(xiàn)過程略復(fù)雜,其工作流程及需要實(shí)現(xiàn)的功能組件間的關(guān)系,見圖6。
圖6 體檢預(yù)約功能工作流程及組件關(guān)系
本文按照軟件開發(fā)流程,詳細(xì)闡述了基于二維碼技術(shù)的健康證明管理信息系統(tǒng)的設(shè)計(jì)、開發(fā)過程。本系統(tǒng)將目前非常流行的二維碼技術(shù)引入到健康證明管理工作中,利用信息化手段解決當(dāng)前從業(yè)人員健康證明管理工作中存在的一些問題。系統(tǒng)具有實(shí)用性強(qiáng)、實(shí)時(shí)性好、工作效率高等特點(diǎn)。本系統(tǒng)的實(shí)施,能夠提高監(jiān)督執(zhí)法人員的工作效率,減輕體檢發(fā)證部門的工作壓力,方便從業(yè)人員辦理健康證明,具有良好的社會(huì)效益。Web服務(wù)子系統(tǒng)還可以進(jìn)一步擴(kuò)展,除了為用戶提供健康證打印及體檢預(yù)約功能外,在條件允許的情況下還可以增加網(wǎng)上繳費(fèi)、體檢結(jié)果查詢等服務(wù)功能。
1 魏智靈.基于二維碼技術(shù)的中小型圖書管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2014.
2 丁靜. 疾控中心健康體檢管理系統(tǒng)及其數(shù)據(jù)分析[D].石家莊:河北科技大學(xué),2012.
3 崔艷艷,黃志堅(jiān). 對(duì)食品從業(yè)人員健康證的監(jiān)管中存在的問題原因及對(duì)策分析[J]. 中國衛(wèi)生監(jiān)督雜志,2009,16(2):197-199.
4 南俊華.美國餐飲業(yè)食品安全管理考察報(bào)告[J].中國衛(wèi)生監(jiān)督雜志,2005,12(1):10-15.
5 薛玉紅. 包頭市餐飲美容娛樂行業(yè)從業(yè)人員健康證管理的現(xiàn)狀與思考[J]. 包頭醫(yī)學(xué)院學(xué)報(bào),2012,28(1):39-40.
6 王超斌.基于Android的移動(dòng)點(diǎn)菜系統(tǒng)的研究與實(shí)現(xiàn)[D].昆明:昆明理工大學(xué),2013.
7 陳霄,楊志敏. 健康管理的研究進(jìn)展與展望[J]. 醫(yī)學(xué)信息學(xué)雜志,2010,31(4):1-5.
8 朱紅章.旅團(tuán)級(jí)部隊(duì)日常兵員管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西北大學(xué),2012.
9 張士靖,周志超,杜建,等. 國內(nèi)外健康管理研究熱點(diǎn)對(duì)比分析[J]. 醫(yī)學(xué)信息學(xué)雜志,2010,31(4):6-10.
10 牟金進(jìn).基于手機(jī)平臺(tái)的二維碼物品信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2012.
11 季英凱.省級(jí)疾控機(jī)構(gòu)實(shí)驗(yàn)室信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].南京:南京理工大學(xué),2012.
12 顧曉暉. 社區(qū)居民電子健康檔案系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 醫(yī)學(xué)信息學(xué)雜志,2010,31(10):8-12.
13 倪建新.全國計(jì)算機(jī)等級(jí)考試準(zhǔn)考證網(wǎng)上打印系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2009,(16):21-23.
14 鄭月,李小溪,方潔旋,等. 智慧健康管理系統(tǒng)開發(fā)與應(yīng)用前景[J]. 醫(yī)學(xué)信息學(xué)雜志,2014,35(1):12-16.
Design and Realization of the Health Certificate Management Information System Based on Two-dimensional Code Technology
ZHAOYi,LIFeng,Xi′an
CenterforDiseaseControlandPrevention,Xi′an710054,China
The paper analyzes problems existed in health certificate issuing management among employees in the service industries in Xi'an and points out the necessity of using informatization means to assist health certificate data management. It proposes the scheme of using the management system based on two-dimensional code technology to manage health certificate information and makes detailed description of design and realization of the system.
QR code;Health certificate;Management information system
2015-03-26
趙一,工程師,發(fā)表論文4篇。
R-058
A 〔DOI〕10.3969/j.issn.1673-6036.2015.08.004