陳 玲,梁 鑫,宋婧榮,馬 帥,杜佩堯,李君愷,劉 婷
(天津商業(yè)大學(xué)信息工程學(xué)院,天津 300134)
2020年初,伴隨著新冠肺炎疫情在我國(guó)的突然爆發(fā),常規(guī)化的醫(yī)院取藥窗口因疫情防控的要求承受了巨大的出藥壓力,尤其是在三四線城市及城鎮(zhèn)。因此推出“醫(yī)藥自提柜”可以滿足醫(yī)院疫情常態(tài)化下無接觸的需求?;颊咧恍柰ㄟ^處方單上的條形碼在醫(yī)藥自提柜的識(shí)別區(qū)域掃描即可快速開箱取藥,即拿即走。對(duì)比傳統(tǒng)的人工取藥,醫(yī)藥自提柜還能核對(duì)藥品數(shù)目,減少錯(cuò)配少配藥品的幾率,減輕藥房工作人員的工作量,提高患者取藥效率。
20世紀(jì)80年代,智能藥柜[1]引入美國(guó)醫(yī)院,作為醫(yī)院藥品調(diào)劑的補(bǔ)充方式,其工作過程就是由護(hù)士將處方提交醫(yī)生審核后,再返回到藥房進(jìn)行醫(yī)藥分配。崔勇強(qiáng)等[2]提出了一種智能自提柜冷藏控制系統(tǒng),貨物存入后處在冷藏保鮮狀態(tài),消費(fèi)者收到通知后可隨時(shí)前往自助取貨,該系統(tǒng)解決了物流配送鏈末端的生鮮產(chǎn)品配送難題,滿足了低能耗新型物流體系的發(fā)展需求;隨著中國(guó)人口老齡化的日益加重,醫(yī)療行業(yè)的壓力日益增加,黃明明等[3]設(shè)計(jì)了基于三菱FX3U PLC自助售藥機(jī);王語盈等[4]對(duì)外賣自提柜進(jìn)行了市場(chǎng)分析與研究,以便更好地研究外賣自提柜的市場(chǎng)化問題;王鑫等[5]針對(duì)智能外賣自提柜的設(shè)計(jì)與實(shí)現(xiàn)展開了調(diào)查與探究;徐赟等[6]提出一種中藥自助售貨機(jī),通過電子傳真將藥單傳給藥房工作人員,然后患者自助取藥,有效減輕了醫(yī)務(wù)工作人員的工作量,減少了人員密集排隊(duì)買藥的情況。
本文設(shè)計(jì)了一種醫(yī)藥自提柜,將串口通信和RS485通信用于信息傳遞,并結(jié)合模塊化設(shè)計(jì),研究并實(shí)現(xiàn)了醫(yī)藥自提柜的信息化、數(shù)據(jù)化、快速化。
本系統(tǒng)采用STM32F103ZET6單片機(jī)為主控制器,8路鎖控板為從控制器。當(dāng)藥房人員需要裝入藥物時(shí),在自提柜前按下開關(guān)鍵,此時(shí)單片機(jī)端接收到一個(gè)高電平,通過自身相應(yīng)的I/O端口發(fā)出高電平信號(hào),鎖控板端接收到信號(hào)后,發(fā)送開鎖的脈沖指令,電控鎖打開,藥房人員放完藥后關(guān)閉箱門。當(dāng)患者需要取走藥時(shí),將藥單上附著的條形碼放在醫(yī)藥自提柜紅外線掃描區(qū)域,條形碼識(shí)別系統(tǒng)進(jìn)行掃描,信號(hào)轉(zhuǎn)換與放大,然后將電信號(hào)傳給單片機(jī),經(jīng)比較一致后,單片機(jī)發(fā)出開箱指令至鎖控板,使柜門打開,患者即可將藥取出。
整個(gè)系統(tǒng)的主、從控制器都選用STM32F103系列的32位微處理器作為控制核心,其高性能、低功耗、低成本以及多串口的特點(diǎn)非常符合系統(tǒng)的需求,此外系統(tǒng)整體還采用多個(gè)模塊分開設(shè)計(jì),顯著降低開發(fā)難度,節(jié)省開發(fā)時(shí)間,減少人力物力成本。第106頁圖1為醫(yī)藥自提柜系統(tǒng)流程圖。
圖1 醫(yī)藥自提柜系統(tǒng)流程圖
1.2.1 鎖控板模塊設(shè)計(jì)
鎖控板的主要功能就是接收信號(hào)來控制鎖的開關(guān),實(shí)時(shí)檢測(cè)當(dāng)前鎖的開關(guān)狀態(tài)。其控制系統(tǒng)主要是基于單片機(jī)微控制單元(Micro Control Unit,MCU)的控制系統(tǒng),常見的有8路鎖控板、12路鎖控板、18路鎖控板和24路鎖控板。鎖控板內(nèi)部通信大多采用RS485通信,波特率設(shè)置為9 600 bit/s。工作原理是通電后通過電磁效應(yīng)原理,實(shí)現(xiàn)上拉開鎖。因此,一般只要給電子鎖提供100~300 ms的通電就能打開連接的電控鎖。本設(shè)計(jì)選用8路鎖控板為從控制器,可以檢測(cè)其連接電控鎖的狀態(tài)與控制鎖的開關(guān),可以通過紅外傳感器模塊來檢測(cè)自提柜的狀態(tài)(有無藥物);還能通過RS485通信與單片機(jī)進(jìn)行信息傳輸,實(shí)時(shí)反饋?zhàn)蕴峁竦臓顟B(tài)。
1.2.2 單片機(jī)模塊設(shè)計(jì)
STM32F103ZET6是由意大利的意法半導(dǎo)體集團(tuán)設(shè)計(jì)實(shí)現(xiàn)的控制核心為32位ARM(Advanced RISC Machines)微控制器的單片機(jī),內(nèi)核是Cortex-M3。STM32F103系列單片機(jī)芯片按片內(nèi)存儲(chǔ)(Flash)的大小可分為3類:一是16 K和32 K的小容量芯片,二是64 K和128 K的中容量芯片,三是256 K和512 K的大容量芯片。本設(shè)計(jì)選取大容量(512 K)的STM32F103ZET6單片機(jī)為主控制器,通過RS485通信獲取鎖控板反饋的柜子狀態(tài)信息,通過串口通信向PC機(jī)傳遞柜子狀態(tài)信息,同時(shí)PC機(jī)也能通過單片機(jī)向鎖控板發(fā)送相關(guān)電控鎖開關(guān)的控制信號(hào)指令。圖2為相關(guān)通信接口圖。
圖2 通信接口圖
1.2.3 條碼識(shí)別模塊設(shè)計(jì)
條形碼(Barcode)最初是由諾曼伍德蘭(Norman Woodland)在1949年提出。其實(shí)質(zhì)就是將寬度不同的黑色線條與空白部分按照一定的編碼規(guī)則組合形成,用以傳遞信息或數(shù)據(jù)的圖形符號(hào)。因此為了讀懂條形碼所傳遞的信息,需要設(shè)計(jì)一套識(shí)別系統(tǒng)。該系統(tǒng)主要由條碼掃描器、光電轉(zhuǎn)換器、放大電路、整形(轉(zhuǎn)換)電路、譯碼電路和PC機(jī)等部分組成。由于條形碼中黑色線條與空白處能反射的可見光強(qiáng)弱程度不同,因此當(dāng)光源發(fā)出的光線照射到條碼上時(shí),光電轉(zhuǎn)換器就接收到強(qiáng)弱不同的反射光信號(hào),進(jìn)而產(chǎn)生電位高低不同的脈沖電信號(hào)到放大電路,進(jìn)行信號(hào)的放大,然后送到整形(轉(zhuǎn)換)電路進(jìn)行模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換,再經(jīng)譯碼電路編譯成PC機(jī)可讀取的二進(jìn)制信號(hào),傳入PC機(jī)識(shí)別。圖3為條碼識(shí)別系統(tǒng)流程圖。
圖3 條碼識(shí)別系統(tǒng)流程圖
系統(tǒng)整體的程序編寫遵循串口通信協(xié)議、RS485通信協(xié)議以及鎖控板的通信協(xié)議。主要的程序設(shè)計(jì)思想是醫(yī)生為患者診病后,先在PC機(jī)端查詢空置柜子,可以通過紅外傳感器發(fā)射紅外射線來檢測(cè)柜子中有無藥物,若自提柜中有藥物,則紅外傳感器將此信息反饋給鎖控板,鎖控板傳給單片機(jī),單片機(jī)通過串口通信傳給醫(yī)生端PC機(jī),PC機(jī)將在網(wǎng)絡(luò)頁面顯示此柜子的狀態(tài)。醫(yī)生查詢到相關(guān)空置柜子后,打印條形碼與處方,患者拿取條形碼和藥單,在自提柜掃描區(qū)域內(nèi)進(jìn)行條碼識(shí)別,經(jīng)條碼閱讀器比較一致后,箱門打開(若條碼識(shí)別錯(cuò)誤,則箱門無法開啟),患者取藥,關(guān)閉箱門。圖4為主程序流程圖。
圖4 主程序流程圖
將單片機(jī)和PC機(jī)通過串口數(shù)據(jù)下載線連接,打開單片機(jī)電源開關(guān),將鎖控板連接12 V電源以及RS485通信接口線。PC機(jī)將事先編寫好的c語言程序由軟件(Keil uVision5)通過串口數(shù)據(jù)下載線燒錄進(jìn)單片機(jī)和鎖控板中,同時(shí)下載線也可以進(jìn)行電平轉(zhuǎn)換,即將RS232電平轉(zhuǎn)為TTL電平(Transistor-Transistor Logic),然后單片機(jī)通過程序中的相關(guān)指令要求向鎖控板發(fā)送相關(guān)的脈沖信號(hào),鎖控板接收到信號(hào)后,發(fā)送脈沖來控制電控鎖的開關(guān)。紅外檢測(cè)模塊通過紅外傳感器檢測(cè)到自提柜的實(shí)時(shí)狀態(tài),通過RS485通信將數(shù)據(jù)反饋給單片機(jī),反饋的相關(guān)數(shù)據(jù)將會(huì)在SS.com串口助手上的數(shù)據(jù)接收區(qū)顯示。設(shè)置參數(shù)時(shí),將PC機(jī)和單片機(jī)設(shè)置相同的波特率9 600 bit/s,才能保證數(shù)據(jù)收發(fā)的一致,即PC機(jī)在發(fā)送區(qū)發(fā)送什么數(shù)據(jù),單片機(jī)則接收相關(guān)數(shù)據(jù),再將其傳輸給PC機(jī),顯示在數(shù)據(jù)接收區(qū)。若波特率設(shè)置不一致,則接收不到任何數(shù)據(jù)信息或者顯示亂碼。相關(guān)測(cè)試結(jié)果見圖5。
圖5 鎖控板反饋的信息
上電之后,將RS485中的GND(Ground)引腳接地,鎖控板此時(shí)開始向PC機(jī)反饋相關(guān)電控鎖狀態(tài),測(cè)試時(shí)若接收的數(shù)據(jù)為0X00,在鎖控板的通信協(xié)議中,0X00代表電控鎖未被打開;若接收的數(shù)據(jù)為0X11,則代表電控鎖已被打開。
本文設(shè)計(jì)的醫(yī)藥自提柜系統(tǒng)整體減輕了醫(yī)務(wù)工作人員的工作量,減少了患者拿藥等待的時(shí)間,為藥房人員與患者提供了便利。并且自提柜的創(chuàng)新出藥模式能夠在一定程度上有效地減少醫(yī)務(wù)人員和患者以及患者之間的直接接觸,避免交叉感染。整個(gè)醫(yī)藥自提柜系統(tǒng)無論是從控制器的性能上還是整體系統(tǒng)的設(shè)計(jì)上都能在一定程度上有效地解決“取藥先排隊(duì)”的問題,大大降低了人工成本,具有很大的應(yīng)用價(jià)值與前景。