首页> 中国专利> 存储状态指定健康相关情节数据的方法和系统

存储状态指定健康相关情节数据的方法和系统

摘要

本发明公开一种使用工作流状态处理并存储医疗情节数据的方法、装置和制品。在一种实施方案中,患者情节数据从不同的数据存储经由信息代理程序移动到指定的数据处理程序。数据处理程序然后将它们各自的数据传递到加载和粉碎应用。粉碎应用任务是将情节数据存储在数据库仓库中并且更新每个情节的状态。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2009-04-08

    授权

    授权

  • 2007-07-18

    实质审查的生效

    实质审查的生效

  • 2007-05-23

    公开

    公开

说明书

技术领域

本发明通常涉及一种用于将各种临床基因组数据直接输入到中心数据库以使得数据通过查询按需访问的方法、系统和制品。

背景技术

数据库是计算机化的信息存储和检索系统。关系数据库管理系统(RDBMS)是使用存储和检索数据的关系技术的计算机数据库管理系统。关系数据库是计算机化的信息存储和检索系统,其中表格形式的数据(正式命名“关系”)典型地为使用而存储在磁盘驱动器或类似海量数据存储上。“表格”包括跨越几列(正式命名“属性”)的一组行(正式命名“元组”或“记录”)。

构造RDBMS以接受命令以使用例如高级查询语言,例如结构化查询语言(SQL)存储、检索和删除数据。术语“查询”指从存储数据库中检索数据的一组命令。这些查询可能来自用户、应用程序或远程系统(客户端或对等者)。查询语言响应特定查询要求特定数据集的返回,但是由RDBMS使用的查询执行的方法(“查询执行计划”)不由查询指定。查询执行的方法典型地称作执行计划、访问计划或仅仅“计划”。典型地,对于任何特定查询,存在许多不同的有用的执行计划,每个返回所需的数据集。对于大数据库,由RDBMS选择以执行查询的执行计划必须及时地以合理的成本和硬件资源提供所需数据。

对于复杂数据从多个不同数据源的捕获和处理,通常建立分级数据存储和操作数据库。分级数据存储的功能是缓冲来自不同数据源的相关数据直到条件满足,此时相关数据被处理并且从分级数据存储经由一组数据转换迁移至操作数据库。

在临床基因组应用中,对于给定患者来自多个数据源的医疗信息存储在分级数据存储(其可以称作“医疗信息网关”或“MIG”)中。给定的一系列相关数据,称作“事件”,分组在一起成为“情节”。在一种实施方案中,MIG中的事件可能包含实验室工作数据、疾病表示数据或其他重要患者信息。一旦给定情节的所有事件完成,系统处理并输入数据到操作数据库(“医疗信息仓库”或“MIR”)中。因此,触发事件数据从MIG迁移至MIR的条件是相应情节的完成。

使用该方案,当需要实时数据的查询相对于操作数据库运行时,问题产生。因为特定情节的关联数据没有输入到操作数据库中直到所有相关事件或步骤完成,可能对患者保持良好状态关键的数据可能在操作数据库中对于查询而不可用。换句话说,关键患者数据对查询不可用,因为情节中的所有事件还没有完成,所以数据还没有从MIG移动至MIR中。

该问题的现有解决方案已经通过使用“嗅探器”为特定条件分析MIG数据存储中的数据而获得。嗅探器是计算机化的信息分析和检索应用。典型地,嗅探器被创建以在特定数据库或数据存储中定位数据,在非常特殊的一组分析规则和为使用而存储在磁盘驱动器或类似海量数据存储上之后。如果条件满足,嗅探器根据其规则集开始动作。使用嗅探器在分级数据存储中定位数据因分级数据存储包含并不是全部可由单个嗅探器访问的不同数据类型的事实而复杂化。结果,特有的嗅探器为存储在分级数据存储或MIG中的每种类型的数据所需要。

因此,存在对一种分级数据环境的需求,其中与正在进行的情节有关的相关数据可以实时地在查询结果中说明。

发明内容

本发明通常涉及一种在操作数据库中存储状态指定健康相关数据的方法、系统和制品。

一种实施方案提供一种存储状态指定健康相关数据的方法。该方法通常包括提供存储来自多个数据源的健康相关情节数据的数据库。情节数据可以包括完成情节和未完成情节的数据,情节由预定义的一组相关数据定义。与未完成情节相对应的情节数据的多个更新可以接收。对于多个更新的每个,在数据库中正在更新的情节数据的状态可以指定为完成或未完成。

