3.2.1.2 CDISC 递交数据 - Value-Level Metadata
以SDTMIG3.2为主,粗体部分在3.4不存在,斜体部分为3.4独有。
总的来说,CDISC V3.x 中的Finding类数据模型为高度规范化的关系(relational)型数据模型,系垂直结构,每行代表一条观测记录。因为V3.x general observation class数据结构是固定的,所以有时在水平(非规范化)结构以列的形式存在的信息,在presentations和reports就要以SDTM Findings行的结构呈现。由于许多不同类型的观测数据最终都需要以同样的结构呈现,从而需要提供额外的元数据来描述预期的差异;例如,血液学实验室结果来自血清化学实验室结果的数据类型、标准单位和其他属性。
又比如,Vital Signs数据domain可能会包含有舒张压和收缩压、身高、体重和身体质量指数(BMI)等参数的受试者记录。所有这些数据均将遵照规范化的SDTM 观测Findings数据结构进行递交,即每一行代表一次生命体征测量结果。这意味着每个受试者每次访视或者每个时间点可能会有五条观测记录(每个参数一条记录),同时参数名称会被存储在变量VSTESTCD/VSTEST,观测结果会保存在相应的结果变量中。由于每一个唯一的Test Code/Names可以具有不同的属性(例如,不同的来源、角色及定义等),因而需要为这些信息提供相应的的value-level metadata描述。
Value-level metadata应该以独立的章节形式在define.xml 中加以说明。该部分内容也曾以”define.pdf“ 的格式进行以递交,但从现在开始需要以XML 格式递交。关于如何以Define-XML 文档格式进行CDISC 数据递交,详见https://www.cdisc.org/standards/data-exchange/define-xml。
4.4. Value Level Metadata Definitions
Define v2.0
基于SDTM、SEND和ADaM模型的数据集使用的规范化数据结构(通常一个记录包含每个受试者每个test code每次visit或observation)提供了一种有效的信息传输方法。但是,在某些情况下,数据集变量元数据不能提供足够的细节来支持数据审查和分析。在这些情况下,Value Level Metadata应该在Define-XML文档中提供。Value Level Metadata允许在涉及一个或多个其他数据集变量的条件下指定变量的元数据。特定条件的变量定义称为Value Level Metadata。
Value Level Metadata在Define-XML中使用def:ValueListDef来指定(详见5.3.8节的详细规范)。值列表定义(Value List definition)或值列表(valuelists)通过定义变量的ItemDef中的def:ValueListRef来与变量定义(variable definitions)链接。关于def:ValueListRef元素的详细规范,请参见5.3.11.2节。
Note: 在definition - xml v1.0.0中,值列表定义(valuelist definition)可以附加给任何变量,但以前做法只附加到Finding类中的--TESTCD变量或special类SUPPQUAL中的SUPP--.QNAM变量。它被假定为描述Test Code(--TESTCD)对应--ORRES变量中的内容和每个SUPP--.QNAM中SUPP--.QVAL变量中的内容。在Define-XML v2.0.0中,应该将值列表(valuelists)附加到被任何需要定义的变量上,以便可以详细定义任意数量的变量。
当需要描述列(column)中单元格子集的不同元数据属性时,应该提供vlm。它最常用于SDTM Findings domains,给变量下定义,例如具体到每个test code(--TESTCD的值)--ORRES,--ORRESU,--STRES,--STRESU。不是所有的Findings domains都需要vlm,对于在所有记录中具有相同特征(characteristics)的结果(results)(例如IE domain),则不需要这样做。在ADaM中,vlm通常基于PARAMCD的值来描述BDS数据结构中的AVAL或AVALC。
Vlm也可以用于其他类型的SDTM domains。例如,在DS中,vlm可以为DSCAT的每个值来定义DSTERM和DSDECOD编码列表(codelists)。
当vlm提供了对解释研究数据有用的信息时,也应当被使用。但它不一定适用于所有情况。
例如,--TEST变量可以由一个包含所有test names的代码列表(codelists)的单一变量指定,也可以使用Value Level Metadata精确地指定哪个test name适合哪个--TESTCD。这两种方法都是有效的,但是vlm方法更复杂,可能不能提供给数据使用者任何有利的信息。由创建者自行决定提供vlm有用或无用。如果数据使用者需要进一步的指导,创建者应该与他们沟通。
在决定是否定义vlm时,一个很好的经验法则是,如果为变量提供vlm意味着每个值都有一个且仅包含一个Codelist Item的代码列表(codelist),那么定义一个代码列表(codelist)可能比定义一个值列表(valuelists)更合适。这就是--TEST和--TESTCD变量的情况。
类似地,如果每个值的DataType和Length属性的值相同,并且不涉及代码列表(codelist),则没有必要提供vlm。vlm仍然可以在需要的情况下提供,例如为一个变量在每次访问时指定一个不同的Origin,但是这种细化程度(level of granularity)不是必需的。
Variable Level Metadata应用于define.xml(table)里column中的所有单元格,除非被Value Level Metadata中的内容覆盖。这适用于column中的某些属性,如长度或代码列表,所以如果column中的Variable Level Metadata指定长度为“8”,但Value Level Metadata没有给出长度,则使用Variable Level Metadata的值“8”。因此,无需提供Value Level Metadata,因为在Value Level的length与Variable Level是一样的,没有必要记录不会更改的属性。(以上内容需与实际情况结合来考虑,之后会进行详细解析。)
Note: 如果代码列表是在Value Level提供的,则不需要在父变量(parent variable)上提供代码列表,两侧level仅只有一侧可以提供代码列表。如果user在两个level上都提供了代码列表,那么在Variable Level定义的代码列表应该是Value Level为父域(specified)的Variable指定的所有代码列表的超集(superset)。
Value Level必须与父变量的定义兼容。例如,任何Value Level长度都不能超过父变量的长度。
结语:
其中一些不同于本身含义的单词皆被我意译。
以上仅为我对SDTMIG v3.2/v3.4和Define-XML-2-0提到的vlm的翻译加理解,之后会对更多实例进行解析,故在此不做vlm总结。