HOME / TIME
医疗设计Android平台移动医疗监护客户端设计与实现
-医疗监护工作需要精准地掌握病人各项重要的身体指标,数据的实时性、准确性越高,对病人的病情判定越准确。针对传统监护设备便携性差、移动性
2018/11/19
医疗监护工作需要精准地掌握病人各项重要的身体指标,数据的实时性、准确性越高,对病人的病情判定越准确。
针对传统监护设备便携性差、移动性差,成本较高的缺点,设计了基于Android平台的生理参数移动监护系统。
系统将蓝牙模块与医用传感器结合,以Android手机作为数据中转站,接收来自传感器的数据并呈现给用户,同时将数据发送给远端服务器。
用手机模拟医用传感器对系统功能进行了验证。

  关键词:移动医疗;客户端;蓝牙技术;Android
  DOIDOI:10.11907/rjdk.143772
  中图分类号:TP319
  文献标识码:A 文章编号文章编号:16727800(2015)001012102
  0 引言
  近年来,随着通信技术、生理信息传感器等技术的巨大进步,移动医疗迅速发展。
医学检测仪器正向多功能、智能化和微型化方向发展。
数字化将和生理信号的测量技术及分析技术融为一体成为其显著特点之一[1]。

  目前,国内已有20%的医院开始尝试移动医疗业务,PDA、RFID等设备和技术得到了实际应用[2]。
但这些移动医疗设备和技术受限于较窄的应用范围,还不能发挥全部作用。
特别是针对社区、家庭的移动医疗应用还相当缺乏。
基于便携的体域传感器,日趋成熟的蓝牙通信技术以及开源的Android平台移动终端。
本文设计了一个移动医疗监护系统,如图1所示。
该系统可以将体域传感器感知的人体各项身体参数,利用蓝牙通信技术发送给使用者的Android手机终端,最后通过手机网络将数据提交医疗中心的服务端。
分析处理过的数据可以图表或者文字的方式显示在使用者的手机端,从而解决传统监护设备无法实时实地提供监护服务的问题。
考虑到成本,在系统测试时,采用了另一部手机作为传感器数据源,以体温作为测试数据。

  图1 手机移动医疗系统
  1 Android架构分析与开发环境搭建
  系统Android手机客户端开发工具为Eclipse,开发版本为Android4.0.3 ADT0.95 jdk1.7.0。

  1.1 Android平台架构
  Android系统架构由4层共5个部分组成[3]:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。
其中,Android基于Linux 2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型;每一个Android应用程序是Dalvik虚拟机中的实例,运行在它们自己的进程中;Android包含了一个C/C++库的集合,供Android系统的各个组件使用;通过提供开放的开发平台,开发者可以自由地利用设备硬件优势进行功能开发;Android装配一个核心应用程序集合,包括电子邮件客户端、日历、地图等设置。
所有应用程序都是用Java编程语言写的。

  1.2 Android系统中的蓝牙
  Android平台支持蓝牙协议栈,可以在两个蓝牙设备之间进行数据传输。
Android应用框架层提供了允许蓝牙进行连接的API,通过这些API可以实现通过蓝牙的应用程序是无线连接,建立端到端的连接模式。
其中, BluetoothAdapter类代表本地蓝牙适配器,是所有蓝牙交互的入口点;BluetoothDevice类代表远端蓝牙设备,可以请求远端蓝牙设备连接或获取远端蓝牙设备的名称、地址、种类和绑定状态;BluetoothSocket类代表蓝牙套接字的接口,它是应用程序通过输入、输出流与其它蓝牙设备通信的连接点;BluetoothClass类描述了蓝牙设备的一般特点和能力。

  1.3 Android开发环境搭建
  Android平台进行开发使用的是Java语言。
