APP下载

基于Android平台多生理参数检测系统设计与实现

2013-10-28何宗见詹国华李志华

关键词:血氧蓝牙监护

何宗见,詹国华,李志华

(杭州师范大学杭州国际服务工程学院,浙江 杭州 311121)

基于Android平台多生理参数检测系统设计与实现

何宗见,詹国华,李志华

(杭州师范大学杭州国际服务工程学院,浙江 杭州 311121)

针对多生理参数的无创采集和移动传输需求,设计了基于Android平台的血氧饱和度、血压和心电等多生理参数检测系统.根据多生理参数的不同特性,通过定时中断模式,结合Android JNI和Linux驱动接口实现多生理参数无创硬件采集和无线实时传输,同时采用MVC开发框架,实现多生理参数的接收、显示、统计报表和用户管理等功能.为了减少数据冗余、提高数据融合效率,在多医学传感器形成的蓝牙散射网中,采用捕鱼策略优化算法进行收缩搜索和移动搜索.实验表明,该系统能有效实现多生理参数的无创采集、移动传输和智能处理,具有体积小、可扩展性强、融合效果优等特点,为家庭或社区监护和远程医疗创造了条件.

生理参数;蓝牙;Android;检测系统;数据融合

在人体正常生命活动中,血氧饱和度、血压、心电等生理参数是反映健康状况的重要指标,对心血管疾病、糖尿病及肥胖症等慢性疾病的诊断、治疗和急救都具有十分重要的意义.当前,医院尤其是大医院的床位紧张和挂号难等问题突出,难以满足所有患者长期住院监护需求,需要发挥家庭和社区对患者健康的监护作用.同时,医学监测仪器多功能化、智能化和微型化发展成果显著,为远程健康监护创造了条件.因此,远程医疗监护系统的研究近年来得到快速发展,国内外高校、科研机构和公司企业都进行了相关研究,并取得一定成果[1-2].

清华大学深圳研究院嵌入式系统与技术实验室经过多年研究已研制出多套多生理参数监护系统,其中具代表性的有:1)基于GPRS/CDMA/3G无线通讯网络及Internet互联网络的远程无线生理参数实时监测与分析网络平台[3-4];2)通过移植Android系统驱动、生理参数驱动以及监护应用软件开发设计了一款远程动态多生理参数的监护系统[5];3)在S3C6410微处理器上,通过移植部分监护中心站的人体参数异常检测与分析算法实现在移动通信网络受阻情况下的各生理参数监护[6].文献[7]提出了一种无线传感器网络监护方案:每个传感器节点采集一种人体参数,并通过无线通信技术将其发送到本地处理单元,再由本地处理单元上传到监护服务器.文献[8]中提出了一种多参数连续监护的集成化采集概念性系统,只需要4个电极就可以进行心电、呼吸、体温、血压和血氧饱和度的连续监测.

在此基础上,本文提出了一种基于Android平台的血氧饱和度、血压、心电、脉搏等生理参数无创采集、移动传输和综合分析的新型检测系统.在异构蓝牙医学传感器设备形成的无线传感网中,采用捕鱼策略算法提高移动搜索效率,并对Android JNI和Linux驱动进行编译,实现多生理参数融合及综合处理.

1 多生理参数检测系统框架

图1 多生理参数监测系统框架图

多生理参数检测系统主要包括生理参数无创采集、蓝牙无线传输以及数据融合与接收3大模块,系统结构如图1所示.在该系统中,生理参数无创采集是指通过在身体表面相关部位放置指环式或穿戴式蓝牙医学传感器进行血氧饱和度、血压、心电等生理参数的体外无创采集.具体过程包括模拟生理参数滤波与放大、模数转换、数字生理参数处理(显示、告警等)及蓝牙从设备模块数据发送.传输模块负责搜索和配对蓝牙从设备、建立蓝牙通信协议通道及传输蓝牙数据.在以上两大模块之间,需要对Linux层进行不同生理参数无创采集电路硬件参数控制,并通过Android JNI层将驱动层转化为Java接口层操作.同时,通过捕鱼策略优化算法实现蓝牙散射网中医学传感器中的快速移动搜索.在Android平台多生理参数融合与接收显示模块中,首先对无序、分散的多生理参数进行数据校正、关联和融合.然后,采用MVC开发模式实现多生理参数显示、实时动态图绘制、用户个人信息管理及数据保存查询等功能.

2 多生理参数无创采集与无线传输

在各生理参数检测过程中,首要解决的问题是数据采集,本系统设计了多生理参数无创采集电路,并在终端实现心电图、血氧饱和度、血压的无创采集功能.

2.1 多生理参数无创采集

2.1.1 血氧饱和度无创采集

血氧饱和度(SpO2)是指动脉血中与氧结合的氧合血红蛋白的容量占全部可结合的血红蛋白容量的百分比[9].当光照射人体血管时,H2bO2(血红蛋白)主要吸收红外光(λ=940 nm)成分,而Hb(血红蛋白)则以吸收红光(λ=660 nm)成分为主.因此,可以通过所吸收光比值R来判定H2bO2(血红蛋白)和Hb(血红蛋白)的比值,从而得出血氧饱和度值.

(1)

式(1)[10]中IR和IIR分别表示红光和近红外光的脉动增量光强度,反映了透射光经过动脉血管的信号强度.AC(660)和AC(940)分别表示两路透射光信号的交流成分,DC(660)和DC(940)分别表示两路透射光信号的直流成分.血氧饱和度最终计算公式为SpO2=AR+B[11],其中A、B系数通过多次测量(SpO2,R)进行二次线性拟合得到.

血氧饱和度检测采用了透射法,对人体指尖毛细血管的血氧饱和度进行测量.测量用的血氧饱和度探头是一个光电传感器,内置一个双波长发光二极管和一个光电二极管.发光二极管在控制电路的控制下交替发射波长为660 nm的红光和940 nm的近红光.从光电二极管检测到电信号强弱就能够得到血氧饱和度的数值.血氧饱和度检测硬件系统由光源驱动、初级放大电路、滤波电路、50 Hz陷波电路等部分组成.系统框图如图2(a)所示.

图2 多生理参数无创采集电路结构框图

2.1.2 心电无创采集

心电起搏运动时,会在人体产生心电场,作用于皮肤表面两点间就形成微弱电势差.因此,可以在人体体表某些固定位置安放医用电极,提取心电电压差(通常为1~5 mv),然后通过导联技术将信号传送到放大和滤波电路,将其转换为0~3.3 V标准电压,接着将其传输给处理器进行数模转换,最后将数字值存储在处理器中的寄存器中.如图2(b)所示,心电信号采集电路包括导联电路、多级放大电路、多级滤波和右腿驱动电路等,主要涉及心电信号拾取、放大和滤波3方面,其中右腿驱动电路可提高系统稳定性.

2.1.3 血压无创采集

血压的无创采集常用方法包括测振法、柯氏音法和光电法等.其中,测振法有较强的抗干扰性和可靠性,成为世界上测定血压值的主流技术.它能同时检测收缩压、舒张压、平均动脉压和脉率.首先,气泵给袖带充气,当压力达到设定值时停止充气;接着,袖带内气体通过针阀缓慢放气,并以一定速率记录压力值和脉搏振动幅度;然后通过计算振幅变化趋势和变化率得出收缩压、舒张压以及平均值等.血压无创采集电路如图2(c)所示,主要包括气泵驱动电路、压力传感器、放大电路及带通滤波电路等.

2.2 多生理参数蓝牙无线传输

图3 多生理参数蓝牙无线传输开发流程

多生理参数的无线传输之前,需要在Android移动端进行Linux系统驱动代码和Android JNI层代码编写.其中Linux系统驱动代码采用C语言编写,主要是对不同生理参数采集硬件电路进行控制和开发相应的驱动程序.Android JNI层是Linux驱动程序与Android应用程序之间的接口层,负责将应用程序开发的Java接口转化为对Linux驱动程序的调用.Android JNI层代码编写步骤为:先编写Java类接口,接着将该接口编译成C文件代码框架,然后把相应Java类实现添加到C文件代码框架中,最后编译成Android系统下的库文件,以备Android应用程序调用.

本系统的生理参数蓝牙无线传输主要采用定时中断法读取数据块,其具体流程如图3所示.

