Chart與C++結合在醫學海量信息處理中的應用_第1頁
Chart與C++結合在醫學海量信息處理中的應用_第2頁
Chart與C++結合在醫學海量信息處理中的應用_第3頁
Chart與C++結合在醫學海量信息處理中的應用_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Chart與C+結合在醫學海量信息處理中的應用         一、Chart與Visual C+的結合的背景 Chart軟件同時具有傳統記錄儀的簡易和數字記錄儀的分析功能,目前廣泛應用于生命科學等專業研究領域。Chart軟件雖然具有強大易用性,但仍存在很多不足之處。首先,它在批量處理實驗數據方面功能較弱。其次,讀取數據的精確度依賴于計算機硬件配置。第三,讀取數據的精確度在不同的操作者之間存在個體差異。在處理呼吸動力學研究實驗數據時,針對上述情況,本課題借用了現代計算機軟件技術來解決Chart軟件在處理醫學海量信息

2、中存在的不足。 在軟件編程環境的選擇上,我們選擇了Microsoft公司的Visual C+ 6.0。要實現Chart與Visual C+相結合來處理醫學數據的功能,首先必須解決兩個軟件之間的數據接口問題。經參考Chart軟件的相關幫助文檔可知,Chart軟件中的數據可以通過菜單按一定的衰減比率存儲到文本文件中,而Visual C+編程環境提供文本文件的訪問功能,能從指定的文本文件中讀取數據,同時編程通過相應的算法對數據進行處理,并將處理的結果輸入到文件中,因此基于數據文件交換可以作為Chart與Visual C+共同協調工作的數據交換方式。 二、實現方法 由于Chart和Visual C+兩

3、個不同軟件之間的協調工作是以文本類型數據文件為基礎實現的,所以文本類型數據文件的生成是一個基礎的重要的工作。在成功生成了文本類型數據文件后,就需要對文件中的數據進行處理,此時需要建立數據處理算法,通過編程將算法植入數據分析軟件中,從而得到處理結果。 由上可知,數據分析軟件的實現需要如下三部分工作:數據文件的生成、數據處理算法的建立和編程軟件實現。 (一)數據文件的生成 選定欲讀取數值的數據段,將Windows格式波形文件保存為文本文件。(見圖1)。Chart有Windows和Macintosh兩個版本,若實驗數據是以Macintosh格式保存,則需先轉換成Windows格式。 圖1 數據格式轉

4、換過程截圖 (二) 數據處理算法的建立 數據處理算法的主要工作目的是通過計算得到每個周期中各個通道數據的平均值或最大值,所以算法必須要包括兩個功能部分:周期區的確定和特征值(最大值或平均值)的計算。 1 周期區的確定 圖2為某條件下實驗數據的一部分,每個周期的起點為數據圖像中各個上升沿的 初始點,如圖中的A點,而周期的終點為起點后相應周期時間后的點,因此周期塊的確定關鍵在于起點的尋求。 對于一個上升沿的尋求,我們可以通過判斷一段時間內數據的變化趨勢來的得到。在給定的時間內,這些數據從低水平開始單調上升,則表明一個上升沿已經開始,同時第一數據所在的時刻就是這個上升沿的起點。但是這個處理

5、方法明顯只能在理想狀態下運用,不適合實際的實驗數據。在實際采集到的數據中,存在著很多干擾,這樣就會有如下情況發生:在上升沿數據段,數據整體趨勢是上升的,但在很多小區域數據可能處于一種混亂的規律中,或是振蕩,或是單調上升,或是單調下降。針對這種情況我們采用了如下“揚長避短”的處理方法: 所謂“揚長”就是對長時間段的單調發展予以肯定和保留,而“避短”則是對于短時間內數據非單調上升的變化規律予以質疑和否定,“揚長”與“避短”的有效結合,解決了小范圍內干擾問題,從而實現起點的最優尋求。 找到了上升沿的起點,周期塊的確定就比較容易了。在Chart進行數據采集時,會有一個采集速率V,一般我們設定為1000

6、,即每秒鐘采集1000個數據,在進行數據存儲時,需要設定一個參數-衰減率R(reduction),假定M為存儲后數據一秒鐘內的個數,則M=V/R,所以兩個連續數據間隔時間為1/M秒。如果已知數據周期為T,則需要處理的周期塊為上升沿起點到起點后T*M個數據。 2 特征值計算 依照課題研究的需要,計算得到每個周期塊的兩個特征值:平均值和最大值。在成功確定了周期塊后,特征值的計算就相對簡單了。 3 編程實現 作為當前主流的計算機編程軟件Visual C+ 6.0,不僅具備有C+所有功能,同時其圖形化編程環境讓編寫程序更加方便、快捷。根據數據處理流程,將軟件實現分為三個部分:源數據文件讀取、算法實現和

