一种通过映射生成hl7消息的方法

文档序号:6364183阅读:391来源:国知局
专利名称:一种通过映射生成hl7消息的方法
技术领域
本发明涉及一种通过映射将自定义格式的消息转换成HL7标准格式消息的方法, 便于医疗行业现存异构系统的集成,统一消息格式,共享数据。
背景技术
构建卫生信息平台,目前通用的方法是集成医疗行业现存异构信息系统。其中最主要的问题就是统一异构系统之间数据交换的格式。采用国际通用的医疗信息标准HL7,是提高国内信息化水平的必经之路。HL7 (Health Level 7),即标准化的卫生信息传输协议,是医疗领域不同应用之间电子传输协议,其中“7”表示该协议位于OSI (Open System Interconnect,开放式系统互联)模型的第七层应用层。HL7制定了医疗数据信息传输协议和标准,规范了临床医学和管理信息格式,降低了医疗信息系统互联的成本,提高了医疗信息系统之间数据信息共享的程度。HL7通讯协议中,消息(Message)是数据在系统之间交换的基本单位,每条消息都有各自的消息类型(以HL7版本2. 4为例,消息类型有112种)。一个消息由多个段(Segment) 组成,每一个段都有相应的名称,用于界定其内容或功能。每个消息段又由若干个数据字段 (Field)组成,同时,数据字段又由一个或多个组件(Component)组成。这种层级结构的消息能够通过XML进行有效的刻画。XML (Extensible Markup Language),即可扩展标记语言,是 SGML (Standard Generalized Markup Language,标准通用标记语言)的一种。XML简单易用,是当前处理结构化文档信息的有力工具。XML具有跨平台的特性,是一种依赖于内容的技术,这使得XML 为越来越多的应用程序所支持,成为了应用程序之间数据交换的唯一公共语言。HL7标准消息完全支持XML,并且有一整套完备的规范规定了 XML标签的命名,数据的类型,数据的值域等。医疗机构中异构信息系统用XML存储的数据可以通过映射的方法,实现和HL7标准消息的转换。这种映射方法是通过GEF提供的可视化界面,利用简单的连线实现的。GEF (Graphical Editor Framework),即图形化编辑框架,它给用户提供了图形化编辑模型的功能。GEF是具有标准MVCXModel—View — Control,模型一视图一控制器)结构的图形编辑框架。Model由我们根据业务的需求来设计,它提供了一种模型改变通知机制, 用来把Model的变化告诉Control。Control在MVC结构里面是Model和View之间的桥梁, 是整个GEF的核心。它不仅监听模型的变化,当用户编辑视图的时候,还要把编辑结果放映到模型上。GEF提供了两种View,分别是图形(GraphicalViewer)和树状(TreeViewer)。 View主要是把Model以图形化的方式表现给用户。目前,国内将异构信息系统数据格式转换成国际标准的需求越来越高,但是一种通用的便捷的方法尚未形成。本发明提供的方法,能有效地解决这一问题。

发明内容
本发明的目的在于针对现有技术的不足,提供一种通过映射生成HL7消息的方法,该方法实现了以XML格式存储的自定义消息转换成HL7标准格式的消息。本发明的目的是通过以下技术方案来实现的一种通过映射生成HL7消息的方法,包括以下步骤
第一,读取源XML文件(自定义格式的XML文件称之为源XML文件)模板和目的XML文件(HL7消息标准XML文件称之为目的XML文件)模板;
第二,解析源XML文件模板和目的XML文件模板,分别生成源消息树和目的消息树(消息树,即XML文件所对应的树形结构);
第三,源消息树和目的消息树进行映射,生成XSL (Extensible Stylesheet Language,扩展样式表语言)文件;
第四,根据第三步生成的XSL文件,读取源XML文件,自动生成相应的HL7标准格式的消息。需要注意的是第一步和第四步分别是读取源XML文件模板和源XML文件,两者的区别是,源XML文件模板是源XML文件的抽象,不包含具体的数据。本发明的有益效果是
I、简单易用通过简单的连线实现节点之间的映射,并自动生成记录了所有映射的 XSL文档。2、直观基于GEF的可视化操作界面,直接呈现出了用户所需进行的所有映射。3、完备支持的HL7标准消息包含了所有的2. X (2. 1,2. 2,2. 3,2. 4,2. 5等)版本, 以及最新的3. 0版本。4、反向映射可以把自定义消息转换成HL7标准消息,同样也可以将HL7标准消息转换成自定义消息,只需要在源消息树里面导入HL7消息,目的消息树里面导入自定义消息的模板即可。


