《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于Android的遠(yuǎn)程醫(yī)療監(jiān)測(cè)系統(tǒng)設(shè)計(jì)
基于Android的遠(yuǎn)程醫(yī)療監(jiān)測(cè)系統(tǒng)設(shè)計(jì)
2015年微型機(jī)與應(yīng)用第19期
張紅北,趙曉軍,李 瑞,王晨康,繩 丹
(河北大學(xué) 電子信息工程學(xué)院,河北 保定 071002)
摘要: 為滿足人們對(duì)于遠(yuǎn)程醫(yī)療的需求,推出了一個(gè)應(yīng)用Android移動(dòng)終端的解決方案。該方案結(jié)合Android系統(tǒng)的特點(diǎn),設(shè)計(jì)了一套采集、顯示存儲(chǔ)、報(bào)警推送于一體的遠(yuǎn)程醫(yī)療監(jiān)測(cè)系統(tǒng)。首先對(duì)Android框架與系統(tǒng)架構(gòu)進(jìn)行介紹,然后對(duì)系統(tǒng)涉及到的Android系統(tǒng)藍(lán)牙、Socket等通信方式的開發(fā)進(jìn)行分析,并對(duì)Android設(shè)備在數(shù)據(jù)采集、存儲(chǔ)、處理中的應(yīng)用進(jìn)行介紹,最后應(yīng)用MQTT協(xié)議完成了對(duì)報(bào)警信息的推送。結(jié)果表明Android系統(tǒng)在遠(yuǎn)程醫(yī)療服務(wù)系統(tǒng)中有很大的應(yīng)用前景。
Abstract:
Key words :

  摘  要: 為滿足人們對(duì)于遠(yuǎn)程醫(yī)療的需求,推出了一個(gè)應(yīng)用Android移動(dòng)終端的解決方案。該方案結(jié)合Android系統(tǒng)的特點(diǎn),設(shè)計(jì)了一套采集、顯示存儲(chǔ)、報(bào)警推送于一體的遠(yuǎn)程醫(yī)療監(jiān)測(cè)系統(tǒng)。首先對(duì)Android框架與系統(tǒng)架構(gòu)進(jìn)行介紹,然后對(duì)系統(tǒng)涉及到的Android系統(tǒng)藍(lán)牙、Socket等通信方式的開發(fā)進(jìn)行分析,并對(duì)Android設(shè)備在數(shù)據(jù)采集、存儲(chǔ)、處理中的應(yīng)用進(jìn)行介紹,最后應(yīng)用MQTT協(xié)議完成了對(duì)報(bào)警信息的推送。結(jié)果表明Android系統(tǒng)在遠(yuǎn)程醫(yī)療服務(wù)系統(tǒng)中有很大的應(yīng)用前景。

  關(guān)鍵詞: Android;遠(yuǎn)程醫(yī)療;藍(lán)牙;消息推送;MQTT

