一种HL7v2.x数据提取方法、终端设备及存储介质与流程

未命名 08-15 阅读:93 评论:0

一种hl7v2.x数据提取方法、终端设备及存储介质
技术领域
1.本发明涉及数据提取领域,尤其涉及一种hl7v2.x数据提取方法、终端设备及存储介质。


背景技术:

2.随着医院信息化建设的越来越完善,各种不同异构系统之间的信息交互越来越频繁,hl7v2.x(包括从v2.1到2.8的各个版本)作为一种标准化的卫生信息传输协议被大量用于系统间的交互。
3.由于hl7v2.x消息结构比较复杂和庞大(包含256个事件、116个消息类型、139个段、55种数据类型、408个数据字典),开发人员往往需要编写大量代码来解析和提取消息中的数据,一旦现场需求变化调整字段赋值,实施工程师还需要和开发人员沟通让开发人员改造代码以及重新部署,增加了沟通和部署成本,且费时费力。由于hl7v2.x的结构复杂,同名消息段出现在不同的位置时往往具有不同的含义,以及多个消息段可以组合在一起重复出现等情况,致使目前市面上还没有一种可以用来表达提取hl7v2.x数据的表达式出现。


技术实现要素:

4.为了解决上述问题,本发明提出了一种hl7v2.x数据提取方法、终端设备及存储介质。
5.具体方案如下:
6.一种hl7v2.x数据提取方法,包括以下步骤:
7.s1:加载hl7v2.x数据,生成对应的树状结构;
8.s2:从树状结构确定待提取数据所在的位置;
9.s3:根据待提取数据所在的位置,按照树状结构自上而下的顺序构建待提取数据对应的表达式,表达式按照树状结构中组、段、域、组件和子组件五个结构的顺序,由需要的结构对应的标识拼接构成;
10.s4:将业务程序中的待提取数据与构建的表达式相关联;
11.s5:当业务程序接收到hl7v2.x数据时,基于待提取数据对应的表达式从hl7v2.x数据中进行数据查询,得到待提取数据的查询结果。
12.进一步的,表达式中不同标识之间通过
“‑”
进行间隔。
13.进一步的,当待提取数据所在的域中包含多个结构相同的组件时,将域中这些结构相同的组件作为一个数组,通过方括号[]表示,方括号[]内部的数据表示待提取数据所在组件的索引。
[0014]
进一步的,表达式还包括带查询条件的表达式,用于待提取数据位于域中的组件的序号不确定的情况,查询条件用于确定待提取数据位于域中的组件的序号,由组件标识=组件值表示。
[0015]
进一步的,域、组件和子组件对应的标识采用表示域、组件和子组件的序号对应的
阿拉伯数字表示。
[0016]
进一步的,需要的结构根据待提取数据所在的位置确定,如其属于组下面的数据时,则其表达式起始结构为组,如其不属于组下面的数据时,则其表达式起始结构为段。
[0017]
进一步的,当待提取数据所在的位置为子组件内时,组成表达式的需要的结构包含子组件,其他情况不包含子组件。
[0018]
进一步的,步骤s4和s5中具体包括:将业务程序中待提取数据需要显示的位置与待提取数据对应的表达式相关联;当业务程序接收到hl7v2.x数据时,基于待提取数据对应的表达式从hl7v2.x数据中进行数据查询,将查询结果显示至业务程序中待提取数据需要显示的位置。
[0019]
一种hl7v2.x数据提取终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例上述的方法的步骤。
[0020]
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述的方法的步骤。
[0021]
本发明采用如上技术方案,解决了现有提取hl7v2.x数据不能进行配置的问题,提高了程序灵活性,增加了工作效率。
附图说明
[0022]
图1所示为本发明实施例一的流程图。
[0023]
图2所示为该实施例中通过7edit加载hl7v2.x数据的示意图。
[0024]
图3所示为该实施例中待提取数据与表达式关联过程示意图。
[0025]
图4所示为该实施例中业务程序界面示意图。
具体实施方式
[0026]
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
[0027]
现结合附图和具体实施方式对本发明进一步说明。
[0028]
实施例一:
[0029]
在hl7中,消息(message)是数据在系统之间交换的基本单元,每条消息都有各自的消息类型。
[0030]
一个消息由多个段(segment)组成,每一个段都有相应的名称,用于界定其内容或者功能。如消息可能包含如下的段:消息头(msh),病患标识(pid)以及病患就诊(pv1)。一个消息中的第一个段总是消息头段,它指明了发送和接收的程序名、消息类型、以及一个唯一的消息id号码等,接下去段的构成由消息的类型决定。具有关联关系的相邻段可以组成组,如图2中的patient。
[0031]
一个段又由多个域(field)组成,每个域使用“|”分隔,如果对应的域没有数据也不能省略“|”。每个域中可以包含一个或多个结构相同的组件,结构相同的组件之间采用“~”进行分隔。组件分为简单类型组件和复合类型组件,简单类型组件用于表示一些简单
的信息,如性别只需要男或者女描述,其内容可以为原始数据类型(例如字符串或数字);复合类型组件由多个简单类型组件或嵌套组件组成来共同描述一种复杂的信息,如地址信息由国家、城市、街道、邮编等多种信息共同说明。复合类型组件内的简单类型组件或嵌套组件以^字符分隔。嵌套组件由多个子组件组成,如一个用来描述科室的组件可以嵌套两个简单类型组件(科室编号和科室名称)来共同描述科室信息,子组件之间以&字符分隔,子组件必须是原始数据类型(例如字符串或数字)。
[0032]
基于上述的消息结构,本发明实施例提供了一种hl7v2.x数据提取方法,如图1所示,所述方法包括以下步骤:
[0033]
s1:加载hl7v2.x数据,生成对应的树状结构。
[0034]
该实施例中使用第三方工具7edit加载。7edit是一个hl7消息的辅助工具,能够通过图形化界面,把hl7消息解析成树状结构,如图2中的左侧工作栏所示。在其他实施例中也可以使用其他工具加载,在此不做限定。
[0035]
s2:从树状结构确定待提取数据所在的位置。
[0036]
如待提取数据为图2中表示数据“123434”,可以在图2左侧的树状结构选中其所在的位置。
[0037]
s3:根据待提取数据所在的位置,按照树状结构自上而下的顺序构建待提取数据对应的表达式,表达式按照树状结构中组、段、域、组件和子组件五个结构的顺序,由需要的结构对应的标识拼接构成。
[0038]
下面介绍该实施例中设定的表达式的构建原则。
[0039]
表达式中不同标识之间通过
“‑”
进行间隔。
[0040]
域、组件和子组件对应的标识采用表示域、组件和子组件的序号对应的阿拉伯数字表示。
[0041]
当待提取数据所在的域中包含多个结构相同的组件时,将域中这些结构相同的组件作为一个数组,通过方括号[]表示,方括号[]内部的数据表示待提取数据所在组件的索引(即属于结构相同的组件中的第几个)。需要说明的是,此处结构相同的组件为结构相同的复合类型组件时,复合类型组件中包含的简单类型组件和嵌套组件的总数相同。结构相同的组件也可以均为简单类型组件。当待提取数据所在的域中仅包含一个组件时,则不需要该由方括号[]形成的组件的索引。
[0042]
当待提取数据所在的域中包含多个结构相同的组件,且待提取数据位于域中的组件的序号不确定时,则不能直接应用上述组件的索引的方式。为了解决该问题,本实施例采用一种带查询条件的表达式,查询条件用于确定待提取数据位于域中的组件的序号(即替代待提取数据位于域中的组件的序号),查询条件由组件标识=组件值表示。该实施例中组件值采用带单引号的字符表示。
[0043]
需要的结构根据待提取数据所在的位置确定,如其属于组下面的数据时,则其表达式起始结构为组,如其不属于组下面的数据时,则其表达式起始结构为段。
[0044]
当待提取数据所在的位置为子组件内时,组成表达式的需要的结构包含子组件,其他情况不包含子组件。
[0045]
下面基于图2所示待提取数据列举两种表达式:
[0046]
第一种为常规表达式“patient-pid-3[2]-1”,其中,patient为组的标识,pid为段
的标识,“3”为域的标识,表示段的第3个域,“[2]”为组件索引的标识,适用于域中包括多个结构相同的组件的情况,表示第3个域里数组索引为2的组件(第2个组件),“3[2]”之后还有“1”,表示第3个域里数组索引为2的组件为复合类型组件,“1”为复合类型组件中的第几个简单类型组件的标识,表示复合类型组件中的第1个简单类型组件。表达式“patient-pid-3[2]-1”的含义为:patient组的pid段的第3个域的第2个组件(为复合类型组件)的第1个简单类型组件。
[0047]
第二种为带查询条件的表达式“patient-pid-3[-5='cz']-1”,其中“3[-5='cz']”表示第3个域中满足包含的第五个简单类型组件的值为“cz”的复合类型组件。表达式“patient-pid-3[-5='cz']-1”的含义为:patient组的pid段的第3个域中满足包含的第五个简单类型组件的值为“cz”的复合类型组件中的第1个简单类型组件。
[0048]
s4:将业务程序中的待提取数据与构建的表达式相关联。
[0049]
关联方式可以采用任一方式关联,在此不做限定,该实施例中关联过程如图3所示。
[0050]
s5:当业务程序接收到hl7v2.x数据时,基于待提取数据对应的表达式从hl7v2.x数据中进行数据查询,得到待提取数据的查询结果。
[0051]
在一种实施例中,业务人员往往需要将待提取数据直接显示在业务程序的对应位置处,如图4所示,因此,在步骤s4和s5中,可以将业务程序中待提取数据需要显示的位置与待提取数据对应的表达式相关联;当业务程序接收到hl7v2.x数据时,基于待提取数据对应的表达式从hl7v2.x数据中进行数据查询,将查询结果显示至业务程序中待提取数据需要显示的位置。
[0052]
本发明实施例通过配置的表达式来解析提取hl7v2.x数据,使得逻辑代码和数据提取分离,开发人员可以专注业务逻辑代码的编写,现场实施工程师可以在不依赖开发人员的情况下自己配置提取hl7v2.x数据逻辑,分工合作完成业务场景的开发,即使后期现场提取数据需求变化时工程师也能自行完成修改。
[0053]
实施例二:
[0054]
本发明还提供一种hl7v2.x数据提取终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。
[0055]
进一步地,作为一个可执行方案,所述hl7v2.x数据提取终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述hl7v2.x数据提取终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述hl7v2.x数据提取终端设备的组成结构仅仅是hl7v2.x数据提取终端设备的示例,并不构成对hl7v2.x数据提取终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述hl7v2.x数据提取终端设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。
[0056]
进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立
门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述hl7v2.x数据提取终端设备的控制中心,利用各种接口和线路连接整个hl7v2.x数据提取终端设备的各个部分。
[0057]
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述hl7v2.x数据提取终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0058]
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。
[0059]
所述hl7v2.x数据提取终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)以及软件分发介质等。
[0060]
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。

