張玉霞
(湖北科技學院生物醫學工程學院 湖北·咸寧 431700)
遠程醫療可以解決醫療中由時間和空間帶來的限制,使病人在盡量短的時間內得到有效的治療以及更多的醫療資源,當病人不方便與醫生見面時,遠程醫療是一個很好的醫患溝通選擇,遠程醫療還可以節省醫療費用,提高醫療質量。
遠程醫療包括了生理參數的采集和傳輸,很多生理參數對儀器的要求并不苛刻,可以通過患者操控實現。手機自帶的傳感器可以檢測部分生理參數,此外,應用于健康檢測的移動電話即手機,在商業領域已經開始暫露頭角。集成多種測量功能的手機,為用戶提供了更加全面的動態健康監控功能和更強大的靈活度。[1]
根據醫療信息化建設的需求,為醫學信息工程的學生開設了實踐課程“遠程醫療系統設計”,希望通過該門課程,讓學生掌握遠程醫療系統的數據采集、傳輸和存儲。目前,遠程醫療系統設計課程沒有相應的教材,本論文借助兩個例子探討如何將手機用于遠程醫療系統設計課程建設。
目前,有健康APP 利用手機攝像頭測心率,如體檢寶;也有一些研究手機攝像頭測心率的方法,并取得了一定的成果。李欣和其它研究者[2]用手機攝像頭獲取指尖視頻,將YUV 視頻格式轉換成為RGB格式,用小波變換為所獲取的視頻去噪,計算出視頻中每幀圖像紅色分量平均值,再根據血液在一個周期內紅色分量顏色變化的規律計算出紅色分量平均值在一分鐘內出現的峰值數,從而計算出心率值,并且利用手機的GPS功能在需要的情況下將心率值和測試者所在位置發射出去,達到實時監控心率的目的。陳敏[3]等人用手機攝像頭采集手指尖的視頻,并將采集到的每幀圖像轉換為RGB 格式,求出R、G 分量像素的平均值,再利用快速獨立成分分析(FastICA)算法從可能混有運動、光線等因素的源圖像中提取最接近R、G通道的一組分量,作為提取心率信號來分析,該方法利用的原理為在一個心率周期內,當血管內壓力最大時,血液吸收光強達到最大值,圖像的像素均值最??;當血管的壓力最小時,血液吸收的光強最少,圖像的像素均值最大。接下來利用快速傅里葉變換(FFT)對R 分量和G 分量進行功率譜分析,所得的頻譜圖中保留頻率為1.0-1.6Hz 所對應的幅度譜,比較這些幅度譜,記下幅度譜最大的頻率值,用該頻率值乘以60 便得到了心率的值。該論文用了R 分量和G 分量,是為了比較用哪個分量的效果更好,在實際應用時,我們可以只選擇其中一種分量。
許靖宇[4]等人用手機攝像頭獲取指尖視頻,將YUV 視頻格式轉換成為RGB格式,用小波變換為所獲取的視頻去噪,再根據血氧監測理論計算血氧飽和度。用手機攝像頭監測血氧飽和度是基于反射式脈搏血氧法。秦穎[5]等人詳細介紹了基于反射式脈搏血氧法的原理,動脈血氧飽和度為血液中氧合血紅蛋白HbO2占整體血紅蛋白Hb(氧合血紅蛋白HbO2和還原血紅蛋白HbR 之和)的比例,血紅蛋白在不同的氧和狀態下對紅光、近紅外光具有不同的吸收作用,當光波波長為660nm 時HbO2和HbR 的吸光系數相差最大,當光波波長為850nm 時HbO2和HbR的吸光系數相同,通過朗伯-比爾定律可以求出吸光系數與反射光強變化值之間的關系,將上述描述結合起來可以推算出血氧飽和度的計算公式B 可以通過實驗標定來確定。李婷[6]等人用MATLAB 模擬了血氧飽和度的監測,該模擬實驗中A 和B 的取值分別為-25 和110,用660nm 波長的正弦信號模擬紅光,用940nm 波長的正弦信號模擬紅外光, :(660nm 反射光強度的最大值-660nm反射光強度的最小值)/660nm 反射光強度的最大值, :(940nm 反射光強度的最大值-940nm 反射光強度的最小值)/940nm 反射光強度的最大值。用手機攝像頭做光源時,將獲取的每幀視頻轉成RGB格式,用小波分析方法除噪,再計算出視頻中每幀圖像紅色分量和綠色分量平均值,紅色分量平均值模擬紅光反射光強度,綠色分量平均值模擬紅外光反射光強度,雖然藍色光的波長更接近紅外光波長,但是藍色光分量的值太少,所以選取綠色光來模擬紅外光會取得更好的效果。
有些軟件在實現文獻[2]中測心率的方法時,并沒有用小波分析除噪這一步,在教學中用不用小波分析要根據學生的知識儲備情況來定,因為就本科生的知識儲備和時間來說,用JAVA語言在Android 平臺上實現小波分析有一定的難度,如果一開始讓他們做的太難了,他們大概會退縮或者失去學習的興趣,所以需要循序漸進,從簡單到復雜慢慢的去引導。
當利用文獻[3]進行教學時,在教學中是否用到FastICA 算法,也要根據學生的知識儲備來定,如果學生在學習之初,不能接受FastICA 算法,可以在一開始不使用FastICA 算法,而是直接對分離的R 通道和G 通道進行功率譜分析,進一步得到心率值。本人和所帶的學生對此進行過嘗試,能夠得出較好的實驗結果。值得注意的是,利用該方法進行心率檢測時,因為涉及到了功率譜的分析,功率譜分析時需要用到手機攝像頭視頻的頻率,而手機攝像頭視頻的頻率并不是固定不變的,而是隨著手機的運行而實時變化的,因此需要實時計算頻率值。實時獲取頻率值可以通過Android平臺的System.currentTimeMillis();方法實現,該方法的功能為獲取當前系統時間,能夠通過該方法獲取每兩幀視頻,或者多幀視頻之間的時間間隔,從而求出實時的頻率。
當利用文獻[4][5][6]進行教學時,在教學中是否用小波分析除噪聲也要依據學生的儲備知識來看,本人和所帶的學生在用手機攝像頭實現血氧飽和度的檢測時,用紅色分量模擬紅光,綠色分量模擬紅外光,紅光光強的最大值和最小值分別為紅色分量平均值的最大值和最小值,紅外光光強的最大值和最小值分別為綠色分量平均值的最大值和最小值,A 和B 的取值分別為-25 和110,沒有用小波分析除噪聲,能夠得到比較好的結果。
當獲取上述方法中攝像頭采集的每幀數據時,需要用到Android 中的SurfaceView 類,當我們計算出心率和血氧飽和度后,可以利用Android 中的網絡編程將計算出的數據發送到搭建起來的Web 服務器中,實現遠程傳輸的功能。
在用手機攝像頭檢測心率和血氧飽和度的遠程教學中,可以將遠程醫療中測量心率和血氧飽和度硬件部分用手機攝像頭來代替,再通過開發的手機App 對實時傳到手機上的視頻數據經行處理,便得到了心率值和血氧飽和度值,還有可以用網絡編程將獲取的值傳到服務器存儲以便查詢分析。該教學方法能夠將圖像傳感器、圖像處理、數字信號處理、光在生物組織中的傳播、醫學、Android 編程、Web 編程等知識融合起來實現一個生理參數檢測存儲和傳輸系統,所用到的知識都是本科生涉及過的基礎知識,該教學方法可以作為醫學信息工程課程融合的一個例子。
當實現了該項目后,老師還可以根據學生的興趣引導學生從不同的角度繼續研究和學習,以心率檢測為例,比如對于喜歡編程的同學,可以讓他們將界面做得更加適合用戶操作,界面顯示更加美觀一些;對于喜歡硬件的同學,可以讓他們試著用不同的傳感器來實現心率的檢測;對于喜歡圖像處理和信號處理的同學,可以讓他們試著用更好的算法來實現心率的檢測,用攝像頭獲取面部視頻來計算心率值;對于喜歡醫學的同學,可以讓他們試著分析心率、心率變異與其它癥狀之間的關系;還可以讓他們試著分析用光學知識檢測其它的生命體征等等,這種以問題為導向的引導方式使遠程醫療系統設計這門課程又具備一定的廣度和深度,也能與學生的興趣愛好相結合,激發學生的學習動力。
這種教學方式不需要其它的硬件支持,只需要學生有Android 手機,電腦,以及相應的Android 開發環境。在我上課的班級中,大概每30 個學生中,有27 人是Android 手機,每個人都有電腦,軟件可以免費下載,對于不是Android 手機的同學,可以將源代碼寫好后在虛擬機上運行,沒有錯誤后,再借用同學們或者老師的手機驗證結果。教學中涉及到的App,我們可以從網絡上下載到源代碼,下載的源代碼中用的是文獻[2]中方法,但是沒有實現文獻[2]中小波分析這一步驟,下載的源代碼開發環境為Eclipse+SDK,Android4.2 以上的版本,開發語言為Java。如果要實現其它的算法和檢測需求,可以根據需要修改源代碼。一般情況下,師生都有條件實現該教學方法。
本文結合在遠程醫療系統設計中的教學經驗,介紹了利用手機自帶的傳感器作為硬件部分來實現遠程醫療系統設計的方法,從原理、教學時應該注意的問題、教學方法、可行性分析等方面進行了介紹和探討。手機自帶的還有許多傳感器,除了可以用手機攝像頭實現心率和血氧飽和度的檢測和傳輸外,還可以實現皮膚病的遠程診斷,舌苔的遠程采集和分析,并借助顯微鏡等其它外設實現更多的功能。[1]借助手機實現遠程醫療系統設計課程教學,能夠實現多門課程的融合、節省資源,能夠使課程內容具備一定的廣度和深度,具有可行性。