另一种实施方案提供包含程序的实体计算机可读存储介质。当由处理器执行时,程序执行包含存储状态指定健康相关情节数据的操作。与未完成情节相对应的健康相关情节数据的多个更新可以接收。对于多个更新的每个,在数据库中更新的情节数据的状态可以指定为完成或未完成。情节数据可以包含在存储来自多个数据源的情节数据的数据库中。情节数据包括完成情节和未完成情节的数据。

另一种实施方案提供存储状态指定健康相关情节数据的数据库系统。数据库系统通常包括操作数据存储和状态监控器。操作数据存储可以配置以从多个外部数据存储接收新的情节数据。情节由预定义的一组相关数据定义。新的情节数据可以存储在操作数据存储中的数据结构中。状态监控器可以配置以监控操作数据存储中情节数据的状态并且响应正在接收的新的情节数据将状态应用于操作数据存储中的数据。

附图说明

上面简要概述的本发明的更特别描述可以参考附随附图中说明的其实施方案而进行,使得获得本发明上述特征、优点和目的的方式可以详细地理解。

但是,应当注意,附随附图仅说明本发明的典型实施方案,因此并不认为是其范围的限制,因为本发明可以许可其他等效的实施方案。

图1是根据本发明说明性使用的通用计算机系统。

图2是本发明一种实施方案的软件组件的关系视图。

图3是说明本发明一种实施方案的操作的处理流程图。

图4a说明实例数据库概要。图4b是两个数据库表格的实例视图。

图5a是本发明一种实施方案的软件组件的关系视图。图5b是本发明一种实施方案的软件组件的关系视图。

图6是说明运行时间组件的操作的流程图。

图7是说明运行时间组件的操作的流程图。

具体实施方式

本发明通常涉及一种用于处理并存储具有工作流状态信息的医疗情节数据的系统、方法和制品。在一种实施方案中,患者情节数据从不同数据存储经由信息代理程序移动至指定数据处理程序。数据处理程序然后将它们各自的数据传递到加载和粉碎应用。粉碎应用其任务是将情节数据存储在数据库仓库中并更新每个情节的状态。在一种实施方案中,数据仓库抽象层提供独立于数据表示的特定方式的底层数据仓库的逻辑视图。查询抽象层可以被提供并基于数据仓库抽象层。运行时间组件执行抽象查询到可以相对于特定物理数据表示而使用的形式的翻译。

本发明的一种实施方案实现为与计算机系统一起使用的程序产品,例如图1中所示并在下面描述的计算机系统100。程序产品的程序定义实施方案的功能(包括在这里描述的方法)并且可以包含在多个信号承载介质上。说明性的信号承载介质包括,但不局限于:(i)永久地存储在不可写存储介质上的信息(例如计算机中的只读存储设备例如可由CD-ROM驱动器读取的CD-ROM盘);(ii)存储在可写存储介质上的可改信息(例如磁盘驱动器中的软盘或硬盘驱动器);或(iii)由通信介质例如通过计算机或电话网络,包括无线通信传送到计算机的信息。后者实施方案特别地包括从因特网和其他网络下载。这种信号承载介质,当承载指示本发明功能的计算机可读指令时,表示本发明的实施方案。

通常,执行以实现本发明实施方案的例程可能是操作系统或专用应用、组件、程序、模块、对象或指令序列的一部分。本发明的软件典型地由许多指令构成,其将由本地计算机翻译成机器可读格式从而可执行指令。而且,程序由位于程序本地或在内存或存储设备中找到的变量和数据结构构成。另外,在下文描述的各种程序可以基于它们在本发明具体实施方案中实现的应用而识别。但是,应当理解,下面的任何特定命名仅为方便而使用,因此本发明应当不局限于仅在由这种命名识别和/或暗示的任何特定应用中使用。

在下面,参考本发明的实施方案。但是,应当理解,本发明并不局限于特定描述的实施方案。代替地,下面的特征和要素的任何组合,不管是否与不同的实施方案相关,认为实现和实践本发明。此外,在各种实施方案中,本发明提供优于现有技术的许多优点。但是,虽然本发明的实施方案可以实现优于其他可能解决方案和/或优于现有技术的优点,特定优点是否由给定实施方案实现并不是本发明的限制。因此,下面的方面、特征、实施方案和优点仅是说明性的并且不认为是附加权利要求的要素或限制,除了在权利要求中明确陈述之外。类似地,参考“本发明”不解释为这里公开的任何发明主旨的概括,不认为是附加权利要求的要素或限制,除了在权利要求中明确陈述之外。

【环境的物理视图】

现在参考图1,显示计算环境100。通常,分布式环境100包括计算机系统105和多个联网设备175。计算机系统105可以表示任何类型的计算机、计算机系统或其他可编程电子设备,包括客户端计算机、服务器计算机、便携式计算机、嵌入式控制器、基于PC的服务器、小型机、中型计算机、大型计算机以及适合于支持本发明的方法、装置和制品的其他计算机。在一种实施方案中,计算机系统26是可从Armonk,纽约的国际商业机器获得的eServer iSeries。

