楊文君,楊波*,王保強(qiáng)
成都信息工程學(xué)院,物理場(chǎng)生物效應(yīng)及儀器四川省高校重點(diǎn)實(shí)驗(yàn)室,四川,成都,610225
行為醫(yī)學(xué)是綜合行為科學(xué)和生物醫(yī)學(xué)科學(xué)知識(shí)的一門(mén)新興的多學(xué)科交叉的學(xué)科,在我國(guó)興起只有短短的十余年。但隨著科學(xué)技術(shù)的進(jìn)步和人們生活水平的提高,行為醫(yī)學(xué)得到了迅速的發(fā)展[3]。它研究行為科學(xué)中與健康相關(guān)的知識(shí)和技術(shù),并把這些知識(shí)和技術(shù)應(yīng)用于疾病的預(yù)防、診斷、治療和康復(fù)的學(xué)科領(lǐng)域。行為醫(yī)學(xué)關(guān)注的重點(diǎn)是那些與人的健康關(guān)系密切的行為的研究,從而指導(dǎo)人們樹(shù)立健康行為,矯正異常行為,改變不合理的生活方式和不良習(xí)慣。
隨著我國(guó)人民生活水平的不斷提高,汽車(chē)等交通工具的日益普及,步行運(yùn)動(dòng)和體力活動(dòng)越來(lái)越少,諸多因素促成了肥胖、高血壓、糖尿病和血脂異常等生活方式相關(guān)性疾病的流行,并越來(lái)越威脅著人們的健康和生命[4]。我國(guó)目前約有25% 的城市居民患各種慢性病,60% 的就診病人為慢性病人 ,慢性病正日益嚴(yán)重地威脅著我國(guó)人民的健康,已成為重要的社會(huì)公共問(wèn)題和醫(yī)療經(jīng)濟(jì)增長(zhǎng)的主要原因[5]。
傳統(tǒng)的運(yùn)動(dòng)量的定義也稱(chēng)為運(yùn)動(dòng)負(fù)荷,指人體在體育活動(dòng)中所承受的生理、心理負(fù)荷量以及消耗的熱量,由完成練習(xí)的運(yùn)動(dòng)強(qiáng)度、持續(xù)時(shí)間、動(dòng)作的準(zhǔn)確性和運(yùn)動(dòng)項(xiàng)目特點(diǎn)等因素所決定。本文所述的運(yùn)動(dòng)量主要是指散步或者跑步的次數(shù),通過(guò)智能手機(jī)的運(yùn)動(dòng)管理軟件來(lái)處理該運(yùn)動(dòng)量。智能手機(jī)的運(yùn)動(dòng)量干預(yù)屬于行為醫(yī)學(xué)的范疇。
根據(jù)專(zhuān)家的調(diào)查顯示,人們?cè)谶\(yùn)動(dòng)過(guò)程中應(yīng)該注意監(jiān)測(cè)自己的健康狀態(tài),尤其是糖尿病、高血壓等慢性病患者要定期監(jiān)測(cè)自己的各項(xiàng)健康指標(biāo),隨時(shí)調(diào)整運(yùn)動(dòng)量,避免運(yùn)動(dòng)過(guò)量導(dǎo)致猝死等嚴(yán)重后果。心臟病患者最怕運(yùn)動(dòng)時(shí)過(guò)度激烈或者時(shí)間過(guò)長(zhǎng),從而引起心臟病的發(fā)作。如果是長(zhǎng)期不運(yùn)動(dòng)的人,這些危險(xiǎn)更容易發(fā)生[6],所以需要對(duì)他們身體鍛煉進(jìn)行監(jiān)督和鞭策。本文基于干預(yù)治療的理論,不論是對(duì)一些不能過(guò)度運(yùn)動(dòng)的患者還是對(duì)那些必須進(jìn)行身體鍛煉者,進(jìn)行一種運(yùn)動(dòng)干預(yù)的作用。通過(guò)使用智能手機(jī)的運(yùn)動(dòng)量干預(yù)軟件監(jiān)督和管理,實(shí)時(shí)的記錄他們的鍛煉情況,并通過(guò)遠(yuǎn)程健康管理中心根據(jù)患者身體信息及時(shí)調(diào)整運(yùn)動(dòng)量,以達(dá)到對(duì)患者最有效最安全的目的。
系統(tǒng)結(jié)構(gòu)設(shè)計(jì)包括:
(1) 設(shè)計(jì)運(yùn)動(dòng)功能,識(shí)別使用者運(yùn)動(dòng)狀態(tài)。實(shí)現(xiàn)開(kāi)始運(yùn)動(dòng)、暫停運(yùn)動(dòng)和停止運(yùn)動(dòng)三個(gè)基本功能狀態(tài)的管理;
(2) 設(shè)計(jì)SQL數(shù)據(jù)庫(kù)存儲(chǔ)功能,存儲(chǔ)每次的運(yùn)動(dòng)信息以及與遠(yuǎn)程上位機(jī)網(wǎng)絡(luò)連接通信;
(3) 設(shè)計(jì)運(yùn)動(dòng)坐標(biāo)圖顯示以及運(yùn)動(dòng)量查詢功能。根據(jù)運(yùn)動(dòng)情況繪制運(yùn)動(dòng)數(shù)據(jù)坐標(biāo)圖,通過(guò)直觀的坐標(biāo)圖顯示以及運(yùn)動(dòng)量查詢功能查看具體時(shí)間運(yùn)動(dòng)情況,使用者可以清楚的了解自己的運(yùn)動(dòng)情況,根據(jù)自己的身體情況增加和減少運(yùn)動(dòng)量;
(4) 上位機(jī)端的網(wǎng)絡(luò)通信以及數(shù)據(jù)建立。
圖1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)Fig.1 Structure design of system
因?yàn)樵撥浖枰ㄟ^(guò)調(diào)用android智能手機(jī)的加速度傳感器,利用加速度傳感器的特性來(lái)判斷使用者的運(yùn)動(dòng)情況并且記錄運(yùn)動(dòng)信息,所以軟件編程時(shí)必須先引入關(guān)于傳感器幾個(gè)重要的的包文件[1],包括:android.hardware.sensor、android.hardware.sensorEvent、android.hardware.sensorManager以及android.hardware.sensorEventListener。
在使用加速度傳感器前,需要對(duì)傳感器進(jìn)行初始化和注冊(cè)以后才能使用,使用完后要注銷(xiāo)該傳感器[1]。初始化加速度傳感器獲得該傳感器的使用權(quán)限。初始化和注冊(cè)傳感器的代碼都編寫(xiě)在開(kāi)始按鈕函數(shù)代碼段當(dāng)中,當(dāng)用戶點(diǎn)擊開(kāi)始運(yùn)動(dòng)按鈕后,加速度傳感器就可以正常使用。注銷(xiāo)傳感器的代碼編寫(xiě)在停止按鈕函數(shù)代碼段中,當(dāng)使用者停止運(yùn)動(dòng)后,需要點(diǎn)擊停止按鈕,此時(shí)注銷(xiāo)加速度傳感器。
當(dāng)注冊(cè)好傳感器后,就能開(kāi)始對(duì)運(yùn)動(dòng)量計(jì)算進(jìn)行編程。計(jì)算編程時(shí)在代碼段必須要復(fù)寫(xiě)onSensorChanged(SensorEvent event)函數(shù),因?yàn)樵谶\(yùn)動(dòng)時(shí)傳感器的三個(gè)坐標(biāo)值在不斷變化,變化值就是event.value[3]這個(gè)浮點(diǎn)型數(shù)組,從而能通過(guò)event.value[3]浮點(diǎn)型數(shù)組里的三個(gè)坐標(biāo)前后值的變化來(lái)判斷使用者是否在運(yùn)動(dòng)。在event.value[3]浮點(diǎn)型數(shù)組中,event.value[0]代表x軸,event.value[1]代表y軸,event.value[2]代表z軸,當(dāng)在使用運(yùn)動(dòng)傳感器時(shí),這三個(gè)坐標(biāo)值在不停變化。坐標(biāo)軸方向如圖2所示。
圖2 坐標(biāo)方向Fig.2 Direction of Coordinate
每隔200 ms去取一次浮點(diǎn)數(shù)組event.value[3]的值,把它存起來(lái)。前一個(gè)200 ms為舊值存儲(chǔ)在一個(gè)浮點(diǎn)型數(shù)組里old Points。當(dāng)前取得值為新值存儲(chǔ)在另一個(gè)浮點(diǎn)型數(shù)組里new Points。由它們的坐標(biāo)值分別求出模值old Mold、new Mold,以此算出向量改變的夾角。當(dāng)改變夾角angle大于20o時(shí),判定使用者在運(yùn)動(dòng)此時(shí)增加一次運(yùn)動(dòng)量,并實(shí)時(shí)顯示此時(shí)的運(yùn)動(dòng)量。
當(dāng)使用者點(diǎn)擊停止按鈕停止運(yùn)動(dòng)時(shí),注銷(xiāo)傳感器的同時(shí)把當(dāng)前的運(yùn)動(dòng)時(shí)間和運(yùn)動(dòng)量存入SQL數(shù)據(jù)庫(kù)。
界面設(shè)計(jì)涉及到3個(gè)Activity:一個(gè)主界面的布局、一個(gè)坐標(biāo)圖顯示以及一個(gè)運(yùn)動(dòng)量具體時(shí)間查詢的界面.3個(gè)Activity均采取LinearLayout布局[2]。
(1) 主界面涉及到背景、按鈕和文本框顯示的設(shè)計(jì)。
(2) 坐標(biāo)圖采用canvas設(shè)計(jì),通過(guò)引入canvas、Paint和Color的包文件,包括android.graphics.Canvas,android.graphics.Color ,android.graphics.Paint 。 Piant設(shè)置畫(huà)筆的特性,如paint.setColor(Color.GREEN)用來(lái)設(shè)置畫(huà)筆的顏色。drawLinew函數(shù)用來(lái)繪制坐標(biāo)橫軸、縱軸和點(diǎn)之間的連線,其中橫軸代表時(shí)間,縱軸代表運(yùn)動(dòng)量。drawCircle函數(shù)用來(lái)繪制坐標(biāo)點(diǎn),這些坐標(biāo)點(diǎn)通過(guò)讀取數(shù)據(jù)庫(kù)的時(shí)間和與之對(duì)應(yīng)的運(yùn)動(dòng)量進(jìn)行繪制。drawText函數(shù)用來(lái)顯示這些繪制,使用者就可以通過(guò)繪制的坐標(biāo)圖直觀地觀察到自身最近的運(yùn)動(dòng)情況。
(3) 運(yùn)動(dòng)量時(shí)間查詢界面設(shè)計(jì)了一個(gè)時(shí)間控件,需要引入的數(shù)據(jù)包有android.widget.DatePicker,android.app.DatePickerDialog,android.app.Dialog,android.app.TimePickerDialog。使用者通過(guò)輸入時(shí)間來(lái)準(zhǔn)確查詢當(dāng)天運(yùn)動(dòng)量。
通過(guò)坐標(biāo)圖和運(yùn)動(dòng)量查詢功能,使用者可以及時(shí)地了解自己的運(yùn)動(dòng)情況,從而根據(jù)自身的情況增加和減少運(yùn)動(dòng)量。
在手機(jī)運(yùn)用程序中的開(kāi)始運(yùn)動(dòng)按鈕中,設(shè)置連接遠(yuǎn)程上位機(jī)服務(wù)器的操作,在點(diǎn)擊運(yùn)動(dòng)按鈕的同時(shí),后臺(tái)通過(guò)socket與指定的IP地址和端口號(hào)連接并建立數(shù)據(jù)流。在停止運(yùn)動(dòng)按鈕中設(shè)置運(yùn)動(dòng)信息的發(fā)送功能,當(dāng)點(diǎn)擊停止運(yùn)動(dòng)按鈕后,后臺(tái)發(fā)送運(yùn)動(dòng)信息到上位機(jī)進(jìn)行存儲(chǔ),便于遠(yuǎn)程健康管理中心能及時(shí)了解使用者的運(yùn)動(dòng)情況,并可以根據(jù)使用者的身體情況制定適合的運(yùn)動(dòng)量反饋給使用者。斷開(kāi)連接的操作復(fù)寫(xiě)到onPause()函數(shù)中,當(dāng)退出該程序時(shí)直接關(guān)閉socket連接和數(shù)據(jù)流發(fā)送[1]。手機(jī)端socket連接上位機(jī),并進(jìn)行數(shù)據(jù)傳輸?shù)某绦蛄鞒倘鐖D3所示。
在上位機(jī)開(kāi)發(fā)平臺(tái),應(yīng)用VC6.0程序新建一個(gè)線程,后臺(tái)監(jiān)聽(tīng)手機(jī)端發(fā)送的使用者運(yùn)動(dòng)信息,并且將其按使用者的編號(hào)進(jìn)行存儲(chǔ)數(shù)據(jù)。程序首先建立java虛擬機(jī),然后查看java程序:jclass cls = env->FindClass( "NumFile" ),獲取socket通信端口發(fā)送過(guò)來(lái)的消息jstring result=(jstring)env->CallStaticObjectMethod(cls, mid,env->NewStringUTF( strUTF8.c_str() ) ),并且對(duì)信息分類(lèi)存儲(chǔ)。socket接受程序命名為NumFile.java。上位機(jī)端socket連接程序流程如圖4所示。
圖3 手機(jī)socket連接程序流程圖Fig.3 The flow chart of mobile phone socket connection program
圖4 上位機(jī)socket連接程序流程圖Fig.4 The flow chart of PC socket connection program
在上位機(jī)中首先設(shè)置數(shù)據(jù)庫(kù)存儲(chǔ),存儲(chǔ)患者基本信息、體檢狀態(tài)、運(yùn)動(dòng)量計(jì)劃和運(yùn)動(dòng)量四個(gè)信息,結(jié)構(gòu)如圖5所示。
圖5 上位機(jī)數(shù)據(jù)庫(kù)結(jié)構(gòu)Fig.5 Database structure of PC
患者基本信息可以使醫(yī)生準(zhǔn)確地了解患者的各種信息,以便根據(jù)患者的情況制定科學(xué)的身體鍛煉強(qiáng)度,再把這個(gè)鍛煉強(qiáng)度反饋給患者,防止患者運(yùn)動(dòng)過(guò)量的情況發(fā)生。體檢狀況可以反映最近一段時(shí)間患者使用該干預(yù)系統(tǒng)以后身體的情況,可以根據(jù)每個(gè)人自己的身體狀況制定運(yùn)動(dòng)計(jì)劃,從而達(dá)到最好的運(yùn)動(dòng)效果。運(yùn)動(dòng)量信息反映了使用者最近的使用情況,如果運(yùn)動(dòng)量強(qiáng)度太小或者太多時(shí),遠(yuǎn)程健康管理中心可以及時(shí)反饋信息給使用者,提醒他應(yīng)該加強(qiáng)還是降低鍛煉強(qiáng)度,起到監(jiān)督使用者的作用。
在上位機(jī)開(kāi)發(fā)平臺(tái)上應(yīng)用VC6.0編寫(xiě)運(yùn)動(dòng)量干預(yù)系統(tǒng)軟件,監(jiān)聽(tīng)和接收手機(jī)發(fā)送來(lái)的運(yùn)動(dòng)信息并存儲(chǔ)在上位機(jī)數(shù)據(jù)庫(kù)里。上位機(jī)運(yùn)動(dòng)量干預(yù)系統(tǒng)主界面如圖6所示。
圖6 運(yùn)動(dòng)量干預(yù)系統(tǒng)Fig.6 The invention system of exercise amount
智能手機(jī)界面有三個(gè)Activity顯示,包括一個(gè)主界面,如圖7所示;一個(gè)運(yùn)動(dòng)量坐標(biāo)顯示界面,如圖8所示;還有一個(gè)運(yùn)動(dòng)量查詢界面,如圖9所示。
圖7 手機(jī)主界面Fig.7 The interface of mobile phone
圖8 運(yùn)動(dòng)量坐標(biāo)圖顯示Fig.8 The coordinates figure shows of exercise amount
圖9 運(yùn)動(dòng)量查詢Fig.9 The exercise amount inquires
基于智能手機(jī)運(yùn)動(dòng)量的行為干預(yù),可應(yīng)用于行為醫(yī)學(xué),作為行為治療的新手段。運(yùn)用運(yùn)動(dòng)量干預(yù)軟件來(lái)幫助用戶,特別是幫助慢性病患者,使他們能科學(xué)地進(jìn)行身體鍛煉。例如對(duì)于肥胖2型糖尿病患者,增加步行運(yùn)動(dòng)量至19 000步/d,7周后與運(yùn)動(dòng)量保持在4 500步/d者相比,不僅能起到明顯的減輕體重作用(減少7.8 kg),而且可顯著提高胰島素的敏感性[7]。在步行運(yùn)動(dòng)實(shí)踐中,媒體和大眾健康教育者普遍推薦的處方是每天步行10 000步,這一概念可追溯到30多年前國(guó)外的一些商業(yè)口號(hào)、日本步行俱樂(lè)部提出的口號(hào),也得到了一些研究者的認(rèn)可。但這一目標(biāo)對(duì)于某些人群如老年人和一些慢性病患者可能太高,而對(duì)于兒童(防止肥胖)而言則太低,也就是說(shuō)并不適宜所有人群[8][9]。所以需要健康管理中心結(jié)合使用者的實(shí)際病況和體檢狀況,合理的制定運(yùn)動(dòng)量并觀察使用者的運(yùn)動(dòng)情況。對(duì)于一些特殊慢性病患者要防止因運(yùn)動(dòng)過(guò)量而導(dǎo)致猝死等嚴(yán)重后果;對(duì)于需要身體鍛煉而懶惰的慢性病患者,需要提醒督促。所以健康管理中心這種及時(shí)的有效的監(jiān)督指導(dǎo),能使使用者進(jìn)行科學(xué)合理的運(yùn)動(dòng),只有這樣才能到達(dá)最好最安全的運(yùn)動(dòng)效果,從而讓慢性病患者逐步調(diào)整自己的身體狀況。通過(guò)使用該軟件對(duì)用戶長(zhǎng)期的干預(yù),鍛煉身體的同時(shí)并且糾正自身不良生活習(xí)慣,從而脫離慢性病的困擾,走進(jìn)健康者的行列。
[1]楊豐盛. Android應(yīng)用開(kāi)發(fā)揭秘[M].北京.機(jī)械工業(yè)出版社,2010
[2]靳巖, 姚尚朗.Android開(kāi)發(fā)入門(mén)與實(shí)踐[M].北京.人民郵電出版社, 2009
[3]甘露, 王志玲, 黃慶軍, 等.我國(guó)行為醫(yī)學(xué)研究進(jìn)展[J].白求恩軍醫(yī)學(xué)院學(xué)報(bào), 2006, 4(1): 35-36.
[4]雒生杰, 孟申.定量步行運(yùn)動(dòng)在慢性病康復(fù)中的研究現(xiàn)狀[J].中國(guó)康復(fù)理論與實(shí)踐, 2008, 14(9): 847-848.
[5]李桂雪, 鞠彩紅, 劉媛媛, 等.我國(guó)慢性病現(xiàn)狀與自我管理[J].黑龍江醫(yī)學(xué), 2010, 34(4): 299-300.
[6]劉姿含.慢性病患者運(yùn)動(dòng)要選適合自己的[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.