姜 娜,張 雷
(1.華東師范大學資源與環(huán)境科學學院地理系,上海 200241;2.江蘇物聯(lián)網(wǎng)研究發(fā)展中心光電信息中心,江蘇 無錫 214100)
隨著社會經(jīng)濟的發(fā)展和人們生活水平的提高,人們越來越重視自身健康問題。在各項人體生理參數(shù)中,血氧飽和度(Oxygen Saturation,SO2)是重要的參數(shù)之一。過低的血氧飽和度在人體組織中將造成不可逆的缺氧性損傷[1-4]。脈搏血氧儀因其能夠?qū)崿F(xiàn)無創(chuàng)和實時連續(xù)地對該參數(shù)進行檢測[5],在臨床上得到了廣泛應用。但是在國內(nèi)民用市場上,由于價格、精度、無記憶性等問題,脈搏血氧儀并沒有得到推廣。本文據(jù)此設計一種便攜式脈搏血氧儀,并基于Android開發(fā)了手機客戶端軟件,以圖形化界面顯示各項參數(shù)并記錄到SD卡上,方便普通用戶使用,也提高了脈搏血氧儀的實用性。
Android系統(tǒng)的底層建立在Linux系統(tǒng)之上,該平臺由操作系統(tǒng)、中間件、用戶界面和應用軟件4層組成,它采用一種被稱為軟件疊層的方式進行構(gòu)建。這種軟件疊層結(jié)構(gòu)使得層與層之間相互分離,明確各層的分工。這種分工保證了層與層之間的低耦合,當下層的層內(nèi)或?qū)酉掳l(fā)生改變時,上層應用程序無須任何改變[6]。
本文利用Android在應用程序?qū)訉崿F(xiàn)客戶端的開發(fā)。Android從2.0版本開始支持藍牙,有關(guān)藍牙的類和接口都位于android.bluetooth包中,具體功能如表 1[7]所示。
表1 藍牙主要功能包
通過使用上述的藍牙工具包可以在Android平臺上開發(fā)相應的藍牙通信程序,實現(xiàn)上位機與下位機之間的通信。
本系統(tǒng)主要由前端數(shù)據(jù)采集設備和Android客戶端2部分組成。其中前端數(shù)據(jù)采集設備通過藍牙通信模塊將數(shù)據(jù)傳送給Android客戶端,客戶端程序接收到數(shù)據(jù)后對數(shù)據(jù)進行分析、繪圖、存儲,并把分析結(jié)果圖形化顯示。圖1是系統(tǒng)的總體架構(gòu)圖。
圖1 系統(tǒng)總體架構(gòu)圖
前端數(shù)據(jù)采集系統(tǒng)(脈搏血氧儀)由基于單片機的脈搏血氧儀來檢測人體脈搏、SPO2、IR、溫度值、高度值、警告位等幾項參數(shù)。本系統(tǒng)設計中前端數(shù)據(jù)采集系統(tǒng)的設計原理為:使用動態(tài)光譜的檢測算法、模數(shù)結(jié)合的采集控制系統(tǒng)來設計脈搏血氧儀,前端使用模擬系統(tǒng)采集信號,對信號做前期濾波放大預處理,經(jīng)過高精度AD轉(zhuǎn)換之后,使用數(shù)字濾波對信號作進一步處理,然后運用動態(tài)光譜的檢測算法對信號進行數(shù)據(jù)擬合。該系統(tǒng)的優(yōu)勢是實現(xiàn)算法相對簡單,精度高,具有抑制或克服個體差異和測量條件對檢測光譜影響的優(yōu)點。硬件結(jié)構(gòu)如圖2所示。
圖2 前端數(shù)據(jù)采集設備硬件結(jié)構(gòu)圖
在單片機控制下,紅光LED、紅外LED以一定的頻率打開和關(guān)閉,分別檢測出發(fā)射紅光、紅外和無光情況下的光強。然后經(jīng)過光電轉(zhuǎn)換電路轉(zhuǎn)為電壓值,該光電轉(zhuǎn)換電路要求抗噪聲性能強。轉(zhuǎn)換后的電壓經(jīng)過放大濾波以及高精度AD后進入單片機處理,經(jīng)過單片機處理、計算,將血氧飽和度和脈搏數(shù)在液晶中顯示出來。加速度傳感器用于檢測人體是否有摔傷狀況,藍牙模塊用于與客戶端通信。
Android客戶端軟件在此系統(tǒng)中接收來自前端數(shù)據(jù)采集系統(tǒng)采集到的各項生理參數(shù),并對此進行相應的解析分析,以可視化界面展示脈搏、SPO2、IR、溫度值、高度值等實時參數(shù)給用戶。軟件的操作流程如圖3所示。
圖3 軟件操作流程圖
在本系統(tǒng)的通信過程中,脈搏血氧儀作為藍牙通信的服務器端,開啟后自動監(jiān)聽連接請求,Android設備作為藍牙通信的客戶端主動連接SPP協(xié)議設備。具體實現(xiàn)如下[8-11]:
(1)通過在 AndroidManifest.xml添加:
以獲得BLUETOOTH使用許可。
(2)通過BluetoothAdapter核心類對本機藍牙模塊做基本配置,由startDiscovery()方法搜索藍牙設備。在BroadcastReceiver的onReceive()里取得搜索所得的藍牙設備信息。
(3)在用戶手動選擇脈搏血氧儀的MAC地址后,對所選設備建立一個BluetoothDevice對象并由BluetoothDevice衍生出BluetoothSocket,準備SOCKET來讀寫設備。
(4)通過 BluetoothSocket的 createRfcommSocket-ToServiceRecord()方法來選擇連接的協(xié)議/服務,這里用的是SPP(UUID:00001101-0000-1000-8000-00805F9B34FB)。從而實現(xiàn)藍牙客戶端和藍牙服務器端互聯(lián)。
客戶端通過 BluetoothSocket.getInputStream().read()函數(shù)接收上位機傳來的數(shù)據(jù),對其進行解析。接收的數(shù)據(jù)如圖4所示。
圖4 脈搏血氧儀采集的數(shù)據(jù)圖
數(shù)據(jù)存儲格式如圖4所示,每一條記錄以0x0D、0x0A結(jié)尾。在每條數(shù)據(jù)記錄中,數(shù)據(jù)和數(shù)據(jù)之間以0x20隔開。數(shù)據(jù)中包含:血氧飽和度、脈搏、SPO2、高度、溫度和警告位等數(shù)值。這些數(shù)據(jù)通過驗證模塊檢驗數(shù)據(jù)的長度、格式、數(shù)值范圍后,由File.write()函數(shù)寫入 SD 卡中[12-14]。
圖5 生理信息可視化成果圖
數(shù)據(jù)顯示分為3種不同的情況:(1)SPO2的參數(shù)值,因為其周期性變化性無法從數(shù)值直接判斷其準確性,所以這里通過定時器,每隔1秒時間從SD卡上讀取最新的200條記錄,將各條記錄中的SPO2數(shù)據(jù)按照時間順序存儲成android.graphics.Point的數(shù)組。并由 android.graphics.Canvas.drawLine()方法連接相鄰各點,從而得到動態(tài)連續(xù)變化曲線圖。(2)溫度和脈搏等不是經(jīng)常變換的參數(shù)值,每間隔3秒計算最新20條數(shù)據(jù)的平均值。(3)警告位,由于該數(shù)值是瞬時產(chǎn)生的,在收到數(shù)據(jù)的時候,立刻顯示在客戶端界面上。通過warning.setImageResource(R.drawable.red)語句設置其不同狀態(tài)下的顏色。生理信息可視化成果圖如圖5所示。
通過圖5用戶就可以方便快捷地了解自身的健康狀況,及時發(fā)現(xiàn)自身的健康隱患。
本系統(tǒng)實現(xiàn)了用戶實時觀察自己的健康狀況的目標。通過本系統(tǒng)普通用戶可以隨時隨地了解自身的健康狀況,尤其對心臟病等患者具有相當重要的提醒功能。將來,隨著智能醫(yī)療的不斷發(fā)展,這些數(shù)據(jù)不只是存儲在手機的SD卡上,還能將異常數(shù)據(jù)通過手機實時傳輸?shù)结t(yī)院的信息平臺上,讓醫(yī)生實時知道用戶的身體狀況,這是進一步的研究內(nèi)容。
:
[1]孫迎,宋健.基于Android的遠程心電檢測系統(tǒng)[J].計算機應用與軟件,2013,30(4):326-329.
[2]賈寶森,吳東宇,張宏.靜吸復合麻醉下老年患者腦氧飽和度與術(shù)后認知功能變化之間的關(guān)系[J].解放軍醫(yī)學雜志,2005,30(9):792-795.
[3]Werner Baulig,Alexander Dullenkopf,Andreas Kobler,et al.Accuracy of continuous central venous oxygen saturation monitoring in patients undergoing cardiac surgery[J].Journal of Clinical Monitoring and Computing,2008,22(3):183-188.
[4]Michael Sander,Claudia D Spies,Achim Foer,et al.A-greement of central venous saturation and mixed venous saturation in cardiac surgery patients[J].Intensive Care Medicine,2007,33(10):1719-1725.
[5]蒲莉娜,潘頌欣,林宛華,等.脈搏血氧飽和度測量精度的影響因素分析[J].中國醫(yī)療器械信息,2010,16(6):11-15.
[6]李剛.瘋狂Android講義[M].北京:電子工業(yè)出版社,2011:3-4.
[7]熊獅,吳效明.基于Android系統(tǒng)的生理數(shù)據(jù)藍牙傳輸技術(shù)[J].中國醫(yī)學物理學雜志,2012,29(6):3801-3803.
[8]陳志崇,張祺.基于Android的藍牙通信接口[J].電子世界,2013(3):16-17.
[9]馬永亮,柯宏力.基于Android平臺藍牙一對多聊天系統(tǒng)的設計與實現(xiàn)[DB/OL].http://www.paper.edu.cn/releasepaper/content/201111-520,2011-11-29.
[10]張凌,姚萌.藍牙通信技術(shù)的模型解析與開發(fā)[J].電子產(chǎn)品世界,2002(20):45-47.
[11]鄒川陽.Android平臺中藍牙設備的應用[J].軟件導刊,2012,11(7):132-133.
[12]李浩.Google Android手機嵌入式系統(tǒng)的研究與開發(fā)[D].成都:四川大學,2010.
[13]黨李成.基于Google Android智能手機平臺的研究與應用[D].合肥:安徽大學,2010.
[14]王間,張曉煒,楊錦,等.基于SD卡的智能車調(diào)試系統(tǒng)設計[J].工業(yè)控制計算機,2010(8):48-49.