7、結果輸出。 (1)源數據文件讀取 在標準c里面,所有的文件讀寫操作都要通過文件指針進行,即FILE * fp, 對于文件模式是二進制還是文本模式,每種處理方法都是一樣的,比如采用fscanf、fprintf 打開讀寫二進制文本還是文本模式文本,其效果是一樣的。在對文件進行操作前需要打開文件,fopen(filename,文件使用方式)提供這個功能,與之對應,在結束文件操作后,應該關閉文件,則需要調用fopen(filename)函數。打開文件的程序段 FILE *fp_data = fopen("data.txt","r"); if(fp_data=NU

8、LL) AfxMessageBox("數據文件打開錯誤,請檢查!n提示:文件名為data;存儲路徑為該軟件所在目錄!"); return; AfxMessageBox("成功打開數據文件!"); 其中,data.txt為源數據文件名,"r"表示以只讀方式打開文件,避免誤操作對文件數據的破壞,在執行fopen函數打開文件后需要對執行結果進行處理,當文件指針fp_data為空NULL時,表明文件打開錯誤,則提醒用戶“數據文件打開錯誤,請檢查!提示:文件名為data;存儲路徑為該軟件所在目錄!”,同時程序將中斷運行,在用戶檢查問題并解決問題

9、后,再重新啟動程序,如果彈出"成功打開數據文件!"信息,則表明數據庫文件已經成功打開,可以進行下一步工作了。         關閉文件的程序段 fclose(fp_data); 以三通道數據為例,讀取文件數據程序段 fscanf(fp_data,"%f %f %fn",&list1_data,&list2_data,&list3_data); 如果打開文件后,是第一次執行上述fscanf程序段,則代碼執行后list1_data、list1_data和l

10、ist1_data三變量中分別存儲的是第一時刻各通道的數據。循環執行fscanf函數直到將所有數據讀取完畢。 (2 )算法實現 算法程序實現包括兩個部分:周期塊的確定和特征值的計算,限于篇幅只給出特征值計算的程序段。 result =0;for(int i=0;i(T*M);i+)   /對一個周期內所有數據進行計算             CString s;        GetDlgItem

11、(IDC_COMBO)-GetWindowText(s); /取得特征值信息        if(s="A")         /取平均值                   result = result+ datai;   &

12、#160;            else if(s="M")      /取最大值                   if(datai=result)   /數據比較      

13、;                   result = datai;                           if(i= T*M-1) /生成結果  

14、60;                if(s="A")         /取平均值                        

15、; result = result/(T*M);                   3 )結果輸出 為了方便對計算結果的分析處理,我們把結果輸出到了文本文件中,這樣不僅可以與源數據進行對應,同時方便拷貝到excel中進行處理。程序段 FILE *fp_result = fopen("result.txt","w");    if(fp_result=NULL) &#

16、160;        AfxMessageBox("結果文件打開錯誤,請檢查!n提示:文件名為result;存儲路徑為該軟件所在目錄!");     return;   AfxMessageBox("成功打開結果文件!");   for(i=0;iNum;i+)        fprintf(fp_result,"%f   %f

17、0;  %fn",result1,result2,result3);fclose(fp_result);其中result.txt為結果數據文件名,Num為源數據中存在的完整周期個數。 三、結果與分析討論 (一) 軟件運行界面 圖3為數據處理軟件ChartHelper運行界面,簡潔,便于操作。ChartHelper提供與用戶的接口,包括第一通道高水平平均值、第一通道低水平平均值、吸氣時間(周期)、通道設定,對于前三個參數的設定,用戶可以在對應的輸入框中輸入相應的數值,值得注意的是吸氣時間的單位為毫秒,而通道的設置稍微復雜一些。 在“請選取總通道數目”字樣右邊有一個下拉框,鼠標

18、點擊下拉框右邊的下拉箭頭,將出現210的通道選擇,用戶可以根據實際情況選擇相應的通道數,然后鼠標點擊右邊的“設置通道”按鈕,則激活相應通道數的通道設置接口C2-10,同時相應通道下面的下拉框的狀態將由不可編輯變為可編輯設定,如圖4所示,鼠標點擊需要設定通道的下拉箭頭,則出現兩個選擇“A”和“M”,A表示該通道求取的特征值為平均值,M表示該通道求取的特征值為最大值,這樣可設置各個通道的特征值類型。  在設置好所有接口參數后,點擊“參數設置”按鈕進行參數設置,同時啟動數據處理程序,此時狀態欄將顯示當前軟件運行的狀態,在計算過程中,狀態欄將顯示“軟件運算中,請等待.”,當計算結束后狀態欄將顯示“運算已結束,請進行數據存儲操作!”,此時用戶可以關閉程序,按照軟件下方的提示,打開軟件所在目錄下的結果文件“result.txt”,進行下一步的結果存儲和分析。 (二)計算結果分析 在呼吸動力學實驗所得數據中,隨機選取20個呼吸周期,分別用手工操作鼠標選取波形讀取數據和借助于Charthelper軟件批量選取

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論