郭志濤,郭 忠,王 振
(河北工業(yè)大學 信息工程學院,天津300401;2.河北工業(yè)大學 計算機科學與軟件學院,天津300401)
智能醫(yī)療是通過打造健康檔案區(qū)域醫(yī)療信息平臺,利用最先進的物聯(lián)網(wǎng)技術(shù),實現(xiàn)患者與醫(yī)務人員、醫(yī)療機構(gòu)、醫(yī)療設備之間的互動,逐步達到信息化.在不久的將來醫(yī)療行業(yè)將融入更多人工智慧、傳感技術(shù)等高科技,使醫(yī)療服務走向真正意義的智能化,推動醫(yī)療事業(yè)的繁榮發(fā)展.在中國新醫(yī)改的大背景下,智能醫(yī)療正在走進尋常百姓的生活.
隨著人們對無處不在的網(wǎng)絡迅速增長的需求,以及近年來老齡化加劇、各種疾病發(fā)病率的增長,無線體域網(wǎng)的應用越來越引起人們的關(guān)注.體域網(wǎng)是人體上的生理參數(shù)收集到傳感器或移植到人體內(nèi)的生物傳感器共同形成的一個無線網(wǎng)絡,這些傳感器節(jié)點之間的數(shù)據(jù)傳輸一般在兩米的超短距離.一個基本的體域網(wǎng)由多個節(jié)點和一個網(wǎng)絡管理器(簡稱網(wǎng)關(guān),即體域網(wǎng)和外部網(wǎng)絡之間的橋梁,使數(shù)據(jù)能夠得以安全地傳送和交換)組成.每個傳感器節(jié)點負責采集身體參數(shù)如體溫、血氧飽和度以及脈率等,而網(wǎng)關(guān)則是作為一個微型服務器收集所有節(jié)點采集的數(shù)據(jù)并轉(zhuǎn)發(fā)到網(wǎng)絡端,通過網(wǎng)絡與手機端進行數(shù)據(jù)交互與傳輸.傳感器、網(wǎng)關(guān)分別配有無線網(wǎng)絡模塊,智能手機出廠時也配有無線網(wǎng)絡模塊,采用這樣的無線傳輸而不是利用生物傳感器與手機硬件直接相連,拓展性強,操作簡單,而且任意手機都可安裝使用.綜上,這樣的網(wǎng)絡架構(gòu)很明確,而且實現(xiàn)起來也簡單,成本低廉.測試結(jié)果表明,此智能醫(yī)療系統(tǒng)可以成功實現(xiàn)對數(shù)據(jù)的收發(fā),而且速度幾乎同步,這對于智能醫(yī)療實現(xiàn)實時性傳輸數(shù)據(jù)具有重要的參考價值,同時滿足了便攜性、移動化的需要[1].
Android 是Google 于2007 年11 月5 日宣布的一種基于Linux 的自由及開放源代碼的操作系統(tǒng),主要應用于便攜設備,如智能手機和平板電腦等.Android 一詞的本義指“機器人”,目前尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”.
Android 的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu).從架構(gòu)圖看,Android 分為4 個層,從高層到低層分別是應用程序?qū)?、應用程序框架層、系統(tǒng)運行庫層和Linux 核心層.
結(jié)合Android 的系統(tǒng)架構(gòu)以及Android 平臺具有開放性、掙脫運營商的束縛、豐富的硬件選擇、無縫結(jié)合Google 應用等優(yōu)勢,為以后程序的擴展以及版本的升級與不斷改進帶來了極大的方便,使得智能醫(yī)療這個全新的系統(tǒng)能夠不斷發(fā)展進步.
用戶通過安裝在Android 手機操作系統(tǒng)上的智能醫(yī)療應用程序和網(wǎng)關(guān)對人體的血氧飽和度、體溫、脈搏等數(shù)據(jù)進行采集,數(shù)據(jù)通過手機端顯示出來,用戶根據(jù)顯示的數(shù)據(jù)判斷自己身體健康狀況.通過底層傳感器獲取的人體體征值是與專業(yè)醫(yī)療器械測得的體征值數(shù)以千萬次對比得出的結(jié)果,對于不準的數(shù)據(jù)或者稍微有些偏差的數(shù)據(jù)要經(jīng)過嚴格校驗與修正,測量的信息的準確性可靠、精確.網(wǎng)關(guān)是整個系統(tǒng)的關(guān)鍵,底層負責與傳感器各個節(jié)點交互,上層負責與Android 手機端交互.這樣網(wǎng)絡架構(gòu)的設計,沒有引用數(shù)據(jù)庫,省略了對于數(shù)據(jù)庫的寫入與讀取,大大縮短了數(shù)據(jù)收發(fā)所用時間,提升了速度,滿足了系統(tǒng)的實時性,這也是此系統(tǒng)的創(chuàng)新所在.
Android 客戶端與網(wǎng)關(guān)的通訊是基于WiFi 與網(wǎng)絡Socket 套接字技術(shù).WiFi 是一種能夠?qū)€人電腦、手持設備(如PAD、手機)等終端以無線方式互相連接的技術(shù). Socket 通常也稱作“套接字”,應用程序通常通過“套接字”向網(wǎng)絡發(fā)出請求或者應答網(wǎng)絡請求.Socket 和ServerSocket 類庫位于java .net 包中. ServerSocket 用于服務器端,Socket 是建立網(wǎng)絡連接時使用的.在連接成功時,應用程序兩端都會產(chǎn)生一個Socket 實例,操作這個實例,完成所需的會話. 對于一個網(wǎng)絡連接來說,套接字是平等的,并沒有差別,不因為在服務器端或在客戶端而產(chǎn)生不同級別. 不管是Socket還是ServerSocket 它們的工作都是通過SocketImpl 類及其子類完成的[2].
智能醫(yī)療系統(tǒng)的整體框架圖如圖1 所示.
圖1 系統(tǒng)整體框架Fig.1 The frame of system
實現(xiàn)主要使用Java 語言,通過開源的Eclipse開發(fā)工具安裝ADT 插件進行開發(fā),前提是在開發(fā)軟件的計算機上已經(jīng)安裝了Java 語言的開發(fā)工具JDK(Java Development Kit,JDK),關(guān)鍵是采用Socket 套接字編程技術(shù). 當用戶按下鍵或者更新手機界面時手機端應用程序便會通過socket 將相應指令通過WIFI 發(fā)送至網(wǎng)關(guān),前提是知道網(wǎng)關(guān)的IP 地址及公共的端口號,手機和網(wǎng)關(guān)處于同一個局域網(wǎng)之中.網(wǎng)關(guān)解析完指令,對硬件終端發(fā)送命令,網(wǎng)關(guān)回復相應指令,手機端按照自定義的協(xié)議進行解析,最終可以在手機端將結(jié)果展示給用戶,Android 手機端主程序流程如圖2 所示[3].
圖2 手機端流程圖Fig.2 The flowchart of mobile terminal
2.2.1 動態(tài)配置網(wǎng)關(guān)
軟件在設計時,輸入網(wǎng)關(guān)IP 地址和端口號是一個動態(tài)配置網(wǎng)關(guān)的過程,不將IP 地址和端口號在代碼里寫成固定值,而是隨著網(wǎng)關(guān)端口號和IP地址的變化而變化給用戶操作帶來了方便.
2.2.2 套接字編程
我們平時所說的socket 通常也稱作“套接字”,用于描述IP 地址和端口,是一個通信鏈的句柄;應用程序通過“套接字”向網(wǎng)絡發(fā)送請求或者應答網(wǎng)絡請求;Socket 有兩種主要的操作方式:面向連接(TCP)的和無連接的(UDP);客戶端首先知道服務器端的IP 地址和端口號,然后進行連接發(fā)起通訊.
Android 的手機端和網(wǎng)關(guān)之間的交互就是利用socket 編程,將IP 地址聲明成String 類型的變量,端口號聲明成int 類型的變量,創(chuàng)建Socket 的對象,將IP 地址和端口號作為參數(shù)傳入,然后通過java 中指定的方法與網(wǎng)關(guān)進行發(fā)送數(shù)據(jù)與接收數(shù)據(jù),實現(xiàn)與網(wǎng)關(guān)數(shù)據(jù)的交互[4].
2.2.3 單例設計模式
Android 手機客戶端需要經(jīng)常關(guān)閉界面與打開界面,按照常規(guī)簡單的編程切換界面時socket會隨著Android 中Activity 的消亡而關(guān)閉掉,重新回到一個新界面時會重新創(chuàng)建一個socket. 為了解決這個問題,采用java 設計模式中的單例設計模式.
單例設計模式的特點:單例類只能有一個實例;單例類必須自己創(chuàng)建自己的唯一實例;單例類必須給所有其他對象提供這一實例. 單例模式確保某個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例.
核心網(wǎng)關(guān)采用ATMEL 的AT91SAM9261 -EK 核心板,它本身內(nèi)存4MB,NAND FLASH 128MB,支持SD 卡,自帶網(wǎng)口,5 個USB 口,3 個串口,接口類型豐富,存儲空間大,支持嵌入式Linux 系統(tǒng),開發(fā)方便快捷,運行穩(wěn)定,可勝任大部分的網(wǎng)關(guān)工作.
核心網(wǎng)關(guān)負責協(xié)調(diào)上層應用層與底層硬件無線數(shù)據(jù)鏈路層的數(shù)據(jù)交互.通過串口連接無線傳感網(wǎng)絡的網(wǎng)關(guān)節(jié)點;通過網(wǎng)口連接局域網(wǎng),通過網(wǎng)絡與手機等終端進行數(shù)據(jù)交互.網(wǎng)關(guān)原理如圖3 所示.
圖3 網(wǎng)關(guān)原理圖Fig.3 Gateway schematic diagram
實現(xiàn)主要使用C 語言,通過MPLAB IDE 集成開發(fā)環(huán)境實現(xiàn)整個硬件系統(tǒng)的開發(fā). 系統(tǒng)由NFR24L01 模塊組成星型網(wǎng)絡. 每個穿戴節(jié)點都由傳感器模塊與NFR24L01 模塊組成,傳感器模塊采集人體數(shù)據(jù),由PIC1823 單片機對數(shù)據(jù)進行處理并通過NFR24L01 模塊發(fā)送到網(wǎng)關(guān),網(wǎng)關(guān)對數(shù)據(jù)進行解析后發(fā)送到手機端. 如圖4 所示為硬件與網(wǎng)關(guān)的交互流程圖[5].
在Android 操作系統(tǒng)的手機上安裝智能醫(yī)療應用程序后,打開軟件,經(jīng)過開始界面,跳轉(zhuǎn)至智能醫(yī)療系統(tǒng)的配置網(wǎng)關(guān)界面,如下圖5(a)所示[6-8].
圖4 硬件與網(wǎng)關(guān)交互流程圖Fig.4 The flowchart of Gateway interacts with hardware
圖5 操作詳解Fig.5 Operational details
在相應位置分別輸入網(wǎng)關(guān)IP 地址與端口號,然后點擊“登陸”按鈕,來到主界面,如圖5(b)左側(cè)圖所示,在沒有連接網(wǎng)關(guān)或者不對任何人進行體檢時,可以點擊“預覽”按鈕進行整個手機軟件的初步瀏覽與熟悉. 程序主界面的最上方是應用程序的名字,下方是幾個健康小貼士,包括體溫、血氧飽和度、脈搏三大健康指標,每隔5 s 自動更新滑動一次(相隔時間在程序里可以任意設定),并且支持手動向左、向右滑動,點擊手機“菜單”鍵,可以選擇退出,當然也可以連續(xù)點擊“返回”按鈕退出手機應用程序.首先配置好網(wǎng)關(guān),各個傳感器連接人體的不同位置,如圖5(b)右側(cè)圖所示,打開血氧飽和度模塊,點擊右上方的獲取數(shù)據(jù)按鈕,可以分別獲得人體動脈血和靜脈血的血氧飽和度.
打開體溫模塊,如圖5(c)左側(cè)圖所示,點擊右上方的獲取數(shù)據(jù)按鈕,可以收集到體溫數(shù)據(jù),如圖5(c)右側(cè)圖所示,打開脈搏模塊,點擊右上方的獲取數(shù)據(jù)按鈕,可以得到連續(xù)幾次的脈搏次數(shù),繪制成折線便于觀察,單位:次/分.
通過對此系統(tǒng)的實驗與反復測試表明采用本系統(tǒng)的網(wǎng)絡架構(gòu),手機端與網(wǎng)關(guān)數(shù)據(jù)交互達到了實時性的特點,這正是我們未來智能醫(yī)療所需要與借鑒的.
雖然智能醫(yī)療這個概念在若干年前就被提出,直到這幾年才進入一個行業(yè)迅猛發(fā)展的時期.智能醫(yī)療這個概念也開始慢慢實物化. 本系統(tǒng)以無線通信技術(shù)為核心,研究了基于Android 手機平臺的智能醫(yī)療系統(tǒng)的可行性以及實現(xiàn)方案.
此系統(tǒng)手機UI 做的還比較粗糙,后續(xù)尚可完善,讓用戶界面更人性化和更具美感.此外,還面臨著對整體系統(tǒng)操作的速度等問題,Android 手機各個版本的測試問題.目前對于不同種類的、不同規(guī)格的醫(yī)療設備還沒有一個統(tǒng)一的實行標準.[8]
[1] 李高尚,沈?。?一種應用于移動健康醫(yī)療的Android客戶端的研究[J]. 電子測試,2012(2):64 -67.
[2] 王麗娟,孫西超,底松茂,等. 軟件復用與基于面向?qū)ο罂蚣艿能浖_發(fā)方法[J]. 鄭州大學學報:工學版,2003,24(3):24 -28.
[3] 孫迎,宋健. 基于Android 的遠程心電檢測系統(tǒng)[J]. 計算機應用與軟件,2013(4):326 -329.
[4] 祝錫永,陸忠芳. 基于Google 云計算的移動醫(yī)療服務平臺的研究[J]. 成組技術(shù)與生產(chǎn)現(xiàn)代化,2013(1):22 -27.
[5] 毛中亮,史鴻飛,應俊,等. 基于Android 平臺的移動醫(yī)療應用系統(tǒng)[J]. 中國醫(yī)療設備,2013(3):73 -76.
[6] 陳欣,郭勇,賴武剛. 基于Android 平臺的多生理參數(shù)智能手機監(jiān)護系統(tǒng)的設計[J]. 電子世界,2013(8):122 -124.
[7] 呂美丹,祝錫永,傅慧,等. 基于GAE 云計算的區(qū)域移動醫(yī)療服務平臺[J]. 計算機系統(tǒng)應用,2013(6):29 -33.
[8] 季磊,郭旭,施華宇. 移動醫(yī)療終端通訊系統(tǒng)的設計與實現(xiàn)[J]. 中國醫(yī)療器械雜志,2013(1):37 -39.