Note: The following process 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, these 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). 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 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 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 that are associated with each unique
element.
Note: For more information about
the cstutil_readxmltags macro, see the
SAS Clinical Data
Standards Toolkit: Macro API Documentation.