基于Android平台的无线智能社区医疗系统设计与实现
位置: 首页 >教案设计 > 文章内容

基于Android平台的无线智能社区医疗系统设计与实现

2022-10-29 14:10:06 来源:网友投稿

zoޛ)j首医师资源匮乏,以及如何提高社区医疗机构的诊断水平这一问题,本系统提出基于Android平台的无线社区智能医疗系统设计方案,采用Android智能终端接收传感器采集到的社区居民的生理指标,通过无线通信网络上传到服务器,由专业医师进行诊断,形成居民健康档案。社区居民也可通过系统实时查看自己的健康档案。

关键词: Android;Bluetooth;社区卫生服务;移动医疗系统

中图分类号: TP319 文献标识码: A 文章编号: 2095-8153(2015)03-0103-04

作者简介: 张 明(1976-),男,湖北工业职业技术学院信息与智能工程系讲师;戴友元(1962-),男,湖北工业职业技术学院信息与智能工程系教授。

0 引言

随着社会的发展和人口老龄化的趋势,社区卫生服务已从单纯面对面的社区医疗服务发展出了以未病预防保健监测为主的医疗模式。大病进医院,小病进社区是比较合理的医疗资源配置方式,社区医疗机构将成为预防保健、基本医疗、健康教育、疾病控制等社区卫生服务的主体[1]。但社区医疗机构其设施、诊疗水平等客观条件与大医院之间仍存在较大差距,并且许多社区医疗机构业务单一、技术水平偏低,普遍缺乏全科医生和高级人才。

本文针对社区医疗系统存在的缺陷结合当代医疗系统发展的趋势,使用Android智能终端接收由便携式蓝牙医疗设备采集到的社区居民的生理指标,通过无线通信网络上传到服务器,由专业医师进行诊断,在社区患者和专业医师之间架设医疗信息平台,使社区居民在家就能享受到优质的医疗资源,同时减轻了大医院的压力。

1 系统结构

系统主要包括各种便携蓝牙医疗数据采集设备、嵌入式采集节点、Android移动智能医疗终端,无线通信网络、社区医疗软件模块、医院健康监护模块等。

便携蓝牙医疗数据采集设备采用蓝牙方式与医疗终端进行短距离通信,既可以保证数据传输的稳定性,又降低了上门服务或家用的复杂性。医疗终端与远程服务器间使用低成本的Wifi或3G通信方式,既可以满足家用又适用于一些特定没有网络的场合。

1.1 蓝牙医疗数据采集设备

系统通过各种便携式蓝牙医疗设备采集患者的生理参数:蓝牙血压计、蓝牙心电传仪、手持蓝牙体温仪、蓝牙血糖仪,在选用设备时要保证其实时性、稳定性和准确性。当便携式医疗数据采集器出现问题或者收发数据出现错误时,能及时报警并提示用户作出相应处理。

1.2 蓝牙通信协议

蓝牙(Bluetooth)是一个标准的无线通讯协议[2],基于设备低成本的收发器芯片,传输距离近、低功耗。蓝牙协议是基于数据包、有着主从架构的协议。一个主设备至多可和同一微网中的七个从设备通讯。便携式蓝牙数据设备节点采集到的数据通过蓝牙无线技术传送到智能终端中,进行处理,若出现设备节点连接失败,智能终端必须及时进行通告,并进行重新扫描、连接设备的操作。

1.3 智能终端平台

智能终端采用Android平台,通过蓝牙医疗数据采集设备采集患者的生理参数,然后对获取的数据进行处理如心电信号的最大最小RR间期[3]、心率统计等操作,同时对获取的数据作出简单分析和处理,并简单分析患者的健康状态,最后将数据上传到医师工作系统。

1.4 医师工作站

Android移动智能医疗终端使用WIFI/3G/4G无线通信网络与远程服务器连接,将患者数据上传,并建立患者健康档案,实现患者的个人信息管理、历史健康档案查询等功能。在医师工作站,医护人员可以通过查看患者的各种生理特征参数对患者进行实时诊断,并给出分析报告,为用户提供及时、便捷、准确的医疗服务。同时对于需要进一步进行治疗的患者,为其住院或者转院治疗提供诊断数据支持。

2 系统设计与实现

2.1 Android移动智能医疗终端设计

Android移动智能医疗终端主要包括:登录模块、同步任务模块、患者选择、系统设置模块、数据统计显示模块、心电采集模块、血压采集模块、血糖采集模块、体温检测模块、蓝牙数据通信模块。

2.2 用户登录模块

医师输入用户名和密码(或通过RFID刷卡登录),其中密码是经过MD5加密,将用户和密码发送到服务器端进行验证,验证通过后,进入系统主界面,并根据用户ID来显示该医师的病人信息。用户信息的管理采用Android系统自带的轻量级数据库SQLite,SQLite是遵守ACID的关联式数据库,资源占用率低,只需要几百K的内存。服务器端采用MySql数据库,MySql是开源的关联数据库管理系统,它为多种编程语言提供了API。这些编程语言包括 C/C++、Java、PHP等,支持多线程操作,能充分利用 CPU 资源。

2.3 患者选择模块

患者选择模块有三个功能:当医师点击“患者选择”按钮后,进入患者选择模块。进入该模块时,自动从远程服务器端下载“待诊治患者名单”及“患者诊治任务”,同时显示患者的基本信息;当医师选择了待诊治患者后,进入“诊治任务选择界面”,该界面显示当前患者的诊治项目;点击进入诊治项目开始对患者进行诊治。

