基于JavaScript的自动计算变量方法、系统以及终端
技术领域
本发明涉及计算机技术领域,特别是涉及一种基于JavaScript的自动计算变量方法、系统以及终端。
背景技术
在做科研项目研究,录入患者的表单数据的时候,经常会遇到某个事件下的某个表单的某个变量的值,是依赖于其他一个或者几个变量的值(这些变量可能取自当前事件当前表单,也可能取自其他事件其他表单)经过一系列计算得出,考虑到实际使用场景的事件表单复杂程度,再加上可能是海量的患者数量,如果人工针对每个患者去为这些需要计算的变量找到对应的依赖变量再手动计算回填,需要耗费巨大的人力并且容易出错,而做科研项目的严谨性,则不允许出现任何错误。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于JavaScript的自动计算变量方法、系统以及终端,用于解决现有技术人工针对每个患者去为这些需要计算的变量找到对应的依赖变量再手动计算回填,需要耗费巨大的人力并且容易出错,导致工作效率降低的问题。
为实现上述目的及其他相关目的,本发明提供一种基于JavaScript的自动计算变量方法,包括:获取一或多个参数变量的当前参数变量值;基于所述当前参数变量值,在JavaScript引擎中运行预设脚本,获得与所述各参数变量具有依赖关系的待计算变量的当前自动计算结果。
于本发明的一实施例中,编写所述预设脚本的步骤包括:获取绑定自身引用属性信息的所述各参数变量的当前变量值;基于设置的计算规则,对所述参数变量的当前变量值进行计算获得当前自动计算结果;获取与所述各参数变量具有依赖关系的绑定自身引用属性信息的所述待计算变量,并回填所述当前自动计算结果。
于本发明的一实施例中,所述自身引用属性信息包括:对应一或多个事件的事件属性信息和/或对应一或多个表单的表单属性信息。
于本发明的一实施例中,所述当前变量值包括:对应于经过修改的一或多个参数变量的监听修改变量值和/或对应于未修改的一或多个参数变量的监听未修改变量值。
于本发明的一实施例中,每个事件的事件属性信息包含一或多个表单的表单属性信息。
为实现上述目的及其他相关目的,本发明提供一种基于JavaScript的自动计算变量系统,所述系统包括:获取模块,用于获取各参数变量的当前参数变量值;自动计算模块,连接所述获取模块,用于基于所述当前参数变量值,在JavaScript引擎中运行预设脚本,获得与所述各参数变量具有依赖关系的待计算变量的当前自动计算结果。
于本发明的一实施例中,编写所述预设脚本的步骤包括:获取绑定自身引用属性信息的所述各参数变量的当前变量值;基于设置的计算规则,对所述参数变量的当前变量值进行计算获得当前自动计算结果;获取与所述各参数变量具有依赖关系的绑定自身引用属性信息的所述待计算变量,并回填所述当前自动计算结果。
于本发明的一实施例中,所述自身引用属性信息包括:对应一或多个事件的事件属性信息和/或对应一或多个表单的表单属性信息。
于本发明的一实施例中,所述当前变量值包括:对应于经过修改的一或多个参数变量的监听修改变量值和/或对应于未修改的一或多个参数变量的监听未修改变量值。
为实现上述目的及其他相关目的,本发明提供一种基于JavaScript的自动计算变量终端,包括:存储器,用于存储计算机程序;处理器,用于执行所述的基于JavaScript的自动计算变量方法。
如上所述,本发明的一种基于JavaScript的自动计算变量方法、系统以及终端,具有以下有益效果:本发明只要根据JavaScript的语法,在预设脚本的同时设置计算规则,即可在录入数据的时候自动计算变量的值,极大地简化了使用者针对复杂表单和海量患者数量的时候的繁重工作,完全避免了原本可能需要几小时甚至几天的人工计算工作量,同时也可以避免因为人为失误产生的错误,保障了科研项目数据的准确性。
附图说明
图1显示为本发明一实施例中的基于JavaScript的自动计算变量方法的流程示意图。
图2显示为本发明一实施例中的基于JavaScript的自动计算变量系统的结构示意图。
图3显示为本发明一实施例中的基于JavaScript的自动计算变量终端的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,在下述描述中,参考附图,附图描述了本发明的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本发明的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本发明的实施例的范围仅由公布的专利的权利要求书所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本发明。空间相关的术语,例如“上”、“下”、“左”、“右”、“下面”、“下方”、““下部”、“上方”、“上部”等,可在文中使用以便于说明图中所示的一个元件或特征与另一元件或特征的关系。
在通篇说明书中,当说某部分与另一部分“连接”时,这不仅包括“直接连接”的情形,也包括在其中间把其它元件置于其间而“间接连接”的情形。另外,当说某种部分“包括”某种构成要素时,只要没有特别相反的记载,则并非将其它构成要素,排除在外,而是意味着可以还包括其它构成要素。
其中提到的第一、第二及第三等术语是为了说明多样的部分、成分、区域、层及/或段而使用的,但并非限定于此。这些术语只用于把某部分、成分、区域、层或段区别于其它部分、成分、区域、层或段。因此,以下叙述的第一部分、成分、区域、层或段在不超出本发明范围的范围内,可以言及到第二部分、成分、区域、层或段。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
在做科研项目研究,录入患者的表单数据的时候,经常会遇到某个事件下的某个表单的某个变量的值,是依赖于其他一个或者几个变量的值(这些变量可能取自当前事件当前表单,也可能取自其他事件其他表单)经过一系列计算得出,考虑到实际使用场景的事件表单复杂程度,再加上可能是海量的患者数量,如果人工针对每个患者去为这些需要计算的变量找到对应的依赖变量再手动计算回填,需要耗费巨大的人力并且容易出错,而做科研项目的严谨性,则不允许出现任何错误。
因此,本发明实施例中提供一种基于JavaScript的自动计算变量方法,用于解决现有技术人工针对每个患者去为这些需要计算的变量找到对应的依赖变量再手动计算回填,需要耗费巨大的人力并且容易出错,导致工作效率降低的问题。本发明只要根据JavaScript的语法,在预设脚本的同时设置计算规则,即可在录入数据的时候自动计算变量的值,极大地简化了使用者针对复杂表单和海量患者数量的时候的繁重工作,完全避免了原本可能需要几小时甚至几天的人工计算工作量,同时也可以避免因为人为失误产生的错误,保障了科研项目数据的准确性。
所述JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。
下面以附图为参考,针对本发明的实施例进行详细说明,以便本发明所述技术领域的技术人员能够容易地实施。本发明可以以多种不同形态体现,并不限于此处说明的实施例。
如图1所示,展示本发明实施例中的基于JavaScript的自动计算变量方法的流程示意图。
所述方法包括:
步骤S11:获取一或多个参数变量的当前参数变量值。
可选的,所述参数变量绑定自身引用属性信息。
其中,所述自身引用属性关系描述所述参数变量的来源属性。
可选的,所述自身引用属性信息包括:对应一或多个事件的事件属性信息和/或对应一或多个表单的表单属性信息。
可选的,所述参数变量为多个,各参数变量包括:对应一个事件的事件属性信息和/或一个表单的表单属性信息。具体的,各参数变量可以包括:对应相同事件的事件属性信息以及对应不同表单的表单属性信息、对应相同事件的事件属性信息以及对应相同表单的表单属性信息、对应相同事件的事件属性信息以及对应相同表单的表单属性信息、对应不同事件的事件属性信息以及对应相同表单的表单属性信息以及对应不同事件的事件属性信息以及对应不同表单的表单属性信息的情况中的一种。由此可知可以支持跨事件或跨表单的情况,大大增加了工作效率。
可选的,每个事件的事件属性信息包含一或多个表单的表单属性信息;且各事件中可以出现同一表单的情况。
举例来说,对于各参数变量包括:对应不同事件的事件属性信息以及对应相同表单的表单属性信息的情况,“BMI指数”来自“体检”事件下的“患者基本信息表单”,依赖的“体重”来自“入院”事件的“患者基本信息”表单,“身高”来自“体检”事件下的“患者基本信息”表单。
对于各参数变量包括:对应相同事件的事件属性信息以及对应不同表单的表单属性信息的情况,“就诊时年龄”来自“就诊信息表单”依赖的“就诊时间”来自“就诊信息”表单,“出生日期”来自“患者基本信息”表单。
可选的,所述当前变量值包括:对应于经过修改的一或多个参数变量的监听修改变量值和/或对应于未修改的一或多个参数变量的监听未修改变量值。
具体的,若所述参数变量中的一个或多个进行了修改,则获取经过修改的一或多个参数变量的监听修改变量值作为当前变量值;若所述参数变量中的一个或多个未进行了修改,则获取的一或多个参数变量的监听未修改变量值作为当前变量值。实际运行时,随着患者的录入数量的不断增加,会一直监听参数变量的修改。
步骤S12:基于所述当前参数变量值,在JavaScript引擎中运行预设脚本,获得与所述各参数变量具有依赖关系的待计算变量的当前自动计算结果。
可选的,基于一或多个参数变量的对应于经过修改的一或多个参数变量的监听修改变量值和/或对应于未修改的一或多个参数变量的监听未修改变量值,在JavaScript引擎中运行预设脚本,获得与所述各参数变量具有依赖关系的待计算变量的当前自动计算结果。
可选的,所述依赖关系包括:可以通过一或多个参数变量的参数变量值经过一定的计算规则可以获得待计算变量的待计算变量值,即所述待计算变量与所述参数变量成依赖关系。
可选的,编写所述预设脚本的步骤包括:
获取绑定自身引用属性信息的所述各参数变量的当前变量值;
基于设置的计算规则,对所述参数变量的当前变量值进行计算获得当前自动计算结果;
获取与所述各参数变量具有依赖关系的绑定自身引用属性信息的所述待计算变量,并回填所述当前自动计算结果。
可选的,对应不同的依赖关系来设定不同的计算规则,在本发明中不做限定。
举例来说,对于参数变量为:$1体重与$2身高;与所述参数变量具有依赖关系的待计算变量为:$3BMI。则设定计算规则为$3=$1/($2*$2)。
可选的,所述自身引用属性信息包括:对应一或多个事件的事件属性信息和/或对应一或多个表单的表单属性信息。
可选的,随着患者的录入数量的不断增加,一直获取监听参数变量的修改,即参数变量发生填充或修改,待计算变量都可以自动触发计算,将结果同其他变量一同保存到数据库。
可选的,若监听到所述参数变量一部分发生了修改,另一部分没有修改,则所述方法包括:
获取对应于经过修改的一或多个参数变量的监听修改变量值和对应于未修改的一或多个参数变量的监听未修改变量值;
基于所述当前参数变量值,在JavaScript引擎中运行预设脚本,获得与所述各参数变量具有依赖关系的待计算变量的当前自动计算结果;
其中,获取绑定自身引用属性信息的经过修改的一或多个参数变量的监听修改变量值和对应于未修改的一或多个参数变量的监听未修改变量值;
基于设置的计算规则,对经过修改的一或多个参数变量的监听修改变量值和对应于未修改的一或多个参数变量的监听未修改变量值,进行计算获得当前自动计算结果;
获取与所述各参数变量具有依赖关系的绑定自身引用属性信息的所述待计算变量,并回填所述当前自动计算结果。
其中,监听未修改变量值可以之间采用之前监听或原始采集的变量值。
结合具体实施例来更好的解释所述基于JavaScript的自动计算变量方法。
实施例1:一种参数变量以及待计算变量跨不同事件相同表单的情况下的基于JavaScript 的自动计算变量方法,所述方法包括:
获取$1体重的当前参数变量值以及$2身高的当前参数值;
基于取$1体重的当前参数变量值以及$2身高的当前参数值,在JavaScript引擎中运行预设脚本,获得与$1体重以及$2身高具有依赖关系的$3BMI的当前自动计算结果。
其中,编写所述预设脚本的步骤包括:
获取入院事件下面的患者基本信息表单的$1体重的当前变量值,以及体检事件下面的患者基本信息表单的$2身高的当前参数值;
基于设置的计算规则:$3=$1/($2*$2),对所述$1体重以及$2身高的当前变量值进行计算获得当前自动计算结果;
获取与所述$1体重以及$2身高具有依赖关系的体检事件下面的患者基本信息表单的$3 BMI,并回填所述当前自动计算结果。
实施例2:一种参数变量以及待计算变量相同事件跨不同表单的情况下的基于JavaScript 的自动计算变量方法,所述方法包括:
获取$1就诊时间的当前参数变量值以及$2出生日期的当前参数值;
基于取$1就诊时间的当前参数变量值以及$2出生日期的当前参数值,在JavaScript引擎中运行预设脚本,获得与$1就诊时间以及$2出生日期具有依赖关系的$3就诊年龄的当前自动计算结果。
其中,编写所述预设脚本的步骤包括:
获取就诊信息表单的$1就诊时间的当前变量值,以及患者基本信息表单的$2出生日期的当前参数值;
基于设置的计算规则:$3=($1-$2)/365,对$1就诊时间以及$2出生日期的当前变量值进行计算获得当前自动计算结果;
获取与所述$1就诊时间以及$2出生日期具有依赖关系的就诊信息表单的$3就诊年龄,并回填所述当前自动计算结果。
与上述实施例原理相似的是,本发明提供一种基于JavaScript的自动计算变量系统。
以下结合附图提供具体实施例:
如图2展示本发明实施例中的一种基于JavaScript的自动计算变量系统的结构示意图。
所述系统包括:
获取模块21,用于获取各参数变量的当前参数变量值;
自动计算模块22,连接所述获取模块21,用于基于所述当前参数变量值,在JavaScript 引擎中运行预设脚本,获得与所述各参数变量具有依赖关系的待计算变量的当前自动计算结果。
可选的,所述参数变量绑定自身引用属性信息。
其中,所述自身引用属性关系描述所述参数变量的来源属性。
可选的,所述自身引用属性信息包括:对应一或多个事件的事件属性信息和/或对应一或多个表单的表单属性信息。
可选的,所述参数变量为多个,各参数变量包括:对应一个事件的事件属性信息和/或一个表单的表单属性信息。具体的,各参数变量可以包括:对应相同事件的事件属性信息以及对应不同表单的表单属性信息、对应相同事件的事件属性信息以及对应相同表单的表单属性信息、对应相同事件的事件属性信息以及对应相同表单的表单属性信息、对应不同事件的事件属性信息以及对应相同表单的表单属性信息以及对应不同事件的事件属性信息以及对应不同表单的表单属性信息的情况中的一种。由此可知可以支持跨事件或跨表单的情况,大大增加了工作效率。
可选的,每个事件的事件属性信息包含一或多个表单的表单属性信息;且各事件中可以出现同一表单的情况。
可选的,所述当前变量值包括:对应于经过修改的一或多个参数变量的监听修改变量值和/或对应于未修改的一或多个参数变量的监听未修改变量值。
具体的,若所述参数变量中的一个或多个进行了修改,则所述获取模块21获取经过修改的一或多个参数变量的监听修改变量值作为当前变量值;若所述参数变量中的一个或多个未进行了修改,则所述获取模块21获取的一或多个参数变量的监听未修改变量值作为当前变量值。实际运行时,随着患者的录入数量的不断增加,会一直监听参数变量的修改。
可选的,所述自动计算模块22基于一或多个参数变量的对应于经过修改的一或多个参数变量的监听修改变量值和/或对应于未修改的一或多个参数变量的监听未修改变量值,在 JavaScript引擎中运行预设脚本,获得与所述各参数变量具有依赖关系的待计算变量的当前自动计算结果。
可选的,所述依赖关系包括:可以通过一或多个参数变量的参数变量值经过一定的计算规则可以获得待计算变量的待计算变量值,即所述待计算变量与所述参数变量成依赖关系。
可选的,所述自动计算模块22编写所述预设脚本的步骤包括:
获取绑定自身引用属性信息的所述各参数变量的当前变量值;
基于设置的计算规则,对所述参数变量的当前变量值进行计算获得当前自动计算结果;
获取与所述各参数变量具有依赖关系的绑定自身引用属性信息的所述待计算变量,并回填所述当前自动计算结果。
可选的,所述自动计算模块22对应不同的依赖关系来设定不同的计算规则,在本发明中不做限定。
举例来说,对于参数变量为:$1体重与$2身高;与所述参数变量具有依赖关系的待计算变量为:$3BMI。则设定计算规则为$3=$1/($2*$2)。
可选的,所述自身引用属性信息包括:对应一或多个事件的事件属性信息和/或对应一或多个表单的表单属性信息。
可选的,随着患者的录入数量的不断增加,所述获取模块21一直获取监听参数变量的修改,即参数变量发生填充或修改,待计算变量都可以自动触发计算,将结果同其他变量一同保存到数据库。
可选的,若所述获取模块21监听到所述参数变量一部分发生了修改,另一部分没有修改,则所述方法包括:
所述获取模块21获取对应于经过修改的一或多个参数变量的监听修改变量值和对应于未修改的一或多个参数变量的监听未修改变量值;
所述自动计算模块22基于所述当前参数变量值,在JavaScript引擎中运行预设脚本,获得与所述各参数变量具有依赖关系的待计算变量的当前自动计算结果;
其中,所述获取模块21获取绑定自身引用属性信息的经过修改的一或多个参数变量的监听修改变量值和对应于未修改的一或多个参数变量的监听未修改变量值;
基于设置的计算规则,所述自动计算模块22对经过修改的一或多个参数变量的监听修改变量值和对应于未修改的一或多个参数变量的监听未修改变量值,进行计算获得当前自动计算结果;
所述自动计算模块22获取与所述各参数变量具有依赖关系的绑定自身引用属性信息的所述待计算变量,并回填所述当前自动计算结果。
其中,监听未修改变量值可以之间采用之前监听或原始采集的变量值。
如图3所示,展示本发明实施例中的基于JavaScript的自动计算变量终端30的结构示意图。
所述基于JavaScript的自动计算变量终端30包括:存储器31及处理器32所述存储器31 用于存储计算机程序;所述处理器32运行计算机程序实现如图1所述的基于JavaScript的自动计算变量方法。
可选的,所述存储器31的数量均可以是一或多个,所述处理器32的数量均可以是一或多个,而图3中均以一个为例。
可选的,所述基于JavaScript的自动计算变量终端30中的处理器32会按照如图1所述的步骤,将一个或多个以应用程序的进程对应的指令加载到存储器31中,并由处理器32来运行存储在第一存储器31中的应用程序,从而实现如图1所述基于JavaScript的自动计算变量方法中的各种功能。
可选的,所述存储器31,可能包括但不限于高速随机存取存储器、非易失性存储器。例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备;所述处理器32,可能包括但不限于中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路 (Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可选的,所述处理器32可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明还提供计算机可读存储介质,存储有计算机程序,所述计算机程序运行时实现如图1所示的基于JavaScript的自动计算变量方法。所述计算机可读存储介质可包括,但不限于,软盘、光盘、CD-ROM(只读光盘存储器)、磁光盘、ROM(只读存储器)、RAM(随机存取存储器)、EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)、磁卡或光卡、闪存、或适于存储机器可执行指令的其他类型的介质/机器可读介质。所述计算机可读存储介质可以是未接入计算机设备的产品,也可以是已接入计算机设备使用的部件。
综上所述,本发明基于JavaScript的自动计算变量方法、系统、以及终端,用于解决现有技术人工针对每个患者去为这些需要计算的变量找到对应的依赖变量再手动计算回填,需要耗费巨大的人力并且容易出错,导致工作效率降低的问题。本发明只要根据JavaScript的语法,在预设脚本的同时设置计算规则,即可在录入数据的时候自动计算变量的值,极大地简化了使用者针对复杂表单和海量患者数量的时候的繁重工作,完全避免了原本可能需要几小时甚至几天的人工计算工作量,同时也可以避免因为人为失误产生的错误,保障了科研项目数据的准确性。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅示例性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,但凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。