聶 雄,黃曉冬,2,韋海燕,2,馮敏瑜
(1.廣西大學(xué) 機械工程學(xué)院,廣西 南寧 530004;2.南寧學(xué)院 智能制造學(xué)院,廣西 南寧 530200)
對于下肢運動功能障礙的患者,在進行下肢康復(fù)訓(xùn)練時需要實時采集其心率、血壓、血氧以及運動狀態(tài)等數(shù)據(jù)[1],從而適時調(diào)節(jié)下肢康復(fù)訓(xùn)練的強度及調(diào)整訓(xùn)練模式,并實現(xiàn)患者與家屬、醫(yī)院三者之間的遠程交互,達到遠程監(jiān)控的目的,因此設(shè)計適用的生理信息監(jiān)測裝置是當(dāng)前亟待解決的問題。
國內(nèi)外研究人員對各種生理信息監(jiān)測裝置進行了大量的研究。Hsu Chien-Chin 等[2]研究了一種可穿戴的12 導(dǎo)聯(lián)心電圖監(jiān)測系統(tǒng),方便用戶輕松佩戴和拆卸,在步行時可準(zhǔn)確地提供質(zhì)量良好的ECG 信號,并能檢測出心肌缺血、安裝起搏器、室性早搏患者的ECG 特征;Majumder Sumit 等[3]研究了一種非接觸式的可穿戴心電監(jiān)測系統(tǒng),基于電容耦合原理,在心電數(shù)據(jù)采集器和人體皮膚之間隔著紡織衣物也可以采集心電信號,并通過藍牙無線通信進行數(shù)據(jù)傳輸實現(xiàn)數(shù)據(jù)處理、存儲與顯示;2019 年賈寧等[4]利用終端應(yīng)用主要為Android APP、IOS APP 和微信小程序,醫(yī)療信息處理服務(wù)器采用Hadoop 結(jié)構(gòu),使用Spark 計算框架,利用分布式數(shù)據(jù)庫SequoiaDB 存儲信息,設(shè)計基于可穿戴設(shè)備的個性化健康監(jiān)管平臺。將專業(yè)醫(yī)療信息與物聯(lián)網(wǎng)技術(shù)、大數(shù)據(jù)技術(shù)完美融合在一起。2020 年李超[5]設(shè)計了一款融合多種健康家庭式監(jiān)護系統(tǒng)的APP 比如血壓計、血糖儀、血氧儀、心電監(jiān)護儀等設(shè)備以及服務(wù)器。2022 年任郁苗等[6]設(shè)計采用STM32F103ZET6 作為系統(tǒng)嵌入式芯片,準(zhǔn)確、快速測出人體的生理參數(shù)信息。
歸類分析目前的多參數(shù)監(jiān)護儀:一是固定式床邊監(jiān)護儀,這種監(jiān)護儀功能強大、性能穩(wěn)定性好,但便攜性差、專業(yè)技能要求高。二是以單片機為核心的監(jiān)護儀,雖然小巧適合攜帶,但或者監(jiān)測多生理參數(shù)少、功能不全,或者無無線通訊功能等等。
為了能夠便利、有效、準(zhǔn)確地監(jiān)測患者在下肢康復(fù)訓(xùn)練時的運動狀態(tài)和生理信息,設(shè)計一款基于Android 系統(tǒng),采用腕式可穿戴式智能設(shè)備進行數(shù)據(jù)采集,運用華為HiHealthKit 運動健康的APP 軟件,不需要自行開發(fā)和設(shè)計終端設(shè)備,簡單方便。
要設(shè)計可以實現(xiàn)華為運動健康端側(cè)技術(shù)訪問的Android APP,需要通過從系統(tǒng)接入提供的開發(fā)平臺、使用簡易性等對比選擇使用Android Studio 軟件進行本課題的開發(fā)工作。
該平臺搭建的方法[7]:利用jdk(JAVA development kit)JAVA 開發(fā)工具包;設(shè)定基于intelliJ IDEA的Android 集成開發(fā)環(huán)境Android Studio,更新SDK;適配手機驅(qū)動,配置Android Studio。具體是通過可穿戴智能手環(huán)測量經(jīng)過藍牙傳輸后得到本地數(shù)據(jù),采用集成SDK 的方式,將HiHealth kit 接口包集成到開發(fā)的APP 內(nèi)部,通過HiHealth kit JAVA 接口,用戶授權(quán)APP 可獲取華為運動健康A(chǔ)PP 上的本地用戶數(shù)據(jù),或?qū)⑦@些數(shù)據(jù)寫入華為HiHealth 開放平臺。APP 請求用戶授權(quán)交互途徑和用戶授權(quán)界面如圖1。
圖1 用戶、三方APP、華為運動健康A(chǔ)PP 三者交互
使用Android Studio 軟件進行Android 應(yīng)用開發(fā)中至為關(guān)鍵的一點使用布局,接著就是框架設(shè)計。
(1)華為HiHealth kit 接口包。通過調(diào)用華為HiHealth kit 接口包里的API 從而完成與HiHealth 平臺的對接,獲得運動健康A(chǔ)PP 提供的業(yè)務(wù)服務(wù),如圖2所示。
圖2 三方APP、HiHealthkit 二者交互圖
(2)華為HiHealth kit 接口包的接入。為了在Android Studio 軟件中在本設(shè)計工程能夠調(diào)用HiHealth kit 接口包,將HiHealth kit 接口包拷貝至工程下的APPlibs 目錄中,然后添加HiHealth kit 接口包的JAR 包依賴,在工程的appuild.gradle 文件的dependencies 中添加代碼:implementation fileT -ree(dir:'libs',include:['*.jar'])。
(3)華為HiHealth kit 的類及其描述。在導(dǎo)入HiHealth kit 接口包后,使用它時需調(diào)用它的工具類。HiHealth kit 接口包的類有HiHealthAuth、HiHealth-DataType、HiHealthData、等七種,分別起著管理三方授權(quán)及用戶讀寫訪問權(quán)限、管理對象存儲、定義了Hi-Health 開放的數(shù)據(jù)類型和數(shù)據(jù)對象等。編寫程序?qū)崿F(xiàn)管理三方授權(quán)及用戶讀寫訪問權(quán)限、管理對象存儲等。
(4)華為HiHealth kit 部分接口應(yīng)用實例
1)startRealTimeSportData:開始監(jiān)聽實時運動數(shù)據(jù)
A.接口原型:
Public static void startRealTimeSportData(Context context,HiSportDataCallback sportDataCallback)
B.請求參數(shù)見表1。
C.響應(yīng)參數(shù)見表2。
表2 startRealTimeSportData 的onResult 的響應(yīng)參數(shù)
void onResult(int errCode)
onResult 用于控制鏈路的回調(diào)。startRealTimeSportData 的onDataChanged 的響應(yīng)參數(shù)有兩個,onDataChanged 用于接收數(shù)據(jù),其中參數(shù)sportState 表示當(dāng)前運動狀態(tài),運動狀態(tài)分為STARTED、PASUED、RUNNING、RESUMED 和STOPED 共5 種,這5 種運動狀態(tài)之間的狀態(tài)轉(zhuǎn)換關(guān)系如圖3 所示,參數(shù)bundle 以key-value 形式保存當(dāng)前的實時數(shù)據(jù),在此不再贅述。
圖3 五種運動狀態(tài)之間狀態(tài)遷移轉(zhuǎn)換圖
D.實際代碼調(diào)用:
2)startReadingHeartRate:開始監(jiān)聽實時心率數(shù)據(jù)
A.接口原型:
Public static void startReadingHeartRate(HiReal-TimeListener hiRealTimeListener)
B.請求參數(shù)見表3。
表3 startReadingHeartRate 的請求參數(shù)
C.響應(yīng)參數(shù)見表4。
表4 startReadingHeartRate 的響應(yīng)參數(shù)
D.實際代碼調(diào)用:
本設(shè)計中還調(diào)用涉及HiHealth kit 接口包中許多其他接口,這里就不再一一列舉講明。
本設(shè)計分別用四個Activity 實現(xiàn)手機Android 屏幕的啟動、主頁面、歷史頁面、歷史記錄頁面的設(shè)置。三方APP 軟件的各頁面總體結(jié)構(gòu)框圖如圖4。
圖4 三方APP 軟件的總體結(jié)構(gòu)框圖
(1)啟動頁面Activity
在寫啟動頁面Activity 的Java 文件跟xml 文件時,設(shè)置三秒延時,修改Activity 的順序使其能夠按照設(shè)想的順序進行跳轉(zhuǎn)。實現(xiàn)啟動頁面的主要代碼如下:
(2)主頁面Activity
為了獲得患者運動每一秒鐘當(dāng)時的生理信息心率準(zhǔn)確數(shù)據(jù),進行如下研究:
1)主頁面顯示
在APP 主頁面用Linechart 設(shè)置折線圖表示當(dāng)前實時心率,同時顯示當(dāng)前可穿戴式智能設(shè)備得到的當(dāng)次計時測量步數(shù)、血壓、心率值以及當(dāng)前APP 與華為運動健康A(chǔ)PP 連接的鏈路狀態(tài)(注:還可根據(jù)需要設(shè)置血氧測量),運動狀態(tài)可分為運行、停止、繼續(xù)、暫停、開始五種。
主頁面采取CoordinatorLayout 協(xié)調(diào)者布局作為應(yīng)用的頂層視圖。將Linechart 圖表嵌套在ConstraintLayout 中,為其他子View 提供確定位置的布局。ConstraintLayout 內(nèi)部的子View 即Linechart 可實現(xiàn)圖表中當(dāng)前坐標(biāo)外心率變化折線圖移出移入該圖表方框范圍的顯示。而AppBarLayout 中的Toolbar 工具欄以點擊的方式在同一個Activity 內(nèi)實現(xiàn)菜單頁面的打開。
APP 主頁面實時心率圖橫軸為從開始計時到當(dāng)前經(jīng)歷的時間(單位為秒),縱軸為當(dāng)前心率數(shù)值,可用手指在實時心率折線圖的方框里滑動,可看到任意時刻的心率值。并且在心率?時間圖標(biāo)的下方,顯示出當(dāng)次測量的運動步數(shù)、實時心率值(與上方圖表顯示的最新測量所的心率同步)、實時高壓/低壓值、運動狀態(tài),以及本設(shè)計APP 與華為運動健康A(chǔ)PP 的之間連接的鏈路情況。顯示的主要代碼如下:
2)菜單頁面及關(guān)于頁面的顯示
在主頁面顯示的xml 文件中,以CoordinatorLayout 為根布局的AppBarLayout 應(yīng)用欄布局中的Toolbar 工具欄提供了菜單頁面的顯示,通過點擊,可實現(xiàn)頁面的跳轉(zhuǎn)。
關(guān)于頁面實現(xiàn)關(guān)鍵代碼:
(3)歷史記錄頁面Activity
歷史記錄頁面Activity 需要儲存顯示的數(shù)據(jù)有:開始時間、持續(xù)時間、運動里程、心率等。每單次數(shù)據(jù)的xml 布局采取多重LinearLayout 嵌套的方式,第一至第五行分別是開始時間、持續(xù)時間、運動里程、心率值及高低血壓值,并且以垂直布局方式實現(xiàn)。設(shè)計歷史記錄頁面實現(xiàn)關(guān)鍵代碼及具體數(shù)據(jù)存儲代碼。具體數(shù)據(jù)存儲方法以及代碼如下:
i.以時間次序存儲數(shù)據(jù)的文件TimeSeqData.kt 中添加要存儲的數(shù)據(jù)(高低血壓、心率等)數(shù)據(jù)項,使其作為數(shù)據(jù)庫中相應(yīng)數(shù)據(jù)的標(biāo)簽。
(4)記錄詳情頁面Activity
記錄詳情頁面Activity 顯示之前存儲的某次測量得到的經(jīng)由可穿戴式智能設(shè)備測量藍牙技術(shù)支持傳輸?shù)玫酱嬖谟谌A為運動健康A(chǔ)PP 中的本地數(shù)據(jù)(包括當(dāng)時測量時主頁面顯示的圖表、單次測量的開始時間,當(dāng)次測量時所走步數(shù)以及單次測量持續(xù)時間)的Activity。
使用真機調(diào)試,使用Android Studio 把apk 下載到手機里(本測試中使用的手機為華為榮耀7 與華為榮耀20),打開華為運動健康A(chǔ)PP,開啟藍牙功能,對華為可穿戴式智能設(shè)備進行綁定和開啟測量,其次開啟應(yīng)用數(shù)據(jù)訪問的授權(quán)允許;使用可穿戴智能設(shè)備進行各項數(shù)據(jù)測量,接著打開本設(shè)計開發(fā)的三方APP,可以看到主頁面上鏈路狀態(tài)為connected、運動狀態(tài)為running,并且將該可穿戴智能設(shè)備、華為運動健康A(chǔ)PP 上數(shù)據(jù)同步。
進行各種頁面Activity 調(diào)試,顯示效果如圖5。
圖5 各種頁面Activity 的實際顯示效果圖
(1)研究下肢運動功能障礙的患者,在進行下肢康復(fù)訓(xùn)練時需要采集的生理數(shù)據(jù)信息和運動狀態(tài)信息,確定設(shè)計基于Android 系統(tǒng),采用腕式可穿戴式智能設(shè)備進行數(shù)據(jù)采集,從華為運動健康端側(cè)技術(shù)訪問,使用Android Studio 軟件進行開發(fā)工作,實現(xiàn)用戶、三方APP、華為運動健康A(chǔ)PP 三者交互,運用華為HiHealthKit 運動健康的APP 軟件的結(jié)構(gòu)方案。
(2)設(shè)計調(diào)用華為HiHealth kit 接口包里的API從而完成與HiHealth 平臺的對接,添加HiHealth kit接口包的JAR 包依賴,調(diào)用在導(dǎo)入HiHealth kit 的工具類。
(3)設(shè)計采用三方APP 軟件的各頁面總體結(jié)構(gòu)框圖,分別用四個Activity 實現(xiàn)手機Android 屏幕的啟動、主頁面、歷史頁面、歷史記錄頁面的設(shè)置。
總之,通過上述方法實現(xiàn)有效采集、顯示、監(jiān)控患者在下肢康復(fù)訓(xùn)練時的心率、血壓以及運動相關(guān)數(shù)據(jù),以調(diào)整患者下肢康復(fù)訓(xùn)練的強度和訓(xùn)練模式。