智能手机的运动量干预软件的研制

2012-06-08 11:15杨文君杨波王保强
中国医疗器械杂志 2012年4期
关键词:运动量上位使用者

杨文君,杨波*,王保强

成都信息工程学院,物理场生物效应及仪器四川省高校重点实验室,四川,成都,610225

0 引言

行为医学是综合行为科学和生物医学科学知识的一门新兴的多学科交叉的学科,在我国兴起只有短短的十余年。但随着科学技术的进步和人们生活水平的提高,行为医学得到了迅速的发展[3]。它研究行为科学中与健康相关的知识和技术,并把这些知识和技术应用于疾病的预防、诊断、治疗和康复的学科领域。行为医学关注的重点是那些与人的健康关系密切的行为的研究,从而指导人们树立健康行为,矫正异常行为,改变不合理的生活方式和不良习惯。

随着我国人民生活水平的不断提高,汽车等交通工具的日益普及,步行运动和体力活动越来越少,诸多因素促成了肥胖、高血压、糖尿病和血脂异常等生活方式相关性疾病的流行,并越来越威胁着人们的健康和生命[4]。我国目前约有25% 的城市居民患各种慢性病,60% 的就诊病人为慢性病人 ,慢性病正日益严重地威胁着我国人民的健康,已成为重要的社会公共问题和医疗经济增长的主要原因[5]。

传统的运动量的定义也称为运动负荷,指人体在体育活动中所承受的生理、心理负荷量以及消耗的热量,由完成练习的运动强度、持续时间、动作的准确性和运动项目特点等因素所决定。本文所述的运动量主要是指散步或者跑步的次数,通过智能手机的运动管理软件来处理该运动量。智能手机的运动量干预属于行为医学的范畴。

根据专家的调查显示,人们在运动过程中应该注意监测自己的健康状态,尤其是糖尿病、高血压等慢性病患者要定期监测自己的各项健康指标,随时调整运动量,避免运动过量导致猝死等严重后果。心脏病患者最怕运动时过度激烈或者时间过长,从而引起心脏病的发作。如果是长期不运动的人,这些危险更容易发生[6],所以需要对他们身体锻炼进行监督和鞭策。本文基于干预治疗的理论,不论是对一些不能过度运动的患者还是对那些必须进行身体锻炼者,进行一种运动干预的作用。通过使用智能手机的运动量干预软件监督和管理,实时的记录他们的锻炼情况,并通过远程健康管理中心根据患者身体信息及时调整运动量,以达到对患者最有效最安全的目的。

1 方法归类

1.1 系统结构设计

系统结构设计包括:

(1) 设计运动功能,识别使用者运动状态。实现开始运动、暂停运动和停止运动三个基本功能状态的管理;

(2) 设计SQL数据库存储功能,存储每次的运动信息以及与远程上位机网络连接通信;

(3) 设计运动坐标图显示以及运动量查询功能。根据运动情况绘制运动数据坐标图,通过直观的坐标图显示以及运动量查询功能查看具体时间运动情况,使用者可以清楚的了解自己的运动情况,根据自己的身体情况增加和减少运动量;

(4) 上位机端的网络通信以及数据建立。

图1 系统结构设计Fig.1 Structure design of system

1.2 运动量计算编程

因为该软件需要通过调用android智能手机的加速度传感器,利用加速度传感器的特性来判断使用者的运动情况并且记录运动信息,所以软件编程时必须先引入关于传感器几个重要的的包文件[1],包括:android.hardware.sensor、android.hardware.sensorEvent、android.hardware.sensorManager以及android.hardware.sensorEventListener。

在使用加速度传感器前,需要对传感器进行初始化和注册以后才能使用,使用完后要注销该传感器[1]。初始化加速度传感器获得该传感器的使用权限。初始化和注册传感器的代码都编写在开始按钮函数代码段当中,当用户点击开始运动按钮后,加速度传感器就可以正常使用。注销传感器的代码编写在停止按钮函数代码段中,当使用者停止运动后,需要点击停止按钮,此时注销加速度传感器。