0 引言

  隨著社會(huì)的進(jìn)步,人民生活水平的提高,人們?cè)絹碓疥P(guān)注自身的身體健康。人們都希望可以足不出戶享受來自醫(yī)院及醫(yī)生的診療或是根據(jù)自身的指標(biāo)得到針對(duì)性的健康指導(dǎo)。對(duì)于一些慢性病患者及時(shí)將重要的生理參數(shù)告知醫(yī)生可以防止病情的突然惡化。在西方一些發(fā)達(dá)國家,遠(yuǎn)程診療技術(shù)已經(jīng)應(yīng)用于實(shí)際生活,患者在當(dāng)?shù)鼐涂梢韵硎艿角Ю镏獾膶<姨峁┑闹委煼?wù)[1]。

  另一方面,智能移動(dòng)終端的普及與移動(dòng)網(wǎng)絡(luò)的發(fā)展使得遠(yuǎn)程醫(yī)療成為可能。智能終端如智能手機(jī)、PAD等,其強(qiáng)大的功能可以實(shí)現(xiàn)遠(yuǎn)程醫(yī)療中醫(yī)療數(shù)據(jù)的輸入、輸出、顯示和本地存儲(chǔ)等。常見的智能終端操作系統(tǒng)有Android、iOS、kindle等,相比于其他系統(tǒng),Android基于Linux內(nèi)核,具有開放性和免費(fèi)性的特點(diǎn)。現(xiàn)有的遠(yuǎn)程醫(yī)療信息系統(tǒng)主要依賴醫(yī)生通過客戶端主動(dòng)訪問服務(wù)器獲取病人信息,無法保證信息的實(shí)時(shí)性,在面對(duì)突發(fā)事件時(shí)無法及時(shí)處理。在此背景下,本文結(jié)合現(xiàn)有醫(yī)療信息系統(tǒng)與Android操作系統(tǒng)的特點(diǎn)對(duì)Android遠(yuǎn)程醫(yī)療信息系統(tǒng)的應(yīng)用以及相關(guān)技術(shù)進(jìn)行研究。

1 遠(yuǎn)程醫(yī)療信息系統(tǒng)的整體框架

  系統(tǒng)的第一部分是用戶生理參數(shù)的采集。用戶使用便攜式醫(yī)療設(shè)備對(duì)心率、血壓等生理數(shù)據(jù)進(jìn)行采集,并通過藍(lán)牙模塊將采集到的數(shù)據(jù)發(fā)送到移動(dòng)設(shè)備端。移動(dòng)設(shè)備主要是安裝Android操作系統(tǒng)的智能手機(jī)和平板電腦,移動(dòng)端應(yīng)用程序需要完成兩項(xiàng)功能,一是接收便攜式醫(yī)療設(shè)備采集的數(shù)據(jù)并進(jìn)行本地顯示與存儲(chǔ),二是應(yīng)用程序連接到服務(wù)器,將所接收的數(shù)據(jù)發(fā)送出去同時(shí)準(zhǔn)備接收服務(wù)器端的推送。服務(wù)器端接收信息并存入數(shù)據(jù)庫中,同時(shí)配有前臺(tái)網(wǎng)頁以便用戶查詢。此外通過消息代理服務(wù)器通過訂閱/發(fā)布的形式向客戶端推送患者數(shù)據(jù)異常的消息或根據(jù)患者病史提供醫(yī)囑。其總體結(jié)構(gòu)如圖1所示。

001.jpg

