医疗数据同步方法及装置与流程

文档序号:15022906发布日期:2018-07-25 01:31阅读:341来源:国知局

本公开涉及医疗数据处理技术领域,具体而言,涉及一种医疗数据同步方法以及一种医疗数据同步装置。



背景技术:

随着科技的发展,医疗文本的信息化,因此出现了各种医疗数据库,这就需要一种方法来解决不同医疗数据库之间进行数据同步问题。常见的数据库同步方式为通过开通CDC(Centers for Disease Control,疾病控制中心)的医疗数据库权限来进行,但是受制于医疗系统的安全性要求极高,以及医院内厂商分布复杂等实际问题,因此现场实施难度很大。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

本公开的目的在于提供一种医疗数据同步方法以及一种医疗数据同步装置,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。

根据本公开的一个方面,提供一种医疗数据同步方法,包括:

获取一原始医疗数据库的只读权限;

每隔一预设时间扫描所述原始医疗数据中各表格中的自增主键;

根据所述自增主键的最近一次的更新信息扫描出所述自增主键的新增记录内容;

将所述新增记录内容传送至一消息队列中以使得下游程序读取所述新增记录内容并将所述新增记录内容同步至ETL数据库中。

在本公开的一种示例性实施例中,所述医疗数据同步方法还包括:

通过Dblink将所述新增记录内容传输至一备份数据库中并记录与所述新增记录内容关联的时间戳;以及

更新与所述新增记录内容关联的自增主键。

在本公开的一种示例性实施例中,所述医疗数据同步方法还包括:

扫描所述备份数据库的时间戳并监控所述新增记录内容的记录数。

在本公开的一种示例性实施例中,在通过Dblink将所述新增记录内容传输至一备份数据库中之前还包括:

创建所述Dblink,并测试所述Dblink的连通性,直到所述Dblink连通。

在本公开的一种示例性实施例中,所述医疗数据同步方法还包括:

验证所述备份数据库是否存储所述新增记录内容。

根据本公开的一个方面,提供一种医疗数据同步装置,包括:

只读权限获取模块:用于获取一原始医疗数据库的只读权限;

自增主键扫描模块:用于每隔一预设时间扫描所述原始医疗数据中各表格中的自增主键;

新增记录内容扫描模块:用于根据所述自增主键的最近一次的更新信息扫描出所述自增主键的新增记录内容;

新增记录内容同步模块:用于将所述新增记录内容传送至一消息队列中以使得下游程序读取所述新增记录内容并将所述新增记录内容同步至ETL数据库中。

在本公开的一种示例性实施例中,所述医疗数据同步装置还包括:

新增记录内容传输模块:用于通过Dblink将所述新增记录内容传输至一备份数据库中并记录与所述新增记录内容关联的时间戳;

自增主键更新模块:用于更新与所述新增记录内容关联的自增主键。

在本公开的一种示例性实施例中,所述医疗数据同步装置还包括:

时间戳扫描模块:用于扫描所述备份数据库的时间戳并监控所述新增记录内容的记录数。

在本公开的一种示例性实施例中,在通过Dblink将所述新增记录内容传输至一备份数据库中之前还包括:

创建所述Dblink,并测试所述Dblink的连通性,直到所述Dblink连通。

在本公开的一种示例性实施例中,所述医疗数据同步装置还包括:

验证模块:用于验证所述备份数据库是否存储所述新增记录内容。

本公开一种医疗数据同步方法及装置,通过获取原始医疗数据库的只读权限,然后每隔一预设时间扫描原始医疗数据中各表格中的自增主键并根据自增主键的最近一次的更新信息扫描出增记录内容;在将新增记录内容传送至消息队列中以使得下游程序读取新增记录内容并将新增记录内容同步至ETL数据库中;通过获取原始医疗数据库的只读权限使得在获取最小权限下就可以完成数据的同步,减少了实施的复杂程度,减少了时间成本并且保证了系统的安全性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示意性示出一种医疗数据同步方法的流程图。

图2示意性示出另一种医疗数据同步方法的流程图。

图3示意性示出一种医疗数据同步装置的方框图。

图4示意性示出本公开示例实施方式中一种电子设备的方框图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

本示例实施方式中首先提供了一种医疗数据同步方法。参考图1所示,该医疗数据同步方法可以包括以下步骤:

步骤S110.获取一原始医疗数据库的只读权限。

步骤S120.每隔一预设时间扫描所述原始医疗数据中各表格中的自增主键。

步骤S130.根据所述自增主键的最近一次的更新信息扫描出所述自增主键的新增记录内容。