当注册好传感器后,就能开始对运动量计算进行编程。计算编程时在代码段必须要复写onSensorChanged(SensorEvent event)函数,因为在运动时传感器的三个坐标值在不断变化,变化值就是event.value[3]这个浮点型数组,从而能通过event.value[3]浮点型数组里的三个坐标前后值的变化来判断使用者是否在运动。在event.value[3]浮点型数组中,event.value[0]代表x轴,event.value[1]代表y轴,event.value[2]代表z轴,当在使用运动传感器时,这三个坐标值在不停变化。坐标轴方向如图2所示。

图2 坐标方向Fig.2 Direction of Coordinate

每隔200 ms去取一次浮点数组event.value[3]的值,把它存起来。前一个200 ms为旧值存储在一个浮点型数组里old Points。当前取得值为新值存储在另一个浮点型数组里new Points。由它们的坐标值分别求出模值old Mold、new Mold,以此算出向量改变的夹角。当改变夹角angle大于20o时,判定使用者在运动此时增加一次运动量,并实时显示此时的运动量。

当使用者点击停止按钮停止运动时,注销传感器的同时把当前的运动时间和运动量存入SQL数据库。

1.3 手机界面设计

界面设计涉及到3个Activity:一个主界面的布局、一个坐标图显示以及一个运动量具体时间查询的界面.3个Activity均采取LinearLayout布局[2]。

(1) 主界面涉及到背景、按钮和文本框显示的设计。

(2) 坐标图采用canvas设计,通过引入canvas、Paint和Color的包文件,包括android.graphics.Canvas,android.graphics.Color ,android.graphics.Paint 。 Piant设置画笔的特性,如paint.setColor(Color.GREEN)用来设置画笔的颜色。drawLinew函数用来绘制坐标横轴、纵轴和点之间的连线,其中横轴代表时间,纵轴代表运动量。drawCircle函数用来绘制坐标点,这些坐标点通过读取数据库的时间和与之对应的运动量进行绘制。drawText函数用来显示这些绘制,使用者就可以通过绘制的坐标图直观地观察到自身最近的运动情况。

(3) 运动量时间查询界面设计了一个时间控件,需要引入的数据包有android.widget.DatePicker,android.app.DatePickerDialog,android.app.Dialog,android.app.TimePickerDialog。使用者通过输入时间来准确查询当天运动量。

通过坐标图和运动量查询功能,使用者可以及时地了解自己的运动情况,从而根据自身的情况增加和减少运动量。

1.4 手机与上位机间的通信

在手机运用程序中的开始运动按钮中,设置连接远程上位机服务器的操作,在点击运动按钮的同时,后台通过socket与指定的IP地址和端口号连接并建立数据流。在停止运动按钮中设置运动信息的发送功能,当点击停止运动按钮后,后台发送运动信息到上位机进行存储,便于远程健康管理中心能及时了解使用者的运动情况,并可以根据使用者的身体情况制定适合的运动量反馈给使用者。断开连接的操作复写到onPause()函数中,当退出该程序时直接关闭socket连接和数据流发送[1]。手机端socket连接上位机,并进行数据传输的程序流程如图3所示。

在上位机开发平台,应用VC6.0程序新建一个线程,后台监听手机端发送的使用者运动信息,并且将其按使用者的编号进行存储数据。程序首先建立java虚拟机,然后查看java程序:jclass cls = env->FindClass( "NumFile" ),获取socket通信端口发送过来的消息jstring result=(jstring)env->CallStaticObjectMethod(cls, mid,env->NewStringUTF( strUTF8.c_str() ) ),并且对信息分类存储。socket接受程序命名为NumFile.java。上位机端socket连接程序流程如图4所示。

图3 手机socket连接程序流程图Fig.3 The flow chart of mobile phone socket connection program

图4 上位机socket连接程序流程图Fig.4 The flow chart of PC socket connection program

1.5 上位机系统结构设计

在上位机中首先设置数据库存储,存储患者基本信息、体检状态、运动量计划和运动量四个信息,结构如图5所示。

图5 上位机数据库结构Fig.5 Database structure of PC

患者基本信息可以使医生准确地了解患者的各种信息,以便根据患者的情况制定科学的身体锻炼强度,再把这个锻炼强度反馈给患者,防止患者运动过量的情况发生。体检状况可以反映最近一段时间患者使用该干预系统以后身体的情况,可以根据每个人自己的身体状况制定运动计划,从而达到最好的运动效果。运动量信息反映了使用者最近的使用情况,如果运动量强度太小或者太多时,远程健康管理中心可以及时反馈信息给使用者,提醒他应该加强还是降低锻炼强度,起到监督使用者的作用。

