首页 / 专利库 / 电脑零配件 / 计算机系统 / 硬件 / 存储器 / 医疗数据溯源方法、装置、系统、存储介质以及电子设备

医疗数据溯源方法、装置、系统、存储介质以及电子设备

阅读:1067发布:2020-06-17

专利汇可以提供医疗数据溯源方法、装置、系统、存储介质以及电子设备专利检索,专利查询,专利分析的服务。并且本 发明 是关于一种医疗数据溯源方法、装置、系统、存储介质以及 电子 设备,涉及医疗大医疗数据溯源技术领域,该方法包括:获取第一结构化查询语句,并对所述第一结构化查询语句进行血缘关系解析得到血缘关系;对所述第一结构化查询语句进行血缘数据 抽取 ,得到第二结构化查询语句;根据所述血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源。本发明提高了对待溯源医疗数据进行溯源的效率。,下面是医疗数据溯源方法、装置、系统、存储介质以及电子设备专利的具体信息内容。

1.一种医疗数据溯源方法,其特征在于,包括:
获取第一结构化查询语句,并对所述第一结构化查询语句进行血缘关系解析得到血缘关系;
对所述第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句;
根据所述血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源。
2.根据权利要求1所述的医疗数据溯源方法,其特征在于,获取第一结构化查询语句包括:
获取包括待溯源字段名、与所述待溯源字段名对应的表名以及样例数据的基础医疗数据;
根据所述基础数据数据获取与所述表名对应的第一结构化查询语句。
3.根据权利要求2所述的医疗数据溯源方法,其特征在于,根据所述基础医疗数据获取与所述表名对应的结构化查询语句包括:
根据所述待溯源字段名、与所述待溯源字段名对应的表名以及所述样例数据的索引标识,从数据生产平台获取与所述表名对应的第一结构化查询语句。
4.根据权利要求1所述的医疗数据溯源方法,其特征在于,对所述第一结构化查询语句进行血缘关系解析得到血缘关系包括:
对所述第一结构化查询语句进行解析得到语法树,并将所述语法树中的每一个查询节点和待溯源表名节点抽象成一个查询源;
根据各所述查询节点的子节点得到各所述查询源的输出字段列表,并对各所述查询节点的子节点的数据源节点进行递归解析得到各所述查询节点的子节点的子数据源;
对各所述查询源的输出字段列表中的字段以及各所述查询节点的子节点的子数据源进行匹配,并根据匹配结果得到所述血缘关系。
5.根据权利要求4所述的医疗数据溯源方法,其特征在于,对各所述查询源的输出字段列表中的字段以及各所述查询节点的子节点的子数据源进行匹配,并根据匹配结果得到所述待血缘关系包括:
对具有从属关系的各所述查询源的输出字段列表中的字段以及各所述查询节点的子节点的子数据源进行第一关联处理得到第一关联结果;
根据各所述第一关联结果得到所述待血缘关系。
6.根据权利要求1所述的医疗数据溯源方法,其特征在于,对所述第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句包括:
对所述第一结构化查询语句进行血缘数据抽取,得到包括与所述样例数据对应的源表数据以及从所述源表数据到所述样例数据之间的计算过程数据的第二结构化查询语句。
7.根据权利要求6所述的医疗数据溯源方法,其特征在于,对所述第一结构化查询语句进行血缘数据抽取,得到包括与所述样例数据对应的源表数据以及从所述源表数据到所述样例数据之间的计算过程数据的第二结构化查询语句包括:
对所述第一结构化查询语句进行解析得到语法树,并对所述语法树中的各语法节点进行语法翻译得到多个翻译结果;
对各所述翻译结果进行拼接得到目标查询语句,并在所述目标查询语句中与查询节点的子节点对应的子节点表达式的末端增加拼接函数节点;
根据所述拼接函数节点对待溯源表名进行第二关联处理,并根据第二关联结果得到包括与所述样例数据对应的源表数据以及从所述源表数据到所述样例数据之间的计算过程数据的第二结构化查询语句。
8.根据权利要求1所述的医疗数据溯源方法,其特征在于,根据所述血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源包括:
根据所述血缘关系以及第二结构化查询语句生成数据溯源配置文件,并根据所述数据溯源配置文件得到待溯源数据。
9.根据权利要求8所述的医疗数据溯源方法,其特征在于,根据所述数据溯源配置文件得到待溯源数据包括:
调用数据计算引擎对所述数据溯源配置文件进行计算得到计算结果;
对所述计算结果进行筛选,并根据筛选结果得到所述待溯源数据。
10.根据权利要求8所述的医疗数据溯源方法,其特征在于,所述医疗数据溯源方法还包括:
对所述待溯源数据以及所述数据溯源配置文件进行展示,以使得管理人员根据所述数据溯源配置文件中的血缘关系对所述待溯源数据中的异常数据进行定位
11.一种医疗数据溯源装置,其特征在于,包括:
血缘关系解析模,用于获取第一结构化查询语句,并对所述第一结构化查询语句进行血缘关系解析得到血缘关系;
血缘数据抽取模块,用于对所述第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句;
医疗数据溯源模块,用于根据所述血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源。
12.一种医疗数据溯源系统,其特征在于,包括:
数据生产平台,用于生成第一结构化查询语句;
医疗数据溯源平台,与所述数据生产平台网络连接,用于获取第一结构化查询语句,并对所述第一结构化查询语句进行血缘关系解析得到血缘关系;以及
对所述第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句;以及根据所述血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源。
13.根据权利要求12所述的医疗数据溯源系统,其特征在于,所述医疗数据溯源平台包括血缘关系解析器以及血缘数据抽取器;
其中,所述血缘关系解析器用于对所述第一结构化查询语句进行血缘关系解析得到血缘关系;
所述血缘数据抽取器用于对所述第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10任一项所述的医疗数据溯源方法。
15.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-10任一项所述的医疗数据溯源方法。