当医师选择一个诊治后,系统启用蓝牙任务处理服务,通过传递的任务TASK名称启动对应服务,如Task.BT_READ_BAT表示启动心电图服务,然后启动后台的一个数据处理服务,显示测量界面的Activity窗口。

代码如下:

if(BluetoothConnection.getConnection(this).initBluetoothService(this,

BluetoothConnection.TYPE_BLOOD_PRESSURE)) {// 启动蓝牙任务处理服务

startService(new Intent(this, BluetoothTalkService.class));// 启动后台数据处理服务

startService(new Intent(this, TaskService.class));

receiver = new BTReceiver();

registerReceiver(receiver, new IntentFilter(

BluetoothConnection.ACTION_BLUETOOTH_CONNECTED));

btnBack.setEnabled(false);

// 启动计数线程

mTimeThread = new TimeTickThread();

mTimeThread.start();

}

2.4 蓝牙通信模块

蓝牙通信模块主要实现三个功能:蓝牙设备的连接和匹配,由BluetoothConnection类实现;蓝牙设备的数据输入输出处理,由BluetoothIO类实现;对用选择的蓝牙设备进行调用,由BluetoothTalkService类实现。当用户登录系统后系统首选会打开Android智能终端的蓝牙开关,对搜索到的蓝牙设备进行匹配。当用户选择启动相关的蓝牙设备后,首先创建一个蓝牙广播接收对象BluetoothReceiver用来获取蓝牙设备相关的信息。然后创建连接蓝牙线程ReadyConnectThrea用来连接蓝牙设备,通过蓝牙设备套接字BluetoothSocket得到输入输出流,最终将设备测量数据返回到BluetoothTalkService类中动态更新测量界面,显示测量结果。 程序使用的语句如下:

String addr = SysSettings.getBondDeviceAddr(mContext, type);//初始化蓝牙设备

btReceiver = new BluetoothReceiver();//注册蓝牙设备

在与蓝牙设备进行数据传输的过程中,Android智能终端和便携式蓝牙医疗设备分别充当了Server和Client,Server端通过UUID来建立BluetoothServerSocket,接收并响应来自蓝牙设备的连接请求[4]。Client端通过实例化的BluetoothDevice建立一个BluetoothSocket,实现和Server端的连接。最后Server端调用BluetoothServerSocket的accept方法返回一个BluetoothSocket对象,获取到IOStream实现蓝牙数据的接收。在程序中使用的语句如下:

task.mResult = BluetoothIO.readBarCode(conn.getInputStream());//读取条形码数据

task.mResult = BluetoothIO.readBatteryLevel(conn.getOutputStream(), conn.getInputStream());//读取心电电量

2.5 数据统计显示模块

数据显示模块主要包括体温、血压、心率、心电数据的显示。体温、血压、心率通过自定义协议类按照设备数据的传输参数获取相关数据,例如体温数据通过自定义体温计数据协议类TempertureProtocol来获得。

心电数据包含的数据较多并且构成复杂,而Android客户端需要显示患者心电测量数据的所有信息,并兼顾界面的友好性,同时又受到Android智能设备的屏幕尺寸的限制,心电波形的显示使用了Android的canvas.drawLine()方法。

心电数据的获取需要启动一个service在后台运行,在service中首先定义一个类XdProtocol按照心电设备的参数和校验方法获取心电数据。然后定义类XdDateHolder,在类中建立并维护一个缓冲区,用来保存心电数据。最后使用自定义的心电图类XdView,来实现心电图的绘制,在绘制心电图示每个心电数据数量绘制一个像素点。

3 服务器端的设计与实现

服务器端采用ASP.NET+SqlSever+Ajax架构[5],向客户端提供WebServices服务,Android智能终端通过访问服务器提供的WebServices服务上传采集到并且处理好的患者生理数据到医师平台。

由于Android智能终端访问服务器端是一种异构程序访问机制,在两者之间传输的数据格式会存在不同,这时需要考虑数据的兼容性,要对数据进行封装。常用的数据封装格式有json和xml,json具有简单易用优点,在读写时耗费的资源也较少,可以基本满足大部分数据的封装要求。本例中采用json格式对患者的数据进行封装,然后上传。心电数据的格式采用byte[]保存,然后再封装到封装类JsonUploadResult对象中。服务器接收到上传的数据后会返回医师的检验结果,医师的检验结果也是以json格式返回的,Android智能终端对结果解析后提供给患者。

4 结束语

基于Android的社区智能医疗系统操作简单,能够有效地提高社区医疗质量,同时能够提高老年患者的健康监护水平,解决目前人口老龄化带来的社会难题。同时本系统硬件设备具有便携移动特点,能实时地为患者提供服务,通过医师平台实现远程诊断,扩大了移动医疗的范围,更好地造福于民。本系统在远程医疗、个人家庭护理、社区医疗护理、慢性病防治等方面有重要的应用价值。

[参考文献]

[1] 陈平平,谭定英,刘慧玲.基于云计算的移动社区医疗服务平台应用[J]. 计算机工程与设计,2012(3):99-101.

[2] 石永芳,姜 宏,尹 川.Android平台移动医疗监控客户端设计与实现[J].软件导刊, 2015(1):121-122.

[3] 陈铨琨,马忠梅,曾 礼.Android系统的蓝牙远程控制研究[J].专题论述, 2015(1):16-19.

[4] 孟欢欢,张 跃.基于Android心电信息管理系统的设计与实现[J].计算机工程与设计, 2015(1):276-281.

[5] 张玉泉,方丽华,邱 悦.基于Android手机的移动移动健康医疗辅助系统[J].卫生与健康, 2014(3):623-624.


推荐访问:无线智能 医疗 设计 系统 平台

猜你喜欢