图I为解析XML文件模板,生成消息树的流程图2中,(a)为某XML文件模板,(b)为其所对应的消息树;
图3为通过映射生成HL7标准消息的整体过程图。
具体实施例方式下面结合附图详细描述本发明。本发明通过映射生成HL7消息的方法,包括以下步骤
第一,读取源XML文件(自定义格式的XML文件称之为源XML文件)模板和目的XML文件(HL7消息标准XML文件称之为目的XML文件)模板。源XML文件模板和目的XML文件模板是不包含具体数据的XML文件,本方法通过 DOM (Document Object Module,文档对象模型)来读取并解析XML文档。第二,解析源XML文件模板和目的XML文件模板,分别生成源消息树和目的消息树。源消息树和目的消息树的生成过程是一样,如图I所示,循环遍历XML文件中的元素Element,每个Element将作为根节点生成一棵树,该Element的属性便作为子节点加入到根节点下面,生成子树。不同的Element生成的树作为兄弟树,共同构成消息树。图2显示了某XML文件模板及其所对应的消息树。在消息树中,Element节点将用“e”来标示,属性节点将用“a”来标示。本方法能将不同结构的XML文件转换成HL7标准格式的XML文件。源XML文件模板不唯一,所生成的源消息树也不唯一。目的XML文件模板,即HL7标准格式的XML是唯一的,所以相应的消息树也是唯一的。由于HL7标准消息由若干个消息段组成,所以目的XML 文件模板的最小单位就是HL7标准消息段的XML文件。通过组合不同的消息段,即读取并解析不同的消息段的XML文件,即可生成用户所需的目的消息树。读取、解析若干个XML文件并生成消息树的实现过程和图一所示的过程相差无几,只需将若干次解析的结果合并生成消息树即可。第三,源消息树和目的消息树进行映射,生成XSL (Extensible Stylesheet Language,扩展样式表语言)文件。由XML文件生成的消息树,通过GEF提供的TreeViewer,能直观地以图形化界面展示出来。其中,消息树的节点就是GEF中的模型Mode I。映射的过程就是连线的过程,即将源消息树节点和目的消息树的节点关联起来。 关联的方式有四种第一种,value-of,即直接赋值,将源消息树节点的值直接赋值给目的消息树的节点;第二种,for-each,即循环生成赋值,表示源消息树的某个节点可能出现若干次,如果出现若干次,则相关联的目的消息树的节点也出现与之相同的次数,并且一一对应赋值;第三种,choose,即选择赋值(也称之为有条件赋值),表示源消息树节点的值在符合一定条件情况下才赋值给目的消息树;第四种,string,即常量赋值,赋予相应的目的节点一个常量值。四种关联方式对应了四种连线,这四种连线都是继承并扩展了 GEF提供的连线。GEF中的监听器Control将监听模型Model的变化,每次连线都将改变了源消息树节点和目的消息树节点的相关信息。这些信息的变化将触发模型Model的监听器Control。 源消息树的节点将记录连线终点(相关联的目的消息树的节点)的名称以及连线类型,同样的,目的消息树将记录连线起点(相关联的源消息树的节点)的名称和连线类型。连线结束后,遍历目的消息树节点所对应的模型Model,根据记录的信息生成XSL文档。XSL文档将记录所有的映射规则,即所有的连线,包括连线类型,以及连线的起点和终点。第四,根据第三步生成的XSL文件,读取源XML文件,自动生成相应的HL7标准格式的消息。根据第三步生成的XSL文件,输入源XML文件,调用JAXP (Java API for XML Processing,即Java程序设计语言中用于处理XML文档的方法集合)提供的transform方法,就能自动生成用户所需的HL7标准格式的XML文件。
权利要求
1.一种通过映射生成HL7消息的方法,其特征在于,该方法包括以下步骤(1)读取源XML文件模板和目的XML文件模板;(2)解析源XML文件模板和目的XML文件模板,分别生成源消息树和目的消息树;(3)源消息树和目的消息树进行映射,生成XSL文件;(4)根据第三步生成的XSL文件,读取源XML文件,自动生成相应的HL7标准格式的消肩、O
2.根据权利要求I所述通过映射生成HL7消息的方法,其特征在于,所述步骤(I)中, 所述源XML文件模板为自定义格式的XML文件模板,目的XML文件模板为HL7消息标准模板;所述源XML文件模板和目的XML文件模板是不包含具体数据的XML文件,通过DOM来读取并解析XML文档。
3.根据权利要求I所述通过映射生成HL7消息的方法,其特征在于,所述步骤(2) 中,所述源消息树和目的消息树的生成过程一样,具体为循环遍历XML文件中的元素 Element,每个Element将作为根节点生成一棵树,该Element的属性便作为子节点加入到根节点下面,生成子树;不同的Element生成的树作为兄弟树,共同构成消息树。
4.根据权利要求I所述通过映射生成HL7消息的方法,其特征在于,所述步骤(3)中, 所述映射的过程就是连线的过程,即将源消息树节点和目的消息树的节点关联起来;关联的方式有四种第一种,value-of,即直接赋值,将源消息树节点的值直接赋值给目的消息树的节点;第二种,for-each,即循环生成赋值,表示源消息树的某个节点可能出现若干次, 如果出现若干次,则相关联的目的消息树的节点也出现与之相同的次数,并且一一对应赋值;第三种,choose,即选择赋值(也称之为有条件赋值),表示源消息树节点的值在符合一定条件情况下才赋值给目的消息树;第四种,string,即常量赋值,赋予相应的目的节点一个常量值;四种关联方式对应了四种连线,这四种连线都是继承并扩展了 GEF提供的连线; GEF中的监听器Contool将监听模型Model的变化,每次连线都将改变了源消息树节点和目的消息树节点的相关信息;这些信息的变化将触发模型Model的监听器Contool ;源消息树的节点将记录连线终点(相关联的目的消息树的节点)的名称以及连线类型,同样的,目的消息树将记录连线起点(相关联的源消息树的节点)的名称和连线类型;连线结束后,遍历目的消息树节点所对应的模型Model,根据记录的信息生成XSL文档;XSL文档将记录所有的映射规则,即所有的连线,包括连线类型,以及连线的起点和终点。
全文摘要
本发明公开了一种通过映射生成HL7消息的方法,该方法首先读取源XML文件模板和目的XML文件模板,然后解析源XML文件模板和目的XML文件模板,分别生成源消息树和目的消息树,接着源消息树和目的消息树进行映射,生成XSL文件,最后根据XSL文件,读取源XML文件,自动生成相应的HL7标准格式的消息;本发明的方法通过简单的连线实现节点之间的映射,并自动生成记录了所有映射的XSL文档;本发明可以把自定义消息转换成HL7标准消息,同样也可以将HL7标准消息转换成自定义消息,只需要在源消息树里面导入HL7消息,目的消息树里面导入自定义消息的模板即可。
文档编号G06F17/30GK102609506SQ201210023789
公开日2012年7月25日 申请日期2012年2月3日 优先权日2012年2月3日
发明者潘晓华, 董科雄, 邵克华 申请人:杭州杰唐信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1