基于LabVIEW的食管動(dòng)力檢測(cè)系統(tǒng)設(shè)計(jì)
線程2用于顯示選項(xiàng)卡2中的所有控件(包括多列列表框),線程3用于插入新的菜單。
3.2 數(shù)據(jù)采集與顯示模塊的設(shè)計(jì)
數(shù)據(jù)采集與顯示模塊是醫(yī)生操作檢測(cè)儀的平臺(tái),主要完成食管壓力數(shù)據(jù)的讀取和顯示、圖標(biāo)的標(biāo)記以及數(shù)據(jù)的保存。
每100 ms下位機(jī)將食管壓力數(shù)據(jù)寫(xiě)到USB端點(diǎn)2上。要正確讀取USB接口的數(shù)據(jù),涉及對(duì)USB設(shè)備的驅(qū)動(dòng)。在LabVIEW環(huán)境下,可以采用傳統(tǒng)的開(kāi)發(fā)USB驅(qū)動(dòng)程序方法對(duì)D12芯片進(jìn)行驅(qū)動(dòng),如先用windowsDDK開(kāi)發(fā)USB驅(qū)動(dòng)程序,然后用Visual C++編寫(xiě)DLL,最后在LabVIEW中調(diào)用DLL來(lái)操作USB設(shè)備。這里介紹一種在LabVIEW環(huán)境下使用VISA進(jìn)行快速開(kāi)發(fā)USB驅(qū)動(dòng)程序的方法。
NI-VISA是一個(gè)用來(lái)與各種儀器總線進(jìn)行通信的高級(jí)應(yīng)用編程接口(API),且支持USB通信。使用VISA的驅(qū)動(dòng)程序開(kāi)發(fā)向?qū)閁SB設(shè)備創(chuàng)建并安裝INF文檔,只需在相應(yīng)欄內(nèi)輸入設(shè)備的供應(yīng)商ID(0X0471)、產(chǎn)品ID(0X0666)、制造商名稱(chēng)(Philips Semiconductors)和型號(hào)名稱(chēng)(PDILISBD12)。本設(shè)計(jì)中D12的VISA儀器描述符為USB0::0x0471::0x0666::NI-VISA-O::RAw,在測(cè)量與自動(dòng)化瀏覽器中可找到設(shè)備及其資源名稱(chēng),并可使用VI-SA Interactive Control測(cè)試通信情況。
LabVIEW中使用VISA中的函數(shù)與USB設(shè)備進(jìn)行通信。圖5為從USB設(shè)備端點(diǎn)2中讀取指定字節(jié)數(shù)的程序代碼。具體實(shí)現(xiàn)過(guò)程如下:
①在前面板的“VISA資源名稱(chēng)控件”中輸入VISA資源名稱(chēng)字符串(即上述的VISA儀器描述符),用來(lái)指定要連接的USB設(shè)備。
②用VISAOPEN函數(shù)打開(kāi)VISA資源名稱(chēng)控件所指定的設(shè)備。
③用USB Raw的屬性節(jié)點(diǎn)USB Settings:Bulk-InPipe,將端點(diǎn)2設(shè)置為批量輸入端點(diǎn)。
④用VISARead函數(shù)從USB端點(diǎn)2中讀取16字節(jié)的數(shù)據(jù)。
用波形圖表控件顯示讀取的USB端點(diǎn)數(shù)據(jù),即可實(shí)現(xiàn)食管壓力數(shù)據(jù)的顯示。
在采集過(guò)程中,應(yīng)根據(jù)需要在波形圖表上設(shè)置基線和標(biāo)記圖標(biāo)。例如,當(dāng)確定測(cè)壓導(dǎo)管所有通道均插入胃中,應(yīng)點(diǎn)擊工具欄相應(yīng)圖標(biāo)設(shè)置胃基線;當(dāng)確定導(dǎo)管處于食管下括約肌中時(shí),應(yīng)點(diǎn)擊工具欄相應(yīng)圖標(biāo)進(jìn)行標(biāo)記。這些圖標(biāo)都會(huì)標(biāo)記在波形圖表上,以便今后的計(jì)算和分析。采集過(guò)程中,還應(yīng)將食管壓力數(shù)據(jù)以及圖標(biāo)標(biāo)記的時(shí)間和種類(lèi)分別保存到二進(jìn)制文件中,最后將文件作為oLE對(duì)象保存到數(shù)據(jù)庫(kù)中。
3.3 數(shù)據(jù)分析模塊的設(shè)計(jì)
數(shù)據(jù)分析模塊主要負(fù)責(zé)分析患者食管壓力數(shù)據(jù),并完成對(duì)患者壓力數(shù)據(jù)的輔助診斷。
首先需要將數(shù)據(jù)采集過(guò)程中進(jìn)行過(guò)標(biāo)記操作的食管壓力數(shù)據(jù)波形圖繪制出來(lái)。由于要顯示波形圖以及各種直線、圖像、文字,波形圖控件已不能實(shí)現(xiàn)這些功能,故使用圖片控件進(jìn)行顯示的工作??墒褂美L制波形圖函數(shù)將保存在數(shù)據(jù)庫(kù)中相應(yīng)的食管壓力數(shù)據(jù)繪制在圖片中。利用讀取BMP文件函數(shù)、還原像素圖函數(shù)和繪制還原像素圖函數(shù),可以在圖片控件對(duì)應(yīng)區(qū)域繪制正確的標(biāo)志圖像。
對(duì)圖像進(jìn)行操作時(shí)還需進(jìn)行防閃爍的處理。通常情況下,在圖片中重新繪制圖形或拖動(dòng)滾動(dòng)條時(shí),LabVIEW將通過(guò)擦除對(duì)象的內(nèi)容并重繪新數(shù)據(jù)的方式來(lái)更新某個(gè)對(duì)象,但這樣會(huì)導(dǎo)致可覺(jué)察的閃爍。通過(guò)設(shè)置圖片控件快捷菜單中的平滑更新屬性,LabVIEW會(huì)自動(dòng)利用幕后緩沖區(qū)來(lái)最大限度地抑制擦除和重繪所引起的閃爍。食管壓力數(shù)據(jù)的波形圖繪制完后,根據(jù)在數(shù)據(jù)采集時(shí)所作的標(biāo)記選擇相應(yīng)的區(qū)域,系統(tǒng)會(huì)自動(dòng)計(jì)算各種功能參數(shù),如LES靜息壓、殘余壓、松弛率以及吞咽時(shí)食管的收縮壓力。
分析結(jié)果會(huì)以報(bào)告的形式反饋給醫(yī)生,并且會(huì)被重新保存到數(shù)據(jù)庫(kù)中。最后,分析結(jié)果以報(bào)表形式輸出。
4 食管壓力檢查結(jié)果分析
上位機(jī)軟件系統(tǒng)會(huì)自動(dòng)測(cè)量食管不同部位在靜息狀態(tài)與吞咽時(shí)的壓力,并實(shí)時(shí)顯示給醫(yī)生。對(duì)歷史數(shù)據(jù)樣本進(jìn)行分析時(shí),根據(jù)波形與采集時(shí)的標(biāo)記,從彈出的快捷菜單中選擇對(duì)應(yīng)的菜單項(xiàng),然后選擇波形區(qū)域,系統(tǒng)會(huì)自動(dòng)計(jì)算各種食管壓力參數(shù),以方便醫(yī)生進(jìn)行診斷。
4.1 食管下括約肌壓力及松弛功能檢測(cè)
四通道測(cè)壓導(dǎo)管經(jīng)鼻腔插入胃腔,用緩慢定點(diǎn)牽拉法,當(dāng)壓力曲線隨呼吸波幅度明顯增加,如壓力持續(xù)升高超過(guò)胃基線2 mmHg以上時(shí),說(shuō)明測(cè)壓通道已進(jìn)入LES;同時(shí)點(diǎn)擊工具欄圖標(biāo),以在壓力波形的相應(yīng)通道上進(jìn)行LES標(biāo)記。選擇區(qū)域后可測(cè)得LES靜息壓,如圖6所示。
評(píng)論