CDISC ODM Procedure

ODM Statement

Specifies the CDISC ODM version 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.
Requirement: Required for both importing and exporting.
Tip: You can specify metadata attributes either directly in the ODM statement or store them in a SAS data set that you reference with the DATA= argument.
CDISC Procedure Examples for CDISC ODM

Syntax

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 that is valid for SAS names.

NO

When importing, specifies that ODM name attributes are converted to SAS names. Names can be a maximum of eight characters in length. 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 name 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 of eight characters in length. 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= or SDSVarName= attribute 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, LONGNAMES=NO imports the SAS data set name AE from the SASDatasetName= attribute in the ODM ItemGroupDef element.
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 prior to Version 7, which includes Version 5 transport files.

YES

When importing, specifies that ODM name attributes are converted to SAS names. Names can be a maximum of 32 characters in length. PROC CDISC captures the SAS data set name from the Name= attribute in the ODM ItemGroupDef element. SAS variable names are captured from the Name= attribute in the ODM ItemDef elements. SAS format names are captured from the Name= attribute in the ODM 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. Names can be a maximum of 32 characters in length. PROC CDISC exports the SAS data set name to the Name= attribute in the ODM ItemGroupDef element. SAS variable names are exported to the Name= attribute in the ODM ItemDef elements, and SAS format names are exported to the Name= attribute in the ODM, CodeList elements.
For example, by using the Sample CDISC ODM XML Document, LONGNAMES=YES imports the SAS data set name Adverse_Events from the Name= attribute in the ODM ItemGroupDef element.
Interactions PROC CDISC behavior with LONGNAMES=YES is compatible with Version 7 and later. The behavior is not compatible with Version 5 transport files.
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 name 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 attributes are optional in CDISC ODM version 1.2. However, the Name= attribute for those ODM attributes is required.
See CDISC ODM KeySet Members

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 CDISC ODM KeySet Members
Importing a CDISC ODM XML Document Specifying KeySet Processing Options

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.

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 unique SubjectKey member is written to the output SAS data set.

When exporting, specifies that only the unique SubjectKey member 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 CDISC ODM KeySet Members
Importing a CDISC ODM XML Document Using Default KeySet Processing and Importing a CDISC ODM XML Document Specifying KeySet Processing Options

ORDERNUMBER=YES | NO

specifies 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
Requirement Optional for importing.
See Importing a CDISC ODM XML Document with OrderNumber Attributes

USENAMEASLABEL=NO | YES

determines the sources of captured SAS data set and variable labels. Labels can be a maximum of 200 characters.

NO

When importing, specifies that ODM comment attributes are converted to SAS labels. PROC CDISC imports the SAS data set label from the Comment= attribute in the ODM ItemGroupDef element. It imports SAS variable labels from the Comment= attribute in the ODM ItemDef elements.

When exporting, specifies that SAS labels are converted to ODM comment attributes. PROC CDISC exports the SAS data set label to the Comment= attribute in the ODM ItemGroupDef element. It exports SAS variable labels to the Comment= attribute in the ODM ItemDef elements.

YES

When importing, specifies that ODM name attributes are converted to SAS labels. The value of the LONGNAMES= processing 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= processing 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 element 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:

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.

Restriction PROC CDISC does not support CDISC ODM versions prior to 1.2. CDISC ODM versions 1.1 and 1.0 are not supported. However, CDISC ODM version 1.2.1 is semantically equivalent to version 1.2, and should be specified as simply 1.2.
Requirement Required for both importing and exporting.

FILEOID="identifier"

specifies a unique identifier for the exported XML document. Enclose the identifier in single or double quotation marks.

Requirement Required for exporting.

FILETYPE=SNAPSHOT | TRANSACTIONAL

specifies the XML document file type, which defines the type of data that the XML document contains.

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.
Requirement Required for exporting.

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.

ALL

indicates any and all types of data and metadata.

METADATA

indicates only 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

indicates all clinical data.

SINGLESITE

indicates clinical data for a single site.

SINGLESUBJECT

indicates clinical data for a single subject.

Requirement Optional for exporting.
Interaction PROC CDISC does not generate output that is based on the specified value of GRANULARITY=.

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.4). 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.
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.

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.

Details

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.
ODM Statement Syntax Quick Reference
Syntax
Importing
Exporting
Stored in SAS Data Set
LONGNAMES=NO | YES
optional
optional
no
ODMMAXIMUMOIDLENGTH=
optional
not valid
no
ODMMINIMUMKEYSET=NO | YES
optional
optional
no
ORDERNUMBER=YES | NO
optional
not valid
no
USENAMEASLABEL=NO | YES
optional
optional
no
ODMVERSION=
required
required
yes
FILEOID=
not valid
required
yes
FILETYPE=
not valid
required
yes
DESCRIPTION=
not valid
optional
yes
GRANULARITY=
not valid
optional
yes
ARCHIVAL=YES
not valid
optional
yes
CREATIONDATETIME=
not valid
optional
yes
PRIORFILEOID=
not valid
optional
yes
ASOFDATETIME=
not valid
optional
yes
ORIGINATOR=
not valid
optional
yes
SOURCESYSTEM=
not valid
optional
yes
SOURCESYSTEMVERSION=
not valid
optional
yes