CDISC ODM Procedure

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.
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 in the DATA= argument.

Syntax

ODM <processing-options> metadata-attributes | <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, 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 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, 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 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.
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.
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 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.
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
Requirement:Optional for importing.
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, and 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, and 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= 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:
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 before 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.3). 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