HL7标准在检验仪器通讯中的使用
杨大干
浙江大学医学院附属第一医院检验科(杭州 310003)
HL7是目前医疗信息数据交换标准中应用最广泛的一个国际标准,涉及整个医院信息系统(HIS)。越来越多的检验仪器通讯也采用HL7标准,来规范仪器设备与临床实验室信息系统(CLIS)的通讯,减少通讯接口的程序和维护。我科2001年10月引进的国内首台日立公司的临床实验室自动化系统(CLAS)就用HL7协议作为通讯接口标准,现综合报道如下:
1HL7标准
HL7(Health Level Seven)是ISO/OSI模型中的应用层(第7层), 主要定义了交换的数据格式,交换的时间规定及交换时的出错处理。对1-6层的协议没有明确定义,用户可以在一系列的协议堆中选择合适的一组。 HL7的数据格式由消息(Message)组成基本单位,一个消息由多个段(Segments)组成,一个段由多个字段(Fields)组成,字段是由一个或多个数据元组成的一个字符串[1]。
HL7标准包含的内容非常多,在CLIS方面定义的数据格式已经非常的详细,段及字段定义足够使用。下面结合检验仪器与CLIS之间通讯要使用的相关内容进行详细介绍:
1.1数据底层通讯控制
HL7支持各种通讯协议及通讯环境,目前最常用有TCP/IP、RS-232C两种。
1.1.1TCP/IP协议
TCP/IP协议主要用于局域网中两台计算机之间的可靠的传输服务,程序设计语言中用Winsock控件可以实现TCP服务。TCP提供了对段的检错、应答、重传和排序的功能,并提供了可靠地建立连接和拆除连接的方法,还提供流量控制和拥塞控制的机制。从而保证了数据底层通讯的可靠性[2]。Winsock控件分为服务器端和客户端,服务器端(检验仪器)的主要设置是发送、接收端口地址并监听(Listen)客户端;客户端(CLIS)主要设置是服务器端的IP地址、发送、接收端口地址。目前大型的检验仪器一般都采用此协议,以后中型、小型检验仪器也将逐渐采用。
1.1.2RS-232C
RS-232C主要用串口的数据通讯,传输速率低,程序设计语言中用Mscomm32等控件实现。主要设置通讯的串口、波特率、奇偶校验、数据位、停止位及协议,是目前检验仪器通讯中使用最广泛的一个数据底层通讯协议。
1.1.3HL7的最底层协议
HL7的最底层协议格式:〈SB〉dddd〈EB〉〈CR〉
〈SB〉=块开始符,dddd=数据,<EB>块结束符,〈CR〉回车。
这个格式组成一个消息。
另外,HL7为了提高通讯的可靠性,定义了确认消息来解决消息处理情况的反馈信息,定义了顺序号来解决消息丢失问题,定义一个连续协议解决任意长消息问题。
1.2 HL7数据格式
1.2.1消息确认
消息确认分为接收确认和应用确认,根据MSH段中第15,16个字段的内容来判断是否需要消息确认。
1.2. 2消息
检验仪器与CLIS通讯中常用的消息有:
OML(Laboratory Order Message )实验室指令消息:新增指令信息,附加指令信息,删除指令信息。
ORM (General Order Message) 一般命令信息: 新增指令信息,附加指令信息,删除指令信息。
ORR (General Response Message) 用于ORM消息的确认。
ORU(General Response Message) 用于ORL消息的确认
OUL(Unsolicited Laboratory Observation Message) 实验室检查结果信息(包括质控)
ACK (General Acknowledgment Message)一般应答信息
SSM (Specimen Status Message) 标本状态信息
有关消息的组成格式,请参照相关资料 [1] 。
1.2.3 段
检验仪器与CLIS通讯常用到的段有:
MSH-Message Header Segment :用于定义消息类型,来源,目标及一些消息语法规则。
MSA-Message Acknowledgment Segment:发送消息确认。
ERR-Error Message 消息的错误信息。
NTE-Notes and Comments Segment 备注评价信息。
PID-Patient Identification Segment 定义病人信息,包括就诊号,姓名、性别、出生年月等病人基本信息。
ORC-Common Order Segment发送新增、增加、删除、重送等一般的试验指令
OBR-Observation Request Segment发送检验申请信息,包括标本申请、采集信息、标本类型等等有关标本的信息。
TCD-Test Code Details Segment包括试验名称、稀释倍数等试验信息。
OBX-Observation/Result Segment检验结果信息,包试验名称、检验结果、标志、参考范围、检验仪器等结果信息。
EQU-Equipment Detail Segment仪器信息。
SAC-Specimen and Container Detail Segment医嘱号或标本号及在仪器上的位置信息。
SID-Substance Identifier Segment用于质量控制中的质控批号、质控等级等信息。
有关段的组成格式,请参照相关资料 [1] 。
2软件实现
2.1通讯程序
用VC、VB、PB、Delphi等高级程序设计语言中的Winsock、Mscomm32等控件实现检验仪器与CLIS之间的基于文本数据的底层通讯控制,将有用的消息存入消息数据表。消息数据表包括OML、ORM、ORR、ORU、OUL、SSM等消息,根据消息结构抽取段结构,根据段结构抽取字段结构并处理成相应的信息,存入或更新相应的数据库。通过编程完成以HL7标准的检验数据在检验仪器与CLIS之间数据格式转换。
2.2数据格式转换程序
根据消息类型及所包含的段的类型,不同类型不同处理,具体还要根据段所包含字段来具体处理。根据HL7标准的特点,可以把要用到的每个段编写成一个具体的函数,再根据消息的类型,用段函数来写成消息函数。这样可以通过不同情况调用不同的函数来完成数据格式转换功能,从而完成HL7信息构造和信息解析功能[3]。
3应用实例
日立(Hitchi)的临床实验室自动化系统(CLAS),配置是标本分析前处理系统、Hitchi 7600-110D、P模块生化分析仪,它通过系统管理器(SYM)与CLIS通讯。SYM是Window NT4.0,配置有两块网卡,一块网卡用于内部各仪器模块的通迅,另一块用于按HL7标准与CLIS进行通讯。CLIS服务器Windows NT,数据库Oracle8.0.4,工作站是Windows 98,软件开发工具是PB7.0。 通讯接口经过工作站,数据底层通讯控制用Winsock控件完成。CLIS向CLAS发送试验请求及病人基本信息,处理过程:CLIS把数据库中的病人资料及试验信息通过函数构造成HL7格式的文本数据,通过网络传递给CLAS,CLAS接收到文本数据后,通过函数把数据解析成自已的数据库资料,并发送到相应的模块。CLAS向CLIS发送样本状态、分注/分类结果、试验/质控结果,处理过程相反.见下图:
4结论
检验仪器与CLIS通信以HL7协议为标准,同一个软件可以在不同的厂家及仪器中使用,使通讯接口软件具有可重用性,提高了软件产品的质量和开发效率。目前,各类检验仪器至少有上千种,采用的通讯标准不一样,或者是自已开发的格式,这样CLIS从仪器上采集数据就需要对不同的仪器编写不同的通信程序。采用HL7标准后,只要按照涉及CLIS的HL7标准规则,就可以保证数据交换的准确性。
HL7是一个基于文本的标准,属于应用层协议[2],需要用程序语言如:VC,VB,PB,Delphi等来完成格式转换。无论用那一种程序设计语言,都是利用HL7标准,把文本转换成CLIS数据格式。所以程序设计根据HL7标准来完成,软件具有可理解性、可维护性,可修改性等符合软件工程的要求,而不需要花大量的时间去了解某个字段在不同仪器中所代表的不同的信息。
HL7支持TCP/IP协议,在局域网内传输速度最高可达几十兆,可靠性好,适用于临床实验室自动化系统中各类仪器与CLIS之间的实时、高速、可靠的数据交换[4]。另外,当用于通信的计算机故障时,可以用局域网内的任何一台计算机(安装有通讯程序)重新建立连接。不需要像串口通信时,要重新连线,提高了工作效率、可维护性。
最后,检验仪器通讯中的使用hl7标准是一个非常好的协议,是今后检验仪器通讯的国际标准。希望国内外仪器厂家及CLIS尽快按HL7标准来做,规范仪器通讯接口的数据通讯.
[参考文献]
1.HL7 Version 2.3,http//www.hl7.org
2.华蓓,钱翔,刘永。科学出版社。计算机网络原理与技术。1999
3.张翠英,张尚军、徐晨勇。生物医学工程学杂志。医疗信息交换标准——HL7 2001"18(1):111-115
4.马文新,崔屹立.世界医疗器械.全实验室自动化技术与发展.第五卷 第七期 15-19. 1999
|