技术特征:
1.一种hl7v2.x数据提取方法,其特征在于,包括以下步骤:s1:加载hl7v2.x数据,生成对应的树状结构;s2:从树状结构确定待提取数据所在的位置;s3:根据待提取数据所在的位置,按照树状结构自上而下的顺序构建待提取数据对应的表达式,表达式按照树状结构中组、段、域、组件和子组件五个结构的顺序,由需要的结构对应的标识拼接构成;s4:将业务程序中的待提取数据与构建的表达式相关联;s5:当业务程序接收到hl7v2.x数据时,基于待提取数据对应的表达式从hl7v2.x数据中进行数据查询,得到待提取数据的查询结果。2.根据权利要求1所述的hl7v2.x数据提取方法,其特征在于:表达式中不同标识之间通过
“‑”
进行间隔。3.根据权利要求1所述的hl7v2.x数据提取方法,其特征在于:当待提取数据所在的域中包含多个结构相同的组件时,将域中这些结构相同的组件作为一个数组,通过方括号[]表示,方括号[]内部的数据表示待提取数据所在组件的索引。4.根据权利要求3所述的hl7v2.x数据提取方法,其特征在于:表达式还包括带查询条件的表达式,用于待提取数据位于域中的组件的序号不确定的情况,查询条件用于确定待提取数据位于域中的组件的序号,由组件标识=组件值表示。5.根据权利要求1所述的hl7v2.x数据提取方法,其特征在于:域、组件和子组件对应的标识采用表示域、组件和子组件的序号对应的阿拉伯数字表示。6.根据权利要求1所述的hl7v2.x数据提取方法,其特征在于:需要的结构根据待提取数据所在的位置确定,如其属于组下面的数据时,则其表达式起始结构为组,如其不属于组下面的数据时,则其表达式起始结构为段。7.根据权利要求1所述的hl7v2.x数据提取方法,其特征在于:当待提取数据所在的位置为子组件内时,组成表达式的需要的结构包含子组件,其他情况不包含子组件。8.根据权利要求1所述的hl7v2.x数据提取方法,其特征在于:步骤s4和s5中具体包括:将业务程序中待提取数据需要显示的位置与待提取数据对应的表达式相关联;当业务程序接收到hl7v2.x数据时,基于待提取数据对应的表达式从hl7v2.x数据中进行数据查询,将查询结果显示至业务程序中待提取数据需要显示的位置。9.一种hl7v2.x数据提取终端设备,其特征在于:包括处理器、存储器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~8中任一所述方法的步骤。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1~8中任一所述方法的步骤。

技术总结
本发明涉及一种HL7v2.x数据提取方法、终端设备及存储介质,该方法中包括:加载数据生成对应的树状结构;从树状结构确定待提取数据所在的位置;根据待提取数据所在的位置,按照树状结构自上而下的顺序构建待提取数据对应的表达式,表达式按照树状结构中组、段、域、组件和子组件五个结构的顺序,由需要的结构对应的标识拼接构成;将业务程序中的待提取数据与构建的表达式相关联;当业务程序接收到数据时,基于待提取数据对应的表达式从数据中进行数据查询,得到待提取数据的查询结果。本发明解决了现有提取HL7v2.x数据不能进行配置的问题,提高了程序灵活性,增加了工作效率。增加了工作效率。增加了工作效率。


技术研发人员:赵明星 钟玉秋
受保护的技术使用者:南京纳龙科技有限公司
技术研发日:2023.05.11
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