著录项信息
专利名称 | 一种通过映射生成HL7消息的方法 |
申请号 | CN201210023789.3 | 申请日期 | 2012-02-03 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2012-07-25 | 公开/公告号 | CN102609506A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 杭州杰唐信息技术有限公司 | 申请人地址 | 浙江省杭州市西湖区华星路96号3幢401-402室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 杭州铭唐信息科技有限公司 | 当前权利人 | 杭州铭唐信息科技有限公司 |
发明人 | 邵克华;潘晓华;董科雄 |
代理机构 | 杭州求是专利事务所有限公司 | 代理人 | 周烽 |
摘要
本发明公开了一种通过映射生成HL7消息的方法,该方法首先读取源XML文件模板和目的XML文件模板,然后解析源XML文件模板和目的XML文件模板,分别生成源消息树和目的消息树,接着源消息树和目的消息树进行映射,生成XSL文件,最后根据XSL文件,读取源XML文件,自动生成相应的HL7标准格式的消息;本发明的方法通过简单的连线实现节点之间的映射,并自动生成记录了所有映射的XSL文档;本发明可以把自定义消息转换成HL7标准消息,同样也可以将HL7标准消息转换成自定义消息,只需要在源消息树里面导入HL7消息,目的消息树里面导入自定义消息的模板即可。
1.一种通过映射生成HL7消息的方法,其特征在于,该方法包括以下步骤:
(1)读取源XML文件模板和目的XML文件模板;
(2)解析源XML文件模板和目的XML文件模板,分别生成源消息树和目的消息树;
(3)源消息树和目的消息树进行映射,生成XSL文件;
(4)根据第三步生成的XSL文件,读取源XML文件,自动生成相应的HL7标准格式的消息;
所述步骤(1)中,所述源XML文件模板为自定义格式的XML文件模板,目的XML文件模板为HL7消息标准模板;所述源XML文件模板和目的XML文件模板是不包含具体数据的XML文件,通过DOM来读取并解析XML文档;
所述步骤(2)中,所述源消息树和目的消息树的生成过程一样,具体为:循环遍历XML文件中的元素Element,每个Element将作为根节点生成一棵树,该Element的属性便作为子节点加入到根节点下面,生成子树;不同的Element生成的树作为兄弟树,共同构成消息树;
所述步骤(3)中,所述映射的过程就是连线的过程,即将源消息树节点和目的消息树的节点关联起来;关联的方式有四种:第一种,value-of,即直接赋值,将源消息树节点的值直接赋值给目的消息树的节点;第二种,for-each,即循环生成赋值,表示源消息树的某个节点可能出现若干次,如果出现若干次,则相关联的目的消息树的节点也出现与之相同的次数,并且一一对应赋值;第三种,choose,即选择赋值,也称之为有条件赋值,表示源消息树节点的值在符合一定条件情况下才赋值给目的消息树;第四种,string,即常量赋值,赋予相应的目的节点一个常量值;四种关联方式对应了四种连线,这四种连线都是继承并扩展了GEF提供的连线;GEF中的监听器Control将监听模型Model的变化,每次连线都将改变了源消息树节点和目的消息树节点的相关信息;这些信息的变化将触发模型Model的监听器Control;源消息树的节点将记录连线终点的名称以及连线类型,所述连线终点为相关联的目的消息树的节点;同样的,目的消息树将记录连线起点的名称和连线类型,所述连线起点为相关联的源消息树的节点;连线结束后,遍历目的消息树节点所对应的模型Model,根据记录的信息生成XSL文档;XSL文档将记录所有的映射规则,即所有的连线,包括连线类型,以及连线的起点和终点。
一种通过映射生成HL7消息的方法\n技术领域\n[0001] 本发明涉及一种通过映射将自定义格式的消息转换成HL7标准格式消息的方法,便于医疗行业现存异构系统的集成,统一消息格式,共享数据。\n背景技术\n[0002] 构建卫生信息平台,目前通用的方法是集成医疗行业现存异构信息系统。其中最主要的问题就是统一异构系统之间数据交换的格式。采用国际通用的医疗信息标准HL7,是提高国内信息化水平的必经之路。\n[0003] HL7(Health Level 7),即标准化的卫生信息传输协议,是医疗领域不同应用之间电子传输协议,其中“7”表示该协议位于OSI(Open System Interconnect,开放式系统互联)模型的第七层应用层。HL7制定了医疗数据信息传输协议和标准,规范了临床医学和管理信息格式,降低了医疗信息系统互联的成本,提高了医疗信息系统之间数据信息共享的程度。HL7通讯协议中,消息(Message)是数据在系统之间交换的基本单位,每条消息都有各自的消息类型(以HL7版本2.4为例,消息类型有112种)。一个消息由多个段(Segment)组成,每一个段都有相应的名称,用于界定其内容或功能。每个消息段又由若干个数据字段(Field)组成,同时,数据字段又由一个或多个组件(Component)组成。这种层级结构的消息能够通过XML进行有效的刻画。\n[0004] XML(Extensible Markup Language),即可扩展标记语言,是SGML(Standard Generalized Markup Language,标准通用标记语言)的一种。XML简单易用,是当前处理结构化文档信息的有力工具。XML具有跨平台的特性,是一种依赖于内容的技术,这使得XML为越来越多的应用程序所支持,成为了应用程序之间数据交换的唯一公共语言。HL7标准消息完全支持XML,并且有一整套完备的规范规定了XML标签的命名,数据的类型,数据的值域等。医疗机构中异构信息系统用XML存储的数据可以通过映射的方法,实现和HL7标准消息的转换。这种映射方法是通过GEF提供的可视化界面,利用简单的连线实现的。\n[0005] GEF(Graphical Editor Framework),即图形化编辑框架,它给用户提供了图形化编辑模型的功能。GEF是具有标准MVC(Model—View—Control,模型—视图—控制器)结构的图形编辑框架。Model由我们根据业务的需求来设计,它提供了一种模型改变通知机制,用来把Model的变化告诉Control。Control在MVC结构里面是Model和View之间的桥梁,是整个GEF的核心。它不仅监听模型的变化,当用户编辑视图的时候,还要把编辑结果放映到模型上。GEF提供了两种View,分别是图形(GraphicalViewer)和树状(TreeViewer)。\nView主要是把Model以图形化的方式表现给用户。\n[0006] 目前,国内将异构信息系统数据格式转换成国际标准的需求越来越高,但是一种通用的便捷的方法尚未形成。本发明提供的方法,能有效地解决这一问题。\n发明内容\n[0007] 本发明的目的在于针对现有技术的不足,提供一种通过映射生成HL7消息的方法,该方法实现了以XML格式存储的自定义消息转换成HL7标准格式的消息。\n[0008] 本发明的目的是通过以下技术方案来实现的:一种通过映射生成HL7消息的方法,包括以下步骤:\n[0009] 第一,读取源XML文件(自定义格式的XML文件称之为源XML文件)模板和目的XML文件(HL7消息标准XML文件称之为目的XML文件)模板;\n[0010] 第二,解析源XML文件模板和目的XML文件模板,分别生成源消息树和目的消息树(消息树,即XML文件所对应的树形结构);\n[0011] 第三,源消息树和目的消息树进行映射,生成XSL (Extensible Stylesheet Language,扩展样式表语言)文件;\n[0012] 第四,根据第三步生成的XSL文件,读取源XML文件,自动生成相应的HL7标准格式的消息。\n[0013] 需要注意的是第一步和第四步分别是读取源XML文件模板和源XML文件,两者的区别是,源XML文件模板是源XML文件的抽象,不包含具体的数据。 \n[0014] 本发明的有益效果是:\n[0015] 1、简单易用:通过简单的连线实现节点之间的映射,并自动生成记录了所有映射的XSL文档。\n[0016] 2、直观:基于GEF的可视化操作界面,直接呈现出了用户所需进行的所有映射。\n[0017] 3、完备:支持的HL7标准消息包含了所有的2.X(2.1,2.2,2.3,2.4,2.5等)版本,以及最新的3.0版本。\n[0018] 4、反向映射:可以把自定义消息转换成HL7标准消息,同样也可以将HL7标准消息转换成自定义消息,只需要在源消息树里面导入HL7消息,目的消息树里面导入自定义消息的模板即可。\n附图说明\n[0019] 图1为解析XML文件模板,生成消息树的流程图;\n[0020] 图2中,(a)为某XML文件模板,(b)为其所对应的消息树;\n[0021] 图3为通过映射生成HL7标准消息的整体过程图。\n具体实施方式\n[0022] 下面结合附图详细描述本发明。\n[0023] 本发明通过映射生成HL7消息的方法,包括以下步骤:\n[0024] 第一,读取源XML文件(自定义格式的XML文件称之为源XML文件)模板和目的XML文件(HL7消息标准XML文件称之为目的XML文件)模板。\n[0025] 源XML文件模板和目的XML文件模板是不包含具体数据的XML文件,本方法通过DOM(Document Object Module,文档对象模型)来读取并解析XML文档。\n[0026] 第二,解析源XML文件模板和目的XML文件模板,分别生成源消息树和目的消息树。\n[0027] 源消息树和目的消息树的生成过程是一样,如图1所示,循环遍历XML文件中的元素Element,每个Element将作为根节点生成一棵树,该Element的属性便作为子节点加入到根节点下面,生成子树。不同的Element生成的树作为兄弟树,共同构成消息树。图2显示了某XML文件模板及其所对应的消息树。在消息树中,Element节点将用“e”来标示,属性节点将用“a”来标示。\n[0028] 本方法能将不同结构的XML文件转换成HL7标准格式的XML文件。源XML文件模板不唯一,所生成的源消息树也不唯一。目的XML文件模板,即HL7标准格式的XML是唯一的,所以相应的消息树也是唯一的。由于HL7标准消息由若干个消息段组成,所以目的XML文件模板的最小单位就是HL7标准消息段的XML文件。通过组合不同的消息段,即读取并解析不同的消息段的XML文件,即可生成用户所需的目的消息树。读取、解析若干个XML文件并生成消息树的实现过程和图一所示的过程相差无几,只需将若干次解析的结果合并生成消息树即可。\n[0029] 第三,源消息树和目的消息树进行映射,生成XSL (Extensible Stylesheet Language,扩展样式表语言)文件。\n[0030] 由XML文件生成的消息树,通过GEF提供的TreeViewer,能直观地以图形化界面展示出来。其中,消息树的节点就是GEF中的模型Model。\n[0031] 映射的过程就是连线的过程,即将源消息树节点和目的消息树的节点关联起来。\n关联的方式有四种:第一种,value-of,即直接赋值,将源消息树节点的值直接赋值给目的消息树的节点;第二种,for-each,即循环生成赋值,表示源消息树的某个节点可能出现若干次,如果出现若干次,则相关联的目的消息树的节点也出现与之相同的次数,并且一一对应赋值;第三种,choose,即选择赋值(也称之为有条件赋值),表示源消息树节点的值在符合一定条件情况下才赋值给目的消息树;第四种,string,即常量赋值,赋予相应的目的节点一个常量值。四种关联方式对应了四种连线,这四种连线都是继承并扩展了GEF提供的连线。\n[0032] GEF中的监听器Control将监听模型Model的变化,每次连线都将改变了源消息树节点和目的消息树节点的相关信息。这些信息的变化将触发模型Model的监听器Control。\n源消息树的节点将记录连线终点(相关联的目的消息树的节点)的名称以及连线类型,同样的,目的消息树将记录连线起点(相关联的源消息树的节点)的名称和连线类型。连线结束后,遍历目的消息树节点所对应的模型Model,根据记录的信息生成XSL文档。XSL文档将记录所有的映射规则,即所有的连线,包括连线类型,以及连线的起点和终点。\n[0033] 第四,根据第三步生成的XSL文件,读取源XML文件,自动生成相应的HL7标准格式的消息。\n[0034] 根据第三步生成的XSL文件,输入源XML文件,调用JAXP(Java API for XML Processing,即Java程序设计语言中用于处理XML文档的方法集合)提供的transform方法,就能自动生成用户所需的HL7标准格式的XML文件。
法律信息
- 2016-06-01
专利权的转移
登记生效日: 2016.05.12
专利权人由杭州杰唐信息技术有限公司变更为杭州铭唐信息科技有限公司
地址由310012 浙江省杭州市西湖区文三路90号东部软件园科技大厦A1212变更为310012 浙江省杭州市西湖区华星路96号3幢401-402室
- 2014-01-08
- 2012-09-26
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201210023789.3
申请日: 2012.02.03
- 2012-07-25
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2006-01-04
|
2002-12-10
| | |
2
| |
2009-01-07
|
2008-08-11
| | |
3
| |
2009-06-10
|
2008-11-28
| | |
4
| |
2007-11-14
|
2005-08-02
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |