趙大磊,張正平,賀 松,陸安江
(貴州大學(xué) 電子信息學(xué)院,貴州 貴陽(yáng) 550025)
目前,許多地區(qū)都存在人口老齡化、空巢老人的問(wèn)題,如何對(duì)老年人身體狀況持續(xù)監(jiān)測(cè),保證老年人的身體健康,是我國(guó)的一個(gè)社會(huì)和醫(yī)療難題。另外隨著社會(huì)經(jīng)濟(jì)的發(fā)展和人們生活水平的提高,人們的生活節(jié)奏越來(lái)越快,壓力越來(lái)越大,加上環(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)通信終端的使用越來(lái)越普及,利用便攜的智能終端設(shè)備輔助移動(dòng)醫(yī)療監(jiān)測(cè)也成為國(guó)內(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ì)常見(jiàn)的人體生理指標(biāo)進(jìn)行監(jiān)測(cè)。
系統(tǒng)劃分為三大模塊:人體局域網(wǎng)、安卓移動(dòng)終端和健康監(jiān)測(cè)中心。系統(tǒng)總體結(jié)構(gòu)模型如圖1所示。
圖1 基于移動(dòng)互聯(lián)網(wǎng)與Android終端的健康監(jiān)測(cè)系統(tǒng)模型
典型的BAN[2]的個(gè)人健康監(jiān)護(hù)系統(tǒng)包含多個(gè)穿戴在人體上的體征傳感器節(jié)點(diǎn)。每個(gè)傳感器節(jié)點(diǎn)負(fù)責(zé)采集體征參數(shù),采集數(shù)據(jù)后發(fā)送到客戶(hù)端。使用的傳感器一般會(huì)要求指定其重要生理參數(shù)的精度、低功耗信號(hào)處理的水平,并要求具備無(wú)線(xiàn)連接功能。
Android設(shè)備上安裝系統(tǒng)客戶(hù)端,主要功能:(1)通過(guò)低功耗無(wú)線(xiàn)或者USB有線(xiàn)的方式發(fā)送請(qǐng)求數(shù)據(jù)的命令至傳感器,接收數(shù)據(jù)后果顯示結(jié)果;(2)將初步處理的采集數(shù)據(jù)通過(guò)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ù)。
健康中心對(duì)被監(jiān)測(cè)者的基本信息和生理數(shù)據(jù)進(jìn)行存儲(chǔ)和管理,通過(guò)調(diào)閱實(shí)時(shí)數(shù)據(jù),綜合歷史數(shù)據(jù),給出建議或診斷。主要包含網(wǎng)絡(luò)服務(wù)、電子檔案和數(shù)據(jù)分析三部分。
衛(wèi)生信息交換標(biāo)準(zhǔn)(Health Level 7)[3]是醫(yī)療領(lǐng)域不同應(yīng)用之間電子傳輸?shù)膮f(xié)議。HL7匯集了不同廠(chǎng)商用來(lái)設(shè)計(jì)應(yīng)用軟件之間界面的標(biāo)準(zhǔn)格式,允許各個(gè)醫(yī)療機(jī)構(gòu)在異構(gòu)系統(tǒng)之間進(jìn)行數(shù)據(jù)交互。其宗旨是開(kāi)發(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ù)庫(kù)和部分程序數(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ù)庫(kù)。然后,開(kāi)發(fā)一種代碼生成器,它根據(jù)規(guī)則數(shù)據(jù)庫(kù)的內(nèi)容自動(dòng)生成某一種計(jì)算機(jī)語(yǔ)言代碼。最后,可將這些代碼加入實(shí)際應(yīng)用的程序框架中。
藍(lán)牙技術(shù)[4-5]是一種無(wú)線(xiàn)數(shù)據(jù)與語(yǔ)音通信的開(kāi)放性全球性規(guī)范,它以低成本的近距離無(wú)線(xiàn) (一般為10 m)連接為基礎(chǔ),為固定與移動(dòng)設(shè)備通信環(huán)境建立一個(gè)特別連接。特別是藍(lán)牙4.0標(biāo)準(zhǔn),提供了用于保健及健康、個(gè)人設(shè)備、汽車(chē)及自動(dòng)化行業(yè)的低功率傳感設(shè)備和新的網(wǎng)絡(luò)服務(wù)的低耗能技術(shù)。
Android自SDK2.0開(kāi)始支持Linux官方藍(lán)牙協(xié)議棧 (BlueZ),新版本的Android 4.3支持Bluetooth 4.0 Low Energy。 Android應(yīng)用框架層為藍(lán)牙通信提供了大量API,通過(guò)這些API可以實(shí)現(xiàn)藍(lán)牙設(shè)備間的無(wú)線(xiàn)連接,建立點(diǎn)到點(diǎn)、點(diǎn)到多點(diǎn)通信模式。
USB,中文簡(jiǎn)稱(chēng)為“通串線(xiàn)”,是一個(gè)外部總線(xiàn)標(biāo)準(zhǔn),用于規(guī)范主機(jī)與外設(shè)的連接和通信[6-7]。USB版本經(jīng)歷了多年的發(fā)展,已經(jīng)發(fā)展為3.1版本。
Android通過(guò)兩種模式來(lái)支持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包下。
客戶(hù)端軟件的主要作用包括:與體征傳感器間建立通信鏈路,接收、保存來(lái)自傳感器、監(jiān)測(cè)中心服務(wù)器的數(shù)據(jù),發(fā)送數(shù)據(jù)及結(jié)果的顯示,以及與用戶(hù)間的互動(dòng)。
鑒于生理體征采集傳感器的型號(hào)眾多、通信形式不一,在此考慮三種常見(jiàn)的數(shù)據(jù)采集方式,體征數(shù)據(jù)采集流程如圖2所示。
4.1.1 USB采集方式
圖2 生理特征數(shù)據(jù)采集流程圖
首先為了獲得USB設(shè)備掛載的系統(tǒng)通知,需要在Mainfest文件中添加過(guò)濾器之后使用getDeviceList()方法獲得一個(gè)包含所有已掛載的USB設(shè)備的HashMap,調(diào)用requestPermission()方法獲得設(shè)備的使用權(quán)限。之后確定外設(shè)的UsbInterface以及用于與這個(gè)接口交互的合適的UsbEndpoint,成功后在這個(gè)端點(diǎn)上打開(kāi)連接UsbDevice-Connection。為避免阻塞UI主線(xiàn)程,在新線(xiàn)程中使用方法bulkTransfer()或者controlTransfer()傳輸數(shù)據(jù)。異步地發(fā)送數(shù)據(jù)時(shí),使用類(lèi)UsbRequest來(lái)初始化(initialize)和序列化(queue)一個(gè)異步的請(qǐng)求,然后調(diào)用方法requestWait()等待請(qǐng)求。
4.1.2 藍(lán)牙采集方式
藍(lán)牙作為低成本的近距離的無(wú)線(xiàn)標(biāo)準(zhǔn)廣泛使用。Android提供了大量可以管理藍(lán)牙通信的API。
調(diào)用mBluetoothAdapter=BluetoothAdapter.getDefault-Adapter()方法獲得本地藍(lán)牙適配器,if(mBluetoothAdapter!=null),說(shuō)明Android設(shè)備支持藍(lán)牙。使用startDiscovery()方法查找新的藍(lán)牙設(shè)備、getBondedDevices()獲取已經(jīng)綁定的藍(lán)牙設(shè)備,構(gòu)造ArrayAdapter來(lái)存儲(chǔ)這些藍(lán)牙設(shè)備。
通過(guò)BluetoothSocket的createRfcommSocketToService Record()方法傳入 UUID,為避免阻塞UI主線(xiàn)程,在新線(xiàn)程中創(chuàng)建BluetoothSocket對(duì)象,并通過(guò)connect方法建立連接,使用 BluetoothSocket的 getInputStream()和 getOutput-Stream()方法來(lái)讀寫(xiě)藍(lán)牙設(shè)備。
4.1.3 人工記錄
一些老式的生理特征采集設(shè)備不能通過(guò)無(wú)線(xiàn)或者有線(xiàn)的方式與Android客戶(hù)端相連,可以采取人工記錄的方式錄入特征數(shù)據(jù),傳輸?shù)奖O(jiān)測(cè)中心。
在HL7框架中,ORU消息提供患者的臨床數(shù)據(jù)的傳輸,消息段有:(1)MSH:定義消息的來(lái)源、目的、目標(biāo)和某些語(yǔ)法的細(xì)節(jié)。(2)PID:用于記錄患者的基本信息,如身份證號(hào)碼、性別、住址、聯(lián)系電話(huà)等。(3)OBR:用于傳輸檢驗(yàn)、觀(guān)察、診斷信息。ORU碼格式如圖3所示。
圖3 ORU碼格式
現(xiàn)在的主流移動(dòng)設(shè)備(如 Android、iPhone等)都使用SQLite[4]作為復(fù)雜數(shù)據(jù)的存儲(chǔ)引擎,客戶(hù)端系統(tǒng)使用 SQLite存儲(chǔ)采集到的生理體征數(shù)據(jù)。使用openOrCreateDatabase()方法創(chuàng)建或打開(kāi)數(shù)據(jù)庫(kù),用 execSQL()和 rawQuery()方法添加、修改采集到的數(shù)據(jù)。
將構(gòu)建完畢HL7的消息轉(zhuǎn)換為JSON格式,通過(guò)HTTP連接方式將數(shù)據(jù)發(fā)送到監(jiān)測(cè)中心服務(wù)器。在發(fā)送前,通過(guò) getNetworkInfo()、getDetailedState()方法判斷 Android設(shè)備處于何種移動(dòng)網(wǎng)絡(luò)狀態(tài)下,供用戶(hù)控制。監(jiān)測(cè)中心對(duì)被監(jiān)測(cè)者的基本信息和生理數(shù)據(jù)進(jìn)行存儲(chǔ)和管理,通過(guò)調(diào)閱實(shí)時(shí)數(shù)據(jù)、綜合歷史數(shù)據(jù),給出建議或診斷。
為直觀(guān)顯示出數(shù)據(jù)趨勢(shì),歷史記錄模塊采用了開(kāi)源圖形庫(kù)AChartEngine[8],用于繪制多種圖表。線(xiàn)條顏色、點(diǎn)形狀的不同,可以區(qū)分顯示的不同內(nèi)容。如圖4所示。
圖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)域的低功耗器件越來(lái)越多,移動(dòng)互聯(lián)網(wǎng)的帶寬日益增大,移動(dòng)醫(yī)療必將成為一個(gè)新趨勢(shì)。
[1]趙瑞芹,宋振峰.亞健康問(wèn)題的研究進(jìn)展[J].國(guó)外醫(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]齊國(guó)隆,孔令人,鄒宗峰.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]熊獅,吳效明.基于A(yíng)ndroid系統(tǒng)的生理數(shù)據(jù)藍(lán)牙傳輸技術(shù)[J].中國(guó)醫(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.