2 遠(yuǎn)程醫(yī)療系統(tǒng)Android應(yīng)用的設(shè)計(jì)與介紹

  2.1 Android平臺(tái)簡介

  Android是由Google以及Google牽頭的開放手機(jī)聯(lián)盟于2007年11月5日推出的一款開源智能手機(jī)操作系統(tǒng)[2]。并且,Google采取Apache免費(fèi)開源許可證的授權(quán)方式,發(fā)布了Android操作系統(tǒng)的源代碼,以便各手機(jī)生產(chǎn)商推出基于Android操作系統(tǒng)的智能手機(jī),Android操作系統(tǒng)后來更是逐漸拓展到平板電腦及其他領(lǐng)域上[3]。Android系統(tǒng)架構(gòu)由5部分組成,分別是Linux內(nèi)核(Linux Kernel)、系統(tǒng)運(yùn)行層(Android Runtime)、函數(shù)庫(Libraries)、應(yīng)用框架(Application Framework)和應(yīng)用層(Applications)。應(yīng)用層主要包括電話程序、SMS短消息程序、瀏覽器程序等為用戶提供手機(jī)基本功能的軟件集合。應(yīng)用框架層不直接與用戶接觸,主要面向Android開發(fā)人員,開發(fā)人員可以調(diào)用應(yīng)用框架提供的各種API,方便對(duì)應(yīng)用程序的開發(fā)。函數(shù)庫包含常用的C/C++庫,如Surface Manager、OpenGL ES、SGL、SSL、SQLite等。系統(tǒng)運(yùn)行層可分為Android核心函數(shù)庫與虛擬機(jī),為應(yīng)用程序提供運(yùn)行環(huán)境。Linux核心為Android提供主要的系統(tǒng)服務(wù)如安全性管理、內(nèi)存管理、網(wǎng)絡(luò)棧、驅(qū)動(dòng)模型、電源管理等[4]。

  2.2 Android的數(shù)據(jù)采集

  隨著人們生活水平的不斷提高,人們對(duì)自身的健康也越來越關(guān)注。定期體檢獲取自身生理數(shù)據(jù)、及時(shí)改變生活習(xí)慣可以有效地避免疾病的發(fā)生。傳統(tǒng)體檢需要人們到醫(yī)院或者社區(qū)醫(yī)療中心,由于路途遙遠(yuǎn)設(shè)備資源有限勢(shì)必造成大量的時(shí)間浪費(fèi)。便攜式醫(yī)療設(shè)備的出現(xiàn)極大地改變了這種現(xiàn)狀,人們可以隨時(shí)隨地采集自身的生理數(shù)據(jù)同時(shí)避免了路途遙遠(yuǎn)和排隊(duì)帶來的困擾。

  市場(chǎng)上現(xiàn)有的便攜醫(yī)療設(shè)備很多都帶有藍(lán)牙功能,而Android SDK中提供了用于藍(lán)牙通信的標(biāo)準(zhǔn)API,使得通過Android移動(dòng)端設(shè)備獲取便攜式醫(yī)療設(shè)備上采集的信息成為可能。Android藍(lán)牙通信主要使用BluetoothAdapter類,它提供了對(duì)于藍(lán)牙操作的各種方法。要使用藍(lán)牙首先要在AndroidManifest.xml中加入權(quán)限:

  <uses-permission android:name="android.permission.BLUETOOTH"/>

  <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

  在具體操作時(shí)首先使用enable方法打開藍(lán)牙,之后使用startDiscovery對(duì)附近的藍(lán)牙設(shè)備進(jìn)行搜索。使用系統(tǒng)廣播的方式將設(shè)備信息加入設(shè)備列表,由于整個(gè)掃描過程需要12 s左右,對(duì)資源消耗較大,所以在連接之前需要調(diào)用cancleDiscovery方法取消查找。完成配對(duì)之后使用BluetoothSocket進(jìn)行連接,雙方通過RFCOMM通道進(jìn)行通信完成數(shù)據(jù)的讀寫。Android移動(dòng)端通過與便攜式醫(yī)療設(shè)備之間的協(xié)議對(duì)設(shè)備進(jìn)行識(shí)別,截取接收到的數(shù)據(jù)中的有用信息完成對(duì)采集端數(shù)據(jù)的接收。開發(fā)過程中使用多線程技術(shù)完成藍(lán)牙的連接和通信,以實(shí)現(xiàn)藍(lán)牙的后臺(tái)搜索與連接。

