会话发起协议在远程医疗中的研究与应用
2014-03-23郭雪清黄正东王光华
高 丹,郭雪清,黄正东,王光华,肖 飞
·医院数字化·
会话发起协议在远程医疗中的研究与应用
高 丹,郭雪清,黄正东,王光华,肖 飞
目的:研究会话发起协议(session initiation protocol,SIP)在远程医疗中的应用。方法:以SIP为基础,设计远程医疗系统,构建远程医疗信息服务平台。结果:远程医疗信息服务平台既可满足医生对患者的远程语音视频诊治需求,又可满足其随时填写或者调用患者电子病历的需求。结论:基于SIP协议的远程医疗系统具有较好的应用前景。
电子病历;远程医疗;SIP;信息服务平台
0 引言
随着计算机网络和现代通信技术的发展,远程医疗逐步从概念走向应用,从理论研究走向对实用技术的研究和开发。远程医疗是现代医学与计算机技术、通信技术紧密结合的一种新型医疗模式[1],该系统的开发应用将有利于缓解就医难、医疗水平不均等诸多尖锐问题。但目前远程医疗仍属于相对薄弱的研究领域,以会话发起协议(session initiation protocol,SIP)为基础开展远程医疗系统的研究具有较大的探索价值。
1 SIP介绍
SIP是互联网工程任务组(internet engineering task force,IETF)制定的多媒体通信系统框架协议之一,是基于文本的应用层控制协议,独立于底层协议,采用自己的应用层可靠性机制来保证消息的可靠传输,用于建立、修改和终止IP网上的双方或多方多媒体会话[2]。它在协议栈中的位置如图1所示[3]。
2 远程医疗系统需求与设计
医院信息系统(hospital information system,HIS)主要提供医院电子化管理的功能,包含门诊管理、住院管理、药品信息管理、医疗设备管理和医院财务管理等[4]。远程医疗系统不仅是当前远程医疗的研究热点,更是网络科技与医疗技术结合的产物,是计算机、网络和多媒体技术在医学上的具体应用[5]。
图1 SIP在协议栈中的位置
通信网络系统是远程医疗系统的信息传输平台,是保证系统正常运行和通信质量的关键[6]。基于宽带互联网技术即基于Internet的多媒体通信[7]技术来建立远程医疗系统成为了远程医疗技术的主要发展趋势,本文以SIP为基础,设计远程医疗系统,整体架构如图2所示。患者终端通过Internet网连入到医院局域网,通过SIP服务器与医生终端之间进行语音视频,达到远程医疗的目的。
3 远程医疗系统的实现
远程医疗系统的软件框架图如图3所示,分为SIP服务器、数据库、医疗管理系统、终端4个部分。
医疗管理系统控制整个远程医疗系统,它的工作包括SIP服务器的性能配置、终端号码配置、医生信息管理、电子病历管理。SIP服务器根据配置信息进行工作,并根据号码信息对终端进行合法性认证。当患者终端与医生终端成功注册,即可以建立媒体流进行语音视频传输,完成远程医疗。
图2 远程医疗系统的整体架构
图3 远程医疗系统的软件框架图
3.1 医疗管理系统的设计与实现
医疗管理系统包括SIP服务器性能配置、终端号码配置、医生信息管理与电子病历管理4个模块。SIP服务器性能配置模块主要是配置服务器的性能参数,例如配置服务器的域名和端口,是否开启鉴权功能等,以此来决定SIP服务器的功能。终端号码配置模块是为医生和远程患者提供合法的号码,以便医生和患者终端接入到本系统中来。医生信息管理模块主要是维护医生的基本信息。电子病历管理模块主要是维护患者的病历信息。患者的电子病历在整个远程医疗中起着至关重要的作用,不仅是患者病情的记载,也为后续专家了解病情、作出合理诊断提供有力的依据。
由于篇幅有限,本文主要介绍终端号码配置模块的设计与实现。终端号码配置模块的功能是让系统管理人员为医生和患者配置合法的号码,实现平台内部号码互通。平台内部号码互通,是指所有支持SIP的通话终端注册到远程医疗系统中,在同一个平台下相互通话的应用方式。
终端号码配置工作是后续注册工作的前提条件,号码配置是否合法意味着注册过程能否顺利通过,号码分析是否合法意味着注册之后能否进入呼叫等后续操作。在终端号码配置模块中,配置流程如图4所示。
图4 终端号码配置的流程图
3.2 SIP服务器的设计与实现
SIP服务器从逻辑上分为注册服务器、代理服务器和重定向服务器[8]。注册服务器接收终端的注册请求,通过鉴权等操作完成终端的注册过程,记录终端信息,包括终端当前的SIP地址(URI)和IP地址[9]。代理服务器与重定向服务器根据终端被叫方登记的地址进行转发呼叫请求或者向主叫方返回被呼方的当前有效地址[10]。在物理实现中,将3个服务器集为一体,通过注册处理模块、代理转发模块、重定向模块来实现3个服务器的功能,SIP服务器的框架图如图5所示。
图5 SIP服务器的框架图
整个SIP服务器按功能划分成初始化模块、语法分析模块、鉴权处理模块、注册处理模块、代理转发模块、重定向模块、构造响应消息模块、传输层模块。服务器启动之后,初始化模块首先从服务器参数信息表中提取服务器的运行参数,接着周期性地从号码信息表中提取账号信息,更新账号链表,最后初始化协议栈,启动传输层线程等待消息的到来。当传输层模块收到请求消息时,先对请求信令进行语法分析,然后根据服务器配置信息来决定是否调用鉴权处理模块。若调用鉴权处理模块,则采用HTTP摘要认证来对用户的合法性进行验证。通过鉴权验证之后或者不调用鉴权处理模块,则根据语法分析得出的事务来调用不同的功能模块对消息进行处理。构造响应消息模块会根据整个处理过程所设置的状态码来生成响应消息,然后通过传输层发送到终端用户。
3.2.1 初始化模块
程序启动之后首先运行初始化模块。初始化模块的工作内容有4个方面:(1)从服务器配置参数信息表中提取服务器的运行参数。(2)从终端信息表中提取账号信息,维护账号链表。(3)初始化协议栈,设置回调函数。(4)启动传输层线程,监听消息。
3.2.2 语法分析模块
语法分析模块旨在检测SIP信令的有效性。检测SIP消息的头字段格式是否遵循通用格式。模块设计思路是对SIP消息的各个头字段分别进行检测。必要的头字段Request-Line、From、Call_ID、Cseq和To头字段不能为空。最大转发次数Max-Forwards头字段不能为0,Via头字段中不能有环路。
3.2.3 鉴权处理模块
鉴权处理模块是对申请注册和呼叫请求的用户进行HTTP摘要机制的鉴权、认证。进入鉴权处理模块,首先会查询服务器配置信息,如果没有开启鉴权功能,则直接进入下一个环节。若开启,则进入鉴权认证过程。设计的鉴权方案如图6所示。
图6 鉴权方案
本系统中,注册服务器从数据库终端信息CLIENT_INFO表中提取password字段,即HA1值,HA1=H(user:realm:password),H()是hash函数,user是电话号码,password是口令,realm是域名。HA2=H(method:digesturi),最后response=H(HA1:HA2:nonce)产生,将该值与终端发过来的信任证书中的response值进行比较,如果相等,则鉴权成功。
3.2.4 注册处理模块
注册处理模块根据SIP用户的注册行为来处理注册消息。注册处理的详细流程如图7所示。
图7 注册处理的详细流程
注册处理模块的功能包括单一地址注册、注册更新与注册更改功能、注册查询功能、主动与被动注销功能。主要功能是单一地址注册,保存用户的当前地址,存入账号链表,同时将用户的当前信息存入数据库,以方便其他服务器寻址。
3.2.5 代理转发模块
代理服务器将根据被呼方的逻辑账号在账号链表中寻找物理地址,从而向目的地址转发呼叫请求,使终端之间进行会话描述协议(session description protocol,SDP)协商,建立媒体流,进行语音视频通话。
3.2.6 重定向模块
重定向模块是获取被呼方的当前有效物理地址,然后返回给主叫方。主叫方根据新的地址重新发起呼叫请求,代理服务器即可为之转发,完成呼叫过程。
3.2.7 构造响应消息模块
该模块主要是根据其他模块处理后产生的状态码来构造响应消息。设计思路为首先根据状态码来构造初始的响应消息,包括基本的头字段。首先,依据状态码生成状态行Status_Line。然后,根据请求消息构造To、From、Via、Call_ID和Cseq头字段。最后,调用各功能模块对构造的响应消息进行再加工。
3.2.8 传输层模块
该模块主要功能是建立socket套接口,监听端口、绑定套接字、读取消息、发送SIP消息,完成系统底层的传输功能。实现上主要使用socket套接字编程技术。SIP消息可以采用TCP或者UDP进行传输,由于SIP消息有类似TCP的“三次握手”确认机制,为了加快系统的处理速度,故采用UDP协议进行消息的传输和接收。为了提高系统的吞吐量,并发处理多个SIP请求消息,传输层处理线程采用Select模型,使Windows Sockets同时对多个套接字进行管理。
4 远程医疗系统的测试
4.1 测试工具
(1)终端使用的SIP软电话选用x-lite软件,硬件选择IP电话和IAD设备连接的普通电话。
(2)抓包软件使用Empirix Inc公司开发的VoIP测试专业工具软件Hammer Call Analyzer对信令流程进行抓包分析。
(3)性能测试所用的工具为语言服务器性能测试工具SIPp。
4.2 功能测试
在功能测试中,设计了13个测试用例,分别为客户端号码配置测试、鉴权与不鉴权的注册测试、注册更新与注册更改测试、注册查询测试、主动注销测试、不需要鉴权呼叫建立、需要鉴权呼叫建立、正常呼叫释放、被叫拒绝应答、主叫呼叫取消、被叫号码不存在、被叫号码超过有效期、被叫用户忙。经测试,信令流程全部正确,基本功能完善。
4.3 性能测试
在呼叫次数共2 000次、呼叫频率为82次/s的情况下,测试结果如图8所示。
图8 性能测试结果
测试结果表明没有延迟发送消息,没有超时和无效消息,说明SIP服务器能够正确转发消息,进行SDP协商,建立媒体流,从而可以进行语音视频通话。
5 结语
本文以SIP为基础,设计了远程医疗管理系统,很好地在医生和患者之间建立了远程医疗平台,在提高边远地区医疗水平、对灾难中的受伤者实施紧急救助方面具有重要作用。由于本系统开发的SIP服务器属于小型服务器,不能承受百万级的呼叫,因此不能商用。本系统的开发只为探索该协议在此领域的作用,经测试分析,对商用开发有一定的参考价值。
[1] 刘峰,曾凡,黄昊,等.医院信息系统立体安全防护体系设计[J].医疗卫生装备,2013,34(11):43-45,48.
[2] 张智江,张云勇,刘韵洁,等.SIP及其应用[M].北京:电子工业出版社,2005:23-28.
[3] 胡东升,吴天顺,毕研峰,等.病理远程会诊系统的结构与应用[J].医疗卫生装备,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电话服务器的设计与实现[J].计算机工程,2007,3(3):278-280.
[6] 赵强,张成文,左荣国,等.基于软交换的NGN技术与应用开发实例[M].北京:人民邮电出版社,2009:316-323.
[7] 黄永峰,李建庆.下一代网络核心控制协议——SIP及其应用[M].北京:人民邮电出版社,2009:25-27.
[8] 周海华.SIP原理与应用[M].北京:机械工业出版社,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技术[M].北京:北京邮电大学出版社,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
湖北省科研计划项目(2012-DCB03002)
高 丹(1986—),女,助理工程师,主要从事信息管理与信息系统方面的研究工作,E-mail:gaodan226@sina.com。
430070武汉,广州军区武汉总医院信息科(高 丹,郭雪清,黄正东,王光华,肖 飞)