掌桥专利:专业的专利平台
掌桥专利
首页

一种基于指标维度矩阵的动态报表生成方法及系统

文献发布时间:2024-04-18 20:02:18


一种基于指标维度矩阵的动态报表生成方法及系统

技术领域

本发明涉及数据统计分析技术领域,具体而言,涉及一种基于指标维度矩阵的动态报表生成方法及系统。

背景技术

影像数据是医疗检查中的重要的组成部分,将区域内医院的医疗影像数据进行集中存储后,可以通过对影像数据的统计分析出当前医院的运行强度、医疗设备使用情况、区域内居民的健康情况等信息。

要让上述信息可视化,在生成数据报表时,首先需要指定需要展示的维度内容,如医院、检查方式等,然后在维度上指定指标,如影像数量、有效调用数量等。在进行指标选择时,备选的指标库必然要求与维度有对应关系。在进行对应关系的筛选时,现有技术中,一般采用数据库关联查询的方式;但现有的方式对数据库的性能压力大,容易造成I/O瓶颈,不易扩展。

发明内容

为了克服上述问题或者至少部分地解决上述问题,本发明提供一种基于指标维度矩阵的动态报表生成方法及系统,通过矩阵合并的方式可便利的将选定的多个指标的值进行归并,从而直接得到最终的数据报表内容,在有矩阵运算支撑的系统中,可以有效降低系统压力,提高运算速度,为动态报表生成提供了有力支撑。

为解决上述技术问题,本发明采用的技术方案为:

第一方面,本发明提供一种基于指标维度矩阵的动态报表生成方法,包括以下步骤:

设定并存储指标和维度的对应关系;

任意选定报表所需维度;

筛选与所需维度对应的数据指标;

计算筛选得到的数据指标,以得到多个指标矩阵;

合并多个指标矩阵,以得到最终的数据报表。

本方法对于数据报表中给定的统计维度,通过动态计算获取其所对应的指标,并经过数据合并生成最终的数据报表。本发明通过矩阵合并的方式可便利的将选定的多个指标的值进行归并,从而直接得到最终的数据报表内容,在有矩阵运算支撑的系统中,可以有效降低系统压力,提高运算速度,为动态报表生成提供了有力支撑。本发明通过在内存中进行矩阵计算的方式,可以充分利用内存和CPU资源进行计算,大大提高了计算效率。

基于第一方面,进一步地,上述筛选与所需维度对应的数据指标的方法包括以下步骤:

获取所有维度列表id和所有指标列表id,构建对应的维度列向量和指标行向量;

将维度列向量和指标行向量进行乘积运算,以得到对应的矩阵DI;

根据所需维度,对矩阵DI进行对应的行运算,以得到对应的数据指标。

基于第一方面,进一步地,上述根据所需维度,对矩阵DI进行对应的行运算,以得到对应的数据指标的方法包括以下步骤:

根据所需维度构建对应的维度行矩阵;

将矩阵DI中对应的行向量与对应的维度行矩阵进行减法运算,以得到新的矩阵D12;

将矩阵D12中所有的值与0做异或运算,以得到对应的01矩阵;

将01矩阵做行相加运算,以得到行向量d;

根据行向量d筛选得到对应的数据指标。

基于第一方面,进一步地,上述根据行向量d筛选得到对应的数据指标的方法包括以下步骤:

选取行向量d中数值与所需维度数量相同的列对应的指标,作为最终的数据指标。

基于第一方面,进一步地,该基于指标维度矩阵的动态报表生成方法还包括以下步骤:

所述的维度行矩阵按行累加计数,判断是否有符合指标累加计数与维度个数相等的条件的指标,若是,则计算筛选得到的数据指标;若否,则结束。

基于第一方面,进一步地,上述计算筛选得到的数据指标的方法包括以下步骤:

基于筛选得到的数据指标得到指标结果矩阵,去除数据指标中所需维度之外的列,将各个数据指标中所需维度相同的行进行合并,以得到对应的指标数值矩阵。

基于第一方面,进一步地,上述将各个数据指标中所需维度相同的行进行合并的方法包括:合并指标结果矩阵与指标数值矩阵,得到报表数值矩阵。

基于第一方面,进一步地,包括:采用关系型数据库存储指标和维度的对应关系。

基于第一方面,进一步地,上述指标和维度的对应关系为多对多。

基于第一方面,进一步地,上述指标的id和维度的id均为数值型。

第二方面,本发明提供一种基于指标维度矩阵的动态报表生成方法系统,包括存储模块、维度选定模块、指标筛选模块、指标计算模块以及矩阵合并模块,其中:

存储模块,用于设定并存储指标和维度的对应关系;

维度选定模块,用于任意选定报表所需维度;

指标筛选模块,用于筛选与所需维度对应的数据指标;

指标计算模块,用于计算筛选得到的数据指标,以得到多个指标矩阵;

矩阵合并模块,用于合并多个指标矩阵,以得到最终的数据报表。

本系统通过存储模块、维度选定模块、指标筛选模块、指标计算模块以及矩阵合并模块的配合,通过矩阵合并的方式可便利的将选定的多个指标的值进行归并,从而直接得到最终的数据报表内容,在有矩阵运算支撑的系统中,可以有效降低系统压力,提高运算速度,为动态报表生成提供了有力支撑。

第三方面,本申请提供一种电子设备,其包括存储器,用于存储一个或多个程序;处理器;当一个或多个程序被处理器执行时,实现如上述第一方面中任一项的方法。

第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一项的方法。

本发明至少具有如下优点或有益效果:

1、对于数据报表中给定的统计维度,通过动态计算获取其所对应的指标,并经过数据合并生成最终的数据报表;

2、通过在内存中进行矩阵计算的方式,可以充分利用内存和CPU资源进行计算,提高了计算效率,增强了系统的可移植性;

3、通过矩阵运算完成了动态构建报表的两个关键步骤:筛选符合报表维度要求的数据指标和合并多指标值到数据报表中,大大提高计算效率和效果;

4、在有矩阵运算支撑的系统中,可以有效降低系统压力,提高运算速度,为动态报表生成提供了有力支撑。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例一种基于指标维度矩阵的动态报表生成方法的流程图;

图2为本发明实施例一种基于指标维度矩阵的动态报表生成方法的具体流程图;

图3为本发明实施例一种基于指标维度矩阵的动态报表生成系统的原理框图;

图4为本发明实施例提供的一种电子设备的结构框图。

附图标记说明:100、存储模块;200、维度选定模块;300、指标筛选模块;400、指标计算模块;500、矩阵合并模块;101、存储器;102、处理器;103、通信接口。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

在本发明实施例的描述中,“多个”代表至少2个。

实施例:

如图1-图2所示,第一方面,本发明实施例提供一种基于指标维度矩阵的动态报表生成方法,包括以下步骤:

S1、设定并存储指标和维度的对应关系;上述指标和维度的对应关系为多对多;上述指标的id和维度的id以数值型作为优选的类型,但是不限于数值型。

进一步地,采用关系型数据库存储指标和维度的对应关系。

在本发明的一些实施例中,使用关系型数据库存储指标与维度的对应关系,数据模型设计为如下表1所示:

表1:

S2、任意选定报表所需维度;根据报表需要展示的内容,可以通过智能算法匹配报表所需展示的维度,可根据登入账号不同身份推荐选择维度,比如医院的领导登入和医生登入会推荐同的维度,也可以根据常用维度和对应的数据报表的结果做提示,让登入者可以参考做出选择,同时也会根据推荐维度的不同数据做数据报表的对比,能够更直观显示数据报表的内容。也可以通过手动指定报表所需展示的维度,根据不同的需求做灵活的调整。以医院检查数据为例,可以选择医院、检查日期作为报表维度,统计某个日期指定医院的各种检查数量数据。

S3、筛选与所需维度对应的数据指标;

进一步地,包括:获取所有维度列表id和所有指标列表id,构建对应的维度列向量和指标行向量;将维度列向量和指标行向量进行乘积运算,以得到对应的矩阵DI;根据所需维度,对矩阵DI进行对应的行运算,以得到对应的数据指标。

进一步地,包括:根据所需维度构建对应的维度行矩阵;将矩阵DI中对应的行向量与对应的维度行矩阵进行减法运算,以得到新的矩阵D12;将矩阵D12中所有的值与0做异或运算,以得到对应的01矩阵;将01矩阵做行相加运算,以得到行向量d;根据行向量d筛选得到对应的数据指标。

进一步地,包括:选取行向量d中数值与所需维度数量相同的列对应的指标,作为最终的数据指标。

在本发明的一些实施例中,筛选与所需维度对应的数据指标的方法具体如下:

获取所有维度列表id,转换为一个列向量D,即[dim1,dim2,……,dimM]T;获取所有的指标列表id,转换为一个行向量I,即[indicator1,indicator2,……,indicatorN]。

将D与I进行乘积运算,运算规则为:若维度id和指标id有对应关系,则运算结果为向量D中的值,否则为0。计算完成之后是一个M*N的矩阵,记为DI,假设该矩阵为:

假设选定的维度为dim1和dim2,则可通过以下方法进行计算筛选:

构建两个1*N的矩阵,分别用dim1和dim2进行填充,记为D1和D2,形式如下:

[dim1 dim1 dim1 dim1 dim1][dim2 dim2 dim2 dim2 dim2]

将矩阵DI的第一行与D1相减,第二行与D2相减,截取DI的前两行,得到矩阵D12:

将D12中所有的值与0做异或运算,可得到新的矩阵D12:

将D12做行相加,得到行向量d:

1 2 1 2 0

在行向量d中,数值与选定维度数量相同的列对应的指标即为均包含dim1,dim2两个维度的指标,记为indicator2和indicator4。

S4、计算筛选得到的数据指标,以得到多个指标矩阵;

进一步地,在计算数据指标之前,还包括以下步骤:所述的维度行矩阵按行累加计数,判断是否有符合指标累加计数与维度个数相等的条件的指标,若是,则计算筛选得到的数据指标;若否,则结束。

进一步地,包括:基于筛选得到的数据指标得到指标结果矩阵,去除数据指标中所需维度之外的列,将各个数据指标中所需维度相同的行进行合并,以得到对应的指标数值矩阵。

在本发明的一些实施例中,计算上述步骤中筛选出的数据指标,可得到指标结果矩阵(以indicator2为例):

去除除dim1、dim2之外的列,合并dim1和dim2都相同的行,可得:

同理可得indicator4的指标数值矩阵:

S5、合并多个指标矩阵,以得到最终的数据报表。

合并上述步骤中得到的数值矩阵,可得:

上述矩阵即为所需要的数据报表。

上述矩阵合并就是把矩阵中的维度列提取出来,把指标列依次附加到后面。在上述S1-S4步骤处理之后,所有矩阵的维度列都是相同的;所以合并两个矩阵,就是将两个指标列加在后面;合并多个矩阵,就是将多个指标列附加在后面。示例如下:

若设定了多个指标,则可得到多个指标数值矩阵:

……

合并多个矩阵,可得:

该矩阵即为所需要的数据报表。

本方法对于数据报表中给定的统计维度,通过动态计算获取其所对应的指标,并经过数据合并生成最终的数据报表。本发明通过在内存中进行矩阵计算的方式,提高了计算效率,可以充分利用内存和CPU资源进行计算。本发明通过矩阵合并的方式可便利的将选定的多个指标的值进行归并,从而直接得到最终的数据报表内容,在有矩阵运算支撑的系统中,可以有效降低系统压力,提高运算速度,为动态报表生成提供了有力支撑。

如图3所示,第二方面,本发明实施例提供一种基于指标维度矩阵的动态报表生成方法系统,包括存储模块100、维度选定模块200、指标筛选模块300、指标计算模块400以及矩阵合并模块500,其中:

存储模块100,用于设定并存储指标和维度的对应关系;

维度选定模块200,用于任意选定报表所需维度;

指标筛选模块300,用于筛选与所需维度对应的数据指标;

指标计算模块400,用于计算筛选得到的数据指标,以得到多个指标矩阵;

矩阵合并模块500,用于合并多个指标矩阵,以得到最终的数据报表。

本系统通过存储模块100、维度选定模块200、指标筛选模块300、指标计算模块400以及矩阵合并模块500等多个模块的配合,通过矩阵合并的方式可便利的将选定的多个指标的值进行归并,从而直接得到最终的数据报表内容。本发明通过在内存中进行矩阵计算的方式,可以充分利用内存和CPU资源进行计算,大大提高了计算效率。在有矩阵运算支撑的系统中,可以有效降低系统压力,提高运算速度,为动态报表生成提供了有力支撑。

如图4所示,第三方面,本申请实施例提供一种电子设备,其包括存储器101,用于存储一个或多个程序;处理器102。当一个或多个程序被处理器102执行时,实现如上述第一方面中任一项的方法。

还包括通信接口103,该存储器101、处理器102和通信接口103相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器101可用于存储软件程序及模块,处理器102通过执行存储在存储器101内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口103可用于与其他节点设备进行信令或数据的通信。

其中,存储器101可以是但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。

处理器102可以是一种集成电路芯片,具有信号处理能力。该处理器102可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本申请所提供的实施例中,应该理解到,所揭露的方法及系统,也可以通过其它的方式实现。以上所描述的方法及系统实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的方法及系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器102执行时实现如上述第一方面中任一项的方法。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

技术分类

06120116576574