SAS Clinical Standards Toolkit 1.7 Getting Started

SAS Clinical Standards Toolkit 1.7 Getting Started
SAS Clinical Standards
Toolkit 1.7
®
Getting Started
SAS® Documentation
The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2015. SAS® Clinical Standards Toolkit 1.7:
Getting Started. Cary, NC: SAS Institute Inc.
SAS® Clinical Standards Toolkit 1.7: Getting Started
Copyright © 2015, SAS Institute Inc., Cary, NC, USA
All rights reserved. Produced in the United States of America.
For a hard-copy book: No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any
form or by any means, electronic, mechanical, photocopying, or otherwise, without the prior written permission of the
publisher, SAS Institute Inc.
For a web download or e-book: Your use of this publication shall be governed by the terms established by the vendor at
the time you acquire this publication.
The scanning, uploading, and distribution of this book via the Internet or any other means without the permission of the
publisher is illegal and punishable by law. Please purchase only authorized electronic editions and do not participate in or
encourage electronic piracy of copyrighted materials. Your support of others' rights is appreciated.
U.S. Government License Rights; Restricted Rights: The Software and its documentation is commercial computer
software developed at private expense and is provided with RESTRICTED RIGHTS to the United States Government. Use,
duplication or disclosure of the Software by the United States Government is subject to the license terms of this Agreement
pursuant to, as applicable, FAR 12.212, DFAR 227.7202-1(a), DFAR 227.7202-3(a) and DFAR 227.7202-4 and, to the extent
required under U.S. federal law, the minimum restricted rights as set out in FAR 52.227-19 (DEC 2007). If FAR 52.227-19 is
applicable, this provision serves as notice under clause (c) thereof and no other notice is required to be affixed to the
Software or documentation. The Government's rights in Software and documentation shall be only those set forth in this
Agreement.
SAS Institute Inc., SAS Campus Drive, Cary, North Carolina 27513-2414.
February 2015
SAS provides a complete selection of books and electronic products to help customers use SAS® software to its fullest
potential. For more information about our offerings, visit support.sas.com/bookstore or call 1-800-727-3228.
SAS® and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute
Inc. in the USA and other countries. ® indicates USA registration.
Other brand and product names are trademarks of their respective companies.
Contents
Using This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Chapter 1 • Introduction to the SAS Clinical Standards Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Key SAS Clinical Standards Toolkit Functionality . . . . . . . . . . . . . . . .
The SAS Clinical Standards Toolkit File Roadmap . . . . . . . . . . . . . . .
Key SAS Clinical Standards Toolkit Components . . . . . . . . . . . . . . . .
Using the SAS Clinical Standards Toolkit . . . . . . . . . . . . . . . . . . . . . .
1
2
5
7
Chapter 2 • Sample Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Managing Column Length for Data Collection and Submission . . . .
Validating the CDISC ADaM Data Sets . . . . . . . . . . . . . . . . . . . . . .
Creating a CRT-DDS 1.0.0 define.xml File from
CDISC SDTM 3.1.3 Source Data . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a Define-XML 2.0 define.xml File from
SDTM Source Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Importing and Validating a CDISC ODM XML File . . . . . . . . . . . . . .
Working with CDISC Dataset-XML Files . . . . . . . . . . . . . . . . . . . . . .
11
14
16
21
26
31
Chapter 3 • Frequently Asked Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Global Standards Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Process Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating and Modifying Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Validation Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
40
40
42
49
51
52
Recommended Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
vi Contents
vii
Using This Book
Audience
The SAS Clinical Standards Toolkit and this book are designed for SAS programmers in
the clinical research industry. Programmers must have a good understanding of the
SAS macro language and must be knowledgeable of evolving industry data standards,
such as the Clinical Data Interchange Standards Consortium (CDISC).
Requirements
This book does not attempt to provide instructions to install the SAS Clinical Standards
Toolkit. It is assumed that the SAS Clinical Standards Toolkit has been successfully
installed by a SAS Administrator and that the installation has been verified to be
installed correctly and properly functioning.
viii Using This Book
1
1
Introduction to the SAS Clinical
Standards Toolkit
Key SAS Clinical Standards Toolkit Functionality . . . . . . . . . . . . . . . . . . 1
The SAS Clinical Standards Toolkit File Roadmap . . . . . . . . . . . . . . . . . . 2
Key SAS Clinical Standards Toolkit Components . . . . . . . . . . . . . . . . . . . 5
Using the SAS Clinical Standards Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Key SAS Clinical Standards Toolkit
Functionality
This book provides a brief introduction to the SAS Clinical Standards Toolkit. The SAS
Clinical Standards Toolkit serves two primary purposes:
n
Provide SAS implementations, based in SAS, of evolving clinical data standards.
n
Provide a framework that exploits these standards to meet common clinical research
analysis and submission requirements.
Through the SAS Clinical Standards Toolkit 1.7 release, the SAS Clinical Standards
Toolkit supports only standards developed by the Clinical Data Interchange Standards
Consortium (CDISC). However, there is nothing in the product design that limits support
of other standards, and it is anticipated that both current users and future SAS Clinical
Standards Toolkit releases will support non-CDISC clinical-related standards.
2
Chapter 1 / Introduction to the SAS Clinical Standards Toolkit
The SAS Clinical Standards Toolkit is an open-source solution. Most of the code is
either Base SAS or SAS macro code. For XML-based standards, some Java and XSLT
code is used. The SAS Clinical Standards Toolkit is a SAS solution for SAS users.
Because study design, data collection, and analysis and submission requirements of
each research protocol are unique and because the SAS Clinical Standards Toolkit
provides libraries of open-source SAS macros and code, user customization is expected
and encouraged.
The SAS Clinical Standards Toolkit File
Roadmap
The SAS Clinical Standards Toolkit files can be aggregated into three primary groups:
n
the SAS Clinical Standards Toolkit global standards library
n
SAS program files (!SASROOT)
n
the SAS Clinical Standards Toolkit sample library
The primary function of the SAS Clinical Standards Toolkit global standards library is to
provide the metadata that defines each supported SAS Clinical Standards Toolkit
standard. This location is specified during product installation and can be subsequently
moved to another location. By default, on Microsoft Windows, this location is set to the
c:\cstGlobalLibrary directory.
Here are the top-level subfolders:
Figure 1.1 Global Standards Library Top Folder Hierarchy
The SAS Clinical Standards Toolkit File Roadmap
3
The metadata folder contains key metadata about all supported standards and can be
updated with each new product release. The metadata folder can be updated each time
you choose to register a new standard or version of a standard. The schemarepository and xsl-repository folders support XML-based standards (such as CDISC
ODM and CDISC CRT-DDS). The standards folder contains a subfolder hierarchy for
each supported standard.
The logs folder contains a single transaction log SAS data set. This single transaction
log SAS data set can be used to track the changes that you make to the SAS Clinical
Standards Toolkit metadata files using the metadata management macros. For more
information, see Chapter 4, “Metadata Management,” in the SAS Clinical Standards
Toolkit: User's Guide.
This folder hierarchy illustrates the types of metadata supporting the CDISC SDTM
3.1.3 standard:
Figure 1.2
Global Standards Library Folder Hierarchy, CDISC SDTM 3.1.3
The control folder contains data sets that provide general metadata about the standard.
The macros folder contains SAS macros for standards that are included in the SAS
autocall path when working with that standard. The messages folder contains
messages used in reporting or process results for a specific standard. The metadata
folder contains the gold-standard definition of the standard as interpreted and
implemented by the person who registered the standard. The programs folder contains
programs and property files supporting the general use of the standard. The validation
folder and the control folder contain validation check metadata for those standards
supporting validation of standard domains or data sets.
4
Chapter 1 / Introduction to the SAS Clinical Standards Toolkit
Installation of the SAS Clinical Standards Toolkit places files in the !SASROOT tree for
the common SAS Clinical Standards Toolkit framework files. The generic (crossstandard or standard-independent) framework SAS macros are installed in
the !SASROOT/cstframework/sasmacros directory (Microsoft Windows). The SAS
config file was altered when the SAS Clinical Standards Toolkit was installed to include
this folder, by default, in the SASAUTOS path, meaning that the framework macros are
available to you whenever and however you start SAS and reference the default SAS
config file.
In the SAS Clinical Standards Toolkit sample library, there is a sample folder for each
standard. A sample folder contains the files that represent a sample SAS
implementation of the specific standard, sample study data sets, and sample programs
and results that illustrate the SAS Clinical Standards Toolkit functionality.
Here is the CDISC ADaM 2.1 sample library folder hierarchy:
Figure 1.3 Folder Hierarchy for CDISC ADaM 2.1 Sample Library
Key SAS Clinical Standards Toolkit Components
5
The folder hierarchy might be different for other standards. For example, the CDISC
ADaM analysis folder and subfolders are unique to ADaM. The cstSampleLibrary
folder merely provides a location for the sample SAS implementation. Your files can be
located anywhere accessible by SAS. You do not need to conform to the folder-naming
convention illustrated in the CDISC ADaM sample.
Key SAS Clinical Standards Toolkit
Components
Framework macros and SAS macros specific to a standard provide the foundation for
the SAS Clinical Standards Toolkit functionality. Three other SAS Clinical Standards
Toolkit components are also noteworthy:
n
driver programs
n
properties
n
SASReferences data set
The SAS Clinical Standards Toolkit provides a set of driver programs (non-macro SAS
code) that illustrate all of the basic SAS Clinical Standards Toolkit functions using
sample data provided by SAS. These drivers can serve as templates for the processes
that you want to develop. These drivers might be submitted as batch or interactive
processes. They can be found in the programs subfolder for each standard (for the
relative location of this folder, see Figure 1.3 on page 4). For a more complete
description of what these drivers do, see “Using the SAS Clinical Standards Toolkit” on
page 7.
The SAS Clinical Standards Toolkit provides a series of framework properties files and
properties files specific to a standard (such as initialization, validation, and report
properties files). You can use these files to define global macro variables and to set their
default values. These typically can be found in the same folders as the driver programs.
Use of these property files is optional but recommended, and you can add your own
global macro variables as needed.
6
Chapter 1 / Introduction to the SAS Clinical Standards Toolkit
Perhaps the single most important file used by the SAS Clinical Standards Toolkit is the
SASReferences data set. The SASReferences data set captures all the input and output
file library and file references associated with any process. Here is a sample:
Figure 1.4
Sample SASReferences Data Set (CDISC SDTM 3.1.2 Validation Process)
Here are some general observations about the sample SASReferences data set:
n
The type and subtype values are used by the SAS Clinical Standards Toolkit code
to find the fileref or libref associated with a particular input or output file type.
n
The SASref can be any user-defined value.
n
An empty path tells the SAS Clinical Standards Toolkit to look for the default value
from the metadata for a specific standard in the global standards library (usually a
global standards library location).
A complete discussion of the SASReferences data set is provided in Chapter 6,
“SASReferences File,” in the SAS Clinical Standards Toolkit: User's Guide. The SAS
Clinical Standards Toolkit defines a standard SASReferences data set for each
supported standard (found in the global standards library directory/
standards/standard/control directory).
Using the SAS Clinical Standards Toolkit
7
Using the SAS Clinical Standards
Toolkit
The SAS Clinical Standards Toolkit global standards library contains the SAS metadata
definition of all supported standards. This metadata definition, defined primarily as the
reference_tables and reference_columns data sets, can be used as defined. The
metadata definition can be modified or used as a template to build your own SAS
representation of the CDISC standards provided by SAS or to build your own
customized standard.
Sample driver programs are provided with each supported standard. These programs
can be copied and modified to reflect your own data and metadata sources and the
target location for any SAS process output. These drivers all follow the same general
process workflow:
n
Set any process global macro variable values.
n
Define a root path for input and output files (unnecessary if you do not use relative
paths and you specify explicit paths).
n
Create or reference a SASReferences data set that defines all input and output files.
n
Call the cstutil_processsetup macro that confirms a valid SASReferences structure,
allocates any SAS librefs and filerefs, sets macro autocall for a specific standard,
and formats search paths.
n
Call the primary macro of interest (such as validation or define creation macro).
n
(Optional) Perform any session cleanup.
For a more complete description of what a driver program does, see “Running a
Validation Process” in Chapter 7, “Compliance Assessment Against a Reference
Standard,” in the SAS Clinical Standards Toolkit: User's Guide.
8
Chapter 1 / Introduction to the SAS Clinical Standards Toolkit
9
2
Sample Scenarios
Managing Column Length for Data Collection
and Submission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Example 1: Set Column Length Based on the
Length of the Maximum Observed Value . . . . . . . . . . . . . . . . . . . . . . . . . 12
Example 2: Set Column Length Based on the
Maximum Expected Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Example 3: Set Column Length Based on the
Length of the Maximum Codelist Value . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Example 4: Simplest cstutilmanagecolumnsize Macro Call . . . . . . 14
Validating the CDISC ADaM Data Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Assumption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Location of ADaM Driver Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Step 1: Derive Metadata about Your Source Data . . . . . . . . . . . . . . . . . 15
Step 2: Build Your Own Driver Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Step 3: Submit the Modified Driver Program . . . . . . . . . . . . . . . . . . . . . . . 15
Creating a CRT-DDS 1.0.0 define.xml File from
CDISC SDTM 3.1.3 Source Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Assumption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Location of CRT-DDS Driver Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Step 1: Extract Available SDTM Metadata into
CRT-DDS Metadata Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
10 Chapter 2 / Sample Scenarios
Step 2: (Optional) Populate the Remaining CRTDDS Data Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Step 3: Create the define.xml File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Step 4: Validate the Generated define.xml File . . . . . . . . . . . . . . . . . . . . . 19
Creating a Define-XML 2.0 define.xml File from
SDTM Source Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Assumption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Location of Define-XML 2.0 Driver Programs . . . . . . . . . . . . . . . . . . . . . . 21
Step 1: Extract Available SDTM Source
Metadata into the SAS Representation of
Define-XML 2.0 Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Step 2: Create the define.xml File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Importing and Validating a CDISC ODM XML File . . . . . . . . . . . . . . . . . . 26
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Assumption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Location of ODM Driver Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Step 1: Validate the ODM XML File against the
ODM 1.3.1 XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Step 2: Import the ODM XML File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Step 3: Validate the SAS Representation of the
ODM XML File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Step 4: Extract Domain Data from the ODM XML File . . . . . . . . . . . . 30
Working with CDISC Dataset-XML Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Dataset-XML and Define-XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Assumption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Location of Dataset-XML 1.0 Driver Programs . . . . . . . . . . . . . . . . . . . . . 32
Creating Dataset-XML Files from SAS Data Sets . . . . . . . . . . . . . . . . . . 32
Creating SAS Data Sets from Dataset-XML Files . . . . . . . . . . . . . . . . . . 33
Comparing Original SAS Data Sets to SAS Data
Sets Created from Dataset-XML Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Managing Column Length for Data Collection and Submission
11
Managing Column Length for Data
Collection and Submission
Overview
Large SAS transport files have become an issue for the FDA to process. Large SAS
transport file sizes occur, in part, when the maximum column length of 200 is used for
character variables.
The FDA has requested that the allotted character length for each column in a data set
be the maximum length of the variable used.
There are valid reasons to use different column lengths for data collection and data
submission.
During data collection, you might not know the final column length until the study is
complete. The maximum column length of a column that uses a non-extensible codelist
is predictable. The maximum column length of a column that uses an extensible codelist
or no codelist at all is not predictable and cannot be known until the data collection is
complete. To avoid possible data truncation, longer column lengths can be warranted.
For data submissions, you might choose to reduce a column length to a shorter length,
such as the maximum observed value or the maximum possible codelist value.
The cstutilmanagecolumnsize macro enables you to determine and set the lengths of
columns based on observed, expected, predetermined, or codelist values. (This
functionality is enabled by the _cstTrimAlgorithm parameter.)
For complete information about the cstutilmanagecolumnsize macro, see the SAS
Clinical Standards Toolkit: Macro API Documentation.
12 Chapter 2 / Sample Scenarios
Example 1: Set Column Length Based on the
Length of the Maximum Observed Value
By default, the SAS Clinical Standards Toolkit sets the lengths of most CDISC SDTM
date and duration columns to 64. However, this level of ISO 8601 precision is rarely
required. You can set the lengths of date and duration columns to the lengths of their
maximum observed values.
This example creates a new AE output data set with the AESTDTC, AEENDTC, and
AEDUR columns set to the lengths of their maximum observed values:
libname logs 'c:/cstGlobalLibrary/logs';
proc sql;
create table WORK.TRANSACTIONS like logs.transactionlog;
quit;
%let _cstTransactionDS=WORK.TRANSACTIONS;
%cstutilmanagecolumnsize(
_cstSourceDataSet=SRCDATA.AE,
_cstOutputDataSet=OUTDATA.AE,
_cstTrimAlgorithm=MAXOBSERVED,
_cstColumnList=AESTDTC AEENDTC AEDUR,
_cstRptType=TRANSACTIONLOG
);
This example creates the following records in the WORK.TRANSACTIONS data set:
Example 2: Set Column Length Based on the
Maximum Expected Length
In contrast to example 1, in which each column length differs based on the maximum
observed value, you can set all columns to be the same length, regardless of their
current observed lengths.
Managing Column Length for Data Collection and Submission
13
This example sets the lengths of the columns in example 1 to the maximum expected
length of 19:
%cstutilmanagecolumnsize(
_cstSourceDataSet=SRCDATA.AE,
_cstOutputDataSet=WORK.AE,
_cstColumnList=AESTDTC AEENDTC AEDUR,
_cstTrimAlgorithm=MAXEXPECTED,
_cstMaxExpected=19,
_cstRptType=CSTRESULTSDS
);
This example creates the following records in the data set that is specified by the value
of the _cstResultsDS global macro variable:
Example 3: Set Column Length Based on the
Length of the Maximum Codelist Value
The default action of the cstutilmanagecolumnsize macro is to reduce column length.
However, there can be instances when you must increase column length. For example,
the length of the CDISC SDTM SEX column in the Demography domain was increased
with a controlled terminology update on 28MAR2014. (CDISC controlled terminology is
maintained by and distributed as part of the National Cancer Institute (NCI) Enterprise
Vocabulary Services (EVS) Thesaurus.)
This example increases the column length of the SEX column to be the maximum
codelist value:
%cstutilmanagecolumnsize(
_cstSourceDataSet=SRCDATA.DM,
_cstOutputDataSet=WORK.DM,
_cstSourceMetadataDataSet=SRCMETA.SOURCE_COLUMNS,
_cstColumnList=SEX,
_cstResizeStrategy=INCREASE,
_cstTrimAlgorithm=MAXCODELIST
);
14 Chapter 2 / Sample Scenarios
Notice that _cstResizeStrategy=INCREASE specifies that the column length should be
increased.
This example creates the following SAS log file message:
[CSTLOGMESSAGE.CSTUTILMANAGECOLUMNSIZE]: SRCDATA.DM.SEX length
has been changed from $2 to $15 in WORK.DM
Example 4: Simplest
cstutilmanagecolumnsize Macro Call
This example is the simplest use of the cstutilmanagecolumnsize macro:
%cstutilmanagecolumnsize(_cstSourceLibrary=SRCDATA);
This example resets all character variable column lengths in all data sets in the
SRCDATA library to their maximum current observed lengths. Each data set in the
SRCDATA library is written to the SAS Work library.
Each column modification is documented in the SAS log file using the following syntax:
[CSTLOGMESSAGE.CSTUTILMANAGECOLUMNSIZE]: SRCDATA.AE.AETERM length
has been changed from $200 to $25 in WORK.AE
Validating the CDISC ADaM Data Sets
Assumption
You have a library of CDISC ADaM SAS data sets (for the purposes of this example, it
is derived from a library of CDISC SDTM 3.1.2 domains). Derivation of ADaM analysis
files from SDTM domains is not a supported function in the SAS Clinical Standards
Toolkit. Products such as SAS Clinical Data Integration can be used to create these
mapping processes and transformation processes.
Validating the CDISC ADaM Data Sets
15
Location of ADaM Driver Programs
The ADaM driver programs are located in the sample study library directory/
cdisc-adam-2.1-1.7/sascstdemodata/programs directory.
Step 1: Derive Metadata about Your Source
Data
Before you can validate your ADaM data sets, you must derive a set of metadata that
describes your library of analysis data sets. In the SAS Clinical Standards Toolkit, the
metadata that describes your study data sets and columns is generally referred to as
source metadata. To help derive this metadata, the SAS Clinical Standards Toolkit
provides a sample driver program (create_sourcemetadata.sas) that calls the SAS
macro adamutil_createsrcmetafromsaslib.sas found in the global standards
library directory/standards/cdisc-adam-2.1-1.7/macros directory. This
macro uses Base SAS metadata (PROC CONTENTS output) and reference metadata
(provided by SAS) describing the CDISC ADaM standard to initialize the source
metadata. You might need to augment or modify this approach based on other metadata
that you have available or other processes that you adopt.
Step 2: Build Your Own Driver Program
The sample driver that can be run to demonstrate the ADaM validation process is
validate_data.sas. Use this driver as a sample to build your own driver program,
specifying the locations of source data and metadata. Take note of the SASReferences
data set created in the validate_data driver. It references both SDTM and ADaM data
and metadata, as well as ADaM controlled terminology. Reference to the SDTM
metadata supports comparison of ADaM column metadata with SDTM column metadata
for those columns derived directly from SDTM. (See “Assumption” on page 14.)
Step 3: Submit the Modified Driver Program
The SAS Clinical Standards Toolkit validation processes generally create two types of
output data sets: validation results and validation metrics. The names and locations of
16 Chapter 2 / Sample Scenarios
these SAS data sets depend on your SASReferences specifications for results
management.
Here is a sample Results data set produced by the validation process:
Figure 2.1 Partial Sample Results Data Set (CDISC ADaM 2.1 Validation Process)
The validation results are representative of the range of validation results one might
see, from no reported errors (such as ADAM0199) to error detected (such as
ADAM0180) to an inability to run a specific check because of a lack of data or metadata
(such as ADAM0091). The validation metrics output data set attempts to summarize the
validation results and provide a denominator for each check.
For a more thorough discussion of how validation is performed, see Chapter 7,
“Compliance Assessment Against a Reference Standard,” in the SAS Clinical Standards
Toolkit: User's Guide.
Creating a CRT-DDS 1.0.0 define.xml
File from CDISC SDTM 3.1.3 Source
Data
Overview
The SAS Clinical Standards Toolkit supports the currently published CDISC CRT-DDS
1.0 (define.xml) submission standard, which supports representation of the CDISC
SDTM tabulation data sets and ADaM 2.1 analysis data sets in metadata form.
Creating a CRT-DDS 1.0.0 define.xml File from CDISC SDTM 3.1.3 Source Data
17
Assumption
You have a library of CDISC SDTM SAS data sets (which are not read by this process)
from which a set of metadata (in the form of source_study, source_tables,
source_columns, source_values, and source_documents data sets) has been created.
This metadata must contain the expected, correctly typed columns created for the
sample study provided by SAS.
Location of CRT-DDS Driver Programs
The CRT-DDS driver programs are located in the sample study library
directory/cdisc-crtdds-1.0-1.7/programs directory.
Step 1: Extract Available SDTM Metadata
into CRT-DDS Metadata Files
The initial task is to extract the available SDTM metadata into CRT-DDS metadata files.
The SAS representation of CRT-DDS involves 39 data sets, but only 19 of these derive
directly from the SDTM metadata. The sample driver create_crtdds_from_sdtm.sas,
modified to point to your specific SDTM study, must be submitted to extract the SDTM
metadata. This process builds all 39 data sets, but populates only 19 (depending on
your study).
Note: The key input (source) files are the SDTM metadata files (source_study,
source_tables, source_columns, source_values, and source_documents), not the
SDTM domain data sets.
Step 2: (Optional) Populate the Remaining
CRT-DDS Data Sets
Note: If you do not have additional metadata, you can skip this step.
None of the remaining 39 data sets must be populated to create a viable define.xml file
using the SAS Clinical Standards Toolkit. However, they might be needed to further
18 Chapter 2 / Sample Scenarios
populate the remaining CRT-DDS data sets using your own metadata sources and
methods.
For more discussion of this step, see FAQ “How Do I Add Supplemental Data (Not
Directly Derivable from Other Standards Such as CDISC SDTM) Used to Create a
define.xml File?” on page 46. For a discussion of the data sets most critical for
successful derivation of the define.xml file, see “Special Topic: A Round Trip Exercise
Involving the CDISC CRT-DDS Standard: Importing and Exporting the define.xml File” in
Chapter 9, “XML-Based Standards,” in the SAS Clinical Standards Toolkit: User's
Guide.
Step 3: Create the define.xml File
At this point, all available content for the define.xml file has been captured in the SAS
representation (39 data sets) of the CDISC CRT-DDS standard. The SAS Clinical
Standards Toolkit provides a sample driver program, create_crtdds_define.sas. This
program builds and validates the define.xml file. Submit the create_crtdds_define.sas
driver program.
In this driver, the call to the primary task macro requests that the default style sheet
provided by SAS (the source of which is CDISC) be copied to the folder location
containing the generated define.xml file. The macro is located in the global
standards library directory/standards/cdisc-crtdds-1.0-1.7/macros
directory.
Here is the macro:
%crtdds_write(_cstCreateDisplayStyleSheet=1);
Creating a CRT-DDS 1.0.0 define.xml File from CDISC SDTM 3.1.3 Source Data
19
Here is a portion of the define.xml file as rendered by the default style sheet. Hyperlinks
among tables, columns, codelists, and other file elements are provided.
Figure 2.2
Partial Sample define.xml File (as Rendered by the Default Style Sheet)
Step 4: Validate the Generated define.xml
File
The final step is to validate the generated define.xml file. As discussed in Chapter 9,
“XML-Based Standards,” in the SAS Clinical Standards Toolkit: User's Guide, the SAS
Clinical Standards Toolkit offers two complementary validation methodologies.
n
The first methodology relies on the definition of a master set of validation checks as
described in the previous example. This method uses SAS files and SAS code to
validate the SAS representation of the standard. Example checks include the
assessment of foreign key relationships across data sets and value conformance to
a set of expected values.
n
The second methodology involves verification that the XML file is valid structurally
and syntactically according to the XML schema.
The final task in the sample create_crtdds_define.sas driver is to call the
cstutilxmlvalidate macro to perform the schema validation.
20 Chapter 2 / Sample Scenarios
Here is a sample Results data set produced by the validation process:
Figure 2.3 Partial Sample Results Data Set (CDISC CRT-DDS 1.0 Create Process)
The Results data set provides process information and the location of the generated
define.xml file. The Results data set confirms that no problems were found with the file
after validation of the file.
Note: The SAS validation of file content was not run in this example.
Creating a Define-XML 2.0 define.xml File from SDTM Source Data
21
Creating a Define-XML 2.0 define.xml
File from SDTM Source Data
Overview
The SAS Clinical Standards Toolkit supports the currently published CDISC Define-XML
2.0 submission standard, which supports representation of the CDISC SDTM and
CDISC SEND tabulation data sets and ADaM 2.1 analysis data sets in metadata form.
Assumption
You have a library of CDISC SDTM SAS data sets (which are not read by this process)
from which a set of metadata (in the form of source_study, source_tables,
source_columns, source_codelists, source_values, and source_documents data sets)
has been created. This metadata must contain the expected, correctly typed columns
created for the sample study provided by SAS. The source_study, source_tables, and
source_columns data sets are required to create a Define-XML 2.0 define.xml file.
Location of Define-XML 2.0 Driver Programs
The Define-XML driver programs are located in the sample study library
directory/cdisc-definexml-2.0-1.7/programs directory.
Step 1: Extract Available SDTM Source
Metadata into the SAS Representation of
Define-XML 2.0 Metadata
The initial task is to extract the available SDTM metadata into Define-XML 2.0 metadata
files. The SAS representation of Define-XML 2.0 involves 46 data sets, but only 31 of
these are typically used for the creation of a Define-XML 2.0 file. The other 15 data sets
contain ODM (Operational Data Model) metadata that is an extension of the DefineXML 2.0 model. The sample driver create_sasdefine_from_source.sas, modified to
22 Chapter 2 / Sample Scenarios
point to your specific SDTM study metadata, must be submitted to create the SAS
representation of Define-XML 2.0 metadata. This process builds the 31 core data sets,
but it might not populate all of them (depending on the completeness of the metadata of
your study).
The sample driver runs this macro:
%define_sourcetodefine(
_cstOutLib=srcdata,
_cstSourceStudy=sampdata.source_study,
_cstSourceTables=sampdata.source_tables,
_cstSourceColumns=sampdata.source_columns,
_cstSourceCodeLists=sampdata.source_codelists,
_cstSourceDocuments=sampdata.source_documents,
_cstSourceValues=sampdata.source_values,
_cstFullModel=N,
_cstLang=en
);
The macro is located in the global standards library directory/
standards/cdisc-definexml-2.0-1.7/macros directory.
Note: The key input (source) files are the SDTM metadata files (source_study,
source_tables, source_columns, source_codelists, source_values, and
source_documents), not the SDTM domain data sets. The source files to create a
Define-XML 2.0 file have a different structure than the source files to create a CRT-DDS
1.0 file.
In the sample study, the source files for the SDTM 3.1.2 study are in the sample
study library directory/cdisc-definexml-2.0-1.7/sascstdemodata/
cdisc-sdtm-3.1.2/metadata directory.
Step 2: Create the define.xml File
At this point, all available content for the define.xml file has been captured in the SAS
representation (31 data sets) of the CDISC Define-XML 2.0 standard. The SAS Clinical
Standards Toolkit provides a sample driver program, create_definexml.sas. This
program builds and validates the define-sdtm-3.1.2.xml file. Submit the
create_definexml.sas driver program.
Creating a Define-XML 2.0 define.xml File from SDTM Source Data
23
In this driver, the call to the primary task macro requests that the default style sheet
provided by SAS (the source of which is CDISC) be copied to the folder location
containing the generated define.xml file. The macro is located in the global
standards library directory/standards/cdisc-definexml-2.0-1.7/
macros directory.
Here is the macro:
%define_write(_cstCreateDisplayStyleSheet=1,
_cstHeaderComment=%str(Produced from SAS data using the SAS
Clinical Standards Toolkit &_cstVersion));
Here is a portion of the define-sdtm-3.1.2.xml file as rendered by the default style sheet.
Hyperlinks among tables, columns, codelists, and other file elements are provided.
Display 2.1
Sheet)
Partial Sample define-sdtm-3.1.2.xml File (as Rendered by the Default Style
The final task in the sample create_definexml.sas driver is to call the cstutilxmlvalidate
macro to perform the schema validation. This involves verifying that the Define-XML
define.xml file is valid structurally and syntactically according to the XML schema.
24 Chapter 2 / Sample Scenarios
Note: The SAS Clinical Standards Toolkit 1.7 does not contain validation checks to
validate the SAS representation of the Define-XML 2.0 standard. A future version of the
SAS Clinical Standards Toolkit might contain validation methodology that goes beyond
XML schema validation.
Creating a Define-XML 2.0 define.xml File from SDTM Source Data
25
Here is a sample Results data set produced by the validation process:
Figure 2.4 Partial Sample Results Data Set (CDISC Define-XML 2.0 Create Process)
The Results data set provides process information and the location of the generated
define-sdtm-3.1.2.xml file. The Results data set confirms that no problems were found
with the file after validation of the file.
26 Chapter 2 / Sample Scenarios
Importing and Validating a CDISC ODM
XML File
Overview
The SAS Clinical Standards Toolkit supports the currently published CDISC ODM 1.3.0
and 1.3.1 standards, which facilitate the archival and interchange of metadata and data
for clinical research. The SAS Clinical Standards Toolkit can import an ODM XML file
into a SAS data set representation of the ODM 1.3.0 or 1.3.1 standard.
Assumption
You have an ODM XML file (which is not created by this process) from which a SAS
representation has to be created.
Location of ODM Driver Programs
The ODM driver programs are located in the sample study library directory/
cdisc-odm-1.3.1-1.7/programs directory.
Step 1: Validate the ODM XML File against
the ODM 1.3.1 XML Schema
The initial task is to validate the ODM XML file against the ODM 1.3.1 XML schema.
This involves verifying that the ODM XML file is valid structurally and syntactically
according to the XML schema. The sample driver create_sasodm_fromxml.sas,
modified to point to your specific ODM XML file, contains a call to the cstutilxmlvalidate
macro to perform validation.
Importing and Validating a CDISC ODM XML File
27
Here is a sample Results data set produced by the schema validation process:
Figure 2.5
Partial Sample Results Data Set (CDISC ODM 1.3.1 Schema Validation Process)
This Results data set provides process information and the location of the ODM XML
file. The Results data set confirms that the ODM XML file validated successfully.
28 Chapter 2 / Sample Scenarios
Here is a sample Results data set that shows schema validation issues with an ODM
XML file:
Figure 2.6 Partial Sample Results Data Set (CDISC ODM 1.3.1 Schema Validation Process) –
Invalid ODM XML File
Running the odm_xmlvalidate macro is not required to import an ODM XML file.
However, importing an invalid ODM XML file can result in an incomplete import because
the odm_read macro ignores elements and attributes in the ODM XML file that are not
defined by the XML schema.
Step 2: Import the ODM XML File
The next step is to import the ODM XML file by calling the odm_read macro, which
results in 76 SAS data sets describing the CDISC ODM 1.3.1 data model. The
odm_read macro is called by the sample driver create_sasodm_fromxml.sas.
Here is a sample Results data set. It provides process information and the location of
the imported ODM XML file. The Results data set confirms that no problems were found
Importing and Validating a CDISC ODM XML File
29
with the import. And, the Results data set shows that format catalogs and data sets
have been created.
Figure 2.7 Partial Sample Results Data Set (CDISC ODM 1.3.1 Read Process)
Step 3: Validate the SAS Representation of
the ODM XML File
The next step is to validate the SAS representation of the ODM XML standard. In step
1, the ODM XML file was validated against the XML schema. Validating the SAS
representation of the ODM XML standard goes beyond XML schema validation.
An example of a check that is part of the validation of the SAS representation is the
assessment of foreign key relationships across data sets. The SAS Clinical Standards
Toolkit provides a sample driver program, validate_odm_data.sas, which validates the
SAS representation of an ODM XML file.
Submit the modified driver program. The SAS Clinical Standards Toolkit validation
processes generally create two output files: validation results and validation metrics.
The names and locations of these SAS data sets depend on your SASReferences
specifications for results management.
30 Chapter 2 / Sample Scenarios
Here is a sample Results data set produced by the validation process:
Figure 2.8 Partial Sample Results Data Set (CDISC ODM 1.3.1 Validation Process)
In this example, there are several issues in the foreign key relationships across data
sets.
Step 4: Extract Domain Data from the ODM
XML File
The final step is to extract domain data from the ODM XML file by calling the
odm_extractdomaindata macro. The odm_extractdomaindata macro extracts one or
more data sets from the ClinicalData or ReferenceData sections of the ODM XML file.
The odm_extractdomaindata macro is called by the sample driver
extract_domaindata.sas (extract one domain) or by the sample driver
extract_domaindata_all.sas (extract all domains).
Working with CDISC Dataset-XML Files
31
Here is an example of the extracted AE data set:
Figure 2.9 Example Extracted AE Data Set
Working with CDISC Dataset-XML Files
Overview
CDISC Dataset-XML defines a standard format for transporting tabular data in XML
between any two entities based on CDISC ODM XML. In addition to supporting the
transport of data sets as part of a submission to the FDA, Dataset-XML can be used to
exchange data between two parties. For example, the Dataset-XML data format can be
used by a CRO to transmit SDTM or ADaM data sets to a sponsor organization.
Dataset-XML supports SDTM, ADaM, and SEND data sets but can also be used to
exchange any other type of tabular data set.
Dataset-XML and Define-XML
Dataset-XML defines a standard format for transporting tabular data set data in XML.
The metadata for a data set in a Dataset-XML file must conform to the Define-XML
standard. Each Dataset-XML file contains data for a single data set, but a single DefineXML file describes all the data sets included in the folder. Both Define-XML 1.0 and
Define-XML 2.0 are supported for use with Dataset-XML.
32 Chapter 2 / Sample Scenarios
Assumption
You have a library of CDISC SAS data sets from which you want to create Dataset-XML
1.0 files. You have a CRT-DDS 1.0 file or a Define-XML 2.0 file that describes the
metadata for these CDISC SAS data sets.
Furthermore, you want to read the Dataset-XML files into SAS data sets and compare
these SAS data sets to the original SAS data sets.
Location of Dataset-XML 1.0 Driver Programs
The Dataset-XML driver programs are located in the sample study library
directory/cdisc-datasetxml-1.0.0-1.7/programs folder.
Creating Dataset-XML Files from SAS Data
Sets
The sample driver program create_datasetxml_standalone.sas creates Dataset-XML
files from a library of SAS data sets.
After initialization, the program runs the datasetxml_write macro.
libname srcdata "&studyRootPath/data";
filename srcmeta "&studyRootpathPath/xmldata/sdtm/define.xml";
libname dataxml "&studyOutputPath/sourcexml";
%datasetxml_write(
_cstSourceLibrary=srcdata,
_cstOutputLibrary=dataxml,
_cstSourceMetadataDefineFileRef=scrmeta,
_cstCheckLengths=Y,
_cstIndent=N,
_cstZip=Y,
_cstDeleteAfterZip=N
);
The define.xml file that describes the SAS data sets must contain metadata information
about all SAS data sets and all variables to convert. The Dataset-XML files by
themselves do not have any information about the SAS data sets (names and labels) or
the SAS variables (names, labels, data types, lengths, and display formats). When a
Working with CDISC Dataset-XML Files
33
Dataset-XML file is converted back to SAS data sets, this information must be provided
by the define.xml file.
Creating SAS Data Sets from Dataset-XML
Files
The sample driver program create_sas_from_datasetxml_standalone.sas creates SAS
data sets from Dataset-XML files.
After initialization, the program runs the datasetxml_read macro.
libname dataxml "&studyRootPath/sourcexml";
libname sdtmdata "&studyOutputPath/data_derived";
filename defxml "&studyOutPath/sourcexmldefine.xml";
%datasetxml_read(
_cstSourceDatasetXMLLibrary=dataxml,
_cstOutputLibrary=sdtmdata,
_cstSourceMetadataDefineFileRef=defxml,
_cstDatetimeLength=64,
_cstAttachFormats=Y
);
The define.xml file that describes the Dataset-XML files must contain metadata
information about all Dataset-XML files and all variables to convert. The Dataset-XML
files by themselves do not have any information about the SAS data sets (names and
labels) or the SAS variables (names, labels, data types, lengths, and display formats).
Comparing Original SAS Data Sets to SAS
Data Sets Created from Dataset-XML Files
The sample driver program create_sas_from_datasetxml_standalone.sas contains a
call to the macro cstutilcomparedatasets to compare the original SAS data sets to the
SAS data sets that were created from the Dataset-XML files.
After initialization, the program runs the cstutilcomparedatasets macro.
libname sdtmdata
libname sdtmdat0
"&studyOutputPath/data_derived";
"&studyRootPath/data";
%cstutilcomparedatasets(
_cstLibBase=sdtmdat0,
34 Chapter 2 / Sample Scenarios
_cstLibComp=sdtmdata,
_cstCompareLevel=0,
_cstCompOptions=%str(criterion=0.00000000000001),
_cstCompDetail=Y
);
For every SAS data set that is compared, the macro reports the error code returned by
PROC COMPARE. Here are the error codes:
Figure 2.10
Error Codes Returned by PROC COMPARE
For example,
code=40 (8+32)
indicates that a format and a label are different. The following message is written to the
SAS log file:
WARNING: [CSTLOGMESSAGE.CSTUTILCOMPAREDATASETS] Comparing srcdata.adqs and
trgdata.adqs - Differences: FORMAT/LABEL (SysInfo=40)
Working with CDISC Dataset-XML Files
35
When converting SAS data sets to Dataset-XML files and then converting them back to
SAS data sets, here are differences to expect:
n
Date- and time-related columns do not have lengths defined in the Define-XML
metadata.
Specify a length to assign in the macro (for example, _cstdatetimeLength=64).
The length is used to create date- and time-related columns but can be different
from the original lengths.
n
SAS numeric variables are created with a length of 8 to avoid loss of precision, even
when the original length or the length specified in the define.xml file is less than 8.
n
A character variable (DataType="text") that does not have a length specified in the
define.xml file is created with a length of 200.
n
Small differences in precision can be expected around the machine precision for
numeric variables that represent real numbers.
n
Character data that contains leading spaces or trailing spaces loses the leading
spaces and trailing spaces.
By specifying PROC COMPARE options with the _cstCompOptions parameter, you can
specify that the comparison be less precise. For example, _cstCompOptions=
%str(criterion=0.00000000000001). Less precision prevents differences close
to machine precision from being reported as errors.
36 Chapter 2 / Sample Scenarios
37
3
Frequently Asked Questions
Global Standards Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Does It Matter Where the Global Standards
Library is Located? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
How Do I Change the Location of the Global
Standards Library? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Process Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
How Do I See Process Results? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
How Do I Customize a Registered Standard? . . . . . . . . . . . . . . . . . . . . . . 40
How Do I Register a New Standard (or a New
Version for an Existing Standard)? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Does SAS Offer Updates for Previously Released Standards? . . 41
Creating and Modifying Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Should I Modify SAS Clinical Standards Toolkit
Files Supplied by SAS If I Want to Test
Changes or Make Permanent Changes to Any
of Those Files? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
How Do I Modify a Sample Driver Program to
Point to My Own Study Data? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
How Do I Create the Required Study Metadata? . . . . . . . . . . . . . . . . . . 43
Can I Modify the Check Metadata Columns
tableScope and columnScope to Match My Study? . . . . . . . . . . . . . 43
Can I Add My Own New Validation Checks for
SDTM or ADaM? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
38 Chapter 3 / Frequently Asked Questions
How Do I Use My Own Controlled Terminology? . . . . . . . . . . . . . . . . . . 44
How Do I Point to My Company’s Version of MedDRA? . . . . . . . . . . 45
How Do I Use My Own Style Sheet with a
define.xml File Generated by SAS Clinical
Standards Toolkit? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Can I Associate a Style Sheet with an ODM XML
File Generated by the SAS Clinical Standards Toolkit? . . . . . . . . . 46
How Do I Add Supplemental Data (Not Directly
Derivable from Other Standards Such as
CDISC SDTM) Used to Create a define.xml File? . . . . . . . . . . . . . . . 46
How Do I Create the Data Sets That Are Used to
Create an ODM XML File? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
How Do I Modify the autocall Path to Point to My
Own Macros? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Do I Have to Create and Use a SASReferences
Data Set for Any SAS Clinical Standards
Toolkit Process That I Run? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Do I Need to Use Properties Files to Define My
Own Global Macro Variables? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Validation Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Does SAS Support OpenCDISC Validation Checks? . . . . . . . . . . . . . . 49
Do I Have to Run All of the SAS Validation
Checks for SDTM? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Can I Run a Validation Process in the SAS
Clinical Standards Toolkit on Multiple Studies
Simultaneously? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
If I Disagree with or Choose to Modify the
Codelogic of a Specific Validation Check, What
Needs to Be Done? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Is There Any Debugging Help for SAS Macro Errors? . . . . . . . . . . . . 51
Where Do the Framework and Standard-Specific
Macros Reside? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Global Standards Library
39
How Do I Report Problems, Ask Questions, or
Get More Information about How to Use the
SAS Clinical Standards Toolkit? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Can the SAS Clinical Standards Toolkit 1.7 Be
Used with Any Release of SAS Besides SAS 9.4? . . . . . . . . . . . . . . 53
How Is Availability of a New SAS Clinical
Standards Toolkit Release Publicized? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Does a New Version of the SAS Clinical
Standards Toolkit Automatically Overwrite Files
Installed with a Previous Version? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Global Standards Library
Does It Matter Where the Global Standards
Library is Located?
No. On Microsoft Windows systems, the default location for the global standards library
is the c:/cstGlobalLibrary directory. On UNIX systems, the default location for the
global standards library is the /usr/local/cstGlobalLibrary directory.
This location is assumed (and referenced as global standards library directory)
throughout this document. global standards library directory can point to any location
that is accessible by SAS.
For a summary of the cstGlobalLibrary, see “Global Standards Library” in Chapter 2,
“Framework,” in the SAS Clinical Standards Toolkit: User's Guide.
How Do I Change the Location of the Global
Standards Library?
The value of the variable cstGlobalLibrary is set during installation of the SAS Clinical
Standards Toolkit. If you want to change the location after installation, you must modify
the framework autocall utility macro cstutil_setcstgroot to point to the new location that
you have chosen.
40 Chapter 3 / Frequently Asked Questions
Note: The SAS Clinical Standards Toolkit recognizes and uses only one global
standards library at a time.
Process Results
How Do I See Process Results?
The default location for the results of a SAS Clinical Standards Toolkit process is set by
the _cstResultsDS property in the framework initialize.properties file. By default, this is
set to work._cstresults. Process results can be persisted if the SASReferences data set
has a type=results record.
Note: All SAS Clinical Standards Toolkit process Results data sets have the same
structure and all columns have the same meaning.
Standards
How Do I Customize a Registered Standard?
The definition of each standard (and version of each standard) is done in the global
standards library. A best practice recommendation is that you do not (permanently)
modify the global standards library files., Instead, modify copies of the files.
The files and metadata that constitute a standard vary from standard to standard. Use
the files that define each standard, located in the global standards library
directory/standards/standard directory, as templates and add your
customizations. You can rename or introduce your own subfolders and files that
constitute each standard. If you want to create your own version of an existing
registered standard, review the information in the next question.
Standards 41
How Do I Register a New Standard (or a New
Version for an Existing Standard)?
Use the SAS Clinical Standards Toolkit framework utility macro cst_registerstandard.sas
to register a new standard. A new subfolder hierarchy is added to the global
standards library directory/standards/ directory, and the global
standards library directory/metadata/standards.sas7bdat data set is
updated with metadata about the new standard. This metadata is provided in the form of
two data sets: standards and StandardSASReferences. These data sets are passed to
the SAS Clinical Standards Toolkit as parameters in the call to the cst_registerstandard
macro.
See “Maintenance Usage Scenarios” in Chapter 2, “Framework,” in the SAS Clinical
Standards Toolkit: User's Guide.
Does SAS Offer Updates for Previously
Released Standards?
New production releases of the SAS Clinical Standards Toolkit routinely provide updates
to previously released standards. For information about how these updates are
provided, see “Does a New Version of the SAS Clinical Standards Toolkit Automatically
Overwrite Files Installed with a Previous Version?” on page 54.
SAS has a SAS Support Knowledge Base Focus Area
(http://support.sas.com/rnd/base/cdisc/cst/index.html) to communicate product
information, references, and updates. Preproduction files are also available for
download.
The SAS Clinical Standards Toolkit development team supports the early adopter phase
and works with development partners on future product releases.
42 Chapter 3 / Frequently Asked Questions
Creating and Modifying Files
Should I Modify SAS Clinical Standards
Toolkit Files Supplied by SAS If I Want to
Test Changes or Make Permanent Changes to
Any of Those Files?
A best practice recommendation is that you do not (permanently) modify framework
autocall macros or global standards library files. Instead, modify copies of the files. This
allows seamless updates to those files provided by SAS without overwriting or losing
your changes.
Note: The SAS Clinical Standards Toolkit provides an internal backup of the global
standards library files for specific standards provided by SAS in the sample study library
directory subfolders for a specific standard.
How Do I Modify a Sample Driver Program to
Point to My Own Study Data?
Each sample driver program sets a &studyRootPath macro variable to point to the root
path of the sample study SAS supplies for each standard. This macro enables you to
point to your own study root path by resetting the value of this macro variable. You
might prefer to use explicit paths in your SASReferences data set and not use
&studyRootPath at all.
The sample drivers assume a study folder hierarchy like that of the sample study, but
this hierarchy is not required. If you have another organization for your study, you might
need to make other changes to the paths specified in your driver program.
Creating and Modifying Files
43
How Do I Create the Required Study
Metadata?
Each supported standard might define study metadata differently. The SAS
representation of the 32 standard CDISC SDTM 3.1.2 domains differs from the SAS
representation of the three types of tables supported in CDISC ADaM 2.1.
Most users have metadata about their studies in some form and file format other than
that used by the SAS Clinical Standards Toolkit. You have to convert or map some of
that metadata into the source_study, source_tables, and source_columns format
specified in the sample study metadata folder (such as the sample study library
directory/cdisc-adam-2.1-1.7/sascstdemodata/metadata directory). Some
standards provide sample code that supports this task. For CDISC ADaM, look at the
create_sourcemetadata.sas sample driver program as an example.
Note: The structure of the source metadata corresponds to the reference metadata for
each standard as defined in the global standards library (such as global standards
library directory/standards/cdisc-adam-2.1-1.7/metadata
reference_tables and reference_columns data sets).
Note: The Define-XML 2.0 standard has different metadata needs from the CRT-DDS
1.0.0 standard. The previous paragraphs in this question describe metadata used for
the creation of CRT-DDS 1.0 define.xml files. For information about the creation of
Define-XML 2.0 define.xml files, see Chapter 9, “XML-Based Standards,” in the SAS
Clinical Standards Toolkit: User's Guide.
Can I Modify the Check Metadata Columns
tableScope and columnScope to Match My
Study?
Yes. The initial values are based on the sample data associated with each standard.
Your study data almost certainly differs. For CDISC SDTM and CDISC ADaM, your
domains and analysis data sets reflect your study protocol. Some checks might not
apply to some of your domains because your implementation of that domain might
deviate from other domains from the same class (such as Findings).
44 Chapter 3 / Frequently Asked Questions
Be aware that tableScope and columnScope wildcarding is a convenience. Instead, you
can explicitly reference a specific table or column in any check invocation.
See “Validation Check Metadata: Validation Master” in Chapter 7, “Compliance
Assessment Against a Reference Standard,” in the SAS Clinical Standards Toolkit:
User's Guide.
Can I Add My Own New Validation Checks for
SDTM or ADaM?
Yes. You can add checks to any SAS Clinical Standards Toolkit standard that supports
validation. Each check is defined as a set of metadata (in the validation_master data set
found in the global standards library directory/standards/standard/
validation/control directory) and a message to be used when an error is detected
(in the messages data set found in the global standards library directory/
standards/standard/messages directory).
For each new check, you must create the check metadata to conform to the
validation_master template and an associated message to conform to the messages
data set metadata structure.
For more information about check metadata and the available SAS Clinical Standards
Toolkit validation check macros, see Chapter 7, “Compliance Assessment Against a
Reference Standard,” in the SAS Clinical Standards Toolkit: User's Guide.
How Do I Use My Own Controlled
Terminology?
The SAS Clinical Standards Toolkit permits the use of any set of controlled terminology
or any coding dictionaries. Generally, controlled terminology is defined to the SAS
Clinical Standards Toolkit as SAS format catalogs and coding dictionaries as SAS data
sets. Either format is valid.
The SASReferences data set is used to document these format catalogs and coding
dictionaries and to facilitate run-time references to these reference input sources. In the
SAS Clinical Standards Toolkit sample drivers, a SASReferences type=fmtsearch record
points to each SAS format catalog (and allows specification of a reference order for like-
Creating and Modifying Files
45
named formats), and a type=referencecterm record points to each specific coding
dictionary to be referenced. The format search path is set with the call to the
cstutil_processsetup macro.
For more information about using controlled terminology in validation processes, see
“Special Topic: Using Alternative Controlled Terminologies” in Chapter 7, “Compliance
Assessment Against a Reference Standard,” in the SAS Clinical Standards Toolkit:
User's Guide.
How Do I Point to My Company’s Version of
MedDRA?
The sample SDTM SASReferences data set offers an example of referencing the
MedDRA dictionary. The type=referencecterm record points to a folder (which can be
anywhere) that can contain a MedDRA data set (using any name).
The SDTM validation check (SDTM0451) provided in the SAS Clinical Standards Toolkit
1.6 that compares AEDECOD to MedDRA preferred terms expects that the MedDRA
data set contains the column PT_NAME. If your data set uses other column names, see
“If I Disagree with or Choose to Modify the Codelogic of a Specific Validation Check,
What Needs to Be Done?” on page 51.
See “Building a Validation Process” in Chapter 7, “Compliance Assessment Against a
Reference Standard,” in the SAS Clinical Standards Toolkit: User's Guide.
How Do I Use My Own Style Sheet with a
define.xml File Generated by SAS Clinical
Standards Toolkit?
The SAS Clinical Standards Toolkit uses the crtdds_write macro (for CRT-DDS 1.0.0) or
the define_write macro (for Define-XML 2.0) to create a define.xml file. This macro has
the optional parameter _cstCreateDisplayStyleSheet that determines two things:
n
whether the macro creates a style sheet in the same folder as the output define.xml
file
n
whether the macro creates a reference to that style sheet in the define.xml file
46 Chapter 3 / Frequently Asked Questions
If you set this macro parameter to 1, the macro looks in the provided SASReferences
file for a record with a type/subtype of referencexml/stylesheet and uses that file.
By default, the crtdds_write macro and the define_write macro create a style sheet
reference in the define.xml file and copy a style sheet in the same folder as the
define.xml file. This default style sheet, define1-0-0.xsl (for CRT-DDS 1.0.0) or
define2-0-0.xsl (for Define-XML 2.0), is copied from the global standards
library directory/standards/cdisc-crtdds-1.0/stylesheet directory (for
CRT-DDS 1.0.0) or the global standards library directory/standards/
cdisc-definexml-2.0/stylesheet directory (for Define-XML 2.0). The default
style sheet is identical to the style sheet that was originally made available by CDISC as
part of the original release of the define.xml file.
See “Writing XML Files” in Chapter 9, “XML-Based Standards,” in the SAS Clinical
Standards Toolkit: User's Guide.
Can I Associate a Style Sheet with an ODM
XML File Generated by the SAS Clinical
Standards Toolkit?
Although it is not common to associate a style sheet with an ODM XML file, the SAS
Clinical Standards Toolkit allows it. To do this, you must call the macro odm_write with
macro parameter cstCreateDisplayStyleSheet=1 and add a record to the
SASReferences file with type/subtype of referencexml/stylesheet pointing to the
style sheet to be used.
Note: SAS does not supply a default style sheet for ODM.
See the online macro API reference material about ODM.
How Do I Add Supplemental Data (Not
Directly Derivable from Other Standards
Such as CDISC SDTM) Used to Create a
define.xml File?
When the SAS Clinical Standards Toolkit creates a CRT-DDS 1.0 define.xml file, it
converts the information from a SAS data set representation of the CRT-DDS model into
Creating and Modifying Files
47
XML. For CDISC CRT-DDS 1.0, this means that 39 data sets (such as itemdefs) are the
source for creating the define.xml element and attribute structure. The content of these
39 data sets can be derived in part from other standards (such as CDISC SDTM).
You can directly maintain these 39 data sets so that you can add data that needs to be
part of the define.xml. To maintain these 39 data sets, you must be familiar with the
structure of these data sets and the relationships among these data sets. For example,
to add Value Level Metadata to the define.xml file, add rows to four data sets: itemdefs,
valuelists, valuelistitemrefs, and itemvaluelistrefs.
See the online API reference material about CRT-DDS 1.0 SAS data sets and “Writing
XML Files” in Chapter 9, “XML-Based Standards,” in the SAS Clinical Standards Toolkit:
User's Guide.
How Do I Create the Data Sets That Are Used
to Create an ODM XML File?
When the SAS Clinical Standards Toolkit creates an ODM XML file, it converts the
information from a SAS data set representation of the ODM model into XML. For CDISC
ODM 1.3.1, this means that 76 data sets (such as itemdefs) are the source for creating
the ODM XML element and attribute structure.
You can directly maintain these 76 data sets so that you can add data that needs to be
part of the ODM XML file. To maintain these 76 data sets, you must be familiar with the
structure of these data sets and the relationships among these data sets.
Normally, you would not use SAS to create an ODM XML file because it is assumed that
there is a workflow in which a data collection and management system exports
metadata definitions and data content in the form of a transactional or snapshot ODM
XML file. When SAS is used to create an ODM XML file, the initial SAS representation
of the ODM model can be created by using one of these methods:
n
Call %cst_createTablesForDataStandard(_cstStandard=CDISC-ODM,
_cstStandardVersion=1.3.1, _cstOutputLibrary=work); to build zero-observation SAS
data sets.
n
Call the %odm_read macro to import an ODM XML file that can serve as a template
for the creation of the SAS representation of the ODM XML data model.
48 Chapter 3 / Frequently Asked Questions
See “Writing XML Files” in Chapter 9, “XML-Based Standards,” in the SAS Clinical
Standards Toolkit: User's Guide.
How Do I Modify the autocall Path to Point to
My Own Macros?
The SAS Clinical Standards Toolkit autocall path is set by default to SASAUTOS, which
includes the SAS Clinical Standards Toolkit framework macros found in the !SASROOT
\cstframework\sasmacro directory (Microsoft Windows) or in the !SASROOT/
sasautos directory (UNIX).
A macro library is defined for each standard in the global standards library. (See “Where
Do the Framework and Standard-Specific Macros Reside?” on page 52.) In the
SASReferences data set, one or more records with type=autocall can be used to reset
the SAS autocall path, where the order column specifies the order each macro library is
to be referenced. You can use the same strategy to reference any user-defined macro
libraries, even if those libraries are not associated with a specific standard.
See Chapter 6, “SASReferences File,” in the SAS Clinical Standards Toolkit: User's
Guide.
Do I Have to Create and Use a
SASReferences Data Set for Any SAS Clinical
Standards Toolkit Process That I Run?
No. However, the SAS Clinical Standards Toolkit has adopted this method to define and
document the input and output file and library references, to build the macro autocall,
and to define the format search paths for each SAS Clinical Standards Toolkit process.
Although you can perform all library and file allocations and set SAS system options
yourself, it is highly recommended that you use the SASReferences approach.
See Chapter 6, “SASReferences File,” in the SAS Clinical Standards Toolkit: User's
Guide.
Validation Process
49
Do I Need to Use Properties Files to Define
My Own Global Macro Variables?
No. However, doing so standardizes your approach to creating and documenting global
macro variables.
Within the SAS Clinical Standards Toolkit, either of these two methods is always used to
process properties files:
n
adding a type=properties record to the SASReferences data set, which is then
processed in the routine call to cstutil_processsetup
n
directly calling cst_setproperties
See “Properties” in Chapter 3, “Metadata File Descriptions,” in the SAS Clinical
Standards Toolkit: User's Guide.
Validation Process
Does SAS Support OpenCDISC Validation
Checks?
Starting with the SAS Clinical Standards Toolkit 1.7, SAS has removed OpenCDISC
checks for SDTM and ADaM. Supplemental checks that are not addressed by
OpenCDISC remain in the Validation Master data set provided for each standard and
standardversion.
The most current information about checks required for FDA submissions can be found
at the OpenCDISC (http://www.opencdisc.org/projects/validator/cdisc-validation-rulesrepository) and FDA Study Data Standards Resources (http://www.fda.gov/ForIndustry/
DataStandards/StudyDataStandards/default.htm) websites.
50 Chapter 3 / Frequently Asked Questions
Do I Have to Run All of the SAS Validation
Checks for SDTM?
No. The full set of validation checks supported by the SAS Clinical Standards Toolkit is
provided in the global standards library data set named validation_master. For SDTM
3.1.2, this data set can be found in the global standards library directory/
standards/cdisc-sdtm-3.1.2-1.7/validation/control directory.
Some checks assess structural (metadata) compliance, and other checks evaluate
specific data sets, columns, and data values at the “cell” level.
For any validation process, the SAS Clinical Standards Toolkit expects that you have
defined and referenced (in SASReferences, with type/subtype set to control/
validation) a run-time set of checks that might be some subset of the
validation_master checks. You have the option of both creating this subset and ordering
the checks to be run.
The run-time set of checks might change over time. For example, once the metadata
structure of the domains is confirmed, those checks do not need to be run again.
See “Building a Validation Process” in Chapter 7, “Compliance Assessment Against a
Reference Standard,” in the SAS Clinical Standards Toolkit: User's Guide.
Can I Run a Validation Process in the SAS
Clinical Standards Toolkit on Multiple Studies
Simultaneously?
Yes. The SAS Clinical Standards Toolkit offers several distinct methodologies that
support validating multiple studies. However, these methodologies depend on your data
accrual processes and workflow. It is important that you maintain relationships between
the source study data and the metadata that the SAS Clinical Standards Toolkit
requires. Each column in each data set in each study must be uniquely identifiable.
See “Case Study 7: Validation of Multiple Studies” in Chapter 7, “Compliance
Assessment Against a Reference Standard,” in the SAS Clinical Standards Toolkit:
User's Guide.
Macros
51
If I Disagree with or Choose to Modify the
Codelogic of a Specific Validation Check,
What Needs to Be Done?
Create your own copy of the validation_master data set for a specific standard (which
might be the run-time validation_control data set). Then, make the changes to the
copy’s validation check metadata, including codelogic.
If you believe that the codelogic provided by SAS is in error and you want SAS to
correct the error, report the problem through normal SAS Technical Support channels.
Approved updates become available with a subsequent hot fix or release of the SAS
Clinical Standards Toolkit.
Macros
Is There Any Debugging Help for SAS Macro
Errors?
Debugging errors in SAS macros can be difficult. The SAS Clinical Standards Toolkit
defines the global macro variable_cstDebug to enable these SAS system options:
mprint, mlogic, symbolgen, and mautolocdisplay.
Use these options to significantly increase the number of lines written to the SAS log.
By default, _cstDebug is set to 0, and these options are not enabled.
Common errors might be discussed in various parts of the SAS Clinical Standards
Toolkit: User's Guide. SAS also maintains a knowledge base that includes notes
regarding installation, problems, and usage for specific products. (See “How Do I Report
Problems, Ask Questions, or Get More Information about How to Use the SAS Clinical
Standards Toolkit?” on page 52.)
Other users might have reported or addressed problems on the SAS and Clinical Trials
Community forum (http://communities.sas.com/community/sas_and_clinical_trials).
52 Chapter 3 / Frequently Asked Questions
See “Common Errors and Solutions” in Chapter 6, “SASReferences File,” in the SAS
Clinical Standards Toolkit: User's Guide.
Where Do the Framework and StandardSpecific Macros Reside?
The SAS Clinical Standards Toolkit framework macros can be found here for SAS 9.4:
n
Microsoft Windows
!SASROOT\cstframework\sasmacro, where !SASROOT is
C:\Program Files\SASHome\SASFoundation\9.4
n
UNIX
!SASROOT/sasautos, where !SASROOT is /usr/local/SASHome/
SASFoundation/9.4/
Macros for specific standards can be found in the global standards library
directory/standards/standard/macros directory.
Miscellaneous
How Do I Report Problems, Ask Questions, or
Get More Information about How to Use the
SAS Clinical Standards Toolkit?
See “References” in Chapter 1, “Introduction to the SAS Clinical Standards Toolkit,” in
the SAS Clinical Standards Toolkit: User's Guide.
Miscellaneous
53
Can the SAS Clinical Standards Toolkit 1.7
Be Used with Any Release of SAS Besides
SAS 9.4?
The SAS Clinical Standards Toolkit 1.7 release is validated on SAS 9.4, running on
these platforms:
n
Windows for x64
n
Linux for x64
In general, the code base for the SAS Clinical Standards Toolkit is designed to be
backward compatible with prior releases of Base SAS, with only limited use of new
features introduced with recent SAS releases. The open-source nature of the product
allows user updates to all product components. “Off-label” use of the product is at the
discretion of the user.
How Is Availability of a New SAS Clinical
Standards Toolkit Release Publicized?
Releases of the SAS Clinical Standards Toolkit occur periodically. Your site
representative should contact your SAS account manager for updates on the release
schedule.
Availability of product updates is typically announced on the SAS and Clinical Trials
Community forum (http://communities.sas.com/community/sas_and_clinical_trials). You
can use e-mail notifications and RSS feeds to ensure that you do not miss any
announcements.
The SAS Clinical Standards Toolkit development team members report on product
updates and availability at user conferences for specific industries such as PharmaSUG
and PhUSE.
54 Chapter 3 / Frequently Asked Questions
Does a New Version of the SAS Clinical
Standards Toolkit Automatically Overwrite
Files Installed with a Previous Version?
No. The installation prompts you to define new locations for the SAS Clinical Standards
Toolkit global standards library and the sample library. SAS has a strategy of adding the
release number to folder names for the global standards library files and the sample
study library files. For example:
n
SAS Clinical Standards Toolkit 1.6
global standards library directory/standards/
cdisc-sdtm-3.1.2-1.6/control
n
SAS Clinical Standards Toolkit 1.7
global standards library directory/standards/
cdisc-sdtm-3.1.2-1.7/control
In addition, SAS does not automatically reset the default version of any previously
installed version of a standard to the current version. Instead, you must make the
decision to upgrade to the current version.
See “Unregistering an Old Version of a Standard, and Then Registering a New Version
of a Standard” in Chapter 2, “Framework,” in the SAS Clinical Standards Toolkit: User's
Guide.
For additional information about migration from one version to another, see the SAS
Knowledge Base/Focus Area SAS Clinical Standards Toolkit website (http://
support.sas.com/rnd/base/cdisc/cst/index.html).
55
Recommended Reading
Here is the recommended reading list:
n
SAS Clinical Standards Toolkit: User's Guide
This book provides more comprehensive information about the SAS Clinical
Standards Toolkit.
n
SAS Clinical Standards Toolkit: Operational Qualification
n
The SAS Knowledge Base/Focus Area SAS Clinical Standards Toolkit website
(http://support.sas.com/rnd/base/cdisc/cst/index.html). This website offers access to
a variety of papers and presentations about the SAS Clinical Standards Toolkit.
For a complete list of SAS books, go to support.sas.com/bookstore. If you have
questions about which titles you need, please contact a SAS Book Sales
Representative:
SAS Books
SAS Campus Drive
Cary, NC 27513-2414
Phone: 1-800-727-3228
Fax: 1-919-677-8166
E-mail: [email protected]
Web address: support.sas.com/bookstore
56 Recommended Reading
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement