提 要:介紹基于PC的在Windows平臺(tái)上開(kāi)發(fā)的多生理參數(shù)網(wǎng)絡(luò)監(jiān)護(hù)系統(tǒng)的軟硬件結(jié)構(gòu)原理和實(shí)現(xiàn)方法。該系統(tǒng)可以實(shí)現(xiàn)ECG,、無(wú)創(chuàng)血壓、血氧飽和度,、呼吸和體溫五個(gè)參數(shù)的網(wǎng)絡(luò)化監(jiān)護(hù),,監(jiān)護(hù)數(shù)據(jù)可以提供院內(nèi)網(wǎng)絡(luò)信息訪問(wèn)。系統(tǒng)操作簡(jiǎn)便,、結(jié)構(gòu)靈活,,是一種新型的醫(yī)院監(jiān)護(hù)設(shè)備。
分類(lèi)號(hào):R318.6 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1000-6974(2000)02-0073-05
A Multiparametric Monitoring Network System Based on Windows Operation System
CHEN Min-lian HE Ping WU Xiong-wen WANG Bao-hua
?。˙iomedical Research Center of Shanghai Tiedao University)
Abstract:This paper introduces the general structure and implementary method both in hardware and software of a monitoring network system,,which is developed for monitoring physiological multi-parameter under Windows operation system and based on personal computer.The parameters monitored by the system include Electrocardiogram (ECG),Noninvasive Blood Pressure (NIBP),,Oxygen Saturation (SpO2),,Respiration(RESP)and Body Temperature.Monitoring data can be shared by internal hospital network.The system has the advantages of easy operation and flexible structure.It is a new kind of hospital monitoring equipment.
Key words:Network monitoring;Multi-physiological Parameter,;Windows operation system▲
監(jiān)護(hù)系統(tǒng)用來(lái)對(duì)病人的生理或生化參數(shù)進(jìn)行連續(xù),、長(zhǎng)時(shí)間、自動(dòng),、實(shí)時(shí)監(jiān)測(cè),,并經(jīng)分析、處理后實(shí)現(xiàn)多類(lèi)別自動(dòng)報(bào)警,、自動(dòng)記錄,,并具有對(duì)結(jié)果的綜合判斷能力,便于醫(yī)護(hù)人員及時(shí)發(fā)現(xiàn)病人的病情變化,,隨時(shí)采取必要的護(hù)理與急救措施,,從而大幅度減少危重病人的死亡率。
過(guò)去的監(jiān)護(hù)系統(tǒng)多側(cè)重于單一心電參數(shù)ECG監(jiān)護(hù),,其結(jié)果不能全面評(píng)估循環(huán)系統(tǒng)功能,,我們研制的多生理參數(shù)網(wǎng)絡(luò)監(jiān)護(hù)系統(tǒng)包括心電(ECG)、呼吸(RESP),、無(wú)創(chuàng)血壓(NIBP),、血氧飽和度(SpO2)、體溫五個(gè)參數(shù)的實(shí)時(shí)監(jiān)護(hù),。由這些參數(shù)的二次數(shù)據(jù)還可提取心率,、心律失常,、呼吸率、收縮壓,、舒張壓,、平均壓及脈率等參數(shù);所以,,可以較全面地評(píng)估循環(huán)系統(tǒng)和呼吸系統(tǒng)的功能,。同時(shí),該系統(tǒng)的網(wǎng)絡(luò)化監(jiān)護(hù)功能滿(mǎn)足目前醫(yī)院設(shè)備網(wǎng)絡(luò)化的要求,,特別適用于冠心病監(jiān)護(hù)病房(Coronary Care Unit,,CCU)及危重病人監(jiān)護(hù)病房(Intensive Care Unit,ICU)的網(wǎng)絡(luò)監(jiān)護(hù),。整個(gè)網(wǎng)絡(luò)采用星型拓?fù)浣Y(jié)構(gòu),,具有通信傳輸速度快、網(wǎng)絡(luò)構(gòu)型簡(jiǎn)單,、建網(wǎng)容易,、便于控制和管理、可擴(kuò)充性能好等優(yōu)點(diǎn),。系統(tǒng)軟件采用中文Windows平臺(tái),,直接與市場(chǎng)上占有絕對(duì)主流的微軟應(yīng)用軟件兼容,而且,,友好的人機(jī)交互界面和直觀易懂的Windows風(fēng)格極大地方便了大多數(shù)對(duì)計(jì)算機(jī)操作不太熟悉的醫(yī)護(hù)人員,。
1 硬件結(jié)構(gòu)
整個(gè)監(jiān)護(hù)系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)框圖如圖1所示。中心結(jié)點(diǎn)是一只交換器(SWITCH,,Catalyst 1900 Series),,每個(gè)床邊監(jiān)護(hù)臺(tái)都與SWITCH相連,所以任意兩個(gè)床邊臺(tái)的通信最多只需兩步,,因而傳輸速度快,,監(jiān)護(hù)實(shí)時(shí)性好。這樣的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)便于床邊監(jiān)護(hù)臺(tái)隨時(shí)增減,,而不會(huì)影響到網(wǎng)絡(luò)中任何其他結(jié)點(diǎn)的工作,。SWITCH與所有床邊臺(tái)構(gòu)成一個(gè)局域網(wǎng),與SWTITCH相連的還有一臺(tái)IBM服務(wù)器(PC Server 325),,它與院內(nèi)主干網(wǎng)直接連接,,負(fù)責(zé)監(jiān)護(hù)網(wǎng)絡(luò)同醫(yī)院網(wǎng)絡(luò)的通信傳輸。所有床邊臺(tái)均采用兼容型個(gè)人電腦加上插件式的心電模塊,、血氧飽和度模塊和血壓模塊板卡,,每個(gè)模塊都集成有一片微處理器(μ CPU),其中心電模塊還包含了呼吸和體溫參數(shù)。床邊臺(tái)的基本組成結(jié)構(gòu)如圖2所示,,目前使用的PC機(jī)配置為:MMX233M/64M內(nèi)存/4.3G硬盤(pán),。
圖2 床邊臺(tái)組成框圖1.1 心電模塊
圖3所示的是心電模塊的硬件框圖。μ CPU1采用三路A/D分別采樣心電信號(hào),、呼吸信號(hào)及溫度信號(hào),。以250Hz的頻率分時(shí)采樣12導(dǎo)聯(lián)的心電信號(hào);以60Hz的頻率采樣呼吸信號(hào),。該模塊巧妙利用一對(duì)RA和LA左右手電極同時(shí)測(cè)取心電信號(hào)和呼吸阻抗信號(hào),,然后分路進(jìn)行處理。一旦RA,、LA或LL中任一電極脫落,,導(dǎo)聯(lián)脫落檢測(cè)電路會(huì)立即測(cè)出并通知μ CPU1,μCPU1獲取轉(zhuǎn)換后的ECG,、NIBP、RESP數(shù)據(jù)再進(jìn)行心率,、心律失常類(lèi)別判斷,、呼吸率等計(jì)算。對(duì)于體溫的測(cè)量,,由于體溫變化很慢,,為防止漂移,采用壓頻變換器(VFC)將熱敏電阻應(yīng)變橋測(cè)出的緩變電壓變換成相應(yīng)的頻率,,通過(guò)光電隔離后反變換(F/V)恢復(fù)出體溫變化信息,,經(jīng)A/D變換送μ CPU1。μ CPU1計(jì)算出相應(yīng)的體溫值,,最后把所有數(shù)據(jù)(原始的ECG,、NIBP、RESP數(shù)據(jù),、心率,、呼吸率、體溫,、心律變異類(lèi)型,、導(dǎo)聯(lián)脫落等)通過(guò)串行口發(fā)送至PC機(jī)。
圖3 心電模塊框圖
1.2 無(wú)創(chuàng)血壓
通常在監(jiān)護(hù)儀中主要采用柯氏音法和測(cè)振法來(lái)實(shí)現(xiàn)血壓的自動(dòng)檢測(cè),??率弦舴ù嬖谡`差大、重復(fù)性差,,易受噪音干擾等缺點(diǎn),,而測(cè)振法(Oscillometric Method)具有較好的抗干擾能力,能比較可靠地判斷血壓、實(shí)現(xiàn)血壓的自動(dòng)檢測(cè),,因而本系統(tǒng)采用測(cè)振法實(shí)現(xiàn)血壓測(cè)量,。
圖4是血壓模塊硬件框圖,通過(guò)充氣袖套在檢測(cè)部位以20mmHg的增量逐級(jí)施加外力,,當(dāng)外力超過(guò)預(yù)設(shè)值后,,開(kāi)始以4~5mmHg的減量逐級(jí)減壓。在減壓過(guò)程中檢測(cè)袖套靜壓和氣袖內(nèi)氣體的振蕩波,,振蕩波起源于血管壁的搏動(dòng),。當(dāng)氣袖靜壓高于收縮壓Ps時(shí),動(dòng)脈被壓閉,,此時(shí)因近端脈搏的沖擊而呈現(xiàn)細(xì)小的振蕩波,;當(dāng)氣袖靜壓小于收縮壓Ps時(shí),則波幅增大,;氣袖壓等于平均壓時(shí),,動(dòng)脈管壁處于去負(fù)荷狀態(tài),波幅達(dá)到最大值,;當(dāng)氣袖壓力小于舒張壓Pd以后,,動(dòng)脈管壁在舒張期已充分?jǐn)U展,管壁剛性增加,,因而波幅維持在較小的水平,。為此只要在氣袖放氣過(guò)程中連續(xù)測(cè)定振蕩波,振蕩波的包絡(luò)線所對(duì)應(yīng)的氣袖壓力就間接地反映了動(dòng)脈血壓,。檢測(cè)過(guò)程中,,壓力傳感器獲取的壓力電信號(hào)被分解為軸套的靜壓信號(hào)和脈搏波振蕩信號(hào),都經(jīng)ADC轉(zhuǎn)換成數(shù)字信號(hào)送給μ CPU2處理,,μ CPU2完成各種計(jì)算,,得出Ps、Pm和Pd,,以串行口方式發(fā)送給PC機(jī),。一旦Pd檢測(cè)到,同時(shí)打開(kāi)所有放氣閥使袖套快速放氣,,完成一次測(cè)量過(guò)程,。
圖4 血壓模塊框圖
1.3 脈搏血氧飽和度(SpO2)
血氧模板采用手指探頭檢測(cè),如圖5所示,,探頭的光電檢測(cè)器是一個(gè)光電管,,能產(chǎn)生正比于透射到它上面的紅光和紅外光強(qiáng)度的電流,但它不能區(qū)分這兩種光,。為此,,用一個(gè)定時(shí)電路來(lái)控制兩個(gè)LED的發(fā)光次序。光電流信號(hào)被轉(zhuǎn)換成電壓信號(hào),并經(jīng)放大,、濾波,、信號(hào)基線電平變換和去直流分量等信號(hào)調(diào)理過(guò)程后,加到一個(gè)具有自動(dòng)增益調(diào)整功能的電壓/電流轉(zhuǎn)換電路,,然后由積分電路對(duì)信號(hào)電流積分,,其輸出經(jīng)A/D轉(zhuǎn)換成數(shù)字信號(hào)。μ CPU對(duì)數(shù)字量進(jìn)行復(fù)雜的處理,,例如數(shù)字濾波,,計(jì)算兩種光電信號(hào)的幅度等,并求出SpO2,,從脈動(dòng)信號(hào)中還能計(jì)算出脈率,。最后,以串行口方式與PC通信,,每秒從串行口送出60個(gè)數(shù)據(jù)包,,每個(gè)數(shù)據(jù)包由5個(gè)字節(jié)構(gòu)成,這些數(shù)據(jù)中包含了SpO2值,、脈率和SpO2數(shù)據(jù),。
圖5 血氧模塊框圖
2 軟件設(shè)計(jì)
由于每個(gè)模塊都有μ CPU專(zhuān)門(mén)處理該模塊信號(hào),大大緩解了PC的工作任務(wù),,所以,PC的主要任務(wù)集中于數(shù)據(jù)接收顯示,、存儲(chǔ)和網(wǎng)絡(luò)通信上,。
我們開(kāi)發(fā)的多生理參數(shù)網(wǎng)絡(luò)監(jiān)護(hù)系統(tǒng)軟件是一個(gè)完全基于Microsoft Windows95/98平臺(tái)的應(yīng)用程序。軟件具有良好的人機(jī)交互界面,,監(jiān)護(hù)顯示界面一目了然,,既吸收了DOS操作系統(tǒng)簡(jiǎn)潔明了的特點(diǎn),又充分體現(xiàn)了Windows操作直觀方便的風(fēng)格,,可以方便地對(duì)監(jiān)護(hù)參數(shù)進(jìn)行設(shè)定,、觀察等。軟件用Visual Basic 5.0編寫(xiě),,所有程序均采用模塊化設(shè)計(jì),。
軟件總體設(shè)計(jì)流程如圖6所示,整個(gè)程序可分為兩部分:一是定時(shí)器中斷控制,;二是按鍵控制(菜單控制),。菜單控制就是通常的由用戶(hù)操作下拉菜單或操作命令控制,在此不作特別說(shuō)明,。下文著重介紹我們?nèi)绾谓鉀Q利用有限的Windows資源完成多個(gè)針對(duì)不同任務(wù)對(duì)象的中斷控制部分,。
圖6 程序框圖
Windows是多任務(wù)操作系統(tǒng),理論上支持多項(xiàng)任務(wù)同時(shí)工作。但在實(shí)際運(yùn)行時(shí),,不能奢望每個(gè)任務(wù)都會(huì)按預(yù)期的目標(biāo)良好實(shí)現(xiàn),,特別是在如監(jiān)護(hù)這種實(shí)時(shí)性要求很高的場(chǎng)合。設(shè)計(jì)時(shí),,必須充分考慮最經(jīng)濟(jì)地利用Windows資源,,合理地安排任務(wù)。面對(duì)我們的三個(gè)工作模塊,,各有不同的采樣頻率,、中斷號(hào)、數(shù)據(jù)傳輸設(shè)置,,必須在不同的中斷過(guò)程里進(jìn)行,。同時(shí),各種數(shù)據(jù)波形顯示也有特殊要求,,如ECG波形要滿(mǎn)足25mm/s或50mm/s的推進(jìn)速度,,所以也需要在單獨(dú)的中斷子程里完成。歸納起來(lái),,可以把中斷分為三類(lèi):讀取數(shù)據(jù)(從串行口讀取模塊發(fā)送的數(shù)據(jù)),、波形顯示、數(shù)據(jù)存儲(chǔ)(包括每秒數(shù)據(jù)顯示刷新),。中斷子程總共數(shù)目達(dá)10個(gè),,如果每個(gè)中斷都用一個(gè)定時(shí)器來(lái)控制,勢(shì)必造成中斷時(shí)間上發(fā)生沖突,,引起數(shù)據(jù)丟失,。Windows提供的定時(shí)時(shí)間是以ms為單位,但實(shí)際上Windows能反應(yīng)的最小的定時(shí)時(shí)間是55ms,。程序開(kāi)始首先申請(qǐng)一個(gè)以55ms為定時(shí)間隔的定時(shí)器,,按各個(gè)中斷對(duì)象的要求設(shè)置其中斷時(shí)間,該時(shí)間應(yīng)是55ms的整數(shù)倍,。然后再按實(shí)時(shí)性要求的高低設(shè)定中斷處理的優(yōu)先級(jí),,利用Windows底層消息處理的方法解決此優(yōu)先級(jí)問(wèn)題。在所有中斷中,,數(shù)據(jù)讀取最為重要,,因?yàn)槿绻撝袛嗟搅硕患皶r(shí)把串口輸入緩沖區(qū)的數(shù)據(jù)讀出,后面的數(shù)據(jù)就會(huì)刷新先進(jìn)先出Buffer內(nèi)的數(shù)據(jù),,而造成數(shù)據(jù)丟失,。所以數(shù)據(jù)讀取優(yōu)先級(jí)最高,在中斷子程中直接完成,,而波形顯示和每秒鐘數(shù)據(jù)刷新等則采用Windows底層消息投遞的方式進(jìn)行,,一旦發(fā)生此類(lèi)中斷,,程序只投遞一個(gè)消息,通知系統(tǒng)要去完成這個(gè)任務(wù),,程序會(huì)把它排到任務(wù)隊(duì)列中,,等到系統(tǒng)把優(yōu)先級(jí)高的任務(wù)做完,或乘系統(tǒng)空閑間隙再去完成它,。這段代碼例子如下所示:
Declare Function PostMessage Lib “user32" Alias “PostMessageA"(ByVal hwnd As Long,,ByVal wMsg As Long,ByVal wParam As Long,,ByVal 1Param As Long)As Long
Declare Function SetTimer Lib “user32"(ByVal hwnd As Long,,ByVal nIDEvent As Long,ByVal uElapse As Long,,ByVal 1pTimerFunc As Long)As Long
Declare Function KillTimer Lib “user32"(ByVal hwnd As Long,,ByVal nIDEvent As Long)As Long
Declare Function GetTickCount Lib “kernel32" O As Long
Public Sub TimerProc(ByVal hwnd As Long,ByVal uMsg As Long,,ByVal idEvent As Long,,ByVal dwTime As Long)
cTimerHappen=cTimerHappen+1
If cTimerHappen Mod 10=0 Then
Call MainForm.ReadECGData
End If
If cTimerHappen Mod 20=0 Then
Call MainForm.ReadNIBPdata
InformWhatToDo WMOneSecondThing
End If
if cTimerHappen Mod 1=0 Then
Inform WhatToDo WMECGWaveDraw
If cTimerHappen>10000 Then
cTimerHappen=0
End If
End Sub
Sub Inform What ToDo(Flag As Long)
PostMessage MainForm.hwnd,WMKEYDOWN,,
Flag,,0
End Sub
3. 系統(tǒng)總體功能
到目前為止,我們已基本完成了該監(jiān)護(hù)系統(tǒng)的研制開(kāi)發(fā),,監(jiān)護(hù)床邊臺(tái)運(yùn)行實(shí)時(shí)性好,,反應(yīng)快,系統(tǒng)總體功能歸納如下:
(1) 單機(jī)床邊臺(tái)監(jiān)護(hù)
① 心電監(jiān)護(hù)
?。?dǎo)聯(lián)心電圖連續(xù)實(shí)時(shí)監(jiān)護(hù)和記錄,。
.包括Ⅰ,、Ⅱ,、Ⅲ,、avR,、avL、avF,、V1,、V2、V3,、V4,、V5和V6十二導(dǎo)聯(lián)以串行方式顯示和記錄;導(dǎo)聯(lián)切換,;25mm/s或50mm/s波形推移速度兩檔切換,;心電圖凍結(jié)功能,。
.導(dǎo)聯(lián)脫落檢測(cè),。
?。穆视?jì)算、顯示及心率趨勢(shì)圖
心率每秒鐘刷新,;心率上下限報(bào)警及設(shè)置,;心率趨勢(shì)圖(最近1小時(shí)、8小時(shí),、16小時(shí)或24小時(shí)),。
.心律失常類(lèi)型判別及顯示
可判別19種常見(jiàn)心律失常類(lèi)型并及時(shí)顯示,。
?。录仡?/p>
可回顧查看發(fā)生心律失常事件的前6秒到后6秒ECG波形。
?。粑ㄐ芜B續(xù)實(shí)時(shí)監(jiān)護(hù)
?。粑视?jì)算及顯示
.體溫實(shí)時(shí)測(cè)量
?、凇⊙獕?/p>
?。謩?dòng)和自動(dòng)測(cè)量收縮壓、舒張壓,、平均壓(成人,、小孩均可)
.收縮壓和舒張壓上下限報(bào)警及設(shè)置
?、邸⊙躏柡投?/p>
?。甋pO2值和脈率顯示。
數(shù)值每秒刷新,;脈率上下限報(bào)警及設(shè)置,。
.SpO2的數(shù)字化波形實(shí)時(shí)顯示
監(jiān)護(hù)床邊臺(tái)顯示界面見(jiàn)圖7,。
圖7 監(jiān)護(hù)床邊臺(tái)顯示界面
(2) 網(wǎng)絡(luò)監(jiān)護(hù)
?。策叡O(jiān)護(hù)臺(tái)之間數(shù)據(jù)共享
.提供院內(nèi)網(wǎng)絡(luò)信息訪問(wèn)
床邊臺(tái)自動(dòng)記錄所有數(shù)據(jù)到本地?cái)?shù)據(jù)庫(kù),,該數(shù)據(jù)庫(kù)可以同時(shí)提供給其它床邊臺(tái)訪問(wèn),。
.可按需增加中央監(jiān)護(hù)臺(tái)集中監(jiān)護(hù)所有床邊監(jiān)護(hù)臺(tái)信息
4 結(jié)論
從整個(gè)開(kāi)發(fā)過(guò)程中總結(jié)出以下幾點(diǎn):
(1) 系統(tǒng)的模塊化設(shè)計(jì)非常重要,。多生理參數(shù)網(wǎng)絡(luò)監(jiān)護(hù)系統(tǒng)從硬件到軟件都采取了模塊化設(shè)計(jì),,不但在開(kāi)發(fā)過(guò)程中受益非淺,便于系統(tǒng)升級(jí),,而且有利于用戶(hù)自行選擇監(jiān)護(hù)參數(shù)和隨意組合,。
(2) 目前,,基于PC的網(wǎng)絡(luò)化監(jiān)護(hù)設(shè)備還處于國(guó)外幾家大公司壟斷階段,其價(jià)格和設(shè)備維修都較為昂貴,。多生理參數(shù)網(wǎng)絡(luò)監(jiān)護(hù)系統(tǒng)綜合應(yīng)用了PC軟件開(kāi)發(fā)技術(shù),、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)及生理參數(shù)檢測(cè)技術(shù),為邁向目前國(guó)際醫(yī)療監(jiān)護(hù)領(lǐng)域最高水平作出了成功的嘗試,。
(3) 該系統(tǒng)還有需繼續(xù)完善的部分,,例如提高心律失常判別準(zhǔn)確度、增加ECG,、ST段分析,、呼吸參數(shù)的二次數(shù)據(jù)分析等。應(yīng)進(jìn)一步完善系統(tǒng)的綜合分析能力,,使之成為性能價(jià)格比更高的監(jiān)護(hù)產(chǎn)品,。■