首先,Android移动设备检测本机是否支持蓝牙功能,如果支持则开启本地蓝牙适配器,接着通过MAC地址搜寻附近蓝牙医学传感从设备,同时初始化定时器,如果Android移动终端的蓝牙主设备与医学传感从设备匹配成功,则两者之间创建Bluetooth Socket连接信道.连接成功之后,则关闭定时器.此时,如果确认采集数据成功则进行读写、存储数据等操作,并绘制实时动态图.假如未采集到数据则打开所有中断,并延时一定时间后,结束传输.

Android手机作为多生理参数检测仪,以客户端角色主动连接蓝牙医学传感器进行数据采集,还可以通过蓝牙将数据发送到PC端实现病人数据特殊分析.使用蓝牙进行数据传输的主要步骤包括设置蓝牙、搜索蓝牙服务、连接设备、传输数据等,其流程如下:

1)使用registerReceiver注册BroadcastReceiver来获取蓝牙状态、搜索设备等消息;2)使用getDefaultAdapter()方法取得BluetoothAdatper类,并调用startDiscovery()发现蓝牙设备;3)在BroadcastReceiver的onReceive()方法里取得搜索蓝牙医学传感器设备信息(如名称,MAC, RSSI);4)通过设备的MAC地址来创建一个Bluetooth Device对象,并调用getBondedDevice()找到一个配对的蓝牙设备;5)由BluetoothDevice调用createRfcommSocketToServiceRecord(UUID)方法取得Bluetooth Socket;6)调用Connect()方法,执行服务发现协议(SDP)查询蓝牙医学从设备是否符合UUID,启动蓝牙通信连接;7)使用BluetoothSocket的get InputStream()和getOutputStream()来读写蓝牙设备.

在Android应用程序中使用蓝牙功能,必须要声明两个蓝牙权限:.

3 Android平台数据融合与接收显示

3.1 Android平台数据融合处理

图4 捕鱼优化策略算法的蓝牙散射网框图

在接收数据之前,为了降低数据冗余度必须对大量生理参数进行融合处理.考虑到蓝牙无线传感网络容量问题,在一个蓝牙微微网中,每部Android移动终端只能同时扫描7台在线的蓝牙医学传感器;当蓝牙医学传感器超过8台时,则需要通过微微网级联方式组成一个分布式蓝牙散射网.为了实现较快的收敛速度和较优的搜索精度,Android移动端采用捕鱼策略优化算法,即“先在不同微微网之间采用移动搜索,然后在微微网内采用收缩搜索”,使用捕鱼优化策略算法蓝牙散射网如图4所示.

首先根据蓝牙散射网中MAC地址“浓度”来确定医学传感器探测点,然后逐渐逼近缩小范围找到蓝牙MAC地址浓度最高的医学传感器所在微微网,并建立Android手机主设备跟蓝牙医学传感从设备之间的连接.依次类推,根据MAC地址浓度从高到低,进行不同微微网之间医学传感器移动搜索,并建立Android蓝牙主设备和医学传感从设备的匹配.具体算法如下:

图5 多生理参数融合系统功能模型

在一个蓝牙散射网中,由于各医学传感器的采集频率、传输速率和空间位置各不相同,采集的生理参数往往是无序、分散甚至是错误的.因此,需要通过信息处理和融合对多生理参数进行相互关联和印证,以获得更客观、更本质认识的综合健康检测服务效果.多生理参数融合系统功能模型如图5所示.

当医学传感器所采集的生理参数发送到Android移动终端时,首先通过时间搬移和坐标变换实施多传感器时间和空间校准.常见校准方法有泰勒展开修正法、内插外推法和虚拟融合法等.其次,通过数据相关性分析判别不同时空的数据是否来自同一医学传感器.如果是来自同一个医学传感器,则将新数据集与原有(以前扫描得到的)数据进行融合;如果来自其它传感器,则根据其状态向量、特征和属性等参数跟踪和估计新传感器设备的行为模式.最后,完成新旧生理参数的分类汇总和存储,并做好时间标记.

3.2 Android平台数据接收显示

图6 多生理参数监护系统功能模块

根据功能需求分析,基于Android多生理参数监护系统的主要功能包括:生理参数显示、用户管理、实时动态图和历史信息查询4大模块,如图6所示.

1)生理参数显示:分为血氧饱和度显示、血压显示和心电显示3个子模块.分别记录生理参数检测仪的MAC地址、用户名、血氧饱和度、脉率、氧容积;收缩压、舒张压、脉搏率;P波段、PR波段和QRS波段等.

2)实时动态图:自动生成血氧饱和度、血压、心电、脉搏等实时统计图.直观地反映生理参数变化趋势,再现监护过程中的数据变化.提供放大和缩小功能,增强患者查看时用户体验.

3)用户管理:包括用户创建、保存和删除等功能,还支持拍照上传功能.支持个人基本资料(用户名、性别、年龄等),既往史(疾病史、手术、外伤、输血)、家族病史/遗传史、过敏史、用药信息、日常生活习惯等项目信息的录入.

4)历史信息查询:可以按用户名对血氧饱和度、心电、血压等多生理参数数据和实时动态图进行查询.当输入关键词,系统可以自动进行匹配,并提供用户所需的生理参数信息.

图7 多生理参数监护系统的MVC开发模式

为了使程序代码更加清晰、模块化程度更高,同时增强代码健壮性和事件处理效率,本系统采用了MVC(Model-View-Controller)设计模式,对整个代码进行了分层,包括表示层、控制层、业务和数据交换层,如图7所示.表示层用于向用户展示系统状态.本系统中是以每个Activity对应的页面、对话框和一些显示控件来展示,其中主要包括主显示界面MainView、血氧数据显示界面BPView、用户管理界面User ManagerView,以及历史记录查询界面HistoryView等等.其中布局文件和显示的文本信息分别放在res/layout文件夹和values/strings.xml文件中.控制层主要负责表示层和业务层之间流程控制.一方面将表示层的调用发送到业务层进行请求处理,另一方面将业务层处理结果反馈到表示层界面上进行显示.通过Android移动搜索蓝牙设备的算法,实现蓝牙数据融合和智能分析.业务数据交互层主要是封装了蓝牙数据传输的核心操作,比如创建socket、创建通道、传输数据、处理输入输出流等.

基于Android多生理参数监护软件是在eclipse平台上开发的.首先要下载Android SDK,然后安装eclipse的adt插件,使之与android sdk建立连接.通过继承Android平台下Activity类并配合Intent的便捷操作可以实现多生理参数数据无线采集、接收、数据存储和动态图绘制等功能.系统界面设计是采用XML资源文件进行定义.血氧实时图以红绿相间线条来显示相邻时刻的生理参数值,它是采用Android系统图形库ACharEngine,并调用onDraw(Canvas canvas)方法来实现.蓝牙ID、MAC等信息以及其它文件是采用Android下标准SQLite数据库形式进行存储.而Android的系统配置信息是采用共享优先数据方法 shared preferences进行存储的.

4 实验验证与分析

由于蓝牙不能在虚拟机中测试,需要将Android SDK编译的工程打包成apk格式安装包,并传到Android智能手机中安装运行.应用程序启动之后,当打开多生理参数监护仪采集按钮并与Android手机进行蓝牙匹配、连接,显示的血氧饱和度、血压和心电等多生理参数检测主界面如图8(a)所示.点击“测量血氧”按钮,Android手机终端开始对血氧饱和度(SpO2)、脉搏率(Pluse)、血氧容积(Cubage)无线接收,并且显示该监护仪的蓝牙MAC地址及用户名等信息(图8(b)).当点击“血氧动态图”按钮时,系统会以红绿相间的柱状图实时记录所采集血氧饱和度和脉搏值(图8(c)).用户可以点击“用户管理”建立个人健康档案,以及“历史记录查询”实现健康信息查找.

在多蓝牙医学监护仪同时存在的环境中,为了检验系统的采集准确性和融合效果,笔者分析了20名年龄在21~26岁的测试者血氧饱和度和脉搏两项生理参数,结果如图9所示,对比融合前后的数据,发现

图9 多生理参数融合检测效果图

融合效果良好.

5 结 论

