手術(shù)麻醉部分icu工作交接_第1頁(yè)
手術(shù)麻醉部分icu工作交接_第2頁(yè)
手術(shù)麻醉部分icu工作交接_第3頁(yè)
手術(shù)麻醉部分icu工作交接_第4頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第12頁(yè) 共12頁(yè)ICU工作交接文檔所有項(xiàng)目源碼,都位于:D:RootMy DocumentsVisual Studio ProjectsC+項(xiàng)目中要用到的頭文件:D:RootMy DocumentsC+MyLib項(xiàng)目可執(zhí)行文件位于: D:RootMy DocumentsVisual Studio ProjectsC+數(shù)據(jù)平臺(tái)ICU統(tǒng)一數(shù)據(jù)平臺(tái)界面及操作介紹數(shù)據(jù)平臺(tái)原理介紹主要的類接口介紹醫(yī)療數(shù)據(jù)統(tǒng)一編碼格式MP數(shù)據(jù)分析難點(diǎn)波形繪圖控件工作原理介紹設(shè)備驅(qū)動(dòng)程序編程步驟8. 120急救系統(tǒng) 數(shù)據(jù)平臺(tái)的配置1.ICU統(tǒng)一數(shù)據(jù)平臺(tái)界面及操作介紹DataCollector.exe 數(shù)據(jù)采集器,負(fù)責(zé)與設(shè)

2、備連接“中央服務(wù)器IP” 采集到數(shù)據(jù)后,再發(fā)送到此IP操作:選定相應(yīng)左邊的驅(qū)動(dòng)程序,雙擊即自動(dòng)添加到右邊的列表雙擊右邊的驅(qū)動(dòng)程序,就可進(jìn)入配置項(xiàng)(主要分網(wǎng)絡(luò)配置和串口配置)3) 配置完,右鍵點(diǎn)擊右邊的驅(qū)動(dòng)程序,在彈出的菜單選“啟動(dòng)”,或直接按“全部啟動(dòng)”CentralServer.exe 中央轉(zhuǎn)發(fā)器,目的:實(shí)現(xiàn)數(shù)據(jù)接收,轉(zhuǎn)發(fā)經(jīng)及存儲(chǔ)。有數(shù) 據(jù)情況下,即可以用ICU系統(tǒng)查看波形和參數(shù)情況。“本機(jī)IP進(jìn)” 多網(wǎng)卡情況下,采集器數(shù)據(jù)入口網(wǎng)卡地址“本機(jī)IP出” 多網(wǎng)卡情況下,數(shù)據(jù)多播出口網(wǎng)卡地址操作:界面是自解釋的,點(diǎn)開“高級(jí)”可進(jìn)行數(shù)據(jù)庫(kù)連接配置。數(shù)據(jù)庫(kù)存儲(chǔ)功能目前還沒有在此平臺(tái)上完全實(shí)現(xiàn),不過,已

3、經(jīng)寫好框架。2.數(shù)據(jù)平臺(tái)原理介紹DRIVER數(shù)據(jù)平臺(tái)原理介紹DRIVER數(shù)據(jù)平臺(tái)原理介紹R醫(yī)療設(shè)備醫(yī)療設(shè)備醫(yī)療設(shè)備DRIVERDRIVERDRIVER醫(yī)療設(shè)備DataCollectorCentralServer數(shù)據(jù)庫(kù)存儲(chǔ)多播每個(gè)DRIVER都寫成DLL形式,不同類型的醫(yī)療設(shè)備寫不同的驅(qū)動(dòng), 驅(qū)動(dòng)負(fù)責(zé)與醫(yī)療設(shè)備通訊,并把采集到的數(shù)據(jù)轉(zhuǎn)換為統(tǒng)一數(shù)據(jù)格式。DataCollector通過動(dòng)態(tài)的加載DLL,并動(dòng)態(tài)的綁定函數(shù)指針實(shí)現(xiàn)驅(qū)動(dòng), 具體實(shí)現(xiàn)的代碼,請(qǐng)參看 D:RootMy DocumentsC+MyLibDriver.h, 里面有詳細(xì)注釋DataCollector 將采集到的數(shù)據(jù),通過SOCKET

