基于ZigBee的藥品庫(kù)存實(shí)時(shí)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:在傳統(tǒng)的藥品供應(yīng)鏈中,供應(yīng)鏈的不斷加長(zhǎng)使得各級(jí)管理部門很難獲得藥品銷售的實(shí)際需求信息,因此使用信息化的醫(yī)藥庫(kù)存管理系統(tǒng)尤為重要。在此研究了基于ZigBee技術(shù)的藥品庫(kù)存實(shí)時(shí)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。首先介紹了藥品的流通過(guò)程及藥監(jiān)碼,然后采用ZigBee技術(shù)和B/S結(jié)構(gòu),設(shè)計(jì)并實(shí)現(xiàn)了包含數(shù)據(jù)收發(fā)和處理的完整系統(tǒng)。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)運(yùn)行比較穩(wěn)定,具有一定的實(shí)用性。
關(guān)鍵詞:ZigBee;藥品庫(kù)存管理;B/S結(jié)構(gòu);藥品電子監(jiān)管碼
在當(dāng)今激烈的中國(guó)醫(yī)藥市場(chǎng)競(jìng)爭(zhēng)中,高效率的分銷渠道是醫(yī)藥企業(yè)的重要競(jìng)爭(zhēng)優(yōu)勢(shì)之一。隨著科學(xué)技術(shù)的發(fā)展,國(guó)家藥品監(jiān)督管理局提出了對(duì)藥品的全新管理模式一藥品電子監(jiān)管碼(簡(jiǎn)稱藥監(jiān)碼),它為每件產(chǎn)品賦予惟一的編碼,好像商品的身份證一樣?;谒幈O(jiān)碼的實(shí)行,可以將庫(kù)存管理落實(shí)到對(duì)每一個(gè)藥監(jiān)碼的管理,使得企業(yè)能夠?qū)⑸a(chǎn),庫(kù)存和銷售有機(jī)結(jié)合起來(lái),隨時(shí)了解當(dāng)前新鮮的市場(chǎng)數(shù)據(jù),正確規(guī)劃藥品的物流走向。本文在研究國(guó)內(nèi)外的醫(yī)藥庫(kù)存管理系統(tǒng)后,采用新興的短距離無(wú)線通信ZigBee技術(shù),結(jié)合Java開(kāi)發(fā)語(yǔ)言,運(yùn)用VPN技術(shù)在公網(wǎng)的環(huán)境下搭建一個(gè)安全、有效、低成本的自動(dòng)化藥品倉(cāng)庫(kù)實(shí)時(shí)管理系統(tǒng)。
1 ZigBee技術(shù)
目前大多數(shù)藥品嚴(yán)格遵循三級(jí)分銷體系流程,即由藥品生產(chǎn)廠家到多級(jí)經(jīng)銷商、由多級(jí)經(jīng)銷商到零售終端、再由零售終端到最終消費(fèi)者這3個(gè)分銷環(huán)節(jié)。如圖1所示為一件產(chǎn)品的銷售流程。顯而易見(jiàn),這是一個(gè)高重心的營(yíng)銷模式,從上游到下游呈漏斗型,即上游的分銷客戶總是比下游的分銷客戶規(guī)模要大,實(shí)力要強(qiáng)。各節(jié)點(diǎn)分銷商需要根據(jù)下游分銷商訂單來(lái)確定未來(lái)的需求信息,但是這種預(yù)測(cè)大多憑直覺(jué)和經(jīng)驗(yàn),缺乏對(duì)歷史業(yè)務(wù)數(shù)據(jù)和當(dāng)前市場(chǎng)狀況的深入分析,造成供應(yīng)鏈整體庫(kù)存增加、生產(chǎn)能力過(guò)剩,加重企業(yè)負(fù)擔(dān)。因此如何優(yōu)化供應(yīng)鏈成為所有企業(yè)分銷商的一大難題。
ZigBee技術(shù)是由ZigBee聯(lián)盟開(kāi)發(fā)的一種面向自動(dòng)控制的短距離、低復(fù)雜度、低成本、低功耗、低速率雙向無(wú)線通信網(wǎng)絡(luò)技術(shù),主要應(yīng)用在短距離,低速率傳輸?shù)碾娮釉O(shè)備之間。ZigBee技術(shù)彌補(bǔ)了無(wú)線通信市場(chǎng)低成本、低功耗和低速率的產(chǎn)品的空缺,使得在低電能和低吞吐量的應(yīng)用環(huán)境中使用無(wú)線連接成為可能。其成功的關(guān)鍵在于大量豐富而便捷的應(yīng)用。隨著ZigBee技術(shù)的不斷發(fā)展,更多的注意力和研發(fā)力量將轉(zhuǎn)到應(yīng)用的設(shè)計(jì)和實(shí)現(xiàn)、互聯(lián)互通測(cè)試和市場(chǎng)推廣等方面。
2 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)與實(shí)現(xiàn)
2.1 系統(tǒng)總體設(shè)計(jì)
本系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)組成。如圖2所示為整個(gè)系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
下位機(jī)為一個(gè)由ZigBee搭建的簡(jiǎn)單無(wú)線數(shù)據(jù)收發(fā)網(wǎng)絡(luò),實(shí)現(xiàn)藥監(jiān)碼數(shù)據(jù)的點(diǎn)對(duì)點(diǎn)雙向接收和發(fā)送。上位機(jī)采用Java語(yǔ)言開(kāi)發(fā)庫(kù)存信息管理系統(tǒng)。本地PC機(jī)接收到藥監(jiān)碼信息后,通過(guò)VPN加密隧道傳送到遠(yuǎn)端的數(shù)據(jù)服務(wù)器上,保存到數(shù)據(jù)庫(kù)中以供客戶端查詢統(tǒng)計(jì)??蛻舳瞬捎肂/S架構(gòu),有利于系統(tǒng)的升級(jí)與維護(hù)。
2.2 ZigBee數(shù)據(jù)傳輸模塊
在本系統(tǒng)中,手持藥監(jiān)碼采集設(shè)備群以自組織形式構(gòu)成網(wǎng)絡(luò),并最終將數(shù)據(jù)傳送到與PC鏈接的數(shù)據(jù)基站,然后通過(guò)互聯(lián)網(wǎng)上傳至遠(yuǎn)端的數(shù)據(jù)中心。結(jié)合藥房的實(shí)際使用情況,手持終端設(shè)備可能會(huì)有多個(gè),所以ZigBee通信系統(tǒng)采用星形網(wǎng)絡(luò)結(jié)構(gòu)。星形結(jié)構(gòu)是一個(gè)輻射形狀的網(wǎng)絡(luò)結(jié)構(gòu),所有的數(shù)據(jù)都需要匯聚到中心節(jié)點(diǎn)(ZigBee協(xié)調(diào)器)而其他的節(jié)點(diǎn)之間不能進(jìn)行數(shù)據(jù)通信,如圖3所示。
在此網(wǎng)絡(luò)結(jié)構(gòu)中ZigBee協(xié)調(diào)器接收到終端節(jié)點(diǎn)的數(shù)據(jù)信息之后,首先對(duì)數(shù)據(jù)信息進(jìn)行數(shù)據(jù)包解析,確認(rèn)該信息為數(shù)據(jù)信息后對(duì)此信息負(fù)載進(jìn)行提取,并將獲得的數(shù)據(jù)信息通過(guò)串口顯示到倉(cāng)庫(kù)PC的系統(tǒng)當(dāng)中。
ZigBee終端節(jié)點(diǎn)在網(wǎng)絡(luò)組建過(guò)程中擔(dān)任兩項(xiàng)工作:發(fā)起加入?yún)f(xié)調(diào)器所在的網(wǎng)絡(luò)請(qǐng)求;接收協(xié)調(diào)器的廣播信息并向協(xié)調(diào)器傳送藥監(jiān)碼數(shù)據(jù)。
(1)手持?jǐn)?shù)據(jù)終端節(jié)點(diǎn)入網(wǎng)設(shè)計(jì)。終端節(jié)點(diǎn)上電初始化之后向整個(gè)ZigBee網(wǎng)絡(luò)發(fā)送信標(biāo)(Beacon)請(qǐng)求,當(dāng)協(xié)調(diào)器接收到信標(biāo)響應(yīng)后,終端節(jié)點(diǎn)再對(duì)發(fā)送信標(biāo)響應(yīng)的節(jié)點(diǎn)發(fā)送連接請(qǐng)求,協(xié)調(diào)器得到鏈接請(qǐng)求響應(yīng)正確,那么表示節(jié)點(diǎn)入網(wǎng)成功,負(fù)責(zé),節(jié)點(diǎn)入網(wǎng)失敗,并且給出失敗提示。
(2)手持終端ZigBee節(jié)點(diǎn)數(shù)據(jù)發(fā)送設(shè)計(jì)。設(shè)計(jì)一個(gè)數(shù)據(jù)發(fā)送函數(shù),此函數(shù)負(fù)責(zé)應(yīng)用測(cè)(APL)與下層之間的參數(shù)和數(shù)據(jù)傳遞,數(shù)據(jù)傳輸格式為20位的藥監(jiān)碼。當(dāng)終端在發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)包自頂向下進(jìn)行幀格式化,各層負(fù)責(zé)為其數(shù)據(jù)包添加各層數(shù)據(jù)包頭,最后到達(dá)PHY層將數(shù)據(jù)發(fā)送出去。
2.3 庫(kù)存管理系統(tǒng)模塊
2.3.1 開(kāi)發(fā)語(yǔ)言及模式
上位機(jī)的庫(kù)存管理系統(tǒng)采用java語(yǔ)言編程,使用struts1.2框架,在My Eclipse中開(kāi)發(fā)調(diào)試,對(duì)系統(tǒng)的設(shè)計(jì)如下:本系統(tǒng)結(jié)構(gòu)上采用3層B/S結(jié)構(gòu),前臺(tái)用戶顯示層使用JSP和Servlet在瀏覽器上實(shí)現(xiàn),中間使用Java Bean組件實(shí)現(xiàn)企業(yè)業(yè)務(wù)邏輯,后臺(tái)使用action完成用戶請(qǐng)求及相關(guān)操作跳轉(zhuǎn)。為了方便數(shù)據(jù)的存儲(chǔ)查詢,使用SQL Server2008數(shù)據(jù)庫(kù),通過(guò)JDBC建立系統(tǒng)與數(shù)據(jù)庫(kù)的連接。
2.3.2 系統(tǒng)功能結(jié)構(gòu)
由系統(tǒng)的需求功能看,本系統(tǒng)主要分為4類用戶和5大模塊。4類用戶為:總管理員,省級(jí)管理員,市級(jí)管理員,分銷商管理員。5大模塊為:庫(kù)存信息管理模塊,分銷商信息管理模塊,藥品信息管理模塊,用戶信息管理模塊以及數(shù)據(jù)傳遞模塊。不同類型的用戶擁有不同的管理權(quán)限和子功能,其中總管理員擁有系統(tǒng)的最高權(quán)限。其中數(shù)據(jù)傳遞模塊為分銷商管理員特有模塊,用于從串口接受下位機(jī)傳遞的藥監(jiān)碼數(shù)據(jù),并進(jìn)行相關(guān)判斷和處理后存入數(shù)據(jù)庫(kù)。串口通信應(yīng)用javax.comm.SerialPort類實(shí)現(xiàn),它用于描述一個(gè)RS 232串行通信端口的底層接口,定義了串口通信所需的最小功能集。用戶可以直接對(duì)串口進(jìn)行讀、寫及設(shè)置操作。串口通信應(yīng)用程序采用事件監(jiān)聽(tīng)模式,實(shí)現(xiàn)Serial Port Event Listener接口,當(dāng)串口有數(shù)據(jù)到達(dá)時(shí),可以在serialEvent中接收并處理所收到的數(shù)據(jù)。
系統(tǒng)中的庫(kù)存查詢界面采用級(jí)聯(lián)下拉列表形式,通過(guò)Java Script實(shí)現(xiàn)動(dòng)態(tài)鏈接。庫(kù)存查詢結(jié)果頁(yè)面采用Ajax技術(shù)實(shí)現(xiàn)實(shí)時(shí)刷新功能。在Ajax中主要通過(guò)XMLHttpRequest對(duì)象處理發(fā)送異步請(qǐng)求和回應(yīng),創(chuàng)建前要先確定用戶當(dāng)前使用的瀏覽器類型,然后根據(jù)瀏覽器類型創(chuàng)建合適的XMLHttpRequest對(duì)象,調(diào)用指定方法,最終通過(guò)Java Script將內(nèi)容設(shè)置到指定的顯示區(qū)域。
2.3.3 數(shù)據(jù)庫(kù)結(jié)構(gòu)
根據(jù)本藥品庫(kù)存管理系統(tǒng)需求,圖4所示為數(shù)據(jù)庫(kù)信息表的關(guān)系結(jié)構(gòu)。各個(gè)數(shù)據(jù)表之間通過(guò)不同列建立關(guān)聯(lián),實(shí)現(xiàn)多個(gè)數(shù)據(jù)表的聯(lián)合查詢。
(1)藥品-庫(kù)存-分銷商。PC機(jī)串口接收藥品信息后,系統(tǒng)在藥品信息表中查詢對(duì)應(yīng)的產(chǎn)品信息,并檢索庫(kù)存信息表,修改相應(yīng)庫(kù)存狀態(tài),或添加新記錄。
用戶查詢庫(kù)存信息時(shí),系統(tǒng)根據(jù)所選用戶的編號(hào)檢索庫(kù)存信息表,按照藥品產(chǎn)品編號(hào)分類,統(tǒng)計(jì)各包裝級(jí)別的庫(kù)存數(shù)量。
(2)用戶一分銷商。用戶表中存儲(chǔ)用戶的類型及管理范圍,登錄時(shí),系統(tǒng)根據(jù)用戶類型進(jìn)入不同的主界面,根據(jù)用戶的管理范圍顯示不同的管理功能。其中分銷商和管理員之間為一對(duì)一關(guān)系。
(3)分銷商-市-省。分銷商信息表,市信息表,省信息表通過(guò)編號(hào)相互關(guān)聯(lián),構(gòu)成一個(gè)3級(jí)下拉列表菜單。
2.3.4 VPN部署
虛擬專用網(wǎng)(Virtual Private Network,VPN)是一種化公為私的技術(shù),是將物理分布在不同地點(diǎn)的網(wǎng)絡(luò)通過(guò)公共網(wǎng)絡(luò)基礎(chǔ)設(shè)施,用一定的技術(shù)手段,達(dá)到類似私有專網(wǎng)的數(shù)據(jù)安全傳輸。VPN具有專線連接的專用、安全、保密、高性能等特點(diǎn),通過(guò)對(duì)數(shù)據(jù)包的頭部信息和有效的封裝加密來(lái)保證數(shù)據(jù)包安全性,通過(guò)散列功能的處理保證數(shù)據(jù)的完整性。部署模式是指設(shè)備以什么樣的工作模式部署到客戶網(wǎng)絡(luò)中去,具體方式需要綜合客戶具體的網(wǎng)絡(luò)環(huán)境和客戶的功能需求而定。結(jié)合本系統(tǒng)的應(yīng)用環(huán)境選擇網(wǎng)關(guān)單線路部署模式,如圖5所示。
網(wǎng)關(guān)模式時(shí)SSL設(shè)備工作層次基本與路由器或包過(guò)濾防火墻相當(dāng),具備基本的路由轉(zhuǎn)發(fā)及NAT功能。
(1)網(wǎng)關(guān)模式配置:確定設(shè)備外網(wǎng)口(WAN1口)是固定IP或者是ADSL撥號(hào)方式,取得相應(yīng)運(yùn)營(yíng)商給的IP地址信息或者是撥號(hào)的帳號(hào)密碼;確定內(nèi)網(wǎng)口(LAN口)的IP地址信息;
(2)上網(wǎng)配置:代理上網(wǎng)(NAT),確定內(nèi)網(wǎng)是否多網(wǎng)段網(wǎng)絡(luò)環(huán)境,如果是的話需要添加相應(yīng)的回包路由回指給設(shè)備下接的核心交換機(jī)。
3 系統(tǒng)測(cè)試與結(jié)果分析
模擬藥監(jiān)碼掃描設(shè)備從計(jì)算機(jī)的串口助手發(fā)送一個(gè)20位的藥監(jiān)碼,服務(wù)器的數(shù)據(jù)庫(kù)中會(huì)接收到相同的20位藥監(jiān)碼,并更改庫(kù)存狀態(tài)。用戶進(jìn)入系統(tǒng)的登錄界面后,輸入用戶名,密碼登錄,即進(jìn)入主界面,選擇相關(guān)分銷商或藥品進(jìn)行庫(kù)存查詢。
從測(cè)試結(jié)果中,可以看出此套系統(tǒng)可以將ZigBee數(shù)據(jù)節(jié)點(diǎn)采集的20位藥監(jiān)碼數(shù)據(jù)通過(guò)無(wú)線網(wǎng)絡(luò)和VPN加密隧道流暢的傳送到數(shù)據(jù)服務(wù)器上并進(jìn)行相應(yīng)的數(shù)據(jù)處理。庫(kù)存管理系統(tǒng)界面美觀,操作方便,具有很好的管理性。
4 結(jié)語(yǔ)
信息化的醫(yī)藥庫(kù)存管理系統(tǒng)是所有醫(yī)藥企業(yè)的必經(jīng)之路。本文結(jié)合低成本、低功耗的ZigBee技術(shù)開(kāi)發(fā)實(shí)現(xiàn)了一個(gè)信息化藥品的實(shí)時(shí)庫(kù)存管理系統(tǒng),實(shí)現(xiàn)藥品的全面電子管理。實(shí)驗(yàn)表明該系統(tǒng)操作方便,準(zhǔn)確率高,具有一定的應(yīng)用價(jià)值。