基于Android的医疗管理与干预系统的设计与实现

2017-07-05 15:22王丹丹张海英王云峰
网络安全与数据管理 2017年12期
关键词:折线图蓝牙服务器

王丹丹,张海英,王云峰

(1. 中国科学院微电子研究所 新一代通信射频芯片技术,北京 100029;2. 中国科学院微电子研究所 健康电子研发中心,北京 100029; 3.中国科学院大学 微电子学院,北京 100049)



基于Android的医疗管理与干预系统的设计与实现

王丹丹1,2,3,张海英2,王云峰2

(1. 中国科学院微电子研究所 新一代通信射频芯片技术,北京 100029;
2. 中国科学院微电子研究所 健康电子研发中心,北京 100029; 3.中国科学院大学 微电子学院,北京 100049)

现代移动医疗越来越受到人们的重视,市场上也出现很多的医疗终端软件,主要有电子档案管理、免费咨询以及挂号预约等功能,医生则根据用户所说的相关症状分析其健康问题,但是在一些情况下也不可避免会发生误诊事件。针对这种现象,为减少误诊事件的发生,客户端通过蓝牙连接设备,获取设备采集的各项健康数据发送至服务器,并在服务器端和移动端绘制折线图将其可视化。这样医生可以在分析用户病例记录的同时结合其各项健康数据折线图,准确地判断病症原因,从而提出更加实用的健康指导。

客户端;服务器;蓝牙连接;数据可视化

0 引言

智能手机是现代人们日常生活的随身携带的方便物品,市场上基于Android系统的移动终端占有很大比例。Android系统是基于Linux平台的开源移动操作系统[1-2]。本文基于Android的医疗管理与干预系统的设计,利用Android系统的广泛应用,在移动终端上实现快捷传输体征数据以及可视化用户体征数据折线图等功能,避免用户单项描述症状而带来不必要的误诊,实时准确监测用户健康状况,从而预防疾病的发生。

1 系统分析

本系统主要会从可行性分析和需求分析两个角度论述该系统的可靠性和系统实现的功能以及具体实现流程。

1.1 可行性分析

Android是一种以Linux为基础操作系统,是目前开放性最强的移动设备综合平台,使得运营商、手机商以及产业链各环节能够更好、更快地将产品推向市场,同时降低产品成本。

现在市场上出现的移动医疗终端主要实现健康问答、免费咨询以及预约挂号等常用功能。其一,这种情况是在医生不了解患者的病例史前提下;其二,不能实时监测用户的相关健康检测数据,这些都会导致医生误诊的风险。针对这些情况,本设计中Web服务器可以查看用户的病例史记录,而且用户端通过蓝牙传输的方式将健康检测设别测量的数据上传至服务器,并绘制各项历史健康数据折线图,方便医生直观查看,提高准确性。

1.2 需求分析

系统角色说明具体如下,根据该系统的使用范围将角色主要分为用户移动端和医生Web服务器端。

1.2.1 用户移动端

图1 用户移动端的功能及设计流程

用户第一次使用时,通过手机号或者邮箱注册,并通过SharedPreference[3]保存账户和密码来实现自动登录的功能,避免频繁进入登录界面。开启软件选择功能模块,该软件有消息、医生、体征以及我的四个功能模块,具体功能及设计流程如图1所示。

1.2.2 医生Web服务器端

图2 医生Web服务器端的功能及设计流程

医生注册后进入服务器慢病管理功能界面,该界面包含会员列表和健康测评两个功能单元,各单元具体功能及设计流程如图2所示。

服务器将用户ID、名字等信息数据保存在关系型数据库MySQL[4]中,并在我的会员模块中使用pulltorefresh框架的PullToRefreshListView组件将用户信息显示,再通过增、删、改、查等操作管理数据库各表的用户信息[4],同时灵活地使用表的连接、合并等函数满足本系统查询的条件。

2 系统实现

2.1 医生Web端实现

该系统医生Web服务器端主要使用Spring MVC框架[5-6],分离控制器、模型对象、分派器以及处理程序对象,让它们更容易进行控制。客户端发出的HTTP请求发送给Web服务器,服务器对其进行解析后,若匹配DispatcherServlet的请求映射路径成功,将请求转交给DispatcherServlet,然后找到处理请求的处理器Handler。再通过接口回调将ModelAndView对象发送给DispatcherServlet,然后转化为视图View返回给客户端。其中服务器使用MySQL数据库存储,并使用Hibernate持久层框架,负责与数据库有关的操作。