说明性地,计算机系统105包括联网系统。但是,计算机系统105也可以包括独立设备。在任何一种情况下,应当理解,图1仅是计算机系统的一种配置。本发明的实施方案可以应用于任何同等配置,而不管计算机系统100是复杂多用户装置、单用户工作站、或不具有其自己的非易失性存储器的网络设备。

本发明的实施方案也可以在分布式计算环境中实践,其中任务由通过通信网络连接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程存储设备中。在这点上,计算机系统105和/或联网设备175的一个或多个可以是执行少量或不执行处理的微弱客户端。

计算机系统105可以包括许多操作员和外围系统,例如由可操作地连接到直接存取存储设备155的海量存储器接口140,由可操作地连接到显示器165的视频接口145,以及由经由网络175(例如WAN,LAN)可操作地连接到多个联网设备170和180的网络接口175所示。显示器165可以是用于输出可视信息的任何视频输出设备。

计算机系统105显示包括至少一个处理器135,其经由总线120从主存储器115获得指令和数据。处理器135可以是适合于支持本发明方法的任何处理器。

主存储器115是足够大以保存必要程序和数据结构的任何存储器。主存储器115可以是存储设备的一种或组合,包括随机存取存储器、非易失性或备用存储器(例如可编程或闪速存储器、只读存储器等)。另外,存储器115可以认为包括物理地位于计算机系统105其他位置的存储器,例如用作虚拟存储器或存储在海量存储设备上(例如直接存取存储设备155)或经由总线120连接到计算机系统105的另一个计算机上的任何存储容量。

存储器115所示配置有操作系统130。操作系统130是用于管理计算机系统110的操作的软件。操作系统130的实例包括IBMOS/400,UNIX,Microsoft Windows等。

存储器115还包括一个或多个应用。应用125是包括在各种时间驻留在计算机系统110中各种存储器和存储设备中的多个指令的软件产品。当由计算机系统110中一个或多个处理器135读取并执行时,应用125使得计算机系统110完成执行实施本发明各个方面的步骤或要素所必需的步骤。

【环境的关系视图】

图2显示本发明一种实施方案的软件组件的数据处理环境200的关系视图。数据处理环境200通常(逻辑地)安排为三个阶段:存储/管理/聚集阶段205,查询/分析阶段210和表示阶段215。在存储/管理/聚集阶段205,患者情节数据存储在多个一般数据存储2251,2252,2253,2254(作为实例显示四个;共同地称作数据存储225)中。在一种实施方案中,数据存储225可以包括任何种类的数据,包括病理学数据、放射学数据、药物数据、基因表达等。信息代理应用230用来将情节数据从每个数据存储传送到特定数据处理应用。在一种实施方案中,多个数据处理程序2351,2352,2353,2354(作为实例显示四个;共同地称作数据处理程序235)从信息代理程序230接收特定数据存储数据。信息代理应用230是用来将数据从一个数据存储225或应用传递到另一个应用的计算机软件应用。数据处理程序235通常是用来将特定模式的数据从一个位置传送到另一个的任何计算机软件应用(例如,从信息代理程序230到目标应用,例如下面描述的粉碎应用245)。

在一种实施方案中,数据处理程序235将患者情节数据传递到医疗信息仓库服务器240的粉碎应用245。粉碎应用245分析数据文件并且根据特定模式排列数据。一旦粉碎处理完成并且数据已经以特定模式标准化,数据传递到加载应用250。加载应用250分析MIR数据库255中的现有患者情节数据,以确定刚刚从粉碎应用245接收的情节数据的适当状态。更具体地说,加载应用250识别MIR数据库255中的任何现有患者情节数据,其与刚刚从粉碎应用245接收的数据相关(也就是,其相同情节的一部分)。在一种实施方案中,MIR数据库255中的情节数据的状态指定为完成或未完成。在一些实例中,刚刚从粉碎应用245接收的数据是与给定情节相关的情节数据的第一部分,在该情况下,MIR数据库255将不包含任何相关数据并且接收数据的状态将指定为未完成。在其他实例中,刚刚从粉碎应用245接收的数据将是部分情节数据包含在MIR数据库255中的情节的一部分,但是并未完成情节,在该情况下,数据的状态再次指定为未完成。在又一种实例中,刚刚从粉碎应用245接收的数据将是剩余情节数据包含在MIR数据库255中的情节的最后部分,在该情况下,定义情节的相关情节数据的状态将指定为完成。

