报表输出结果的问题数据自动定位预警的方法

xiaoxiao2020-7-22  26

报表输出结果的问题数据自动定位预警的方法
【专利摘要】本发明公开一种报表输出结果的问题数据自动定位预警的方法,其包括:步骤1:预先建立规则库,该规则库预定义外置的预警算法,预警算法是由预警算法表达式实现,预警算法表达式包括通过运算符连接的若干个变量;步骤2:建立报表,并将预警算法分别与各报表关联;步骤3:建立预警算法匹配执行器,获取预警算法表达式的各变量的实时数据值;步骤4:系统实时检测各报表,执行相应的预警算法表达式,根据预警算法表达式定义的运算符进行运算,并返回预警结果值;步骤5:将返回的预警结果值与报表的自带数据集在内存中进行交叉匹配,通过比对算法找出自带数据集中存在问题的数据;步骤6:系统对存在问题的数据进行预警标记,并显示至客户端。
【专利说明】报表输出结果的问题数据自动定位预警的方法
【技术领域】
[0001]本发明涉及对报表输出结果的问题数据进行自动定位预警的方法。
【背景技术】
[0002]报表,为决策者提供了结果性的数据分析支持。而带有预警性质的报表,更是为决策者提供了主动性结果提醒的服务,避免了决策者在分析结果进行二次运算的工作。
[0003]现有的预警报表,具有数据复杂、维护困难、数据易失,以及每张预警报表只能绑定一种固定的预警计算方法等问题。因此一篇申请号为200810052457.1、申请日为2008-03-18的发明专利,公开了一种容量预警报表自动生成方法,解决了维护困难的问题,其具体做法是:普通报表制作模块在报表制作完成时将该报表名称传送给公共服务模块;公用服务模块将该报表名称及报表已做完标记写入已制作数据表中;数据总控模块定时轮询已制作数据表,调用相应的数据抓取模块;数据抓取模块从网管系统数据库中抓取容量预警数据并存储到容量预警数据库中,同时在已抓取数据表中写入报表数据已抓取标记;预警报表总控模块定时轮询已抓取数据表,调用容量预警报表制作模块实现各类容量预警报表的制作。该发明虽然解决了一定的问题,但是,面对着决策者用户多变且临时性较强的预警分析要求,其提供的预警报表仍具有如下几个方面的局限性:
(1)每张报表只能绑定一种固定的预警计算方法来进行输出展示,且需要在报表制作过程中就确定算法,并与报表的展示结构绑定在一起。后期如需改动预警算法,则意味着需要重新更改报表结构且重新发布;
(2)受报表展示结构的局限性影响,预警监测对象范围十分有限。想要在同一个指标范围内从多角度、多层次对该指标下属的各类对象进行监测预警,就必须制作多张同类型的报表。如:门诊人次指标,需要对各医疗机构的门诊人次进行预警,也需要对各类不同科室的门诊人次进行预警。不同对象的监测方式与目的都会随着决策者的临时需求而不停地变化;
(3)针对业务对象的监测预警,大都需要进行阈值配置,以跟实际业务数字进行对比。但普通的报表受内部预警算法限制,只能配置一个的阈值,无法视实际情况进动态设置。如:某个春季流行疾病,具有鲜明的季节性质,往往在春季处于高发状态。而其它季节则为普通或低发状态。因此,需要针对不同的季节设定不同的阈值进行监测预警,否则,如果全年只用一个阈值数字监测,适合了春季监测,也不适合夏季等其它季节监测,从而造成预警错误;
(4)因为数据庞大复杂,用户如果面对表格结构相对复杂,且无内置任何预警算法的报表,繁杂的数据使他无法用眼睛方便地定位到存在超出预警线的数据;
(5)报表内容经常需要增加一行新的数据或者增加一列新的条目,这需要重新制作报表,并且经常需要对多个报表进行同时更新,这样重新制作报表后的数据的完整性很难保证,容易造成数据的丢失。
【发明内容】