说明书全文

医疗数据溯源方法、装置、系统、存储介质以及电子设备

技术领域

[0001] 本发明实施例涉及医疗大数据处理技术领域,具体而言,涉及一种医疗数据溯源方法、医疗数据溯源装置、医疗数据溯源系统、计算机可读存储介质以及电子设备。

背景技术

[0002] 随着计算机和互联网技术的发展,搭建计算机网络系统越来越方便,医院和保健院等医疗机构也利用计算机网络系统对病历、化验结果和检验报告等医疗数据进行信息化管理,由此可以实现对医疗大数据的自动化分析。
[0003] 在现有的医疗大数据分析的处理链路中,当数据质控人员在产品应用层数据中发现某个字段的数据存在逻辑不合理或数据不符合质量要求标准等问题时,工程师需要检查整个医疗数据溯源链路中所有相关字段的计算逻辑和样例数据,从而找到问题原因并修复对应医疗数据溯源环节存在的问题。
[0004] 但是,上述方案存在如下缺陷:由于整个处理链路涉及到的数据以及字段繁多、计算流程冗长、计算逻辑复杂,且处理流程和业务逻辑变化频繁,因此会使得溯源流程较为繁琐,进而使得溯源效率较低。
[0005] 因此,需要提供一种新的医疗数据溯源方法及装置。
[0006] 需要说明的是,在上述背景技术部分发明的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