在一种实施方案中,如果给定患者情节数据未完成,那么加载应用250将情节数据存储在MIR数据库255中并且用未完成状态更新MIR状态对象260。如果给定患者情节数据完成,那么加载应用250将情节数据存储在MIR数据库255中并且用完成状态更新MIR状态对象260。当该实施方案使用未完成或完成的两种状态时,本领域技术人员将认识到本发明范围内的其他实施方案。例如,备选实施方案可以使用查找表格来存储多个不同的状态。查找表格可以是包含可用状态列表的数据库表格,例如“情节开始”,“情节更新”,“情节完成”。这些状态将指定给MIR中的给定情节数据并且可以用来给终端用户关于给定情节在其特定工作流处理中的何处的更多信息。

一旦存储在MIR数据库255中,患者情节数据可用于由在查询/分析阶段210中的适当应用进行查询。在一种实施方案中,MIR数据库255使用临床基因组应用265查询。查询结果可以在表示阶段215中通过用户接口270返回给用户。查询环境的其他实施方案参考图5a在下面描述。

图3是说明本发明一种实施方案的操作300的处理流程图。上面参考描述的组件将由相同的参考数字表示。患者情节数据220提供(步骤310)给数据存储225。数据存储315保存320情节数据,然后将数据记录提交(步骤325)给信息代理程序230。信息代理程序230分析情节数据以确定(步骤335)正确的数据处理程序235(也就是,特别配置以处理接收的特定类型情节数据的适当数据处理程序235)。一旦确定,情节数据提交(步骤335)给适当数据处理程序235以进一步处理。数据处理程序235提交(步骤350)情节数据到医疗信息仓库服务器粉碎程序245,其分析/粉碎(步骤360)情节数据以保证数据处于正确模式中。粉碎程序245将数据提交(步骤365)给加载程序250,其评估(步骤375)情节完成状态。也就是,加载程序250确定从粉碎程序接收的数据是否完成其相关情节数据保存在医疗信息仓库数据库255中的情节。如果加载程序250确定(医疗信息仓库数据库255中)任何相关情节数据的状态已经改变,它改变情节数据的状态380。接收的情节数据然后存储(步骤385)在医疗信息仓库数据库255中。一旦情节数据已经存储在MIR数据库255中,它可用于由多个应用265查询(步骤394)。当由应用265查询(步骤394)时,MIR数据库255返回情节数据的结果集396。

图4a说明实例数据库模式400。如这里使用的,术语“模式”通常指特定的数据排列。在本发明的一种实施方案中,数据库表格1 405包含主字段ID和字段NAME,以及字段E_COMP。数据库表格2 410是表格1 405的子表格,具有主字段ROW_ID,字段TEST,外来关键字字段P_ID,和字段E_COMP。主关键字是表格中其值唯一地标识表格中的行的列。例如,表格1405可以包含主关键字字段ID,其可以唯一地标识表格1 405中的每个患者情节行;对于表格2 410,ROW_ID字段值唯一地标识每个行。外来关键字是表格中不唯一标识该表格中的行,但是用作映射其他表格中列的连接的列。例如,表格2 410可以包含外来关键字字段P_ID,其连接回表格1 405中的ID字段。两个表格之间的关系,本领域中称作一对多关系,保证表格1 405中的记录可以具有表格2 410中的一个或多个相关记录,但是表格2 410中每个记录仅与表格1 405中一个记录相关。在一种实施方案中,E_COMP字段可以用来存储每个记录的状态值,以表示给定患者情节数据(表格2 410中)或所有患者情节数据(表格1 405)中是完成还是未完成。

图4b说明假设患者Tom和Bob的两个实例填充表格(415和420)。填充表格415,420分别对应于图4a的第一表格405和第二表格410的模式400。新的患者,Tom,(表格1 415中ID 100)具有他与该机构的第一情节,如由表格2 420中P_ID等于100的仅一个对应行的存在显示的。Tom已经具有在该点不是完成情节的血红蛋白测试运行(表格2 420中的ROW_ID 3)。血红蛋白测试运行的未完成状态在该实例中由表格2 420的E_COMP字段中的值0显示。相反地,患者Bob(表格1 415中ID 101)已经通过之前的情节,如由表格2 420中P_ID为101和已完成E_COMP值为1的行所显示的。Bob也具有与该医疗机构正在进行的情节(表格2 420中的ROW_ID 2),表格2 420的E_COMP字段中未完成状态值为0。因此,未完成情节使用E_COMP值0表示,一旦相应情节完成其变成值1。

【本实施方案中的抽象查询】

