一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于人工智能的报表生成方法、装置、电子设备及介质与流程

2021-12-01 02:10:00 来源:中国专利 TAG:


1.本发明涉及人工智能技术领域,具体涉及一种基于人工智能的报表生成方法、装置、电子设备及介质。


背景技术:

2.报表可以进行各种数据的处理和统计分析,广泛应用于医疗、管理、统计财经、金融等众多领域,每个报表中的数据来自于不同的数据库和不同的数据表中,现有技术通过依次扫描每个数据库中的每个数据表获取生成报表所需的数据。
3.然而,现有技术获取生成报表所需的数据时,无法获知多个数据库及多个数据表之间的关联关系,需要对每个数据库中的所有数据表都进行扫描,扫描数据量大,获取生成报表所需数据缓慢,导致生成报表的效率低下。
4.因此,有必要提出一种可以快速及准确的生成报表的方法。


技术实现要素:

5.鉴于以上内容,有必要提出一种基于人工智能的报表生成方法、装置、电子设备及介质,通过根据每个类对象的关联表的表关系,查询报表所需数据每个查询字段对应的数据,无需将每个数据库中的所有数据表都查询一遍,提高了的查询效率,进而提高了报表生成效率。
6.本发明的第一方面提供一种基于人工智能的报表生成方法,所述方法包括:
7.解析接收到的报表生成请求,获取报表生成信息,其中,所述报表生成信息中包含有多个查询字段;
8.当侦测到登录界面上录入了用户id时,识别所述用户id的权限等级,并基于所述用户id的权限等级获取预先配置的数据库信息;
9.基于所述预先配置的数据库信息确定配置的数据库的表结构信息,并根据所述表结构信息中的表关系创建多个类对象;
10.针对每个所述类对象,根据所述报表生成信息中的所述多个查询字段查询每个所述类对象的关联表,得到每个所述类对象的目标数据集;
11.基于所述多个类对象的多个目标数据集,生成目标报表。
12.可选地,所述基于所述预先配置的数据库信息确定配置的数据库的表结构信息包括:
13.解析所述配置的数据库信息,获取至少一个数据库名称;
14.依次调用每个所述数据库名称对应的数据库读取指令,响应于每个所述数据库对应的数据库读取指令,读取对应数据库中的表结构信息;
15.遍历执行每个所述数据库的表结构信息的读取,直至完成对所述多个数据库名称对应的多个数据库的表结构信息的读取,并将读取的每个所述数据库名称对应的每个所述数据库的表结构信息,确定为配置的数据库的表结构信息。
16.可选地,所述根据所述报表生成信息中的所述多个查询字段查询每个所述类对象的关联表,得到每个所述类对象的目标数据集包括:
17.从所述报表生成信息中获取所述多个查询字段之间的第一关联关系;
18.根据所述第一关联关系对所述多个查询字段进行归类,得到多类查询字段;
19.当每类所述查询字段中包含有一个查询字段时,依次根据每类所述查询字段中的每个所述查询字段查询每个所述类对象的关联表,直至完成对所述多类查询字段中的多个查询字段的查询,得到多个第一数据,并根据所述多类查询字段之间的第二关联关系对所述多个第一数据进行第一逻辑计算,得到每个所述类对象的目标数据集。
20.可选地,所述方法还包括:
21.当每类所述查询字段中包含有多个查询字段时,依次根据每类所述查询字段中的每个所述查询字段查询每个所述类对象的关联表,直至完成对每类所述查询字段中的多个查询字段的查询,得到多个第二数据;
22.识别每类所述查询字段中的所述多个查询字段之间第三关联关系,并根据每类所述查询字段中的所述多个查询字段之间第三关联关系对所述多个第二数据进行第二逻辑计算,得到每类所述查询字段对应的第三数据;
23.遍历执行上述对每类所述查询字段中的所述多个查询字段的查询及第二逻辑计算,直至完成对所述多类查询字段的查询,得到多个第三数据;
24.根据所述多类查询字段之间的第二关联关系对所述多个第三数据进行第三逻辑计算,得到每个所述类对象的目标数据集。
25.可选地,所述方法还包括:
26.识别每个所述类对象的关联表是否为空;
27.若每个所述类对象的关联表为空,确定每个所述类对象的关联表只包含一个母表;或者
28.若每个所述类对象的关联表不为空,确定每个所述类对象的关联表包含有个至少一个母表和至少一个子表。
29.可选地,所述依次根据每类所述查询字段中的每个所述查询字段查询每个所述类对象的关联表包括:
30.当每个所述类对象的关联表不为空时,确定所述关联表中母表与子表的表关系;
31.基于所述关联表中母表与子表之间的表关系,针对每类所述查询字段中的每个所述查询字段,依次采用预设的查询方法查询每个所述类对象的关联表,直至查询到每个所述查询字段对应的数据,结束对所述关联表的查询。
32.可选地,所述基于所述多个类对象的多个目标数据集,生成目标报表包括:
33.将所述多个目标数据集中的每个数据转换为标准的sql语言,得到sql语言集;
34.采用预设的加密算法对所述sql语言集进行加密处理;
35.对加密处理后的所述sql语言集进行压缩处理,并将压缩处理后的所述sql语言集存储至内存中;
36.根据所述报表生成信息中的模板样式确定接口报文形式;
37.根据所述接口报文形式配置所述模板样式对应的报表模板;
38.解析所述报表模板,确定每个查询字段的位置坐标;
39.根据多个查询字段的位置坐标,通过所述内存将所述压缩处理后的所述sql语言集写入所述报表模板中,生成目标报表。
40.本发明的第二方面提供一种基于人工智能的报表生成装置,所述装置包括:
41.解析模块,用于解析接收到的报表生成请求,获取报表生成信息,其中,所述报表生成信息中包含有多个查询字段;
42.识别模块,用于当侦测到登录界面上录入了用户id时,识别所述用户id的权限等级,并基于所述用户id的权限等级获取预先配置的数据库信息;
43.创建模块,用于基于所述预先配置的数据库信息确定配置的数据库的表结构信息,并根据所述表结构信息中的表关系创建多个类对象;
44.查询模块,用于针对每个所述类对象,根据所述报表生成信息中的所述多个查询字段查询每个所述类对象的关联表,得到每个所述类对象的目标数据集;
45.生成模块,用于基于所述多个类对象的多个目标数据集,生成目标报表。
46.本发明的第三方面提供一种电子设备,所述电子设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的基于人工智能的报表生成方法。
47.本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的基于人工智能的报表生成方法。
48.综上所述,本发明所述的基于人工智能的报表生成方法、装置、电子设备及介质,一方面,通过识别每个所述用户id的权限等级,直接获取预先配置的数据库信息,有效缩减了后续根据查询字段查询的数据库的范围,提高了生成报表所需数据的查询效率及准确率;另一方面,通过将所述表结构信息创建为类对象,将有关联关系的表结构信息进行封装,便于后续进行表单数据的查询,同时调用时易于确定每个数据的来源,辅助运维人员快速确定出每个数据对应的类对象,提高了运维效率;最后,通过根据每个所述类对象的关联表的表关系,查询每个查询字段对应的数据,无需将每个数据库中的所有数据表都查询一遍,提高了报表所需数据的查询效率,进而提高了报表生成效率。
附图说明
49.图1是本发明实施例一提供的基于人工智能的报表生成方法的流程图。
50.图2是本发明实施例二提供的基于人工智能的报表生成装置的结构图。
51.图3是本发明实施例三提供的电子设备的结构示意图。
具体实施方式
52.为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
53.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
54.实施例一
55.图1是本发明实施例一提供的基于人工智能的报表生成方法的流程图。
56.在本实施例中,所述基于人工智能的报表生成方法可以应用于电子设备中,对于需要进行基于人工智能的报表生成的电子设备,可以直接在电子设备上集成本发明的方法所提供的基于人工智能的报表生成的功能,或者以软件开发工具包(software development kit,sdk)的形式运行在电子设备中。
57.本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
58.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习、深度学习等几大方向。
59.如图1所示,所述基于人工智能的报表生成方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。
60.s11,解析接收到的报表生成请求,获取报表生成信息,其中,所述报表生成信息中包含有多个查询字段。
61.本实施例中,报表可以进行各种数据的处理和统计分析,广泛应用于医疗、管理、统计财经、金融等众多领域,用户需要生成报表时,通过客户端发起报表生成请求至服务端,具体地,所述客户端可以是智能手机、ipad或者其他现有智能设备,所述服务端可以为报表生成子系统,在报表生成过程中,如所述客户端可以向报表生成子系统发送报表生成请求,所述报表生成子系统用于接收所述客户端发送的报表生成请求。
62.本实施例中,针对医疗领域,会对药物信息、费用信息、个人健康信息、检查信息、处方信息等数据进行统计分析,生成医疗相关联的各种报表。同时会对生成的各种报表进行安全处理,例如,加密处理,确保了医疗数据的安全性。
63.本实施例中,当所述报表生成子系统接收到所述报表生成请求时,解析所述报表生成请求的报文,得到所述报文所携带的报文信息,从所述报文信息中获取报表生成信息,具体地,所述报文生成信息中包含有多个查询字段、多个查询字段之间的关联关系、模板样式等其他信息。
64.s12,当侦测到登录界面上录入了用户id时,识别所述用户id的权限等级,并基于所述用户id的权限等级获取预先配置的数据库信息。
65.本实施例中,预设的数据库配置信息中包含有数据库名称、数据库调用接口、数据库权限等级、数据库标识码、数据库中表关系等其他与数据库相关的配置信息。
66.在一个可选的实施例中,所述基于所述用户id的权限等级获取预先配置的数据库信息包括:
67.基于所述用户id的权限等级获取调用接口;
68.识别所述调用接口对应的数据库名称,其中,所述数据库名称包含有一个或者多个;
69.根据每个所述数据库名称通过对应的调用接口获取所述用户id的权限等级对应的预先配置的数据库信息。
70.本实施例中,用户id用以唯一识别每个用户的身份信息,不同的用户id配置的数据库信息不同,具体地,所述数据库信息是根据每个用户的权限等级预先设置的,通过识别每个所述用户id的权限等级,直接获取预先配置的数据库信息,有效缩减了后续根据查询字段查询的数据库的范围,提高了生成报表所需数据的查询效率及准确率。
71.本实施例中,若数据库为医疗数据库,则医疗数据库中包含有医疗数据,如个人健康档案、处方、检查报告等数据。
72.所述医疗数据可以为医疗文本,所述医疗文本可以是医疗电子记录(electronic healthcare record),电子化的个人健康记录,包括病历、心电图、医学影像等一系列具备保存备查价值的电子化记录。
73.s13,基于所述预先配置的数据库信息确定配置的数据库的表结构信息,并根据所述表结构信息中的表关系创建多个类对象。
74.本实施例中,表结构信息指的是多个数据库中多个表之间的关联关系,具体的,所述表结构信息包含有表关系,表关系中包含有每个表的表名称、表字段等;类对象是根据表结构信息中的表关系利用python工具自动生成的,具体地,将所述表结构信息输入至所述python工具中,自动执行所述python工具创建多个类对象,其中,所述python工具为现有的创建类工具,具体创建过程本实施例在此不做详述。
75.本实施例中,所述多个类对象是通过现有的python工具自动执行生成的,有效避免人工根据表结构信息创建类对象时,由于表结构信息复杂而导致错误率高的现象,确保了创建的多个类对象的准确率。
76.在一个可选的实施例中,所述基于所述预先配置的数据库信息确定配置的数据库的表结构信息包括:
77.解析所述配置的数据库信息,获取至少一个数据库名称;
78.依次调用每个所述数据库名称对应的数据库读取指令,响应于每个所述数据库对应的数据库读取指令,读取对应数据库中的表结构信息;
79.遍历执行每个所述数据库的表结构信息的读取,直至完成对所述多个数据库名称对应的多个数据库的表结构信息的读取,并将读取的每个所述数据库名称对应的每个所述数据库的表结构信息,确定为配置的数据库的表结构信息。
80.本实施例中,由于配置的数据库信息中可能存在一个或者多个数据库名称,每个数据库名称对应一个数据库,每个数据库对应的数据库读取指令不同,具体地,每个数据库对应的数据库读取指令是根据每个数据库中的数据表的结构确定的,本实施例通过采用对应的数据库读取指令读取所述预先配置的数据库信息中的多个数据库中的多个数据表之间的表结构信息,得到配置的数据库的表结构信息,具有针对性,使得读取的表结构信息更加的精确,进而提高了后续生成的目标报表的准确率和效率。
81.在一个可选的实施例中,在所述基于所述预先配置的数据库信息确定配置的数据库的表结构信息之后,所述方法还包括:
82.提取所述表结构信息中的表结构;将所述表结构存储至预设的哈希表中。
83.本实施例中,由于哈希表可以将数据的存储和查找消耗的时间大大降低,通过将
所述表结构存储至预设的哈希表中,便于后续快速的进行表结构的查询,提高了表结构的查询效率及管理效率。
84.本实施例中,通过将所述表结构信息创建为类对象,将有关联关系的表结构信息进行封装,便于后续进行表单数据的查询,同时调用时易于确定每个数据的来源,辅助运维人员快速确定出每个数据对应的类对象,提高了运维效率。
85.s14,针对每个所述类对象,根据所述报表生成信息中的所述多个查询字段查询每个所述类对象的关联表,得到每个所述类对象的目标数据集。
86.本实施例中,每个所述类对象的关联表指的是每个表中的字段与其他表之间的关联关系。例如,a表中的m,即可以在a表中查询到,还可以在与a表关联的c表中查询到。
87.在一个可选的实施例中,所述根据所述报表生成信息中的所述多个查询字段查询每个所述类对象的关联表,得到每个所述类对象的目标数据集包括:
88.从所述报表生成信息中获取所述多个查询字段之间的第一关联关系;
89.根据所述第一关联关系对所述多个查询字段进行归类,得到多类查询字段;
90.当每类所述查询字段中包含有一个查询字段时,依次根据每类所述查询字段中的每个所述查询字段查询每个所述类对象的关联表,直至完成对所述多类查询字段中的多个查询字段的查询,得到多个第一数据,并根据所述多类查询字段之间的第二关联关系对所述多个第一数据进行第一逻辑计算,得到每个所述类对象的目标数据集。
91.本实施例中,第一关联关系指的是多个查询字段之间的第一层关系,所述多个查询字段之间的第一层关系是用户根据报表需求预先设置的,可以包含有交集关系、并集关系等,所述第一逻辑运算是根据多类查询字段之间的第二关联关系确定的。
92.示例性地,多个查询字段为:五年级、a班、语文成绩、数学成绩,根据所述多个查询字段之间的第一关联关系得到三类查询字段:第一类查询字段为:五年级

