基于混合云数据聚合的方法、系统、设备及存储介质与流程

文档序号:17320551发布日期:2019-04-05 21:31阅读:184来源:国知局
基于混合云数据聚合的方法、系统、设备及存储介质与流程

本发明涉及数据聚合领域,具体地说,涉及基于混合云数据聚合的方法、系统、设备及存储介质。



背景技术:

在现代医疗信息技术与病种诊疗信息分析中,为了达到全面与精确分析病因的目的,对于同一病种,需要分析不同医疗环境下的患者诊疗数据,有的分析研究还要求患者数据量要达到一定的规模,从而通过大量的患者数据来分析得到更有效的病种诊疗路径与治疗方法。然而很多时候,在某一家医院中,曾经患过某种疾病并且满足某些特定条件(如:用药为‘二甲双胍’、性别为‘男性’等)的患者数量往往是有限的。因此从多家医院检索(获取或统计)满足特定条件的“患者诊疗数据”势在必行。

传统的技术在检索多家私有云端医院患者诊疗数据(以下简称“数据”)时,一般都是由算法工程师根据一定的检索条件一一去每家私有云端医院运行事先写好的“取数”程序,程序运行完,就得到了满足条件的数据。再将得到的数据导入到excel等文本文件,然后由相应的数据工程师将检索得到的多家私有云端医院数据合并得到最终数据,这其中,缺乏一个充当聚合多家私有云端医院数据的“公有云端”平台。

每家私有云端有一个数据检索平台,数据工程师登录到各私有云端平台跑出数据,下载到文本文件然后通过另外的“聚合”程序将多家私有云端数据进行聚合分析。

传统的多私有云端数据检索技术,是非智能的。不但所需人力成本大,且在“聚合”多家私有云端医院数据时极易出错。它的缺点非常明显:a).得到数据的整个过程耗时较长,特别是在查询条件复杂,数据聚合指标较多的情况下,检索数据会耗费大量时间,并且算法工程师首先需要登录到每家私有云端服务器去执行“数据检索程序”,等检索完所有私有云端数据,还需要把多家私有云端的数据再“聚合”一遍。整个流程走完需要花费大量的时间。如果此类需求增多,公司无疑需要投入更多的人力去重复做相同的一件事;b).无界面化,造成检索出来的数据存在问题,也不容易发现。即便每家私有云端都有展示数据检索结果页,但在数据“聚合”那一步也是挺耗时耗人力的;

当检索条件或者检索指标改变时(比如:原来检索了患高血压的男性数据,现在又需要患高血压的女性数据。又比如,原来检索得到的数据中没有“年龄”这一项,需求临时改变,需要查看到患者的年龄,便于分析患高血压的年龄分布及治疗效果与年龄之间的关系),数据工程师需要重新写程序代码并去每家私有云端医院服务器上重新执行数据检索程序,即将(1)中的步骤重新走一遍。如果需求反复修改几次,而且数据又需要尽快得到。重复地做这种耗时长的事情,恐怕大大增加了程序开发的成本。



技术实现要素:

针对现有技术中的问题,本发明的目的在于提供基于混合云数据聚合的方法、系统、设备及存储介质,能够让基于多家私有云端医院数据的检索与聚合变得更快更准确。

本发明的实施例提供一种基于混合云数据聚合的方法,应用于连接多个私有云端的公有云端,包括以下步骤:

所述公有云端接收检索指令,所述检索指令包括待检索医院的私有云端、数据检索条件以及数据聚合指标;

所述公有云端根据所述检索指令向待检索医院的私有云端发送所述数据检索条件;

所述公有云端接收私有云端根据所述数据检索条件执行数据检索,获得的检索结果;以及所述公有云端根据所述数据聚合指标对所有私有云端反馈的检索结果执行数据聚合操作。

优选地,所述公有云端根据所述待检索医院的私有云端的数量建立多道线程,每一道线程只针对一所述私有云端发送所述数据检索条件和接收所述私有云端反馈的检索结果。

优选地,所述公有云端并行发送所述数据检索条件所述私有云端,并且并行接收所述私有云端反馈的检索结果。

优选地,所述公有云端还建立至少一数据聚合线程,当所述公有云端接收到所有所述私有云端反馈的检索结果后,所述数据聚合线程根据所述数据聚合指标对所有私有云端反馈的检索结果执行数据聚合操作。

优选地,所述公有云端间歇性发送数据获取指令到所述私有云端,并将所述私有云端反馈的检索结果储存于分布式数据库。

优选地,所述公有云端发送数据获取指令到所述私有云端的间隔为每5秒一次。

优选地,所述私有云端将检索结果储存在该私有云端的分布式数据库中;所述公有云端将接收到的所有所述私有云端的检索结果储存储存在该公有云端的分布式数据库中。

本发明的实施例还提供一种基于混合云数据聚合的系统,包括公有云端和多个私有云端,所述公有云端执行如上述方法。

本发明的实施例还提供一种公有云端,包括:

检索指令接收模块,用于模块检索指令,所述检索指令包括待检索医院的私有云端、数据检索条件以及数据聚合指标;

数据检索条件发送模块,用于根据所述检索指令向待检索医院的私有云端发送所述数据检索条件;

检索结果接收模块,用于接收私有云端根据所述数据检索条件执行数据检索,获得的检索结果;以及

聚合模块,用于根据所述数据聚合指标对所有私有云端反馈的检索结果执行数据聚合操作。

本发明的实施例还提供一种基于混合云数据聚合的设备,包括:

处理器;

存储器,其中存储有所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行上述基于混合云数据聚合的方法的步骤。

本发明的实施例还提供一种计算机可读存储介质,用于存储计算机程序,所述计算机程序被处理器执行时实现上述基于混合云数据聚合的方法的步骤。

本发明的目的在于提供基于混合云数据聚合的方法、系统、设备及存储介质能够让基于多家私有云端医院数据的检索与聚合变得更快更准确,当数据检索条件变得复杂或者数据检索需求增多时,依然可以实现各个检索快速、准确、有序地进行;并且在检索指标变更时,不用修改源程序代码就能快速跑出精确的患者诊疗数据。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。

图1是本发明的基于混合云数据聚合的方法的流程图。

图2是实施本发明的基于混合云数据聚合的方法的示意图。

图3是本发明的公有云端的模块示意图。

图4是本发明的基于混合云数据聚合的设备的结构示意图。以及

图5是本发明一实施例的计算机可读存储介质的结构示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式。相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。

图1是本发明的基于混合云数据聚合的方法的流程图。如图1所示,本发明的一种实施例提供一种基于混合云数据聚合的方法,包括以下步骤:

s101、所述公有云端接收检索指令,所述检索指令包括待检索医院的私有云端、数据检索条件以及数据聚合指标。本发明中的公有云端是指用于聚合私有云端检索结果数据的服务器环境,但不以此为限。

s102、所述公有云端根据所述检索指令向待检索医院的私有云端发送所述数据检索条件。

s103、所述公有云端接收私有云端根据所述数据检索条件执行数据检索,获得的检索结果。

s104、所述公有云端根据所述数据聚合指标对所有私有云端反馈的检索结果执行数据聚合操作。

本发明中的私有云端是指每家医院的服务器环境为一个私有云端环境,每个私有云端上布署很多个服务,如:es,mongodb等,但不以此为限。其中,es是elasticsearch的简称,基于lucene的搜索服务器。mongdb是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。本发明中的es可以采用其它的搜索服务。如:solr,lucene等。其中,solr是一个独立的企业级搜索应用服务器,它对外提供类似于web-service的api接口。lucene是apache软件基金会4jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。该装置中的mongodb可以采用其它数据存储系统。如:mysql,redis等或者文本文件;其中,mysql是一个关系型数据库管理系统,由瑞典mysqlab公司开发,目前属于oracle旗下产品。redis是一个开源的使用ansic语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api。

在一个优选方案中,所述公有云端根据所述待检索医院的私有云端的数量建立多道线程,每一道线程只针对一所述私有云端发送所述数据检索条件和接收所述私有云端反馈的检索结果,公有云端通过不同线程接收不同私有云端的数据,保证数据传输不会冲突。即便有一个私有云端与公有云端的线程发生故障也不会影响到其他私有云端向公有云端传输数据。在一个优选方案中,所述公有云端并行发送所述数据检索条件所述私有云端,并且并行接收所述私有云端反馈的检索结果,以便保证多个私有云端的数据同步更新。

在一个优选方案中,所述公有云端还建立至少一数据聚合线程,当所述公有云端接收到所有所述私有云端反馈的检索结果后,所述数据聚合线程根据所述数据聚合指标对所有私有云端反馈的检索结果执行数据聚合操作,公有云端通过对所有私有云端反馈的检索结果的数据聚合,就能建立更完整的数据库,并且便于后续的检索和调用。本发明中的数据聚合是指将所有的数据放在一起进行数据求和、求平均值等操作,但不以此为限。在医疗数据中常见的有:按地区/性别进行求和、求平均值、求最大值、最小值等操作,但不以此为限。