002.jpg

  圖2中Android端通過設(shè)備管理模塊,對(duì)藍(lán)牙設(shè)備進(jìn)行操作并對(duì)接入的設(shè)備進(jìn)行驗(yàn)證與分類管理,驗(yàn)證信息是靠便攜式醫(yī)療終端與Android設(shè)備之間的通信協(xié)議規(guī)定。數(shù)據(jù)管理模塊主要負(fù)責(zé)數(shù)據(jù)的接收、存儲(chǔ)與打包上傳。通過藍(lán)牙接收的數(shù)據(jù)被傳遞到UI界面進(jìn)行顯示,同時(shí)數(shù)據(jù)被存儲(chǔ)到Android本地的SQLite數(shù)據(jù)庫中。這些數(shù)據(jù)還可以由數(shù)據(jù)管理模塊進(jìn)行打包并向服務(wù)器端上傳。

  2.3 Android移動(dòng)端數(shù)據(jù)的顯示與發(fā)送

  Android系統(tǒng)最具代表性的特點(diǎn)之一就是其提供了可視化的設(shè)計(jì)框架。Android利用XML語言和Java語言結(jié)合的方式控制UI布局,并提供了各種各樣的控件,在很大程度上降低了開發(fā)難度[5]。Android的界面寫在res/layout的XML文件中,一般情況下一個(gè)XML文件對(duì)應(yīng)一個(gè)界面。Android操作系統(tǒng)自帶有一個(gè)輕量級(jí)的關(guān)系型數(shù)據(jù)庫SQLite,對(duì)于一些重要的生理數(shù)據(jù)可以將其在本地存儲(chǔ)起來以便于查詢。通過使用SQL語句創(chuàng)建表并將重要的生理數(shù)據(jù)插入表中完成對(duì)數(shù)據(jù)的本地存儲(chǔ),查詢時(shí)使用SQLiteDatabase.query方法將數(shù)據(jù)展示在一個(gè)ListView中方便用戶查詢存儲(chǔ)的歷史信息。

  數(shù)據(jù)發(fā)送通過Android SDK中提供的socket使用TCP/IP協(xié)議與遠(yuǎn)程的服務(wù)器進(jìn)行連接,在生理數(shù)據(jù)中加入包序號(hào)、采樣時(shí)間等信息作為包頭,以數(shù)據(jù)包的形式發(fā)送到服務(wù)器端,并對(duì)因網(wǎng)絡(luò)不穩(wěn)等因素造成的數(shù)據(jù)包丟失的情況及時(shí)請(qǐng)求重傳,以保證服務(wù)器可以完整地接收數(shù)據(jù)信息。

  2.4 Android移動(dòng)端對(duì)推送數(shù)據(jù)的接收

  Android手機(jī)獲取服務(wù)器上不定期更新的消息主要有兩種方式:一種是不斷地發(fā)送更新請(qǐng)求,或者稱之為“輪詢”方式;另外一種則是在發(fā)生改變時(shí),由服務(wù)端主動(dòng)將消息推送給客戶端的用戶,這種方式稱為“推送”。兩者相比“輪詢”方式需要客戶端以一定的時(shí)間間隔向服務(wù)端發(fā)出請(qǐng)求,以頻繁請(qǐng)求的方式來保持客戶端和服務(wù)器端的同步。這種同步方案的最大問題是,當(dāng)客戶端以固定頻率向服務(wù)器發(fā)起請(qǐng)求時(shí),服務(wù)器端的數(shù)據(jù)可能并沒有更新,這樣會(huì)帶來很多無謂的網(wǎng)絡(luò)傳輸,而且頻繁的啟動(dòng)數(shù)據(jù)連接必然會(huì)加速電量的消耗。而對(duì)于“推送”的情況,客戶端與服務(wù)器端完成連接以后,只有服務(wù)器端有信息更新以后才會(huì)主動(dòng)向客戶端發(fā)送信息,在推送到來的周期內(nèi)客戶端只需要保持最基本的連接信息,因此減少了通信流量與手機(jī)電量的消耗,是移動(dòng)端實(shí)時(shí)消息通知的理想解決方案。