4、發(fā)送給CentralServerCentralServer 把接收到的數(shù)據(jù)通過多播廣播出去,同時(shí)保存到數(shù)據(jù)庫(kù)(數(shù)據(jù)保存待完善)3.主要的類接口介紹1) 所有驅(qū)動(dòng)程序的接口(基類),位于 D:RootMy DocumentsC+MyLibDriverBase.hclass DriverBasepublic:virtual const char* Name() = 0; /返回驅(qū)動(dòng)程序名virtual const char* Version() = 0; /返回驅(qū)動(dòng)程序版本號(hào)virtual void SetConfig(const char* lpInText);/設(shè)置配置virtual void

5、 GetConfig(char* lpOutText); /輸出配置virtual bool Start() = 0; /啟動(dòng)驅(qū)動(dòng)virtual bool Stop() = 0; /停止驅(qū)動(dòng)void OnReceive(char* lpBuffer, int len); /激發(fā)數(shù)據(jù)到達(dá)事件virtual void OnAbort(LPVOID lpThis); /驅(qū)動(dòng)程序異常終止回調(diào)virtual DriverBase() protected:void BuildSettings();/初始化配置哈希表int CommPort();/ 返回設(shè)置中的串口號(hào)string CommSetting()

6、;/*返回串口配置字符串, 形如:baud=19200 data=8 stop=1 parity=N*/unsigned short DevicePort();/返回配置的(TCP/UDP)端口unsigned short LocalPort();/返回本地(TCP/UDP)端口string DeviceIP();/返回設(shè)備IPstring LocalIP();/返回本地IP;2) 約定: 所以驅(qū)動(dòng)程序主要類名規(guī)定為:DriverMain, 并繼承自DriverBase.即全部實(shí)現(xiàn)如下:class DriverMain : public DriverBase.; 驅(qū)動(dòng)實(shí)例動(dòng)態(tài)綁定代理函數(shù), 代

7、碼位于:D:RootMy DocumentsC+MyLibProxyProc.h 設(shè)計(jì)思想 :由于采用WIN32 SDK方式開發(fā),DLL無法導(dǎo)出一個(gè)類, 故采用“代理函數(shù)”接口,來控制一個(gè)DLL中的類,具體組織關(guān)系如下:Driver DLL 內(nèi)部DriverMain驅(qū)動(dòng)程序?qū)嶓w類ProxyProc.hDriver DLL 內(nèi)部DriverMain驅(qū)動(dòng)程序?qū)嶓w類ProxyProc.h以C方式聲明接口DataCollector 封裝所有導(dǎo)出接口為一個(gè)類Driver(位于D:RootMy DocumentsC+MyLibDriver.h)3)ProxyProc.h 實(shí)現(xiàn)原理利用 extern C D

8、llExport bool CreateInstance(LPVOID& lpInstance) 在DLL內(nèi)部創(chuàng)建一個(gè)DriverMain的實(shí)例,并把實(shí)例指針導(dǎo)出為VOID*。外部調(diào)用其它接口,只要把實(shí)例指針傳回到DLL里面,調(diào)用相應(yīng)的代理接口即可,源碼有相應(yīng)注釋。4) DriverMain 如何提交轉(zhuǎn)換過的數(shù)據(jù)DriverMain將從DriverBase繼承一個(gè)OnReceive接口, 當(dāng)DriverMain把數(shù)據(jù)包解析并轉(zhuǎn)換完畢后,就可以提交數(shù)據(jù)??梢詤⒖?ge.dll 代碼, 用法如下 Char buffer_old1024;Char buffer_new1024;接收數(shù)據(jù)到buffer

9、_old, 設(shè)長(zhǎng)為len1轉(zhuǎn)換數(shù)據(jù)到buffer_new, 設(shè)處理后長(zhǎng)數(shù) len2提交數(shù)據(jù): this-OnReceive(buffer_new, len2);4.醫(yī)療數(shù)據(jù)統(tǒng)一編碼格式由驅(qū)動(dòng)程序解析后有所有數(shù)據(jù)都將統(tǒng)一為一種格式,數(shù)據(jù)格式具體定義請(qǐng)參考D:RootMy DocumentsC+MyLibuniform.h數(shù)據(jù)傳輸全部采用網(wǎng)絡(luò)位,即高位在前 data 表示2字節(jié)數(shù)據(jù) data 表示4字節(jié)數(shù)據(jù) 表示1字節(jié)數(shù)據(jù)LENGTH 表示后面附加的字節(jié)數(shù), 不包括 P / W, IP, 包括兩字節(jié)校驗(yàn)波形點(diǎn)數(shù) 表示后面附加的波形點(diǎn)數(shù) 表示后面附加的參數(shù)個(gè)數(shù)IP 源IP(采集電腦IP)CRC16

