深入解剖SDTM-Define.XML
前情
官方define.xml示例
CDISC官方提供了define.xml,并同时也提供了define2-1.xsl,define2-1.xsl作为stylesheets是一个必不可少的文件。XML的展现及内部取值规则均在stylesheets中。本文介绍define.xml参数一切均是基于官方提供的define2-1.xsl(此文件不做任何更改)。
小编正文
小编将官方提供的define.xml打算分为七部分进行拆分讲解。
第一部分
第一部分
第二部分
第二部分
第三部分
第三部分
图2
列 |
值的来源 |
---|---|
Standard |
由Name+PublishingSet+Version组成 |
Type |
取Type |
Status |
取Status |
Documentation |
对应def:CommentOID指定名称节点下的内容 |
第四部分
第四部分
第五部分
第五部分
参数 |
说明 |
---|---|
SASDatasetName="xxx" |
控制数据集名称 |
def:StandardOID="xxx" |
def:StandardOID=对应前面的Standard内的OID,获取对应的标准及版本 |
def:IsNonStandard="Yes" |
非标准数据集需要def:IsNonStandard="Yes",标准数据集则不需要此参数 |
def:HasNoData="Yes" |
数据集是否有数据,没有数据则def:HasNoData="Yes",该数据集不用提交 |
针对Dataset列,如上图标记处,有多种显示,控制相关显示参数如上表。
Description-Purpose列
此部分相对来说是很简单的,取值和参数位置都十分固定。如上图,各列所对应的取值位置是十分直观的。
keys列
Keys列的取值则是通过<ItemRef KeySequence='xx'>参数控制的,会按照填写的顺序依次抓取对应的变量,填充至Keys列中。
Documentation列
Documentation列的取值,和前面Standard中的Documentation取值方式一样,都是通过def:CommentDef对应的OID进行值的获取。
Location
此部分由如上截图圈起来部分控制。参数说明见上截图。
文档ItemGroupDef介绍
第六部分
第六部分
这部分涉及到的参数也是挺多的,如上各列对应的取值及取值位置。
Type列
Type列,相对来说类型就更加丰富了。Define XML中变量的类型进行了细分,在SAS数据集中类型只有数值型和字符型俩种,而这里就不止了。
Controlled Terms or ISO Format
最后一张图为外部词典的引用。参数大多同CodeList一样。
Origin / Source / Method / Comment
Origin / Source / Method / Comment可以分为四个参数,四块内容整合在一列中。下面先来看看Origin与Source。这俩项的填写比较固定
Method的写法结构很简单,不做过多的介绍了(通过MethodOID去定位获取)。最后就是Comment,这部分存放备注等内容,通过def:CommentOID去定位与获取。
第七部分
第七部分
结束语
关于SDTM-Define.XML的基础知识及参数说明今天就介绍到这里,不难发现,如果我们不借助其他工具其实也能通过XML的语法来写Define,但是这个工作量是巨大的。那么如何能够高效快捷的生成Define.XML呢,或者只用在原有的SDTM Spec文件的基础上改一改,运行一下程序自动生成Define呢,理论上是可以的,实践上问题不大。基于此点,小编利用SAS宏借助设定的Excel模版开发并完成了一套自动化生成SDTM Define的工具。如有兴趣,可以返回文章顶部或顶部原文阅读,查看Define.XML专辑。