颜景浩,孙迎,李丕丁
(上海理工大学医疗器械与食品学院,200093)
通常情况下,住院的患者在使用抗菌药物治疗之前,都要在微生物实验室[1]进行病原微生物的鉴定和分析检测。但是近几年,随着临床上大量使用种类繁多的各类抗菌药物,细菌的耐药性越来越普遍,部分细菌可同时耐多种药物[2],耐药菌株的广泛传播给临床治疗带来了很大困难,特别是针对医院内部感染的细菌[3],微生物鉴定分析也变得尤为重要。随着计算机技术在各个学科领域的高速发展,微生物的检测、鉴定也逐步由手工检测走向仪器化、电子化,并促使了微生物鉴定分析系统的诞生[4]。
目前,微生物实验室配备常见微生物系统有:Phoenix-100系统[5]、Biolog微生物自动分析系统[6]、VITEK2系统[7]、XK型自动微生物鉴定药敏分析系统[8]等,这些系统大多是独立存在,软件系统部分没有与医院其他系统进行数据互通。而在系统使用过程中还需要将来自住院部和门诊的大量的标本进行分类编号[9],大量的信息匹配也给工作带来了诸多的不便,容易出现信息的错误匹配等失误,大大降低了微生物实验室的工作和服务效率。
按照有关要求[10],医院应积极开展集成信息平台建设,实现医院内部和区域之间信息系统整合、互联互通、信息共享。并且充分利用现代方法和信息技术,提高医疗服务质量和服务水平,加强管理,预防和减少医疗差错。
本研究提出了按照IHE-LAB中的LBL(laboratory specimen barcode labeling,LBL)技术规范与标准,设计与实现微生物鉴定分析系统与医生客户端之间的集成平台,达到基本信息快速采集与标签构造等过程,实现系统之间进行标本条码标签化的信息通信,并有效地解决微生物鉴定分析系统“信息孤岛[11]”的问题。
医疗健康信息集成规范(integrating the healthcare enterprise,IHE)是基于现有的HL7、DICOM等标准,通过制定技术框架和集成模式来对医疗信息流程进行规范化,促进医疗信息系统之间的互联、互通、互操作[12]。实验室技术框架(laboratory technical framework,LAB TF)是专门为临床实验室开发的集成框架。旨在通过LIS(laboratory information system,LIS)和其他信息系统(如hospital information system,HIS)集成与协调工作,实现系统间数据信息的自动化,提高工作效率,减少差错产生。其中,IHE LAB中的实验室标本条码管理(LBL)是专门针对临床实验室,为实验室提供了规范标签信息流转的解决方案。
在LBL集成模式中,分别有条码提供者(label information provider,LIP)和条码代理者(label broker,LB)两个角色,而对应要完成的是标签投放指令查询(query for label delivery instruction)[LAB-61]、标签传递请求(Label delivery request)[LAB-62]两个事务[13],进而实现采集标本标签信息等功能,LBL集成模式框架图,见图1。
在LBL集成模式中,[LAB-61]和[LAB-62]两个事务分别以主动传输和被动查询的方式来获取采集信息,两个事务互不冲突,可单独存在,也可以并存。
图1 LBL集成模式架构图
以[LAB-61]事务为例,它是以主动传输的方式,将标签信息由“提供者”传输至“代理者”,由“代理者”将反馈信息反馈至“提供者”,具体消息流程见图2。
图2 [LAB-61]事务消息流程图
2.3.1OML^O33消息的构成 在OML^O33消息中,主要包含:MSH(消息头)、PID(病人信息段)、PV1(病人就诊段)、SPM(标本信息段)、ORC(检测项目标识信息段)、TQ1(检测项目时间段)、OBR(检测项目明细段)等必不可少的段落约束[14]。
本研究设计的OML^O33具体消息如下:
MSH|^~&|DoctorWorkstation_LIP|DoctorWorkstation|MicrobialSystem_LB|MicrobialSystem|20151116024505||OML^O33|L20151116024505|P|2.6|||AL|AL|UNICODE UTF-8
PID||151116N31019107130216M2802|201511162802||Zhang^San||19910713|M|||&ChangBai Street^^^Shanghai^200093||021||||||310100199107130216||||Shanghai
PV1||I|||151116N31019107130216M2802||||||||||||^^Doctor Li| Clinic
SPM|151116B31019107130216M001|||^^^^Petri dish^^^Blood||||Blood||||10
ORC|NW||||||||20151116024505
TQ1|151116N31019107130216M2802||||||20151116024505
OBR|1|^^MicrobialSystem|^^DoctorWorkstation|^2015.11.16SLS 02|||20151116024505||||||||^^^^^^&Blood|||||LABSLIP
此消息表示由医生客户端(DoctorWorkstation)发往微生物鉴定分析系统(MicrobialSystem)的检测所需要的基本信息。其中,患者姓名为:Zhang San,男;身份证号:310100199107130216;住址为:上海市长白街道;邮编是:200093,病人ID(住院号)为:151116N31019107130216M2802。就诊者类别为:I表示自费;护理医生为:李医生;就诊者类型为:门诊。采集编号:151116B31019107130216M001,标本类型:血培养;标本来源:血液;采集量:10ml;容器类型:培养皿;处理时间为2015年11月16日02时45分05秒。
消息中的患者ID也是患者的住院号,是全院唯一的ID号,该ID的构成规则为:住院时间+住院科室+身份证号+性别+床位号码+排列序号。如:20151116N310100199107130216M2802,为了节省数据占用空间,2015可简化成15,而身份证号码前四位即可判断该患者的出生地的地市级,故该号码缩减为:151116N31019107130216M2802。同理,项目采集编号的规则为:采集时间+标本来源+身份证号+性别+采集序列,如151116B31019107130216M001。
2.3.2ORL^O34消息的构成 在ORL^O34消息中,主要包含:MSH(消息头)、MSA(消息确认)、ERR(错误段)、回应信息等段落约束,该消息是微生物鉴定分析系统(MicrobiaSystem)向医生客户端(DoctorWorkstation)反馈的确认消息。
本研究设计的ORL^O34消息具体如下:
MSH|^~&|MicrobialSystem_LB|MicrobialSystem|DoctorWorkstation_LIP|DoctorWorkstation|20151116024525||ORL^O34|L20151116024525|P|2.5|||AL|AL|UNICODE UTF-8
MSA|AA|L20151116024525
其中,MSA段为消息确认段的确认代码为:AA(AA,Application accept表示接受;AE,Application error表示错误;AR,Application reject表示拒绝[15])。
本研究设计的微生物鉴定分析系统是基于C/S模式、三层架构开发,包括检测、查询、质控、调适等功能。系统采用实时扫描技术,通过检测96孔中每块细菌鉴定板上各孔的亮度、颜色或纹理变化,绘制出的特征-时间曲线,形成数据指纹。由于不同细菌对各孔发生的化学反应不同而造成的亮度、颜色或纹理的差异,再通过统计学原理或模式识别技术即可对细菌进行全自动鉴定。
为了方便系统集成,本研究配置了医生客户端,医生客户端是患者基本信息的来源,实现患者信息管理。在医院实际的集成中,医生客户端可以是HIS,也可以是LIS,具体要根据医院的实际需求。
本研究设计的集成平台架构见图3。
图3 集成平台框架图
其中:
(1)在集成平台中,医生客户端实现条码信息提供者角色(LIP);微生物鉴定分析系统实现条码代理者角色(LB)。
(2)标签传递请求[LAB-61]:医生客户端(LIP)通过OML^O33消息将患者基本信息、标本信息构成的标签内容,发送至微生物鉴定分析系统(LB),微生物鉴定分析系统(LB)以OML^O34消息的形式做出回应,回应内容包括:接受、错误、拒绝。
(3)标签传递指令查询[LAB-62]:微生物鉴定分析系统(LB)通过QBP_Q11消息向医生客户端(LIP)发送主动查询请求,医生客户端(LIP)通过RSP_K11消息,将标签内容传递给微生物鉴定分析系统(LB)。
集成平台的集成功能组件可分解为以下三部分:LBL角色事务功能与标本条码标签构造模块、HL7通信模块、HL7消息的构造解析模块。
3.3.1LBL角色事务功能与条码标签构造模块 集成模式中的角色包括医生客户端(LIP)和微生物鉴定分析系统(LB)两个角色,而通讯的事务,以标签传递请求[LAB-61]事务为例,具体包含的OML^O33和ORL^O34两条HL7消息。
当微生物鉴定分析系统(LB)接收到医生客户端(LIP)传输的OML^O33消息格式的标本标签基本信息,并且以OML^O34消息做出回应之后,系统需要将标本条码标签需要的信息内容进行解析,并生成QR二维码形式,标本标签见图4。
图4 微生物检测标本标签图例
上图中的QR二维码中包含的基本信息如下:ZhangSan,M,ID:151116N31019107130216M2802,SPMID:151116B31019107130216M001,Blood,10 ml,Petri dish,在这些信息中,涵盖了患者的姓名、性别、出生年月、身份证号、住院号(唯一ID)、床位号、标本采集ID、标本来源、采集量、采集容器类型等信息,配合QR二维码的使用,使微生物检测样本标签信息的采集提供了更高的准确性。
3.3.2HL7通信模块 LLP(The Lower Layer Protocol)有时也被称为MLLP(Minimal Lower Layer Protocol),MLLP是最常见的通过TCP/IP局域网传送未封装的HL7消息的机制[16]。
该通讯模块主要使用了Windows Socket进行了TCP/IP通讯,在医生客户端和微生物鉴定分析系统端分别把消息数据定义成了一串连续的比特流,由于HL7消息的通信代码需要被识别,故按照HL7 MLLP协议的规定,在发送时HL7消息时,在消息头增加一个字节的(OxOB),以及在消息尾巴增加两个字节的(0xlC和0x0D)进行封装,然后通过Socket发送,通讯模块流程见图5。
其中,HL7Encode( )为HL7消息构造函数,HL7Parser( )为HL7消息解析函数,QREncode( )为QR二维码信息构造函数。
3.3.3HL7消息的构造解析模块 选择使用NHapi开发包,进行HL7消息的构造和解析。以OML^O33消息构造和解析为例。首先实例化一个OML^O33对象,然后按照语义要求给所有必需的字段赋值,具体构造解析如下:
图5 通讯模块流程图
NHapi.Model.V25.Message.OML_O33oml = new OML_O33();
oml.MSH.MessageType.MessageCode.Value = "OML";
oml.MSH.MessageType.TriggerEvent.Value = "O33";
然后依次填入消息头必填字段:
oml.MSH.FieldSeparator.Value = "|";
oml.MSH.EncodingCharacters.Value = @"^~&";
oml.MSH.ProcessingID.ProcessingID.Value = "P";
不同的移动应用类型在实现方式上对应着不同的应用开发技术栈,主要包括传统模式、Bridge模式和寄生模式等3种。
oml.MSH.VersionID.VersionID.Value = "2.5";
oml.MSH.AcceptAcknowledgmentType.Value = "AL";
oml.MSH.ApplicationAcknowledgmentType.Value = "AL";
oml.MSH.CountryCode.Value = "UNICODE UTF-8";
第二步是填写PID段:
PIDpid = oml.PATIENT.PID;
pid.PatientID.IDNumber.Value ="151116N31019107130216M2802";
然后依次填入PID患者相关信息部分字段
pid.GetPatientName(0).FamilyName.Surname.Value = "Zhang";
pid.GetPatientName(0).GivenName.Value = "San";
pid.AdministrativeSex.Value ="M";
pid.DateTimeOfBirth.Time.Value ="19910713";
pid.SSNNumberPatient.Value = "310100199107130216";
pid.GetPatientAddress(0).StreetAddress.StreetName.Value = "Shanghai ChangBai Street";
pid.GetPatientAddress(0).ZipOrPostalCode.Value = "200093";
然后填写PV1段:
PV1 pv1 = oml.PATIENT.PATIENT_VISIT.PV1;
pv1.PatientType.Value = "Clinic";
pv1.PatientClass.Value = "I";
然后填写SPM段:
oml.GetSPECIMEN(0).SPM.SpecimenType.AlternateCodingSystemVersionID.Value = "Blood"; oml.GetSPECIMEN(0).SPM.SpecimenSourceSite.Identifier.Value = "Blood"; oml.GetSPECIMEN(0).SPM.SpecimenCollectionAmount.Quantity.Value = "10"; oml.GetSPECIMEN(0).SPM.SpecimenType.AlternateText.Value = "Petri dish";
解析一个OML消息部分代码如下:
PipeParser parser = newPipeParser();
IMessage m = parser.Parse(omlMsgStr,”2.5”);
OML_O33 oml_o33 = m asOML_O33;
其中,解析SPM段代码如下:
stringSetIDSpm = oml_o33.GetSPECIMEN(0).SPM.SetIDSPM.Value; //标本ID
stringSpmSource = oml_o33.GetSPECIMEN(0).SPM.SpecimenSourceSite.Identifier.Value; //标本来源
stringSpmAmount =oml_o33.GetSPECIMEN(0).SPM.SpecimenCollectionAmount.Quantity.Value; //采集量
stringSpmContainer = oml_o33.GetSPECIMEN(0).SPM.ContainerType.Identifier.Value; //采集容器
为了验证所传输的HL7消息是否符合HL7消息标准,本研究也运用了7 Edit软件进行测试。在测试中,7Edit测试工具的显示为Nothing found,表示各消息段中没有错误,故消息符合HL7标准,见图6、图7。
图6 OML^O33消息验证
图7 ORL^O34 消息验证
该集成平台实现了HL7消息构造与解析的数据传输能力,通过HL7消息的构造与解析,使得微生物鉴定分析系统能够快速、准确的采集标签所需的信息,并生微生物检测标本标签。该平台还可以与其他符合HL7消息标准的医学信息系统进行集成,促进医疗区域化共享。
本研究基于IHE LBL技术框架的解决方案,完成了微生物鉴定分析系统与医生客户端组成的集成平台的设计,以及集成模式中角色的设计和事务的通讯,完成了标准的HL7消息的构造与解析,并结合Windows Socket消息机制,完成HL7消息的流转。同时,引用了时下使用最广泛的QR 二维码,使微生物检测标本标签以QR二维码的形式生成,进一步扩充了标签的储存容量,更确保了标本标签信息来源的准确性,方便以后微生物实验室进行标签管理。而采用IHE国际标准技术框架的集成平台的设计,使得微生物鉴定分析系统具有一定的开放性和可扩展性。
基于IHE LBL的有关的标准化集成应用在国内还是处于起步阶段。在实现信息化、区域化医疗的过程中,本文可为尚未完成医学实验室标准化集成的应用提供参考。在以后的研究中,将扩展IHE LAB其他集成模式的应用,使国际化标准在微生物实验室得到进一步验证与使用。