劉琪琪
(西北民族大學電氣工程學院 甘肅省蘭州市 730000)
當前,基于物聯(lián)網技術下的智能取藥系統(tǒng)成為各大醫(yī)院的重要引進技術及改進趨勢。取藥系統(tǒng)對于傳統(tǒng)中藥材抓藥而言,大大解決了中藥材存儲及比例分配等問題,提高了抓藥的精確性。本系統(tǒng)提出基于Node-RED 流式編程的物聯(lián)網應用設計,使用Node-RED平臺提供的高級開源工具,同時配合MQTT 協(xié)議,實現上位機的聯(lián)網及圖形交互功能,便于管理者通過云服務器連網管理數據。
本文將依次闡述該取藥系統(tǒng)的硬件及軟件設計以及如何利用Node-RED 在此系統(tǒng)中發(fā)揮重要作用。
該系統(tǒng)主要分為三部分:藥柜自動取藥的硬件設計和面向用戶的Node-RED 可視化編輯器的聯(lián)網設計與上位機的搭建。
當病人掛號后,醫(yī)院系統(tǒng)自動生成病人基本信息,系統(tǒng)聯(lián)網,醫(yī)生將開具的藥方錄入系統(tǒng)并編號;當藥方讀入上位機后,上位機傳入STM32 使其控制藥柜裝置開始自動工作,按照藥方自動完成取藥。該系統(tǒng)由計算機核心控制,通過設計上位機及Node-RED 的搭建來完成接駁聯(lián)網、面向用戶的界面設計、藥材實時查看、讀入藥方等功能;依靠一定的算法和電機驅動將藥材包通過改進的藥柜推進裝置取出,再利用靈敏度高的薄膜壓力傳感器檢測藥材是否取完并返回上位機顯示,同時利用語音模塊,顯示屏在取藥柜和取藥處大屏幕上分別對撿藥員提示藥材狀態(tài),對病人提示“XXX 正在取藥,下一位XXX,請等待預計XX 分鐘”等信息,從而實現交互功能。
系統(tǒng)總體概述圖如圖1 所示。
從病人掛號開始,采集病人的姓名、性別等基本信息并傳入系統(tǒng);待病人就診時,醫(yī)生提取病人信息并錄入藥方;系統(tǒng)聯(lián)網并將藥方傳入上位機及云服務器,病人前往取藥區(qū)取藥。
2.2.1 PC 上位機
上位機獲取藥方后,直接發(fā)送操作指令給下位機,提供用戶操作交互界面并向用戶展示反饋數據,在屏幕上顯示各種數據變化。上位機和下位機之間的通信協(xié)議采用RS232/RS485 串行通信。只要通信協(xié)議可以建立,上位機軟件可以是任意開發(fā)語言和任意開發(fā)平臺,下位機也可以使用任意類型的單片機,本系統(tǒng)采用Python 編程開發(fā)。
當需要補錄和完善藥方時,醫(yī)生可通過上位機查看、錄入、修改,使抓藥過程自動化。
上位機界面如圖2 所示。
2.2.2 聯(lián)網及圖形交互界面設計
該部分主要用到Node-RED 平臺及MQTT 協(xié)議實現。主要顯示藥材余量,當余量不足時,采取報警措施并聯(lián)網發(fā)送郵件給藥材管理員。
圖1:總體概述圖
圖2:上位機界面大致圖
Node-RED 是基于JavaScript 開發(fā)的一款圖形界面處理平臺,它是一款可拖拽式數據流編程軟件[1]。上位機在呈現數據的過程及用戶的交互界面設計中,需要將數據轉發(fā)并存儲到云服務器,而Node-RED 是一個基于瀏覽器的圖形界面,可以幫助靈活地安裝各種插件,它可以支持各種協(xié)議,同時支持HTTP、TCP、UDP、Socket 及MQTT。通過Node-RED 提供的若干種節(jié)點完成上位機與云服務器之間的串口通信、通信狀態(tài)遷移及一些輔助功能。本項目使用MQTT 協(xié)議,它在此項目中充當了上位機連接云服務器的橋梁作用。
本項目中將采用輕量級的Mosquitto 在阿里云的Linux 主機上搭建Node-RED 和MQTT 服務器,實現系統(tǒng)聯(lián)網功能及終端與云服務器的中間通信。
系統(tǒng)通信結構如圖3 所示。
圖3:系統(tǒng)通信結構
圖4:推進裝置及藥柜圖
圖5:系統(tǒng)總體流程圖
該藥柜以STM32F103C8T6 為主控,加裝推進裝置、薄膜壓力傳感器、顯示屏及TTS 語音模塊,將普通中藥材藥柜改進成為病人提供全自動的一體化裝置。
3.1.1 推進裝置的設計
將藥材包從廠家購入,要求藥材包以1 克和5 克為基數,將兩種不同規(guī)格的同品種藥材包裝入同一個藥盒并標記,一個藥盒設計兩個出藥通道。該通道主要由步進電機[2]、步進電機驅動器和彈簧組成。通過一定算法,控制加在電機線圈上的電脈沖順序及頻率,使電機按要求控制彈簧的旋轉圈數取出藥包。
表1:系統(tǒng)測試結果
推進裝置及藥柜圖如圖4 所示。
3.1.2 薄膜壓力傳感器
本系統(tǒng)采用此傳感器對壓力的靈敏度高,而藥材包重量輕。在測量過程中,壓力直接作用在傳感器的膜片上,使傳感器的電阻發(fā)生變化并轉換輸出一個與壓力相對應的標準信號。在藥柜出藥口底部裝上該傳感器,當藥包抓完時,無法檢測到傳感器的反饋信號,則自動提醒管理員添加藥包。
3.1.3 TTS 語音模塊
本系統(tǒng)采用一款高集成度的語音合成芯片,它可以實現中英文語音合成、錄音、播放以及輕量級的語音識別功能。此語音模塊將所取藥材包是否為空反饋出來,方便進一步提示管理員藥材情況。
本系統(tǒng)設有兩塊OLED 顯示屏,一塊裝在藥柜中,反饋當前時間,藥物余量等信息,幫助藥材管理員查看。另一塊用于模擬醫(yī)院信息流動的大屏幕,用于顯示“XXX 正在取藥,下一位XXX,請等待預計XX 分鐘”等信息,方便在人流較大的時候,為病人對時間把控提供便利。
系統(tǒng)總體流程圖如圖5 所示。
本文主要從三個方面對系統(tǒng)進行測試:藥方數據上傳的準確性、電機控制功能準確性、外設反饋是否正常。系統(tǒng)測試結果如表1 所示。
該系統(tǒng)實現了聯(lián)網功能及裝置自動化,通過該智能系統(tǒng)降低人為抓藥犯錯幾率,能夠將藥物的數據及時反饋給管理者。通過上位機與下位機的交互精準反饋,同時通過語音交流互動功能實現人機對話,使得患者對于藥品的了解和使用更加地便利,大大減少了服務成本,緩解醫(yī)務人員的工作量。項目對于封裝成份的產品皆有一定的適用性,功能擴展性強,可針對珍貴藥材在溫濕度等方面加大管理效果。