在该系统服务器端使用JFreeChart组件绘制动态心电等数据折线图。首先在Web.xml文件中,配置读取图片的Servlet[7]。自定义绘图工具类ChartUtil,在该类中分别编写用于创建数据集和创建制图对象的方法createDataSet()和createChart(),根据点击事件将相应的健康数据和创建数据集合对象绑定。再创建Servlet的类ChartServlet,通过doGet()方法处理制图请求,最后在程序的首页编写index.jsp,提供查看样式的超链接。其中Web健康测评功能模块中的体征数据单元,可以绘制各项健康数据折线图,如图3所示。

图3 血氧的折线图

2.2 用户终端的具体实现

患者需要注册/登录该软件后,进入基础平台功能模块。该模块由四部分子功能模块组成,如图4所示。

图4 用户端基本功能平台

2.2.1 消息模块

该模块包含问答和预警两个功能单元。问答和预警单元都是按照接口协议,使用开源框架android-async-http[8]建立AsyncHttpClient[9]对象mClient,并调用自定义post方法向服务器发送请求,代码核心如下。

mClient.post(uri,null,new AsyncHttpResponseHandler(){

@override

public void onSuccess(byte[] data){

Gson localGson=new Gson();

Type loclaType=new TypeToken>() {}.getType();

AllResult localAllResult = (AllResult)localGson.fromJson(new String(paramAnonymous2ArrayOfByte), localType);

//将获得的结果在显示在listview组件上

}

@override

public void onFailure(Throwable e ,byte[] data){

Log.e(“Throwable”, “抛出异常”);

}

});

分别接收医患交流的信息记录以及数据异常时返回的健康预警,并显示在listview组件上。

2.2.2 医生模块

在医生模块中使用开源框架pulltorefresh更新医生listview,通过setOnRefreshListener()方法监听其下拉刷新事件,很好地实现下拉刷新库[10]。核心代码如下。

public void onRefresh(PullToRefreshBase refreshView){

if(!isRefreshing){

isRefreshing=true;

updateList(true);

}else{

Listview.onRefreshComplete();

}

}

通过onItemClick方法监听listview的每个item,并跳转到类ManageCom,调用隐示Intent.ACTION_SENDTO实现向医生发送消息;调用隐示Intent.ACTION_DIAL使用拨号面板,再调用隐示Intent.ACTION_CALL实现拨打电话的功能。

2.2.3 体征模块

该模块包含体征数据采集和历史体征数据折线图两个功能单元。

体征数据采集功能单元使用蓝牙获取设备测量的各体征数据,以血糖采集为例,如图5所示。客户端获取蓝牙适配器BluetoothAdapter[11]对象mBA,通过isEnabled()方法查询蓝牙设备开启状态。监听数据按钮时,会默认蓝牙传输数据。本文中系统首先使用BluetoothAdapter对象的getBondedDevices()方法得到配对设备BluetoothDevice的结果集并显示,这样可以避免对已经配过对的设备再次搜索的麻烦,其代码如下。

public List getBondedDevice(){

List devices=new ArrayList<>();

Set pairedDevices=mBA.getBondedDevices();

If(pairedDevices.size()>0){

for(BluetoothDevice device:pairedDevices){

devices.add(device);

}

}

return devices;

}

图5 血糖采集功能实现界面

历史体征折线图:客户端通过接口向服务器请求获取各项数据结果集,避免将大量的数据存储在客户端浪费内存的问题。

客户端使用AChartengine[12]图表库,创建XYMutipleSeriesRenderer的实例renderer,用来给绘制的图形做渲染的句柄,包括曲线的样式和属性等。创建放置曲线点的集合series,再创建一个数据集XYMultipleSeriesDataset的实例mDataset,将点集添加到mDataset中。在新添数据时通过update()更新折线图,这里先将新产生的点加入到点集series中,然后在循环体中将向右移动一位变换后的一系列点重新加入到点集中,最后更新视图,具体代码如下。

series.add(addX , addY);

for(int k=0;k

series.add(x[k] , y[k]);

}

mDataset.addSeries(series);

chart.Invalidate();

2.2.4 我的模块

该模块有记一下和修改密码两个单元。

其中,用户可以选定时间后记录自己的健康数据、身体体质以及一些待问医生的疑惑信息等,并可以选择部分问题提交到服务器上以便医生更加了解用户的身体状况,从而实现适时监测用户的身体健康。 监听“病例记录”即可看见自己的历史病例记录,其界面如图6所示。

图6 病例记录功能模块

定义TAB页面以及四行七列的GridView布局,创建星期、月份以及对应天数的各数组。获取当前Date,计算再GridView中的位置,再将其他位置填写数字。然后监听GridView,获取选中Date数据以及新纪录数据,并使用框架android-async-http向服务器发送数据。

在本文中通过监听手指左右移动事件,来监听月份的增加以及减少,在判断年份text的变化,再重新填写GridView中Date,这样就使得TAB页面被重复利用,减少布局文件所占资源,代码会更加清晰易懂。核心代码如下。