本文设计了基于Android平台血氧饱和度、血压和心电等多生理参数无线采集和移动传输系统.对人体多生理参数的采集原理进行了分析,并对采集电路进行了设计.结合Android系统蓝牙API,采用定时中断方式对生理参数进行读取.在Android系统强大性能支持下,采用MVC模式多生理参数监护系统的功能模块进行设计和开发.在Android移动终端数据处理过程中采用了捕鱼策略优化算法,使蓝牙设备的移动搜索速度和精度有较大提升,同时对多生理参数融合和综合分析起到了较大作用.通过室内外近距离传输实验,表明该系统能有效实现多种生理参数的无创采集、无线传输和智能处理,具有体积小、可扩展性强、数据融合性能优等特点,为家庭或社区监护和远程医疗等创造了条件.

[1] 何剑锋,李祥,何月顺.基于XScale PXA270处理器平台WinCE 5.0系统的BSP二次开发[J].化工自动化及仪表,2009,36(4):72-75.

[2] 汪兵.Windows CE嵌入式高级编程及其实例详解[M].北京:中国水利水电出版社,2008.

[3] 张冬泉,谭南林,苏树强.Windows CE实用开发技术[M].2版.北京:电子工业出版社,2008.

[4] Plagge M. Microsoft windows CE 5.0 board support package, boot loader, and kernel startup sequence[EB/OL]. [2013-03-20].http://msdn.microsoft.com/en-us/library/aa446905.aspx.

[5] 陈海金,张跃.远程多参数动态实时监护仪设计[J].计算机工程与设计,2012,33(12):4501-4508.

[6] 张宁,张跃.远程医用实时监测与分析终端的研制[J].自动化与仪表,2010(2):5-8.

[7] Lo B P L, Thiemjarus S, King R,etal. Body sensor network: a wireless sensor platform for pervasive healthcare monitoring[C]//The 3rd International Conference on Pervasive Computing,2005:77-80.

[8] Chetelat O, Caros J S, Krausset J,etal. Continuous multi-parameter health monitoring system[J].IFMBE Processings,2007,14(7):684-687.

[9] 刘光达,郭雄,朱平,等.基于容积波分析的血氧饱和度测量系统[J].激光与红外,2009,39(2):169-172.

[10] 曹辉,何波.基于蓝牙传输的脉搏血氧饱和度监测系统设计[J].微计算机信息,2007,23(25):104-106.

[11] 王博亮,刘迎春,刘安之.医用传感器及其接口设计[M].北京:国防工业出版社,1998.

TheDesignandImplementationofaMultiplePhysiologicalParamtersDetectionSystemBasedonAndroidPlatform

HE Zongjian, ZHAN Guohua, LI Zhihua

(Hangzhou Institute of Service Engineering, Hangzhou Normal University, Hangzhou 311121, China)

In view of the noninvasive acquisition and mobile transmission of physiological parameters, this paper designed a multiple physiological parameters detection system based on Android platform. According to different characteristics of multiple physiological parameters, the noninvasive hardware acquisition and wireless real-time transmission were implemented combing Android JNI and Linux driver by time interrupt mode. Meanwhile, the functions of receive, display, statistical reports and user management were realized in the MVC development framework. In order to reduce the data redundancy and improve the data fusion efficiency, the fishing strategy optimization algorithm was adopted to search in bluetooth scatter network. Experiments show that the system, which has the characteristics of small volume, strong extensibility and good fusion effect, can achieve the functions of noninvasive acquisition, mobile transmission and intelligent processing effectively. The system can prepare for monitoring family or community and telemedicine.

physiological parameter; bluetooth; Android; detection system; data fusion

2013-04-19

浙江省大学生科技创新活动计划暨新苗人才计划项目(2012R421052).

詹国华(1957—),男,教授,主要从事计算机应用、物联网研究.E-mail:ghzhan@hznu.edu.cn

10.3969/j.issn.1674-232X.2013.06.017

TP3

A

1674-232X(2013)06-0567-07

猜你喜欢

血氧蓝牙监护
蓝牙音箱的直线之美
护娃成长尽责监护 有法相伴安全为重
我国成年监护制度之探讨与展望
智能血氧饱和度监测系统设计与实现
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
基于STM32血氧心率检测仪的研制
紧急:蓝牙指尖陀螺自燃!安全隐患频出
带养之实能否换来监护之名?
基于血氧模拟前端AFE4490的无创血氧测量模块设计