a班

语文成绩;第二类查询字段为:五年

数学成绩,所述多类查询字段之间的第二关联关系为对所述多类查询字段对应查询的第一数据进行交集计算。
93.进一步地,所述方法还包括:
94.当每类所述查询字段中包含有多个查询字段时,依次根据每类所述查询字段中的每个所述查询字段查询每个所述类对象的关联表,直至完成对每类所述查询字段中的多个查询字段的查询,得到多个第二数据;
95.识别每类所述查询字段中的所述多个查询字段之间第三关联关系,并根据每类所述查询字段中的所述多个查询字段之间第三关联关系对所述多个第二数据进行第二逻辑计算,得到每类所述查询字段对应的第三数据;
96.遍历执行上述对每类所述查询字段中的所述多个查询字段的查询及第二逻辑计算,直至完成对所述多类查询字段的查询,得到多个第三数据;
97.根据所述多类查询字段之间的第二关联关系对所述多个第三数据进行第三逻辑计算,得到每个所述类对象的目标数据集。
98.本实施例中,所述第三关联关系指的是每类所述查询字段中的多个查询字段之间的第二层关系,具体地,所述第三关联关系包含有并集关系、交集关系等其他关系。
99.在一个可选的实施例中,在所述根据所述报表生成信息中的所述多个查询字段查询每个所述类对象的关联表之前,识别每个所述类对象的关联表是否为空;若每个所述类
对象的关联表为空,确定每个所述类对象的关联表只包含一个母表,若每个所述类对象的关联表不为空,确定每个所述类对象的关联表包含有个至少一个母表和至少一个子表。
100.具体地,所述母表和子表的表关系可以为以下一种或者多种方式组合:一个母表对应一个子表;一个母表对应多个子表;多个母表对应多个子表;多个子表对应多个子表。
101.进一步地,所述依次根据每类所述查询字段中的每个所述查询字段查询每个所述类对象的关联表包括:
102.识别每个所述类对象的关联表是否为空;
103.当每个所述类对象的关联表为空时,依次根据每类所述查询字段中的每个所述查询字段查询每个所述类对象的关联表;或者
104.当每个所述类对象的关联表不为空时,确定所述关联表中母表与子表的表关系;基于所述关联表中母表与子表之间的表关系,针对每类所述查询字段中的每个所述查询字段,依次采用预设的查询方法查询每个所述类对象的关联表,直至查询到每个所述查询字段对应的数据,结束对所述关联表的查询。
105.本实施例中,可以预先设置查询方法,所述预设的查询方法可以为回溯法,所述回溯法将从母表的开始出发,以深度优先的方式搜索整个关联表,直至查询到每个查询字段对应的数据。例如,当母表与子表之间表关系为一对多时,针对每个所述查询字段,判断在所述母表中是否查询到每个所述查询字段对应的数据,当在所述母表中未查询到每个所述查询字段对应的数据时,根据所述母表与子表之间的一对多的表关系继续查找剩余的多个子表,直至查询到每个所述查询字段对应的数据,结束对所述关联表的查询。
106.本实施例中,通过根据每个所述类对象的关联表的表关系,查询每个查询字段对应的数据,无需将每个数据库中的所有数据表都查询一遍,提高了报表所需数据的查询效率,进而提高了报表生成效率。
107.s15,基于所述多个类对象的多个目标数据集,生成目标报表。
108.本实施例中,所述目标报表指的是根据所述报表生成信息中的用户设置的多个查询字段查询数据库后,基于查询到的数据生成的。
109.在一个可选的实施例中,所述基于所述多个类对象的多个目标数据集,生成目标报表包括:
110.根据所述报表生成信息中的模板样式确定接口报文形式;
111.根据所述接口报文形式配置所述模板样式对应的报表模板;
112.解析所述报表模板,确定每个查询字段的位置坐标;
113.根据多个查询字段的位置坐标,将所述多个目标数据集写入所述报表模块中,生成目标报表。
114.本实施例中,报表模板是用户根据自身需求设置的。
115.进一步地,所述将所述多个目标数据集写入所述报表模块中包括:
116.将所述多个目标数据集中的每个数据转换为标准的sql语言,得到sql语言集;
117.采用预设的加密算法对所述sql语言集进行加密处理;
118.对加密处理后的所述sql语言集进行压缩处理,并将压缩处理后的所述sql语言集存储至内存中;
119.通过所述内存中将所述压缩处理后的所述sql语言集写入所述报表模板中,生成
目标报表。
120.进一步地,在生成目标报表之后,所述方法还包括:
121.将所述目标报表导出为csv格式的报表。
122.本实施例中,可以将所述目标报表转换的纯文本文件格式的报表,即csv格式的报表,由于csv为纯文本文件,便于后续更易于导入到电子表格或者数据库中存储,提高了报表的使用效率。
123.本实施例中,由于标准的sql语言的可读性强,通过将所述多个目标数据集中的每个数据转换为标准的sql语言,提高了后续将所述sql语言集写入所述报表模板中的效率,进而提高了报表的生成效率,同时,对所述sql语言集进行加密处理,提高了报表中数据的安全性,及对所述sql语言集进行压缩处理,节约了内存空间,确保了服务端的运行速度,提高了sql语言集的写入效率,进而提高了报表的生成效率。
124.综上所述,本实施例所述的基于人工智能的报表生成方法,一方面,通过识别每个所述用户id的权限等级,直接获取预先配置的数据库信息,有效缩减了后续根据查询字段查询的数据库的范围,提高了生成报表所需数据的查询效率及准确率;另一方面,通过将所述表结构信息创建为类对象,将有关联关系的表结构信息进行封装,便于后续进行表单数据的查询,同时调用时易于确定每个数据的来源,辅助运维人员快速确定出每个数据对应的类对象,提高了运维效率;最后,通过根据每个所述类对象的关联表的表关系,查询每个查询字段对应的数据,无需将每个数据库中的所有数据表都查询一遍,提高了报表所需数据的查询效率,进而提高了报表生成效率。
125.实施例二
126.图2是本发明实施例二提供的基于人工智能的报表生成装置的结构图。
127.在一些实施例中,所述基于人工智能的报表生成装置20可以包括多个由程序代码段所组成的功能模块。所述基于人工智能的报表生成装置20中的各个程序段的程序代码可以存储于电子设备的存储器中,并由所述至少一个处理器所执行,以执行(详见图1描述)基于人工智能的报表生成的功能。
128.本实施例中,所述基于人工智能的报表生成装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:解析模块201、识别模块202、创建模块203、查询模块204及生成模块205。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机可读指令段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
129.解析模块201,用于解析接收到的报表生成请求,获取报表生成信息,其中,所述报表生成信息中包含有多个查询字段。
130.本实施例中,报表可以进行各种数据的处理和统计分析,广泛应用于管理、统计财经、金融等众多领域,用户需要生成报表时,通过客户端发起报表生成请求至服务端,具体地,所述客户端可以是智能手机、ipad或者其他现有智能设备,所述服务端可以为报表生成子系统,在报表生成过程中,如所述客户端可以向报表生成子系统发送报表生成请求,所述报表生成子系统用于接收所述客户端发送的报表生成请求。
131.本实施例中,针对医疗领域,会对药物信息、费用信息、个人健康信息、检查信息、处方信息等数据进行统计分析,生成医疗相关联的各种报表。同时会对生成的各种报表进
行安全处理,例如,加密处理,确保了医疗数据的安全性。
132.本实施例中,当所述报表生成子系统接收到所述报表生成请求时,解析所述报表生成请求的报文,得到所述报文所携带的报文信息,从所述报文信息中获取报表生成信息,具体地,所述报文生成信息中包含有多个查询字段、多个查询字段之间的关联关系、模板样式等其他信息。
133.识别模块202,用于当侦测到登录界面上录入了用户id时,识别所述用户id的权限等级,并基于所述用户id的权限等级获取预先配置的数据库信息。
134.本实施例中,预设的数据库配置信息中包含有数据库名称、数据库调用接口、数据库权限等级、数据库标识码、数据库中表关系等其他与数据库相关的配置信息。
135.在一个可选的实施例中,所述识别模块202基于所述用户id的权限等级获取预先配置的数据库信息包括:
136.基于所述用户id的权限等级获取调用接口;
137.识别所述调用接口对应的数据库名称,其中,所述数据库名称包含有一个或者多个;
138.根据每个所述数据库名称通过对应的调用接口获取所述用户id的权限等级对应的预先配置的数据库信息。
139.本实施例中,用户id用以唯一识别每个用户的身份信息,不同的用户id配置的数据库信息不同,具体地,所述数据库信息是根据每个用户的权限等级预先设置的,通过识别每个所述用户id的权限等级,直接获取预先配置的数据库信息,有效缩减了后续根据查询字段查询的数据库的范围,提高了生成报表所需数据的查询效率及准确率。
140.本实施例中,若数据库为医疗数据库,则医疗数据库中包含有医疗数据,如个人健康档案、处方、检查报告等数据。
141.所述医疗数据可以为医疗文本,所述医疗文本可以是医疗电子记录(electronic healthcare record),电子化的个人健康记录,包括病历、心电图、医学影像等一系列具备保存备查价值的电子化记录。
142.创建模块203,用于基于所述预先配置的数据库信息确定配置的数据库的表结构信息,并根据所述表结构信息中的表关系创建多个类对象。
143.本实施例中,表结构信息指的是多个数据库中多个表之间的关联关系,具体的,所述表结构信息包含有表关系,表关系中包含有每个表的表名称、表字段等;类对象是根据表结构信息中的表关系利用python工具自动生成的,具体地,将所述表结构信息输入至所述python工具中,自动执行所述python工具创建多个类对象,其中,所述python工具为现有的创建类工具,具体创建过程本实施例在此不做详述。
144.本实施例中,所述多个类对象是通过现有的python工具自动执行生成的,有效避免人工根据表结构信息创建类对象时,由于表结构信息复杂而导致错误率高的现象,确保了创建的多个类对象的准确率。
145.在一个可选的实施例中,所述创建模块203基于所述预先配置的数据库信息确定配置的数据库的表结构信息包括:
146.解析所述配置的数据库信息,获取至少一个数据库名称;
147.依次调用每个所述数据库名称对应的数据库读取指令,响应于每个所述数据库对
应的数据库读取指令,读取对应数据库中的表结构信息;
148.遍历执行每个所述数据库的表结构信息的读取,直至完成对所述多个数据库名称对应的多个数据库的表结构信息的读取,并将读取的每个所述数据库名称对应的每个所述数据库的表结构信息,确定为配置的数据库的表结构信息。
149.本实施例中,由于配置的数据库信息中可能存在一个或者多个数据库名称,每个数据库名称对应一个数据库,每个数据库对应的数据库读取指令不同,具体地,每个数据库对应的数据库读取指令是根据每个数据库中的数据表的结构确定的,本实施例通过采用对应的数据库读取指令读取所述预先配置的数据库信息中的多个数据库中的多个数据表之间的表结构信息,得到配置的数据库的表结构信息,具有针对性,使得读取的表结构信息更加的精确,进而提高了后续生成的目标报表的准确率和效率。
150.在一个可选的实施例中,在所述基于所述预先配置的数据库信息确定配置的数据库的表结构信息之后,提取所述表结构信息中的表结构;将所述表结构存储至预设的哈希表中。
151.本实施例中,由于哈希表可以将数据的存储和查找消耗的时间大大降低,通过将所述表结构存储至预设的哈希表中,便于后续快速的进行表结构的查询,提高了表结构的查询效率及管理效率。
152.本实施例中,通过将所述表结构信息创建为类对象,将有关联关系的表结构信息进行封装,便于后续进行表单数据的查询,同时调用时易于确定每个数据的来源,辅助运维人员快速确定出每个数据对应的类对象,提高了运维效率。
153.查询模块204,用于针对每个所述类对象,根据所述报表生成信息中的所述多个查询字段查询每个所述类对象的关联表,得到每个所述类对象的目标数据集。
154.本实施例中,每个所述类对象的关联表指的是每个表中的字段与其他表之间的关联关系。例如,a表中的m,即可以在a表中查询到,还可以在与a表关联的c表中查询到。
155.在一个可选的实施例中,所述查询模块204根据所述报表生成信息中的所述多个查询字段查询每个所述类对象的关联表,得到每个所述类对象的目标数据集包括:
156.从所述报表生成信息中获取所述多个查询字段之间的第一关联关系;
157.根据所述第一关联关系对所述多个查询字段进行归类,得到多类查询字段;
158.当每类所述查询字段中包含有一个查询字段时,依次根据每类所述查询字段中的每个所述查询字段查询每个所述类对象的关联表,直至完成对所述多类查询字段中的多个查询字段的查询,得到多个第一数据,并根据所述多类查询字段之间的第二关联关系对所述多个第一数据进行第一逻辑计算,得到每个所述类对象的目标数据集。
159.本实施例中,第一关联关系指的是多个查询字段之间的第一层关系,所述多个查询字段之间的第一层关系是用户根据报表需求预先设置的,可以包含有交集关系、并集关系等,所述第一逻辑运算是根据多类查询字段之间的第二关联关系确定的。
160.示例性地,多个查询字段为:五年级、a班、语文成绩、数学成绩,根据所述多个查询字段之间的第一关联关系得到三类查询字段:第一类查询字段为:五年级