10、整個(gè)數(shù)據(jù)包CRC16校驗(yàn)值4字節(jié)數(shù)據(jù)包頭 Wave Parameter Alert.統(tǒng)一波形包定義=W IP LENGTH 波形ID1 波形數(shù)據(jù)1 波形數(shù)據(jù)2 . 波形ID2 波形數(shù)據(jù)1 波形數(shù)據(jù)2 . . 統(tǒng)一參數(shù)包定義=P IP LENGTH 參數(shù)ID1 參數(shù)值1 參數(shù)值2 . 參數(shù)ID2 參數(shù)值1 參數(shù)值2 . . 小數(shù)表示=根據(jù)參數(shù)ID判斷數(shù)據(jù)類型,如果是溫度(TMP)等小數(shù)參數(shù),表示為小數(shù)值*100;37.02表示為 3702;5.MP數(shù)據(jù)分析難點(diǎn)MP數(shù)據(jù)采集目前有兩種方法采用MP 手冊(cè)(m8000-9305c Data Export_with_wave.pdf)上面介紹的方法, 但

11、只能采集到參數(shù),無波形。采用“擴(kuò)展MIB協(xié)議”, 可以采集到參數(shù)和波形下面主要討論第二種方法。MIB 重要參考資料位于: D:ICUMPReferenceMIB由于本人找到的只是MIB的 Draft Copy, 有些數(shù)據(jù)格式并非嚴(yán)格按照MIB草案上面解析, 遇到這種情況, 應(yīng)盡量在原MP手冊(cè)中找相關(guān)的數(shù)據(jù)格式,如果能套得上就是沒錯(cuò)的。目前可工作的MP代碼位于: D:RootMy DocumentsVisual Studio ProjectsC+DrivermpMIB 數(shù)據(jù)格式基本構(gòu)成MIB所采用面向?qū)ο蠓椒ǘx所有的數(shù)據(jù)及操作,主要構(gòu)造如下Object-ID:object-id (為一個(gè)uns

12、igned short)/*根據(jù)上面的object-id決定下面的數(shù)據(jù)格式, Object-ID 在MIB資料中有詳細(xì)定*義,每個(gè)ID對(duì)應(yīng)不同數(shù)據(jù)格式*/Length: length ( unsigned short); 后面數(shù)據(jù)內(nèi)容長(zhǎng)度Data: byte data1 ; 這里的data1只是一個(gè)占位符MP的“擴(kuò)展MIB數(shù)據(jù)格式”經(jīng)抓包研究分析,MP在MIB協(xié)議上還進(jìn)行了包裝,應(yīng)該是為了實(shí)現(xiàn)可靠UDP傳輸。不同的請(qǐng)求或應(yīng)答數(shù)據(jù)包包頭都不同。格式如下(請(qǐng)參考MP項(xiàng)目里的define.cpp文件)Head - 18 字節(jié)MP數(shù)據(jù)包頭Body - MIB格式數(shù)據(jù) Head 舉例/以下是請(qǐng)求連接命令

13、extern byte AssociationAbort = /mphead, 開始18字節(jié)MP數(shù)據(jù)包頭0 x10,0 x00,0 x00,0 x30,0 x10,0 x00,0 x00,0 x00,0 x05,0 x82, /* 第8,9字節(jié)構(gòu)成一個(gè)unsigned short, 用于數(shù)據(jù)包編號(hào),重要!* 任一方發(fā)送的數(shù)據(jù),這個(gè)編號(hào)應(yīng)該都是連續(xù)的,否則MP設(shè)備會(huì)認(rèn)為“丟包”* 而不應(yīng)答.編號(hào)可以從1開始。*/0 x00,0 x10,0 x00,0 x10,0 x00,0 x30,0 x00,0 x00,/MIB數(shù)據(jù)體開始0 x19,0 x2E,0 x11,0 x01,x03,0 xC1,0

14、x29,0 xA0,0 x80,0 xA0,0 x80,0 x30,0 x80,0 x02,0 x01,0 x01,0 x06,0 x02,0 x51,0 x01,0 x00,0 x00,0 x00,0 x00,0 x61,0 x80,0 x30,0 x80,0 x02,0 x01,0 x01,0 xA0,0 x80,0 x64,0 x80,0 x80,0 x01,0 x01,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00;5) 可能要完善的地方:MP項(xiàng)目-DriverMain.h, 函數(shù) ParseNumeric以及 P

