成都信息工程大學(xué)電子工程學(xué)院 張瀚坤 李嘉源 原 暢 范銀玲 黃啟宏
提供一種新型的靜脈輸液監(jiān)測系統(tǒng)設(shè)計(jì)方案。該系統(tǒng)數(shù)據(jù)采集端采用拉力傳感,精度高且穩(wěn)定性高;其主控芯片選擇集成藍(lán)牙、WiFi模塊的ESP32,在擁有強(qiáng)大運(yùn)算能力的同時(shí)又降低了成本;同時(shí)在系統(tǒng)中加入如云服務(wù)等網(wǎng)絡(luò)功能使系統(tǒng)更能夠適應(yīng)醫(yī)療領(lǐng)域的智能化浪潮。
隨著醫(yī)療領(lǐng)域的科技發(fā)展,越來越多的手段能夠用來提高醫(yī)療服務(wù)質(zhì)量和節(jié)約人力成本,其中臨床輸液監(jiān)測系統(tǒng)就是一個(gè)典型的例子。在許多發(fā)達(dá)國家輸液監(jiān)測已經(jīng)高度自動化,但我國在輸液監(jiān)測系統(tǒng)方面的研究起步較晚,國內(nèi)市場上常見的光電式輸液監(jiān)測系統(tǒng)因?yàn)槌杀竞图夹g(shù)原因而導(dǎo)致測量精度低下,功能單一,已經(jīng)無法滿足各大醫(yī)院的需求。針對現(xiàn)有系統(tǒng)的缺點(diǎn),本文提供一種新型的輸液監(jiān)測設(shè)計(jì)方案。
系統(tǒng)工作時(shí),監(jiān)測器上的拉力傳感器會采集掛載的輸液瓶質(zhì)量,實(shí)時(shí)將數(shù)據(jù)傳至ESP32系統(tǒng)板。ESP32系統(tǒng)板在接收到原始數(shù)據(jù)后會進(jìn)行計(jì)算,并整合從藍(lán)牙模塊獲取的第三方數(shù)據(jù)。在ESP32系統(tǒng)板將數(shù)據(jù)整合完畢后,通過WiFi模塊將處理過的數(shù)據(jù)發(fā)送至位于護(hù)士站或者監(jiān)測室的管理機(jī)。護(hù)士能夠通過管理機(jī)能夠?qū)ΡO(jiān)測機(jī)進(jìn)行設(shè)置,并能從管理機(jī)獲取病人信息。管理機(jī)定時(shí)將數(shù)據(jù)上傳至云服務(wù)器,云服務(wù)器在后臺能夠?qū)?shù)據(jù)進(jìn)行分析,從而達(dá)到改進(jìn)醫(yī)療方案的目的,進(jìn)而推動醫(yī)療事業(yè)的發(fā)展。
輸液監(jiān)測端硬件包括ESP32系統(tǒng)板和HX711拉力傳感器模塊。
本輸液系統(tǒng)病房端主控芯片選用的是ESP32。系統(tǒng)板上集成了藍(lán)牙和WIFI模塊,功能強(qiáng)大,用途廣泛,而且功耗較小,其睡眠電流小于5uA,比較適用于因空間有限而多使用電池供電的醫(yī)療設(shè)備。
WiFi模塊支持極大范圍的通信連接,也支持通過路由器直接連接互聯(lián)網(wǎng);藍(lán)牙模塊可以支持第三方醫(yī)療設(shè)備的接入,便于醫(yī)療信息的整合;主控MCU可搭載Freertos實(shí)時(shí)操作系統(tǒng),并能通過有線連接通訊實(shí)現(xiàn)與HX711模塊進(jìn)行通信。這種多合一的設(shè)計(jì)能夠有效地減少整個(gè)設(shè)備的外設(shè)數(shù)量以及大小和成本。
ESP-WROOM-32支持的數(shù)據(jù)傳輸速率較快,可實(shí)現(xiàn)最大范圍的無線通信。系統(tǒng)板原理圖如圖1所示。
HX711是一款專為高精度稱重傳感器而設(shè)計(jì)的24位A/D 轉(zhuǎn) 換器芯片。能夠?qū)?.01g的液滴產(chǎn)生反應(yīng),完全滿足檢測的精度要求。同時(shí)該芯片集成了包括穩(wěn)壓電源、片內(nèi)時(shí)鐘振蕩器等外圍電路。有集成度高、 響應(yīng)速度快、抗干擾性強(qiáng)等優(yōu)點(diǎn)。
圖1 ESP32系統(tǒng)板原理圖
拉力傳感器工作時(shí),應(yīng)電片粘貼在受力的力敏型彈性元件上,當(dāng)彈性元件受力產(chǎn)生形變時(shí),應(yīng)電片產(chǎn)生相應(yīng)的電阻變化,從而輸出變化的電壓信號。該電壓信號經(jīng)過HX711的轉(zhuǎn)換送入ESP32系統(tǒng)板進(jìn)行計(jì)算。HX711模塊原理圖如圖2所示。
圖2 HX711AD模塊原理圖
圖3 HX711輸出電壓與質(zhì)量關(guān)系
通過實(shí)驗(yàn),繪制出拉力傳感器輸出電壓與質(zhì)量關(guān)系圖,如圖3所示。
醫(yī)院輸液袋全重一般在500g以下,實(shí)驗(yàn)結(jié)果表明,在500g的量程下,HX711輸出電壓與質(zhì)量呈線性關(guān)系。因此該拉力傳感器可用于輸液時(shí)輸液袋質(zhì)量變化的測量。
本系統(tǒng)基于Freertos實(shí)時(shí)操作系統(tǒng)編寫,共分三大模塊。分別為數(shù)據(jù)采集模塊、藍(lán)牙傳輸模塊以及數(shù)據(jù)發(fā)送模塊。
ESP32上的數(shù)據(jù)采集模塊每秒通過串行通信從HX711取出原始數(shù)據(jù),并對原始數(shù)據(jù)進(jìn)行滑動平均濾波,然后把當(dāng)前質(zhì)量,以及相較上一秒質(zhì)量的變化量存入全局變量,流程如圖4所示。
圖4 數(shù)據(jù)采集模塊流程圖
3.1.1 計(jì)算質(zhì)量
ESP32從HX711處獲取到的數(shù)據(jù)與實(shí)際的質(zhì)量數(shù)據(jù)之間滿足斜率特性曲線,因此算出對應(yīng)傳感器斜率值,即可計(jì)算出質(zhì)量。
傳感器斜率值k計(jì)算公式:
其中, M為模塊所稱質(zhì)量,單位為kg;5代表的是5kg質(zhì)量的傳感器;128代表著128倍增益;100為單位換算。VBG為1.25V 。
利用砝碼進(jìn)行標(biāo)定,精確計(jì)算出傳感器斜率值k,即可精確計(jì)算出質(zhì)量:
其中M為ESP32測得質(zhì)量;Data為ESP32從HX711處獲取的數(shù)據(jù);k為之前標(biāo)定的傳感器斜率值。
整個(gè)數(shù)據(jù)通信過程主要涉及BLE兩大傳輸協(xié)議,GAP協(xié)議和GATT協(xié)議。GAP協(xié)議主要用于建立連接,GATT協(xié)議主要用于數(shù)據(jù)傳輸。在進(jìn)行BLE初始化后,ESP32通過GAP協(xié)議與已經(jīng)開始向外廣播自身地址的藍(lán)牙手環(huán)進(jìn)行藍(lán)牙配對。配對成功后,ESP32作為中心設(shè)備,通過標(biāo)準(zhǔn)characteristic里的Heart Rate Service提供的UUID,進(jìn)行GATT連接,從而將藍(lán)牙手環(huán)里的心跳數(shù)據(jù)傳入ESP32。ESP32內(nèi)搭載的Freertos系統(tǒng),通過事件以及回調(diào)函數(shù),實(shí)現(xiàn)上述功能。
每隔一段時(shí)間對數(shù)據(jù)進(jìn)行消抖處理后將各項(xiàng)數(shù)據(jù)存入結(jié)構(gòu)體,然后與目標(biāo)服務(wù)器建立socket連接,將結(jié)構(gòu)體打包發(fā)送,發(fā)送完畢后斷開連接,流程如圖5所示。
圖5 數(shù)據(jù)發(fā)送模塊流程圖
3.3.1 數(shù)據(jù)消抖處理
在整個(gè)輸液過程中,由于會存在人為的晃動造成數(shù)據(jù)的抖動,因此在數(shù)據(jù)發(fā)送前加入消抖處理,將異常數(shù)據(jù)消除。設(shè)定一個(gè)閥值,將此次發(fā)送的數(shù)據(jù)變化量與上一次發(fā)送時(shí)的數(shù)據(jù)變化量作比較,若二者的差超過閥值,則放棄此次數(shù)據(jù),否則繼續(xù)發(fā)送。
3.3.2 結(jié)構(gòu)體封裝
因?yàn)橐o(hù)士站服務(wù)器發(fā)送的數(shù)據(jù)有很多項(xiàng),如心跳值、液量剩余量等。數(shù)據(jù)若沒經(jīng)過整理就會很難處理,通過使用結(jié)構(gòu)體來對要發(fā)送的數(shù)據(jù)進(jìn)行封裝,方便稍后的socket數(shù)據(jù)發(fā)送,也方便服務(wù)器端的數(shù)據(jù)接收。發(fā)送數(shù)據(jù)時(shí)通過強(qiáng)制轉(zhuǎn)換使結(jié)構(gòu)體以字符串的形式發(fā)送即可。
護(hù)士站服務(wù)器軟件選擇的開發(fā)平臺為QT。QT具有極強(qiáng)的可移植性,同樣的程序可實(shí)現(xiàn)快速在Windows或者Linux這兩種不同的操作系統(tǒng)上部署。這樣可以忽略不同操作系統(tǒng)對程序設(shè)計(jì)造成的影響。程序主要分兩大模塊,第一個(gè)模塊為數(shù)據(jù)接收模塊,用于接收輸液監(jiān)測端發(fā)送的數(shù)據(jù);第二個(gè)模塊為數(shù)據(jù)顯示及報(bào)警模塊,將接收到的數(shù)據(jù)進(jìn)行顯示,并且對異常數(shù)據(jù)進(jìn)行報(bào)警。
創(chuàng)建一個(gè)線程,用于監(jiān)聽端口,若有連接請求,響應(yīng)請求并建立連接,然后開始接收數(shù)據(jù),用與輸液監(jiān)測端處封裝的結(jié)構(gòu)體相同的格式把接收到的數(shù)據(jù)保存下來,從而完成數(shù)據(jù)接收過程。
用戶交互界面主要是在顯示屏上顯示病人個(gè)性化信息與當(dāng)前輸液瓶中液體剩余量,而且當(dāng)剩余量到達(dá)警戒線,或者心跳值異常,會生成的輸液報(bào)警信息進(jìn)行報(bào)警。
圖6 護(hù)士站效果圖
4.2.1 基本信息顯示
基本信息主要通過QTtableView創(chuàng)建表格來進(jìn)行數(shù)據(jù)顯示。在完成數(shù)據(jù)接收后,把接收的數(shù)據(jù)傳入tableView中。判斷結(jié)構(gòu)體中的id是否存在于表格中,若已有此id,則進(jìn)行數(shù)據(jù)更新,若沒有此id,則新建一行并將數(shù)據(jù)分列進(jìn)行顯示。判斷液量剩余量以及心跳值,若達(dá)到報(bào)警條件,則標(biāo)紅對應(yīng)id的數(shù)據(jù)并置頂進(jìn)行報(bào)警。基本信息顯示效果如圖6所示。
4.2.2 心跳值折線圖
為了更加直觀的觀察輸液過程心跳值的變化,通過基本的繪圖函數(shù)類,創(chuàng)建橫坐標(biāo)為時(shí)間縱坐標(biāo)為心跳值的坐標(biāo)系,每次接收到數(shù)據(jù)后,在傳入tableView進(jìn)行顯示的同時(shí),將心跳值傳入坐標(biāo)系行標(biāo)點(diǎn),以此完成折線圖的繪畫。心跳值折線圖效果如圖7所示。
圖7 心率折線圖
本系統(tǒng)使用阿里云對象存儲服務(wù)(Object Storage Service,簡稱OSS)。因?yàn)镺SS支持直接上傳文件,所以先按照患病的種類,將各個(gè)病例輸液時(shí)的心率變化圖、輸液針眼圖進(jìn)行整理然后直接將整理完畢的圖片上傳入云端,實(shí)現(xiàn)關(guān)鍵數(shù)據(jù)存儲,方便后面進(jìn)行數(shù)據(jù)分析。
本新型輸液系統(tǒng)設(shè)計(jì)方案有著智能化、低成本的優(yōu)勢。在功能上有著強(qiáng)大的性能支撐,不僅是一套輸液監(jiān)測系統(tǒng),還能通過整合第三方醫(yī)療數(shù)據(jù)成為新一代的醫(yī)療數(shù)據(jù)平臺。