摘 要: 伴隨著通信技術(shù)的發(fā)展,方便快捷的移動(dòng)互聯(lián)網(wǎng)及功能日益豐富智能終端在生活中扮演的角色越發(fā)重要。在人體局域網(wǎng)和移動(dòng)互聯(lián)網(wǎng)的基礎(chǔ)上,利用使用廣泛的Android終端智能平臺(tái),設(shè)計(jì)開發(fā)一種針對(duì)人的生理體征數(shù)據(jù)采集的健康監(jiān)測(cè)系統(tǒng)。系統(tǒng)結(jié)合HL7醫(yī)學(xué)信息傳輸標(biāo)準(zhǔn),以一種新型的醫(yī)療方式探索移動(dòng)應(yīng)用軟件在醫(yī)療領(lǐng)域的發(fā)展。Android終端作為數(shù)據(jù)采集控制端和監(jiān)控客戶端,通過移動(dòng)互聯(lián)網(wǎng)將采集的數(shù)據(jù)上傳至服務(wù)器,實(shí)現(xiàn)監(jiān)測(cè)中心對(duì)數(shù)據(jù)的監(jiān)測(cè)。
關(guān)鍵詞: Android; 移動(dòng)互聯(lián)網(wǎng); 健康監(jiān)測(cè); HL7; 人體局域網(wǎng)
目前,許多地區(qū)都存在人口老齡化、空巢老人的問題,如何對(duì)老年人身體狀況持續(xù)監(jiān)測(cè),保證老年人的身體健康,是我國的一個(gè)社會(huì)和醫(yī)療難題。另外隨著社會(huì)經(jīng)濟(jì)的發(fā)展和人們生活水平的提高,人們的生活節(jié)奏越來越快,壓力越來越大,加上環(huán)境的污染等因素,以至于很多人(據(jù)2010年統(tǒng)計(jì)數(shù)據(jù),城市白領(lǐng)大約有76%)處于“亞健康”狀態(tài),引發(fā)血壓升高、心率增快、加速血管硬化等的可能性增大[1]。隨著3G、4G技術(shù)的成熟,WiFi熱點(diǎn)的日益增多,高速率的移動(dòng)數(shù)字傳輸帶寬已經(jīng)成為現(xiàn)實(shí);同時(shí)智能移動(dòng)通信終端的使用越來越普及,利用便攜的智能終端設(shè)備輔助移動(dòng)醫(yī)療監(jiān)測(cè)也成為國內(nèi)外的關(guān)注點(diǎn)。本系統(tǒng)結(jié)合Android操作系統(tǒng)移動(dòng)設(shè)備和移動(dòng)網(wǎng)絡(luò)的特點(diǎn)及優(yōu)勢(shì),以血壓監(jiān)測(cè)為案例,研究如何針對(duì)常見的人體生理指標(biāo)進(jìn)行監(jiān)測(cè)。
1 系統(tǒng)概述
系統(tǒng)劃分為三大模塊:人體局域網(wǎng)、安卓移動(dòng)終端和健康監(jiān)測(cè)中心。系統(tǒng)總體結(jié)構(gòu)模型如圖1所示。
1.1 人體局域網(wǎng)(BAN)
典型的BAN[2]的個(gè)人健康監(jiān)護(hù)系統(tǒng)包含多個(gè)穿戴在人體上的體征傳感器節(jié)點(diǎn)。每個(gè)傳感器節(jié)點(diǎn)負(fù)責(zé)采集體征參數(shù),采集數(shù)據(jù)后發(fā)送到客戶端。使用的傳感器一般會(huì)要求指定其重要生理參數(shù)的精度、低功耗信號(hào)處理的水平,并要求具備無線連接功能。
1.2 Android設(shè)備
Android設(shè)備上安裝系統(tǒng)客戶端,主要功能:(1)通過低功耗無線或者USB有線的方式發(fā)送請(qǐng)求數(shù)據(jù)的命令至傳感器,接收數(shù)據(jù)后果顯示結(jié)果;(2)將初步處理的采集數(shù)據(jù)通過3G、WiFi等移動(dòng)互聯(lián)網(wǎng)的方式發(fā)送至監(jiān)測(cè)中心服務(wù)器,并接收監(jiān)測(cè)中心反饋的信息。包含以下部分:數(shù)據(jù)采集服務(wù)、數(shù)據(jù)初步處理、結(jié)果顯示和網(wǎng)絡(luò)服務(wù)。
1.3 健康監(jiān)測(cè)中心
健康中心對(duì)被監(jiān)測(cè)者的基本信息和生理數(shù)據(jù)進(jìn)行存儲(chǔ)和管理,通過調(diào)閱實(shí)時(shí)數(shù)據(jù),綜合歷史數(shù)據(jù),給出建議或診斷。主要包含網(wǎng)絡(luò)服務(wù)、電子檔案和數(shù)據(jù)分析三部分。
2 HL7簡(jiǎn)介
衛(wèi)生信息交換標(biāo)準(zhǔn)(Health Level 7)[3]是醫(yī)療領(lǐng)域不同應(yīng)用之間電子傳輸?shù)膮f(xié)議。HL7匯集了不同廠商用來設(shè)計(jì)應(yīng)用軟件之間界面的標(biāo)準(zhǔn)格式,允許各個(gè)醫(yī)療機(jī)構(gòu)在異構(gòu)系統(tǒng)之間進(jìn)行數(shù)據(jù)交互。其宗旨是開發(fā)和研制醫(yī)院數(shù)據(jù)信息傳輸協(xié)議和標(biāo)準(zhǔn),規(guī)范臨床醫(yī)學(xué)和管理信息格式,降低醫(yī)院信息系統(tǒng)互連的成本,提高醫(yī)院信息系統(tǒng)之間數(shù)據(jù)信息共享的程度。
在HL7通信協(xié)議中,消息(Message)是數(shù)據(jù)交換的基本單位。HL7的消息是自動(dòng)生成的,它將HL7標(biāo)準(zhǔn)文檔自動(dòng)轉(zhuǎn)化為一個(gè)HL7規(guī)則數(shù)據(jù)庫和部分程序數(shù)據(jù)結(jié)構(gòu)代碼。實(shí)現(xiàn)一個(gè)通信標(biāo)準(zhǔn)的具體工作是生成數(shù)據(jù)結(jié)構(gòu),以及實(shí)現(xiàn)一個(gè)構(gòu)造器(Builder)和一個(gè)解析器(Parser)。數(shù)據(jù)結(jié)構(gòu)表現(xiàn)了標(biāo)準(zhǔn)中各個(gè)數(shù)據(jù)對(duì)象的相互關(guān)系。構(gòu)造器將數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)轉(zhuǎn)化成能在電子數(shù)據(jù)交換媒介中傳輸?shù)臄?shù)據(jù)串。而解析器能夠?qū)?shù)據(jù)串解析還原原數(shù)據(jù)結(jié)構(gòu)。HL7標(biāo)準(zhǔn)是一個(gè)文本結(jié)構(gòu)的文檔。首先,利用一些文字處理工具將文檔中的各個(gè)數(shù)據(jù)定義抽取成數(shù)據(jù)結(jié)構(gòu),再將結(jié)構(gòu)的形式存入預(yù)先定義的HL7規(guī)則數(shù)據(jù)庫。然后,開發(fā)一種代碼生成器,它根據(jù)規(guī)則數(shù)據(jù)庫的內(nèi)容自動(dòng)生成某一種計(jì)算機(jī)語言代碼。最后,可將這些代碼加入實(shí)際應(yīng)用的程序框架中。
3 Android SDK 對(duì)藍(lán)牙和USB的支持
3.1 低功耗藍(lán)牙通信技術(shù)及Android 藍(lán)牙APIs
藍(lán)牙技術(shù)[4-5]是一種無線數(shù)據(jù)與語音通信的開放性全球性規(guī)范, 它以低成本的近距離無線(一般為10 m)連接為基礎(chǔ),為固定與移動(dòng)設(shè)備通信環(huán)境建立一個(gè)特別連接。特別是藍(lán)牙4.0標(biāo)準(zhǔn),提供了用于保健及健康、個(gè)人設(shè)備、汽車及自動(dòng)化行業(yè)的低功率傳感設(shè)備和新的網(wǎng)絡(luò)服務(wù)的低耗能技術(shù)。
Android自SDK2.0開始支持Linux官方藍(lán)牙協(xié)議棧(BlueZ),新版本的Android 4.3支持Bluetooth 4.0 Low Energy。 Android應(yīng)用框架層為藍(lán)牙通信提供了大量API,通過這些API可以實(shí)現(xiàn)藍(lán)牙設(shè)備間的無線連接,建立點(diǎn)到點(diǎn)、點(diǎn)到多點(diǎn)通信模式。
3.2 USB技術(shù)及Android USB APIs
USB,中文簡(jiǎn)稱為“通串線”,是一個(gè)外部總線標(biāo)準(zhǔn),用于規(guī)范主機(jī)與外設(shè)的連接和通信[6-7]。USB版本經(jīng)歷了多年的發(fā)展,已經(jīng)發(fā)展為3.1版本。
Android通過兩種模式來支持Android USB外設(shè):USB外設(shè)模式和USB主機(jī)模式。在 USB外設(shè)模式下,外部USB 硬件充當(dāng) USB 主機(jī),這種模式給予不具備主機(jī)功能的 Android 設(shè)備以與USB硬件交互的能力。主機(jī)模式下,裝有 Android 的設(shè)備扮演主機(jī)的角色。Android SDK對(duì)USB的支持APIs包含在android.hardware.usb包下。
4 系統(tǒng)實(shí)現(xiàn)
客戶端軟件的主要作用包括:與體征傳感器間建立通信鏈路,接收、保存來自傳感器、監(jiān)測(cè)中心服務(wù)器的數(shù)據(jù),發(fā)送數(shù)據(jù)及結(jié)果的顯示,以及與用戶間的互動(dòng)。
4.1 生理特征數(shù)據(jù)采集
鑒于生理體征采集傳感器的型號(hào)眾多、通信形式不一,在此考慮三種常見的數(shù)據(jù)采集方式,體征數(shù)據(jù)采集流程如圖2所示。
4.1.1 USB采集方式
首先為了獲得USB設(shè)備掛載的系統(tǒng)通知,需要在Mainfest文件中添加過濾器之后使用getDeviceList()方法獲得一個(gè)包含所有已掛載的USB設(shè)備的HashMap,調(diào)用requestPermission()方法獲得設(shè)備的使用權(quán)限。之后確定外設(shè)的UsbInterface 以及用于與這個(gè)接口交互的合適的UsbEndpoint,成功后在這個(gè)端點(diǎn)上打開連接UsbDeviceConnection。為避免阻塞UI主線程,在新線程中使用方法bulkTransfer() 或者controlTransfer() 傳輸數(shù)據(jù)。異步地發(fā)送數(shù)據(jù)時(shí),使用類UsbRequest 來初始化(initialize)和序列化(queue)一個(gè)異步的請(qǐng)求, 然后調(diào)用方法requestWait()等待請(qǐng)求?! ?br/>4.1.2 藍(lán)牙采集方式
藍(lán)牙作為低成本的近距離的無線標(biāo)準(zhǔn)廣泛使用。Android提供了大量可以管理藍(lán)牙通信的API。
調(diào)用mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter()方法獲得本地藍(lán)牙適配器,if(mBluetoothAdapter != null),說明Android設(shè)備支持藍(lán)牙。使用startDiscovery()方法查找新的藍(lán)牙設(shè)備、getBondedDevices()獲取已經(jīng)綁定的藍(lán)牙設(shè)備,構(gòu)造ArrayAdapter來存儲(chǔ)這些藍(lán)牙設(shè)備。
通過BluetoothSocket的createRfcommSocketToService
Record()方法傳入U(xiǎn)UID,為避免阻塞UI主線程,在新線程中創(chuàng)建BluetoothSocket對(duì)象,并通過connect方法建立連接,使用BluetoothSocket的getInputStream()和getOutputStream()方法來讀寫藍(lán)牙設(shè)備。
4.1.3 人工記錄
一些老式的生理特征采集設(shè)備不能通過無線或者有線的方式與Android客戶端相連,可以采取人工記錄的方式錄入特征數(shù)據(jù),傳輸?shù)奖O(jiān)測(cè)中心。
4.2 HL7消息構(gòu)建存儲(chǔ)上傳及監(jiān)測(cè)中心接收
在HL7框架中,ORU消息提供患者的臨床數(shù)據(jù)的傳輸,消息段有:(1)MSH:定義消息的來源、目的、目標(biāo)和某些語法的細(xì)節(jié)。(2)PID:用于記錄患者的基本信息,如身份證號(hào)碼、性別、住址、聯(lián)系電話等。(3)OBR:用于傳輸檢驗(yàn)、觀察、診斷信息。ORU碼格式如圖3所示。
現(xiàn)在的主流移動(dòng)設(shè)備(如Android、iPhone等)都使用SQLite[4]作為復(fù)雜數(shù)據(jù)的存儲(chǔ)引擎,客戶端系統(tǒng)使用SQLite存儲(chǔ)采集到的生理體征數(shù)據(jù)。使用openOrCreateDatabase()方法創(chuàng)建或打開數(shù)據(jù)庫,用execSQL()和rawQuery()方法添加、修改采集到的數(shù)據(jù)。
將構(gòu)建完畢HL7的消息轉(zhuǎn)換為JSON格式,通過HTTP連接方式將數(shù)據(jù)發(fā)送到監(jiān)測(cè)中心服務(wù)器。在發(fā)送前, 通過getNetworkInfo()、getDetailedState()方法判斷Android設(shè)備處于何種移動(dòng)網(wǎng)絡(luò)狀態(tài)下,供用戶控制。監(jiān)測(cè)中心對(duì)被監(jiān)測(cè)者的基本信息和生理數(shù)據(jù)進(jìn)行存儲(chǔ)和管理,通過調(diào)閱實(shí)時(shí)數(shù)據(jù)、綜合歷史數(shù)據(jù),給出建議或診斷。
4.3 客戶端體征數(shù)據(jù)顯示
為直觀顯示出數(shù)據(jù)趨勢(shì),歷史記錄模塊采用了開源圖形庫AChartEngine[8],用于繪制多種圖表。線條顏色、點(diǎn)形狀的不同,可以區(qū)分顯示的不同內(nèi)容。如圖4所示。
該健康監(jiān)測(cè)系統(tǒng)完成了被監(jiān)測(cè)者的特征數(shù)據(jù)采集及管理,但仍有許多功能需要完善,比如監(jiān)測(cè)中心對(duì)數(shù)據(jù)的智能分析、與醫(yī)療機(jī)構(gòu)信息系統(tǒng)互聯(lián)互通,這樣就能夠?yàn)楦嗟娜颂峁┙】抵С植p少醫(yī)生的工作量。隨著應(yīng)用于遠(yuǎn)程控制醫(yī)療、保健及運(yùn)動(dòng)感應(yīng)器等領(lǐng)域的低功耗器件越來越多,移動(dòng)互聯(lián)網(wǎng)的帶寬日益增大,移動(dòng)醫(yī)療必將成為一個(gè)新趨勢(shì)。
參考文獻(xiàn)
[1] 趙瑞芹,宋振峰.亞健康問題的研究進(jìn)展[J].國外醫(yī)學(xué)(社會(huì)醫(yī)學(xué)分冊(cè)),2002(1):10-13.
[2] KARULF E. Body area networks(BAN)[EB/OL].(2008-04-23)[2013-12-22].http://www.cse.wustl.edu/~jain/cse574-08/ftp/ban/index.html.
[3] 齊國隆,孔令人,鄒宗峰.HL7在公共衛(wèi)生信息系統(tǒng)中的應(yīng)用[J].現(xiàn)代預(yù)防醫(yī)學(xué),2006(06):962-964.
[4] Android developers[EB/OL].(2013-05-20)[2013-12-22]. http://developer.android.com/intl/zh-cn/guide/components/index.html.
[5] 熊獅,吳效明. 基于Android系統(tǒng)的生理數(shù)據(jù)藍(lán)牙傳輸技術(shù)[J].中國醫(yī)學(xué)物理學(xué)雜志,2012(6):3801-3803.
[6] 呂超,張玉霞,王立欣.USB接口高速數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2009(5):1003-1012.
[7] 蘇維嘉,唐宇,楊靜.基于Android平臺(tái)的USB數(shù)據(jù)采集系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用, 2012(8):39-42.
[8] AChartEngine Javadoc[EB/OL].(2013-09-10)[2013-12-22].http://ach-artengine.org.