基于技术设计文档的数据转换 【技术领域】
本公开一般地涉及用于转换数据的方法,具体地,涉及用于基于对期望的数据转换进行描述的技术设计文档而有效地生成计算机可执行的转换表达式的技术。本公开一般地还涉及可以用于实施数据转换方法的设备。本公开进一步一般地涉及可以实施数据转换方法的系统。
背景技术
在这个所谓信息时代,数据转换,也即将数据从一种形式修改和/或重新安排成另一种形式,已经变成一项无处不在的任务。尽管很多数据转换任务相对较简单,但是很多其他数据转换任务非常复杂,并且对不能按照设计正确转换数据负主要责任。例如,在制药和/或医疗器械行业,需要进行临床试验,以便协助采集针对新药物或新设备的大量安全性数据和功效数据。
取决于产品的类型及其研发阶段,临床试验最初通常招募健康志愿者和/或病人进行小规模研究,之后针对病人进行较大规模研究,其通常将新产品与普遍接受的标准治疗过程进行比较(也即,基于当前可用制药或设备(如果有的话)的治疗)。一般而言,在较大规模功效试验期间,随着正面安全性数据的收集,病人的数量通常会增多。无论给定临床试验的类型和规模如何,在临床试验期间获得的数据必须提交给负责的政府管理机构,以便全面审查正在研发的新产品。例如在美国,食品及药物管理局(FDA)负责新药物和医疗器械的批准。
临床数据交换标准协会(CDISC)在研发用于帮助FDA对安全性数据和功效数据实施审查和批准过程的标准方面投入了大量精力。此标准格式有时称为研究数据表格模型(SDTM)格式。把在临床试验期间捕获的数据(该数据在形式和内容上可以有非常大的变化)转换为期望的SDTM格式的需求正在增长。典型地,数据转换分为两步骤:首先,数据映射将数据元素从源映射到目标,并且捕获必须发生的任何转换;其次,执行代码生成以创建必需的转换程序,也即可以在计算机系统上运行的可执行软件程序。在典型的转换过程中,创建技术设计文档,例如指定了如何根据特定SDTM变量将输入数据映射到输出数据的基于元数据的映射图表,以便建立必要的映射规则。例如,通常以电子表格的形式捕获技术设计文档,其中每行列出了期望的数据转换。此后,利用数据转换工具(诸如CSS Informatics的“Tabletrans(表格转换)”可视数据库编程软件或SAS软件研究所的“SAS”Data Integration Studio可视设计工具)来开始设计转换程序。这种设计转换工具利用图形用户界面(GUI),在该GUI中,可以根据需要、按照技术设计文档中描述的转换规则来布置和排列代表各种转换操作的图标。每个图标代表以基础统计学或数据库编程语言编写的相对成熟的数据处理功能。由于每个图标底层的程序是全面测试过的,因此可以设计出可靠的数据转换程序。换言之,通过解释经由GUI建立的图标的布置和排列,可以基于预先构建的功能生成更复杂的数据转换程序。
对于单次临床试验而言,需要创建如上所述的15-20个不同的数据转换程序并不罕见。考虑到这个,假设有3-4个资源工作于上述转换程序,开发新研究的整个过程通常需要至少15-20天。即使使用数据转换工具,目前总的数据映射过程仍然是冗长的过程,有时候在从技术设计文档捕捉要求时容易出错。
尽管上述临床试验示例示出了现有技术的某些缺陷,但是可以理解这些局限并不是临床试验中所用的数据转换领域特有的。其实,实际上任何需要相对复杂数据转换的努力,例如财务交易中的数据分析,都会遭遇同样的缺陷。因此,有利的是提供克服现有技术的局限的数据转换技术、数据转换设备和系统。
【发明内容】
本公开描述了用于转换数据的技术,其基本上不需要如上所述的数据转换工具。这是通过首先获取包括用于将输入数据转换为输出数据的规则的非机器可执行表达式的技术设计文档而实现的。在一个实施方式中,利用图形用户界面来指定如何获取技术设计文档。也可以利用图形用户界面来指派输入数据和输入数据地位置。之后,对技术设计文档进行解析,使得规则的非机器可执行表达式可以用作生成机器可执行转换表达式的基础。例如,机器可执行转换表达式可以包括本领域公知的适合的查询语言表达式。得到的机器可执行转换表达式可选地可以进行存储,并且随后应用于驻留在一个或多个适当的存储库中的输入数据。通过这种方式,此处所描述的技术不需要使用数据转换工具来捕获数据转换规则,而是依靠直接从技术设计文档捕获规则,由此提高效率和准确性。本公开还描述了可以用于实施数据转换方法的设备,并且进一步公开了可以实现上述数据转换方法和数据转换设备的系统。
【附图说明】
本公开中所描述的特征在所附权利要求中具体阐述。这些特征及其带来的优点从以下结合附图的详细描述中将变得明显。现在仅作为示例,参考附图描述一个或多个实施方式,附图中类似的参考标记表示类似的元素,其中:
图1是根据此处所描述的各种实施方式、用于实施转换数据的技术的系统框图;
图2是根据此处所描述的各种实施方式、用于转换数据的装置(或者称为数据转换设备)的框图;
图3是示出了根据此处所描述的一个实施方式的处理的流程图;
图4示出了结合此处所描述的各种实施方式使用的数据转换设备可以输出的图形用户界面的示例;以及
图5示出了可以结合此处所描述的各种实施方式一起使用的技术设计文档的示例。
【具体实施方式】
现在参考图1,其示出了包括与一个或多个存储库104通信的至少一个数据转换设备102(为了容易说明,仅示出了一个)的系统。尽管示出了大量细节,但是可以理解,数据转换设备102可以经由任何便利的通信通道与存储库104通信。例如,在一个实施方式中,数据转换设备102经由一个或多个适当的网络与存储库104通信,网络包括诸如局域网(LAN)的私有网络和/或诸如因特网或万维网的公共通信网络。并且进一步地,也可以采用无线通信信道。本领域技术人员将会理解,为此目的可以采用多种适当技术中任何一种,并且本公开并不局限于此。
如图所示,数据转换设备102包括至少一个处理器110,其耦合到一个或多个存储组件112、114。例如,在一个实施方式中,提供程序存储组件112,其包括存储的可执行指令以用于控制一个或多个处理器110的操作;提供另一存储组件114,其包括存储的可以在一个或多个处理器110上操作的数据。尽管程序存储组件112和其他存储组件114图示为相互分离,但是在实践中,可以理解存储组件112、114可以使用相同的物理设备来实现。例如,存储组件112、114可以包括一个或多个易失性和/或非易失性存储器,包括但不限于随机访问存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM),等等。一个或多个存储器110可以包括微处理器、微控制器、数字信号处理器或任何其他组件或其能够执行所存储的指令以及操作所存储的数据的组合。图1示出的此类处理器和存储装置对于本领域普通技术人员来说是公知的,并且可以容易地并入各种其他适当的装置。例如,数据转换设备102可以具体化在桌上型/膝上型/手持型计算机、个人数字助理、移动电话等之中。无论采用哪种特定类型的设备102,这种装置可以用于实施按照下文描述的各种实施方式的处理。
在一种实施方式中,设备102包括一个或多个用户输入/输出设备120、显示器118以及一个或多个通信接口116,这些设备均与处理器110通信。用户输入/输出设备120可以包括用于将用户输入提供给处理器110或者从处理器110绘制用户输出的任何装置。例如,为了接受用户输入,设备120可以包括键盘、鼠标、触摸屏、手写笔或本领域普通技术人员公知的任何其他装置。当绘制用户可感知的用户输出时,设备120可以包括扬声器、指示灯、触摸屏,等等。而且,用户输入/输出设备120可以包括各种介质驱动器,诸如闪存驱动器、磁盘驱动器和/或光盘驱动器。显示器118可以包括任何传统的显示装置,诸如阴极射线管(CRT)、平板显示器或本领域普通技术人员公知的任何其他显示装置。用于从处理器110向显示器118提供显示数据的技术在本领域是公知的。在一个实施方式中,如本领域公知的,显示器118可以用于实现图形用户界面122。具体地,如下文进一步描述的,当结合用户输入设备120一起操作时,图形用户界面可以用于从设备102的用户请求并接收输入。一个或多个通信接口116可以包括允许处理器110如上所述地经由有线网络或无线网络与一个或多个存储库104通信的硬件和/或软件。如进一步示出地,一个或多个通信接口116也可以用于与存储库104之外的设备通信,诸如其他处理设备、网络、电子邮件服务器,等等。同样地,这种接口116的实现对于本领域技术人员是公知的,不需要在此做进一步详细描述。
取决于其中存储的数据类型,一个或多个存储库104可以使用一个或多个适当编程的服务器计算机来实现。如本领域所公知的,这种服务器可以位于共同地点或者是在地理上分布的。可选地,至少一个存储库104可以包括一个或多个本地计算机(例如,用户终端)的存储器,无论这些存储器可直接访问还是经由联网环境。本领域普通技术人员可以理解,实际上能够存储数据的任意类型的设备都可以视为存储库,其仅受限于适当的处理设备(例如,数据转换设备102)访问其上存储的数据的能力。在一个实施方式中,存储在一个或多个存储库上的数据可以包括如前所述的通过进行临床试验而获得的数据。然而,应当理解,此处公开的实例并不局限于这点并且此处所描述的技术可以很容易地应用于需要转换的任意类型的数据。无论存储库104中存储哪种数据类型,如本领域所公知的,数据的实际形式可以变化,并且可以包括通过各种实体生成的数字化表示的文档、电子表格、电子邮件、短消息服务(SMS)消息,等等。也可以采用更为复杂的数据格式,诸如web页面、web日志、wiki页面、图像、视频,等等。在一种具体可应用于与临床试验相关联的数据的实施方式中,如本领域公知的,可以用电子病例报告表(e-CRF)来捕获数据。无论采用哪种特定格式,如下文所进一步详细描述地,都能够分析和转换存储在一个或多个存储库中的数据。
图1中所示的至少一个数据转换设备102可以用于实现在执行此处所描述的技术时所使用的特定结构。图2的示例中示出了这种结构。在一个实施方式中,图2中示出的组件202-206可以使用一个或多个适当的处理器、专用集成电路(ASIC)可编程逻辑阵列、状态机或本领域普通技术人员公知的任何其他适当设备来实现。用于实现这种组件202-206(每个组件包括下文描述的功能)的技术对于本领域普通技术人员而言是公知的。类似地,图2中所示的存储组件208-210可以具体化为图1中示出的存储库104或其他存储装置114。尽管图1中示出的处理设备102包括用于实施本公开的实施方式的适当平台,但是本领域普通技术人员可以进一步理解,为此目的同样可以采用其他实施平台(例如,专用电路(ASIC)、可编程逻辑阵列、状态机,等等)并且本公开并不限于此。
如图所示,图2的装置包括技术设计文档输入组件202,其与解析和可执行表达式生成组件204通信。输入组件202工作以获取技术设计文档,以供生成组件204使用。一般而言,输入组件202从一个或多个存储组件114或通信接口116或用户输入/输出设备120获取技术设计文档。技术设计文档可以包括数字化存储的文档,其包括用于将指定的输入数据转换为指定的输出数据的一个或多个规则的非机器可执行表达式。例如,技术设计文档可以包括电子表格(诸如“EXCEL”电子表格)或能够经由例如java数据库连接性(JDBC)或开放数据库连接性(ODBC)应用编程接口来访问的其他开放数据库。电子表格的每一行(或者其他文档类型中的类似结构单元)可以包括用高级语言表达的规则,其是对规则的描述,但是不能被机器执行,也即仅仅是人类可读的格式。用这种方式表达规则允许快速、直观地定义规则,而不需要掌握特殊编程语言。下文参考图5更具体地描述了适当的技术设计文档格式的一个具体示例。
若这样,输入组件202可以基于预先确定的有关去何处寻找技术设计文档的知识(例如,存储库104内的已知位置)来操作。可选地,输入组件202可以提供适合于图形用户界面使用的显示数据(诸如图4中示出的示例,将在下文描述),从而装置的使用者可以输入用于定位技术设计文档的必要信息,例如,统一资源定位符(URL)或功能类似的地址信息。用于产生供图形用户界面使用的显示数据的技术在本领域是公知的。
一旦输入组件202获取了技术设计文档,生成组件204就可以(例如,经由上面提到的数据库访问模式之一)访问该技术设计文档以对其内包含的各种规则的非机器可执行表达式进行解析。用于解析文档的技术,尤其是解析电子表格或其他开放式数据库的技术在本领域是公知的。通常,解析包括遍历文档的内容以识别特定符号串或标记的存在,以及输出这种标记。得到的标记继而按照语法进行处理以识别对应于已知操作的特定表达式,随后在语义上分析这些表达式以生成机器可执行转换表达式或代码。当生成机器可执行转换表达式时,生成组件204可以利用生成组件204内部或外部的代码库。图2中示出了外部代码库205的示例。在代码库205位于生成组件204的外部的情况下,所述代码库205和生成组件204可以位于共同地点(也即,可以构成单个设备的部分)或者可以分开放置(也即,可以构成两个或更多设备的部分)。代码库205包括映射到经由解析过程识别的非机器可执行表达式的机器可执行转换表达式。按这种方式,非机器可执行表达式的实例可以得到机器可执行转换表达式,而不需要使用诸如上面描述的数据转换工具之类的居间系统。尽管机器可执行转换表达式可以从任何适当的机器语言中提取,不过在一个实施方式中,这种表达式提取自适当的查询语言,公知的例子包括结构化查询语言(SQL)或XQuery。
在下文详细描述的一种备选实施方式中,除了上面提到的非可执行表达式之外,技术设计文档可以包括代表转换规则的机器可执行转换表达式。在这种情况下,生成组件204不必解析机器可执行转换表达式,而是直接将它们并入其输出中。
将生成组件204输出的机器可执行转换表达式提供给转换组件206。转换组件206与存储输入数据212和输出数据214的第一存储组件208通信。可选地,可以提供第二存储组件210以存储机器可执行转换表达式并且随后由转换组件206取回。转换组件206实现机器可执行转换表达式的实际执行。因此,例如当机器可执行转换表达式包括查询语言指令或代码时,转换组件206可以包括适当的数据库管理系统(DBMS),诸如Inform数据库或Oracle临床数据库。
现在参考图3,其示出了描述根据本公开的处理的流程图。图3中示出的处理可以使用图1和图2中示出的机器来实现。处理开始于框302,获取包含非机器可执行规则的技术设计文档。如前所述,这种文档可以通过预先确定的有关在何处查找该文档的知识来获取,或者响应于用户输入而获取。如前面进一步描述的,可以利用图形用户界面来请求和接收用户输入。参考图4示出了适当的图形用户界面400的具体示例。如图所示,GUI 400可以包括多种用户输入字段402-414,除了其他功能之外,这些字段允许用户定义到何处获取技术设计文档,并且指定到何处查找输入数据以及将输出数据放置于何处。
例如,提供领域字段402,其允许用户指定可应用于待转换的特定输入数据的领域。一般而言,领域是基本数据的具体期望视图的名称。例如,在临床试验数据的环境中,领域可以包括“人口统计”、“不良事件”、“结果”或与临床试验数据具体相关的其他分类词。规范字段404允许用户输入位置信息,诸如URL或类似的位置信息。在所示示例中,技术设计文档包括驻留在本地C盘驱动上的标题为“Spec”的电子表格。定义字段406允许用户指定描述技术设计文档的结构(例如,输入列、规则、输出列)的文档。这种情况下,描述技术设计文档的结构的文档是标题为“Define”的另一电子表格。
在此示例中,由表格字段408、输入字段410和表单字段412支持有关输入数据位置的信息的输入。表格字段408指定输入表格的名称(在此示例中是称为“TT_TMP_”的表格)。输入字段410容许输入特定输入视图名称,在此示例中是名为“CV_FRM”的输入视图。类似地,表单字段412允许所选表格的特定部分的描述(在此示例中假设包括电子表格的一个或多个“表单”,如本领域所公知的)。类似地,提供目的地字段414以允许用户指定用于存储生成的机器可执行转换表达式(或脚本)的位置(此处是将要存储在本地C盘驱动上的标题为“SQL_script”的文本文档)。当完成或修订了各个字段402-414后,用户可以从一对按钮小工具416、418中进行选择,从而可以提交所输入的数据以进行处理,或者清除输入的数据。
无论采取哪种方式获取技术设计文档,处理在框304中继续,其中如上所述的,对技术设计文档进行解析和分析,以便生成将输入数据按照技术设计文档中提出的规则进行转换所需的机器可执行转换表达式。图5中进一步示出了可以用于此目的的技术设计文档的示例。在所示示例中,技术设计文档500包括具有多个行502的电子表格,其中每一行给出了给定数据转换规则的细节。如进一步示出的,提供各个列以指定输入数据规范504、转换规则506和输出数据规范508。输入数据规范504用于基于领域字段402中指定的领域以及输入字段410中指定的输入视图(例如,技术设计文档500中的一行502)来筛选数据。在所示实施方式中,转换规则506列包括动作列和规则列。动作列提供了指示符,其可以包括“L”值或“C”值。“L”值指示表达为逻辑算子的对应规则,其可以如上所述地进行解析以创建如上所述的机器可执行转换表达式。例如,在标示为502b的行中,“L”值指示应当解析标记“ISO2”以推出必需的机器可执行转换表达式。可选地,“C”值指示对应规则中列出的表达式已经是机器可执行转换表达式并且可以直接递送给输出。例如,在标示为502a的行中,“C”值指示表达式“decode(VALUE,‘1’,‘100%’,...)”应当作为输出直接递送(无需解析、语法或语义分析等)。输出数据规范508指示SQL输入表格/视图的列(也即,由输入字段410指定输入表格/视图的名称)必须转换成什么,换言之,必须使用规则/功能506将输入视图/表格的输入数据规范504所指示的列转换成输出数据规范508所指定的输出列。
再次参考图3,在生成机器可执行转换表达式之后,处理继续到框306,其中通过执行机器可执行转换表达式,将指定的输入数据转换为输出数据。如上所提到的,在执行之前可以存储机器可执行转换表达式,或者可以将机器可执行转换表达式直接提供给实现转换的设备以便立即执行。
如上所述,本公开提供了用于更为有效地实现数据转换的技术。这是通过直接解释描述期望的数据转换的技术设计文档而实现的而不是实施使用数据转换工具来生成可执行转换的中间步骤。至少基于这些原因,上述技术表现出了相对于现有技术教导的进步。
尽管示出和描述了特定优选实施方式,但是本领域技术人员将理解,可以做出多种改变和变形而不偏离本教导。例如,尽管提到将上述技术应用于临床试验数据,但是可以理解,这些技术同样可以应用于可能需要相对复杂的转换的各种各样的数据,例如财务数据。因此可以预料到对上述教导的任何以及所有变形、变换或等效物均落入上面公开的以及此处所请求保护的基本底层原理的范围内。