Note: The process explained below
is the same for all ODM versions that are supported by the SAS Clinical
Standards Toolkit. The process is explained using ODM version 1.3.0.
In practice, vendor
and custom extensions to ODM are common. For example, Electronic Data
Capture (EDC) vendors use data management features and flags that
might be exported using ODM XML extensions. By default, such extensions
are ignored by the SAS Clinical Standards Toolkit. Recall that the
SAS Clinical Standards Toolkit uses XSL style sheets for each of the
default, supported 66 ODM data sets (such as ItemDefs.xsl). These
style sheets look for specifically named tags and hierarchical paths
based on the CDISC ODM 1.3.0 published specification. If elements
or attributes exist in the XML file but not in the specification,
they are ignored.
For example, in this
XML code fragment, note the Vendor:
<name> syntax.
This represents a hypothetical extension to the ODM XML, presumably
accompanied by a namespace reference supporting the Vendor naming
convention.
<FormData FormOID=" FormDefs.OID.Death" FormRepeatKey="00-01"
TransactionType="Remove" Vendor:Revised="No">
<Vendor:DataQuery DQOID="DQ.OID.001"
QueryText="Premature report of patients demise?">
<Flag>Y</Flag>
<AuditRecord>
<UserRef UserOID="User.OID.I024" />
<LocationRef LocationOID="Location.OID.S001" />
<DateTimeStamp>2011-01-24T15:13:22</DateTimeStamp>
</AuditRecord>
</Vendor:DataQuery>
</FormData>
In this code fragment,
the Vendor:DataQuery syntax specifies a new element with several new
attributes and references to other existing (supported) elements.
Note also the additional Vendor:Revised attribute for FormData.
The SAS Clinical Standards
Toolkit provides a utility macro to parse the ODM XML file to identify
currently unsupported elements and tags. This macro, cstutil_readxmltags,
is located in the primary SAS Clinical Standards Toolkit autocall
library (
!sasroot/cstframework/sasmacro
).
Here is an example of
a call to the cstutil_readxmltags macro:
%cstutil_readxmltags(
_cstxmlfilename=inxml
,_cstxmlreporting=Dataset
,_cstxmlelementds=work.cstodmelements
,_cstxmlattrds=work.cstodmattributes);
In this call, the XML
file to be parsed is specified with the inxml fileref. The results
of the parsing are to be written to two data sets, work.cstodmelements
for all unique elements found in the XML file and work.cstodmattributes
for all unique attributes found associated each unique element.
The cstutil_readxmltags
macro parameters are described in this table.
Parameters for the cstutil_readxmltags.sas Macro
|
|
|
|
|
Fileref for input XML
file.
|
|
|
How results are to be
reported. Valid values: Dataset or Results.
If Dataset is specified,
these two parameters are referenced.
If Results is specified,
differences detected are reported in the process results data set
(as defined by the &_cstResultsDS global macro variable).
|
|
|
Libref.dataset for file
elements. Default=work.cstodmelements
|
|
|
Libref.dataset for file
attributes. Default=work.cstodmattributes
|
See the macro header
for more details about current assumptions and limitations.