15、arseWave;如果發(fā)現(xiàn)新的參數(shù)或波形,應(yīng)根據(jù)“統(tǒng)一數(shù)據(jù)格式”定義的新的ID,并做相應(yīng)的數(shù)據(jù)轉(zhuǎn)換, 這樣上層應(yīng)用程序就會(huì)取得相應(yīng)參數(shù)或波形。6.波形繪圖控件工作原理介紹項(xiàng)目名稱: WaveMonitor, 生成控件名: WaveMonitor.ocx 目前位置:D:RootMy DocumentsVisual Studio ProjectsC+WaveMonitor V2.1.4主要功能:實(shí)時(shí)平滑繪制波形及參數(shù)可動(dòng)態(tài)選擇波形或參數(shù),并設(shè)置顏色及字體大小閃爍及聲音報(bào)警(用Beep() API實(shí)現(xiàn))導(dǎo)出生理參數(shù)接口核心原理(源碼中有詳細(xì)注釋):實(shí)時(shí)性解決UDP接收線程接收到數(shù)據(jù)后,不做數(shù)據(jù)拷貝,

16、并直接壓入緩沖隊(duì)列馬上返回?cái)?shù)據(jù)處理線程循環(huán)請(qǐng)求緩沖隊(duì)列,處理完數(shù)據(jù)后形壓入繪圖隊(duì)列為了繪圖的平滑性,應(yīng)最好只緩沖一個(gè)數(shù)據(jù)包計(jì)算前后兩次到達(dá)的數(shù)據(jù)包時(shí)間間隔,用當(dāng)前時(shí)間間隔預(yù)測(cè)下一個(gè)數(shù)據(jù)包到來的時(shí)間,據(jù)此立即調(diào)整繪圖的頻率(每畫一個(gè)點(diǎn)的時(shí)間間隔)平滑繪圖的實(shí)現(xiàn)由于Windows里面的 Timer 基于消息機(jī)制, 非常不精通, 我自己用多媒體API封裝了一個(gè)類,可以精確到毫秒。實(shí)際測(cè)試比較理想,但比較占用系統(tǒng)CPU時(shí)間。代碼位置:D:RootMy DocumentsC+MyLibMMTimer.h采用GDI+繪制, 并啟用Antialias功能3) 擦除模式實(shí)現(xiàn)循環(huán)記錄下前面畫過的點(diǎn),通過繪制一小

17、段黑色的曲線實(shí)現(xiàn)擦除效果。這樣,即使兩個(gè)波形穿插在一起,效果也比較美觀,不會(huì)發(fā)生擦除越界的事情。只用一個(gè)定時(shí)器,多個(gè)不同采樣點(diǎn)的波形如何同步?設(shè)波形A有60個(gè)采樣點(diǎn),波形B有 24 個(gè)采樣點(diǎn),目前采用以下“編號(hào)”的方式實(shí)現(xiàn)。設(shè)每個(gè)采用點(diǎn)用一個(gè) unsigned shoft (WORD)表示, 現(xiàn)在定義新的繪圖點(diǎn)為unsigned long (DWORD), 用高位的WORD來記錄編號(hào),低位的WORD記錄原來采樣點(diǎn),即Bit31 Bit16 Bit15 Bit0 編號(hào)Tick 波形采樣點(diǎn)現(xiàn)在,轉(zhuǎn)換波形A為新的格式編號(hào) | 值NEW_A = 1 | A1 , 2 | A2 , 3 | A 3 60

18、 | A60現(xiàn)在,轉(zhuǎn)換波形B為上面的格式,“編號(hào)”計(jì)算方法設(shè)Nn為第n個(gè)點(diǎn), n從1開始,則Nn = 1+ (60 / 24) * (n 1) = 1 + 2 * (n-1); 因此,新的B波形為NEW_B = 1 | B1, 4 | B2 . 47 | B24繪圖偽代碼Int j = 1;For(int I = 1 to 60)畫NEW_Ai & 0 xffff;If ( I = (NEW_Bj 16) )畫NEW_Bj;J+;7.設(shè)備驅(qū)動(dòng)程序編程步驟在寫新的設(shè)備驅(qū)動(dòng)程序之前,請(qǐng)查看之前的代碼,簡(jiǎn)單的有UP8000等 確認(rèn)VC+包含目錄中有 MyLib一項(xiàng)。(目前位置:D:RootMy DocumentsC+MyLib)新建一個(gè)MFC DLL, 可以選擇靜態(tài)模式, 選用非Unicode編碼新建一個(gè)DriverMain的類, 把 MyLib DriverMain_Te

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論