步骤S140.将所述新增记录内容传送至一消息队列中以使得下游程序读取所述新增记录内容并将所述新增记录内容同步至ETL数据库中。

上述医疗数据同步方法中,通过获取原始医疗数据库的只读权限使得在获取最小权限下就可以完成数据的同步,减少了实施的复杂程度,减少了时间成本并且保证了系统的安全性。

下面,将对本示例实施方式中上述软件升级方法的各步骤进行详细的说明。

在步骤S110中,获取一原始医疗数据库的只读权限。

在本示例实施方式中,上述只读可以被定义为只能阅读,不能进行修改、删除以及储存等其他除了阅读以外的动作。在本示例中,获取原始医疗数据库的只读权限,最大程度的保证了医疗数据库的安全性以及完整性但同时也可以对新增的数据进行同步。此外,在本公开的其他示例性实施例中,为了保证原始医疗数据库的安全性,也可以根据实际情况对上述只读权限进行进一步的定义,本示例性实施例中对此不做特殊限定。

在步骤S120中,每隔一预设时间扫描所述原始医疗数据中各表格中的自增主键。

在本示例实施方式中,上述预设时间例如可以是6h、8h、12h或者24h等等,可以根据实际情况自行设定;上述自增主键可以被定义为字段类型为数字且自动增加的主键;它的值用于唯一地标识表中的某一条记录;在两个表的关系中,可以用来在一个表中引用来自于另一个表中的特定记录。在本示例中,每隔一预设时间(例如每隔6h)扫描一次原始医疗数据库中各表格中的自增主键,然后判断自增主键中是否有新增的记录内容。

在步骤S130中,根据所述自增主键的最近一次的更新信息扫描出所述自增主键的新增记录内容。

在本示例实施方式中,当判断上述自增主键中有新增的记录内容时,根据自增主键的最近一次的更新信息扫描出新增记录内容并提取出该新增记录内容以使得可以将该新增记录内容传送至消息队列中或者传输至备份数据库中。此外,在本公开的其他示例性实施例中,也可以根据实际情况以其他的方式来扫描上述新增记录内容,本示例性实施例中对此不做特殊限定。

在步骤S140中,将所述新增记录内容传送至一消息队列中以使得下游程序读取所述新增记录内容并将所述新增记录内容同步至ETL数据库中。

在本示例实施方式中,上述ETL是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)以及加载(load)至目的端的过程。在本示例中,将上述新增记录内容传送至一消息队列(例如可以是Kafka)中,然后下游程序(例如可以是Logstash、Elasticsearch或者Kibana等等)读取上述新增记录内容并将该新增记录内容同步至ETL数据库中。其中:

Kafka:可以用于接收用户日志的消息队列;

Logstash:可以用于日志解析,并将其统一给JSON格式输出给Elasticsearch;

Elasticsearch:可以用于实时日志分析服务的核心技术,一个schemaless,实时的数据存储服务,通过index组织数据,兼具强大的搜索和统计功能。

Kibana:基于Elasticsearch的数据可视化组件,具有超强的数据可视化能力。

本示例还提供了一种医疗数据同步方法。该医疗数据同步方法还可以包括步骤S210以及步骤S220。其中:

在步骤S210中,通过Dblink将所述新增记录内容传输至一备份数据库中并记录与所述新增记录内容关联的时间戳。

在本示例实施方式中,上述Dblink(Data base Link,数据库链接)可以被定义为一个类似电话线的通道,当要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的Dblink,通过Dblink本地数据库可以通过与访问本地数据库相同的方式访问远程数据库表中的数据;进一步的,上述Dblink不仅可以用于连通目标库和源库,还可以用于对目标库中的需要同步的数据表的数据同步情况进行查看。在本示例中,使用Dblink连通目标库(备份数据库)和源库(原始医疗数据库),使得连通的两个数据库之间的数据(新增记录内容)通过Dblink进行传递;当传输完成后,记录与该新增记录内容关联的时间戳。此外,在本公开的其他示例性实施例中,也可以根据实际情况通过其他的方式将上述新增记录内容传输至上述备份数据库中,本示例性实施例中对此不做特殊限定。

在本示例的另一种实施方式中,为了保证上述新增记录内容被完全的备份至上述备份数据库中,还需要验证所述备份数据库是否存储所述新增记录内容;举例而言,可以通过与新增记录内容关联的主键查询备份数据库中是否存在上述新增记录内容来验证上述备份数据库是否存储所述新增记录内容。此外,在本公开的其他示例性实施例中,也可以根据实际情况通过其他的方式来验证所述备份数据库是否存储所述新增记录内容,本示例性实施例中对此不做特殊限定。