在一种实施方案中,可以期望使用抽象框架查询包含在医疗信息仓库数据库中的情节数据。通常,抽象框架可以便于查询数据,因为物理数据从暴露给用户的逻辑方式“去耦合”,从而允许用户以简单且更直观的方式观看数据。图5A-B显示根据本发明一种实施方案的抽象环境500的说明性关系视图。同样参考图1,包括可以是包含情节数据(完成和未完成)的医疗信息仓库数据库的数据库160。请求实体(例如应用505的一个)发出请求510,如由请求实体的各自应用定义的。由应用505发出的请求根据每个应用505包括的应用查询定义。由应用505发出的请求可以预定义(也就是,作为应用505的一部分硬编码)或可以响应输入(例如用户输入)产生。在任何一种情况下,查询(这里称作“抽象查询”)使用由抽象查询510定义的逻辑字段构成。特别地,在抽象查询中使用的逻辑字段由抽象查询510的数据仓库抽象组件515定义。

作为结果的查询520通常在这里称作“抽象查询”,因为查询根据抽象(也就是逻辑)字段而不是由对数据库160中底层物理数据实体的直接引用而构成。结果,可以定义独立于使用的特定底层数据表示的抽象查询。在一种实施方案中,应用查询510可以包括用于数据选择的标准(选择标准530)和基于选择标准530返回的字段的显式说明(返回数据说明535)。

由应用查询510指定的用来构成抽象查询520的逻辑字段由数据仓库抽象组件515定义。通常,数据仓库抽象组件515暴露信息为可以在由应用505发出的查询(例如抽象查询510)中使用的一组逻辑字段以指定数据选择的标准和指定从查询操作返回的结果数据的形式。逻辑字段独立于在数据库160中使用的底层数据表示而定义,从而允许形成松弛耦合到底层数据表示的查询。

通常,数据仓库抽象组件515包括多个字段说明5501,5502,5503,5504和5505(作为实例显示五个),共同地称作字段说明550。特别地,字段说明对抽象查询组成可用的每个逻辑字段而提供。每个字段说明包括逻辑字段名5401,5402,5403,5404和5405(共同地,字段名540)和相关访问方法5451,5452,5453,5454,5455(共同地,访问方法545)。访问方法将逻辑字段名关联(也就是映射)到数据库(例如,数据库160)中的特定物理数据表示5251,5252...525N。作为说明,显示两种数据表示,XML数据表示5251和关系数据表示5252。但是,物理数据表示525N指示考虑任何其他数据表示,已知的或未知的。在一种实施方案中,单个数据仓库抽象组件515包含两个或多个物理数据表示525的字段说明(以及相关访问方法)。在备选实施方案中,不同单个数据仓库抽象组件515为每个独立的物理数据表示525而提供。

任意数目的访问方法依赖于支持的不同类型逻辑字段的数目而考虑。在一种实施方案中,提供简单字段、过滤字段和组成字段的访问方法。字段说明5501,5502和5505分别举例说明简单字段访问方法5451,5452和5455。简单字段直接映射到底层物理数据表示中的特定实体(例如,映射到给定数据库表格和列的字段)。作为说明,图5B中所示的简单字段访问方法5451将逻辑字段名5401(“FirstName”)映射到名为“联系”的表格中的名为“f_name”的列。字段说明5505举例说明过滤字段访问方法5455。过滤字段标识相关物理实体并且提供用来定义物理数据表示中特定项目子集的规则。过滤字段访问方法5455将逻辑字段名5405(“AnytownLastName”)映射到名为“联系”的表格中名为“town_name”的列中的物理实体,并且为Anytown城市中的个体定义过滤器的实例在图5B中提供。过滤字段的另一个实例是纽约邮政编码字段,其映射到邮政编码的物理表示并且限制数据仅在为纽约州定义的那些邮政编码。字段说明5504举例说明组成字段访问方法5454。组成访问方法使用作为访问方法定义的一部分而提供的表达式从一个或多个物理字段中计算逻辑字段。这样,可以计算不存在于底层数据表示中的信息。在图5B中说明的实例中,组成字段访问方法5454将逻辑字段名5404“TestType”映射到“TestValue”。另一个实例是通过将售价字段乘以销售税率而组成的销售税字段。

应当考虑,任何给定数据类型的底层数据(例如数据、医疗编号等)的格式可能改变。因此,在一种实施方案中,字段说明550包括反应底层数据格式的类型属性。但是,在另一种实施方案中,字段说明550的数据格式不同于相关底层物理数据,在这种情况下,访问方法负责以由请求实体假定的适当格式返回数据。因此,访问方法必须知道假定(也就是,根据逻辑字段)哪种格式的数据,以及底层物理数据的实际格式。访问方法然后可以将底层物理数据转换成逻辑字段的格式。