在一个优选方案中,所述公有云端间歇性发送数据获取指令到所述私有云端,并将所述私有云端反馈的检索结果储存于分布式数据库。例如:将私有云端反馈的检索结果储存于mongodb系统。

在一个优选方案中,所述公有云端发送数据获取指令到所述私有云端的间隔为每5秒一次,以便能够及时更新私有云端与公有云端的数据,保证私有云端最新获得的数据都能及时发送到公有云端。

在一个优选方案中,所述私有云端将检索结果储存在该私有云端的分布式数据库中;所述公有云端将接收到的所有所述私有云端的检索结果储存储存在该公有云端的分布式数据库中,以避免数据被篡改,提高安全性。

本发明的目的在于提供基于混合云数据聚合的方法能够让基于多家私有云端医院数据的检索与聚合变得更快更准确,当数据检索条件变得复杂或者数据检索需求增多时,依然可以实现各个检索快速、准确、有序地进行;并且在检索指标变更时,不用修改源程序代码就能快速跑出精确的患者诊疗数据。

图2是实施本发明的基于混合云数据聚合的方法的示意图。如图2所示,实施本发明的基于混合云数据聚合的方法时,大致过程如下:

使用者在公有云端1界面提交数据检索指令。使用者在公有云端1提供的可视化界面选择需要检索数据的私有云端2医院、检索条件以及数据聚合指标等,然后提交所选择/填写的数据检索指令信息。该指令信息被存储到mongodb中且被唯一标识。

数据检索过程。公有云端1从mongodb中获得云端界面中提交的“数据检索指令”,分解出指令唯一标识、待查询的私有云端2、查询条件等,并根据当前检索指令中涉及到的私有云端2的数量,启用相同数量的线程,每个线程只向一家私有云端2发送数据检索指令和获取数据检索结果。私有云端2在接收到数据检索指令后,将指令中的查询条件传入到es查询得到相关数据,并将结果数据连同指令唯一标识与查询条件存储到mongodb中。在数据检索过程中公有云端1向私有发送完数据检索指令后,会间歇性地(比如每隔5秒)向该私有云端2发送获取数据的指令。私有云端2在接收到获取数据指令后,分解得到指令唯一标识,根据此唯一标识从mongodb中查询结果数据并返回给公有云端1。公有云端1后台服务监听到所有私有云端2数据检索完毕,进行“数据聚合”操作,并将聚合结果存入mongodb。

本发明解决了“依靠数据工程师去每家私有云端2执行检索数据的程序得到数据再进行数据聚合操作的”高人力投入问题,大大缩短了数据产出周期,并且当数据检索条件与检索指标变更时,依然能快速地检索出数据。

本发明在公有云端1后台服务中,将“数据检索指令”与“获取数据指令”分开执行,可以避免因为检索条件复杂、检索指标太多,私有云端2去es中检索数据需要花费大量的时间,从而造成公有云端1与私有云端2连接数过多,连接超时等带来的性能问题而影响数据检索。

在一个变化例中,实施本发明过程可以是:

(1)公有云端1向私有云端2发送完数据检索指令后立即断开连接,释放资源;

(2)私有云端2接收到检索指令后,根据指令发送的先后顺序一一执行数据检索并将结果存储到mongodb(包含数据检索状态,即:检索成功或失败),释放当前指令的资源;

(3)公有云端1向私有云端2发送获取数据的指令,若(2)执行完毕,则直接从mongodb中查询出结果并返回给公有云端1,若(2)未执行完毕,则向公有云端1返回“数据检索中”。公有云端1接收到私有云端2的返回后,进行下一步处理并释放资源。

整个公有云端1和私有云端2的交互过程,可以很快地完成。不存在等待或者说等待的时间非常短。这样可以极大提升整个系统装置的并发能力,使得整个装置可以同时处理更多的数据检索。

本发明的实施例还提供一种基于混合云数据聚合的系统,包括公有云端和多个私有云端,所述公有云端执行如上述方法,此处不再赘述。

图3是本发明的公有云端的模块示意图。如图3所示,本发明的实施例还提供一种公有云端5,包括:检索指令接收模块501、数据检索条件发送模块502、检索结果接收模块503以及聚合模块504。检索指令接收模块501用于模块检索指令,所述检索指令包括待检索医院的私有云端、数据检索条件以及数据聚合指标。数据检索条件发送模块502用于根据所述检索指令向待检索医院的私有云端发送所述数据检索条件。检索结果接收模块503用于接收私有云端根据所述数据检索条件执行数据检索,获得的检索结果。聚合模块504用于根据所述数据聚合指标对所有私有云端反馈的检索结果执行数据聚合操作。本发明的目的在于提供基于混合云数据聚合的系统能够让基于多家私有云端医院数据的检索与聚合变得更快更准确,当数据检索条件变得复杂或者数据检索需求增多时,依然可以实现各个检索快速、准确、有序地进行;并且在检索指标变更时,不用修改源程序代码就能快速跑出精确的患者诊疗数据。

