高 丹,郭雪清,黃正東,王光華,肖 飛
·醫(yī)院數(shù)字化·
會(huì)話發(fā)起協(xié)議在遠(yuǎn)程醫(yī)療中的研究與應(yīng)用
高 丹,郭雪清,黃正東,王光華,肖 飛
目的:研究會(huì)話發(fā)起協(xié)議(session initiation protocol,SIP)在遠(yuǎn)程醫(yī)療中的應(yīng)用。方法:以SIP為基礎(chǔ),設(shè)計(jì)遠(yuǎn)程醫(yī)療系統(tǒng),構(gòu)建遠(yuǎn)程醫(yī)療信息服務(wù)平臺(tái)。結(jié)果:遠(yuǎn)程醫(yī)療信息服務(wù)平臺(tái)既可滿足醫(yī)生對(duì)患者的遠(yuǎn)程語(yǔ)音視頻診治需求,又可滿足其隨時(shí)填寫或者調(diào)用患者電子病歷的需求。結(jié)論:基于SIP協(xié)議的遠(yuǎn)程醫(yī)療系統(tǒng)具有較好的應(yīng)用前景。
電子病歷;遠(yuǎn)程醫(yī)療;SIP;信息服務(wù)平臺(tái)
隨著計(jì)算機(jī)網(wǎng)絡(luò)和現(xiàn)代通信技術(shù)的發(fā)展,遠(yuǎn)程醫(yī)療逐步從概念走向應(yīng)用,從理論研究走向?qū)?shí)用技術(shù)的研究和開(kāi)發(fā)。遠(yuǎn)程醫(yī)療是現(xiàn)代醫(yī)學(xué)與計(jì)算機(jī)技術(shù)、通信技術(shù)緊密結(jié)合的一種新型醫(yī)療模式[1],該系統(tǒng)的開(kāi)發(fā)應(yīng)用將有利于緩解就醫(yī)難、醫(yī)療水平不均等諸多尖銳問(wèn)題。但目前遠(yuǎn)程醫(yī)療仍屬于相對(duì)薄弱的研究領(lǐng)域,以會(huì)話發(fā)起協(xié)議(session initiation protocol,SIP)為基礎(chǔ)開(kāi)展遠(yuǎn)程醫(yī)療系統(tǒng)的研究具有較大的探索價(jià)值。
SIP是互聯(lián)網(wǎng)工程任務(wù)組(internet engineering task force,IETF)制定的多媒體通信系統(tǒng)框架協(xié)議之一,是基于文本的應(yīng)用層控制協(xié)議,獨(dú)立于底層協(xié)議,采用自己的應(yīng)用層可靠性機(jī)制來(lái)保證消息的可靠傳輸,用于建立、修改和終止IP網(wǎng)上的雙方或多方多媒體會(huì)話[2]。它在協(xié)議棧中的位置如圖1所示[3]。
醫(yī)院信息系統(tǒng)(hospital information system,HIS)主要提供醫(yī)院電子化管理的功能,包含門診管理、住院管理、藥品信息管理、醫(yī)療設(shè)備管理和醫(yī)院財(cái)務(wù)管理等[4]。遠(yuǎn)程醫(yī)療系統(tǒng)不僅是當(dāng)前遠(yuǎn)程醫(yī)療的研究熱點(diǎn),更是網(wǎng)絡(luò)科技與醫(yī)療技術(shù)結(jié)合的產(chǎn)物,是計(jì)算機(jī)、網(wǎng)絡(luò)和多媒體技術(shù)在醫(yī)學(xué)上的具體應(yīng)用[5]。
圖1 SIP在協(xié)議棧中的位置
通信網(wǎng)絡(luò)系統(tǒng)是遠(yuǎn)程醫(yī)療系統(tǒng)的信息傳輸平臺(tái),是保證系統(tǒng)正常運(yùn)行和通信質(zhì)量的關(guān)鍵[6]?;趯拵Щヂ?lián)網(wǎng)技術(shù)即基于Internet的多媒體通信[7]技術(shù)來(lái)建立遠(yuǎn)程醫(yī)療系統(tǒng)成為了遠(yuǎn)程醫(yī)療技術(shù)的主要發(fā)展趨勢(shì),本文以SIP為基礎(chǔ),設(shè)計(jì)遠(yuǎn)程醫(yī)療系統(tǒng),整體架構(gòu)如圖2所示?;颊呓K端通過(guò)Internet網(wǎng)連入到醫(yī)院局域網(wǎng),通過(guò)SIP服務(wù)器與醫(yī)生終端之間進(jìn)行語(yǔ)音視頻,達(dá)到遠(yuǎn)程醫(yī)療的目的。
遠(yuǎn)程醫(yī)療系統(tǒng)的軟件框架圖如圖3所示,分為SIP服務(wù)器、數(shù)據(jù)庫(kù)、醫(yī)療管理系統(tǒng)、終端4個(gè)部分。
醫(yī)療管理系統(tǒng)控制整個(gè)遠(yuǎn)程醫(yī)療系統(tǒng),它的工作包括SIP服務(wù)器的性能配置、終端號(hào)碼配置、醫(yī)生信息管理、電子病歷管理。SIP服務(wù)器根據(jù)配置信息進(jìn)行工作,并根據(jù)號(hào)碼信息對(duì)終端進(jìn)行合法性認(rèn)證。當(dāng)患者終端與醫(yī)生終端成功注冊(cè),即可以建立媒體流進(jìn)行語(yǔ)音視頻傳輸,完成遠(yuǎn)程醫(yī)療。
圖2 遠(yuǎn)程醫(yī)療系統(tǒng)的整體架構(gòu)
圖3 遠(yuǎn)程醫(yī)療系統(tǒng)的軟件框架圖
3.1 醫(yī)療管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
醫(yī)療管理系統(tǒng)包括SIP服務(wù)器性能配置、終端號(hào)碼配置、醫(yī)生信息管理與電子病歷管理4個(gè)模塊。SIP服務(wù)器性能配置模塊主要是配置服務(wù)器的性能參數(shù),例如配置服務(wù)器的域名和端口,是否開(kāi)啟鑒權(quán)功能等,以此來(lái)決定SIP服務(wù)器的功能。終端號(hào)碼配置模塊是為醫(yī)生和遠(yuǎn)程患者提供合法的號(hào)碼,以便醫(yī)生和患者終端接入到本系統(tǒng)中來(lái)。醫(yī)生信息管理模塊主要是維護(hù)醫(yī)生的基本信息。電子病歷管理模塊主要是維護(hù)患者的病歷信息?;颊叩碾娮硬v在整個(gè)遠(yuǎn)程醫(yī)療中起著至關(guān)重要的作用,不僅是患者病情的記載,也為后續(xù)專家了解病情、作出合理診斷提供有力的依據(jù)。
由于篇幅有限,本文主要介紹終端號(hào)碼配置模塊的設(shè)計(jì)與實(shí)現(xiàn)。終端號(hào)碼配置模塊的功能是讓系統(tǒng)管理人員為醫(yī)生和患者配置合法的號(hào)碼,實(shí)現(xiàn)平臺(tái)內(nèi)部號(hào)碼互通。平臺(tái)內(nèi)部號(hào)碼互通,是指所有支持SIP的通話終端注冊(cè)到遠(yuǎn)程醫(yī)療系統(tǒng)中,在同一個(gè)平臺(tái)下相互通話的應(yīng)用方式。
終端號(hào)碼配置工作是后續(xù)注冊(cè)工作的前提條件,號(hào)碼配置是否合法意味著注冊(cè)過(guò)程能否順利通過(guò),號(hào)碼分析是否合法意味著注冊(cè)之后能否進(jìn)入呼叫等后續(xù)操作。在終端號(hào)碼配置模塊中,配置流程如圖4所示。
圖4 終端號(hào)碼配置的流程圖
3.2 SIP服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)
SIP服務(wù)器從邏輯上分為注冊(cè)服務(wù)器、代理服務(wù)器和重定向服務(wù)器[8]。注冊(cè)服務(wù)器接收終端的注冊(cè)請(qǐng)求,通過(guò)鑒權(quán)等操作完成終端的注冊(cè)過(guò)程,記錄終端信息,包括終端當(dāng)前的SIP地址(URI)和IP地址[9]。代理服務(wù)器與重定向服務(wù)器根據(jù)終端被叫方登記的地址進(jìn)行轉(zhuǎn)發(fā)呼叫請(qǐng)求或者向主叫方返回被呼方的當(dāng)前有效地址[10]。在物理實(shí)現(xiàn)中,將3個(gè)服務(wù)器集為一體,通過(guò)注冊(cè)處理模塊、代理轉(zhuǎn)發(fā)模塊、重定向模塊來(lái)實(shí)現(xiàn)3個(gè)服務(wù)器的功能,SIP服務(wù)器的框架圖如圖5所示。
圖5 SIP服務(wù)器的框架圖
整個(gè)SIP服務(wù)器按功能劃分成初始化模塊、語(yǔ)法分析模塊、鑒權(quán)處理模塊、注冊(cè)處理模塊、代理轉(zhuǎn)發(fā)模塊、重定向模塊、構(gòu)造響應(yīng)消息模塊、傳輸層模塊。服務(wù)器啟動(dòng)之后,初始化模塊首先從服務(wù)器參數(shù)信息表中提取服務(wù)器的運(yùn)行參數(shù),接著周期性地從號(hào)碼信息表中提取賬號(hào)信息,更新賬號(hào)鏈表,最后初始化協(xié)議棧,啟動(dòng)傳輸層線程等待消息的到來(lái)。當(dāng)傳輸層模塊收到請(qǐng)求消息時(shí),先對(duì)請(qǐng)求信令進(jìn)行語(yǔ)法分析,然后根據(jù)服務(wù)器配置信息來(lái)決定是否調(diào)用鑒權(quán)處理模塊。若調(diào)用鑒權(quán)處理模塊,則采用HTTP摘要認(rèn)證來(lái)對(duì)用戶的合法性進(jìn)行驗(yàn)證。通過(guò)鑒權(quán)驗(yàn)證之后或者不調(diào)用鑒權(quán)處理模塊,則根據(jù)語(yǔ)法分析得出的事務(wù)來(lái)調(diào)用不同的功能模塊對(duì)消息進(jìn)行處理。構(gòu)造響應(yīng)消息模塊會(huì)根據(jù)整個(gè)處理過(guò)程所設(shè)置的狀態(tài)碼來(lái)生成響應(yīng)消息,然后通過(guò)傳輸層發(fā)送到終端用戶。
3.2.1 初始化模塊
程序啟動(dòng)之后首先運(yùn)行初始化模塊。初始化模塊的工作內(nèi)容有4個(gè)方面:(1)從服務(wù)器配置參數(shù)信息表中提取服務(wù)器的運(yùn)行參數(shù)。(2)從終端信息表中提取賬號(hào)信息,維護(hù)賬號(hào)鏈表。(3)初始化協(xié)議棧,設(shè)置回調(diào)函數(shù)。(4)啟動(dòng)傳輸層線程,監(jiān)聽(tīng)消息。
3.2.2 語(yǔ)法分析模塊
語(yǔ)法分析模塊旨在檢測(cè)SIP信令的有效性。檢測(cè)SIP消息的頭字段格式是否遵循通用格式。模塊設(shè)計(jì)思路是對(duì)SIP消息的各個(gè)頭字段分別進(jìn)行檢測(cè)。必要的頭字段Request-Line、From、Call_ID、Cseq和To頭字段不能為空。最大轉(zhuǎn)發(fā)次數(shù)Max-Forwards頭字段不能為0,Via頭字段中不能有環(huán)路。
3.2.3 鑒權(quán)處理模塊
鑒權(quán)處理模塊是對(duì)申請(qǐng)注冊(cè)和呼叫請(qǐng)求的用戶進(jìn)行HTTP摘要機(jī)制的鑒權(quán)、認(rèn)證。進(jìn)入鑒權(quán)處理模塊,首先會(huì)查詢服務(wù)器配置信息,如果沒(méi)有開(kāi)啟鑒權(quán)功能,則直接進(jìn)入下一個(gè)環(huán)節(jié)。若開(kāi)啟,則進(jìn)入鑒權(quán)認(rèn)證過(guò)程。設(shè)計(jì)的鑒權(quán)方案如圖6所示。
圖6 鑒權(quán)方案
本系統(tǒng)中,注冊(cè)服務(wù)器從數(shù)據(jù)庫(kù)終端信息CLIENT_INFO表中提取password字段,即HA1值,HA1=H(user:realm:password),H()是hash函數(shù),user是電話號(hào)碼,password是口令,realm是域名。HA2=H(method:digesturi),最后response=H(HA1:HA2:nonce)產(chǎn)生,將該值與終端發(fā)過(guò)來(lái)的信任證書(shū)中的response值進(jìn)行比較,如果相等,則鑒權(quán)成功。
3.2.4 注冊(cè)處理模塊
注冊(cè)處理模塊根據(jù)SIP用戶的注冊(cè)行為來(lái)處理注冊(cè)消息。注冊(cè)處理的詳細(xì)流程如圖7所示。
圖7 注冊(cè)處理的詳細(xì)流程
注冊(cè)處理模塊的功能包括單一地址注冊(cè)、注冊(cè)更新與注冊(cè)更改功能、注冊(cè)查詢功能、主動(dòng)與被動(dòng)注銷功能。主要功能是單一地址注冊(cè),保存用戶的當(dāng)前地址,存入賬號(hào)鏈表,同時(shí)將用戶的當(dāng)前信息存入數(shù)據(jù)庫(kù),以方便其他服務(wù)器尋址。
3.2.5 代理轉(zhuǎn)發(fā)模塊
代理服務(wù)器將根據(jù)被呼方的邏輯賬號(hào)在賬號(hào)鏈表中尋找物理地址,從而向目的地址轉(zhuǎn)發(fā)呼叫請(qǐng)求,使終端之間進(jìn)行會(huì)話描述協(xié)議(session description protocol,SDP)協(xié)商,建立媒體流,進(jìn)行語(yǔ)音視頻通話。
3.2.6 重定向模塊
重定向模塊是獲取被呼方的當(dāng)前有效物理地址,然后返回給主叫方。主叫方根據(jù)新的地址重新發(fā)起呼叫請(qǐng)求,代理服務(wù)器即可為之轉(zhuǎn)發(fā),完成呼叫過(guò)程。
3.2.7 構(gòu)造響應(yīng)消息模塊
該模塊主要是根據(jù)其他模塊處理后產(chǎn)生的狀態(tài)碼來(lái)構(gòu)造響應(yīng)消息。設(shè)計(jì)思路為首先根據(jù)狀態(tài)碼來(lái)構(gòu)造初始的響應(yīng)消息,包括基本的頭字段。首先,依據(jù)狀態(tài)碼生成狀態(tài)行Status_Line。然后,根據(jù)請(qǐng)求消息構(gòu)造To、From、Via、Call_ID和Cseq頭字段。最后,調(diào)用各功能模塊對(duì)構(gòu)造的響應(yīng)消息進(jìn)行再加工。
3.2.8 傳輸層模塊
該模塊主要功能是建立socket套接口,監(jiān)聽(tīng)端口、綁定套接字、讀取消息、發(fā)送SIP消息,完成系統(tǒng)底層的傳輸功能。實(shí)現(xiàn)上主要使用socket套接字編程技術(shù)。SIP消息可以采用TCP或者UDP進(jìn)行傳輸,由于SIP消息有類似TCP的“三次握手”確認(rèn)機(jī)制,為了加快系統(tǒng)的處理速度,故采用UDP協(xié)議進(jìn)行消息的傳輸和接收。為了提高系統(tǒng)的吞吐量,并發(fā)處理多個(gè)SIP請(qǐng)求消息,傳輸層處理線程采用Select模型,使Windows Sockets同時(shí)對(duì)多個(gè)套接字進(jìn)行管理。
4.1 測(cè)試工具
(1)終端使用的SIP軟電話選用x-lite軟件,硬件選擇IP電話和IAD設(shè)備連接的普通電話。
(2)抓包軟件使用Empirix Inc公司開(kāi)發(fā)的VoIP測(cè)試專業(yè)工具軟件Hammer Call Analyzer對(duì)信令流程進(jìn)行抓包分析。
(3)性能測(cè)試所用的工具為語(yǔ)言服務(wù)器性能測(cè)試工具SIPp。
4.2 功能測(cè)試
在功能測(cè)試中,設(shè)計(jì)了13個(gè)測(cè)試用例,分別為客戶端號(hào)碼配置測(cè)試、鑒權(quán)與不鑒權(quán)的注冊(cè)測(cè)試、注冊(cè)更新與注冊(cè)更改測(cè)試、注冊(cè)查詢測(cè)試、主動(dòng)注銷測(cè)試、不需要鑒權(quán)呼叫建立、需要鑒權(quán)呼叫建立、正常呼叫釋放、被叫拒絕應(yīng)答、主叫呼叫取消、被叫號(hào)碼不存在、被叫號(hào)碼超過(guò)有效期、被叫用戶忙。經(jīng)測(cè)試,信令流程全部正確,基本功能完善。
4.3 性能測(cè)試
在呼叫次數(shù)共2 000次、呼叫頻率為82次/s的情況下,測(cè)試結(jié)果如圖8所示。
圖8 性能測(cè)試結(jié)果
測(cè)試結(jié)果表明沒(méi)有延遲發(fā)送消息,沒(méi)有超時(shí)和無(wú)效消息,說(shuō)明SIP服務(wù)器能夠正確轉(zhuǎn)發(fā)消息,進(jìn)行SDP協(xié)商,建立媒體流,從而可以進(jìn)行語(yǔ)音視頻通話。
本文以SIP為基礎(chǔ),設(shè)計(jì)了遠(yuǎn)程醫(yī)療管理系統(tǒng),很好地在醫(yī)生和患者之間建立了遠(yuǎn)程醫(yī)療平臺(tái),在提高邊遠(yuǎn)地區(qū)醫(yī)療水平、對(duì)災(zāi)難中的受傷者實(shí)施緊急救助方面具有重要作用。由于本系統(tǒng)開(kāi)發(fā)的SIP服務(wù)器屬于小型服務(wù)器,不能承受百萬(wàn)級(jí)的呼叫,因此不能商用。本系統(tǒng)的開(kāi)發(fā)只為探索該協(xié)議在此領(lǐng)域的作用,經(jīng)測(cè)試分析,對(duì)商用開(kāi)發(fā)有一定的參考價(jià)值。
[1] 劉峰,曾凡,黃昊,等.醫(yī)院信息系統(tǒng)立體安全防護(hù)體系設(shè)計(jì)[J].醫(yī)療衛(wèi)生裝備,2013,34(11):43-45,48.
[2] 張智江,張?jiān)朴?,劉韻潔,?SIP及其應(yīng)用[M].北京:電子工業(yè)出版社,2005:23-28.
[3] 胡東升,吳天順,畢研峰,等.病理遠(yuǎn)程會(huì)診系統(tǒng)的結(jié)構(gòu)與應(yīng)用[J].醫(yī)療衛(wèi)生裝備,2013,34(1):40-41.
[4] Schulzrinne H,Rosenberg J.The session initiation protocol:internetcentric signaling[J].IEEE Communications Magazine,2000,38(10):134-141.
[5] 曾鷺鷺,陳一民.基于SIP的IP電話服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2007,3(3):278-280.
[6] 趙強(qiáng),張成文,左榮國(guó),等.基于軟交換的NGN技術(shù)與應(yīng)用開(kāi)發(fā)實(shí)例[M].北京:人民郵電出版社,2009:316-323.
[7] 黃永峰,李建慶.下一代網(wǎng)絡(luò)核心控制協(xié)議——SIP及其應(yīng)用[M].北京:人民郵電出版社,2009:25-27.
[8] 周海華.SIP原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2006:48-53.
[9] Hyun W,Shin G K.Performance enhancement of SIP proxy server by using hash for matching transaction[J].IEEE Communications Magazine,2007,2(13):245-248.
[10]楊放春,孫其博.軟交換與IMS技術(shù)[M].北京:北京郵電大學(xué)出版社,2008:24-25.
(收稿:2013-12-11 修回:2014-03-16)
Application of session initiation protocol in telemedicine
GAO Dan,GUO Xue-qing,HUANG Zheng-dong,WANG Guang-hua,XIAO Fei
(Department of Information,Wuhan General Hospital of Guangzhou Military Area Command,Wuhan 430070,China)
ObjectiveTo study the application of session initiation protocol(SIP)in telemedicine.MethodsSIP was used to develop telemedicine system and telemedicine information service platform.ResultsThe telemedicine information service platform could be used for remote audio and video consultation,as well as filling in or accessing electronic medical records.ConclusionSIP-based telemedicine system will be applied widely.[Chinese Medical Equipment Journal,2014,35(9):53-56]
electronic medical record;telemedicine,SIP;information service platform
R318;TP393.04
A
1003-8868(2014)09-0053-04
10.7687/J.ISSN1003-8868.2014.09.053
湖北省科研計(jì)劃項(xiàng)目(2012-DCB03002)
高 丹(1986—),女,助理工程師,主要從事信息管理與信息系統(tǒng)方面的研究工作,E-mail:gaodan226@sina.com。
430070武漢,廣州軍區(qū)武漢總醫(yī)院信息科(高 丹,郭雪清,黃正東,王光華,肖 飛)