003.jpg

  本文使用MQTT協(xié)議完成對(duì)客戶端信息的推送,MQTT是一個(gè)機(jī)器對(duì)機(jī)器(M2M)的“物聯(lián)網(wǎng)”連接協(xié)議,是一個(gè)極其輕量級(jí)的基于發(fā)布/訂閱的消息傳輸協(xié)議,其主要結(jié)構(gòu)如圖3所示[6]。與現(xiàn)有常用的GCM與XMPP推送相比,GCM推送方式受限于谷歌服務(wù)器,在國內(nèi)運(yùn)行不夠穩(wěn)定,而XMPP協(xié)議發(fā)展成熟且具有較強(qiáng)的擴(kuò)展性,但其協(xié)議冗余、復(fù)雜,對(duì)電量與流量的消耗較大。MQTT是專門為低帶寬、不穩(wěn)定網(wǎng)絡(luò)以及計(jì)算和處理能力受限的設(shè)備所設(shè)計(jì)的,協(xié)議采用小型傳輸,耗電量小,能大大降低網(wǎng)絡(luò)流量,最小化數(shù)據(jù)包可有效分配與傳輸,非常適合移動(dòng)系統(tǒng)上的應(yīng)用[7]。

  服務(wù)器端對(duì)于MQTT協(xié)議的實(shí)現(xiàn)主要依靠Mosquitto,Mosquitto是一款開源的MQTT broker,它比較完整地實(shí)現(xiàn)了MQTT協(xié)議要求的各種基本功能,負(fù)責(zé)完成協(xié)議底層的網(wǎng)絡(luò)通信機(jī)制以及針對(duì)各種不同類型消息的收發(fā)機(jī)制。Android端在應(yīng)用編寫時(shí)加入Eclipse Paho API,這個(gè)API幫助完成服務(wù)器連接、話題的發(fā)布與訂閱等功能。在訂閱話題時(shí)設(shè)置為永久訂閱以保證客戶端在離線或者關(guān)閉等無法接收信息的情況下,再次連接服務(wù)器時(shí)仍可以接收到之前沒有接收的信息。除了Activity以外,應(yīng)用還使用Service組件,當(dāng)用戶退出應(yīng)用時(shí)其繼續(xù)在后臺(tái)運(yùn)行定時(shí)向服務(wù)器端發(fā)送心跳以保證連接不被斷開,心跳以客戶端發(fā)送PINGREQ報(bào)文并接受從BROKER返回PINGREQ報(bào)文的形式維持長連接。當(dāng)被監(jiān)控對(duì)象出現(xiàn)生理指標(biāo)異常時(shí),系統(tǒng)會(huì)向其家屬、醫(yī)生等共同訂閱此話題的客戶端推送消息,推送數(shù)據(jù)時(shí)將以Notification通知的形式提醒用戶。

  2.5 服務(wù)器結(jié)構(gòu)

  服務(wù)器端主要由服務(wù)器網(wǎng)站界面、后臺(tái)Windows服務(wù)、數(shù)據(jù)庫以及推送代理服務(wù)器組成。前臺(tái)網(wǎng)站界面是使用B/S模式的網(wǎng)頁程序,可以為有權(quán)限的用戶(例如患者及其家屬或主治醫(yī)生等)提供歷史數(shù)據(jù)的查詢及數(shù)據(jù)折線圖的顯示等。后臺(tái)Windows服務(wù)程序是運(yùn)行在服務(wù)器上的后臺(tái)程序,負(fù)責(zé)接收通過socket發(fā)送的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行解包、驗(yàn)證、分組存入數(shù)據(jù)庫中。后臺(tái)數(shù)據(jù)庫主要用來把數(shù)據(jù)分組建表儲(chǔ)存起來(數(shù)據(jù)包括病人信息、血壓、血氧等生理數(shù)據(jù)),以便后期數(shù)據(jù)的訪問。當(dāng)接收到的生理數(shù)據(jù)有嚴(yán)重異常時(shí),Windows服務(wù)程序?qū)⑾l(fā)送給推送代理服務(wù)器,代理服務(wù)器負(fù)責(zé)將消息推送出去。代理服務(wù)器接收到生理指數(shù)異常、存在危險(xiǎn)的信息后發(fā)布話題,所有訂閱該話題的手機(jī)客戶端將接收到推送的警告消息。服務(wù)器端整體結(jié)構(gòu)如圖4所示。

004.jpg

