摘 要: 通過對構件技術的研究,設計了一種基于HIS的神經中央監護系統" title="監護系統">監護系統模型。闡述了監護系統中的數據采集、傳輸與讀取技術。通過對視頻編碼壓縮技術的對比,選擇了適合本系統的壓縮編碼技術,并探討了本系統中對視頻數據流的去噪聲技術。通過該系統的商業運行,驗證了系統開發思路的正確性。
關鍵詞: 構件 拓樸結構? 視頻采集? 噪聲
?
神經中央監護" title="神經中央監護">神經中央監護系統是對重病人的生理參數進行實時監護和集中管理的一套軟、硬件系統。通過該系統的應用,可以實時查看重病人的生命體能參數,對重危病人及時采取急救處理,并能大大降低醫院護士的工作強度,提高醫院對重病人病情監控的快速反應能力,因此該系統的應用前景廣泛。目前該系統已經在多家醫院的重病人病房投入使用,運行效果良好。
神經中央監護系統作為一個科技項目與商業應用項目,在臨床應用上將會很廣泛。本文介紹的系統最終要在多家醫院使用,而由于各醫院對系統的要求各不相同,為了增強系統的適應性與可擴展性,在系統的開發過程中,通過采用基于構件的開發方法,增強了系統的擴展性與造就性,提高了系統的理論研究價值與商業應用價值。
1 構件技術
構件技術推廣了對象封裝的內涵,它側重于復雜系統中組成部分的協調關系,強調實體在環境中的存在形式。構件技術有四個基本屬性:
(1)構件是可獨立配置的單元,因此構件必須自包容。
(2)構件強調與環境和其他構件的分離,因此構件的實現是嚴格封裝的,外界沒有機會或沒有必要知道構件內部的實現細節。
(3)構件可以在適當的環境中被復合使用,因此構件需要提供清楚的接口規范,可以與環境交互。
(4)構件不應當是持續的,即構件沒有個體特有的屬性,可以理解為構件不應當與自身副本區別,在任何環境中,最多僅有特定構件的一份副本。可以看出,構件沿襲了對象的封裝特性,但同時并不局限在一個對象,其內部可以封裝一個或多個類、原型對象甚至過程,結構是靈活的。構件突出了自包容和被包容的特性,這就是在軟件生產線上作為零件的必要特征。
從抽象程度來看,面向對象技術已達到了類級重用(代碼重用),它以類為封裝的單位。這樣的重用粒度還太小,不足以解決異構互操作和效率更高的重用。構件將抽象的程度提到一個更高的層次,它是對一組類的組合進行封裝,并代表完成一個或多個功能的特定服務,也為用戶提供了多個接口。整個構件隱藏了具體的實現,只用接口提供服務。這樣,在不同層次上,構件均可以將底層的多個邏輯組合成高層次上的粒度更大的新構件,甚至直接封裝到一個系統,使模塊的重用從代碼級、對象級、架構級到系統級都可能實現,從而使軟件像硬件一樣,能任人裝配定制而成的夢想得以實現。采用基于構件的系統模型,大大縮短了系統的開發周期,提高了代碼的重用性和擴展性。
2 系統體系結構設計
該系統由用于分布式監護的床旁機和用于集中管理的中央機組成。中央機和床旁機通過相應的數據線進行連接,以實現數據的雙向傳輸。中央監護系統軟件部分包括中央機的監控軟件和床旁機的功能軟件。中央監護系統的實現除了硬件上的物理連接,還需要軟件上的協調。中央機的監控軟件和床旁機的功能軟件各自有一個通訊模塊負責軟件上的連接,以保證數據的雙向傳輸。利用RS485串口" title="串口">串口進行數據通訊具有操作簡單、使用靈活方便、數據傳遞可靠等優點,因此本系統利用RS485串口負責中央監護系統中的數據通訊。
RS485標準作為一種多點、差分數據傳輸的電氣規范已成為業界應用最為廣泛的標準通信接口之一。這種通信接口允許在簡單的一對雙絞線上進行多點、雙向通信,每一個終端只需通過接口掛在總線上便可以實現真正的多點總線結構;它所具有的噪聲抑制能力、數據傳輸速率、電纜長度及可靠性是其他標準無法比擬的;同時,RS485標準只對接口的電氣特性做出規定,而不涉及接插件、電纜或協議,在此基礎上用戶可以建立自己的高層通信協議。因此本系統的中央機和床旁機之間通過用RS485數據線連接其各自配置的串行通訊端口,來實現硬件上的物理連接。用RS485總線作為數據傳輸鏈路實現半雙工異步通信。
中央機由一臺安裝了MOXA公司的串口擴展卡的計算機構成,使用擴展卡可以擴展計算機上的串口資源以滿足中央監護系統中一機對多機(中央機對床旁機)的數據傳輸需要。床旁機采用工控機,由相關的數據采集卡板和工控主板組成。數據采集卡負責各種生理參數的采集,并由主板上的微處理器統一控制和管理。 床旁機和中央機的數據傳輸也由主板上的微處理器控制。
由于該系統比較復雜,而且可靠性要求很高,因此在設計該系統中,采用基于構件的智能控制技術,設計了如圖1所示的神經中央監控系統拓撲結構,有效地提高了系統的可靠性與穩定性。
?
3 床旁機設計
床旁機采用工控單板計算機實現,通訊構件通過調用MOXA公司提供的串口程序開發函數庫中提供的庫函數完成,整個床旁機的嵌入式程序采用WINCE C語言設計完成。床旁機的中央處理構件利用中斷接收中央機發送的控制命令并將命令轉發到各數據采集構件;中央處理構件將數據采集構件發送過來的數據組織成預定的數據后,通過串口發送給中央機。系統啟動后首先對串口進行初始化(指定串口通訊參數并設置中斷服務程序),然后等待中斷的發生。控制命令的接收和處理由中斷服務構件完成。中央監護軟件采用VC++語言開發。對串口的操作通過調用API函數實現。床旁機的工作原理圖如圖2所示。
在該系統中,涉及的數據很多。在所有要采集與傳輸的數據中,視頻數據的傳輸較為復雜,目前主要采用MPEG-4和H.264壓縮編碼技術進行處理,H.264編碼以低于28.8Kbps的碼率對視頻進行壓縮和解壓縮,可以完成對圖像序列和流動視頻的實時采集、壓縮、解壓、回放,而且采用獨特的自適應P幀及B幀壓縮技術,進一步加強了壓縮算法的壓縮比,配合IP組播功能,大大降低了數據實時傳輸所占用的網絡帶寬。當多個監控點同時工作、出現大比特流的數據同時傳輸時,平均占用帶寬不到250Kbps,大大節約了用戶的網絡資源投入。本系統的視頻流" title="視頻流">視頻流采用H.264編碼,采用AVI形式保存視頻數據文件,系統中所有的數據文件全部以二進制形式保存,既保證了數據傳輸的速度,又有效地降低了系統數據的采集量。系統視頻處理核心代碼如下:
AVIFileInit(); //初始化系統的AVIFILE庫
AVIFILE? af ; //文件指針
HRESULT hr;
Hr=AVIFileOpen(&af,LPCTSTR(filename),OF_CREATE,NULL); //生成視頻數據文件
AVISTREAMINFO sthd;??? ?//視頻數據流結構
AVISTREAM? as;??????????????? //視頻數據流接口
SetRect(&sthd.reFrame,0,0,biout.biWidth,biout.biHeight); //創建視頻數據流接口
系統獲得的視頻流,通過數據線傳輸給中央機,中央機對采集的數據進行存儲與分析。其中,系統采集的視頻流的傳輸過程由一個輔線程完成。該輔線程采用RTP協議,結合異步傳輸和多緩沖的方式對視頻數據流進行實時傳輸,很好地解決了本地播放和網絡傳輸的時間差。
由于醫院的環境比較復雜,采集到的視頻圖像存在很大的噪聲。為了不影響系統的監管性能,在這個系統中開發了一個“去噪增強算法構件”,通過這個構件對采集到的圖像進行“去噪增強”,具體實現為如下兩個步驟:
(1)對監控圖像采用YUV系統的Y分量進行數學形態學濾波。由于監控圖像采用RGB表示系統,所以首先需要將圖像的RGB表示系統轉換為YUV表示系統,以獲取圖像的灰度值Y分量,然后對圖像像素的灰度值即Y分量進行數學形態學濾波。
(2)對經過數學形態學濾波的Y分量進行中值濾波。因為圖像像素的Y分量進行數學形態學濾波后,已經消除了一部分噪聲,并把圖像的細節聚合在一起了。這時再使用中值濾波法就可以消除圖像中剩余的噪聲,使得圖像平滑,并且不會嚴重地丟失圖像細節。為了保持圖像的細節,選用3×3的二維滑動窗口進行中值濾波時。
對監護系統的監控圖像進行圖像去噪增強算法處理后,不僅監控圖像質量更加清晰平滑,而且監控圖像壓縮合成的編碼流數據量,比未經處理的編碼流數據量有明顯降低。
4 中央機的設計
中央機的開發是整個系統的核心,其功能比較多,開發過程相對比較復雜。根據系統要采集的參數和實現的功能,本系統首先采用UML建模,逐步細化系統的功能,將系統功能模塊化、構件化,然后得到系統完整的功能圖和軟件組成框架,并針對系統開發一個構件庫管理系統。在監護系統開發過程中,預留了與醫院現有的醫院信息系統HIS(Hospital Information System)的接口,因此系統具有較好的實用性,醫生、護士在使用該系統時,如果要查閱病人的相關資料,就可以通過預設的功能模塊直接查閱,而不需要再去查找病人的病歷等信息,這為病人的急救與診治節省了寶貴的時間,大大提高了病人的診治效率。系統主要功能模塊如圖3所示。
在設計好系統的拓樸結構后,根據系統的需求設計了一批通用構件和一個構件庫管理系統,提供給項目小組中成員開發時使用。這樣既提高了系統的開發效率,又保證了系統中各功能模塊與數據控制接口的統一標準。更重要的是使系統在開發過程中,能隨著需求的變更而方便快捷地升級系統。在開發該系統的構件時力求做到:功能單一、通用,接口簡單、清晰,高度獨立。該構件庫管理系統主要完成以下幾個功能:構件查找、構件擴充、構件集成、構件刪除、構件修改。下面分別介紹系統的主要功能模塊。
(1)“病人管理構件”先錄入病人的基本信息,選擇監測參數,設置生理參數。由于系統預留了與HIS接口,該系統與HIS對接后,對病人的基本信息可以通過輸入病人的住院號,直接從HIS系統中調入病人的相關信息,并且可以將病人的體征監控參數存入HIS系統。
(2)生理監測參數設置后,實時監測構件開始工作,此處監測采用多路監測和實時動態監測技術。監測界面由數字顯示區、視頻顯示區、參數設置區組成。數字顯示區和視頻圖像顯示區均為浮動窗口,位置可以調整和移動,且不影響波形顯示。通過對系統濾波參數的設置,可以設定系統狀態為監視或記錄。在監控屏幕上可同時顯示來自4個、9個直至16個床旁機的全部參數,并可對每個床旁機的視頻流進行凍結、放大、縮小等操作。對采集到的異常數據,系統將實時報警,并顯示具體的異常信息與病人的床位號。系統工作原理框圖如圖4所示。
(3)“回放功能構件”提供病歷回放功能。在回放過程中,可以重新設定濾波參數和顯示靈敏度,可根據事件和時間快速定位到讀寫位置,對歷史數據可以剪輯、回放、趨勢分析,可測量波幅和頻率,可根據需要打印報告;能夠立刻再現所有存儲的視頻流與參數,并通過系統圖像處理功能對畫面進行處理以便識別;也可通過網絡將圖像傳送到遠程用戶。
(4)“睡眠呼吸暫停綜合癥分析構件”為一個獨立的功能模塊,除具有“回放功能構件”的全部功能外,還具有睡眠、呼吸暫停綜合癥的分析功能,根據呼吸暫停和低通器的定義,可以自動分型和計數,并計算睡眠紊亂指數。
(5)“睡眠分期構件”可根據記錄的生理參數進行全自動或手動睡眠分期,全自動分期結果可繪制出睡眠結構圖,可從睡眠結構圖上一點定位到數據文件的指定位置。
(6)“腦功能分析構件”主要具有兩個功能:①選擇一導或多導腦電數據,再選定每導要分析的頻段,分析它的三維頻譜、主頻、幅值和能量邊緣頻率。②將腦電數據根據參數不同,分段進行計算,對每段的數據點進行連線。
(7)“綜合功能構件”主要由三部分組成:①監測過程中床旁機參數修改模塊。通過這個模塊可以在監護過程中隨時調整床旁機的參數,以便及時修正病人家屬的誤操作。②監測參數顯示設置模塊。③系統參數設置模塊。
在中央機的主要功能構件之外,本系統還開發了:設備控制管理構件、歷史數據管理構件、歷史資料分析構件和數據資料備份構件。這些構件主要是提供給醫生進行資料分析與科研之用。
在系統開發過程中主要的創新技術有以下兩方面:(1)采用獨特流技術,實現了同時對無限制多個監控位點實施遠程實時監控,并可實時查看各監控點的各種監控數據。(2)采用標準組網技術,支持IP單播、組播功能,可以組成點對點的監控系統,還可以組成一個中心對各監控點的系統;在網絡上可以設置多個監控工作站,滿足多個用戶的需要,也可以用WEB方式組成多級監控系統。
采用構件化設計,能夠平滑實現系統功能的升級,以及與其他醫療系統的接口,如HIS、CIS等系統的接口。神經中央監護系統的成功開發與投入商業運行,很好地驗證了基于構件的軟件開發方法的正確性與可行性。
參考文獻
[1]曹小華,趙成,陶德馨.基于現場總線CAN的實時監控系統研究與設計[J].武漢理工大學學報:交通工程與科學版,2005,29(6):910-912;916.
[2]王勇,陳新,陳新度,等.基于多智能體的個性化信息系統研究[J].計算機工程" title="計算機工程">計算機工程,2005,31(18):31-33.
[3]崔怡,何繼淳,劉小丹.基于構件的遠程視頻監控系統設計與實現[J].計算機工程,2006,32(5):232-234.
[4]余國華,馮啟明.基于CMOS圖像傳感器的視頻采集系統設計[J].武漢理工大學學報:交通工程與科學版,2004,28(1):145-147.
[5]廖良斌,喻方平.基于DSP和USB的圖像采集系統的研究[J].武漢理工大學學報:交通工程與科學版,2006,30(1):120-123.
[6]徐大華,韓光曙.心腦血管疾病診治系統的體系結構設計[J].計算機工程與設計,2005,26(12):3259-3260;3266.
[7]徐大華.基于HIS的臨床診治系統的設計[J].計算機工程,2006,32(14).
[8]TARR P L, OSSHER H, WILLIAM H, et al. N degrees of separation: multi-dimensional separation of concerns[C].International Conference on Software Engineering 99,Las Angeles: IEEE,ACM Press,1999:107-119.
[9]盛津芳,王斌,陳松喬.方面化構件模型及其組裝方法[J].計算機工程,2006,32(5):39-40;45.