①安装JDK,安装时要将“Path”的环境变量修改为JDK安装路径中bin目录的绝对路径;②下载并安装Eclipse;③在Android Developers下载androidsdk_r18windows.zip,运行SDK Setup.exe,在用户变量中新建PATH值为Android SDK中的tools绝对路径;④安装ADT插件;⑤为了使Android应用程序可以在模拟器上运行,必须创建AVD,即Android在Windows环境下的虚拟机。

  2 系统设计与实现
  根据Android手机系统运行要求,考虑到用户良好的使用体验,本系统的程序响应必须快速,且基本无BUG出现。
主要功能模块有:用户登录模块、蓝牙通信模块、数据显示模块、数据上传模块。

  2.1 用户登录注册模块
  用户登录注册模块实现两个功能:①用户信息注册功能;②用户登录功能。
通过用户注册登录后,不同的用户会有不同的文件夹来保存身体各项参数数据信息,并且根据用户注册时的ID号来进行数据筛选。

  用户信息管理采用了Android自带的小型数据库SQLite。
作为一款轻型数据库,SQLite遵守ACID的关联式数据库管理系统,资源占用率非常低,只需要几百K的内存。
此外,它能够与很多程序语言相结合,比如C#、PHP、Java等,还有ODBC接口,相较于Mysql、PostgreSQL这两款世界著名的开源数据库管理系统而言,其处理速度更快。

  2.2 蓝牙通信模块
  蓝牙通信模块实现两个功能[45]:①蓝牙设备的查找和匹配;②通过蓝牙通信协议,实现模拟传感器数据的发送和手机端数据的接收。
用户登录后,系统程序会首先判断本机蓝牙是否为可用状态,如果处于关闭状态则打开蓝牙,用户通过手动搜索附近蓝牙设备完成与模拟传感器的匹配。
当完成匹配后,模拟传感器开始发送模拟的用户体温数据,并由手机端解析接收。
通过建立一个BluetoothActivity.java类的Activity,用于显示“设备列表”和“开启服务“这两个功能按钮以及蓝牙设备的搜寻。
  2.3 数据显示模块
  数据显示模块实现两个功能[67]:①将实时的体温数据信息展示给用户,并给出相应数据说明;②通过得到的体温数据的变化图表,直观地反映出某一时段身体体温的变化。
每一次通过蓝牙通信模块得到的数据都将实时地反应到用户的手机端。
为了实现数据的实时显示,每当蓝牙传感器发来最新的数据时,系统都会发送一条广播,当接收到数据更新的广播时,通过handler发送消息通知界面更新显示。
为了实现将数据变化以图标的形式显示给用户,系统使用了第三方插件achartengine,用来生成各种数据的图表。

  //注册广播接收器
  IntentFilter filter = new IntentFilter();
  filter.addAction(GlobalUtils.REQUEST_LATEST_TEMPERATURE);
  context.registerReceiver(receiver, filter);
  2.4 数据上传模块
  数据上传模块实现两个功能[89]:一是监控手机端网络状况;二是通过http协议将手机端接收到得数据以XML格式发送至服务器端。
用户手机不一定一直有网络连接,需要监控手机网络的改变,当用户选择提交数据时,如果有网络则直接提交数据到服务器端,如果没有网络则等待网络连接之后再发送。

  数据上传的过程并不可见,当用户点击提交按钮时,系统首先会判断当前手机的网络状态,如果网络处于关闭状态,则用Toast提示用户网络异常。
如果网络可用,则提交数据至服务器,并提示用户上传成功。

  //读取当天生成的数据字段生成XML到SD卡中
  FinalDb db = FinalDb.create(context);
  List temps = db.findAllByWhere(Temperature.class, "date(createDate,'Localtime') = date('NOW','Localtime') AND userId="+((User)HealthApplication.sessionMap.get("logonUser")).getId());
  3 结语
  使用移动医疗系统,用户可以通过移动客户端来了解自己的生理健康状况,远端服务器可以为医生对于患者的检测提供依据,更及时地发现患者的身体变化以便作出准确的诊断。
本文设计的移动医疗系统利用手机模拟医用感器提供体温数据,以Android平台作为中间站,将模拟数据发送到服务器端,并且将体温数据实时显示在用户的手机上,验证了系统设计的可行性。
微信
粤ICP备16001253号-1