3 實(shí)現(xiàn)結(jié)果

  經(jīng)測(cè)試,在便攜式醫(yī)療設(shè)備采集數(shù)據(jù)并發(fā)送時(shí),Android端可以通過藍(lán)牙接收到便攜式醫(yī)療設(shè)備采集的生理指標(biāo),并且在服務(wù)器端有消息推送時(shí),Android端可以以消息通知的方式顯示接收的信息。實(shí)驗(yàn)結(jié)果如圖5所示。

005.jpg

4 結(jié)束語

  本文主要研究Android系統(tǒng)在遠(yuǎn)程醫(yī)療中的應(yīng)用,通過使用帶有Android系統(tǒng)的智能設(shè)備將便攜式醫(yī)療設(shè)備采集的數(shù)據(jù)進(jìn)行處理與發(fā)送。使用基于MQTT協(xié)議的推送系統(tǒng),對(duì)緊急情況進(jìn)行實(shí)時(shí)通知。結(jié)果表明,Android系統(tǒng)在遠(yuǎn)程醫(yī)療的數(shù)據(jù)采集與發(fā)送、緊急事件的通知方面具有良好的應(yīng)用前景。

參考文獻(xiàn)

  [1] 劉建,周保利.遠(yuǎn)程醫(yī)療發(fā)展和管理問題的探討[J].中華醫(yī)院管理雜志,2001,17(1):50-51.

  [2] 胡偉. Android系統(tǒng)架構(gòu)及其驅(qū)動(dòng)研究[J].廣州廣播電視大學(xué)學(xué)報(bào),2010,10(4):96-101.

  [3] 梁柱.Android應(yīng)用程序自動(dòng)化功能測(cè)試平臺(tái)的研究與開發(fā)[D].廣州:華南理工大學(xué),2012.

  [4] 黃彬華.Android 4.X應(yīng)用與開發(fā)實(shí)戰(zhàn)手冊(cè)(第2版)——適用Android 4.X~2.X[M].北京:清華大學(xué)出版社,2013.

  [5] 楊越譯.精通Android2[M].北京:人民郵電出版社,2010.

  [6] HUNKELER U, TRUONG H L, STANFORD-CLARK A. MQTT-S-a publish/subscribe protocol for wireless sensor networks[C]. 2008 3rd International Conference on Communication Systems Software and Middleware and Workshops, 2008:791-798.

  [7] IBM. MQTelemetryTransport[EB/OL]. (2013-06-05) [2015-06-01]. http://mqtt.org.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 99热久久国产精品一区 | 日本成本人视频 | 日韩激情无码免费毛片 | 久草在线视频中文 | 美女很黄很黄是免费的·无遮挡网站 | 成人免费看www网址入口 | 青青爽国产手机在线观看免费 | 久久久久久久久毛片精品 | 国产三级a三级三级天天 | 久久久免费精品视频 | 亚洲国产综合人成综合网站00 | 久久久久久在线 | 国产一区二区三区手机在线观看 | 国产成人精品午夜 | 亚洲人成亚洲人成在线观看 | 日韩高清在线播放不卡 | 久久精品亚洲一级毛片 | 成人无遮挡毛片免费看 | 狠色狠狠色狠狠狠色综合久久 | 久久视频6免费观看视频精品 | 亚洲第一页在线播放 | av18在线播放 | 性一级片 | 欧美激情久久久久久久大片 | 日本三级成人中文字幕乱码 | 人成午夜性刺激免费 | 另类在线 | 在线男人的天堂 | 久久se精品一区精品二区 | 日本欧美久久久久免费播放网 | 97免费视频在线 | 国产精品深爱在线 | 一级毛片视频免费 | 成年人在线视频观看 | 国产一级做a爰片久久毛片男 | 国产视频精品久久 | 玖玖精品视频在线观看 | 亚洲欧美日韩综合久久久久 | 欧美一级毛片免费观看视频 | 手机看片1024久久精品你懂的 | 一级毛片免费完整视频 |