在步骤S220中,更新与所述新增记录内容关联的自增主键。

在本示例实施方式中,为了使得下一次可以准确的扫描到新增记录内容,还需要更新与上述新增记录内容关联的自增主键。

本示例还提供了一种医疗数据同步方法。该医疗数据同步方法还可以包括步骤:创建所述Dblink,并测试所述Dblink的连通性,直到所述Dblink连通。

在本示例实施方式中,为了保证数据传输的可靠性,必须要要保证Dblink的是可靠连通的,因此,需要创建到目标库的Dblink,并测试所述Dblink的连通性,直到所述Dblink连通;通过测试Dblink的连通性确认Dblink连通,提高了上述医疗数据同步方法的准确性和可靠性。测试上述Dblink的连通性可以包括:在源库(原始医疗数据库)通过Dblink查询目标库(备份数据库)数据,测试到目标库(备份数据库)的Dblink的连通性。此外,在本公开的其他示例性实施例中,也可以根据实际情况通过其他的方式来验证所述备份数据库是否存储所述新增记录内容,本示例性实施例中对此不做特殊限定。

本示例还提供了一种医疗数据同步方法。该医疗数据同步方法还可以包括步骤:扫描所述备份数据库的时间戳并监控所述新增记录内容的记录数。

在本示例实施方式中,上述记录数可以被定义为对应于数据源中一行信息的一组完整的相关信息;可以用一个记录描述一个实体,所以记录又可以被定义为能完整地描述一个实体的字段集;例如可以是:一个学生记录,由有序的字段集(学号、姓名、年龄、性别等)组成;或者客户邮件列表中的有关某位客户的所有信息为一条数据记录。在本示例中,为了进一步的保证系统的安全性,监控上述备份数据库中数据更新的异常性,可以扫描上述备份数据库的时间戳并监控上述新增记录内容的记录数;例如可以给新增记录内容的记录数设置一个预设区间,若新增记录内容的记录数不再该预设区间内,可以根据实际情况判断是否出现异常,进而及时的保证了由于数据异常而可能导致的不安全因素。

此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。

本示例实施方式还提供了一种医疗数据同步装置。参考图3所示,该医疗数据同步装置包括:只读权限获取模块310、自增主键扫描模块320、新增记录内容扫描模块330以及新增记录内容同步模块340。其中:

只读权限获取模块310可以用于获取一原始医疗数据库的只读权限。

自增主键扫描模块320可以用于每隔一预设时间扫描所述原始医疗数据中各表格中的自增主键。

新增记录内容扫描模块330可以用于根据所述自增主键的最近一次的更新信息扫描出所述自增主键的新增记录内容。

新增记录内容同步模块340可以用于将所述新增记录内容传送至一消息队列中以使得下游程序读取所述新增记录内容并将所述新增记录内容同步至ETL数据库中。

在本示例实施方式中,所述医疗数据同步装置还包括:

新增记录内容传输模块可以用于通过Dblink将所述新增记录内容传输至一备份数据库中并记录与所述新增记录内容关联的时间戳。

自增主键更新模块可以用于更新与所述新增记录内容关联的自增主键。

在本示例实施方式中,所述医疗数据同步装置还包括:

时间戳扫描模块可以用于扫描所述备份数据库的时间戳并监控所述新增记录内容的记录数。

在本示例实施方式中,在通过Dblink将所述新增记录内容传输至一备份数据库中之前还包括:

创建所述Dblink,并测试所述Dblink的连通性,直到所述Dblink连通。

在本示例实施方式中,所述医疗数据同步装置还包括:

验证模块:用于验证所述备份数据库是否存储所述新增记录内容。

上述医疗数据同步装置中各模块的具体细节已经在对应的医疗数据同步方法中进行了详细想描述,因此此处不再赘述。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。

图4示出根据本公开示例实施方式中一种电子设备400的示意图。例如,电子设备400可以被提供为一服务器。参照图4,电子设备400包括处理组件422,其进一步包括一个或多个处理器,以及由存储器432所代表的存储器资源,用于存储可由处理组件422的执行的指令,例如应用程序。存储器432中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件422被配置为执行指令,以执行上述方法。

电子设备400还可以包括一个电源组件426被配置为执行电子设备400的电源管理,一个有线或无线网络接口450被配置为将电子设备400连接到网络,和一个输入输出(I/O)接口458。电子设备400可以操作基于存储在存储器432的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

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