[0004]因此,针对上述的问题,本发明提出一种报表输出结果的问题数据自动定位预警的方法,避免修改报表结构或内置预警算法,通过动态编辑外置预警算法,直接将预警结果输出到报表上,并对报表的已输出结果进行预警信息的自动定位与提醒;在不增加报表数量的前提下,对单个报表进行多种预警算法的自由性切换。
[0005]基于报表的数据输出展示,受报表的固定结构限制,数据集的展示输出也需要进行预先编辑与绑定。对于预警信息结果的输出,也需要进行绑定并内置在报表结构内部,因此,针对同一张报表来说,很难支持多种预警算法进行切换显示。如报表结构无内置任何预警算法,则更加无法进行预警信息输出,为用户定位并提醒报表上的问题数据。为了解决上述技术问题,本发明所采用的思路是:采用自定义外置预警算法并与报表关联匹配,达到对报表的已输出结果进行预警信息的自动定位与提醒,并可以自由切换多种预警算法,具体的,本发明的方案如下:
报表输出结果的问题数据自动定位预警的方法,包括以下步骤:
步骤1:预先建立规则库,该规则库预定义外置的预警算法,预警算法是由预警算法表达式实现,预警算法表达式包括通过运算符连接的若干个变量,变量至少包括数据信息、SQL代码、环境变量、固定值、外部参数等;
步骤2:建立报表,并将步骤I定义完成的预警算法分别与各报表关联,使预警算法隶属于指定的报表,形成多对一的关系。这样,就可以实现,某张报表在不同的预警算法之间自由切换。上述报表可以是系统决策体系中的各个指标报表;
步骤3:建立预警算法匹配执行器,该预警算法匹配执行器获取预警算法表达式的各变量的实时数据值。该预警算法匹配执行器支持后期扩展增量。该预警算法匹配执行器可以通过插件的形式实现。如上所述,每个预警算法的预警算法表达式均由不同的变量组合而成,而每个变量要在预警算法表达式运行时获取到实时的数据,则需要建立一对一匹配的执行机制(函数或方法);
步骤4:系统实时检测各报表,执行相应的预警算法表达式,根据预警算法表达式定义的运算符进行运算,并返回预警结果值,其具体包括如下步骤:
步骤41:各报表加载完成后,同时加载完成与各报表相关联的预警算法,将预警算法按照预设规则进行列表排列;
步骤42:系统顺序执行列表排列的预警算法,首先遍历各预警算法表达式,分析出预警算法表达式所涉及到的各个不同的变量(例如SQL代码、环境变量、固定值、外部参数);步骤43:执行对应的预警算法匹配执行器,获取各变量的实时数据值;
步骤44:将各变量的实时数据值代入预警算法表达式中,根据预警算法表达式定义的运算符进行运算,返回预警结果值。该预警结果值可能为一个数据集,也可能为单个值。
[0006]上述步骤41中,所述预警算法为多个,也即一张表对应若干个预警算法,这样通过不同的预警算法的组合,来方便用户修改某张表对应的预警算法,而不需要去修改预警算法本身。具体的,当通过不同预警算法的组合来修改预警算法时,首先,根据用户需要将各预警算法通过运算符连接,然后为了避免多维度的运算导致查询速度降低,在查询时采用分布式查询的方式,具体是构建分布式应用程序,该分布式应用程序对个预警算法的预警算法表达式同步进行查询,并将查询结果保存至缓存中,最后再组合各预警算法表达式的查询结果,形成最终查询结果;同时在上述过程中,还记录每个预警算法表达式被执行的次数,如果其次数 > 预设值N,则认为该预警算法表达式被执行的频率很高,则将该预警算法表达式的查询结果存至缓存中,这样在下一次使用时,无需再一次执行查询,而直接调用该预警算法表达式的查询结果即可,从而大大加快了查询速度。
[0007]步骤5:将步骤4返回的预警结果值与报表的自带数据集在内存中进行交叉匹配,通过比对算法找出自带数据集中存在问题的数据。如:“预警算法返回的数据集”是已经触发预警的科室列表,则通过遍历找出“报表自带数据集”相应的这些科室,并对科室对应的“数值”进行预警标记,从而产生一个新的数据集。该新数据集已经成为一个与外置预警算法返回的预警结果相互绑定的数据集。
[0008]步骤6:系统对步骤5找到的自带数据集中存在问题的数据进行预警标记,并显示给客户端。这样,前台报表的展示控件在加载新的数据集时,识别到带有预警标记的数据时,则对该数据的展示单位进行突出显示。如:表格控件,更改展示该数值的单元格的背景颜色;曲线图控件,更改展示该数值的“标记点”颜色,突出化显示预警数据的所在。
[0009]另外,本发明还包括预警算法切换的步骤,该步骤包括以下过程:在所述步骤41中,各报表加载完成后,同时加载完成与各报表相关联的预警算法,对各预警算法进行优先级设置,将预警算法按照优先级高低进行列表排列;步骤42中,系统根据列表排列的预警算法的优先级,顺序进行执行;依次遍历各预警算法的预警算法表达式,分析出预警算法表达式所涉及到的各个不同的变量,然后重复步骤43和步骤44。
[0010]更进一步的,步骤4中,系统实时检测各报表,如果有新的报表出现,则首先检测该报表的关联的预警算法的优先级,并按优先级将该预警算法列入已列表排列的预警算法的队列中。
[0011]本发明通过上述方法,预定义预警算法表达式,并与现有指标报表关联绑定,对预警算法表达式变量进行匹配执行,报表选择外置的预警算法,返回的预警结果,自动对报表自带数据集中的问题数据进行标记。这样,客户端的报表展示控件(表格或图形控件)自动识别到问题数据的标记并对该数据的展示单位进行突出化预警显示。另外,通过优先级的设置,同张报表可自由切换不同的预警算法。本发明很好的解决了现有技术的不足,每张报表可以自由切换不同的预警计算方法;同时,因为报表是通过变量实现,因此其变量可嵌套变量,使得该报表的结构具有弹性,大大扩大了预警监测对象范围;根据预警算法的预警算法表达式,可自由的进行阈值配置,因为其采用变量表示,可配置多个阈值,从而大大方便了用户修改预警监测范围;另外因为报表是通过变量实现,报表的内容可方便的增加,而不必改变报表的结构,从而保证了报表的易修改性以及数据的完整性。
【具体实施方式】
[0012]现结合【具体实施方式】对本发明进一步说明。
[0013]报表输出结果的问题数据自动定位预警的方法,包括以下步骤:
步骤1:预先建立规则库,该规则库预定义外置的预警算法,预警算法是由预警算法表达式实现,预警算法表达式包括通过运算符连接的若干个变量,变量至少包括数据信息、SQL代码、环境变量、固定值、外部参数等。
[0014]其中,所述数据信息,是执行该预警算法表达式时,系统的业务化名词对象,并获取到相应的数据集结果。所述SQL代码,是执行该预警算法表达式时,通过执行一段预先配置的SQL代码从数据库获取一个返回值。所述环境变量,是执行该预警算法表达式时通过程序代码获取到系统运行时的一些环境因素,如:当前登录用户ID、当前用户隶属部门等等。所述固定值,是执行该预警算法表达式时获取一个预先配置的值,不局限于字符串或数字。常用预警的阈值或特定对象的预警监测。所述外部参数,是执行该预警算法表达式时从用户的输入值获取到执行需要的参数值。
[0015]如:([当前用户所在医院[环境变量]的门诊人次] > [获取所有三甲医院平均门诊人次[SQLRH]]) AND ([当前用户所在医院[环境变量]的门诊人次]〈阈值[外部参数])返回[True[返回值预警]]。
[0016]步骤2:建立报表,并将步骤I定义完成的预警算法分别与各报表关联,使预警算法隶属于指定的报表,形成多对一的关系。这样,就可以实现,某张报表在不同的预警算法之间自由切换。上述报表可以是系统决策体系中的各个指标报表。
[0017]步骤3:建立预警算法匹配执行器,该预警算法匹配执行器获取预警算法表达式的各变量的实时数据值。该预警算法匹配执行器支持后期扩展增量。该预警算法匹配执行器可以通过插件的形式实现。如上所述,每个预警算法的预警算法表达式均由不同的变量组合而成,而每个变量要在预警算法表达式运行时获取到实时的数据,则需要建立一对一匹配的执行机制(函数或方法),如:
数据信息,执行机制是建立数据信息获取函数,系统的业务化名词对象,并获取到相应的数据集结果;SQL代码变量,执行机制是建立SQL执行函数,执行该SQL码,从数据库获取结果值;环境变量,执行机制是建立环境变量值获取函数,专门获取各类的当前运行时参数,如登录用户ID,所在机构、系统全局时间等等;外部参数,执行机制是直接获取外部传递参数。
[0018]步骤4:系统实时检测各报表,执行相应的预警算法表达式,根据预警算法表达式定义的运算符进行运算,并返回预警结果值,其具体包括如下步骤:
步骤41:各报表加载完成后,同时加载完成与各报表相关联的预警算法,将预警算法按照预设规则进行列表排列,例如按照优先级高低进行排列;
步骤42:系统根据列表排列的预警算法的优先级,顺序进行执行;选择某个预警算法,系统即正式启动预警算法;首先遍历预警算法的预警算法表达式,分析出预警算法表达式所涉及到的各个不同的变量(例如SQL代码、环境变量、固定值、外部参数);
步骤43:执行对应的预警算法匹配执行器,获取各变量的实时数据值;
步骤44:将各变量的实时数据值代入预警算法表达式中,根据预警算法表达式定义的运算符进行运算,返回预警结果值;该预警结果值可能为一个数据集,也可能为单个值。
[0019]上述步骤41中,所述预警算法可以是一个也可以是多个,也即一张表可以对应一个预警算法也可以对应若干个预警算法。当预警算法是多个时,可以通过不同的预警算法的组合,来方便用户修改某张表对应的预警算法,而不需要去修改预警算法本身。具体的,当通过不同预警算法的组合来修改预警算法时,首先,根据用户需要将各预警算法通过运算符连接,然后为了避免多维度的运算导致查询速度降低,在查询时采用分布式查询的方式,具体是构建分布式应用程序,该分布式应用程序对个预警算法的预警算法表达式同步进行查询,并将查询结果保存至缓存中,最后再组合各预警算法表达式的查询结果,形成最终查询结果;同时在上述过程中,还记录每个预警算法表达式被执行的次数,如果其次数>预设值N,则认为该预警算法表达式被执行的频率很高,则将该预警算法表达式的查询结果存至缓存中,这样在下一次使用时,无需再一次执行查询,而直接调用该预警算法表达式的查询结果即可,从而大大加快了查询速度。
[0020]步骤5:将步骤4返回的预警结果值与报表的自带数据集在内存中进行交叉匹配,通过比对算法找出自带数据集中存在问题的数据。如:“预警算法返回的数据集”是已经触发预警的科室列表,则通过遍历找出“报表自带数据集”相应的这些科室,并对科室对应的“数值”进行预警标记,从而产生一个新的数据集。该新数据集已经成为一个与外置预警算法返回的预警结果相互绑定的数据集。
[0021]步骤6:系统对步骤5找到的自带数据集中存在问题的数据进行预警标记,并显示给客户端。这样,前台报表的展示控件在加载新的数据集时,识别到带有预警标记的数据时,则对该数据的展示单位进行突出显示。如:表格控件,更改展示该数值的单元格的背景颜色;曲线图控件,更改展示该数值的“标记点”颜色,突出化显示预警数据的所在。
[0022]另外,步骤4中,系统实时检测各报表,如果有新的报表出现,则首先检测该报表的关联的预警算法的优先级,并按优先级将该预警算法插入已列表排列的预警算法的队列中,从而实现每张报表可以自由切换不同的预警计算方法。
[0023]尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
【权利要求】
1.报表输出结果的问题数据自动定位预警的方法,包括以下步骤: 步骤1:预先建立规则库,该规则库预定义外置的预警算法,预警算法是由预警算法表达式实现,预警算法表达式包括通过运算符连接的若干个变量,变量至少包括数据信息、SQL代码、环境变量、固定值、外部参数; 步骤2:建立报表,并将步骤I定义完成的预警算法分别与各报表关联,使预警算法隶属于指定的报表,形成多对一的关系; 步骤3:建立预警算法匹配执行器,该预警算法匹配执行器获取预警算法表达式的各变量的实时数据值; 步骤4:系统实时检测各报表,执行相应的预警算法表达式,根据预警算法表达式定义的运算符进行运算,并返回预警结果值; 步骤5:将步骤4返回的预警结果值与报表的自带数据集在内存中进行交叉匹配,通过比对算法找出自带数据集中存在问题的数据; 步骤6:系统对步骤5找到的自带数据集中存在问题的数据进行预警标记,并显示至客户端。
2.根据权利要求1所述的方法,其特征在于:还包括预警算法切换的步骤,该步骤包括以下过程:在所述步骤41中,各报表加载完成后,同时加载完成与各报表相关联的预警算法,对各预警算法进行优先级设置,将预警算法按照优先级高低进行列表排列;步骤42中,系统根据列表排列的预警算法的优先级,顺序进行执行;依次遍历各预警算法的预警算法表达式,分析出预警算法表达式所涉及到的各个不同的变量,然后重复步骤43和步骤44。
3.根据权利要求2所述的方法,其特征在于:所述步骤4中,系统实时检测各报表,如果有新的报表出现,则首先检测该报表的关联的预警算法的优先级,并按优先级将该预警算法列入已列表排列的预警算法的队列中。
4.根据权利要求1所述的方法,其特征在于:所述步骤41中,所述预警算法为多个,当通过不同预警算法的组合来修改预警算法时,首先,根据用户需要将各预警算法通过运算符连接,然后在查询时采用分布式查询的方式,具体是构建分布式应用程序,该分布式应用程序对个预警算法的预警算法表达式同步进行查询,并将查询结果保存至缓存中,最后再组合各预警算法表达式的查询结果,形成最终查询结果。
5.根据权利要求4所述的方法,其特征在于:在分布式查询过程中,还记录每个预警算法表达式被执行的次数,如果其次数 > 预设值N,则认为该预警算法表达式被执行的频率很高,则将该预警算法表达式的查询结果存至缓存中,在下一次使用时直接调用该预警算法表达式的查询结果。
【文档编号】G06F17/30GK103927378SQ201410175552
【公开日】2014年7月16日 申请日期:2014年4月29日 优先权日:2014年4月29日
【发明者】翁碧俊, 梅国赠, 戴文清 申请人:厦门市智业软件工程有限公司

最新回复(0)