引 言
消化道的動力功能是消化系統重要的生理功能,消化道的動力活動是消化和吸收的基礎。近年來,由于社會競爭激烈、生活節奏加快、飲食結構變化以及人們心理、精神等因素,胃腸動力障礙性疾病(DGIM)發病率呈上升趨勢。2006年,功能性胃腸病(FGDs)的羅馬III標準的問世,加深了人們對消化道動力的認識。FGDs需要排除炎癥、感染、腫瘤及其他結構異常等器質性病變,并根據癥狀作出診斷。同樣,作為FGDs中的一種,DGIM也不能用器質性疾病機理解釋癥狀。因此,消化道動力檢測作為消化道疾病其他檢查方法的補充,對于研究和診斷胃腸動力障礙性疾病,有較高的臨床意義。
本系統由下位機與上位機組成。下位機負責采集數據,并將其發送給上位機;上位機主要完成數據的顯示、分析等工作。上位機軟件采用LabVIEW開發。 LabVIEW作為圖形化編程環境的引領者,不僅直觀易學、開發功能強,而且程序的可重用性高,儀器驅動功能強大,能與第三方軟件輕松連接。使用 LabVIEW進行軟件開發,可以充分利用計算機強大的數據處理和傳輸能力及LabVIEW提供的大量擴展功能庫和軟件工具包,大大豐富和增強了儀器的功能。
1 系統原理
本系統采用腔內壓力記錄法中的毛細管液壓灌注法進行食管動力檢測。四通道測壓導管內注滿蒸餾水后插入食管中,測壓導管側孔處的食管壓力通過無伸縮性的水柱傳至壓力傳感器的敏感膜片上,可測得食管4個不同位置的壓力信號。該信號經放大調理后,接到下位機的模擬量輸入口。由下位機的模數轉換模塊轉換為數字量,通過USB接口傳送給上位機。由上位機軟件設定灌注壓力,通過USB接口傳送給下位機,下位機輸出脈寬調制輸出信號控制檢測儀中的電機。系統原理框圖如圖 1所示。
2 下位機設計
下位機主要由凌陽公司16位單片機SPCE061A和Philips公司的USB接口芯片PDIU/SBDl2(簡稱D12)組成。SPCE06lA擁有 32位可編程的多功能I/O端口和2個16位定時器/計數器,內部集成了7通道10位電壓模數轉換器,兼具低電壓復位/監測功能。SPCE061A的模擬量輸入口IOA[O~3]接檢測儀4路壓力信號,脈寬調制輸出口IO138接檢測儀的電機,SPCE061A與D12的連接如圖2所示。
主程序流程如圖3所示。系統初始化包括:系統時鐘設置、D12初始化、D12芯片的軟連接和模擬輸入通道初始化。定時器TimeA的時鐘源A選擇4 096 Hz,定時100 ms后,打開IRQl_TMA中斷。中斷發生后,中斷服務子程序調用D12命令層中的寫緩沖區函數,將函數Get_AD()讀取的4路A/D轉換值寫入 USB端點2。其中,函數Get_AD()先讀取模擬輸入通道0的A/D轉換值26次,忽略最大與最小的5個值后取平均值;再依次讀取下一路模擬輸入通道的A/D轉換值。
3 上位機軟件系統的設計
采用LabVIEW8.2專業版開發軟件,后臺數據庫采用ACC2ESS 2003。采用模塊化設計方法將軟件系統分為數據庫操作模塊、數據采集與顯示模塊以及數據分析模塊。
3.1 數據庫操作模塊的設計
使用ACCESS 2003創建數據庫文件patient.mdb,經過數據庫需求分析,建立如下6個數據表:系統信息表、用戶信息表、患者信息表、患者波形數據表、常用語詞庫表和解釋與評議詞庫表。
LabVIEW訪問上述的數據庫文件,需要安裝數據庫互聯工具包。數據庫互聯工具包通過使用ADO技術與數據庫建立連接。ADO是通過Mi- crosoft OLE DB與數據庫通信的。基于OLE DB的通信是通過一個類似于數據庫驅動程序的Provider實現的。使用ADO將允許與任何提供了OLE DB Provider或者ODBC Driver的數據庫建立連接。ODBC(Open DataBaseConnectivity)是一種傳統的通用的允許與數據庫建立連接的API。如果一個數據庫具有ODBC驅動,則可以通過使用 “Microsoft OLE DB Provider for ODBC”(實現了從0LE DB到ODBC的轉換功能)與數據庫連接。
創建Microsoft Data Link文件并對UDL文件進行相應設置后,即可利用LabVIEW的數據庫互聯工具包中的函數實現對Access數據庫的訪問。
數據庫操作模塊包括以下幾個部分:
①用戶及密碼管理部分,負責軟件用戶的登陸及密碼的管理,包括用戶及密碼的添加、修改及刪除。
②常用語詞庫管理部分,是為了方便醫生在撰寫病人病例時輸入常用的病例詞匯的部分。醫生可以根據自己的需要添加和編輯常用的病例詞匯。
? ③解釋與評議詞庫管理部分,是為了方便醫生撰寫檢查報告時輸入解釋與評議詞匯的部分。醫生可以根據自己的需要添加和編輯常用的解釋與評議詞匯。
④病人數據庫管理部分,負責病人數據庫的管理,包括病人信息的瀏覽、修改、刪除以及病人各個時期檢查波形的查看。
病人數據庫管理部分用于顯示病人信息的程序,如圖4所示。這段代碼分為3個線程。線程1具體實現的步驟如下:
①獲得UDL文件的相對路徑,再用DB Tools Open COnnection函數打開與這個數據庫的連接。
②使用DB Tools Execute Query函數,利用SQL語句select * from PatientTable來執行SQL查詢,用以選擇患者信息表中的任何記錄。
③使用DB Tools Fetch Recordset Data函數,將記錄以二維數據庫變量數組的形式輸出。
④通過For循環中的Database Variant To Data函數,將二維數據庫變量數組轉換成字符串格式顯示在多列列表框中。
線程2用于顯示選項卡2中的所有控件(包括多列列表框),線程3用于插入新的菜單。
3.2 數據采集與顯示模塊的設計
數據采集與顯示模塊是醫生操作檢測儀的平臺,主要完成食管壓力數據的讀取和顯示、圖標的標記以及數據的保存。
每100 ms下位機將食管壓力數據寫到USB端點2上。要正確讀取USB接口的數據,涉及對USB設備的驅動。在LabVIEW環境下,可以采用傳統的開發USB 驅動程序方法對D12芯片進行驅動,如先用windowsDDK開發USB驅動程序,然后用Visual C++編寫DLL,最后在LabVIEW中調用DLL來操作USB設備。這里介紹一種在LabVIEW環境下使用VISA進行快速開發USB驅動程序的方法。
NI-VISA是一個用來與各種儀器總線進行通信的高級應用編程接口(API),且支持USB通信。使用VISA的驅動程序開發向導為USB設備創建并安裝INF文檔,只需在相應欄內輸入設備的供應商ID(0X0471)、產品ID(0X0666)、制造商名稱(Philips Semiconductors)和型號名稱(PDILISBD12)。本設計中D12的VISA儀器描述符為 USB0::0x0471::0x0666::NI-VISA-O::RAw,在測量與自動化瀏覽器中可找到設備及其資源名稱,并可使用VI-SA Interactive Control測試通信情況。
LabVIEW中使用VISA中的函數與USB設備進行通信。圖5為從USB設備端點2中讀取指定字節數的程序代碼。具體實現過程如下:
①在前面板的“VISA資源名稱控件”中輸入VISA資源名稱字符串(即上述的VISA儀器描述符),用來指定要連接的USB設備。
②用VISAOPEN函數打開VISA資源名稱控件所指定的設備。
③用USB Raw的屬性節點USB Settings:Bulk-InPipe,將端點2設置為批量輸入端點。
④用VISARead函數從USB端點2中讀取16字節的數據。
用波形圖表控件顯示讀取的USB端點數據,即可實現食管壓力數據的顯示。
在采集過程中,應根據需要在波形圖表上設置基線和標記圖標。例如,當確定測壓導管所有通道均插入胃中,應點擊工具欄相應圖標設置胃基線;當確定導管處于食管下括約肌中時,應點擊工具欄相應圖標進行標記。這些圖標都會標記在波形圖表上,以便今后的計算和分析。采集過程中,還應將食管壓力數據以及圖標標記的時間和種類分別保存到二進制文件中,最后將文件作為oLE對象保存到數據庫中。
3.3 數據分析模塊的設計
數據分析模塊主要負責分析患者食管壓力數據,并完成對患者壓力數據的輔助診斷。
首先需要將數據采集過程中進行過標記操作的食管壓力數據波形圖繪制出來。由于要顯示波形圖以及各種直線、圖像、文字,波形圖控件已不能實現這些功能,故使用圖片控件進行顯示的工作。可使用繪制波形圖函數將保存在數據庫中相應的食管壓力數據繪制在圖片中。利用讀取BMP文件函數、還原像素圖函數和繪制還原像素圖函數,可以在圖片控件對應區域繪制正確的標志圖像。
對圖像進行操作時還需進行防閃爍的處理。通常情況下,在圖片中重新繪制圖形或拖動滾動條時,LabVIEW將通過擦除對象的內容并重繪新數據的方式來更新某個對象,但這樣會導致可覺察的閃爍。通過設置圖片控件快捷菜單中的平滑更新屬性,LabVIEW會自動利用幕后緩沖區來最大限度地抑制擦除和重繪所引起的閃爍。食管壓力數據的波形圖繪制完后,根據在數據采集時所作的標記選擇相應的區域,系統會自動計算各種功能參數,如LES靜息壓、殘余壓、松弛率以及吞咽時食管的收縮壓力。
? 分析結果會以報告的形式反饋給醫生,并且會被重新保存到數據庫中。最后,分析結果以報表形式輸出。
4 食管壓力檢查結果分析
上位機軟件系統會自動測量食管不同部位在靜息狀態與吞咽時的壓力,并實時顯示給醫生。對歷史數據樣本進行分析時,根據波形與采集時的標記,從彈出的快捷菜單中選擇對應的菜單項,然后選擇波形區域,系統會自動計算各種食管壓力參數,以方便醫生進行診斷。
4.1 食管下括約肌壓力及松弛功能檢測
四通道測壓導管經鼻腔插入胃腔,用緩慢定點牽拉法,當壓力曲線隨呼吸波幅度明顯增加,如壓力持續升高超過胃基線2 mmHg以上時,說明測壓通道已進入LES;同時點擊工具欄圖標,以在壓力波形的相應通道上進行LES標記。選擇區域后可測得LES靜息壓,如圖6所示。
導管進入LES高壓區時壓力波形出現高峰,當導管位于LES腹段時,作吸氣試驗可看到吸氣時壓力升高。繼續牽拉導管直至吸氣時壓力突然下降,此下降點即為壓力反轉點(PIP),表明導管已進入LES胸段。
每隔20~30 s囑受檢者做數次濕咽,以檢測吞咽后的LES松弛功能,同時在相應的通道上打上濕咽(殘余壓)圖標。選擇區域后可測得LES松弛壓,如圖7所示。
4.2 食管體部壓力測定
繼續緩慢向外牽拉測壓導管,使四通道導管都離開LES進入食道體部。每隔20~30 s囑患者濕咽數次,同時在第一通道上標記濕咽圖標。濕咽時,食道會發生收縮,壓力波形上會升高。選擇區域后可測得食管蠕動波幅,如圖8所示。
4.3 食管上括約肌(UES)檢測
繼續緩慢向外牽拉測壓導管,當壓力波形出現一個增高的平臺時,表明導管進入食管上括約肌,同時應在壓力波形上標記UES圖標。平臺頂部至食管基線的壓力差即為UES壓力。囑受檢者干咽,壓力平臺會突然下降又上升,下降的最低點至食管基線的壓力差即為UES松弛壓。
結 語
利用LabVIEW強大的儀器驅動功能,快速、高效地開發了USB驅動程序。利用LabVIEW的工具包實現了與ACCESS數據庫的輕松連接。通過對人體食管壓力數據樣本進行分析,得到了可供輔助診斷的壓力參數,滿足了實際的醫用需求。
評論
查看更多