[0007] 本发明的目的在于提供一种医疗数据溯源方法、医疗数据溯源装置、医疗数据溯源系统、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的溯源效率较低的问题。
[0008] 根据本公开的一个方面,提供一种医疗数据溯源方法,包括:
[0009] 获取第一结构化查询语句,并对所述第一结构化查询语句进行血缘关系解析得到血缘关系;
[0010] 对所述第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句;
[0011] 根据所述血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源。
[0012] 在本公开的一种示例性实施例中,获取第一结构化查询语句包括:
[0013] 获取包括待溯源字段名、与所述待溯源字段名对应的表名以及样例数据的基础医疗数据;
[0014] 根据所述基础数据数据获取与所述表名对应的第一结构化查询语句。
[0015] 在本公开的一种示例性实施例中,根据所述基础医疗数据获取与所述表名对应的结构化查询语句包括:
[0016] 根据所述待溯源字段名、与所述待溯源字段名对应的表名以及所述样例数据的索引标识,从数据生产平台获取与所述表名对应的第一结构化查询语句。
[0017] 在本公开的一种示例性实施例中,对所述第一结构化查询语句进行血缘关系解析得到血缘关系包括:
[0018] 对所述第一结构化查询语句进行解析得到语法树,并将所述语法树中的每一个查询节点和待溯源表名节点抽象成一个查询源;
[0019] 根据各所述查询节点的子节点得到各所述查询源的输出字段列表,并对各所述查询节点的子节点的数据源节点进行递归解析得到各所述查询节点的子节点的子数据源;
[0020] 对各所述查询源的输出字段列表中的字段以及各所述查询节点的子节点的子数据源进行匹配,并根据匹配结果得到所述血缘关系。
[0021] 在本公开的一种示例性实施例中,对各所述查询源的输出字段列表中的字段以及各所述查询节点的子节点的子数据源进行匹配,并根据匹配结果得到所述待血缘关系包括:
[0022] 对具有从属关系的各所述查询源的输出字段列表中的字段以及各所述查询节点的子节点的子数据源进行第一关联处理得到第一关联结果;
[0023] 根据各所述第一关联结果得到所述待血缘关系。
[0024] 在本公开的一种示例性实施例中,对所述第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句包括:
[0025] 对所述第一结构化查询语句进行血缘数据抽取,得到包括与所述样例数据对应的源表数据以及从所述源表数据到所述样例数据之间的计算过程数据的第二结构化查询语句。
[0026] 在本公开的一种示例性实施例中,对所述第一结构化查询语句进行血缘数据抽取,得到包括与所述样例数据对应的源表数据以及从所述源表数据到所述样例数据之间的计算过程数据的第二结构化查询语句包括:
[0027] 对所述第一结构化查询语句进行解析得到语法树,并对所述语法树中的各语法节点进行语法翻译得到多个翻译结果;
[0028] 对各所述翻译结果进行拼接得到目标查询语句,并在所述目标查询语句中与查询节点的子节点对应的子节点表达式的末端增加拼接函数节点;
[0029] 根据所述拼接函数节点对待溯源表名进行第二关联处理,并根据第二关联结果得到包括与所述样例数据对应的源表数据以及从所述源表数据到所述样例数据之间的计算过程数据的第二结构化查询语句。
[0030] 在本公开的一种示例性实施例中,根据所述血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源包括:
[0031] 根据所述血缘关系以及第二结构化查询语句生成数据溯源配置文件,并根据所述数据溯源配置文件得到待溯源数据。
[0032] 在本公开的一种示例性实施例中,根据所述数据溯源配置文件得到待溯源数据包括:
[0033] 调用数据计算引擎对所述数据溯源配置文件进行计算得到计算结果;
[0034] 对所述计算结果进行筛选,并根据筛选结果得到所述待溯源数据。
[0035] 在本公开的一种示例性实施例中,所述医疗数据溯源方法还包括:
[0036] 对所述待溯源数据以及所述数据溯源配置文件进行展示,以使得管理人员根据所述数据溯源配置文件中的血缘关系对所述待溯源数据中的异常数据进行定位
[0037] 根据本公开的一个方面,提供一种医疗数据溯源装置,包括:
[0038] 血缘关系解析模,用于获取第一结构化查询语句,并对所述第一结构化查询语句进行血缘关系解析得到血缘关系;
[0039] 血缘数据抽取模块,用于对所述第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句;
[0040] 医疗数据溯源模块,用于根据所述血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源。
[0041] 根据本公开的一个方面,提供一种医疗数据溯源系统,包括:
[0042] 数据生产平台,用于生成第一结构化查询语句;
[0043] 医疗数据溯源平台,与所述数据生产平台网络连接,用于获取第一结构化查询语句,并对所述第一结构化查询语句进行血缘关系解析得到血缘关系;以及[0044] 对所述第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句;以及[0045] 根据所述血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源。
[0046] 在本公开的一种示例性实施例中,所述医疗数据溯源平台包括血缘关系解析器以及血缘数据抽取器;
[0047] 其中,所述血缘关系解析器用于对所述第一结构化查询语句进行血缘关系解析得到血缘关系;
[0048] 所述血缘数据抽取器用于对所述第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句。
[0049] 根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的医疗数据溯源方法。
[0050] 根据本公开的一个方面,提供一种电子设备,包括:
[0051] 处理器;以及
[0052] 存储器,用于存储所述处理器的可执行指令;
[0053] 其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的医疗数据溯源方法。
[0054] 本发明实施例提供的一种医疗数据溯源方法及装置,一方面,通过获取第一结构化查询语句,并对第一结构化查询语句进行血缘关系解析得到血缘关系;然后对第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句;最后根据血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源,解决了现有技术中由于整个处理链路涉及到的数据以及字段繁多、计算流程冗长、计算逻辑复杂,且处理流程和业务逻辑变化频繁,因此会使得溯源流程较为繁琐的问题,简化了对数据溯源的流程,进而提高了溯源的效率;另一方面,通过对第一结构化查询语句进行血缘关系解析得到血缘关系;然后对第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句;最后根据血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源,提高了对待溯源医疗数据进行溯源的准确率。
[0055] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。附图说明
[0056] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0057] 图1示意性示出根据本发明示例实施例的一种医疗数据溯源方法的流程图
[0058] 图2示意性示出根据本发明示例实施例的一种对结构化查询语句进行解析得到待溯源字段名的血缘关系的方法流程图。
[0059] 图3示意性示出根据本发明示例实施例的一种对所述结构化查询语句进行关系抽取,得到与所述样例数据对应的原始数据以及从所述原始数据到所述样例数据之间的计算过程数据的方法流程图。
[0060] 图4示意性示出根据本发明示例实施例的一种医疗数据溯源系统的框图
[0061] 图5示意性示出根据本发明示例实施例的另一种医疗数据溯源方法的流程图。
[0062] 图6示意性示出根据本发明示例实施例的一种医疗数据溯源装置的框图。
[0063] 图7示意性示出根据本发明示例实施例的一种用于实现上述医疗数据溯源方法的电子设备。

