一种提供声明式语法实现逻辑核查的方法和系统与流程

文档序号:33652066发布日期:2023-03-29 09:01阅读:57来源:国知局
一种提供声明式语法实现逻辑核查的方法和系统与流程

1.本发明涉及临床医疗软件的数据质量保障的领域,具体涉及一种提供声明式语法实现逻辑核查的方法和系统。


背景技术:

2.临床试验(clinical trial),指任何在人体(病人或健康志愿者)进行药物的系统性研究,以证实或揭示试验药物的作用、不良反应及/或试验药物的吸收、分布、代谢和排泄,目的是确定试验药物的疗效与安全性。早年,对于临床试验数据的采集和核查多是以线下采集为主,不仅增加了工作人员的工作量,而且,在人工核查的过程中如果出现纰漏,不方便数据的查找和溯源。
3.随后,随着信息化的发展,业内诞生了各种临床数据收集软件,临床数据收集软件通常会提供用户自定义数据核查的功能,即用户编写一些自己的数据校验规则,用以保障临床试验中收集数据的质量。目前主流的技术方案是让用户以一种编程语言来编写自定义的规则,软件方提供一些接口供用户所写的代码获取数据,进行计算等。
4.但是,现有软件让用户编写数据核查的方式是用户自己写程序代码。这种方式有显著的缺陷:程序代码的学习成本高,编写复杂,造成用户在实现逻辑核查的这部分工作费时费力。


技术实现要素:

5.以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
6.本发明的目的在于解决上述问题,提供了一种提供声明式语法实现逻辑核查的方法和系统,以简便高效的方式实现了临床数据收集中的数据核查功能,进一步保障了临床医疗软件的数据质量,提升了工作效率。
7.本发明的技术方案为:本发明揭示了一种提供声明式语法实现逻辑核查的方法,方法包括:
8.步骤1:预设声明式语法的逻辑规则的多种规则类型;
9.步骤2:获取逻辑规则中的表达式;
10.步骤3:将获取到的表达式解析为树形结构;
11.步骤4:对解析出的树形结构进行遍历,生成用于执行的中间代码;
12.步骤5:按照顺序解释执行所生成的中间代码。
13.根据本发明的提供声明式语法实现逻辑核查的方法的一实施例,步骤1中的逻辑规则的多种规则类型包括:数据校验、数据生成、受试者状态改变、动态激活、动态发药。
14.根据本发明的提供声明式语法实现逻辑核查的方法的一实施例,步骤2中的表达
式支持用户构建,即支持用户自定义计算的内容。
15.根据本发明的提供声明式语法实现逻辑核查的方法的一实施例,树形结构包括数据选择器、操作符、常量,树形结构的构造进一步包括:每个树的节点是一个操作符,每个树的子节点是常量、数据选择器以及一个操作符为根的子树,按照操作符的优先顺序来构造树形结构,运算顺序最高的操作符在树的最底部。
16.根据本发明的提供声明式语法实现逻辑核查的方法的一实施例,在步骤4中,采用深度优先遍历树形结构,得到表达式内所有操作的运算顺序,生成易于解释执行的中间代码,其中中间代码的格式遵循以下规则:中间结果=运算符,运算符需要的所有数据。
17.本发明还揭示了一种提供声明式语法实现逻辑核查的系统,系统包括:
18.规则预设模块,预设声明式语法的逻辑规则的多种规则类型;
19.表达式获取模块,获取逻辑规则中的表达式;
20.解析模块,将获取到的表达式解析为树形结构;
21.代码生成模块,对解析出的树形结构进行遍历,生成用于执行的中间代码;
22.代码执行模块,按照顺序解释执行所生成的中间代码。
23.根据本发明的提供声明式语法实现逻辑核查的系统的一实施例,规则预设模块中的逻辑规则的多种规则类型包括:数据校验、数据生成、受试者状态改变、动态激活、动态发药。
24.根据本发明的提供声明式语法实现逻辑核查的系统的一实施例,表达式获取模块中的表达式支持用户构建,即支持用户自定义计算的内容。
25.根据本发明的提供声明式语法实现逻辑核查的系统的一实施例,树形结构包括数据选择器、操作符、常量,树形结构的构造进一步包括:每个树的节点是一个操作符,每个树的子节点是常量、数据选择器以及一个操作符为根的子树,按照操作符的优先顺序来构造树形结构,运算顺序最高的操作符在树的最底部。
26.根据本发明的提供声明式语法实现逻辑核查的系统的一实施例,在代码生成模块中,采用深度优先遍历树形结构,得到表达式内所有操作的运算顺序,生成易于解释执行的中间代码,其中中间代码的格式遵循以下规则:中间结果=运算符,运算符需要的所有数据。
27.本发明还揭示了一种计算机可读存储介质,其存储有可供处理器执行的程序指令,以实现如上所述的提供声明式语法实现逻辑核查的方法的步骤。
28.本发明还揭示了一种计算机设备,其包括存储器、处理器和存储在存储器中可供处理器运行的程序指令,其中所述处理器执行所述程序指令以实现如上所述的提供声明式语法实现逻辑核查的方法的步骤。
29.本发明对比现有技术有如下的有益效果:在本发明的方法中,第一,使用特定的语法规则构建用户的数据核查功能,使用户避免以写代码的方式创建逻辑规则,并且能够更直观的理解所写逻辑。第二,本发明支持多种不同的语法规则,可以支持用户在系统中以近似的声明式方式,完成不同的数据核查,界面动态等功能。第三,本发明使用用户自定义表达式构建逻辑,可以支持用户自定义计算的内容。第四,本发明的表达式中支持数据选择器,可以支持用户自由选择系统数据的同时,无需指定逻辑规则的触发条件。第五,本发明的表
30.达式中支持内置的,可扩展的运算操作符,可以使用户避免写出大量重复的表5达式内容完成复杂操作。第六,本发明解析用户自定以表达式至中间代码并执
31.行,可以使系统在执行用户所写表达式时,能够给到详尽的运算过程信息,使整个运算更容易理解。
附图说明
32.0在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本
33.发明的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。
34.图1示出了本发明的提供声明式语法实现逻辑核查的方法的一实施例的流程图。
35.5图2示出了本发明的提供声明式语法实现逻辑核查的系统的一实施例的原
36.理图。
具体实施方式
37.以下结合附图和具体实施例对本发明作详细描述。注意,以下结合附图和0具体实施例描述的诸方面仅是示例性的,而不应被理解为对本发明的保护范围
38.进行任何限制。
39.图1示出了本发明的提供声明式语法实现逻辑核查的方法的一实施例的流
40.程。请参见图1,本实施例的提供声明式语法实现逻辑核查的方法的实施步骤5详述如下。
41.步骤1:预设声明式语法的逻辑规则的多种规则类型。
42.逻辑规则的每一种规则类型对应解决一个特定的问题,包括:数据校验核查、界面的动态展示、数据点的自动计算等。
43.声明式是相对命令式而言的逻辑描述风格,即,用户可以声明一些数据约束关系,当约束不满足时系统会自动执行某些动作。而命令式则是描述什么情况下做什么事情。相对而言,声明式的描述更加简洁,更加符合自然语言习惯。
44.声明式举例:当且仅当a为真,b应为真,否则系统给出质疑。
45.命令式举例:
46.当a为真,b为真,则不做处理。
47.当a为真,b为假,则系统给出质疑。
48.当a为假,b为真,则系统给出质疑。
49.当a为假,b为假,则不做处理。
50.声明式语法的逻辑规则为系统对一条用户自定义的规则的命名。用户可以在系统里自定义一些规则,用于对数据进行校验,校验失败时系统开出“质疑”(即错误信息)。在数据满足某些情况下改变另外的数据等等。
51.在针对特定问题设置声明式语法的逻辑规则的细节中,可支持例如五种逻辑规则的规则类型,比如:
52.(1)数据校验:对于《目标数据对象》,应满足《数据约束表达式》,当/当且仅当《条件表达式》,否则开质疑《质疑文本》;
53.(2)数据生成:对于《目标数据对象》,应计算为《数据计算表达式》;
54.(3)受试者状态改变:改变受试者状态为《受试者状态》,当《条件表达式》;
55.(4)动态激活:对于《目标数据对象》,在《条件表达式》时激活;
56.(5)动态发药:对于《发药数据对象》,计算剂量为《数据计算表达式》;
57.其中《》内为用户自己填写,格式中的命名在系统中可能有细微区别。这里的规则类型和格式结构定义会随着系统的迭代更新/添加。
58.声明式语法支持不同的语法规则,支持用户在系统中以近似的声明式方式,完成不同的数据核查,界面动态等功能。
59.本发明的改进点在于声明式的处理方式,即,对每种规则类型定义好对应的格式,以使用户在此格式下可以以声明式的方法完成规则定义。而具体的规则定义如何来设置,上述仅为举例,便于理解,而非限制于此。
60.步骤2:获取逻辑规则中的表达式。
61.由于逻辑规则的规则类型中会有一个或者多个表达式,因此会按照不同规则中的设定,将所需要的表达式抓取出来。表达式的构建可以是用户的,即支持用户自定义计算的内容。
62.规则中的表达式可以认为为用户输入的字符文本。不同的规则会有不同的格式(见步骤1的举例),系统在提供给用户编辑界面时,就能够定位用户所输入内容和对应位置。
63.步骤3:将获取到的表达式解析为数据选择器、操作符、常量所组成的树形结构。
64.表达式由用于选取数据的数据选择器、用于运算的操作符、以及常量构造而成。用户在界面上以类字符形式输入表达式,系统将用户输入的表达式解析成一个树形结构。表达式所支持的数据选择器,支持用户自由选择系统数据的同时,无需指定逻辑规则的触发条件。表达式所支持的内置的、可扩展的运算操作符,使用户避免写出大量重复的表达式内容完成复杂操作。
65.树形结构的构造方法如下:每个树的节点是一个操作符,其子节点可以是常量、数据选择器以及一个操作符为根的子树。构造树形结构时,按照操作符的优先顺序,运算顺序最高的操作符在树的最底部。树形结构的构造过程中需要满足操作符的运算定义,如“加号”左右必须是数值类型的结果。操作符本身以及其运算的定义由系统完成。
66.在表达式解析的过程中,自动校验用户的输入是否合法(即输入是否符合预先构建的逻辑规则),若不合法则将错误信息和定位提示给用户。也就是说,解析出的树形结构可能会包含错误,当发生错误时根据不同的错误类型构建不同的错误信息,以及将树中错误节点的位置映射回用户原有的输入上,进行错误提示和定位。
67.步骤4:对解析出的树形结构进行深度优先遍历,生成用于执行的中间代5码。
68.解析得到表达式运算对应的树形结构之后,采用深度优先对树形结构进行遍历,得到表达式内所有操作的运算顺序,并生成易于解释执行的中间代码。
69.中间代码的格式按照以下规则:中间结果=运算符,运算符需要的所有数据。0步骤5:按照顺序解释执行所生成的中间代码。
70.按照顺序执行解释所有的中间代码,得到表达式的运算结果,从而得到整个逻辑规则的结果。
71.图2示出了本发明的提供声明式语法实现逻辑核查的系统的一实施例的原5理。请参见图2,本实施例的系统包括:规则预设模块、表达式获取模块、解
72.析模块、代码生成模块、代码执行模块。
73.规则预设模块的输出端连接表达式获取模块的输入端,表达式获取模块的输出端连接解析模块的输入端,解析模块的输出端连接代码生成模块的输入端,代码生成模块的输出端连接代码执行模块的输入端。
74.0规则预设模块,预设声明式语法的逻辑规则的多种规则类型。
75.逻辑规则的每一种规则类型对应解决一个特定的问题,包括:数据校验核查、界面的动态展示、数据点的自动计算等。
76.声明式是相对命令式而言的逻辑描述风格,即,用户可以声明一些数据约
77.束关系,当约束不满足时系统会自动执行某些动作。而命令式则是描述什么情5况下做什么事情。相对而言,声明式的描述更加简洁,更加符合自然语言习惯。
78.声明式举例:当且仅当a为真,b应为真,否则系统给出质疑。
79.命令式举例:
80.当a为真,b为真,则不做处理。
81.当a为真,b为假,则系统给出质疑。
82.当a为假,b为真,则系统给出质疑。
83.当a为假,b为假,则不做处理。
84.声明式语法的逻辑规则为系统对一条用户自定义的规则的命名。用户可以5在系统里自定义一些规则,用于对数据进行校验,校验失败时系统开出“质疑”85.(即错误信息)。在数据满足某些情况下改变另外的数据等等。
86.在针对特定问题设置声明式语法的逻辑规则的细节中,可支持例如五种逻辑规则的规则类型,比如:
87.(1)数据校验:对于《目标数据对象》,应满足《数据约束表达式》,当/当0且仅当《条件表达式》,否则开质疑《质疑文本》;
88.(2)数据生成:对于《目标数据对象》,应计算为《数据计算表达式》;
89.(3)受试者状态改变:改变受试者状态为《受试者状态》,当《条件表达式》;
90.(4)动态激活:对于《目标数据对象》,在《条件表达式》时激活;
91.(5)动态发药:对于《发药数据对象》,计算剂量为《数据计算表达式》;5其中《》内为用户自己填写,格式中的命名在系统中可能有细微区别。这里的规则类型和格式结构定义会随着系统的迭代更新/添加。
92.声明式语法支持不同的语法规则,支持用户在系统中以近似的声明式方式,完成不同的数据核查,界面动态等功能。
93.本发明的改进点在于声明式的处理方式,即,对每种规则类型定义好对应0的格式,以使用户在此格式下可以以声明式的方法完成规则定义。而具体的规
94.则定义如何来设置,上述仅为举例,便于理解,而非限制于此。
95.表达式获取模块,获取逻辑规则中的表达式。
96.由于逻辑规则的规则类型中会有一个或者多个表达式,因此会按照不同规5则中的设定,将所需要的表达式抓取出来。表达式的构建可以是用户的,即支
97.持用户自定义计算的内容。
98.规则中的表达式可以认为为用户输入的字符文本。不同的规则会有不同的格式(见规则预设模块的举例),系统在提供给用户编辑界面时,就能够定位用户所输入内容和对应位置。
99.解析模块,将获取到的表达式解析为树形结构。
100.表达式由用于选取数据的数据选择器、用于运算的操作符、以及常量构造而成。用户在界面上以类字符形式输入表达式,系统将用户输入的表达式解析成一个树形结构。表达式所支持的数据选择器,支持用户自由选择系统数据的同时,无需指定逻辑规则的触发条件。表达式所支持的内置的、可扩展的运算操作符,使用户避免写出大量重复的表达式内容完成复杂操作。
101.树形结构的构造方法如下:每个树的节点是一个操作符,其子节点可以是常量、数据选择器以及一个操作符为根的子树。构造树形结构时,按照操作符的优先顺序,运算顺序最高的操作符在树的最底部。树形结构的构造过程中需要满足操作符的运算定义,如“加号”左右必须是数值类型的结果。操作符本身以及其运算的定义由系统完成。
102.在表达式解析的过程中,自动校验用户的输入是否合法(即输入是否符合预先构建的逻辑规则),若不合法则将错误信息和定位提示给用户。也就是说,解析出的树形结构可能会包含错误,当发生错误时根据不同的错误类型构建不同的错误信息,以及将树中错误节点的位置映射回用户原有的输入上,进行错误提示和定位。
103.代码生成模块,对解析出的树形结构进行遍历,生成用于执行的中间代码。
104.解析得到表达式运算对应的树形结构之后,采用深度优先对树形结构进行遍历,得到表达式内所有操作的运算顺序,并生成易于解释执行的中间代码。中间代码的格式按照以下规则:中间结果=运算符,运算符需要的所有数据。
105.代码执行模块,按照顺序解释执行所生成的中间代码。
106.按照顺序执行解释所有的中间代码,得到表达式的运算结果,从而得到整个逻辑规则的结果。
107.此外,本发明还揭示了一种计算机可读存储介质,其存储有可供处理器执行的程序指令,以实现如上所述的提供声明式语法实现逻辑核查的方法的步骤。具体步骤已经在图1所示的实施例中详细描述,在此不再赘述。
108.此外,本发明还揭示了一种计算机设备,其包括存储器、处理器和存储在存储器中可供处理器运行的程序指令,其中处理器执行程序指令以实现如上所述的提供声明式语法实现逻辑核查的方法的步骤。具体步骤已经在图1所示的实施例中详细描述,在此不再赘述。
109.尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。
110.本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以
其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。
111.结合本文所公开的实施例描述的各种解说性逻辑板块、模块、和电路可用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如dsp与微处理器的组合、多个微处理器、与dsp核心协作的一个或多个微处理器、或任何其他此类配置。
112.结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动盘、cd-rom、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在asic中。asic可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。
113.在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、dsl、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(cd)、激光碟、光碟、数字多用碟(dvd)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。
114.提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1