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