魏 晗,吳 戀,2,楊婭婷,譚江波,趙廣寬
(1.貴州師范學(xué)院 數(shù)學(xué)與大數(shù)據(jù)學(xué)院,貴州 貴陽 550018;2.貴州師范學(xué)院 大數(shù)據(jù)科學(xué)與智能工程研究院,貴州 貴陽 550018)
在全面脫貧的大背景下,鄉(xiāng)村振興,不返貧,求發(fā)展,已成為時代最強(qiáng)音,讓智慧“心”醫(yī)療的概念深入人心。 鑒于老年人的視力、記憶力普遍欠佳的現(xiàn)狀,本文中的設(shè)備能夠正確智能的讀取、識別、解析出所需藥品的作用、使用頻率、禁忌等關(guān)鍵信息,并進(jìn)行語音播報,從而最大限度地保證用戶在用藥安全的大前提下,將醫(yī)療模式從傳統(tǒng)化向智能化轉(zhuǎn)型。
本文主要介紹了一種智能醫(yī)藥系統(tǒng),此系統(tǒng)的圖像信息采集模塊通過掃描藥盒或說明書等,采集圖像利用OCR 技術(shù)解析文字后運(yùn)用TCP 協(xié)議與服務(wù)器建立聯(lián)系,并返回關(guān)鍵信息進(jìn)行語音播報,為鄉(xiāng)鎮(zhèn)獨(dú)居老人等特殊群體醫(yī)療實現(xiàn)智能化、現(xiàn)代化。 以用藥安全、智能用藥為點(diǎn),智能新醫(yī)療作面,以點(diǎn)繪面力爭在醫(yī)療條件欠發(fā)達(dá)的鄉(xiāng)鎮(zhèn)地區(qū)補(bǔ)足資源稀缺的短板,開創(chuàng)智能醫(yī)療的新局面。
識藥系統(tǒng)的大體由物聯(lián)網(wǎng)模塊、信息采集模塊、服務(wù)管理模塊、云端服務(wù)平臺組成。 物聯(lián)網(wǎng)模塊采用樹莓派(Raspberrypi)[1]作為系統(tǒng)的軟硬件交互中心、調(diào)度中心。 信息采集模塊包括圖像信息采集、信號信息采集兩個版塊,調(diào)度中心將從用戶獲取到的信號信息驅(qū)動攝像頭從而完成圖像采集。 服務(wù)管理模塊對數(shù)據(jù)庫信息進(jìn)行維護(hù),保證信息完整、正確。 云端服務(wù)平臺作為數(shù)據(jù)中心,是由Nginx 技術(shù)搭建的高可用數(shù)據(jù)庫集群,儲存信息的云端載體。 系統(tǒng)整體結(jié)構(gòu)如圖1 所示。
圖1 智能識藥系統(tǒng)
該系統(tǒng)分為用戶硬件設(shè)備、嵌入式軟件、數(shù)據(jù)服務(wù)軟件幾個關(guān)鍵部分。
該系統(tǒng)軟件部分主要分為運(yùn)行在硬件載體上的嵌入式軟件和運(yùn)行在云端服務(wù)平臺上的數(shù)據(jù)服務(wù)軟件。
2.1.1 嵌入式軟件
嵌入式軟件部分功能實現(xiàn)了全自動接收用戶指令、調(diào)度中心激活攝像頭進(jìn)行藥盒的圖像采集、向服務(wù)器上傳采集的圖片并接收服務(wù)器處理后返回的信息驅(qū)動揚(yáng)聲器進(jìn)行語音播報[2],是硬件載體的指揮官。
接收用戶指令是由shell 腳本實現(xiàn),一旦用戶發(fā)出指令,Raspberrypi 的gpio 接口將會精確捕捉該信號,接著將該信息傳遞給Python 代碼。 該行為會激活shell 腳本中的指令,從而調(diào)用攝像頭獲取藥盒的圖像信息,提取圖片信息部分由嵌入硬件設(shè)備在后臺運(yùn)行的Java jar 包代碼實現(xiàn),具體調(diào)用OpenCV,OpenMv 等庫函數(shù)縮小藥名范圍、排除無關(guān)文字從而進(jìn)一步減少服務(wù)器的工作量,然后將經(jīng)過預(yù)處理的圖片信息以流的形式上傳到云端服務(wù)器,該部分由shell 腳本自動發(fā)送Wget 請求并攜帶流實現(xiàn)。 代碼流程如圖2所示。
圖2 代碼流程
2.1.2 數(shù)據(jù)服務(wù)軟件
數(shù)據(jù)服務(wù)軟件部分主要實現(xiàn)了接收硬件設(shè)備端上傳的字節(jié)流圖片信息,并利用百度AI OCR 的API 接口[3],實現(xiàn)將預(yù)處理過的圖片字節(jié)流信息進(jìn)行指定區(qū)域文字識別,減少識別工作量的同時提高了正確率。將搭建在服務(wù)端的數(shù)據(jù)庫內(nèi)指定的內(nèi)容返回給客戶的硬件設(shè)備,只有進(jìn)行多次核對、審查才會返回信息,進(jìn)一步保證了藥品信息的正確性、安全性。
同時部署在主服務(wù)器上的除數(shù)據(jù)庫信息之外,還為管理人員提供了對藥品信息進(jìn)行增加、修改、校對的B/S 模式的后臺可視化管理平臺。 該平臺基于Java 語言、數(shù)據(jù)庫技術(shù)配合SpringBoot 快速開發(fā)框架搭建腳手架管理人員通過項目負(fù)責(zé)人下發(fā)的登錄標(biāo)識進(jìn)入系統(tǒng),采用Redis 集群和頻繁查詢的數(shù)據(jù),以避免過多占用服務(wù)器資源[4-5]。 管理員也可以查看相關(guān)用戶提出的問題,并利用HTTP 請求返回并給予指導(dǎo)。
對于云端數(shù)據(jù)庫的權(quán)限情況,由于藥品信息的特殊性采用SpringSecurity 安全框架防止信息被篡改。 可以保證系統(tǒng)的數(shù)據(jù)管理體系和登錄用戶的權(quán)限是分開的,將Token 令牌(管理員唯一識別碼)暫存在Redis 非關(guān)系型數(shù)據(jù)庫中,減輕了數(shù)據(jù)庫服務(wù)器并發(fā)壓力,還可以保證管理員在一定時間內(nèi)有對數(shù)據(jù)庫服務(wù)器內(nèi)數(shù)據(jù)操作的權(quán)限,數(shù)據(jù)加密采用了SHA-256+隨機(jī)鹽+密鑰的方式,可以保障各個用戶之間的登錄信息和查詢數(shù)據(jù)的安全性,基于安全因素的考慮,不同權(quán)限的工作人員登錄系統(tǒng)之后,修改藥品數(shù)據(jù)庫的權(quán)限也不同,這樣既避免了數(shù)據(jù)泄露或被篡改的風(fēng)險,也提高了系統(tǒng)的調(diào)控性。
對于數(shù)據(jù)庫而言,用戶的信息是管理人員所提供的信息。 但對于用戶而言,在識別過某種藥品后可以對本地數(shù)據(jù)庫內(nèi)的信息進(jìn)行修改,從而實現(xiàn)個性化配置。 與此同時,用戶的操作將會記錄在云端日志數(shù)據(jù)庫內(nèi),原始數(shù)據(jù)發(fā)生修改操作將進(jìn)行拷貝。 云端數(shù)據(jù)平臺采用差別拷貝模式,在未增加新數(shù)據(jù)的情況下,原數(shù)據(jù)發(fā)生修改,差別拷貝模式只會拷貝修改的數(shù)據(jù),節(jié)省了數(shù)據(jù)庫內(nèi)存和數(shù)據(jù)拷貝時間,使識藥系統(tǒng)保持高效運(yùn)行。 用戶進(jìn)行修改操作后會將該數(shù)據(jù)與原數(shù)據(jù)進(jìn)行信息比對,如有發(fā)現(xiàn)信息異常則認(rèn)定為誤操作,對用戶進(jìn)行反饋,主要數(shù)據(jù)庫字段設(shè)計如表1所示。
表1 藥品數(shù)據(jù)庫字段
該系統(tǒng)硬件部分主要由Raspberrypi 作為載體,同時它也是該系統(tǒng)的調(diào)度、交互中心,負(fù)責(zé)協(xié)同信號信息采集模塊、圖像信息采集模塊、云端服務(wù)平臺等硬件單元去驅(qū)動各設(shè)備之間的交互,共同完成識藥功能。
2.2.1 交互、調(diào)度中心
硬件部分為客戶端,Raspberrypi 作為可以搭載Linux 系統(tǒng)的“卡片式電腦”是“低成本物聯(lián)網(wǎng)”這一概念的有力踐行者,正是因為有了它,每個人都可以動手實現(xiàn)嵌入式。 同時本項目也選擇使用Raspberrypi 作為項目的硬件載體和交互、調(diào)度中心,由它來驅(qū)動各功能模塊完成識藥流程,這個過程需要由gpio 提供輸入輸出針腳的信息,可以通過基于Linux 的系統(tǒng)來讀取各個接口的狀態(tài),基于此用戶可以點(diǎn)擊載體上的按鈕,由信號信息采集版塊處理后將該信號信息傳遞給shell 腳本,再由調(diào)度中心向圖像信息采集版塊發(fā)布命令,從而驅(qū)動外部設(shè)備采集信息,負(fù)責(zé)發(fā)布命令和接收反饋,獲取圖像信息后由交互中心向云端服務(wù)平臺發(fā)送字節(jié)流進(jìn)行軟硬件平臺的交互,經(jīng)過云端服務(wù)平臺處理后返回的信息再由調(diào)度中心調(diào)用揚(yáng)聲器設(shè)備進(jìn)行語音播報。 Raspberrypi 設(shè)備實體如圖3 所示。
圖3 硬件設(shè)備
2.2.2 信號信息采集版塊
此版塊依賴于gpio 接口,運(yùn)行在硬件設(shè)備上的Python 代碼可以通過硬件設(shè)備載體外接在gpio 上的按鈕來控制gpio 的高低電平變化,Shell 腳本可以開啟監(jiān)聽gpio 模式,當(dāng)用戶點(diǎn)擊外接的按鈕后,指定的gpio 接口的高低電平就會發(fā)生變化并反饋信息給調(diào)度中心,高低電平的變化可以利用在gpio 接口與按鈕之間連接的LED 燈珠亮滅來進(jìn)行可視化展示。
2.2.3 圖像信息采集版塊
此版塊主要接收調(diào)度中心發(fā)出的信號從而啟用攝像頭采集圖像信息,將此字節(jié)流圖像暫存在本地[6],該操作被Shell 腳本監(jiān)聽后傳遞信號給調(diào)度中心,進(jìn)而將暫存在本地的字節(jié)流圖像信息以Wget 請求命令上傳到服務(wù)器。
由表2 不難看出,該系統(tǒng)硬件用戶單元在環(huán)境明亮、正常的情況下正確率可以達(dá)到商用水平,但在極度昏暗或存在不正常操作的情況下正確率不盡人意。 排除極端環(huán)境因素影響該設(shè)備的運(yùn)作正常,返回的數(shù)據(jù)正確、安全。
表2 實驗效果匯總
目前,本文的智能醫(yī)藥系統(tǒng)解決了老年人由于視力、記憶力普遍欠佳,無法確保安全用藥而存在的一些問題,同時該系統(tǒng)具有智能讀取和語音播報的功能,為老年人用藥提供了極大的便利。 當(dāng)前該系統(tǒng)經(jīng)過多次改進(jìn)與測試,工作性能穩(wěn)定,實現(xiàn)效果良好。 在人口老年化的當(dāng)下,智能醫(yī)藥系統(tǒng)為老年人安全用藥提供了保障。 此外,本文的智能醫(yī)藥系統(tǒng)具有很廣闊的市場前景,在未來將會占據(jù)部分市場份額,為人們的工作和生活提供便利,降低了用戶因為視力下降和記憶力衰退而產(chǎn)生的安全隱患,使用戶的用藥模式向智能化轉(zhuǎn)變。