本系统装置包含公有云端和私有云端。其中公有云端包含两个服务:前端服务和后台服务。前端服务:它提供一个界面,让使用者可以选择需要纳入检索数据的私有云端医院,也可以设置检索条件以及数据聚合指标,在设置好之后,提交“数据检索指令”。后台服务:该服务监听到有“数据检索指令”提交,并从该检索指令中分解出“待检索的私有云端医院”、“数据检索条件”及“数据聚合指标”,同时向该指令涉及到的所有私有云端医院发出数据检索指令。

私有云端接收到指令后根据检索条件执行数据检索,并将检索结果存储到mongodb中。该后台服务发送完“数据检索指令”后,会间歇性地(比如:每隔5秒)向各私有云端发送“数据获取指令”以便拿到私有云端检索得到的结果数据,并将检索结果数据存储到公有云端服务器上的mongodb中。待该后台服务拿到所有私有云端医院检索得到的数据后,根据“数据聚合指标”对得到的所有私有云端患者诊疗数据进行聚合操作(若有的私有云端由于自身的服务或者网络等问题检索数据失败,则聚合的时候检索失败的医院会被忽略,数据聚合仍然正常进行,数据呈现的时候会告知用户哪些医院检索失败/无数据)。

该系统装置中,公有云端后台服务根据要检索的私有云端的数量启用相同数量的线程,同时向所有私有云端发送数据检索指令,且一个线程只针对一家私有云端执行“发送数据检索指令和获取数据指令”。同时,公有云端后台服务还会开启一个“数据聚合”线程,当该线程监听到所有私有云端数据检索完毕时,立即根据“数据聚合指标”执行数据聚合操作。如此,整个“数据检索”过程执行完毕。

该系统装置中,私有云端服务采用es检索患者诊疗数据,这包括“数据查询和数据统计”,当es检索得到数据后,会把数据存储到mongodb中。当公有云端的后台服务发送“数据获取指令”时,直接从mongodb中得到检索完的数据返回给公有云端的后台服务。

当有多个这样的检索指令在公有云端提交时,公有云端后台服务能保证一定数量的检索指令并行执行。超出这个数量的检索指令(不可能让无限多的指令同时执行,一般会根据服务器资源来设置一个上限),公有云端的后台服务会根据指令提交的先后顺序,保证先提交的数据检索指令会优先执行。

本发明实施例还提供一种基于混合云数据聚合的设备,包括处理器。存储器,其中存储有处理器的可执行指令。其中,处理器配置为经由执行可执行指令来执行的基于混合云数据聚合的方法的步骤。

如上所示,该实施例能够让基于多家私有云端医院数据的检索与聚合变得更快更准确,当数据检索条件变得复杂或者数据检索需求增多时,依然可以实现各个检索快速、准确、有序地进行;并且在检索指标变更时,不用修改源程序代码就能快速跑出精确的患者诊疗数据。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“平台”。

图4是本发明的基于混合云数据聚合的设备的结构示意图。下面参照图4来描述根据本发明的这种实施方式的电子设备600。图4显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图4所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同平台组件(包括存储单元620和处理单元610)的总线630、显示单元640等。

其中,存储单元存储有程序代码,程序代码可以被处理单元610执行,使得处理单元610执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元610可以执行如图1中所示的步骤。

存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(rom)6203。

存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储平台等。

本发明实施例还提供一种计算机可读存储介质,用于存储程序,程序被执行时实现的基于混合云数据聚合的方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。

如上所示,该实施例能够在没有充电桩的停车场,为电动汽车提供便利地补充电量的解决方案,本发明采用全自动智能化充电机器人技术,可以利用傍晚谷电的资源优势,在无法布置充电桩的场所,实现全自动的电动汽车充电,将能够大大提高充电的效率,方便电动汽车的能量补充,有利于为电动汽车的普及和发展,有利于电网的优化运行。

图5是本发明的计算机可读存储介质的结构示意图。参考图5所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

综上,本发明的目的在于提供基于混合云数据聚合的方法、系统、设备及存储介质,能够让基于多家私有云端医院数据的检索与聚合变得更快更准确,当数据检索条件变得复杂或者数据检索需求增多时,依然可以实现各个检索快速、准确、有序地进行;并且在检索指标变更时,不用修改源程序代码就能快速跑出精确的患者诊疗数据。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1