2 结果

2.1 上位机通信结果

在上位机开发平台上应用VC6.0编写运动量干预系统软件,监听和接收手机发送来的运动信息并存储在上位机数据库里。上位机运动量干预系统主界面如图6所示。

图6 运动量干预系统Fig.6 The invention system of exercise amount

2.2 手机界面

智能手机界面有三个Activity显示,包括一个主界面,如图7所示;一个运动量坐标显示界面,如图8所示;还有一个运动量查询界面,如图9所示。

图7 手机主界面Fig.7 The interface of mobile phone

图8 运动量坐标图显示Fig.8 The coordinates figure shows of exercise amount

3 讨论

图9 运动量查询Fig.9 The exercise amount inquires

基于智能手机运动量的行为干预,可应用于行为医学,作为行为治疗的新手段。运用运动量干预软件来帮助用户,特别是帮助慢性病患者,使他们能科学地进行身体锻炼。例如对于肥胖2型糖尿病患者,增加步行运动量至19 000步/d,7周后与运动量保持在4 500步/d者相比,不仅能起到明显的减轻体重作用(减少7.8 kg),而且可显著提高胰岛素的敏感性[7]。在步行运动实践中,媒体和大众健康教育者普遍推荐的处方是每天步行10 000步,这一概念可追溯到30多年前国外的一些商业口号、日本步行俱乐部提出的口号,也得到了一些研究者的认可。但这一目标对于某些人群如老年人和一些慢性病患者可能太高,而对于儿童(防止肥胖)而言则太低,也就是说并不适宜所有人群[8][9]。所以需要健康管理中心结合使用者的实际病况和体检状况,合理的制定运动量并观察使用者的运动情况。对于一些特殊慢性病患者要防止因运动过量而导致猝死等严重后果;对于需要身体锻炼而懒惰的慢性病患者,需要提醒督促。所以健康管理中心这种及时的有效的监督指导,能使使用者进行科学合理的运动,只有这样才能到达最好最安全的运动效果,从而让慢性病患者逐步调整自己的身体状况。通过使用该软件对用户长期的干预,锻炼身体的同时并且纠正自身不良生活习惯,从而脱离慢性病的困扰,走进健康者的行列。

[1]杨丰盛. Android应用开发揭秘[M].北京.机械工业出版社,2010

[2]靳岩, 姚尚朗.Android开发入门与实践[M].北京.人民邮电出版社, 2009

[3]甘露, 王志玲, 黄庆军, 等.我国行为医学研究进展[J].白求恩军医学院学报, 2006, 4(1): 35-36.

[4]雒生杰, 孟申.定量步行运动在慢性病康复中的研究现状[J].中国康复理论与实践, 2008, 14(9): 847-848.

[5]李桂雪, 鞠彩红, 刘媛媛, 等.我国慢性病现状与自我管理[J].黑龙江医学, 2010, 34(4): 299-300.

[6]刘姿含.慢性病患者运动要选适合自己的[J].药物与人, 2008,12:73-74.

[7]Yamanouchi K, Shinozaki T, Chikada K, et a1.Daily walking cornbined with diet therapy is a useful means for obese NIDDM patients not only to reduce body weight but also to improve insulin sensitivity [J].Diabetes Care, l995, 18(6): 775-778.

[8]Tudor-Locke C, Pangrazi RP, Corbin CB, et a1.BMI-referenced standards for recommended pedometer determined steps/day in children[J].Prev Med, 2004, 38(6): 857-864

[9]Tudor Locke C, Bassett DR Jr.How many steps/day are enough Preliminary pedometer indices for public health[J].Sports Med,2004, 34(1): 1-8.

猜你喜欢
运动量上位使用者
大树的日常
运动量
每天基本运动量:走4000步
要攻城略地关键要有好筹码,这匹水产动保“黑马”如何能迅速上位?
特斯拉 风云之老阿姨上位
新型拼插休闲椅,让人与人的距离更近
基于ZigBee和VC上位机的教室智能监测管理系统
抓拍神器
他汀或增肌肉骨骼不良反应
梦乡床