The SAS Clinical Standards
Toolkit 1.5 supports this CDISC ODM 1.3.0 functionality:
-
reading and representing in SAS
a complete odm.xml file (specific limitations are noted below)
-
building an odm.xml file from a
SAS representation of the ODM standard
-
schema-level validating of an odm.xml
file
-
validating the structure and content
of the SAS representation of an odm.xml file
-
identifying unsupported (unrecognized)
ODM elements and attributes by using a sample tool
-
extracting one or more data sets
from the ClinicalData or ReferenceData sections of the ODM XML file
The SAS Clinical Standards
Toolkit 1.5 does not support this CDISC ODM 1.3.0 functionality:
-
reading or writing the DigitalSignatures
section of the ODM
-
vendor or customer extensions of
the ODM
-
processing is limited to a single
ODM file (for example, the use of PriorFileOID to reference another
file is ignored)
-
Full file metadata is expected
in each file.
-
Effective support only for ODM
FileType=Snapshot. The SAS Clinical Standards Toolkit 1.5 makes no
attempt to process multiple transactions per data point; multiple
transactions are saved in the SAS ODM representation for subsequent
processing
The domain and column
metadata that constitute the SAS representation of CDISC ODM 1.3.0
are derived from the global standards library in these formats:
-
as empty data sets (using the utility
macro cst_createTablesForDataStandard)
-
-
as column metadata for 315 columns
in the 66 data sets (reference_columns in the standard metadata folder
As a general rule, the
SAS representation of the CDISC ODM standard is patterned to match
the XML element (data set) and attribute (column) structure of odm.xml.
For example, consider this XML extract:
<ClinicalData StudyOID="P2006-101" MetadataVersionOID="101.01">
<SubjectData SubjectKey="1000" TransactionType="Insert">
<StudyEventData StudyEventOID="101.Screen">
<FormData FormOID="101.DEMOG">
<ItemGroupData ItemGroupOID="101.DM">
<ItemDataString ItemOID="101.USUBJID">101-01-01</ItemDataString>
<ItemDataString ItemOID="101.SEX">F</ItemDataString>
</ItemGroupData>
</FormData>
</StudyEventData>
</SubjectData>
</ClinicalData>
This table describes
how the XML element and attribute information maps to the SAS representation.
Sample Mapping of odm.xml File to SAS Representation
|
|
|
|
<ClinicalData StudyOID="P2006-101"
MetadataVersionOID="101.01">
|
|
|
|
<SubjectData SubjectKey="1000"
TransactionType="Insert">
|
|
|
|
<StudyEventData StudyEventOID="101.Screen">
|
|
|
|
<FormData FormOID="101.DEMOG">
|
|
|
|
<ItemGroupData ItemGroupOID="101.DM">
|
|
|
|
<ItemDataString ItemOID="101.USUBJID">101-01-01</ItemDataString>
|
|
|
|
<ItemDataString ItemOID="101.SEX">F</ItemDataString>
|
|
|
|
This table lists the
complete set of 66 tables that form the SAS Clinical Standards Toolkit
1.5 SAS representation of the CDISC ODM 1.3.0 standard.
reference_tables (CDISC ODM 1.3.0)
|
|
|
|
|
|
|
|
|
|
|
|
clitemdecodetranslatedtext
|
|
|
|
|
methoddefformalexpression
|
conditiondefformalexpression
|
|
|
|
conditiondeftranslatedtext
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
studyeventdeftranslatedtext
|
|
|
|
|
|
|
|
|
itemgroupdeftranslatedtext
|
|
|
|
|
|
itemquestiontranslatedtext
|
|
|
|
The highly structured
nature of CDISC ODM data requires that any mapping to a relational
format include a large number of data sets, with foreign key relationships
to help preserve the intended non-relational object structure. In
the SAS Clinical Standards Toolkit, foreign key relationships are
enforced when validating the CDISC ODM data sets.
Field lengths in the
CDISC ODM data sets are consistent by core data type. CDISC has not
specified any limit to the length of most character fields. Arbitrary
lengths have been chosen by data type. These lengths are listed in
this table. In the table, standard data types are distilled into core
data types. To be safe, larger lengths have been chosen to ensure
that no data loss occurs in the SAS Clinical Standards Toolkit pre-installed
data sets. Production tables might be compressed using SAS mechanisms
to preserve disk space.
CDISC ODM Default Lengths by Data Type
|
|
|
|
|
A unique object identifier
or a reference
|
|
|
A character field that
can accommodate a large number of characters
|
|
|
|
|
|
An item of collected
or reference data
|
|
|
An absolute or relative
file system path or URL
|
The table metadata for
the 66 data sets and the column metadata for the 315 columns in those
data sets that comprise the SAS representation of the CDISC ODM 1.3.0
standard are in this folder:
global standards library directory/standards/cdisc-odm-1.3.0-1.5/metadata
Table metadata is in
reference_tables.sas7bdat, and column metadata is in reference_columns.sas7bdat.
Only the ODM data set,
which contains valid values for the FileOID, CreationDateTime, and
FileType variables, is needed to create a minimal, but valid, CDISC
ODM-compliant XML document. This is based on the CDISC ODM standard,
which is flexible. All table and column names are case sensitive.
They must be specified exactly as shown.
In the SAS implementation
of the relational data model, the keys are extended to define a unique
record in every SAS data set. For example, a unique record in the
EnumeratedItems data set is defined by the variables FK_CODELISTS
and CODEDVALUE. These SAS data set keys are in the table metadata
in the SAS reference_tables data set.
Starting in ODM 1.3.0,
there are two forms of the ItemData element, which is the element
used by ODM for transmitting clinical data item values. These two
forms are untyped and typed. Here is an example of a typed ItemData
element:
<ItemDataFloat ItemOID="ItemDef.OID.VS.VSSTRESN"
TransactionType="Insert">76</ItemDataFloat>
Here is an example of
an untyped ItemData element:
<ItemData ItemOID="ID.AETERM"
Value="HEADACHE" />
Both of these data values
are stored in the Value variable in the ItemData SAS data set. In
the case of typed data, the ItemDataType variable in the ItemData
SAS data set has the data type (for example, Float). In the case of
untyped data, the ItemDataType variable in the ItemData SAS data set
is null.
Typed and untyped data
transmission should not be mixed within a single ODM file. However,
in the example provided by the SAS Clinical Standards Toolkit, both
types are part of the same example for demonstration purposes.
In the SAS Clinical
Standards Toolkit 1.5, the CDISC ODM standard supports reading and
representing in SAS a complete odm.xml file, and building an odm.xml
file. The SAS Clinical Standards Toolkit validates both the structure
and content of the SAS representation of each odm.xml file and the
structural integrity of that file. The SAS Clinical Standards Toolkit
also supports the extraction of subject or reference data for a data
set (such as an SDTM AE domain) from the odm.xml file.
To support all of this
functionality, supplemental files include the following global standards
library files:
-
A SAS format catalog (odmct.sas7bcat)
in the
formats
folder provides valid
values for selected columns in the 66 tables of the SAS representation.
-
The Messages data set in the
messages
folder
provides error messaging for all Validation Master checks.
-
The Validation Master data set
in the
validation/control
folder contains
the superset of checks validating the structure and content of the
66 tables.
-
SAS code in the
macros
folder
provides CDISC ODM-specific code that augments the code provided in
the primary SAS Clinical Standards Toolkit autocall library (
!sasroot/cstframework/sasmacro
).
It is this set of files,
in whole or in part, that defines the CDISC ODM 1.3.0 reference standard.