技術背景
隨著人們生活水平的提升,對健康的關注意識也隨之提高;另外人口結構的老齡化,慢性病發(fā)病率升高,以及新冠疫情持久廣泛的影響,進一步提高了大眾對疾病早期預防、身體數(shù)據(jù)定期自測、慢性病持續(xù)關注等各個層面的重視程度;典型的,比如體溫、血氧、血壓、體重等高頻、普遍使用的自測參數(shù),在一些醫(yī)療器械和智能手機APP中實現(xiàn)可獨立操作性、實時監(jiān)測性及便捷性;市場上可穿戴式醫(yī)療器械日益種類多樣、形態(tài)各異,根據(jù)功能不同可以分為運動健身類、生活娛樂類、健康醫(yī)療類、遠程控制類、智能開關類、信息資訊類以及多功能穿戴式醫(yī)療器械。
在技術層面近年來,無線通信技術、傳感器、柔性電子、生物遙測、體域網(wǎng)等技術的發(fā)展,可穿戴醫(yī)療器械也早已不局限于智能手環(huán)、智能手表等形式,我國國家藥品監(jiān)督管理局批準上市的醫(yī)療級可穿戴設備有ECG心電信號測量設備、血壓測量設備、血氧測量設備、血糖測量設備;與可穿戴設備兼容的智能手機醫(yī)療保健應用程序越來越多,醫(yī)療服務供應商對無線連接青睞越來越明顯,低功耗藍牙(BLE)由于其低功耗在智能穿戴終端中應用廣泛,智能手表、智能手環(huán),以及其它智能相關的設備,幾乎都是依靠這個技術與手機進行無線連接和數(shù)據(jù)交互的。另外,低功耗藍牙技術,可以實現(xiàn)短距離通信的最低功耗,這也大大延長可穿戴設備的工作時間。
與國外相比,我國可穿戴式醫(yī)療器械相對于較晚,當前市場上的可穿戴式醫(yī)療器械主要偏向于運動/睡眠監(jiān)測功能,其可長時間與人體接觸,是理想的監(jiān)測設備,具有廣闊的市場空間。隨著我國云計算、大數(shù)據(jù)和5G的高速發(fā)展,醫(yī)療器械可穿戴化必是大勢所趨,可穿戴式醫(yī)療器械必將迎來良好的市場機遇。
然而由于醫(yī)療數(shù)據(jù)具有產(chǎn)品多樣化、平臺差異性和數(shù)據(jù)高密度的特點,所以對數(shù)據(jù)進行有效儲存、交互、傳遞以及跨平臺讀取就十分有必要,通過可穿戴式醫(yī)療器械與醫(yī)療數(shù)據(jù)云平臺相聯(lián),實現(xiàn)數(shù)據(jù)的互通共享,將采集到的患者數(shù)據(jù)通過云平臺處理,不僅患者自己可以通過云平臺了解相關的診斷結果、治療方案,醫(yī)療機構也同樣可以利用云平臺的數(shù)據(jù)制定治療措施,對患者進行跟蹤和交流。
目前穿戴設備幾乎都兼容三種平臺Android APP, IOS APP, 微信小程序,各自同步實現(xiàn)方式(如圖1):
1. Android app 基于Android平臺JAVA作為開發(fā)語言構建。藍牙設備數(shù)據(jù)采集需要根據(jù)系統(tǒng)提供的Native BLE SDK 來實現(xiàn) 手機與 外設直接 命令與數(shù)據(jù)交互; 手機獲取到的采集數(shù)據(jù)需要采用JAVA語言來實現(xiàn)后續(xù)處理邏輯; 網(wǎng)絡傳輸,以及傳輸過程中失敗處理 也一并需要考慮在內(nèi) 等上述提供的6個步驟。
2. IOS APP 基于IOS平臺ObjectC作為開發(fā)語言構建。 藍牙設備數(shù)據(jù)采集需要基于IOS藍牙開發(fā)規(guī)范 實現(xiàn)上述提供的6個步驟。 處理流程同Android APP
3. 微信小程序 基于JavaScript語言。 藍牙設備數(shù)據(jù)采集,需要基于微信小程序 提供藍牙API 使用規(guī)范實現(xiàn)上述提供的6個步驟,處理流程同以上兩者 ;
圖1:平臺數(shù)據(jù)采集流程圖
存在如下痛點:
-
藍牙交互程序內(nèi)置于用戶APP端
-
適配更多開發(fā)平臺, 就需要重復實現(xiàn)上述6個步驟,代碼不具有可移植性和跨平臺能力;
-
如果有支持新類型藍牙設備的需求,只能發(fā)布新版APP, 提示用戶升級安裝。藍牙協(xié)議的代碼是打包APP中,這種方式通過代碼靜態(tài)分析工具,容易被破解;用戶即使只使用一款藍牙設備,也需要下載一個龐大的APP 。
-
修復bug困難(熱修復),只能通過版本更新(需要用戶介入)才能實現(xiàn),頻繁更新影響用戶體驗。尤其是 Android平臺由于大量企業(yè)安卓的系統(tǒng)是自身定制,軟件系統(tǒng)之間兼容也存在困難;
總體上來說,由于Android APP/IOS APP平臺和開發(fā)語言的差異,對開發(fā)端和用戶端來說,在系統(tǒng)兼容適配、外接藍牙的安裝更新,以及不同平臺之間的移植都有不同程度的制約。
新技術的功能特點
基于藍牙的智能設備數(shù)據(jù)采集平臺化方案,在三種平臺(Android APP/ IOS APP/微信小程序)使用同一套藍牙設備采集代碼,應具備以下特點:
-
藍牙交互及控制程序與用戶APP解耦, 由云端控制
-
可移植和跨平臺性:一種藍牙設備同步程序在其中一個平臺開發(fā)、調(diào)試,正常運行,移植到其他平臺依然可以正常運行支持動態(tài)加入新類型藍牙設備,綁定新類型藍牙設備后立即生效。而不是用戶頻繁卸載安裝新版的APP方式
-
具備藍牙功能模塊的熱修復能力:一種快速、低成本修復APP缺陷的地方
-
解決藍牙協(xié)議靜態(tài)打包在APP, 保護智能設備廠商知識版權
方案的整體架構
經(jīng)過大量調(diào)研,和多種類型藍牙設備接入代碼實戰(zhàn)應用發(fā)現(xiàn), 三種平臺在接入藍牙設備讀取到的數(shù)據(jù)之后,后面的數(shù)據(jù)處理,算法邏輯是相同,只是在 Native BLE SDK部分差異較大。從這個角度來講,藍牙同步功能可以抽象為:①手機與藍牙設備交互部分;②獲取藍牙數(shù)據(jù)后續(xù)處理。
我們引入中間層設計思想:主要目的屏蔽底層差異性,并給上層提供一致的接口;中間層主要是對上層負責,屏蔽底層無規(guī)則、無協(xié)議、環(huán)境復雜的問題;如果把不同平臺的差異給屏蔽掉,那么上層就可以專注于解決業(yè)務,而不再需要耗費精力去解決差異性。
藍牙同步架構方案有以下三層(如圖2):
原生層: Native BLE SDK部分:與藍牙設備直接交互,不同平臺實現(xiàn)方式,開發(fā)語言不同,實現(xiàn)方式也可能不同。抽象大致相同藍牙通信能力(如表1)
中間層:用于解耦業(yè)務層與原生層強依賴,屏蔽平臺,語言的差異。位于原生層與業(yè)務層之間,對上層提供統(tǒng)一、一致的JS BLE API
業(yè)務層:處理藍牙數(shù)據(jù)操作,可以認為是對于APP功能中屬于業(yè)務部分,不同類型藍牙設備存在不用數(shù)據(jù)處理規(guī)則. 但是不同平臺同一類型藍牙設備notify數(shù)據(jù)格式是相同的,所以處理邏輯在不同平臺是共用的。 改造之后統(tǒng)一業(yè)務層使用JavaScript語言開發(fā),運行在JavaScript引擎
表1:實現(xiàn)藍牙常用的API(18個)
圖2:藍牙同步架構方案
可移植和跨平臺的實現(xiàn)
根據(jù)面向?qū)ο笏枷?,Native BLE SDK部分:與藍牙設備直接交互,不同平臺實現(xiàn)方式,開發(fā)語言不同, 實現(xiàn)方式也可能不同;考慮到Native BLE SDK在三種不同平臺實現(xiàn),藍牙實現(xiàn)方式通過以下三種方式解決:
-
Android APP 加入JavaScript引擎,實現(xiàn)Java和JavaScript的相互調(diào)用。并對Android平臺提供支持。 通過JavaScript API接口采用原生平臺JAVA代碼實現(xiàn)藍牙18個API, 對上層提供 JavaScript BLE API
-
IOS APP 加入 JavaScriptCore引擎, JavaScriptCore是Safari的JavaScript引擎,在iOS7之后蘋果開放了JavaScriptCore框架,開發(fā)者可以通過其提供的OC接口來使用JavaScriptCore。 通過JavaScriptCore接口采用原生平臺ObjectC實現(xiàn)藍牙18個API, 對上層提供 JavaScript BLE API
-
微信小程序運行環(huán)境JavaScript。只需封裝微信提供同Android/IOS相同的JS BLE API即可。僅列舉其中初始化藍牙流程,如圖3:
圖 3 微信小程序 初始化藍牙流程
經(jīng)過以上3種方式,三個平臺業(yè)務代碼都可以運行在各自的 JavaScript引擎中(如圖11), 通過調(diào)用統(tǒng)一的JS BLE API就可以和藍牙設備進行命令,數(shù)據(jù)交互。只需在任意一個平臺編寫、調(diào)試,之后無需任何變動就可以運行在其他平臺。一種代碼(JavaScript)即可通用,內(nèi)容為:
-> 連接指定設備
-> 連接成功后,發(fā)送交互命令
-> 同步并收集設備通知數(shù)據(jù)
-> 校驗、解析藍牙數(shù)據(jù)協(xié)議
-> 數(shù)據(jù)轉(zhuǎn)化業(yè)務數(shù)據(jù), 業(yè)務數(shù)據(jù)解析,清洗,合并等處理
-> 數(shù)據(jù)上傳云端
藍牙平臺工作流程(如圖4):
所有支持的藍牙設備類型及其對應藍牙同步程序存儲于后臺服務端, 當用戶綁定對應類型藍牙設備后。動態(tài)獲取藍牙設備程序; 當檢測到同步程序版本發(fā)生變動后重新獲取新的藍牙同步程序。同步程序下發(fā)到APP過程 采用壓縮,動態(tài)加密,傳輸加密,多次校驗客戶端合法性方式保證藍牙協(xié)議安全性。
圖4 藍牙同步數(shù)據(jù)流程
預期收益
基于藍牙的智能設備數(shù)據(jù)采集平臺化方案:
a) 藍牙設備接入效率倍增及平臺高擴展性
b) 明確人員職責,數(shù)據(jù)接入人員與APP研發(fā)可以并行研發(fā)
c) 多平臺只需維護一套代碼,降低開發(fā)后期維護成本, 提升程序穩(wěn)定性
d) 不同設備類型之間同步程序物理隔離,其中一個出現(xiàn)錯誤不影響其他設備正常使用,每個設備都可以自由配置日志信息,方便開發(fā)人員快速定位解決問題
e) 用戶角度,提升用戶體驗。不用經(jīng)常更新APP, 就可以接入新設備,使用新功能
藍牙廠商角度:保護了藍牙協(xié)議安全性,自身知識產(chǎn)權和利益;
結語
這種基于藍牙的智能設備數(shù)據(jù)采集平臺化方案,只需一套JavaScript代碼方案,實現(xiàn)藍牙同步可移植,通用;藍牙同步程序從客戶端靜態(tài)編碼在APP轉(zhuǎn)換為后端控制方式,極大降低了藍牙同步與平臺強耦合,提升擴展能力。同時保證了APP快速適用新設備的能力,以及熱修復能力。支持APP內(nèi)藍牙后臺運行, 解決心電貼等設備數(shù)據(jù)量大場景;
幫助開發(fā)者過濾了平臺差異,以及開發(fā)語言差異方面的顧慮,并且減輕了后期的更新、錯誤修復等方面維護的工作量和成本;另外,不同平臺之間的程序的兼容,穩(wěn)定能更好的提升用戶體驗;減少開發(fā)端和用戶精力投入的基礎上,更好的幫助用戶實現(xiàn)功能和解決不同場景的問題。
作者:京東健康 于震江文章來源:http://www.zghlxwxcb.cn/news/detail-622296.html
來源:京東云開發(fā)者社區(qū)文章來源地址http://www.zghlxwxcb.cn/news/detail-622296.html
到了這里,關于藍牙智能設備數(shù)據(jù)采集平臺化方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!