作为实例,图5b中所示的数据仓库抽象组件515的字段说明550表示映射到关系数据表示5252中表示的数据的逻辑字段。但是,数据仓库抽象组件515的其他实例将逻辑字段映射到其他物理数据表示,例如XML。

与图5a中所示的抽象查询510相对应的说明性抽象查询在下面表格1中所示。作为说明,数据仓库抽象515使用XML定义。但是,任何其他语言可以用来获得优势。

                      表格1-查询实例

  001<?xml version=”1.0”?>  002<field name=“TestType”>  003<accessmethod>  004 <simple attrname=”TEST_CODE”entityName=”TESTRESULT”/>  005</accessmethod>  006</field>  007<field>  008<accessmethod>  009 <simpleattrname=”numeric_value”entityName=”TESTRESULTS”/>  010</accessmethod>  011<type baseType=“float”/>  012<description>Internal Generic Test Value Field</description>  013</field>  014<fieldtemplate Name=“Hemogloblin”>  015<accessmethod><!-- SIPO <DP n="12"> --><dp n="d12"/>  016<composed>  017 <composition>DECIMAL(<fieldrefname=“data://Internal/TestValue”/>  018 15,3)</composition>  019<where>  020<condition field=“data://Internal/TestType”operator=“EQ”>  021<value val=“32-2320“/>  022</condition>  023</where>  024</composed>  025</accessmethod>  026<type baseType=“float”/>  027<description>Hemoglobin Test</description>  028<fieldtemplate>

说明性地,表格1中所示的抽象查询包括包含选择标准(019-023行)的选择说明(014-028行)。在一种实施方案中,选择标准包括字段名(对于逻辑字段),比较运算符(=,>,<等)和值表达式(什么是正在比较的字段)。在一种实施方案中,结果说明是作为查询执行结果而待返回的抽象字段的列表。抽象查询中的结果说明可以包括字段名和排序标准。

图6显示举例说明运行时间组件操作的一种实施方案的说明性运行时间方法600。方法在步骤605进入,当运行时间组件作为输入接收抽象查询实例时(例如图5中所示的抽象查询510)。在步骤610,运行时间组件读取并分析抽象查询的实例并且定位各个选择标准和期望结果字段。在步骤615,运行时间组件进入处理抽象查询中存在的每个查询选择标准语句,从而构建具体查询的数据选择部分的循环(包括步骤615,620,625和630)。在一种实施方案中,选择标准包括字段名(对于逻辑字段),比较运算符(=,>,<等)和值表达式(什么是正在比较的字段)。在步骤620,运行时间组件使用来自抽象查询选择标准的字段名以在数据仓库抽象515中查找字段的定义。如上所述,字段定义包括用来访问与字段相关的物理数据的访问方法的定义。运行时间组件然后构建(步骤625)正在处理的逻辑字段的具体查询贡献。如这里定义的,具体查询贡献是用来基于当前逻辑字段执行数据选择的具体查询的一部分。具体查询是以语言例如SQL和XML查询表示的查询并且与给定物理数据仓库(例如关系数据库或XML仓库)的数据一致。因此,具体查询用来定位并从由图1中所示的数据库160表示的物理数据仓库中检索数据。对于当前字段产生的具体查询贡献然后添加到具体查询语句630。方法600然后返回到步骤615以开始抽象查询的下一个字段的处理。因此,在步骤615进入的处理对于抽象查询中每个数据选择字段重复,从而将另外的内容构建到待执行的最终查询。

在构建具体查询的数据选择部分之后,运行时间组件识别作为查询执行结果而返回的信息。如上所述,在一种实施方案中,抽象查询定义将作为查询执行结果而返回的抽象字段的列表,在这里称作结果说明。抽象查询中的结果说明可能包括字段名和排序标准。因此,方法600在步骤635进入循环(由步骤635,640,645和650定义)以将结果字段定义添加到产生的具体查询。在步骤640,运行时间组件在数据仓库抽象515中查找结果字段名(从抽象查询的结果说明中),然后从数据仓库抽象515中检索结果字段定义以识别对于当前逻辑结果字段返回的数据的物理位置。运行时间组件然后构建(作为步骤645)逻辑结果字段的具体查询贡献(标识返回数据的物理位置的具体查询)。在步骤650,具体查询贡献然后添加到具体查询语句。一旦抽象查询中每个结果说明已经处理,查询在步骤655执行。

根据步骤640和645构建逻辑字段的具体查询贡献的方法700的一种实施方案参考图7描述。在步骤705,方法700查询与当前逻辑字段相关联的访问方法是否是简单访问方法。如果是,具体查询贡献基于物理数据位置信息构建(步骤710),处理然后根据上面描述的方法700继续。否则,处理继续到步骤715以查询与当前逻辑字段相关联的访问方法是否是过滤访问方法。如果是,具体查询贡献基于一些物理数据实体的物理数据位置信息构建(步骤720)。在步骤725,具体查询贡献使用用来对与物理数据实体相关联的子集数据的另外逻辑(过滤器选择)扩展。处理然后根据上面描述的方法700继续。

如果访问方法不是过滤访问方法,处理从步骤715继续到步骤730,在那里方法700查询访问方法是否是组成访问方法。如果访问方法是组成访问方法,组成字段表达式中引用的每个子字段的物理数据位置在步骤735定位和检索。在步骤735,组成字段表达式的物理字段位置信息替换组成字段表达式的逻辑字段引用,由此产生具体查询贡献。处理然后根据上面描述的方法700继续。

如果访问方法不是组成访问方法,处理从步骤730继续到步骤745。步骤745表示考虑作为本发明实施方案的任何其他访问方法类型。但是,应当理解,考虑不是所有可用访问方法在其中实现的实施方案。例如,在特定实施方案中,仅使用简单访问方法。在另一种实施方案中,仅使用简单访问方法和过滤访问方法。

如上所述,如果逻辑字段指定与底层物理数据不同的数据格式,执行数据转换是必要的。在一种实施方案中,当根据方法700构建逻辑字段的具体查询贡献时,初始转换对于每个各自访问方法而执行。例如,转换可以作为步骤710,720和725的一部分或即刻之后执行。从物理数据的格式到逻辑字段的格式的随后转换在查询在步骤655执行之后执行。当然,如果逻辑字段定义的格式与底层物理数据相同,转换不必要。

在各种实施方案中,许多优点由上述抽象模型提供。在一方面,优点通过定义应用查询说明和底层数据表示之间的松耦合来实现。不是使用特定表格、列和关系信息编码应用,与使用SQL的情况一样,应用以更抽象的方式定义数据查询需求,其然后在运行时间连接到特定物理数据表示。本发明的松查询数据耦合使得请求实体(例如应用)能够起作用,即使底层数据表示被修改或者请求实体使用与当请求实体开发时使用的不同的全新物理数据表示。在给定物理数据表示被修改或重构的情况下,对应数据仓库抽象更新以反应对底层物理数据模型所做的改变。相同集合的逻辑字段可用于查询,并且仅连接到物理数据模型中的不同实体或位置。结果,写到抽象请求接口的请求实体继续起作用而不改变,即使相应物理数据模型具有正在进行的显著改变。如果请求实体以与请求实体开发时使用的不同的全新物理数据表示的形式使用,新的物理数据模型可以使用相同的技术(例如关系数据库)但是遵循命名和组织信息的不同策略(例如不同模式)而实现。新的模式将包含可以映射到由使用简单、过滤和组成字段访问方法技术的应用所需的一组逻辑字段的信息。作为选择,新的物理表示可以使用表示类似信息的备用技术(例如,基于XML数据仓库对关系数据库系统的使用)。在任何一种情况下,写入以使用抽象查询接口的现有请求实体可以容易地迁移以使用新的物理数据表示,如果提供将查询中引用的字段与新的物理数据模型中的位置和物理表示相映射的备用数据仓库抽象。

另一方面,抽象模型便于应用构建者和终端用户的容易使用。使用抽象层以表示底层数据仓库中的逻辑字段使得应用开发者能够集中注意力于关键应用数据需求,而不关心底层数据表示的细节。结果,更高的生产率和减小的错误率在应用开发期间实现。关于终端用户,数据仓库抽象提供数据过滤方案,暴露相关数据和隐藏不由研发给定请求的特定类终端用户所需的不重要内容。

应当注意,这里对特定值、定义、编程语言和实例的任何引用仅为了说明。因此,本发明并不受任何特定说明和实例所限制。此外,当本发明的方面参考选择操作描述时,其他输入/输出操作被考虑,包括众所周知的操作例如添加、修改、插入、删除等。当然,某些访问方法可能对可以使用利用特定访问方法的字段定义的抽象查询功能的类型施加限制。例如,涉及组成访问方法的字段不是修改、插入和删除的可行目标。

在一种实施方案中,抽象框架可以用来创建抽象查询,为了从MIR数据库255获得信息(参考上面描述的组件将由类似的参考数字标识)。利用抽象框架将允许应用265查询MIR数据库255而无需理解底层MIR数据库255模式。该抽象框架设计可以允许多个嗅探器到MIR数据库255中的创建。因为MIR数据库255将具有利用抽象框架的标准化数据库模式,嗅探器创建将有效得多,因为每个嗅探器可以相对于相同的抽象模式而写入,代替不得不对每个非标准化数据存储225创建不同的嗅探器。

在使用抽象框架例如上面描述的一种的环境中,任何字段可以给出当使用字段时将应用的条件。例如,血红蛋白测试的字段在下面表格2中显示:

                    表格2-条件实例

  001<?xml version=“1.0”?>  002<field name=“TestType”>  003<accessmethod>  004<simpleattrname=“TEST_CODE”entityName=“TESTRESULTS”/>  005</accessmethod>  006<type baseType=“float”/>  007</field>  008<field name=“TestValue”>  009<accessmethod>  010<simpleattrname=”numeric_value”entityName=”TESTRESULTS”/>  011</accessmethod>  012<type baseType=“float”/>  013<description>Internal Generic Test Value Field</description>  014</field>  015<fieldtemplate Name=“Hemogloblin”>  016<accessmethod>  017<composed>  018 <composition>DECIMAL(<fieldrefname=<!-- SIPO <DP n="17"> --><dp n="d17"/>“data://Internal/TestValue”/>  019 15,3)</composition>  020<where>  021<condition field=“data://Internal/TestType”operator=“EQ”>  022<value val=“32-2320“/>  023</condition>  024</where>  025</composed>  026</accessmethod>  027<type baseType=“float”/>  028<description>Hemoglobin Test</description>  029<fieldtemplate>

基于上面的字段,值从TESTRESULTS表格的numeric_value列访问。进一步指定,作为血红蛋白测试值,TEST_CODE列的访问值必须是32-2320。抽象模型的该字段定义可以用另外的条件进一步扩充以说明情节。例如,悬而未决(未完成)的血红蛋白测试可以如表格3中所示而写入(仅显示血红蛋白字段和情节字段-TestType和TestValue从上面重新使用):

          表格3-悬而未决的血红蛋白字段实例

  001<field name=“EpisodeComplete”>  002<accessmethod>  003<simpleattrname=“EpisodeComplete”entityName=“TESTRESULTS”/>  004</accessmethod>  005<type basetype=“char”/>  006</field>  007<fieldtemplate name=“Hemoglobin”>  008<accessmethod><!-- SIPO <DP n="18"> --><dp n="d18"/>  009<composed>  010 <composition>DECIMAL(<fieldrefname=“data://Internal/TestValue”  011/>,15,3)</composition>  012<where>  013<condition operator=“AND”>  014<condition field=“data://Internal/TestType”operator=“EQ”>  015<value val=“32-2320”/>  016</condition>  017<condition field=“data://Internal/EpisodeComplete:operator=“EQ”>  018<value val=“0”/>  019</condition>  020</condition>  021</where>  022</composed>  023</accessmethod>  024<type baseType=“float”/>  025<description>Hemoglobin Test</description>  026<fieldtemplate>

选项现在存在以任意方法使用上面的字段,以经由抽象框架导航数据。例如,两组类别可以如表格4中所示创建:

                   表格4-抽象类别实例

001<root>

002<pending episodes>

003  <fields  for  pending  episodes  -  there  have  whereEpisodeComplete=0

004 condition>

005<complete episodes>

006  <field for complete episodes-there have whereEpisodeComplete=1

007 condition>

表格4中的实例定义两种类别,一种对于完成情节而另一种对于未完成情节。该分类允许用户根据这两种定义的类别导航并观看数据,而不管数据相关的特定事件(也就是,血红蛋白测试值,睾丸癌测试值等)。在备选实施方案中,抽象框架允许用户根据血红蛋白测试值导航并观看数据(顶级(父)节点),其根据完成和未完成情节数据分组(子级(子)节点)。在任何一种情况下,这种基础架构的提供允许查询组成以找到相关记录并且暴露那些记录的状态。如果记录由适当配置的嗅探器(基于抽象框架配置,例如上面描述的一个)找到,动作可以对于那些记录而采取。实例动作将包括基于历史数据或基因表示数据关于可能的药物冲突或规定药物有效性的缺乏取消、修改或更改适当的临床人员,或者关于适应他们的研究标准的假定的新进入的诊断信息新预期客户端更改临床研究员。

【结论】

通过提供情节数据到操作数据存储的输入并且维持数据的状态对象,本发明的实施方案允许用户检索更近的且有可能时间关键的信息,同时仍然通知关于情节数据的状态。结果,用户可以允许执行对关系数据库的更有效率、及时且有效的查询。此外,通过提供抽象框架,抽象查询可以使用以便于不需要用户理解底层物理模式的更直观类型的查询,并且可以便于数据嗅探器的创建。

虽然前述针对本发明的实施方案,可以设计本发明的其他和更多实施方案而不背离其基本范围,并且其基本范围由下面的权利要求确定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号