SAS 9.2 CDISC Procedure - User's Guide
SAS 9.2 CDISC Procedure - User's Guide
What’s New v
Overview v
PART 1 Concepts 1
What Is CDISC? 3
CDISC Procedure Capabilities for Validating a CDISC SDTM SAS Data Set 11
PART 2 Usage 13
Processing 16
Options 19
Statement Syntax 28
Example: Exporting a CDISC ODM XML Document with Metadata Attributes in SAS
Data Sets 33
Example: Exporting a CDISC ODM XML Document with Required and Optional
Statements 38
Example: Describing a CDISC ODM SAS Data Set with the CONTENTS
Statement 42
iv
PART 4 Appendixes 79
Recommended Reading 89
Index 91
What’s New
Overview
The SAS 9.2 CDISC procedure supports validating a SAS data set against CDISC
(Clinical Data Interchange Standards Consortium) Study Data Tabulation Model
(SDTM) standards. In addition, several enhancements are implemented for importing
and exporting a CDISC Operational Data Model (ODM) XML document.
3 The PROC CDISC statement now includes the LANGUAGE= option to specify a
language identifier. See “PROC CDISC Statement for CDISC ODM” on page 55.
3 The ORDERNUMBER= processing option determines whether PROC CDISC
validates OrderNumber attributes when you import a CDISC ODM XML
document. See “ODM Statement” on page 57.
3 PROC CDISC behavior to determine the sources of captured SAS data set and
variable labels is controlled by the new USENAMEASLABEL= processing option.
See “ODM Statement” on page 57.
3 The CLINICALDATA statement now supports the INVESTIGATORREF= option to
determine whether to import the unique identifier for the investigator user, and
the SITEREF= option to determine whether to import the unique identifier for the
clinical data study location. See “CLINICALDATA Statement” on page 71.
1
1
P A R T
Concepts
CHAPTER
1
Introduction to the CDISC
Procedure
What Is CDISC? 3
What Is the CDISC Procedure? 3
Overview of PROC CDISC Syntax 4
What Is CDISC?
CDISC is an organization that develops industry standards. The standards support
the electronic acquisition, exchange, and archival of clinical trials data and metadata
for medical and biopharmaceutical product development. CDISC defines several data
models for the interoperability of clinical data exchange.
The mission of CDISC is to develop and support global, platform-independent data
standards that enable information system interoperability to improve medical research
and related areas of health care.
For more information about CDISC, see the Web site at www.cdisc.org.
Note: The CDISC mission statement above is cited from the CDISC Web site. In
addition, some explanations in the CDISC procedure documentation are from the
CDISC standards descriptions. �
The following PROC CDISC code shows the syntax that is required to import an
XML document that conforms to CDISC ODM version 1.2:
proc cdisc model=odm read=xmlinp;
odm odmversion="1.2";
clinicaldata out=results.ae sasdatasetname="AE";
run;
The following PROC CDISC code shows the syntax that is required to validate a SAS
data set that conforms to CDISC SDTM version 3.1:
CHAPTER
2
Importing and Exporting a CDISC
ODM XML Document
item group describes a closely related set of study items that are usually
analyzed together.
study event describes a data collection event such as a patient visit. A series of
forms might be collected as part of a study event. A study event is
associated with a specific patient in the study.
6 CDISC ODM KeySet Members � Chapter 2
CDISC ODM defines the following metadata to describe the types of study events,
forms, item groups, and items that are allowed in the study:
StudyEventDef describes a particular instance of a study event.
FormDef describes a particular instance of a form.
ItemDef describes a particular instance of an item.
ItemGroupDef describes a particular instance of an item group.
CodeList defines a discrete set of permitted values for an item or a more
human-readable description of an encoded value.
Metadata contains internal and external attributes that identify the entity for which
information is provided. The internal attributes designate entities within the model
and allow cross-references to be defined between entities, both within and between
CDISC ODM XML documents. Internal attributes include an object instance identifier
(OID), a subject key, and repeat keys.
3 An OID uniquely identifies each entity. For example, a StudyOID is assigned to
uniquely identify each study, a StudyEventOID is assigned to uniquely identify
each StudyEventDef within a study, a FormOID is assigned to uniquely identify
each form used in a StudyEventDef, and so on.
3 The subject key identifies a subject within a study.
3 The repeat key identifies an entity as one of a series. For example, there can be
several study events of a particular type for a particular subject. The repeat key
temporarily relates the distinct study events to each other.
The external attributes are used by clinical personnel to specify information that is
unique to the entity. These attributes include subject randomization codes, site codes,
and so on. Within CDISC ODM, the attributes are treated as part of the clinical trials
data.
The set of attributes that are required to reference a single entity is referred to as a
KeySet. For more information about the CDISC ODM KeySet, see “CDISC ODM
KeySet Members” on page 6.
<SubjectData SubjectKey="001">
TransactionType="Insert">
3 When importing, KeySet members (KeySet attributes) that are in the input XML
document are converted to SAS variables and values in the output SAS data set.
3 When exporting, KeySet members (SAS variables and values) that are in the input
SAS data set are converted to KeySet attributes in the output XML document.
The following tables list the results of importing and exporting KeySet members:
Table 2.1 Importing KeySet Members from a CDISC ODM XML Document
* The first two characters in resulting SAS variable names are two underscores to ensure that
the name is unique.
parameters and controls the maximum length of SAS names that is valid.
ODMMAXIMUMOIDLENGTH=number
when importing, specifies a character length for CDISC ODM KeySet members.
ODMMINIMUMKEYSET=NO|YES
For more information about processing options, see the “ODM Statement” on page 57.
Importing and Exporting a CDISC ODM XML Document � Introduction to CDISC ODM Metadata Attributes 9
For examples of how the KeySet processing options affect the data in an import
operation, see “Example: Importing a CDISC ODM XML Document Using Default
KeySet Processing” on page 16, and “Example: Importing a CDISC ODM XML
Document Specifying KeySet Processing Options” on page 19.
odm odmversion="1.2"
fileoid="000-00-0000"
filetype=SNAPSHOT
description="Adverse events from the CTChicago file";
The following example references those same metadata attributes stored in a SAS
data set:
odm data=current.odm;
The SAS DATA step code shows how CURRENT.ODM, which contains the metadata
attributes, is created:
data current.odm;
odmversion="1.2";
fileoid="000-00-0000";
filetype="SNAPSHOT";
description="Adverse events from the CTChicago file";
run;
The following example illustrates how the same PROC CDISC code can be used to
export data for many studies:
globalvariables data=metadata.globals;
basicdefinitions data=metadata.basic;
metadataversion data=metadata.metadata;
presentation data=metadata.present;
user data=metadata.users;
location data=metadata.location;
signature data=metadata.signature;
clinicaldata data=clindata.ae;
run;
domain="AE"
name="Adverse Events"
CHAPTER
3
Validating a CDISC SDTM SAS
Data Set
CDISC Procedure Capabilities for Validating a CDISC SDTM SAS Data Set
PROC CDISC performs the following checks on domain content:
3 Verifies that all required variables are in the SAS data set.
3 Reports as an error any variables in the SAS data set that are not defined in the
domain. Compared to CDISC SDS version 2.x, CDISC SDTM version 3.1 has more
restrictions.
12 CDISC Procedure Capabilities for Validating a CDISC SDTM SAS Data Set � Chapter 3
3 Reports a warning for any expected domain variables that are not in the SAS data
set. Compared to CDISC SDS version 2.x, CDISC SDTM version 3.1 has more
required domain variables.
3 Notes any permitted domain variables that are not in the SAS data set. PROC
CDISC finds general omissions, but it is up to the site administrator to determine
whether the omissions are appropriate.
3 Verifies that all domain variables are of the expected data type and proper length.
For example, the validation reports if the SAS data set has SAS date and time
variables that require ISO 8601 expansion.
3 Detects any domain variables that are assigned a controlled terminology
specification by the domain and do not have a SAS format assigned to them. Only
an assigned format is required.
PROC CDISC also performs the following checks on domain content on a
per-observation basis:
3 Verifies that all required variable fields do not contain missing values.
3 Detects occurrences of expected variable fields that contain missing values.
3 Detects the conformance of all ISO 8601 assigned values, including date, time,
datetime, duration, and interval types.
3 Notes correctness of YES or NO and YES, NO, or NULL responses.
With the exception of YES or NO and YES, NO, or NULL content, PROC CDISC does
not validate the content of controlled terminology against a list of acceptable values.
Note: PROC CDISC does not do the following operations:
3 Automatically generate a V5 XPORT file from the SAS data set.
3 Create an XML document. PROC CDISC performs STDM 3.1 data content
validation only.
�
13
2
P A R T
Usage
14
15
CHAPTER
4
CDISC Procedure Examples for
CDISC ODM
Example: Importing a CDISC ODM XML Document Using Default KeySet Processing 16
Overview 16
Program 16
Output 17
Example: Importing a CDISC ODM XML Document Specifying KeySet Processing Options 19
Overview 19
Program 19
Output 20
Overview 21
Program 24
Output 25
Overview 27
Program 27
Output 27
Example: Exporting a CDISC ODM XML Document with Metadata Attributes in Statement Syntax 28
Overview 28
Program 28
Output 29
Example: Exporting a CDISC ODM XML Document with Metadata Attributes in SAS Data Sets 33
Overview 33
Program 34
Output 36
Example: Exporting a CDISC ODM XML Document with Required and Optional Statements 38
Overview 38
Program 39
Example: Describing a CDISC ODM SAS Data Set with the CONTENTS Statement 42
Overview 42
Overview 46
16 Example: Importing a CDISC ODM XML Document Using Default KeySet Processing � Chapter 4
Overview
This example imports clinical trials data from a CDISC ODM XML document that is
named AE.XML, and creates a SAS data set that is named RESULTS.AE.
The example illustrates the default behavior for KeySet members written to the
output SAS data set. All KeySet members that are in the input XML document are
converted to SAS variables and values in the output SAS data set.
To view the AE.XML document, see “Sample CDISC ODM XML Document” on page
81.
Program
The following SAS program imports the XML document as a SAS data set:
1 The LIBNAME statement assigns the libref RESULTS to the physical location of
the output SAS data set.
2 The FILENAME statement assigns the fileref XMLINP to the physical location of
the input XML document (complete pathname, filename, and file extension) to be
imported.
3 The PROC CDISC statement specifies the following:
3 CDISC ODM as the model.
3 Fileref XMLINP, which references the physical location of the input XML
document to be imported.
3 FORMATACTIVE=YES to convert CDISC ODM CodeList content in the XML
document to SAS formats.
3 FORMATNOREPLACE=NO to replace existing SAS formats in the FORMAT
catalog that have the same name as the converted formats.
4 ODMMINIMUMKEYSET=NO in the ODM statement specifies that all KeySet
members are written to the output SAS data set. This is the default setting for
ODMMINIMUMKEYSET=.
5 The CLINICALDATA statement identifies the output SAS data set, which is
indicates where the data content in the XML document begins, which is AE.
6 The CONTENTS procedure lists the contents of the output SAS data set. The
VARNUM option lists the variables in the order in which they were created.
libname results ’C:\myfiles\’; u
read=xmlinp
formatactive=yes
formatnoreplace=no;
run;
CDISC Procedure Examples for CDISC ODM � Output 17
run;
Output
The output from PROC CONTENTS displays the attributes of each interpreted
variable, such as the variable’s type and length. The attributes are obtained from the
embedded metadata content.
Because ODMMINIMUMKEYSET=NO, all KeySet members are written to the
output SAS data set. These are the first 10 variables listed in the output. (The first two
characters in resulting SAS variable names are two underscores.)
The maximum OID length, which is 100, is allocated to each KeySet member.
18 Output � Chapter 4
Overview
This example imports clinical trials data from a CDISC ODM XML document that is
named AE.XML, and creates a SAS data set that is named RESULTS.AEMIN.
The example illustrates the results of specifying the KeySet processing options
ODMMINIMUMKEYSET=YES and ODMMAXIMUMOIDLENGTH= in the ODM
statement. Only the unique SubjectKey member is written to the output SAS data set.
The character length for the KeySet members is reduced from the default OID length.
To view the AE.XML document, see “Sample CDISC ODM XML Document” on page
81.
Program
The following SAS program imports the XML document as a SAS data set:
1 The LIBNAME statement assigns the libref RESULTS to the physical location of
the output SAS data set.
2 The FILENAME statement assigns the fileref XMLINP to the physical location of
the input XML document (complete pathname, filename, and file extension) to be
imported.
3 The PROC CDISC statement specifies the following:
3 CDISC ODM as the model.
3 Fileref XMLINP, which references the physical location of the input XML
document to be imported.
3 FORMATACTIVE=YES to convert CDISC ODM CodeList content in the XML
document to SAS formats.
3 FORMATNOREPLACE=NO to replace existing SAS formats in the FORMAT
catalog that have the same name as the converted formats.
4 ODMMINIMUMKEYSET=YES in the ODM statement specifies that only the
read=xmlinp
formatactive=yes
formatnoreplace=no;
20 Output � Chapter 4
odm odmversion="1.2"
odmminimumkeyset=yes x
odmmaximumoidlength=18;
Output
The output from PROC CONTENTS displays the attributes of each interpreted
variable, such as the variable’s type and length. The attributes are obtained from the
embedded metadata content.
Because ODMMINIMUMKEYSET=YES, only the SubjectKey is written to the output
SAS data set, which is the first variable listed in the output.
Because ODMMAXIMUMOIDLENGTH=18, an OID length of 18 is allocated.
CDISC Procedure Examples for CDISC ODM � Overview 21
1 __SubjectKey Char 18
2 TAREA Char 4 $TAREAF.
3 PNO Char 15
4 SCTRY Char 4 $SCTRYF.
5 F_STATUS Char 1 $F_STATU.
6 LINE_NO Num 8 2.
7 AETERM Char 100
8 AESTMON Num 8 2.
9 AESTDAY Num 8 2.
10 AESTYR Num 8 4.
11 AESTDT Num 8 DATE.
12 AEENMON Num 8 2.
13 AEENDAY Num 8 2.
14 AEENYR Num 8 4.
15 AEENDT Num 8 DATE.
16 AESEV Char 1 $AESEV.
17 AEREL Char 1 $AEREL.
18 AEOUT Char 1 $AEOUT.
19 AEACTTRT Char 1 $AEACTTR.
20 AECONTRT Char 1 $AECONTR.
Overview
This example imports clinical trials data from a CDISC ODM XML document by
specifying a language identifier with the LANGUAGE= option in the PROC CDISC
22 Overview � Chapter 4
statement. By specifying the LANGUAGE= option, PROC CDISC locates the matching
language identifier in the ODM TranslatedText element. It creates a SAS format by
using the TranslatedText items with a matching language tag attribute (xml:lang). The
created SAS format is then applied to the data that is imported from the XML
document.
This example imports the following XML document:
http://www.cdisc.org/standards/index.html
-->
<ODM xmlns="http://www.cdisc.org/ns/odm/v1.2"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.cdisc.org/ns/odm/v1.2 ODM1-2-0.xsd"
ODMVersion="1.2"
FileOID="000-00-0000"
FileType="Snapshot"
AsOfDateTime="2006-11-03T09:47:53"
CreationDateTime="2006-11-03T09:47:53"
SourceSystem="SAS"
SourceSystemVersion="GENERIC"
>
<Study OID="AStudyOID">
<!--
GlobalVariables is a REQUIRED section in ODM markup
-->
<GlobalVariables>
<StudyName>CODELIST</StudyName>
<StudyDescription>Checking Codelists</StudyDescription>
<ProtocolName>Protocol</ProtocolName>
</GlobalVariables>
<BasicDefinitions />
<!-
Internal ODM markup required metadata
-->
<MetaDataVersion OID="MDV_CODELIST" Name="MDV Codelist">
<Protocol>
<StudyEventRef StudyEventOID="StudyEventOID" OrderNumber="1"
Mandatory="Yes" />
</Protocol>
CDISC Procedure Examples for CDISC ODM � Overview 23
<!-
Columns defined in the table
-->
<ItemGroupDef OID="X" Repeating="Yes"
SASDatasetName="X"
Name="ODM Examples"
Comment="Examples of ODM Datatypes">
<ItemRef ItemOID="ID.x" OrderNumber="1" Mandatory="No" />
</ItemGroupDef>
<!-
Column attributes as defined in the table
-->
<ItemDef OID="ID.x" SASFieldName="x" Name="x" DataType="float" Length="12"
SignificantDigits="2" Comment="x">
<CodeListRef CodeListOID="CL.NUMBERS" />
</ItemDef>
<!-
Translation to ODM markup for any PROC FORMAT style
user defined or SAS internal formatting specifications
applied to columns in the table
-->
<CodeList OID="CL.NUMBERS" SASFormatName="NUMBERS" Name="NUMBERS"
DataType="float">
<CodeListItem CodedValue="1">
<Decode>
<TranslatedText xml:lang="de">einz</TranslatedText>
<TranslatedText xml:lang="en">one</TranslatedText>
<TranslatedText xml:lang="es">uno</TranslatedText>
</Decode>
</CodeListItem>
<CodeListItem CodedValue="2">
<Decode>
<TranslatedText xml:lang="de">zwei</TranslatedText>
<TranslatedText xml:lang="en">two</TranslatedText>
<TranslatedText xml:lang="es">dos</TranslatedText>
</Decode>
</CodeListItem>
<CodeListItem CodedValue="3">
<Decode>
<TranslatedText xml:lang="de">drei</TranslatedText>
24 Program � Chapter 4
<TranslatedText xml:lang="en">three</TranslatedText>
<TranslatedText xml:lang="es">tres</TranslatedText>
</Decode>
</CodeListItem>
</CodeList>
</MetaDataVersion>
</Study>
<!-
Administrative metadata
-->
<AdminData />
<!-
Actual data content begins here
-->
<ClinicalData StudyOID="AStudyOID" MetaDataVersionOID="MDV_CODELIST">
<SubjectData SubjectKey="001">
<StudyEventData StudyEventOID="StudyEventOID" StudyEventRepeatKey="1">
<FormData FormOID="X" FormRepeatKey="1">
<ItemGroupData ItemGroupOID="X" ItemGroupRepeatKey="1">
<ItemData ItemOID="ID.x" Value="3" />
</ItemGroupData>
</FormData>
</StudyEventData>
</SubjectData>
</ClinicalData>
</ODM>
Program
The following SAS program imports the XML document as a SAS data set:
1 The LIBNAME statement assigns the libref RESULTS to the physical location of
the output SAS data set.
2 The FILENAME statement assigns the fileref XMLINP to the physical location of
the input XML document (complete pathname, filename, and file extension) to be
imported.
3 The PROC CDISC statement specifies the following:
3 CDISC ODM as the model.
3 Fileref XMLINP, which references the physical location of the input XML
document to be imported.
3 FORMATACTIVE=YES to convert CDISC ODM CodeList content in the XML
document to SAS formats.
3 FORMATNOREPLACE=NO to replace existing SAS formats in the FORMAT
catalog that have the same name as the converted formats.
3 LANGUAGE="DE" to specify a language identifier with a two-letter language
code. PROC CDISC locates the DE language identifier in the ODM
TranslatedText element and creates a SAS format by using the TranslatedText
items with a matching language tag attribute. The created SAS format is then
applied to the data that is imported from the XML document.
CDISC Procedure Examples for CDISC ODM � Output 25
Output
The output from PROC CONTENTS displays the attributes of each interpreted
variable, which includes the SAS variable X and all KeySet members.
26 Output � Chapter 4
Engine V9 Indexes 0
Protection Compressed NO
Filename C:\numbers.sas7bdat
The output from PROC PRINT lists the value for the imported SAS variable X. The
procedure applies the SAS format NUMBERS, which is created by using the
TranslatedText item with the matching language tag attribute DE. It applies
NUMBERS to the data that is imported from the XML document, which is 3. The
result is the German word drei.
Output 4.4 PROC PRINT Output for Variable X with Applied SAS Format
Obs X
1 drei
Overview
This example imports a CDISC ODM XML document that contains OrderNumber
attributes that are not in sequence. PROC CDISC validates the attributes and displays
warnings in the SAS log.
Program
The following SAS program imports the XML document as a SAS data set:
1 The LIBNAME statement assigns the libref RESULTS to the physical location of
the output SAS data set.
2 The FILENAME statement assigns the fileref XMLINP to the physical location of
the input XML document (complete pathname, filename, and file extension) to be
imported.
3 The PROC CDISC statement specifies the following:
3 CDISC ODM as the model.
3 Fileref XMLINP, which references the physical location of the input XML
document to be imported.
4 ORDERNUMBER=YES in the ODM statement specifies to validate whether
OrderNumber attributes conform to the model specifications. This is the default
setting for ORDERNUMBER=
5 The CLINICALDATA statement identifies the output SAS data set, which is
indicates where the data content in the XML document begins, which is AE.
run;
Output
The following SAS log displays a warning that the ItemRef element contains an
OrderNumber attribute that is out of sequence.
28 Example: Exporting a CDISC ODM XML Document with Metadata Attributes in Statement Syntax � Chapter 4
241
245 run;
Overview
This example, which includes only the required PROC CDISC statements for
exporting, specifies the metadata attributes in the statements.
As an alternative, you can store metadata attributes for the required ODM, STUDY,
GLOBALVARIABLES, and METADATAVERSION statements in separate SAS data sets
that you reference with the DATA= argument. For an example, see “Example: Exporting
a CDISC ODM XML Document with Metadata Attributes in SAS Data Sets” on page 33.
Program
The following SAS program exports a SAS data set as a CDISC ODM XML document:
1 The LIBNAME statement assigns the libref RESULTS to the physical location of
the input SAS data set.
2 The FILENAME statement assigns the fileref XMLOUT to the physical location of
the output XML document (complete pathname, filename, and file extension) to be
exported.
3 The SORT procedure specifies to sort the input SAS data set by the
__SUBJECTKEY variable.
odm odmversion="1.2" y
fileoid="000-00-0000"
filetype=SNAPSHOT
study studyoid="STUDY.StudyOID";U
metadataversion metadataversionoid="v1.1.0" W
name="Version 1.1.0";
clinicaldata data=results.AE X
domain="AE"
name="Adverse Events"
run;
Output
The following is an annotated excerpt of the output CDISC ODM XML document:
1 All of the metadata is contained by a single MetaDataVersion element.
2 A Protocol element that contains a StudyEventRef for each StudyEventDef is
automatically generated.
30 Output � Chapter 4
http://www.cdisc.org/standards/index.html
-->
<ODM xmlns="http://www.cdisc.org/ns/odm/v1.2"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.cdisc.org/ns/odm/v1.2 ODM1-2-0.xsd"
ODMVersion="1.2"
FileOID="000-00-0000"
FileType="Snapshot"
AsOfDateTime="2009-02-27T14:20:31"
CreationDateTime="2009-02-27T14:20:31"
SourceSystemVersion="9.02.02M0D01222009 3.00.65">
<Study OID="STUDY.StudyOID">
<!--
-->
<GlobalVariables>
<StudyDescription>This file contains test data for the CDISC Connect-A-Thon event
<ProtocolName>CDISC-Protocol-00-000</ProtocolName>
</GlobalVariables>
<BasicDefinitions />
<!-
Internal ODM markup required metadata
-->
<Protocol> v
</Protocol>
</FormDef>
<!-
Columns defined in the table
-->
SASDatasetName="AE"
Name="Adverse Events"
Domain="AE"
</ItemGroupDef>
32 Output � Chapter 4
<!-
Column attributes as defined in the table
-->
<ItemDef OID="ID.TAREA" Name="TAREA" SASFieldName="TAREA" DataType="text" Length="4">
<CodeListRef CodeListOID="CL.$TAREAF" /> V
</ItemDef>
<ItemDef OID="ID.PNO" Name="PNO" SASFieldName="PNO" DataType="text" Length="15" />
<ItemDef OID="ID.SCTRY" Name="SCTRY" SASFieldName="SCTRY" DataType="text" Length="4">
<CodeListRef CodeListOID="CL.$SCTRYF" />
</ItemDef>
<ItemDef OID="ID.F_STATUS" Name="F_STATUS" SASFieldName="F_STATUS" DataType="text" Length="1">
<CodeListRef CodeListOID="CL.$F_STATU" />
</ItemDef>
<ItemDef OID="ID.LINE_NO" Name="LINE_NO" SASFieldName="LINE_NO" DataType="integer" Length="2" />
.
<!-
Translation to ODM markup for any PROC FORMAT style
-->
<CodeList OID="CL.$TAREAF" SASFormatName="$TAREAF" Name="$TAREAF" DataType="text"> W
<CodeListItem CodedValue=’ONC’>
<Decode>
<TranslatedText>Oncology</TranslatedText>
</Decode>
</CodeListItem>
</CodeList>
</CodeListItem>
<CodeListItem CodedValue=’1’>
<Decode>
<TranslatedText>Medication required</TranslatedText>
</Decode>
</CodeListItem>
<CodeListItem CodedValue=’2’>
<Decode>
<TranslatedText>Hospitalization required or prolonged</TranslatedText>
</Decode>
</CodeListItem>
<CodeListItem CodedValue=’3’>
<Decode>
<TranslatedText>Other</TranslatedText>
</Decode>
</CodeListItem>
</CodeList>
</MetaDataVersion>
</Study>
<!-
Administrative metadata
-->
<AdminData />
<!-
Actual data content begins here
-->
<ClinicalData StudyOID="STUDY.StudyOID" MetaDataVersionOID="v1.1.0"> X
<SubjectData SubjectKey="001">
<StudyEventData StudyEventOID="SE.VISIT1" StudyEventRepeatKey="1">
<FormData FormOID="FORM.AE" FormRepeatKey="1">
<ItemGroupData ItemGroupOID="IG.AE" ItemGroupRepeatKey="1">
<ItemData ItemOID="ID.TAREA" Value="ONC" />
<ItemData ItemOID="ID.PNO" Value="143-02" />
<ItemData ItemOID="ID.SCTRY" Value="USA" />
<ItemData ItemOID="ID.F_STATUS" Value="V" />
<ItemData ItemOID="ID.LINE_NO" Value="1" />
<ItemData ItemOID="ID.AETERM" Value="HEADACHE" />
<ItemData ItemOID="ID.AESTMON" Value="6" />
<ItemData ItemOID="ID.AESTDAY" Value="10" />
<ItemData ItemOID="ID.AESTYR" Value="1999" />
<ItemData ItemOID="ID.AESTDT" Value="1999-06-10" />
<ItemData ItemOID="ID.AEENMON" Value="6" />
<ItemData ItemOID="ID.AEENDAY" Value="14" />
<ItemData ItemOID="ID.AEENYR" Value="1999" />
<ItemData ItemOID="ID.AEENDT" Value="1999-06-14" />
<ItemData ItemOID="ID.AESEV" Value="1" />
<ItemData ItemOID="ID.AEREL" Value="0" />
<ItemData ItemOID="ID.AEOUT" Value="1" />
<ItemData ItemOID="ID.AEACTTRT" Value="0" />
<ItemData ItemOID="ID.AECONTRT" Value="1" />
</ItemGroupData>
<ItemGroupData ItemGroupOID="IG.AE" ItemGroupRepeatKey="2">
<ItemData ItemOID="ID.TAREA" Value="ONC" />
<ItemData ItemOID="ID.PNO" Value="143-02" />
<ItemData ItemOID="ID.SCTRY" Value="USA" />
<ItemData ItemOID="ID.F_STATUS" Value="V" />
<ItemData ItemOID="ID.LINE_NO" Value="2" />
<ItemData ItemOID="ID.AETERM" Value="CONGESTION" />
<ItemData ItemOID="ID.AESTMON" Value="6" />
<ItemData ItemOID="ID.AESTDAY" Value="11" />
<ItemData ItemOID="ID.AESTYR" Value="1999" />
<ItemData ItemOID="ID.AESTDT" Value="1999-06-11" />
<ItemData ItemOID="ID.AEENMON" IsNull="Yes" />
<ItemData ItemOID="ID.AEENDAY" IsNull="Yes" />
<ItemData ItemOID="ID.AEENYR" IsNull="Yes" />
<ItemData ItemOID="ID.AEENDT" IsNull="Yes" />
<ItemData ItemOID="ID.AESEV" Value="1" />
<ItemData ItemOID="ID.AEREL" Value="0" />
<ItemData ItemOID="ID.AEOUT" Value="2" />
<ItemData ItemOID="ID.AEACTTRT" Value="0" />
<ItemData ItemOID="ID.AECONTRT" Value="1" />
</ItemGroupData>
</FormData>
</StudyEventData>
</SubjectData>
</ClinicalData>
</ODM>
Overview
This example, which includes only the required PROC CDISC statements for
exporting, illustrates how to specify metadata attributes that are stored in SAS data
34 Program � Chapter 4
sets and referenced in the DATA= argument. For information about the advantages of
using this method, see “Specifying CDISC ODM Metadata Attributes” on page 9.
When exporting, you can specify metadata attributes for the required ODM, STUDY,
GLOBALVARIABLES, and METADATAVERSION statements either directly in the
CDISC procedure statement or stored in a SAS data set. However, the optional
metadata attributes for the required CLINICALDATA statement must be specified as
part of the CLINICALDATA statement syntax.
Program
First, create SAS data sets that contain metadata attributes. The LIBNAME
statement assigns the libref CURRENT to the physical location of the SAS data sets
that will store the metadata attributes.
libname current ’C:\mydata\’;
data current.odm;
odmversion="1.2";
fileoid="ODM.FileOID";
filetype="Snapshot";
run;
data current.study;
studyoid="OID.StudyOID";
run;
data current.globals;
protocolname="CDISC-Protocol-00-0000";
run;
data current.metadata;
metadataversionoid="v1.1.0";
name="Version 1.1.0";
run;
7 The required CLINICALDATA statement identifies the input SAS data set, which
is CURRENT.AE. The input SAS data set contains the data content and KeySet
members that are written to the XML document. In addition, the CLINICALDATA
statement specifies optional metadata attributes.
odm data=current.odm; w
study data=current.study; x
globalvariables data=current.globals; y
metadataversion data=current.metadata; U
name="Adverse Events"
run;
36 Output � Chapter 4
Output
The following output shows the exported XML document:
http://www.cdisc.org/standards/index.html
-->
<ODM xmlns="http://www.cdisc.org/ns/odm/v1.2"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.cdisc.org/ns/odm/v1.2 ODM1-2-0.xsd"
ODMVersion="1.2"
FileOID="ODM.FileOID"
FileType="Snapshot"
AsOfDateTime="2009-03-09T12:45:33"
CreationDateTime="2009-03-09T12:45:33"
SourceSystemVersion="9.02.02M0D01222009 3.00.65">
<Study OID="STUDY.StudyOID">
<!--
-->
<GlobalVariables>
<StudyName>CDISC Test Study III</StudyName>
<StudyDescription>This file contains test data for CDISC testing</StudyDescription>
<ProtocolName>CDISC-Protocol-00-0000</ProtocolName>
</GlobalVariables>
<BasicDefinitions />
<!-
Internal ODM markup required metadata
-->
<Protocol>
</Protocol>
</FormDef>
<!-
Columns defined in the table
-->
<ItemGroupDef OID="IG.AE" Repeating="Yes"
SASDatasetName="AE"
Name="Adverse Events"
Domain="AE"
</ItemGroupDef>
<!-
Column attributes as defined in the table
-->
<ItemDef OID="ID.TAREA" Name="TAREA" SASFieldName="TAREA" DataType="text" Length="4" />
<ItemDef OID="ID.PNO" Name="PNO" SASFieldName="PNO" DataType="text" Length="15" />
<ItemDef OID="ID.SCTRY" Name="SCTRY" SASFieldName="SCTRY" DataType="text" Length="4" />
<ItemDef OID="ID.F_STATUS" Name="F_STATUS" SASFieldName="F_STATUS" DataType="text" Length="1" />
<ItemDef OID="ID.LINE_NO" Name="LINE_NO" SASFieldName="LINE_NO" DataType="integer" Length="2" />
<ItemDef OID="ID.AETERM" Name="AETERM" SASFieldName="AETERM" DataType="text" Length="100" />
<ItemDef OID="ID.AESTMON" Name="AESTMON" SASFieldName="AESTMON" DataType="integer" Length="2" />
<ItemDef OID="ID.AESTDAY" Name="AESTDAY" SASFieldName="AESTDAY" DataType="integer" Length="2" />
<ItemDef OID="ID.AESTYR" Name="AESTYR" SASFieldName="AESTYR" DataType="integer" Length="4" />
<ItemDef OID="ID.AESTDT" Name="AESTDT" SASFieldName="AESTDT" DataType="date" />
<ItemDef OID="ID.AEENMON" Name="AEENMON" SASFieldName="AEENMON" DataType="integer" Length="2" />
<ItemDef OID="ID.AEENDAY" Name="AEENDAY" SASFieldName="AEENDAY" DataType="integer" Length="2" />
<ItemDef OID="ID.AEENYR" Name="AEENYR" SASFieldName="AEENYR" DataType="integer" Length="4" />
<ItemDef OID="ID.AEENDT" Name="AEENDT" SASFieldName="AEENDT" DataType="date" />
<ItemDef OID="ID.AESEV" Name="AESEV" SASFieldName="AESEV" DataType="text" Length="1" />
<ItemDef OID="ID.AEREL" Name="AEREL" SASFieldName="AEREL" DataType="text" Length="1" />
<ItemDef OID="ID.AEOUT" Name="AEOUT" SASFieldName="AEOUT" DataType="text" Length="1" />
<ItemDef OID="ID.AEACTTRT" Name="AEACTTRT" SASFieldName="AEACTTRT" DataType="text" Length="1" />
<ItemDef OID="ID.AECONTRT" Name="AECONTRT" SASFieldName="AECONTRT" DataType="text" Length="1" />
</MetaDataVersion>
</Study>
<!-
Administrative metadata
-->
<AdminData />
38 Example: Exporting a CDISC ODM XML Document with Required and Optional Statements � Chapter 4
<!-
Actual data content begins here
This section represents each data record in the table
-->
<ClinicalData StudyOID="STUDY.StudyOID" MetaDataVersionOID="v1.1.0">
<SubjectData SubjectKey="001">
<StudyEventData StudyEventOID="SE.VISIT1" StudyEventRepeatKey="1">
<FormData FormOID="FORM.AE" FormRepeatKey="1">
<ItemGroupData ItemGroupOID="IG.AE" ItemGroupRepeatKey="1">
<ItemData ItemOID="ID.TAREA" Value="ONC" />
<ItemData ItemOID="ID.PNO" Value="143-02" />
<ItemData ItemOID="ID.SCTRY" Value="USA" />
<ItemData ItemOID="ID.F_STATUS" Value="V" />
<ItemData ItemOID="ID.LINE_NO" Value="1" />
<ItemData ItemOID="ID.AETERM" Value="HEADACHE" />
<ItemData ItemOID="ID.AESTMON" Value="6" />
<ItemData ItemOID="ID.AESTDAY" Value="10" />
<ItemData ItemOID="ID.AESTYR" Value="1999" />
<ItemData ItemOID="ID.AESTDT" Value="1999-06-10" />
<ItemData ItemOID="ID.AEENMON" Value="6" />
<ItemData ItemOID="ID.AEENDAY" Value="14" />
<ItemData ItemOID="ID.AEENYR" Value="1999" />
<ItemData ItemOID="ID.AEENDT" Value="1999-06-14" />
<ItemData ItemOID="ID.AESEV" Value="1" />
<ItemData ItemOID="ID.AEREL" Value="0" />
<ItemData ItemOID="ID.AEOUT" Value="1" />
<ItemData ItemOID="ID.AEACTTRT" Value="0" />
<ItemData ItemOID="ID.AECONTRT" Value="1" />
</ItemGroupData>
<ItemGroupData ItemGroupOID="IG.AE" ItemGroupRepeatKey="2">
<ItemData ItemOID="ID.TAREA" Value="ONC" />
<ItemData ItemOID="ID.PNO" Value="143-02" />
<ItemData ItemOID="ID.SCTRY" Value="USA" />
<ItemData ItemOID="ID.F_STATUS" Value="V" />
<ItemData ItemOID="ID.LINE_NO" Value="2" />
<ItemData ItemOID="ID.AETERM" Value="CONGESTION" />
<ItemData ItemOID="ID.AESTMON" Value="6" />
<ItemData ItemOID="ID.AESTDAY" Value="11" />
<ItemData ItemOID="ID.AESTYR" Value="1999" />
<ItemData ItemOID="ID.AESTDT" Value="1999-06-11" />
<ItemData ItemOID="ID.AEENMON" IsNull="Yes" />
<ItemData ItemOID="ID.AEENDAY" IsNull="Yes" />
<ItemData ItemOID="ID.AEENYR" IsNull="Yes" />
<ItemData ItemOID="ID.AEENDT" IsNull="Yes" />
<ItemData ItemOID="ID.AESEV" Value="1" />
<ItemData ItemOID="ID.AEREL" Value="0" />
<ItemData ItemOID="ID.AEOUT" Value="2" />
<ItemData ItemOID="ID.AEACTTRT" Value="0" />
<ItemData ItemOID="ID.AECONTRT" Value="1" />
</ItemGroupData>
</FormData>
</StudyEventData>
</SubjectData>
</ClinicalData>
</ODM>
Overview
This example includes required and optional PROC CDISC statements for exporting
a CDISC ODM XML document. The example illustrates how to specify metadata
attributes that are stored in SAS data sets and referenced in the DATA= argument.
CDISC Procedure Examples for CDISC ODM � Program 39
Program
First, this example uses the SAS data sets that contain metadata attributes for the
required ODM, STUDY, GLOBALVARIABLES, and METADATAVERSION statements
from “Example: Exporting a CDISC ODM XML Document with Metadata Attributes in
SAS Data Sets” on page 33.
Create additional SAS data sets that contain metadata attributes for the optional
BASICDEFINITIONS, PRESENTATION, USER, LOCATION, and SIGNATURE
statements. The LIBNAME statement assigns the libref CURRENT to the physical
location of the SAS data sets that will store the metadata attributes.
data current.basic;
length TranslatedText $40.;
MeasurementOID="MU.KG";
Name="Kilogram";
Lang="en";
TranslatedText="English: Kilogram";
output;
MeasurementOID="MU.KG";
Name="Kilogram";
Lang="sp";
TranslatedText="Spanish: Kilogram";
output;
MeasurementOID="MU.LB";
Name="Pound";
Lang="en";
TranslatedText="English: Pound";
output;
MeasurementOID="MU.LB";
Name="Pound";
Lang="sp";
TranslatedText="Spanish: Libra";
output;
run;
data current.present;
PresentationOID="PRES.EN";
40 Program � Chapter 4
Lang="en";
TranslatedText="English: Presentation";
output;
PresentationOID="PRES.SP";
Lang="sp";
TranslatedText="Spanish: Presentation";
output;
run;
data current.location;
LocationOID="LOC.CDISCHome";
Name="CDISC Headquarters";
Studyoid="123-456-789";
MetadataversionOID="v1.1.0";
EffectiveDate="2001-10-19";
LocationType="Other";
output;
LocationOID="LOC.site001";
Name="Roswell Park";
StudyOID="123-456-789";
MetadataversionOID="v1.1.0";
EffectiveDate="2001-10-19";
LocationType="Site";
output;
run;
data current.user;
length usertype $20.;
length organization $40.;
UserOID="USR.cdisc001";
UserType="Other";
FullName="Fred Flintstone";
FirstName="Fred";
LastName="Flintstone";
Organization = "CDISC";
LocationOID="LOC.CDISCHome";
StreetName="123 Main Street";
City="Washington";
StateProv="DC";
Country="United States";
PostalCode="";
output;
UserOID="USR.inv001";
UserType="Investigator";
FullName="Wilma Flintstone";
FirstName="Wilma";
LastName="Flintstone";
Organization="Roswell Park";
LocationOID="LOC.site001";
StreetName="";
City="";
StateProv="";
Country="";
PostalCode="";
output;
run;
data current.signature;
SignatureOID="SD.cdisc001-es";
Methodology="Electronic";
Meaning="Signature Meaning";
LegalReason="LegalReason";
run;
odm data=current.odm; w
study data=current.study; x
globalvariables data=current.globals; y
basicdefinitions data=current.basic; U
metadataversion data=current.metadata; V
presentation data=current.present; W
user data=current.user; X
location data=current.location; at
signature data=current.signature; ak
clinicaldata data=current.ae al
domain="AE"
run;
Example: Describing a CDISC ODM SAS Data Set with the CONTENTS
Statement
Overview
This example illustrates how to list the attributes of a CDISC ODM SAS data set in
the CDISC ODM XML document named AE.XML. The output displays in the SAS log.
The example includes two different programs, which illustrate how the ODM
statement LONGNAMES= processing option determines the sources of captured SAS
names parameters based on the value of the option.
To view the AE.XML document, see “Sample CDISC ODM XML Document” on page
81.
3 The ODM statement specifies CDISC ODM version 1.2 and the
LONGNAMES=NO processing option, which determines the following:
3 ODM name attributes are converted to SAS names that can be a maximum of
eight characters in length.
3 The SAS data set name is captured from the SASDatasetName= attribute in
the ODM ItemGroupDef element. SAS variable names are captured from the
SASFieldName= attribute in ODM ItemDef elements. SAS format names are
captured from the SASFormatName= attribute in ODM CodeList elements.
4 The CONTENTS statement writes the contents of the CDISC ODM SAS data set
in the SAS log. Note that the CONTENTS statement must specify the name that
is in the SASDatasetName= attribute in the ODM ItemGroupDef element.
filename xmlinp ’C:\XML\ae.xml’; u
Name AE
Libref XMLINP
ODM Version 1.2
AsOfDateTime 2009-03-31T14:01:41
CreationDateTime 2009-03-31T14:01:41
SourceSystem
SourceSystemVersion
OID IG.AE
Name Adverse Events
SASDatasetName AE
IsReferenceData
Repeating Yes
Domain AE
Origin
Role
Purpose
Comment Some adverse events from this trial
1 AECONTRT string 1
2 AEACTTRT string 1
3 AEOUT string 1
4 AEREL string 1
5 AESEV string 1
6 AEENDT date DATE
7 AEENYR integer 4
8 AEENDAY integer 2
9 AEENMON integer 2
10 AESTDT date DATE
11 AESTYR integer 4
12 AESTDAY integer 2
13 AESTMON integer 2
14 AETERM string 100
15 LINE_NO integer 2
16 F_STATUS string 1
17 SCTRY string 4
18 PNO string 15
19 TAREA string 4
3 ODM name attributes are converted to SAS names that can be a maximum of
32 characters in length.
CDISC Procedure Examples for CDISC ODM � Output with LONGNAMES=YES 45
3 The SAS data set name, SAS variable names, and SAS format names are
captured from the Name= attribute in the ODM ItemGroupDef, ItemDef, and
CodeList elements.
4 The CONTENTS statement writes the contents of the CDISC ODM SAS data set
in the SAS log. Note that the CONTENTS statement must specify the name that
is in the Name= attribute in the ODM ItemGroupDef element.
filename xmlinp ’C:\XML\ae.xml’; u
Name Adverse_Events
Libref XMLINP
ODM Version 1.2
AsOfDateTime 2009-03-31T14:01:41
CreationDateTime 2009-03-31T14:01:41
SourceSystem
SourceSystemVersion
OID IG.AE
Name Adverse Events
SASDatasetName AE
IsReferenceData
Repeating Yes
Domain AE
Origin
Role
Purpose
Comment Some adverse events from this trial
1 Actions_taken__other string 1
2 Actions_taken_re_study_drug string 1
3 Outcome string 1
4 Relationship_to_study_drug string 1
5 Severity string 1
6 Derived_Stop_Date date DATE
7 Stop_Year___Enter_Four_Digit_Yea integer 4
8 Stop_Day___Enter_Two_Digits_01_3 integer 2
9 Stop_Month___Enter_Two_Digits_01 integer 2
10 Derived_Start_Date date DATE
11 Start_Year___Enter_Four_Digit_Ye integer 4
12 Start_Day___Enter_Two_Digits_01_ integer 2
13 Start_Month___Enter_Two_Digits_0 integer 2
14 Conmed_Indication string 100
15 Line_Number integer 2
16 Record_status__5_levels__interna string 1
17 Country string 4
18 Protocol_Number string 15
19 Therapeutic_Area string 4
46 Example: Listing a Directory with the DATASETS Statement � Chapter 4
Overview
This example illustrates how to produce a directory listing in the SAS log of a CDISC
ODM XML document. The output lists the name of the CDISC ODM SAS data set that
is in the XML document named AE.XML. The output also lists the attributes of the
XML document, such as ODM version and date of creation.
The example includes two different programs, which illustrate how the ODM
statement LONGNAMES= processing option determines the sources of captured SAS
names based on the value of the option.
To view the AE.XML document, see “Sample CDISC ODM XML Document” on page
81.
3 ODM name attributes are converted to SAS names that can be a maximum of
eight characters in length.
3 The SAS data set name is captured from the SASDatasetName= attribute in
the ODM ItemGroupDef element.
datasets; x
run;
CDISC Procedure Examples for CDISC ODM � Program with LONGNAMES=YES 47
Libref XMLINP
ODM Version 1.2
AsOfDateTime 2009-03-31T14:01:41
CreationDateTime 2009-03-31T14:01:41
SourceSystem
SourceSystemVersion
# Tablename
1 AE
3 ODM name attributes are converted to SAS names that can be a maximum of
32 characters in length.
3 The SAS data set name is captured from the Name= attribute in the ODM
ItemGroupDef element.
datasets; x
run;
48 Output with LONGNAMES=YES � Chapter 4
Libref XMLINP
ODM Version 1.2
AsOfDateTime 2009-03-31T14:01:41
CreationDateTime 2009-03-31T14:01:41
SourceSystem
SourceSystemVersion
# Tablename
1 Adverse_Events
49
CHAPTER
5
CDISC Procedure Examples for
CDISC SDTM
Overview
This example validates CDISC SDTM data that is stored in a SAS data set.
Program
The following SAS program validates CDISC SDTM data that is stored in the SAS
data set RESULTS.AE:
1 The LIBNAME statement assigns the libref RESULTS to the physical location of
the input SAS data set to be validated.
2 The PROC CDISC statement specifies CDISC SDTM as the model.
3 The SDTM statement specifies the SDTM version number.
4 The DOMAINDATA statement specifies the SAS data set to be validated, the
two-character domain code, and the domain model type.
libname results ’C:\Myfiles\’; u
Output
Output 5.1 SAS Log Output
22 sdtm sdtmversion="3.1";
24 run;
Overview
This example validates CDISC SDTM data that is stored in an Oracle table.
Program
The following SAS program validates CDISC SDTM data that is stored in an Oracle
table named AE:
1 The LIBNAME statement for the SAS/ACCESS Interface to Oracle engine assigns
the libref ORALIB to the physical location of the Oracle database that contains the
Oracle table.
2 The PROC CDISC statement specifies CDISC SDTM as the model.
3 The SDTM statement specifies the SDTM version number.
4 The DOMAINDATA statement specifies the Oracle table to be validated, the
path=ora_dbms preserve_tab_names=yes
connection=sharedread schema=myschema; u
sdtm sdtmversion="3.1"; w
run;
3
P A R T
Procedure Reference
Chapter 6. . . . . . . . . . CDISC Procedure for CDISC ODM 53
52
53
CHAPTER
6
CDISC Procedure for CDISC ODM
ODM Statement 57
STUDY Statement 63
GLOBALVARIABLES Statement 64
BASICDEFINITIONS Statement 65
METADATAVERSION Statement 66
PRESENTATION Statement 66
USER Statement 67
LOCATION Statement 70
SIGNATURE Statement 71
CLINICALDATA Statement 71
CONTENTS Statement 73
DATASETS Statement 74
Restriction:
PROC CDISC supports only one CDISC model and one CLINICALDATA
Restriction: PROC CDISC does not support vendor extensions to CDISC ODM.
Tip: PROC CDISC statements are listed in CDISC ODM markup order.
CONTENTS TABLE="name";
DATASETS;
The following table provides a quick reference that indicates the required and
optional statements for importing and exporting a CDISC ODM XML document:
Table 6.1 Statements for Importing and Exporting a CDISC ODM XML Document
READ=fileref |WRITE=fileref
<FORMATNOREPLACE= NO | YES>
< FORMATLIBRARY=libref>
<LANGUAGE=language-identifier> ;
Arguments
MODEL=ODM
specifies CDISC ODM as the model.
Interaction: The model specification determines the syntax for the PROC CDISC
following:
3 A two-letter language code as defined by ISO 639, "Codes for the representation
of names of languages."
3 A language identifier that has been registered with the Internet Assigned
Numbers Authority (IANA). The language identifier begins with the prefix i- or
I-.
3 A language identifier that has been assigned by the user or agreed on between
parties in private use. The language identifier begins with the prefix x- or X- to
CDISC Procedure for CDISC ODM � ODM Statement 57
ensure that it does not conflict with names that are later standardized or
registered with IANA.
Enclose the language identifier in single or double quotation marks.
Requirement: Optional for both importing and exporting.
Featured in: “Example: Importing a CDISC ODM XML Document Using a
Language Identifier” on page 21
ODM Statement
Specifies the CDISC ODM version number and file type.
Restriction:
Processing options must be specified in the statement. They cannot be stored
in a SAS data set. Only metadata attributes can be stored in a SAS data set.
Tip:You can specify metadata attributes either directly in the ODM statement or store
them in a SAS data set that you reference in the DATA= argument.
<processing-options> DATA=libref.member-name ;
Arguments
processing-options
specifies options that affect how KeySet members are processed.
LONGNAMES=NO | YES
determines the sources of captured SAS name parameters, and controls the
maximum length of SAS names that is valid.
NO
When importing, specifies that ODM name attributes are converted to SAS
names that can be a maximum length of eight characters. PROC CDISC
captures the SAS data set name from the SASDatasetName= attribute in the
ODM ItemGroupDef element. SAS variable names are captured from the
SASFieldName= or SDSVarName= attribute in ODM ItemDef elements. SAS
format names are captured from the SASFormatName= attribute in ODM
CodeList elements. If these optional ODM attributes are not available, then the
Name= attribute (which is required in the individual ODM elements) is used.
When exporting, specifies that SAS names are converted to ODM name
attributes that can be a maximum length of eight characters. PROC CDISC
exports the SAS data set name to the SASDatasetName= attribute in the ODM
ItemGroupDef element. SAS variable names are exported to the
SASFieldName= in ODM ItemDef elements. SAS format names are exported to
the SASFormatName= attribute in ODM CodeList elements. The required
ODM Name= attribute is a duplicate of the SAS name attribute value.
For example, by using the “Sample CDISC ODM XML Document” on page 81,
LONGNAMES=NO imports the SAS data set name AE from the
SASDatasetName= attribute in the ODM ItemGroupDef element.
58 ODM Statement � Chapter 6
Requirement: When importing, values for the ODM elements must be valid
SAS names. Except for in the Name= attribute, an invalid SAS name
generates an error because it does not conform to the ODM schema.
Interaction: PROC CDISC behavior with LONGNAMES=NO is compatible
with legacy data before Version 7, which includes Version 5 transport files.
YES
When importing, specifies that ODM name attributes are converted to SAS
names that can be a maximum length of 32 characters. PROC CDISC captures
the SAS data set name, SAS variable names, and SAS format names from the
Name= attribute in the ODM ItemGroupDef, ItemDef, and CodeList elements.
The optional SASDatasetName=, SASFieldName=, SDSVarName=, and
SASFormatName= attributes (used with LONGNAMES=NO) are ignored even
if they are available in the ODM elements.
When exporting, specifies that SAS names are converted to ODM name
attributes that can be a maximum length of 32 characters. PROC CDISC
exports the SAS data set name, SAS variable names, and SAS format names as
values for the Name= attribute in the ODM ItemGroupDef, ItemDef, and
CodeList elements.
For example, by using the “Sample CDISC ODM XML Document” on page 81,
LONGNAMES=YES imports the SAS data set name Adverse_Events from the
Name= attribute in the ODM ItemGroupDef element.
Interaction: PROC CDISC behavior with LONGNAMES=YES is compatible
with Version 7 and later. The behavior is not compatible with Version 5
transport files.
Interaction: When importing, if a Name= attribute value is not a valid SAS
name, PROC CDISC converts it to a valid SAS name. For example, a blank
space or any other invalid character in the field is replaced with an
underscore. Truncation occurs if the Name= attribute value exceeds the
maximum length.
Default: NO
Requirement: Optional for both importing and exporting.
Tip: The SASDatasetName=, SASFieldName= or SDSVarName=, and
SASFormatName= ODM elements are optional in CDISC ODM version 1.2.
However, the Name= attribute for those ODM elements is required.
See also: “CDISC ODM KeySet Members” on page 6
ODMMAXIMUMOIDLENGTH=number
specifies a character length for the CDISC ODM KeySet members. The default
value is the OID length that is defined in CDISC ODM. The maximum OID length
that PROC CDISC accepts is 100 characters.
Requirement: Optional for importing.
See also: “CDISC ODM KeySet Members” on page 6
Featured in: “Example: Importing a CDISC ODM XML Document Specifying
KeySet Processing Options” on page 19
ODMMINIMUMKEYSET=NO | YES
specifies whether to limit the CDISC ODM KeySet members that are in the study
data.
NO
When importing, specifies that all KeySet members are written to the output
SAS data set. Note that ODMMINIMUMKEYSET=NO increases the row size
10 times the maximum OID length that is defined in CDISC ODM.
CDISC Procedure for CDISC ODM � ODM Statement 59
When exporting, specifies that all KeySet members that are in the input SAS
data set are written to the output XML document.
YES
When importing, specifies that only the SubjectKey is written to the output SAS
data set.
When exporting, specifies that only the SubjectKey that is in the input SAS
data set is written to the output XML document. Other KeySet members are
from PROC CDISC statements or are automatically generated by PROC CDISC.
Default: NO
Requirement: Optional for both importing and exporting.
See also: “CDISC ODM KeySet Members” on page 6
Featured in: “Example: Importing a CDISC ODM XML Document Using Default
KeySet Processing” on page 16 and “Example: Importing a CDISC ODM XML
Document Specifying KeySet Processing Options” on page 19
ORDERNUMBER=YES | NO
determines whether PROC CDISC validates OrderNumber attributes in ItemRef
elements. OrderNumber attributes define an order among related entities by using
consecutive integer values.
YES
specifies to validate OrderNumber attributes. If an element contains
OrderNumber attributes that do not conform to CDISC ODM, such as missing
or out-of-sequence integers, PROC CDISC displays warnings in the SAS log.
Alias: USE
NO
specifies to ignore OrderNumber attributes. Warnings are not displayed in the
SAS log.
Alias: IGNORE
Default: YES
YES
When importing, specifies that ODM name attributes are converted to SAS
labels. The value of the LONGNAMES= option determines the sources of the
captured SAS data set and variable labels:
LONGNAMES=NO
PROC CDISC imports the SAS data set label from the SASDatasetName=
attribute in the ODM ItemGroupDef element, and SAS variable labels from
the SASFieldName= or SDSVarName= attribute in ODM ItemDef elements.
If these optional ODM attributes are not available, then the Name= attribute
(which is required in the individual ODM elements) is used.
LONGNAMES=YES
PROC CDISC imports the SAS data set label from the Comment= attribute
in the ODM ItemGroupDef element, and SAS variable labels from the
Comment= attribute in the ODM ItemDef elements.
Restriction: Specifying USENAMEASLABEL=YES and LONGNAMES=YES
are mutually exclusive.
When exporting, specifies that SAS labels are converted to ODM name
attributes. The value of the LONGNAMES= option determines the sources of
the captured SAS data set and variable labels:
LONGNAMES=NO
PROC CDISC exports the SAS data set label to the SASDatasetName=
attribute in the ODM ItemGroupDef element, and SAS variable labels to the
SASFieldName= in ODM ItemDef elements. The required ODM Name=
attribute is a duplicate of the SAS name attribute value.
LONGNAMES=YES
PROC CDISC exports the SAS data set label to the Comment= attribute in
the ODM ItemGroupDef element, and SAS variable labels to the Comment=
attribute in the ODM ItemDef elements.
Restriction: Specifying USENAMEASLABEL=YES and LONGNAMES=YES
are mutually exclusive.
Default: NO
Requirement: Optional for both importing and exporting.
Tip: The Comment= attribute in the ODM ItemGroupDef and ItemDef elements is
optional in CDISC ODM version 1.2. However, the Name= attribute for those
ODM elements is required.
metadata-attributes
includes the following syntax, which can be specified directly in the ODM statement
or stored in a SAS data set that you reference in the DATA= argument:
Restriction: You cannot store some metadata attributes in a SAS data set, and also
specify other metadata attributes in the ODM statement. If you use a SAS data
set, you must store all metadata attributes in the SAS data set.
ODMVERSION="version-number"
specifies the CDISC ODM version number. The valid value is 1.2. Enclose the
version number in single or double quotation marks.
Requirement: Required for both importing and exporting.
Restriction: PROC CDISC does not support CDISC ODM versions before 1.2.
CDISC ODM versions 1.1 and 1.0 are not supported. However, CDISC ODM
CDISC Procedure for CDISC ODM � ODM Statement 61
SNAPSHOT
specifies an XML document that contains only the current state of the data and
metadata that it describes, with no transactional history.
TRANSACTIONAL
specifies an XML document that contains the current state of the data and
metadata, with transactional history. A transactional XML document supports
more than one instruction per data point.
Requirement: The input SAS data set that you are exporting must contain the
required data. If you specify TRANSACTIONAL, the transactional history
must be in the SAS data set.
DESCRIPTION="string"
specifies a text string that provides details to supplement the other attributes that
are described in the XML document. Enclose the string in single or double
quotation marks.
Requirement: Optional for exporting.
GRANULARITY=ALL | METADATA | ADMINDATA | REFERENCEDATA |
ALLCLINICALDATA | SINGLESITE | SINGLESUBJECT
describes the scope of information in the XML document.
Requirement: Optional for exporting.
Interaction: PROC CDISC does not generate output that is based on the specified
value of GRANULARITY=.
ALL
METADATA
ADMINDATA
indicates the AdminData element, which is administrative data about users,
locations, and electronic signatures.
REFERENCEDATA
indicates the ReferenceData element, which is reference data that provides
information about how to interpret clinical data.
ALLCLINICALDATA
SINGLESITE
SINGLESUBJECT
ARCHIVAL=YES
when FILETYPE=TRANSACTIONAL, indicates whether the XML document
should meet the requirements of an electronic record as defined in the FDA 21
CFR Part 11 standard.
Requirement: Optional for exporting.
CREATIONDATETIME="datetime-value"
specifies the date and time when the XML document was created or transmitted,
in compliance with ISO 8601 guidelines. Enclose the value in single or double
quotation marks.
Requirement: Optional for exporting.
PRIORFILEOID="name"
specifies a reference to the previous XML document (if any) in a series. Enclose
the name in single or double quotation marks.
Requirement: Optional for exporting.
ASOFDATETIME="datetime-value"
specifies the date and time when the source database was queried to create the
XML document, in compliance with ISO 8601 guidelines. Enclose the value in
single or double quotation marks.
Requirement: Optional for exporting.
ORIGINATOR="name"
identifies the organization that generated the XML document. Enclose the name
in single or double quotation marks.
Requirement: Optional for exporting.
SOURCESYSTEM="string"
specifies the application that created or transmitted the XML document. The
default value is the short name of the current SAS release (for example, SAS 9.2).
Enclose the string in single or double quotation marks.
Requirement: Optional for exporting.
SOURCESYSTEMVERSION="string"
specifies the version of the application that created or transmitted the XML
document. The default value is the annotated name of the SAS release (for
example, 9.01.01MxPmmddyyyy). Enclose the string in single or double quotation
marks.
Requirement: Optional for exporting.
DATA=libref.member-name
specifies the SAS data set that contains the metadata attributes. The libref, which is
assigned with the LIBNAME statement, is an alias for the data storage location
where member-name is stored.
The following table lists processing options and CDISC ODM metadata attributes
that are available for importing or exporting, and whether they can be stored in a SAS
data set.
CDISC Procedure for CDISC ODM � STUDY Statement 63
STUDY Statement
Specifies the study identifier.
Requirement: Required for exporting.
Tip: You can specify the metadata attribute either directly in the STUDY statement or
store it in a SAS data set that you reference in the DATA= argument.
Arguments
metadata-attribute
includes the following syntax, which can be specified directly in the STUDY
statement or stored in a SAS data set that you reference in the DATA= argument:
STUDYOID="ODM-identifier"
specifies a unique identifier for the study, which overrides the __STUDYOID
variable in the input SAS data set. Enclose the identifier in single or double
64 GLOBALVARIABLES Statement � Chapter 6
DATA=libref.member-name
specifies the SAS data set that contains the metadata attribute. The libref, which is
assigned with the LIBNAME statement, is an alias for the data storage location
where member-name is stored.
GLOBALVARIABLES Statement
Specifies general summary information about the study.
Requirement: Required for exporting.
Tip: You can specify metadata attributes either directly in the GLOBALVARIABLES
statement or store them in a SAS data set that you reference in the DATA= argument.
Arguments
metadata-attributes
includes the following syntax, which can be specified directly in the
GLOBALVARIABLES statement or stored in a SAS data set that you reference in the
DATA= argument:
Restriction: You cannot store some metadata attributes in a SAS data set, and also
specify other metadata attributes in the GLOBALVARIABLES statement. If you
use a SAS data set, you must store all metadata attributes in the SAS data set.
STUDYNAME="name"
specifies the short external name of the study. Enclose the name in single or
double quotation marks.
Requirement: Required.
STUDYDESCRIPTION="string"
specifies a description of the study. Enclose the string in single or double quotation
marks.
Requirement: Required.
PROTOCOLNAME="name"
specifies the sponsor’s internal name for the protocol. Enclose the name in single
or double quotation marks.
Requirement: Required.
DATA=libref.member-name
specifies the SAS data set that contains the metadata attributes. The libref, which is
assigned with the LIBNAME statement, is an alias for the data storage location
where member-name is stored.
CDISC Procedure for CDISC ODM � BASICDEFINITIONS Statement 65
BASICDEFINITIONS Statement
Specifies information about measurement units that are used in the study.
BASICDEFINITIONS DATA=libref.member-name ;
Arguments
DATA=libref.member-name
specifies the SAS data set that contains the metadata attributes. The libref, which is
assigned with the LIBNAME statement, is an alias for the data storage location
where member-name is stored.
MEASUREMENTOID="ODM-identifier"
specifies a symbol or abbreviation that represents a measurement unit. Enclose
the identifier in single or double quotation marks. A string of characters up to the
maximum OID length that is defined in CDISC ODM is supported.
Requirement: Required.
NAME="name"
specifies the name of the measurement unit. Enclose the name in single or double
quotation marks.
Requirement: Required.
LANGUAGE="language-identifier"
specifies a language identifier. Enclose the identifier in single or double quotation
marks.
Requirement: Required.
A language identifier, as defined in the XML specification, can be one of the
following:
TRANSLATEDTEXT="string"
specifies the name of the measurement unit in the specified language. Enclose the
string in double or single quotation marks.
Requirement: Required.
METADATAVERSION Statement
Specifies the metadata version and version name that are used by the study.
Tip: You can specify metadata attributes either directly in the METADATAVERSION
statement or store them in a SAS data set that you reference in the DATA= argument.
Arguments
metadata-attributes
includes the following syntax, which can be specified directly in the
METADATAVERSION statement or stored in a SAS data set that you reference in
the DATA= argument:
Restriction: You cannot store some metadata attributes in a SAS data set, and also
specify other metadata attributes in the METADATAVERSION statement. If you
use a SAS data set, you must store all metadata attributes in the SAS data set.
METADATAVERSIONOID="name"
specifies the metadata version that is used by the study. Enclose the name in
single or double quotation marks.
Requirement: Required.
NAME="name"
specifies a name for the metadata version. Enclose the name in single or double
quotation marks.
Requirement: Required.
DATA=libref.member-name
specifies the SAS data set that contains the metadata attributes. The libref, which is
assigned with the LIBNAME statement, is an alias for the data storage location
where member-name is stored.
PRESENTATION Statement
Specifies information about how the study is presented to users.
Requirement:
Optional for exporting.
Requirement:
Metadata attributes must be stored in a SAS data set that you reference in
the DATA= argument. You cannot specify metadata attributes in the PRESENTATION
statement.
CDISC Procedure for CDISC ODM � USER Statement 67
PRESENTATION DATA=libref.member-name ;
Arguments
DATA=libref.member-name
specifies the SAS data set that contains the metadata attributes. The libref, which is
assigned with the LIBNAME statement, is an alias for the data storage location
where member-name is stored.
PRESENTATIONOID="ODM-identifier"
specifies a reference to a presentation definition. Enclose the identifier in single or
double quotation marks. A string of characters up to the maximum OID length
that is defined in CDISC ODM is supported.
Requirement: Required.
LANGUAGE="language-identifier"
specifies a language identifier. Enclose the identifier in single or double quotation
marks.
Requirement: Required.
A language identifier, as defined in the XML specification, can be one of the
following:
3 A two-letter language code as defined by ISO 639, "Codes for the
representation of names of languages."
3 A language identifier that has been registered with the IANA. The language
identifier begins with the prefix i- or I-.
3 A language identifier that has been assigned by the user or agreed on
between parties in private use. The language identifier must begin with the
prefix x- or X- to ensure that it does not conflict with names that are later
standardized or registered with IANA.
Enclose the language identifier in single or double quotation marks.
TRANSLATEDTEXT="string"
specifies a portion of the presentation in the specified language. Enclose the string
in single or double quotation marks.
Requirement: Required.
USER Statement
Specifies information about users involved in the study.
Requirement: Optional for exporting.
Restriction: This is an advanced statement. You must be familiar with CDISC ODM.
Requirement:
Metadata attributes must be stored in a SAS data set that you reference in
the DATA= argument. You cannot specify metadata attributes in the USER statement.
USER DATA=libref.member-name ;
68 USER Statement � Chapter 6
Arguments
DATA=libref.member-name
specifies the SAS data set that contains the metadata attributes. The libref, which is
assigned with the LIBNAME statement, is an alias for the data storage location
where member-name is stored.
USEROID="ODM-identifier"
specifies a reference to a user. Enclose the identifier in single or double quotation
marks. A string of characters up to the maximum OID length that is defined in
CDISC ODM is supported.
Requirement: Required.
USERTYPE=SPONSOR | INVESTIGATOR | LAB | OTHER
Requirement: Optional.
LOGINNAME="user-ID"
specifies the user ID that the user uses to log in to the clinical trials data system.
Enclose the user ID in single or double quotation marks.
Requirement: Optional.
DISPLAYNAME="name"
specifies a short name for the user. Enclose the name in single or double quotation
marks.
Requirement: Optional.
FULLNAME="name "
specifies the full name of the user. Enclose the name in single or double quotation
marks.
Requirement: Optional.
LASTNAME="name "
specifies the last name of the user. Enclose the name in single or double quotation
marks.
Requirement: Optional.
FIRSTNAME="name "
specifies the first name of the user. Enclose the name in single or double quotation
marks.
Requirement: Optional.
ORGANIZATION="name "
specifies the user’s organization. Enclose the name in single or double quotation
marks.
Requirement: Optional.
STREETNAME="street-address"
specifies the street address in the user’s postal address. Enclose the address in
single or double quotation marks.
Requirement: Optional.
CITY="name "
specifies the city name in the user’s postal address. Enclose the name in single or
double quotation marks.
Requirement: Optional.
CDISC Procedure for CDISC ODM � USER Statement 69
STATEPROV="state-or-province"
specifies the state or province in the user’s postal address. Enclose the state or
province in single or double quotation marks.
Requirement: Optional.
COUNTRY="name "
specifies the country name in the user’s postal address. This value must be an ISO
3166 two-letter country code. Enclose the name in single or double quotation
marks.
Requirement: Optional.
POSTALCODE="code "
specifies the postal code in the user’s postal address. Enclose the code in single or
double quotation marks.
Requirement: Optional.
OTHERTEXT="string"
specifies any other text that is needed in the user’s postal address. Enclose the
text in single or double quotation marks.
Requirement: Optional.
EMAIL="e-mail-address"
specifies the user’s e-mail address. Enclose the address in single or double
quotation marks.
Requirement: Optional.
PICTFILENAME="filename "
specifies a filename that contains a picture of the user. Enclose the filename in
single or double quotation marks.
Requirement: Optional.
PICTIMAGETYPE="file-type "
specifies the image file type. Enclose the file type in single or double quotation
marks.
Requirement: Optional.
PAGER="number"
specifies the user’s pager number. Enclose the number in single or double
quotation marks.
Requirement: Optional.
FAX="number"
specifies the user’s fax number. Enclose the number in single or double quotation
marks.
Requirement: Optional.
PHONE="number "
specifies the user’s phone number. Enclose the number in single or double
quotation marks.
Requirement: Optional.
LOCATIONOID="ODM-identifier"
specifies a reference to a location definition. Enclose the identifier in single or
double quotation marks. A string of characters up to the maximum OID length
that is defined in CDISC ODM is supported.
Requirement: Optional.
70 LOCATION Statement � Chapter 6
LOCATION Statement
Specifies information about the physical location of the study.
Requirement: Optional for exporting.
Restriction: This is an advanced statement. You must be familiar with CDISC ODM.
Requirement:Metadata attributes must be stored in a SAS data set that you reference in
the DATA= argument. You cannot specify metadata attributes in the LOCATION
statement.
LOCATION DATA=libref.member-name ;
Arguments
DATA=libref.member-name
specifies the SAS data set that contains the metadata attributes. The libref, which is
assigned with the LIBNAME statement, is an alias for the data storage location
where member-name is stored.
LOCATIONOID="ODM-identifier"
specifies a unique identifier for a location. Enclose the identifier in single or
double quotation marks. A string of characters up to the maximum OID length
that is defined in CDISC ODM is supported.
Requirement: Required.
NAME="location-name"
specifies the name of the location. Enclose the name in single or double quotation
marks.
Requirement: Required.
METADATAVERSIONOID="ODM-identifier"
specifies the metadata version that is used at the location. Enclose the identifier
in single or double quotation marks. A string of characters up to the maximum
OID length that is defined in CDISC ODM is supported.
Requirement: Required.
EFFECTIVEDATE="date"
specifies the date of the metadata version, in compliance with ISO 8601 guidelines.
Enclose the date in single or double quotation marks.
Requirement: Required.
CDISC Procedure for CDISC ODM � CLINICALDATA Statement 71
SIGNATURE Statement
Specifies information about the signatures required in administering the study.
Requirement: Metadata attributes must be stored in a SAS data set that you reference in
the DATA= argument. You cannot specify metadata attributes in the SIGNATURE
statement.
SIGNATURE DATA=libref.member-name ;
Arguments
DATA=libref.member-name
specifies the SAS data set that contains the metadata attributes. The libref, which is
assigned with the LIBNAME statement, is an alias for the data storage location
where member-name is stored.
SIGNATUREOID="ODM-identifier"
specifies a unique identifier for the signature. Enclose the identifier in single or
double quotation marks. A string of characters up to the maximum OID length
that is defined in CDISC ODM is supported.
Requirement: Required.
METHODOLOGY=DIGITAL | ELECTRONIC
specifies the form in which the signature was stored.
Requirement: Required.
MEANING="string"
specifies information about the context in which the signature has meaning.
Enclose the string in single or double quotation marks.
Requirement: Required.
LEGALREASON="string"
specifies why signature authentication is necessary. Enclose the string in single or
double quotation marks. A string of characters up to the maximum OID length
that is defined in CDISC ODM is supported.
Requirement: Required.
CLINICALDATA Statement
When importing, identifies the output SAS data set and specifies where the data content in the
CDISC ODM XML document begins; when exporting, identifies the input SAS data set and specifies
any optional metadata attributes.
Requirement:
Required for both importing and exporting.
Requirement:
When exporting, the optional metadata attributes must be specified in the
CLINICALDATA statement.
CLINICALDATA
OUT=libref.member-name SASDATASETNAME="name" |
DATA=libref.member-name <metadata-attributes> ;
Arguments
OUT=libref.member-name
identifies the output SAS data set. A SAS data set is any file that is accessed by
SAS, such as a SAS data file or a file that points to data from other sources, such as
a DBMS table that is accessed with a SAS/ACCESS engine. The libref, which is
assigned with the LIBNAME statement, is an alias for the data storage location
where member-name is stored.
Requirement: Required for importing.
SASDATASETNAME="name"
specifies a CDISC ODM ItemGroupDef attribute that identifies where the data
content in the XML document begins. Enclose the name in single or double quotation
marks.
Requirement: Required for importing.
DATA=libref.member-name
specifies the input SAS data set that contains the clinical data and the required
KeySet members to be exported to the XML document. A SAS data set is any file
that is accessed by SAS, such as a SAS data file or a file that points to data from
other sources, such as a DBMS table that is accessed with a SAS/ACCESS engine.
The libref, which is assigned with the LIBNAME statement, is an alias for the data
storage location where member-name is stored.
The required KeySet members include the following:
__STUDYOID
__METADATAVERSIONOID
__SUBJECTKEY
__STUDYEVENTOID
__STUDYEVENTREPEATKEY
__FORMOID
__FORMREPEATKEY
__ITEMGROUPOID
__ITEMGROUPREPEATKEY
__TRANSACTIONTYPE
Requirement: Required for exporting.
See also: “CDISC ODM KeySet Members” on page 6
metadata-attributes
includes the following syntax, which must be specified in the CLINICALDATA
statement:
NAME="string"
specifies the study name. Enclose the string in single or double quotation marks.
Requirement: Optional for exporting.
DOMAIN="domain-name"
ORIGIN="string"
PURPOSE="string"
COMMENT="string"
specifies submission information as defined in CDISC Submission Metadata
Model. Enclose each value in single or double quotation marks.
Requirement: Optional for exporting.
INVESTIGATORREF=NO | YES
determines whether PROC CDISC imports the unique identifier for the
investigator user. INVESTIGATORREF=YES creates the SAS variable
__USEROID in the imported SAS data set.
Default: NO
Requirement: Optional for importing.
Requirement: To specify INVESTIGATORREF=YES, you must also specify
ODMMINIMUMKEYSET=NO in the ODM statement.
SITEREF=NO | YES
determines whether PROC CDISC imports the unique identifier for the study
location. SITEREF=YES creates the SAS variable __LOCATIONOID in the
imported SAS data set.
Default: NO
Requirement: Optional for importing.
Requirement: To specify SITEREF=YES, you must also specify
CONTENTS Statement
Describes the contents of a CDISC ODM SAS data set in the SAS log.
Interaction: To control the line size for the SAS log, use the LINESIZE= SAS system
option.
Interaction:
Use the ODM statement LONGNAMES= processing option to determine the
sources of captured SAS name parameters and to control the maximum length of SAS
name parameters that is valid. See “ODM Statement” on page 57.
Featured in: “Example: Describing a CDISC ODM SAS Data Set with the CONTENTS
Statement” on page 42
CONTENTS TABLE="name";
Arguments
TABLE="name"
specifies a CDISC ODM SAS data set name, which is an ItemGroupDef attribute
that identifies where the data content in the XML document begins. Enclose the
name in single or double quotation marks. The source of the captured SAS name is
determined by the ODM statement LONGNAMES= processing option.
Requirement: Required.
74 DATASETS Statement � Chapter 6
DATASETS Statement
Produces a directory listing of the CDISC ODM XML document in the SAS log.
Interaction: To control the line size for the SAS log, use the LINESIZE= SAS system
option.
Interaction:
Use the ODM statement LONGNAMES= processing option to determine the
sources of captured SAS name parameters and to control the maximum length of SAS
Featured in: “Example: Listing a Directory with the DATASETS Statement” on page 46
DATASETS;
Arguments
The DATASETS statement has no arguments.
75
CHAPTER
7
CDISC Procedure for CDISC
SDTM
Argument
MODEL=SDTM
specifies CDISC SDTM as the model.
Requirement: Required.
Interaction: The model specification determines the syntax for the PROC CDISC
SDTM Statement
Specifies the CDISC SDTM version number.
Requirement: Required.
SDTM SDTMVersion="version-number";
Arguments
SDTMVersion="version-number"
specifies the CDISC SDTM version number. The valid value is 3.1. Enclose the
Requirement: Required.
DOMAINDATA Statement
Identifies the SAS data set to be validated.
Requirement: Required.
Arguments
DATA=libref.member-name
specifies the SAS data set that conforms to CDISC SDTM. A SAS data set is any file
that is accessed by SAS, such as a SAS data file or a file that points to data from
other sources, such as a DBMS table that is accessed with a SAS/ACCESS engine.
The libref, which is assigned with the LIBNAME statement, is an alias for the
data storage location where member-name is stored.
Requirement: Required.
CDISC Procedure for CDISC SDTM � DOMAINDATA Statement 77
DOMAIN=domain-code
specifies a unique two-character domain code. Each domain is a collection of
observations that are common to a specific subject. PROC CDISC currently supports
15 of the domains in CDISC SDTM version 3.1. The trial design components category
include the majority of unsupported domains.
Requirement: Required.
The following table lists the codes for the supported domains:
Demography DM
Comments CO
Concomitant Medications CM
Exposure EX
Substance Use SU
Adverse Events AE
Disposition DS
Medical History MH
Physical Examinations PE
Questionnaires QS
Subject Characteristics SC
Vital Signs VS
CATEGORY=model-type
specifies a domain model type. Each model type represents a category from which a
domain is derived.
Requirement: Required.
The following table lists the supported model types:
Demography Special
Comments Special
Disposition Events
78 DOMAINDATA Statement � Chapter 7
Questionnaires Findings
Subject Characteristics Findings
4
P A R T
Appendixes
80
81
APPENDIX
1
Sample XML Document
<!-
http://www.cdisc.org/standards/index.html
-->
<ODM xmlns="http://www.cdisc.org/ns/odm/v1.2"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.cdisc.org/ns/odm/v1.2 ODM1-2-0.xsd"
ODMVersion="1.2"
FileOID="000-00-0000"
FileType="Snapshot"
AsOfDateTime="2009-03-31T14:01:41"
CreationDateTime="2009-03-31T14:01:41">
<Study OID="STUDY.StudyOID">
<!--
-->
<GlobalVariables>
<ProtocolName>CDISC-Protocol-00-000</ProtocolName>
</GlobalVariables>
82 Sample CDISC ODM XML Document � Appendix 1
<BasicDefinitions />
<!-
-->
</Protocol>
</StudyEventDef>
</FormDef>
<!-
-->
SASDatasetName="AE"
Name="Adverse Events"
Domain="AE"
</ItemGroupDef>
<!-
-->
</ItemDef>
</ItemDef>
<ItemDef OID="ID.F_STATUS" SASFieldName="F_STATUS" Name="Record status, 5 levels, internal use" DataType="text" Length="1">
<CodeListRef CodeListOID="CL.$F_STATU" />
</ItemDef>
<ItemDef OID="ID.AESTMON" SASFieldName="AESTMON" Name="Start Month - Enter Two Digits 01-12" DataType="integer" Length="2" />
<ItemDef OID="ID.AESTDAY" SASFieldName="AESTDAY" Name="Start Day - Enter Two Digits 01-31" DataType="integer" Length="2" />
<ItemDef OID="ID.AESTYR" SASFieldName="AESTYR" Name="Start Year - Enter Four Digit Year" DataType="integer" Length="4" />
<ItemDef OID="ID.AEENMON" SASFieldName="AEENMON" Name="Stop Month - Enter Two Digits 01-12" DataType="integer" Length="2" />
<ItemDef OID="ID.AEENDAY" SASFieldName="AEENDAY" Name="Stop Day - Enter Two Digits 01-31" DataType="integer" Length="2" />
<ItemDef OID="ID.AEENYR" SASFieldName="AEENYR" Name="Stop Year - Enter Four Digit Year" DataType="integer" Length="4" />
<ItemDef OID="ID.AEENDT" SASFieldName="AEENDT" Name="Derived Stop Date" DataType="date" />
</ItemDef>
</ItemDef>
</ItemDef>
</ItemDef>
</ItemDef>
<!-
-->
<CodeListItem CodedValue=’ONC’>
<Decode>
<TranslatedText xml:lang="en">Oncology</TranslatedText>
</Decode>
</CodeListItem>
</CodeList>
<Decode>
</Decode>
</CodeListItem>
84 Sample CDISC ODM XML Document � Appendix 1
</CodeList>
<CodeListItem CodedValue=’S’>
<Decode>
</CodeListItem>
<CodeListItem CodedValue=’V’>
<Decode>
</Decode>
</CodeListItem>
</CodeList>
<CodeListItem CodedValue=’1’>
<Decode>
<TranslatedText xml:lang="en">Mild</TranslatedText>
</Decode>
</CodeListItem>
<CodeListItem CodedValue=’2’>
<Decode>
<TranslatedText xml:lang="en">Moderate</TranslatedText>
</Decode>
</CodeListItem>
<CodeListItem CodedValue=’3’>
<Decode>
<TranslatedText xml:lang="en">Severe</TranslatedText>
</Decode>
</CodeListItem>
<CodeListItem CodedValue=’4’>
<Decode>
<TranslatedText xml:lang="en">Life Threatening</TranslatedText>
</Decode>
</CodeListItem>
</CodeList>
<CodeListItem CodedValue=’0’>
<Decode>
<TranslatedText xml:lang="en">None</TranslatedText>
</Decode>
</CodeListItem>
<CodeListItem CodedValue=’1’>
<Decode>
<TranslatedText xml:lang="en">Unlikely</TranslatedText>
</Decode>
</CodeListItem>
<CodeListItem CodedValue=’2’>
<Decode>
<TranslatedText xml:lang="en">Possible</TranslatedText>
</Decode>
</CodeListItem>
Sample XML Document � Sample CDISC ODM XML Document 85
<CodeListItem CodedValue=’3’>
<Decode>
<TranslatedText xml:lang="en">Probable</TranslatedText>
</Decode>
</CodeListItem>
</CodeList>
<CodeListItem CodedValue=’1’>
<Decode>
</Decode>
</CodeListItem>
<CodeListItem CodedValue=’2’>
<Decode>
<TranslatedText xml:lang="en">Continuing</TranslatedText>
</Decode>
</CodeListItem>
<CodeListItem CodedValue=’3’>
<Decode>
</Decode>
</CodeListItem>
<CodeListItem CodedValue=’4’>
<Decode>
<TranslatedText xml:lang="en">Death</TranslatedText>
</Decode>
</CodeListItem>
</CodeList>
<CodeListItem CodedValue=’0’>
<Decode>
<TranslatedText xml:lang="en">None</TranslatedText>
</Decode>
</CodeListItem>
<CodeListItem CodedValue=’1’>
<Decode>
<TranslatedText xml:lang="en">Discontinued permanently</TranslatedText>
</Decode>
</CodeListItem>
<CodeListItem CodedValue=’2’>
<Decode>
<TranslatedText xml:lang="en">Reduced</TranslatedText>
</Decode>
</CodeListItem>
<CodeListItem CodedValue=’3’>
<Decode>
<TranslatedText xml:lang="en">Interrupted</TranslatedText>
</Decode>
</CodeListItem>
</CodeList>
<CodeListItem CodedValue=’0’>
<Decode>
<TranslatedText xml:lang="en">None</TranslatedText>
</Decode>
</CodeListItem>
<CodeListItem CodedValue=’1’>
<Decode>
</Decode>
</CodeListItem>
<CodeListItem CodedValue=’2’>
<Decode>
<TranslatedText xml:lang="en">Hospitalization required or prolonged</TranslatedText>
</Decode>
</CodeListItem>
<CodeListItem CodedValue=’3’>
<Decode>
<TranslatedText xml:lang="en">Other</TranslatedText>
</Decode>
</CodeListItem>
</CodeList>
</MetaDataVersion>
</Study>
<!-
Administrative metadata
-->
<AdminData />
<!-
Clinical Data : AE
Adverse Events
-->
<SubjectData SubjectKey="001">
<StudyEventData StudyEventOID="SE.VISIT1" StudyEventRepeatKey="1">
</ItemGroupData>
</FormData>
</StudyEventData>
</SubjectData>
</ClinicalData>
</ODM>
88
89
APPENDIX
2
Recommended Reading
Recommended Reading 89
Recommended Reading
Customers outside the United States and Canada, please contact your local SAS office
for assistance.
90
91
Index
B E
BASICDEFINITIONS statement 65
exporting
CDISC models 3
CDISC ODM, with optional statements 38
CDISC ODM 5
KeySet members 6
G
metadata attributes 9
syntax 54
K
importing with OrderNumber attributes 27
CDISC overview 3
CDISC procedure 3
L
CDISC ODM syntax 54
language identifiers 21
syntax overview 4
CDISC SDTM 11
M
syntax 75
metadata attributes 28, 33
ODM statement 57
Oracle tables
D OrderNumber attributes 27
data sets
directory listing 46
CDISC ODM 55
DOMAINDATA statement 76
CDISC SDTM 76
92 Index
S V
SDTM statement 76
validating
SIGNATURE statement 71
statements (optional) 38
STUDY statement 63
CDISC SDTM Oracle tables 50
U X
USER statement 68
XML documents 5
Your Turn
Whether you are new to the work force or an experienced professional, you need to distinguish yourself in this rapidly
changing and competitive job market. SAS Publishing provides you with a wide range of resources to help you set
®
Need to learn the basics? Struggling with a programming problem? You’ll find the expert answers that you
need in example-rich books from SAS Press. Written by experienced SAS professionals from around the
world, SAS Press books deliver real-world insights on a broad range of topics for all skill levels.
support.sas.com/saspress
SAS Documentation
®
To successfully implement applications using SAS software, companies in every industry and on every
continent all turn to the one source for accurate, timely, and reliable information: SAS documentation.
We currently produce the following types of reference documentation to improve your work experience:
• Online help that is built into the software.
• Tutorials that are integrated into the product.
• Reference documentation delivered in HTML and PDF – free on the Web.
• Hard-copy books.
support.sas.com/publishing
SAS Publishing News
®
Subscribe to SAS Publishing News to receive up-to-date information about all new SAS titles, author
podcasts, and new Web site features via e-mail. Complete instructions on how to subscribe, as well as
access to past issues, are available at our Web site.
support.sas.com/spn
SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration.
Other brand and product names are trademarks of their respective companies. © 2009 SAS Institute Inc. All rights reserved. 518177_1US.0109