具体实施方式

[0064] 现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本发明的各方面变得模糊。
[0065] 此外,附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0066] 在现有的对医疗数据问题进行定位的方式为:首先,从质控平台上找到待排查的问题字段名称和该字段所属的表名和问题数据的样例;然后,根据字段所属的表名在数据生产平台上找到生产对应表的SQL语句;进一步的,逐级分析SQL语句,并针对每级逻辑编写SQL语句从数据库中抽取样例数据进行核查,最后,从抽取出的样例数据中找到处理结果与预期效果不符的部分,即找到存在问题的处理环节。
[0067] 但是,上述方法中,一方面,需要大量的人参与,因此会导致大量的资源浪费问题;另一方面,需要针对每级逻辑编写SQL语句从数据库中抽取样例数据进行核查,因此会导致核查速率较低的问题。
[0068] 本示例实施方式中首先提供了一种医疗数据溯源方法,该方法可以运行于服务器、服务器集群或服务器等,也可以运行于终端设备;当然,本领域技术人员也可以根据需求在其他平台运行本发明的方法,本示例性实施例中对此不做特殊限定。参考图1所示,该医疗数据溯源方法可以包括以下步骤:
[0069] 步骤S110.获取第一结构化查询语句,并对所述第一结构化查询语句进行血缘关系解析得到血缘关系。
[0070] 步骤S120.对所述第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句。
[0071] 步骤S130.根据所述血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源。
[0072] 上述医疗数据溯源方法中,一方面,通过获取第一结构化查询语句,并对第一结构化查询语句进行血缘关系解析得到血缘关系;然后对第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句;最后根据血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源,解决了现有技术中由于整个处理链路涉及到的数据以及字段繁多、计算流程冗长、计算逻辑复杂,且处理流程和业务逻辑变化频繁,因此会使得溯源流程较为繁琐的问题,简化了对数据溯源的流程,进而提高了溯源的效率;另一方面,通过对第一结构化查询语句进行血缘关系解析得到血缘关系;然后对第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句;最后根据血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源,提高了对待溯源医疗数据进行溯源的准确率。
[0073] 以下,将结合附图对本发明示例实施例医疗数据溯源方法中涉及的各步骤进行详细的解释以及说明。
[0074] 首先,对本发明示例实施例中提及的相关名词进行如下解释:
[0075] 医疗信息化系统:利用电子计算机和通讯设备,为医院所属各部提供对病人诊疗信息和行政管理信息的收集、存储、处理、提取及数据交换的能力,并满足所有授权用户的功能需求。
[0076] 原生医疗数据:医疗信息化系统在日常运行中产生并积累下来的数据。
[0077] 应用层数据:经过多次复杂计算和处理过后,结构复杂多变,面向实际科研、管理等复杂场景业务使用的数据。
[0078] 医疗数据溯源链路:将原生医疗数据加工成应用层数据的处理流程,整个处理链路会由多个处理环节串联或并联而成。
[0079] SQL:结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,应用于医疗数据溯源链路的各个处理环节中,是处理逻辑的重要载体,SQL语句允许存在嵌套,即在一个处理环节中也可能存在多层级的处理逻辑;SQL语句包含增加、修改、删除、查询等功能,本文涉及到的SQL语句均用做查询功能(通常是将一张或多张表进行联合、连接、筛选、子查询等操作之后输出成一张新表并展现出新表的数据)。
[0080] SQL解析器:将SQL语句解析成一种语法节点树的逻辑结构(以下简称语法树),树上的每个节点都代表一种操作/计算的逻辑或者被操作/计算的标示/常量或者一个子语法树。
[0081] 血缘关系解析器:对于给定的SQL语句,依据SQL的逻辑结构,解析出SQL输出的新表的每个字段来源的原始表、原始字段和计算过程(来源表、来源字段和计算过程的统称,以下简称血缘关系)。
[0082] 血缘数据抽取器:对于给定的SQL语句,根据其语法树,在特定的节点上增加一些标记或操作等,重新组织构造出一个新的SQL语句,新SQL语句的执行效果是,每一行最终输出的数据里都会新增一个字段,这个字段的内容包含里这条数据所有来源表对应的整行记录,如果给定SQL中包含子查询,那么子查询的输出也会包含在这个字段中。
[0083] 本发明以质控平台为起点,通过任务调度系统进行任务调度、分发以及在不同系统间进行数据传输,以生产平台为生产任务管理/数据展现工具,以一种基于SQL解析的血缘关系解析器和血缘数据抽取器解析SQL语句,并生成对应的数据溯源配置文件,用数据计算引擎根据数据溯源配置到分布式存储系统中进行溯源数据的提取,提取出的数据将返回给生产平台以展现给工程师,帮助工程师提高查找问题的效率。
[0084] 在步骤S110中,获取第一结构化查询语句,并对所述第一结构化查询语句进行血缘关系解析得到血缘关系。
[0085] 在本示例实施例中,首先,从质控平台获取包括需要溯源的字段名(待溯源字段名)、与该需要溯源的字段名对应的表名以及样例数据(问题数据的样例)的基础数据信息,然后根据该基础数据信息获取与该表名对应的第一结构化查询语句。具体的,可以根据所述待溯源字段名、与所述待溯源字段名对应的表名以及所述样例数据的索引标识,从数据生产平台获取与所述表名对应的第一结构化查询语句。通过该方法,相较于现有技术中的直接通过表名在数据生产平台上找到生产对应表的SQL语句来说,可以减少SQL语句的冗余程度,并且可以减少SQL语句的数据量,进而提高医疗数据溯源效率。
[0086] 然后,对上述第一结构化查询语句进行血缘关系解析得到血缘关系。具体的,参考图2所示,对第一结构化查询语句进行血缘关系解析得到血缘关系可以包括步骤S210-步骤S230,以下进行详细说明。
[0087] 在步骤S210中,对所述第一结构化查询语句进行解析得到语法树,并将所述语法树中的每一个查询节点和待溯源表名节点抽象成一个查询源。
[0088] 在步骤S220中,根据各所述查询节点的子节点得到各所述查询源的输出字段列表,并对各所述查询节点的子节点的数据源节点进行递归解析得到各所述查询节点的子节点的子数据源。
[0089] 在步骤S230中,对各所述查询源的输出字段列表中的字段以及各所述查询节点的子节点的子数据源进行匹配,并根据匹配结果得到所述血缘关系。
[0090] 在本示例实施例中,首先,对具有从属关系的各所述查询源的输出字段列表中的字段以及各所述查询节点的子节点的子数据源进行第一关联处理得到第一关联结果;其次,根据各所述第一关联结果得到所述血缘关系。
[0091] 以下,对步骤S210-步骤S230及其关联步骤进行解释以及说明。
[0092] 首先,通过血缘关系解析器将输入的SQL语句(第一结构化查询语句)通过SQL解析器解析成语法树;其次,以深度优先的算法递归遍历语法树,将每一个Query(查询节点)和Table(表名节点)都抽象成一个QuerySource(查询源)对象,对Query的子节点Select(查询输出字段的表达式集合节点),将其抽象成字段列表作为QuerySource的ColumnList(输出字段列表),对Query的子节点From(数据源节点)进行递归解析,将其子节点中的Query或Table加到当前QuerySource的SubSourceList列表中(子数据源);进一步的,Query节点遍历完成后,对其抽象出的QuerySource进行字段与数据源匹配,即遍历QuerySource的ColumnList和SubSourceList并将具有从属关系的字段和子数据源进行关联;最后,遍历处理完所有节点之后输出根节点上的QuerySource即可得到所有的血缘关系。此处需要补充说明的是,对于其他类型的节点,可以按需进行翻译或者忽略即可,不用刻意的作其他处理。通过该方法,可以提高处理速度。
[0093] 进一步的,QuerySource对象的数据结构示例可以如下所示:
[0094] //数据源对象,抽象出table和query
[0095] public class QuerySource{
[0096] ListsubSources=new LinkedList();
[0097] Listcolumns=new ArrayList();
[0098] SourceType type;
[0099] //表名或子查询的别名
[0100] String name;
[0101] //别名
[0102] String alias;
[0103] }
[0104] 另外,Column对象的数据结构示例可以如下所示:
[0105] public class Column{
[0106] String content;
[0107] String alias;
[0108] ListsourceClos;
[0109] Listfunctions;
[0110] QuerySource table;
[0111] }
[0112] 在步骤S120中,对所述第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句。
[0113] 在本示例实施例中,可以对所述第一结构化查询语句进行血缘数据抽取,得到包括与所述样例数据对应的源表数据以及从所述源表数据到所述样例数据之间的计算过程数据的第二结构化查询语句。
[0114] 具体的,参考图3所示,对所述第一结构化查询语句进行血缘数据抽取,得到包括与所述样例数据对应的源表数据以及从所述源表数据到所述样例数据之间的计算过程数据的第二结构化查询语句可以包括步骤S310-步骤S330,以下进行详细说明。
[0115] 在步骤S310中,对所述第一结构化查询语句进行解析得到语法树,并对所述语法树中的各语法节点进行语法翻译得到多个翻译结果。
[0116] 在步骤S320中,对各所述翻译结果进行拼接得到目标查询语句,并在所述目标查询语句中与查询节点的子节点对应的子节点表达式的末端增加拼接函数节点。
[0117] 在步骤S330中,根据所述拼接函数节点对待溯源表名进行第二关联处理,并根据第二关联结果得到包括与所述样例数据对应的源表数据以及从所述源表数据到所述样例数据之间的计算过程数据的第二结构化查询语句。
[0118] 以下,将对步骤S310-步骤S330进行解释以及说明。首先,通过血缘数据抽取器将输入的SQL语句通过SQL解析器解析成语法树;其中,该SQL解析器例如可以是Hive的ParseDriver,也可以是自行开发的具有解析功能的解析器等等,本示例对此不做特殊限制。然后,以深度优先的算法递归遍历语法树,对每个语法节点进行对应语法的翻译,遍历完所有节点后需拼接所有节点翻译后的结果即可复现SQL(目标查询语句);进一步的,在Select表达式节点最后增加一个拼接函数节点,其参数为与Select节点同级的From节点后所有表的全字段引用和可自定义的分隔符。具体示例可以如下所示:
[0119] 若原SQL语句(第一结构化查询语句)为:
[0120] “select t1,t2 from table1 left  join table2 on table1.col1=table2.col1”
[0121] 转换后得到的新的SQL语句(第二结构化查询语句)则为:
[0122] “selectt1,t2,concat(”concat_start_tag”,table1.*,”table_split_tag”,table2.*,”concat_end_tag”)from table1 left join table2 on table1.col1=table2.col1”。
[0123] 此处需要补充说明的是,对于给定的SQL语句,根据其语法树,在特定的节点上增加一些标记或操作(拼接函数节点)等,重新组织构造出一个新的SQL语句,在新的SQL语句(目标查询语句)的执行效果中,每一行最终输出的数据里都会新增一个字段,这个字段的内容包含里这条数据所有来源表(原始数据/原生数据)对应的整行记录,如果给定SQL中包含子查询,那么子查询的输出也会包含在这个字段中。并且,该拼接函数的实现方法没有限制。通过该方法,可以提高原始数据以及计算过程数据的获取速度。
[0124] 在步骤S130中,根据所述血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源。
[0125] 在本示例实施例中,首先,根据所述血缘关系以及第二结构化查询语句生成数据溯源配置文件,并根据所述数据溯源配置文件得到待溯源数据。其中,根据所述数据溯源配置文件得到待溯源数据可以包括:首先,调用数据计算引擎对所述数据溯源配置文件进行计算得到计算结果;其次,对所述计算结果进行筛选,并根据筛选结果得到所述待溯源数据。
[0126] 详细而言,首先,可以上述根据基础数据信息、待溯源字段名的血缘关系、原始数据以及计算过程数据生成数据溯源配置文件,然后再根据该数据溯源配置文件得到待溯源数据。具体的,首先,调用数据计算引擎对所述数据溯源配置文件进行计算得到计算结果;其次,对所述计算结果进行筛选,并根据筛选结果得到所述待溯源数据。譬如,通过数据计算引擎调用数据溯源配置文件进行计算以及筛选,然后从筛选结果中抽取需要的溯源数据。通过该方法,可以提高待溯源数据的抽取效率,同时也可以提高抽取到的待溯源数据的准确率,进而提高对异常数据进行定位的准确率。
[0127] 进一步的,为了便于对异常数据进行定位,该医疗数据溯源方法还包括:对所述待溯源数据以及所述数据溯源配置文件进行展示,以使得管理人员根据所述数据溯源配置文件中的待溯源字段名的血缘关系对所述待溯源数据中的异常数据进行定位。
[0128] 通过该方法,解决了现有技术中在查找问题时,需要检查所有相关字段的计算逻辑与样例数据是否符合预期,因此使得工作量大且需要长时间等待数据抽取任务的执行,进而使得处理效率较低的问题,使得管理人员可以根据数据溯源配置文件中的字段名的血缘关系对待溯源数据中的异常数据进行定位,提高了对异常数据进行定位的准确率,同时也可以提高对异常数据进行定位的效率。
[0129] 本发明示例实施例还提供了一种医疗数据溯源系统。参考图4所示,该医疗数据溯源系统可以包括数据生产平台420以及医疗数据溯源平台430。其中:
[0130] 数据生产平台420,用于生成第一结构化查询语句;
[0131] 医疗数据溯源平台430,与数据生产平台420网络连接,用于获取第一结构化查询语句,并对所述第一结构化查询语句进行血缘关系解析得到血缘关系;对所述第一结构化查询语句进行血缘关系抽取,得到第二结构化查询语句;根据所述血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源。
[0132] 进一步的,上述医疗数据溯源系统还可以包括数据质控平台410,该数据质控平台可以与医疗数据溯源平台430网络连接,用于生成包括待溯源表名、与所述待溯源表名对应的字段名以及样例数据的基础数据信息。
[0133] 进一步的,所述医疗数据溯源平台430还可以包括血缘关系解析器431以及血缘数据抽取器432;
[0134] 其中,所述血缘关系解析器431用于对所述第一结构化查询语句进行血缘关系解析得到血缘关系;
[0135] 所述血缘数据抽取器432用于对所述第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句。
[0136] 进一步的,上述医疗数据溯源平台430还可以包括任务调度系统433以及分布式存储系统434,其中,任务调度系统433可以用于将数据溯源配置文件分发给分布式存储系统434,并在分布式存储系统434上调用计算引擎435根据所述数据溯源配置文件得到待溯源数据。
[0137] 最后,任务调度系统433再将待溯源数据以及数据溯源配置文件推送至数据生产平台420进行可视化展示。
[0138] 此处需要补充说明的是,上述分布式存储系统例如可以是Hadoop或者Hbase等等,任务调度系统例如可以是Azkaban或者Oozie等等,数据计算引擎例如可以是Spark、MapReduce以及Storm等等。
[0139] 以下,结合图4以及图5对本发明示例实施例的医疗数据溯源方法进行进一步的解释以及说明。参考图5所示,该医疗数据溯源方法可以包括以下步骤:
[0140] 步骤S510,从质控平台获取需要溯源的表名、字段名和样例数据的索引id三样基础信息;
[0141] 步骤S520,依据基础信息从生产平台获取这张表的SQL语句(第一结构化查询语句),将SQL语句作为参数传给血缘关系解析器,取到所有字段的血缘关系;
[0142] 步骤S530,将SQL语句作为参数传给血缘数据抽取器,得到可以获取所有相关源表数据和计算过程数据的新SQL(第二结构化查询语句);
[0143] 步骤S540,将上述基础信息、血缘关系和新SQL保存为数据溯源配置文件,由任务调度系统分发给分布式存储系统,在分布式存储系统上,通过数据计算引擎调用配置文件计算、筛选、抽取需要的溯源数据;
[0144] 步骤S550,任务调度系统将上述抽取结果(待溯源数据)和溯源配置文件推送回生产平台并可视化展示,工程师即可根据抽取结果和字段的血缘关系快速定位问题。
[0145] 本发明示例实施例提供的医疗数据溯源方法,针对复杂医疗场景下医疗数据溯源的问题,提出了基于SQL解析器+血缘关系解析器+血缘数据抽取器的解决方案。本发明的方法可以得到以下有意义的结果:(1)医疗数据溯源流程透明可见;(2)大幅减少人力参与的成本;(3)溯源方法与具体的业务逻辑解耦,在不同医疗数据溯源模块中可高度复用;(4)大幅提升数据问题定位的效率。
[0146] 本发明示例实施例还提供了一种医疗数据溯源装置。参考图6所示,该医疗数据溯源装置可以包括血缘关系解析模块610、血缘数据抽取模块620以及医疗数据溯源模块630。其中:
[0147] 血缘关系解析模块610可以用于获取第一结构化查询语句,并对所述第一结构化查询语句进行血缘关系解析得到血缘关系。
[0148] 血缘数据抽取模块620可以用于对所述第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句。
[0149] 医疗数据溯源模块630可以用于根据所述血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源。
[0150] 在本公开的一种示例实施例中,获取第一结构化查询语句包括:
[0151] 获取包括待溯源字段名、与所述待溯源字段名对应的表名以及样例数据的基础医疗数据;根据所述基础数据数据获取与所述表名对应的第一结构化查询语句。
[0152] 在本公开的一种示例实施例中,根据所述基础医疗数据获取与所述表名对应的结构化查询语句包括:
[0153] 根据所述待溯源字段名、与所述待溯源字段名对应的表名以及所述样例数据的索引标识,从数据生产平台获取与所述表名对应的第一结构化查询语句。
[0154] 在本公开的一种示例实施例中,对所述第一结构化查询语句进行血缘关系解析得到血缘关系包括:
[0155] 对所述第一结构化查询语句进行解析得到语法树,并将所述语法树中的每一个查询节点和待溯源表名节点抽象成一个查询源;根据各所述查询节点的子节点得到各所述查询源的输出字段列表,并对各所述查询节点的子节点的数据源节点进行递归解析得到各所述查询节点的子节点的子数据源;对各所述查询源的输出字段列表中的字段以及各所述查询节点的子节点的子数据源进行匹配,并根据匹配结果得到所述血缘关系。
[0156] 在本公开的一种示例实施例中,对各所述查询源的输出字段列表中的字段以及各所述查询节点的子节点的子数据源进行匹配,并根据匹配结果得到所述待血缘关系包括:
[0157] 对具有从属关系的各所述查询源的输出字段列表中的字段以及各所述查询节点的子节点的子数据源进行第一关联处理得到第一关联结果;
[0158] 根据各所述第一关联结果得到所述待血缘关系。
[0159] 在本公开的一种示例实施例中,对所述第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句包括:
[0160] 对所述第一结构化查询语句进行血缘数据抽取,得到包括与所述样例数据对应的源表数据以及从所述源表数据到所述样例数据之间的计算过程数据的第二结构化查询语句。
[0161] 在本公开的一种示例实施例中,对所述第一结构化查询语句进行血缘数据抽取,得到包括与所述样例数据对应的源表数据以及从所述源表数据到所述样例数据之间的计算过程数据的第二结构化查询语句包括:
[0162] 对所述第一结构化查询语句进行解析得到语法树,并对所述语法树中的各语法节点进行语法翻译得到多个翻译结果;
[0163] 对各所述翻译结果进行拼接得到目标查询语句,并在所述目标查询语句中与查询节点的子节点对应的子节点表达式的末端增加拼接函数节点;
[0164] 根据所述拼接函数节点对待溯源表名进行第二关联处理,并根据第二关联结果得到包括与所述样例数据对应的源表数据以及从所述源表数据到所述样例数据之间的计算过程数据的第二结构化查询语句。
[0165] 在本公开的一种示例实施例中,根据所述血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源包括:
[0166] 根据所述血缘关系以及第二结构化查询语句生成数据溯源配置文件,并根据所述数据溯源配置文件得到待溯源数据。
[0167] 在本公开的一种示例实施例中,根据所述数据溯源配置文件得到待溯源数据包括:
[0168] 调用数据计算引擎对所述数据溯源配置文件进行计算得到计算结果;
[0169] 对所述计算结果进行筛选,并根据筛选结果得到所述待溯源数据。
[0170] 在本公开的一种示例实施例中,所述医疗数据溯源装置还包括:
[0171] 展示模块,可以用于对所述待溯源数据以及所述数据溯源配置文件进行展示,以使得管理人员根据所述数据溯源配置文件中的血缘关系对所述待溯源数据中的异常数据进行定位。
[0172] 上述医疗数据溯源装置中各模块的具体细节已经在对应的医疗数据溯源方法中进行了详细的描述,因此此处不再赘述。
[0173] 应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0174] 此外,尽管在附图中以特定顺序描述了本发明中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
[0175] 在本发明的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
[0176] 所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
[0177] 下面参照图7来描述根据本发明的这种实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0178] 如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:上述至少一个处理单元710、上述至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730以及显示单元740。
[0179] 其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元710执行,使得所述处理单元710执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元710可以执行如图1中所示的步骤S110:获取第一结构化查询语句,并对所述第一结构化查询语句进行血缘关系解析得到血缘关系;S120:对所述第一结构化查询语句进行血缘数据抽取,得到第二结构化查询语句;步骤S130:根据所述血缘关系以及第二结构化查询语句对待溯源医疗数据进行溯源。
[0180] 存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。
[0181] 存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0182] 总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0183] 电子设备700也可以与一个或多个外部设备800(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0184] 通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本发明实施方式的方法。
[0185] 在本发明的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
[0186] 根据本发明的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0187] 所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0188] 计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0189] 可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0190] 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0191] 此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
[0192] 本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本发明的其他实施例。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由权利要求指出。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