引言
消化道的動(dòng)力功能是消化系統(tǒng)重要的生理功能,消化道的動(dòng)力活動(dòng)是消化和吸收的基礎(chǔ)。近年來(lái),由于社會(huì)競(jìng)爭(zhēng)激烈、生活節(jié)奏加快、飲食結(jié)構(gòu)變化以及人們心理、精神等因素,胃腸動(dòng)力障礙性疾病(DGIM)發(fā)病率呈上升趨勢(shì)。2006年,功能性胃腸?。‵GDs)的羅馬III標(biāo)準(zhǔn)的問(wèn)世,加深了人們對(duì)消化道動(dòng)力的認(rèn)識(shí)。FGDs需要排除炎癥、感染、腫瘤及其他結(jié)構(gòu)異常等器質(zhì)性病變,并根據(jù)癥狀作出診斷。同樣,作為FGDs中的一種,DGIM也不能用器質(zhì)性疾病機(jī)理解釋癥狀。因此,消化道動(dòng)力檢測(cè)作為消化道疾病其他檢查方法的補(bǔ)充,對(duì)于研究和診斷胃腸動(dòng)力障礙性疾病,有較高的臨床意義。
本系統(tǒng)由下位機(jī)與上位機(jī)組成。下位機(jī)負(fù)責(zé)采集數(shù)據(jù),并將其發(fā)送給上位機(jī);上位機(jī)主要完成數(shù)據(jù)的顯示、分析等工作。上位機(jī)軟件采用LabVIEW 開發(fā)。 LabVIEW作為圖形化編程環(huán)境的引領(lǐng)者,不僅直觀易學(xué)、開發(fā)功能強(qiáng),而且程序的可重用性高,儀器驅(qū)動(dòng)功能強(qiáng)大,能與第三方軟件輕松連接。使用 LabVIEW進(jìn)行軟件開發(fā),可以充分利用計(jì)算機(jī)強(qiáng)大的數(shù)據(jù)處理和傳輸能力及LabVIEW提供的大量擴(kuò)展功能庫(kù)和軟件工具包,大大豐富和增強(qiáng)了儀器的功能。
1 系統(tǒng)原理
本系統(tǒng)采用腔內(nèi)壓力記錄法中的毛細(xì)管液壓灌注法進(jìn)行食管動(dòng)力檢測(cè)。四通道測(cè)壓導(dǎo)管內(nèi)注滿蒸餾水后插入食管中,測(cè)壓導(dǎo)管側(cè)孔處的食管壓力通過(guò)無(wú)伸縮性的水柱傳至壓力傳感器的敏感膜片上,可測(cè)得食管4個(gè)不同位置的壓力信號(hào)。該信號(hào)經(jīng)放大調(diào)理后,接到下位機(jī)的模擬量輸入口。由下位機(jī)的模數(shù)轉(zhuǎn)換模塊轉(zhuǎn)換為數(shù)字量,通過(guò)USB接口傳送給上位機(jī)。由上位機(jī)軟件設(shè)定灌注壓力,通過(guò)USB接口傳送給下位機(jī),下位機(jī)輸出脈寬調(diào)制輸出信號(hào)控制檢測(cè)儀中的電機(jī)。系統(tǒng)原理框圖如圖 1所示。
2 下位機(jī)設(shè)計(jì)
下位機(jī)主要由凌陽(yáng)公司16位單片機(jī)SPCE061A和Philips公司的USB接口芯片 PDIU/SBDl2(簡(jiǎn)稱D12)組成。SPCE06lA擁有 32位可編程的多功能I/O端口和2個(gè)16位定時(shí)器/計(jì)數(shù)器,內(nèi)部集成了7通道10位電壓模數(shù)轉(zhuǎn)換器,兼具低電壓復(fù)位/監(jiān)測(cè)功能。SPCE061A的模擬量輸入口IOA[O~3]接檢測(cè)儀4路壓力信號(hào),脈寬調(diào)制輸出口IO138接檢測(cè)儀的電機(jī),SPCE061A與D12的連接如圖2所示。
主程序流程如圖3所示。系統(tǒng)初始化包括:系統(tǒng)時(shí)鐘設(shè)置、D12初始化、D12芯片的軟連接和模擬輸入通道初始化。定時(shí)器TimeA的時(shí)鐘源A選擇4 096 Hz,定時(shí)100 ms后,打開IRQl_TMA中斷。中斷發(fā)生后,中斷服務(wù)子程序調(diào)用D12命令層中的寫緩沖區(qū)函數(shù),將函數(shù)Get_AD()讀取的4路A/D轉(zhuǎn)換值寫入 USB端點(diǎn)2。其中,函數(shù)Get_AD()先讀取模擬輸入通道0的A/D轉(zhuǎn)換值26次,忽略最大與最小的5個(gè)值后取平均值;再依次讀取下一路模擬輸入通道的A/D轉(zhuǎn)換值。
3 上位機(jī)軟件系統(tǒng)的設(shè)計(jì)
采用LabVIEW8.2專業(yè)版開發(fā)軟件,后臺(tái)數(shù)據(jù)庫(kù)采用ACC2ESS 2003。采用模塊化設(shè)計(jì)方法將軟件系統(tǒng)分為數(shù)據(jù)庫(kù)操作模塊、數(shù)據(jù)采集與顯示模塊以及數(shù)據(jù)分析模塊。
3.1 數(shù)據(jù)庫(kù)操作模塊的設(shè)計(jì)
使用ACCESS 2003創(chuàng)建數(shù)據(jù)庫(kù)文件patient.mdb,經(jīng)過(guò)數(shù)據(jù)庫(kù)需求分析,建立如下6個(gè)數(shù)據(jù)表:系統(tǒng)信息表、用戶信息表、患者信息表、患者波形數(shù)據(jù)表、常用語(yǔ)詞庫(kù)表和解釋與評(píng)議詞庫(kù)表。
LabVIEW訪問(wèn)上述的數(shù)據(jù)庫(kù)文件,需要安裝數(shù)據(jù)庫(kù)互聯(lián)工具包。數(shù)據(jù)庫(kù)互聯(lián)工具包通過(guò)使用ADO技術(shù)與數(shù)據(jù)庫(kù)建立連接。ADO是通過(guò)Mi- crosoft OLE DB與數(shù)據(jù)庫(kù)通信的?;贠LE DB的通信是通過(guò)一個(gè)類似于數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的Provider實(shí)現(xiàn)的。使用ADO將允許與任何提供了OLE DB Provider或者ODBC Driver的數(shù)據(jù)庫(kù)建立連接。ODBC(Open DataBaseConnectivity)是一種傳統(tǒng)的通用的允許與數(shù)據(jù)庫(kù)建立連接的API。如果一個(gè)數(shù)據(jù)庫(kù)具有ODBC驅(qū)動(dòng),則可以通過(guò)使用 “Microsoft OLE DB Provider for ODBC”(實(shí)現(xiàn)了從0LE DB到ODBC的轉(zhuǎn)換功能)與數(shù)據(jù)庫(kù)連接。
創(chuàng)建Microsoft Data Link文件并對(duì)UDL文件進(jìn)行相應(yīng)設(shè)置后,即可利用LabVIEW的數(shù)據(jù)庫(kù)互聯(lián)工具包中的函數(shù)實(shí)現(xiàn)對(duì)Access數(shù)據(jù)庫(kù)的訪問(wèn)。
數(shù)據(jù)庫(kù)操作模塊包括以下幾個(gè)部分:
①用戶及密碼管理部分,負(fù)責(zé)軟件用戶的登陸及密碼的管理,包括用戶及密碼的添加、修改及刪除。
②常用語(yǔ)詞庫(kù)管理部分,是為了方便醫(yī)生在撰寫病人病例時(shí)輸入常用的病例詞匯的部分。醫(yī)生可以根據(jù)自己的需要添加和編輯常用的病例詞匯。
③解釋與評(píng)議詞庫(kù)管理部分,是為了方便醫(yī)生撰寫檢查報(bào)告時(shí)輸入解釋與評(píng)議詞匯的部分。醫(yī)生可以根據(jù)自己的需要添加和編輯常用的解釋與評(píng)議詞匯。
④病人數(shù)據(jù)庫(kù)管理部分,負(fù)責(zé)病人數(shù)據(jù)庫(kù)的管理,包括病人信息的瀏覽、修改、刪除以及病人各個(gè)時(shí)期檢查波形的查看。
病人數(shù)據(jù)庫(kù)管理部分用于顯示病人信息的程序,如圖4所示。這段代碼分為3個(gè)線程。線程1具體實(shí)現(xiàn)的步驟如下:
①獲得UDL文件的相對(duì)路徑,再用DB Tools Open COnnection函數(shù)打開與這個(gè)數(shù)據(jù)庫(kù)的連接。
②使用DB Tools Execute Query函數(shù),利用SQL語(yǔ)句select * from PatientTable來(lái)執(zhí)行SQL查詢,用以選擇患者信息表中的任何記錄。
③使用DB Tools Fetch Recordset Data函數(shù),將記錄以二維數(shù)據(jù)庫(kù)變量數(shù)組的形式輸出。
④通過(guò)For循環(huán)中的Database Variant To Data函數(shù),將二維數(shù)據(jù)庫(kù)變量數(shù)組轉(zhuǎn)換成字符串格式顯示在多列列表框中。
線程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ù)寫到USB端點(diǎn)2上。要正確讀取USB接口的數(shù)據(jù),涉及對(duì)USB設(shè)備的驅(qū)動(dòng)。在LabVIEW環(huán)境下,可以采用傳統(tǒng)的開發(fā)USB 驅(qū)動(dòng)程序方法對(duì)D12芯片進(jìn)行驅(qū)動(dòng),如先用windowsDDK開發(fā)USB驅(qū)動(dòng)程序,然后用Visual C++編寫DLL,最后在LabVIEW中調(diào)用DLL來(lái)操作USB設(shè)備。這里介紹一種在LabVIEW環(huán)境下使用VISA進(jìn)行快速開發(fā)USB驅(qū)動(dòng)程序的方法。
NI-VISA是一個(gè)用來(lái)與各種儀器總線進(jìn)行通信的高級(jí)應(yīng)用編程接口(API),且支持USB通信。使用VISA的驅(qū)動(dòng)程序開發(fā)向?qū)閁SB設(shè)備創(chuàng)建并安裝INF文檔,只需在相應(yīng)欄內(nèi)輸入設(shè)備的供應(yīng)商ID(0X0471)、產(chǎn)品ID(0X0666)、制造商名稱(Philips Semiconductors)和型號(hào)名稱(PDILISBD12)。本設(shè)計(jì)中D12的VISA儀器描述符為 USB0::0x0471::0x0666::NI-VISA-O::RAw,在測(cè)量與自動(dòng)化瀏覽器中可找到設(shè)備及其資源名稱,并可使用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資源名稱控件”中輸入VISA資源名稱字符串(即上述的VISA儀器描述符),用來(lái)指定要連接的USB設(shè)備。
②用VISAOPEN函數(shù)打開VISA資源名稱控件所指定的設(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í)間和種類分別保存到二進(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所示。
導(dǎo)管進(jìn)入LES高壓區(qū)時(shí)壓力波形出現(xiàn)高峰,當(dāng)導(dǎo)管位于LES腹段時(shí),作吸氣試驗(yàn)可看到吸氣時(shí)壓力升高。繼續(xù)牽拉導(dǎo)管直至吸氣時(shí)壓力突然下降,此下降點(diǎn)即為壓力反轉(zhuǎn)點(diǎn)(PIP),表明導(dǎo)管已進(jìn)入LES胸段。
每隔20~30 s囑受檢者做數(shù)次濕咽,以檢測(cè)吞咽后的LES松弛功能,同時(shí)在相應(yīng)的通道上打上濕咽(殘余壓)圖標(biāo)。選擇區(qū)域后可測(cè)得LES松弛壓,如圖7所示。
4.2 食管體部壓力測(cè)定
繼續(xù)緩慢向外牽拉測(cè)壓導(dǎo)管,使四通道導(dǎo)管都離開LES進(jìn)入食道體部。每隔20~30 s囑患者濕咽數(shù)次,同時(shí)在第一通道上標(biāo)記濕咽圖標(biāo)。濕咽時(shí),食道會(huì)發(fā)生收縮,壓力波形上會(huì)升高。選擇區(qū)域后可測(cè)得食管蠕動(dòng)波幅,如圖8所示。
4.3 食管上括約?。║ES)檢測(cè)
繼續(xù)緩慢向外牽拉測(cè)壓導(dǎo)管,當(dāng)壓力波形出現(xiàn)一個(gè)增高的平臺(tái)時(shí),表明導(dǎo)管進(jìn)入食管上括約肌,同時(shí)應(yīng)在壓力波形上標(biāo)記UES圖標(biāo)。平臺(tái)頂部至食管基線的壓力差即為UES壓力。囑受檢者干咽,壓力平臺(tái)會(huì)突然下降又上升,下降的最低點(diǎn)至食管基線的壓力差即為UES松弛壓。
結(jié)語(yǔ)
利用LabVIEW強(qiáng)大的儀器驅(qū)動(dòng)功能,快速、高效地開發(fā)了USB驅(qū)動(dòng)程序。利用LabVIEW的工具包實(shí)現(xiàn)了與ACCESS數(shù)據(jù)庫(kù)的輕松連接。通過(guò)對(duì)人體食管壓力數(shù)據(jù)樣本進(jìn)行分析,得到了可供輔助診斷的壓力參數(shù),滿足了實(shí)際的醫(yī)用需求。
責(zé)任編輯:gt
-
單片機(jī)
+關(guān)注
關(guān)注
6030文章
44489瀏覽量
631971 -
LabVIEW
+關(guān)注
關(guān)注
1960文章
3651瀏覽量
321989 -
usb
+關(guān)注
關(guān)注
60文章
7876瀏覽量
263696
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論