if(beginX-endX>minMove&&Math.abs(velocityX)>minVelocity){

if(month!=12)

month++;

else month=1;

}else if(endX-beginX>minMove&&Math.abs(velocityX)>minVelocity){

if(month!=1)

month--;

else month-=1;

}

tabs.add(tab);

init(tabs);

3 结论

现在人们越来越关注医疗健康的话题,本文设计了基于Android的医疗管理与预测系统。在该系统中移动端复用了TAB页面,实现了在医生Web服务器端利用蓝牙通信获取用户端设备采集的健康数据并可视化以及其他功能。在该系统中很好地结合了健康数据采集设备和移动终端以及Web服务器的支持,使其具有很强的实用性。随着智能终端的普及,该系统将会被广泛推广。

该系统尚存在需要优化的地方,可以开发供IOS系统使用的APP,用户端可以通过扫描二维码的方式,选择下载相应系统下的APP,这样就会较少使用该系统的移动端系统限制。

[1] 张建源. Android开发技术的学习及应用[J]. 现代工业经济和信息化,2014,3(12):62-64.

[2] 赵晓伟. Android开发环境在Linux平台上的搭建[J]. 计算机与数字工程,2016,44(8):1615-1618,1624.

[3] 陈俊龙.Android平台的数据传输与同步的设计与实现[D].北京:北京邮电大学,2015.

[4] 李华明.基于PHP和MySQL的网上购物系统设计与实现[D].成都:电子科技大学,2014.

[5] 薛峰,梁锋,徐书勋,等. 基于Spring MVC框架的Web研究与应用[J]. 合肥工业大学学报(自然科学版),2012,56(3):337-340.

[6] 刘彬. 基于Spring MVC框架的茶楼管理系统的设计与实现[D].长春:吉林大学,2015.

[7] 李萍. 基于JSP+Servlet技术的在线考试系统的设计与实现[J]. 数字技术与应用,2015,32(7):168.

[8] 陈蔚,周兰江,王红斌,等. 基于Android的旅行翻译语音情景助手APP设计与实现[J].微型电脑应用,2016,32(4):30-33,39.

[9] 徐朋.基于SOCKET的跨平台通讯系统的研究与设计[D].大连:大连理工大学,2015.

[10] 刘晓杰. 基于Android的移动学习平台的设计与实验[D].北京:北京工业大学,2015.

[11] 陈钰琨. 基于Android系统的蓝牙远程控制的研究 [D].北京:北京理工大学,2015.

[12] 王晶. Android图形绘制在汽车实时信息展示系统中的研究[D].广州:中山大学,2014.

The design and implementation of medical management and prediction system based on Android

Wang Dandan1,2,3, Zhang Haiying2, Wang Yunfeng2

(1. New Generation of RF Communications Chip Technology, Institute of Microelectronics of Chinese Academy of Sciences, Beijing 100029, China;2. Health Electronic R & D Center, Institute of Microelectronics of Chinese Academy of Sciences, Beijing 100029, China;3. Academy of Microelectronics, University of Chinese Academy of Sciences School of Electronic, Beijing 100049, China)

More people pay attention to modern mobile medical treatment . And there are many kinds of medical terminal software in the market, which have the functions sach as electronic file management, free consultation and registered appointment and so on. The doctors analyze their health problems according to the related symptoms mentioned by the users. In some cases, misdiagnosis can not be avoided. In this paper, in order to reduce the incidence of misdiagnosis, the client connects the device through Bluetooth acquiring the data of ECG and blood oxygen and so on.At the same time ,the client sends those data to the server.We draw the line chart to visualize it in the server and client. Doctors can analyze the user′s case records, combined with their health data, so that determine the cause of the disease accurately and put forward more practical health guidance.

client; server; Bluetooth connection; data visualization

TP3

A

10.19358/j.issn.1674- 7720.2017.12.030

王丹丹,张海英,王云峰.基于Android的医疗管理与干预系统的设计与实现[J].微型机与应用,2017,36(12):102-105.

2016-12-25)

王丹丹(1990-),女,硕士研究生,主要研究方向:医疗电子。

张海英(1964-),女,博士,研究员,主要研究方向:射频集成电路设计、健康电子医疗。

王云峰(1981-),男,博士,副研究员,主要研究方向:射频集成电路设计、便携式医疗电子设计。

猜你喜欢
折线图蓝牙服务器
蓝牙音箱的直线之美
数据增加折线图自动延长
通信控制服务器(CCS)维护终端的设计与实现
PowerTCP Server Tool
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
让折线图显示在一个单元格中
再多也不乱 制作按需显示的折线图
美化Excel折线图表
得形忘意的服务器标准