a班

语文成绩;第二类查询字段为:五年

数学成绩,所述多类查询字段之间的第二关联关系为对所述多类查询字段对应查询的第一数据进行交集计算。
161.进一步地,当每类所述查询字段中包含有多个查询字段时,依次根据每类所述查
询字段中的每个所述查询字段查询每个所述类对象的关联表,直至完成对每类所述查询字段中的多个查询字段的查询,得到多个第二数据;识别每类所述查询字段中的所述多个查询字段之间第三关联关系,并根据每类所述查询字段中的所述多个查询字段之间第三关联关系对所述多个第二数据进行第二逻辑计算,得到每类所述查询字段对应的第三数据;遍历执行上述对每类所述查询字段中的所述多个查询字段的查询及第二逻辑计算,直至完成对所述多类查询字段的查询,得到多个第三数据;根据所述多类查询字段之间的第二关联关系对所述多个第三数据进行第三逻辑计算,得到每个所述类对象的目标数据集。
162.本实施例中,所述第三关联关系指的是每类所述查询字段中的多个查询字段之间的第二层关系,具体地,所述第三关联关系包含有并集关系、交集关系等其他关系。
163.在一个可选的实施例中,在所述根据所述报表生成信息中的所述多个查询字段查询每个所述类对象的关联表之前,识别每个所述类对象的关联表是否为空;若每个所述类对象的关联表为空,确定每个所述类对象的关联表只包含一个母表,若每个所述类对象的关联表不为空,确定每个所述类对象的关联表包含有个至少一个母表和至少一个子表。
164.具体地,所述母表和子表的表关系可以为以下一种或者多种方式组合:一个母表对应一个子表;一个母表对应多个子表;多个母表对应多个子表;多个子表对应多个子表。
165.进一步地,所述依次根据每类所述查询字段中的每个所述查询字段查询每个所述类对象的关联表包括:
166.识别每个所述类对象的关联表是否为空;
167.当每个所述类对象的关联表为空时,依次根据每类所述查询字段中的每个所述查询字段查询每个所述类对象的关联表;或者
168.当每个所述类对象的关联表不为空时,确定所述关联表中母表与子表的表关系;基于所述关联表中母表与子表之间的表关系,针对每类所述查询字段中的每个所述查询字段,依次采用预设的查询方法查询每个所述类对象的关联表,直至查询到每个所述查询字段对应的数据,结束对所述关联表的查询。
169.本实施例中,可以预先设置查询方法,所述预设的查询方法可以为回溯法,所述回溯法将从母表的开始出发,以深度优先的方式搜索整个关联表,直至查询到每个查询字段对应的数据。例如,当母表与子表之间表关系为一对多时,针对每个所述查询字段,判断在所述母表中是否查询到每个所述查询字段对应的数据,当在所述母表中未查询到每个所述查询字段对应的数据时,根据所述母表与子表之间的一对多的表关系继续查找剩余的多个子表,直至查询到每个所述查询字段对应的数据,结束对所述关联表的查询。
170.本实施例中,通过根据每个所述类对象的关联表的表关系,查询每个查询字段对应的数据,无需将每个数据库中的所有数据表都查询一遍,提高了报表所需数据的查询效率,进而提高了报表生成效率。
171.生成模块205,用于基于所述多个类对象的多个目标数据集,生成目标报表。
172.本实施例中,所述目标报表指的是根据所述报表生成信息中的用户设置的多个查询字段查询数据库后,基于查询到的数据生成的。
173.在一个可选的实施例中,所述生成模块205基于所述多个类对象的多个目标数据集,生成目标报表包括:
174.根据所述报表生成信息中的模板样式确定接口报文形式;
175.根据所述接口报文形式配置所述模板样式对应的报表模板;
176.解析所述报表模板,确定每个查询字段的位置坐标;
177.根据多个查询字段的位置坐标,将所述多个目标数据集写入所述报表模块中,生成目标报表。
178.本实施例中,报表模板是用户根据自身需求设置的。
179.进一步地,所述将所述多个目标数据集写入所述报表模块中包括:
180.将所述多个目标数据集中的每个数据转换为标准的sql语言,得到sql语言集;
181.采用预设的加密算法对所述sql语言集进行加密处理;
182.对加密处理后的所述sql语言集进行压缩处理,并将压缩处理后的所述sql语言集存储至内存中;
183.通过所述内存中将所述压缩处理后的所述sql语言集写入所述报表模板中,生成目标报表。
184.进一步地,在生成目标报表之后,将所述目标报表导出为csv格式的报表。
185.本实施例中,可以将所述目标报表转换的纯文本文件格式的报表,即csv格式的报表,由于csv为纯文本文件,便于后续更易于导入到电子表格或者数据库中存储,提高了报表的使用效率。
186.本实施例中,由于标准的sql语言的可读性强,通过将所述多个目标数据集中的每个数据转换为标准的sql语言,提高了后续将所述sql语言集写入所述报表模板中的效率,进而提高了报表的生成效率,同时,对所述sql语言集进行加密处理,提高了报表中数据的安全性,及对所述sql语言集进行压缩处理,节约了内存空间,确保了服务端的运行速度,提高了sql语言集的写入效率,进而提高了报表的生成效率。
187.综上所述,本实施例所述的基于人工智能的报表生成装置,一方面,通过识别每个所述用户id的权限等级,直接获取预先配置的数据库信息,有效缩减了后续根据查询字段查询的数据库的范围,提高了生成报表所需数据的查询效率及准确率;另一方面,通过将所述表结构信息创建为类对象,将有关联关系的表结构信息进行封装,便于后续进行表单数据的查询,同时调用时易于确定每个数据的来源,辅助运维人员快速确定出每个数据对应的类对象,提高了运维效率;最后,通过根据每个所述类对象的关联表的表关系,查询每个查询字段对应的数据,无需将每个数据库中的所有数据表都查询一遍,提高了报表所需数据的查询效率,进而提高了报表生成效率。
188.实施例三
189.参阅图3所示,为本发明实施例三提供的电子设备的结构示意图。在本发明较佳实施例中,所述电子设备3包括存储器31、至少一个处理器32、至少一条通信总线33及收发器34。
190.本领域技术人员应该了解,图3示出的电子设备的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述电子设备3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。
191.在一些实施例中,所述电子设备3是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述电子设备3还可包括客户设备,所述客户设
备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。
192.需要说明的是,所述电子设备3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
193.在一些实施例中,所述存储器31用于存储程序代码和各种数据,例如安装在所述电子设备3中的基于人工智能的报表生成装置20,并在电子设备3的运行过程中实现高速、自动地完成程序或数据的存取。所述存储器31包括只读存储器(read

only memory,rom)、可编程只读存储器(programmable read

only memory,prom)、可擦除可编程只读存储器(erasable programmable read

only memory,eprom)、一次可编程只读存储器(one

time programmable read

only memory,otprom)、电子擦除式可复写只读存储器(electrically

erasable programmable read

only memory,eeprom)、只读光盘(compact disc read

only memory,cd

rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
194.在一些实施例中,所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(central processing unit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述至少一个处理器32是所述电子设备3的控制核心(control unit),利用各种接口和线路连接整个电子设备3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行电子设备3的各种功能和处理数据。
195.在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。
196.尽管未示出,所述电子设备3还可以包括给各个部件供电的电源(比如电池),可选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备3还可以包括多种传感器、蓝牙模块、wi

fi模块等,在此不再赘述。
197.应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
198.上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。
199.在进一步的实施例中,结合图2,所述至少一个处理器32可执行所述电子设备3的操作装置以及安装的各类应用程序(如所述的基于人工智能的报表生成装置20)、程序代码等,例如,上述的各个模块。
200.所述存储器31中存储有程序代码,且所述至少一个处理器32可调用所述存储器31中存储的程序代码以执行相关的功能。例如,图2中所述的各个模块是存储在所述存储器31中的程序代码,并由所述至少一个处理器32所执行,从而实现所述各个模块的功能以达到基于人工智能的报表生成的目的。
201.示例性的,所述程序代码可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器31中,并由所述处理器32执行,以完成本技术。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述程序代码在所述电子设备3中的执行过程。例如,所述程序代码可以被分割成解析模块201、识别模块202、创建模块203、查询模块204及生成模块205。
202.在本发明的一个实施例中,所述存储器31存储多个计算机可读指令,所述多个计算机可读指令被所述至少一个处理器32所执行以实现基于人工智能的报表生成的功能。
203.具体地,所述至少一个处理器32对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
204.在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
205.所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
206.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
207.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。本发明中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
208.最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献