using sas clinical standards toolkit, version 1

90
Using SAS ® Clinical Standards Toolkit, Version 1.2 18MAY2010 Moving Beyond the Data

Upload: others

Post on 05-Feb-2022

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Using SAS Clinical Standards Toolkit, Version 1

Using SAS® Clinical

Standards Toolkit,

Version 1.218MAY2010

Moving Beyond the Data

Page 2: Using SAS Clinical Standards Toolkit, Version 1

Copyright © 2010, d-Wise Technologies, Raleigh, NC, USA.

All rights reserved. Printed in the United States of America.

Use or reuse of this publication requires prior written permission of the publisher, d-Wise Technologies. Thesematerials are copyrighted.

SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of, or licensedto, SAS Institute Inc. in the USA and other countries. ® indicates USA registration. Other brand and product names areregistered trademarks or trademarks of their respective companies.

Microsoft and all other Microsoft product or service names are registered trademarks or trademarks of, or licensed to,Microsoft in the USA and other countries. ® indicates USA registration. Other brand and product names are registeredtrademarks or trademarks of their respective companies.

All questions and comments about this training material should be directed to

d-Wise Technologies4020 Westchase BlvdSuite 527Raleigh, North Carolina 27607

Telephone: (919) 600-6230

http://www.d-wise.com

Page 3: Using SAS Clinical Standards Toolkit, Version 1

i

Table of Contents

1. Introduction to the Clinical Standards Toolkit

1.1 About This Training ...............................................................................1-2

1.2 Overview of Functionality ......................................................................1-3

1.3 Installation .............................................................................................1-5Our Installation Experiences…...................................................................................1-5

Documentation ..........................................................................................................1-6

1.4 CST Folder Structure and Organization ................................................1-7Framework ................................................................................................................1-8

Global Library ............................................................................................................1-8

Samples ....................................................................................................................1-8

1.5 Understanding How to Run CST ...........................................................1-9SDTM Validation .......................................................................................................1-9

Conversion to CRT-DDS Representation ...................................................................1-9

CRT-DDS Validation................................................................................................1-10

Conversion to define.xml .........................................................................................1-10

2. Running SDTM Validation Checks

2.1 Objectives .............................................................................................2-2

2.2 Understanding the Inputs and Outputs..................................................2-3

2.3 The Input Files and the Program...........................................................2-4Study Metadata Tables ..............................................................................................2-4

Control Files ..............................................................................................................2-5

The List of Checks to Run......................................................................................2-5

References to all the Pieces ..................................................................................2-5

Validation Properties..............................................................................................2-6

Creating a Program to Run the Validation Process.....................................................2-7

Understanding How the Pieces Fit Together ..............................................................2-8

2.4 Running the Validation Process.............................................................2-9

2.5 Strategies for Running Validation Checks ...........................................2-11Creating the Study Metadata Tables ........................................................................2-11

Sorting Through the List of Validation Checks ..........................................................2-14

Creating a Subset of Validation Checks ...................................................................2-15

Cleaning up After a Run ..........................................................................................2-16

Revisiting the sasreferences Table ..........................................................................2-17

Dynamically Generating Study Metadata .................................................................2-18

More on Properties ..................................................................................................2-20

Making Sense of the Results Table..........................................................................2-21

Page 4: Using SAS Clinical Standards Toolkit, Version 1

ii

3. Creating a define.xml File

3.1 Objectives .............................................................................................3-2

3.2 Creating CRT-DDS Data from a Study ..................................................3-3Understanding the Inputs and Outputs.......................................................................3-3

Input Files and the Program.......................................................................................3-4

Metadata Tables....................................................................................................3-4

Study Control Table ...............................................................................................3-4

sasreferences Table ..............................................................................................3-5

Program to Run the Conversion Process ...............................................................3-5

Understanding How the Pieces Fit Together ..............................................................3-7

Running the Conversion Process...............................................................................3-7

3.3 Validating the CRT-DDS Data ...............................................................3-9Understanding the Inputs and Outputs.......................................................................3-9

Input Files and the Program.....................................................................................3-10

Metadata Tables..................................................................................................3-10

List of Validation Checks to Run ..........................................................................3-13

sasreferences Table ............................................................................................3-14

Program to Run the Validation Process................................................................3-15

Understanding How the Pieces Fit Together ............................................................3-16

Running the CRT-DDS Validation Process ..............................................................3-17

3.4 Creating a define.xml File....................................................................3-18Understanding the Inputs and Outputs.....................................................................3-18

Input Files and the Program.....................................................................................3-19

sasreferences Table ............................................................................................3-19

Program to Run the define.xml Process ...............................................................3-19

Understanding How the Pieces Fit Together ............................................................3-20

Running the Program...............................................................................................3-21

3.5 Validating the define.xml File...............................................................3-22Inputs and the Program ...........................................................................................3-22

sasreferences Table ............................................................................................3-22

Program to Validate the define.xml ......................................................................3-22

Running the Program...............................................................................................3-23

Controlling Log Level of XML Messages ..................................................................3-23

4. Using CST Macros

4.1 Overview and Objectives.......................................................................4-2

4.2 Macros for Managing Standards and Tables .........................................4-3cst_createDS.............................................................................................................4-3

cst_createStudyFromStandard ..................................................................................4-4

cst_createTablesForDataStandard ............................................................................4-4

cst_getRegisteredStandards......................................................................................4-5

cst_getStandardMetadata..........................................................................................4-5

cst_getStandardSASReferences................................................................................4-6

cst_registerStandard .................................................................................................4-7

Page 5: Using SAS Clinical Standards Toolkit, Version 1

iii

cst_setStandardVersionDefault..................................................................................4-8

cst_unregisterStandard..............................................................................................4-8

4.3 Macros for Running CST Processes .....................................................4-9cst_setProperties.......................................................................................................4-9

cst_setStandardProperties.........................................................................................4-9

cstutil_allocateSASReferences ................................................................................4-10

cstutil_cleanupCSTSession .....................................................................................4-10

4.4 Macros for Validation Reporting ..........................................................4-11cstutil_createReport.................................................................................................4-11

4.5 Examples of Using CST Macros..........................................................4-13Example 1: Create Validation Reports ....................................................................4-13

Example 2: Get a List of Registered Standards .......................................................4-15

Example 3: Create Metadata and Control Tables from a Standard ..........................4-16

Example 4: Get Copies of a Standard’s Metadata Tables.........................................4-18

Example 5: Create Empty Domain Tables from a Standard.....................................4-19

Example 6: Building and Registering a Validation Standard ....................................4-20

What Happens when you Register a Standard .....................................................4-20

Tables and Files you need to Edit for a New Standard .........................................4-20

Steps for Creating a New Standard......................................................................4-21

Step 1: Create a Folder Structure for the Standard...........................................4-21

Step 2: Create Metadata Tables for the Standard’s Tables and Columns .........4-22

Step 3: Create a Table of Validation Checks for the Standard ..........................4-22Understanding Table Scope and Column Scope .............................................................................................4-23

Step 4: Copy the Properties Files from an Existing Standard............................4-24

Step 5: Create a sasreferences Table for the Standard ....................................4-24

Step 6: Create a standards table for the Standard ............................................4-25

Step 7: Register the Standard to CST ..............................................................4-26

Page 6: Using SAS Clinical Standards Toolkit, Version 1

iv

Course Description

This instructor-based course is for technical users including biostatisticians, programmers andclinical data managers who have prior SAS software knowledge, have a technical background,and want to learn the functionality of SAS Clinical Standards Toolkit.

Course topics include

an overview of SAS Clinical Standards Toolkit functionality

how to run SDTM validation checks on study data

how to create define.xml files

how to validate define.xml files

how to use macros provided by SAS Clinical Standards Toolkit.

Prerequisites

Prior to this course, you should be able to do the following:

understand basic clinical data structures

understand the basics of SDTM data standards

write SAS programs and understand SAS program statements

understand basic SAS macros

access and view SAS data tables and SAS catalogs

Sample Data and Programs

Sample data and programs are available from the d-wise web site at http://www.d-wise.com

Page 7: Using SAS Clinical Standards Toolkit, Version 1

1-1

1 Introduction to theClinical StandardsToolkit

Version 1.018MAY10

1.1 About This Training.............................................................................1-2

1.2 Overview of Functionality...................................................................1-3

1.3 Installation ...........................................................................................1-5Our Installation Experiences… ...............................................................................1-5

Documentation ........................................................................................................1-6

1.4 CST Folder Structure and Organization ............................................1-7Framework ...............................................................................................................1-8

Global Library ..........................................................................................................1-8

Samples ...................................................................................................................1-8

1.5 Understanding How to Run CST........................................................1-9SDTM Validation ......................................................................................................1-9

Conversion to CRT-DDS Representation ...............................................................1-9

CRT-DDS Validation ..............................................................................................1-10

Conversion to define.xml ......................................................................................1-10

Page 8: Using SAS Clinical Standards Toolkit, Version 1

1. Introduction to the Clinical Standards Toolkit

1-2

1.1 About This Training

This training covers SAS Clinical Toolkit, Version 1.2.

It assumes that you

have Base SAS installed on your PC under MS Windows

have working knowledge of SAS programming and macros

know how to open and edit SAS data tables.

Page 9: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

1-3

1.2 Overview of Functionality

The SAS Clinical Standards Toolkit (CST) consists of a database and a SAS macro library formanaging and using clinical standards. CST provides a number of utility macros for managingstandards and assisting in building control tables required to run CST validation and conversionprocesses.

Key functionality:

validate study tables against CDISC SDTM 3.1.1

create a representation of a define.xml file as SAS tables (CRT-DDS)

validate CRT-DDS SAS tables

create a define.xml file

validate a define.xml file

register and manage custom standards.

Standards provided by CST:

CDISC-SDTM 3.1.1

CRT-DDS 1.0

a snapshot of CDISC Controlled Terminology from October of 2008.

Validation checks provided for study tables:

CDISC SDTM 3.1.1

define.xml files based CDISC CRT-DDS 1.0.

Page 10: Using SAS Clinical Standards Toolkit, Version 1

1. Introduction to the Clinical Standards Toolkit

1-4

Source of CheckNumberof Checks

WebSDM™ only 6

Janus only 3

JanusFR only 7

WebSDM™ and Janus 46

WebSDM™ and JanusFR 50

WebSDM™, Janus and SAS 1

SAS only 30

143

NOTE: The underlying SAS code for the checks represents SAS’s interpretation of the checks.

Page 11: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

1-5

1.3 Installation

CST is available under MS Windows for SAS 9.1.3 and 9.2, and under UNIX for SAS 9.2.

CST is available at no cost.

For SAS 9.1.3, CST can be downloaded from the SAS website athttp://ftp.sas.com/techsup/download/hotfix/drugdev/12clintlkt01

For SAS 9.2, CST can be requested through your SAS representative.

In order to install and run CST, the java runtime environment (JRE) must be installed on yourPC.

For SAS 9.1.3, hotfix E9BC95 must be installed in order to process dates in the ISO 8601format. Refer to the hotfix at http://ftp.sas.com/techsup/download/hotfix/e9_win_sbcs.html

Our Installation Experiences…

CST is typically installed in your SAS installation folder. Installation uses Apache Ant scripts tocopy and edit files. Ant is an open-source Java-based build tool from the Apache SoftwareFoundation. Ant uses build files, which are XML files that tell the Ant program what to do.Because Ant is a Java program, it's a cross-platform tool.

For SAS 9.2

Apache Ant is automatically installed and set up for you, and CST installation seems to bepretty straightforward.

For SAS 9.1.3

You have to download and install Apache Ant (http://ant.apache.org).

Installation can be a bit challenging, especially if your SAS installation is in a non-defaultlocation (e.g. someplace other than C:\Program Files\SAS)

Be sure to carefully read the installation doc!!

If all else fails, it is possible to manually install CST.

You have to extract files from the installation ZIP file and create the proper folder structure.

You have to rebuild transport files on your own.

You have to manually edit SAS config files.

Page 12: Using SAS Clinical Standards Toolkit, Version 1

1. Introduction to the Clinical Standards Toolkit

1-6

NOTE: d-Wise can provide some documentation and sample programs for doing a manualinstallation if you get stuck. See the d-Wise web site

Documentation

Two sources for documentation:

SAS Clinical Standards Toolkit 1.2: User's Guidehttp://support.sas.com/documentation/onlinedoc/clinical/toolkit_ug12.pdf

SAS Clinical Standards Toolkit 1.2: Quick Start for SDTM Validation for SAS 9.2 and SAS9.1.3http://support.sas.com/documentation/onlinedoc/clinical/quickstart.pdf

Page 13: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

1-7

1.4 CST Folder Structure and Organization

CST consists of three major components:

CST Framework contains the bulk of the validation check macros and utility macros. It alsocontains the java files needed for creating a define.xml. The CST Frameworkis installed in a folder named cstframework.

Global Library contains registered standards and any standard specific macros. It is installedin a folder named cstGlobalLibrary.

Samples contains examples of input tables, results, and programs for running CSTprocesses. The sample programs are used as part of the installationqualification. There are two sets of samples: one for SDTM and one for CRT-DDS. These folders are typically installed in the same location as the CSTFramework and the Global Library. Look for two folders with names thatbegin with SASClinicalStandardsTookit.

The folder structure for the CST framework and global library.

Page 14: Using SAS Clinical Standards Toolkit, Version 1

1. Introduction to the Clinical Standards Toolkit

1-8

Framework

The Framework is installed in a folder named cstframework.

Subfolders under cstframework:

sasmacro contains SAS macros for utility tasks and for starting and running CST.

Global Library

The Global Library is installed in a folder named cstGlobalLibrary.

Subfolders under cstGlobalLibrary:

metadata contains the SAS tables with information on registered standards.

schema-repositorycontains schemas for XML-based standards supported by CST.

standards contains a subfolder for each registered standard. Standards provided withCST include SDTM, CRT-DDS, Controlled Terminology and CSTFramework.

xls-repository contains subfolders for standards that support XML. These subfolders containXML stylesheets used for reading and writing XML files.

Samples

Two folders with examples are created as part of installation. You have to drill down a bit to getto the actual samples.

Page 15: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

1-9

1.5 Understanding How to Run CST

A number of files and tables have to be defined properly and referenced properly in order to getCST to generate results. The rest of this course focuses on how to set up the files and tables torun the tasks. The sections below provide a quick high-level overview.

SDTM Validation

Run SDTM checks against your study data and metadata.

Conversion to CRT-DDS Representation

Read SDTM data and metadata to create SAS tables that represent the structure of a define.xmlfile.

SDTM Validation Processing

Validation

Processing

StudyData

Run-timeControl Files

StandardsMetadata

ControlledTerminology

Metrics andResults Tables

StudyMetadata

SDTM-to-CRT-DDS Processing

Convert

ProcessingRun-time

Control Files

ControlledTerminology

Results Table

SAS Tables thatrepresentdefine.xmlstructure

StudyData

StudyMetadata

Page 16: Using SAS Clinical Standards Toolkit, Version 1

1. Introduction to the Clinical Standards Toolkit

1-10

CRT-DDS Validation

Run checks against SAS tables representing CRT-DDS tables to validate that a proper define.xmlfile can be created.

Conversion to define.xml

Read SAS tables that represent CRT-DDS formatted data and metadata to create define.xml file.

CRT-DDS Validation Processing

Validation

Processing

Run-timeControl Files

Metrics andResults Tables

SAS Tables thatrepresentdefine.xmlstructure

MetadataFor Tables

define.xml Creation

define.xmlProcessing

Run-timeControl Files

Results Table

CRT-DDSData

Define.xml

Page 17: Using SAS Clinical Standards Toolkit, Version 1

2-1

2 Running SDTMValidation Checks Version 1.0

18MAY10

2.1 Objectives ............................................................................................2-2

2.2 Understanding the Inputs and Outputs .............................................2-3

2.3 The Input Files and the Program........................................................2-4Study Metadata Tables ............................................................................................2-4

Control Files ............................................................................................................2-5

The List of Checks to Run......................................................................................2-5

References to all the Pieces ..................................................................................2-5

Validation Properties..............................................................................................2-6

Creating a Program to Run the Validation Process ...............................................2-7

Understanding How the Pieces Fit Together..........................................................2-8

2.4 Running the Validation Process.........................................................2-9

2.5 Strategies for Running Validation Checks ......................................2-11Creating the Study Metadata Tables.....................................................................2-11

Sorting Through the List of Validation Checks ....................................................2-14

Creating a Subset of Validation Checks ...............................................................2-15

Cleaning up After a Run ........................................................................................2-16

Revisiting the sasreferences Table ......................................................................2-17

Dynamically Generating Study Metadata .............................................................2-18

More on Properties................................................................................................2-20

Making Sense of the Results Table ......................................................................2-21

Page 18: Using SAS Clinical Standards Toolkit, Version 1

2. Running SDTM Validation Checks

2-2

2.1 Objectives

Understand the input files and tables required for running SDTM validation checks.

Know how to build input files and tables for a study.

Know how to create a SAS program to run SDTM validation checks.

Understand the output generated from a running SDTM validation checks.

Page 19: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

2-3

2.2 Understanding the Inputs and Outputs

In order to run SDTM checks against your study data and metadata, you have to understand theinput files involved and the ones that you need to create.

Key Points:

You have to provide metadata tables for a study’s tables and columns.

You can control what validation checks are run.

Some validation checks compare your study metadata to a standard’s metadata.

Some validation checks evaluate the consistency of column values between columns, acrossrecords, and across tables.

A references table tells a validation process where to find all the other files and tables neededfor validation.

You have to create a SAS program that calls appropriate CST macros to run checks.

SDTM Validation Processing

ValidationProcessing

StudyData

Run-timeControl Files

StandardsMetadata

ControlledTerminology

Results Files

StudyMetadata

Page 20: Using SAS Clinical Standards Toolkit, Version 1

2. Running SDTM Validation Checks

2-4

2.3 The Input Files and the Program

Study Metadata Tables

SDTM validation checks need a list of tables in a study to check and the columns to check. Thisinformation is provided in the form of SAS tables.

The metadata control tables for SDTM validation checks contain the following information:

List of Tables provides the study tables to include in validation checks. The list is in theform of a SAS table.

List of Columns provides the columns from the study tables to include in validation checks.The list is in the form of a SAS table.

Key Points:

You must create these metadata tables for a study.

The tables containing the list of study tables and the list of columns have specific structures.

Some of the columns in these control tables contain the basic metadata that you would getfrom a PROC CONTENTS – column name, label, type, length, for example.

Some of the columns represent extended metadata that is specific to CDISC standards –origin, qualifier, role, for example.

Examples of study metadata tables:

Page 21: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

2-5

Control Files

The List of Checks to Run

A validation process requires a list of validation checks to run.

The list of checks is in the form of a SAS table.

Key points:

The validation_master table provides a list of the checks for the SDTM 3.1.1 standards. It islocated in cstGlobalLibrary\standards\cdisc-sdtm-3.1.1\validation\control .

You can create the list of checks by copying and subsetting the master list that goes with astandard.

DO NOT run all of the validation checks at one time. The output will be overwhelming.

An example of a table of validation checks for the SDTM 3.1.1 standard in CST:

NOTES: Refer to Appendix 5 in the SAS documentation for details on the SDTM 3.1.1validation checks.

References to all the Pieces

The sasreferences table provides a list of pointers to the tables and files needed to run avalidation check process.

The sasreferences table is basically a list of librefs, filerefs, folder paths, and files to use.

The list of items in the sasreferences table varies depending on the standards and the type ofprocess you are running.

There should be a record in the sasreferences table that references itself.

Page 22: Using SAS Clinical Standards Toolkit, Version 1

2. Running SDTM Validation Checks

2-6

CST is not very forgiving and can be very picky if things don’t match up exactlybetween what is in sasreferences and what is in the metadata tables. For example, thelibrefs referenced in the study metadata tables and columns tables must match the librefreferecnced in the sasreferences table.

An example of a sasreferences table:

Notice the two macro variables used in the table:

_cstGRoot points to the root folder where folders for standards definitions are stored. It is set byCST initialization.

_studyRootPath points to the root folder of your study data and metadata, assuming it is allunder the same root study folder.

Validation Properties

Validation properties define how validation checks are processed.

The named pairs converted to SAS macro variables.

Validation properties must be loaded since the macro variables they define are used acrossCST macros.

Validation properties can be explicitly loaded by the SAS program that runs a validationprocess or by referencing the validation properties file in the sasreferences table.

A validation properties file is provided with the SDTM 3.1.1 standards and can be used as thedefault.

Page 23: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

2-7

Example of a validation properties file:

_cstCheckSortOrder=_DATA_

_cstMetrics=1

_cstMetricsDS=work._cstmetrics

_cstMetricsNumSubj=1

_cstMetricsNumRecs=1

_cstMetricsNumChecks=1

_cstMetricsNumBadChecks=1

_cstMetricsNumErrors=1

_cstMetricsNumWarnings=1

_cstMetricsNumNotes=1

_cstMetricsNumStructural=1

_cstMetricsNumContent=1

_cstMetricsCntNumSubj=0

_cstMetricsCntNumRecs=0

_cstMetricsCntNumChecks=0

_cstMetricsCntNumBadChecks=0

_cstMetricsCntNumErrors=0

_cstMetricsCntNumWarnings=0

_cstMetricsCntNumNotes=0

_cstMetricsCntNumStructural=0

_cstMetricsCntNumContent=0

_cstMetricsTimer=1

Creating a Program to Run the Validation Process

Validation checks are executed on a study by running a SAS program that initializes the CSTstandards to use, defines the location and name of the sasreferences table to use, and runs theappropriate CST macros to process the checks.

Example of a SAS program that runs validation checks:

/* >>> Define a macro var that points to the study folder */

%let STUDYROOTPATH = D:\CSTStudy;

/* Initialize the CST-FRAMEWORK. */

%cst_setStandardProperties(

_cstStandard =CST-FRAMEWORK,

_cstStandardVersion=1.2,

_cstSubType =initialize

);

/* Initialize the CDISC-SDTM standard. */

%cst_setStandardProperties(

_cstStandard =CDISC-SDTM,

_cstStandardVersion=3.1.1,

_cstSubType =initialize

);

/* >>> Define location/name of sasreferences table to use */

%let _cstSASRefsLoc = &STUDYROOTPATH\sdtmFiles;

%let _cstSASRefsName = sasreferences_sdtmvalidation;

/* Allocate filerefs and librefs defined in sasreferences table */

Page 24: Using SAS Clinical Standards Toolkit, Version 1

2. Running SDTM Validation Checks

2-8

%cstutil_allocatesasreferences;

/* Run the validation checks. */

%sdtm_validate;

Key points about the program:

At the beginning to the program, the macro variable studyRootPath is defined with a folderpath. This macro variable is used in the sasreferences table to generalize the folder paths tostudy-specific folders.

The CST framework and standards to use for the validation process are initialized before anyother CST macros are run.

Two CST macro variables are defined that identify the location and name of the sasreferencestable to use, then a CST macro is called that allocates the librefs and filerefs defined in thesasreferences table.

The CST validation macro is the last thing in the SAS program.

Understanding How the Pieces Fit Together

Study tables and metadata tables describe the study.

A standard’s metadata tables describe what a study should look like.

A list of validation checks to run is an input to validation processing.

A sasreferences table identifies all the input files that a validation process should use.

Standards

Study

SDTM Validation Processing

DM

AE

LB

source_tables

source_columns

validation_properties

sasreferences

validation checks

reference_tables

reference_columns

ValidationProcessing

metrics

results

Page 25: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

2-9

2.4 Running the Validation Process

Running an SDTM validation process generates two output data tables.

Metrics contains a summary of the number of records processed by various checks anda count of the number of notes, warning messages and error messagesgenerated. Use this table to get an overview of what ran and how manyvalidation issues were encountered.

NOTE: Refer to the documentation for the Clinical Standards Toolkit for details on columns inthe metrics table.

Page 26: Using SAS Clinical Standards Toolkit, Version 1

2. Running SDTM Validation Checks

2-10

Results contains the detailed results of the validation checks. Depending on the checksyou included in your validation_control table and the SDTM conformity ofyour study, the results table can be very large.

NOTE: Refer to the documentation for the Clinical Standards Toolkit for details on columns inthe metrics table.

Page 27: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

2-11

2.5 Strategies for Running Validation Checks

Creating the Study Metadata Tables

Use PROC SQL with a dictionary view to create metadata tables and populate them with thebasic metadata for a study.

Copy the metadata tables from the SDTM sample and edit them to match your studymetadata.

Use the %cst_getStandardMetadata macro to return metadata tables defined to a standard.

Here is a sample program that creates and populates the basic metadata for a study:

%let STDYLIB = STUDY;

%let STUDYID = SASCSTDEMODATA;

%let STUDYROOTPATH = D:\CSTStudy\data;

%let SDTMDATA = D:\CSTStudy\sdtmfiles;

%let STANDARD = CDISC-SDTM;

%let STDVERSION = 3.1.1;

%let STUDYDESC = CST Study;

%let STUDYDS = &STUDYID._study;

%let TABLESDS = &STUDYID._tables;

%let COLUMNSDS = &STUDYID._columns;

/* Point to where study data tables live */

libname &STDYLIB "&STUDYROOTPATH";

/* Point to where to write metadata tables */

libname sdtm "&SDTMDATA";

/* <<<<< THIS SECTION DEFINES BASIC TABLE AND COLUMN METADATA >>>>>*/

proc sql;

/* Create list of study tables for SDTM metadata */

create table &TABLESDS as

select libname as sasref ,

memname as table ,

memlabel as label ,

"&STANDARD" as standard length=20,

"&STDVERSION" as standardversion length=20

from dictionary.tables

where libname="&STDYLIB" ;

/* Create list of study columns for SDTM metadata */

create table &COLUMNSDS (rename=(coltype=type)) as

select libname as sasref ,

memname as table ,

Page 28: Using SAS Clinical Standards Toolkit, Version 1

2. Running SDTM Validation Checks

2-12

name as column ,

label ,

case when type="char" then "C"

when type="num" then "N"

end as coltype length=1,

length ,

varnum as order ,

"&STANDARD" as standard length=20,

"&STDVERSION" as standardversion length=20

from dictionary.columns

where libname="&STDYLIB";

/* Create a descriptor table for the study */

create table sdtm.&STUDYDS

(OID char(64),

Studyname char(128),

DefineDocumentName char(64),

SASRef char(8),

ProtocolName char(15),

StudyDescription char(100)

);

insert into sdtm.&STUDYDS

set Studyname ="Test Study" ,

DefineDocumentName="define" ,

SASRef ="STUDY" ,

ProtocolName ="&STUDYID" ,

StudyDescription ="&STUDYDESC"

;

quit;

/* <<<<< THIS SECTION DEFINES EXTENDED TABLE AND COLUMN METADATA >>>>> */

/* Initialize the standard to use for macro calls below */

%cst_setStandardProperties(

_cstStandard =&STANDARD,

_cstStandardVersion=&STDVERSION,

_cstSubType =initialize

);

/* Create an empty sasreferences table */

%cst_createDS(

_cstStandard =CST-FRAMEWORK,

_cstStandardVersion=1.2,

_cstType =control,

_cstSubType =reference,

_cstOutputDS =sasrefs

);

/* Add 2 records for references tables and columns */

proc sql;

insert into sasrefs

set standard ="&STANDARD",

standardVersion="&STDVERSION",

type ='referencemetadata',

subType ='table',

sasRef ='work',

Page 29: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

2-13

refType ='libref',

memname ='refTables'

set standard ="&STANDARD",

standardVersion="&STDVERSION",

type ='referencemetadata',

subType ='column',

sasRef ='work',

refType ='libref',

memname ='refColumns'

;

quit;

/* Get tables and columns defined to standards */

%cst_getStandardMetadata(

_cstSASReferences =work.sasrefs,

_cstResultsOverrideDS=_cstresults

);

/* Add extended metadata from standards to study metadata */

proc sql;

create table sdtm.&TABLESDS as

select mystudy.*,

ref.keys ,

ref.standardref ,

ref.class ,

ref.structure ,

ref.purpose ,

ref.state ,

ref.date ,

ref.xmlpath ,

ref.xmltitle ,

ref.comment

from &TABLESDS as mystudy

left join

work.refTables as ref

on mystudy.table=ref.table;

create table sdtm.&COLUMNSDS as

select mystudy.*,

ref.core ,

ref.qualifiers ,

ref.origin ,

ref.role ,

ref.term ,

ref.xmlcodelist ,

ref.xmldatatype ,

ref.displayformat ,

ref.comment

from &COLUMNSDS as mystudy

left join

work.refColumns as ref

on mystudy.table=ref.table and

mystudy.column=ref.column;

drop table reftables, refcolumns, sasrefs, &TABLESDS, &COLUMNSDS;

Page 30: Using SAS Clinical Standards Toolkit, Version 1

2. Running SDTM Validation Checks

2-14

quit;

libname study clear;

libname sdtm clear;

Sorting Through the List of Validation Checks

The validation_master table in cstGlobalLibrary\standards\cdisc-sdtm-3.1.1\validation\control provides a list of the validation checks for the SDTM 3.1.1 standards,but it does not contain any descriptions of what the checks do. The messages table in the foldercstGlobalLibrary\standards\cdisc-sdtm-3.1.1\messages contains the source ID as well as asource description column. You can join the validation_master table and the messages table tocreate a list of checks and their descriptions.

libname sdtmchks "E:\cstGlobalLibrary\standards\cdisc-sdtm-3.1.1\validation\control";

libname sdtmmsgs "E:\cstGlobalLibrary\standards\cdisc-sdtm-3.1.1\messages";

proc sql;

create table work.sdtm_checklist as

select distinct val.checkid format=$8.,

val.checktype format=$15.,

msg.sourcedescription,

val.checksource format =$10.,

val.sourceid format=$8.,

val.tablescope ,

val.columnscope

from sdtmchks.validation_master as val

right join

sdtmmsgs.messages as msg

on val.checkid = msg.resultid ;

quit;

libname sdtmchks "";

libname sdtmmsgs "";

Example of the joined validation_master and messages tables:

Page 31: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

2-15

Creating a Subset of Validation Checks

Trying to run all validation checks at one time can create an overwhelming amount of output.Consider creating a set of validation check tables that you use in a standard validation checkprocess.

There are several columns in the validation_master table that you can use for subsetting thevalidation checks. It is located in cstGlobalLibrary\standards\cdisc-sdtm-3.1.1\validation\control.

CheckSource provides a way to subset the checks based on the source of the check – Janus,JanusFR, WebSDM, or SAS.

CheckType provides categories of data or metadata that a check processes. Possiblevalues are CntlTerm Column, ColumnAttribute, ColumnValue, Date,Metadata, Multirecord, Multitable.

CheckID provides a way to select specific checks based on the check ID.

Example of a program to subset the validation checks:

%let SDTMDATA = D:\CSTStudy\sdtmfiles;

%let SDTMVAL = E:\cstGlobalLibrary\standards\cdisc-sdtm-3.1.1\validation\control;

%let CHECKSDS = sdtmchecks ;

/* CheckSource Values: Janus JanusFR SAS WebSDM */

%let WHERECHKSOURCE = checksource in("Janus", "JanusFR", "SAS" ) ;

/* CheckType Values: CntlTerm Column ColumnAttribute ColumnValue

Date Metadata Multirecord Multitable */

* %let WHERECHKTYPE = checktype in("ColumnAttribute");

%let WHERECHKIDS=checkid in("SDTM0001", "SDTM0022", "SDTM0023", "SDTM0030", "SDTM0101");

libname sdtm "&SDTMDATA";

libname sdtmval "&SDTMVAL";

proc sql;

create table sdtm.&CHECKSDS as

select *

from sdtmval.validation_master

where &WHERECHKSOURCE and

&WHERECHKIDS ;

quit;

libname sdtm "";

libname sdtmval "";

Page 32: Using SAS Clinical Standards Toolkit, Version 1

2. Running SDTM Validation Checks

2-16

Cleaning up After a Run

During a CST session, a number of librefs and filrefs may be defined as well as macro variablesand SAS options. If you are running CST processes as well as other SAS programs in the sameSAS session, you may want to clean up CST artifacts before running other SAS tasks.

The cstutil_cleanupCSTSession macro provides a way to clean up after running a program thatuses CST macros.

Example of running the cstutil_cleanupCSTSession macro:

/* Clean up things created by CST. Comment out if you want to look at the stuff created

by run */

*%cstutil_cleanupcstsession(

_cstClearCompiledMacros=0,

_cstClearLibRefs=0,

_cstResetSASAutos=0,

_cstResetFmtSearch=0,

_cstResetSASOptions=1,

_cstDeleteFiles=1,

_cstDeleteGlobalMacroVars=0

);

Refer to the CST documentation for more information on the cstutil_cleanupCSTSession macro.This macro is also discussed in Module 4, Overview of CST Macros, of this training course.

Page 33: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

2-17

Revisiting the sasreferences Table

Question: Editing the sasreferences table for a validation process looks like a lot ofwork. Is there an easier way to do this?

Answer: Reference macro variables in your sasreferences table. Set the macrovariables in your program that runs the validation process.

Here is an example of a sasreferences table that contains a number of macro variable references.

Here is a revised SAS program to run a validation process.

/* >>> Define macro vars that point to data and metadata */

%let STUDYID = SASCSTDEMODATA;

%let STUDYROOTPATH = D:\CSTStudy;

%let STDYLIB = STUDY;

%let STUDYDATA = &studyRootPath\data;

%let TABLESMETADS = &STUDYID_tables;

%let COLUMNSMETADS = &STUDYID_columns;

%let CHECKSDS = sdtmchecks;

%let METRICSDS = metrics;

%let RESULTSDS = results;

%let SASREFSDS = better_sasreferences

/* Set up the CST-FRAMEWORK standard. */

%cst_setStandardProperties(

_cstStandard =CST-FRAMEWORK,

_cstStandardVersion=1.2,

_cstSubType =initialize

);

/* Set up the CDISC-SDTM standard. */

%cst_setStandardProperties(

_cstStandard =CDISC-SDTM,

_cstStandardVersion=3.1.1,

_cstSubType =initialize

);

Page 34: Using SAS Clinical Standards Toolkit, Version 1

2. Running SDTM Validation Checks

2-18

/* >>> Define location/name of sasreferences table to use */

%let _cstSASRefsLoc = &STUDYROOTPATH\sdtmfiles;

%let _cstSASRefsName = &SASREFSDS;

/* Allocate filerefs and librefs defined in sasreferences table */

%cstutil_allocatesasreferences;

/* Run the validation checks. */

%sdtm_validate;

Key points:

Notice how macro variables set in the program are referenced in the sasreferences table.

You can create generalized sasreferences tables that could be used with a number of studies.

You can change the names of the metadata tables to use and the name of the validation checkstable without having to edit the sasreferences table.

Dynamically Generating Study Metadata

Question: Why do I have to create study metadata tables? Can’t CST figure it out at run-time?

Answer: The current version of CST can’t figure it out, but you can add your ownmacro to do it.

The example below is a macro that creates metadata tables for a study. You can use this macro ina validation program to dynamically create metadata tables for a study if they do not exist.

%* addon_create_study_metadata *;

%* Purpose : Creates metadata tables for study domains *;

%* Parameters: *;

%* STUDYLIB Libref to use for study. *;

%* STUDYID Study ID for prefixing metadata table names. *;

%* STUDYDESC Study Description used in study metadata table. *;

%* STUDYDATAPATH Path where study data is located. *;

%* SDTMDATAPATH Path for writing metadata. *;

%* DOMAINS blank or list of domains separated by a space. *;

%* NEW blank or Y to re-create metadata tables if they *;

%* already exist. *;

%macro addon_create_study_metadata (STUDYLIB=, STUDYID=, STUDYDESC=, STUDYDATAPATH=,

SDTMDATAPATH=, DOMAINS=, NEW= );

%let STANDARD = CDISC-SDTM;

%let STDVERSION = 3.1.1;

%let STUDYDS = &STUDYID._study;

%let TABLESDS = &STUDYID._tables;

%let COLUMNSDS = &STUDYID._columns;

Page 35: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

2-19

%let WHERE = ;

%* Point to where to write metadata tables ;

libname sdtm "&SDTMDATAPATH";

%if &NEW= %then %do;

%put ;

%let rc=%sysfunc(exist(sdtm.&STUDYID._study,DATA));

%if &rc=1 %then %put NOTE: sdtm.&STUDYID._study already exists.;

%if &rc=0 %then %do;

%let rc=%SYSFUNC(exist(sdtm.&STUDYID._tables,DATA));

%if &rc=1 %then %put NOTE: sdtm.&STUDYID._tables already exists.;

%end;

%if &rc=0 %then %do;

%let rc=%sysfunc(exist(sdtm.&STUDYID._columns,DATA));

%if &rc=1 %then %put NOTE: sdtm.&STUDYID._columns already exists.;

%end;

%if &rc=1 %then %do;

%put NOTE: At least one study metadata table exists. Not re-creating them.;

%put ;

%goto exit;

%end;

%end;

%if %length(&DOMAINS)>0 %then %do;

%let count=0;

%let WHERE = and MEMNAME in(;

%do %until(&table=);

%let count=%eval(&count + 1);

%let table=%scan(&DOMAINS,%eval(&count));

%if %length(&table)>0 %then %do;

%if &count=1 %then %let WHERE = &WHERE "&table";

%if &count>1 %then %let WHERE = &WHERE ,"&table";

%end;

%end;

%if %length(&where)>0 %then %let WHERE = &WHERE %str(%));

%end;

%* Point to where study data tables live ;

libname &STUDYLIB "&STUDYDATAPATH";

proc sql;

< See section Strategies for Creating Metadata Tables for remainder of code >

Page 36: Using SAS Clinical Standards Toolkit, Version 1

2. Running SDTM Validation Checks

2-20

Example of the macro call:

%addon_create_study_metadata(

STUDYLIB = study,

STUDYID = sascstdemodata,

STUDYDESC = CST Study,

STUDYDATAPATH = d:\CSTstudy\data,

SDTMDATAPATH = d:\CSTstudy\sdtmfiles,

DOMAINS = DM VS,

NEW = Y

);

More on Properties

Properties are “macro var = value” pairs that are created at run-time.

Each registered standard has an initialize.properties file.

A standard may also have an action-related properties file like validation.properties.

A property can be set using a %let statement, but it has to be located in the correct place inthe SAS program.

Properties files are processed by

referencing the properties file in the sasreferences table with type=properties.

calling the cst_setProperties macro.

Most useful macro variable properties:

CST Framework initialize propertiesName Values Description_cstDebug 0 | 1 Sets system options for macro debugging.

Default is 0._cstDebugOptions mprint molgic symbolgen

mautolocdisplaySystem options set when _cstDebug=1.

_cstResultsDS Name of results table. Default is work._cstresults

_cstReallocateSASRefs 0 | 1 Reallocate sasrefs and filerefs defined insareferences table. Default is 0.

_cstFMTLibraries Alter format search path defined bysasreferences table.

Page 37: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

2-21

CDISC-SDTM initialize propertiesName Values Description_cstSASRefsLoc Path that defines location of sasreferences table.

Default is &studyroopath/control._cstSASRefsName Name of sasreferences table to use.

Other macros to be aware ofName Values Description_cstGRoot Path that defines location of the

cstGlobalLibrary folder. CST automaticallysets this macro.

studyRootPath Defines root path for study data and metadata. Itis typically referenced in the sasreferences table.This is usually set in your validation program.

Making Sense of the Results Table

CST generates a SAS table that contains the results of validation checks. The table itself is not ina format is easy to interpret.

Example of a results table from a CDISC-SDTM validation process:

By using some simple reporting tools, you can create output that is easier to understand.

Example of a report program for results table:

proc sql;

create table tmpresults as

select *,

scan(srcdata,-1) as tmpsrcdata length=10,

case upcase(resultseverity)

when "NOTE" then 1

when "WARNING" then 2

when "ERROR" then 3

else 0

end as numseverity

from samples.checkresults

order by tmpsrcdata, numseverity

Page 38: Using SAS Clinical Standards Toolkit, Version 1

2. Running SDTM Validation Checks

2-22

;

quit;

title "Messages Grouped by Domain and Severity";

options ls=120 ps=60 pageno=1 nodate;

proc report data=tmpresults nowd ;

where checkid ne "" ;

column tmpsrcdata numseverity resultseverity message actual checkid;

define tmpsrcdata / group "Source /======" format=$20.;

define numseverity / group noprint ;

define resultseverity / display "Severity/========" format=$8.;

define message / "Message /=======" width=38 flow;

define actual / "Details /=======" width=38 flow;

define checkid / "Check ID/========" format=$8.;

break after numseverity / skip;

run;

Report generated by the program:

NOTE: CST provides a reporting macro for generating reports from metrics and results tables.This macro is covered Module 4, Overview of CST Macros, of this training course.

Page 39: Using SAS Clinical Standards Toolkit, Version 1

3-1

3 Creating adefine.xml File Version 1.0

18MAY10

3.1 Objectives ............................................................................................3-2

3.2 Creating CRT-DDS Data from a Study ...............................................3-3Understanding the Inputs and Outputs ..................................................................3-3

Input Files and the Program....................................................................................3-4

Metadata Tables....................................................................................................3-4

Study Control Table ...............................................................................................3-4

sasreferences Table ..............................................................................................3-5

Program to Run the Conversion Process ...............................................................3-5

Understanding How the Pieces Fit Together..........................................................3-7

Running the Conversion Process...........................................................................3-7

3.3 Validating the CRT-DDS Data .............................................................3-9Understanding the Inputs and Outputs ..................................................................3-9

Input Files and the Program..................................................................................3-10

Metadata Tables..................................................................................................3-10

List of Validation Checks to Run ..........................................................................3-13

sasreferences Table ............................................................................................3-14

Program to Run the Validation Process................................................................3-15

Understanding How the Pieces Fit Together........................................................3-16

Running the CRT-DDS Validation Process...........................................................3-17

3.4 Creating a define.xml File.................................................................3-18Understanding the Inputs and Outputs ................................................................3-18

Input Files and the Program..................................................................................3-19

sasreferences Table ............................................................................................3-19

Program to Run the define.xml Process ...............................................................3-19

Understanding How the Pieces Fit Together........................................................3-20

Running the Program ............................................................................................3-21

3.5 Validating the define.xml File ...........................................................3-22Inputs and the Program.........................................................................................3-22

sasreferences Table ............................................................................................3-22

Program to Validate the define.xml ......................................................................3-22

Running the Program ............................................................................................3-23

Controlling Log Level of XML Messages..............................................................3-23

Page 40: Using SAS Clinical Standards Toolkit, Version 1

3. Creating a define.xml File

3-2

3.1 Objectives

Understand that creating a define.xml file from your SDTM study metadata is a two-stepprocess:

1. Create CRT-DDS SAS tables from your SDTM study metadata.

2. Create a define.xml file from CRT-DDS SAS tables.

Understand the input files and tables required for creating SAS tables that represent adefine.xml file.

Know how to build input files for creating CRT-DDS tables.

Know how to run CRT-DDS validation checks on the SAS tables.

Know how to create a define.xml file from CRT-DDS tables.

Know how to run validation checks on the define.xml file.

Page 41: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

3-3

3.2 Creating CRT-DDS Data from a Study

Understanding the Inputs and Outputs

Key Points:

You have to provide metadata tables for a study’s tables and columns.

A references table tells a CRT-DDS creation process where to find all the other files andtables needed for the process.

You have to create a SAS program that calls appropriate CST macros to run the creationprocess.

SDTM to CRT-DDS Processing

ConvertProcessing

Run-timeControl Files

CRT-DDSStandards

Results Table

SAS Tables thatrepresentdefine.xml

structure

StudyMetadata

Page 42: Using SAS Clinical Standards Toolkit, Version 1

3. Creating a define.xml File

3-4

Input Files and the Program

Metadata TablesThe SDTM-to-CRTDDS conversion process requires three metadata tables:

the metadata table with the list of domain tables (used for SDTM validation)

the SDTM metadata table with the list of columns (used for SDTM validation)

a metadata table that describes the study.

NOTE: This is where it is important to have all columns in the metadata tables as complete aspossible. Completeness of the columns will affect how the output tables are created andhow the define.xml file is created.

Study Control Table

The study metadata table contains columns that provide information on each study.

Multiple studies can be referenced in this table by using different values for the sasref columnfor each study.

The screenshot below shows an example of a study control table needed by the SDTM-to-CRT-DDS conversion process.

The program below is an example of how to create a table that contains metadata informationabout the study to be processed by the SDTM-to-CRT-DDS conversion.

%let STUDYID = SASCSTDEMODATA;

%let STDYLIB = STUDY;

proc sql;

create table &STUDYID._study

(

Studyname char(128),

DefineDocumentName char(64),

SASRef char(8),

ProtocolName char(20),

StudyDescription char(100)

Page 43: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

3-5

);

insert into &STUDYID._study

set Studyname ="Test Study" ,

DefineDocumentName="define" ,

SASRef ="&STDYLIB" ,

ProtocolName ="&STUDYID" ,

StudyDescription ="CST Study"

;

quit;

sasreferences Table

The sasreferences table provides a list of pointers to the tables and files needed to run aSDTM to CRT-DDS conversion process.

The sasreferences table is basically a list of librefs, filerefs, folder paths, and files to use.

The list of items in the sasreferences table varies depending on the standards and the type ofprocess you are running.

There should be a record in the sasreferences table that references itself.

Example of a sasreferences table for SDTM to CRT-DDS conversion:

Program to Run the Conversion ProcessCreation of CRT-DDS tables involves running a SAS program that initializes the CST standardsto use, defines the location and name of the sasreferences table to use, and runs the appropriateCST macros to create the tables.

Example of a SAS program that runs the conversion process:

/* Set some macro vars */

%let STUDYROOTPATH = D:\CSTStudy;

%let STUDYID = sascstdemodata;

/* Librefs for pointing to input and output locations */

libname sdtm "&STUDYROOTPATH\sdtmFiles";

libname crtdds "&STUDYROOTPATH\crtddsdata";

Page 44: Using SAS Clinical Standards Toolkit, Version 1

3. Creating a define.xml File

3-6

/* Set up the CST-FRAMEWORK standard. */

%cst_setStandardProperties(

_cstStandard =CST-FRAMEWORK,

_cstStandardVersion=1.2,

_cstSubType =initialize

);

/* Set up the CST_CRTDDS standard */

%cst_setStandardProperties(

_cstStandard =CDISC-CRTDDS,

_cstStandardVersion=1.0,

_cstSubType =initialize

);

/* >>> Define location/name of sasreferences table to use */

%let _cstSASRefsLoc = &STUDYROOTPATH\crtddsFiles;

%let _cstSASRefsName = sasreferences_convert;

/* Define where to write results */

%let _cstResultsDS = crtdds.results_convert;

/* Allocate filerefs and librefs defined in sasreferences table */

%cstutil_allocatesasreferences;

%crtdds_sdtm311todefine10(

_cstOutLib =crtdds,

_cstSourceTables =sdtm.&STUDYID._tables,

_cstSourceColumns=sdtm.&STUDYID._columns,

_cstSourceStudy =sdtm.&STUDYID._study

);

libname sdtm clear;

libname crtdds clear;

Key points about the program:

At the beginning to the program, the macro variable studyRootPath is defined with a folderpath. This macro variable is used in the sasreferences table to generalize the folder paths tostudy-specific folders.

The CST framework and standards to use for the validation process are initialized before anyother CST macros are run.

Two CST macro variables, _cstSASRefLoc and _cstSASRefName, are defined that identifythe location and name of the sasreferences table to use, then a CST macro is called thatallocates the librefs and filerefs defined in the sasreferences table.

The CST macro variable _cstResultsDS is defined to redirect the results table to a permanentlocation.

The crtdds_sdtm311todefine10 macro is the last thing in the SAS program.

Page 45: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

3-7

Understanding How the Pieces Fit Together

Metadata tables describe the study, study tables, and study columns, and provide the input forthe CRT-DDS tables.

A sasreferences table identifies all the input files that a validation process should use.

Running the Conversion Process

The crtdds_sdtm31todefine10 macro reads the table and column metadata tables for a study andwrites out this metadata in the form of SAS tables that represent components of a define.xml file.

The nine basic tables:

definedocument study metadataversion itemgroupdefs itemgroupdefsitemrefs itemdefs codelists codelistitems clitemdecodetranslatedtext

NOTE: To create shells for all 39 CRT-DDS tables use the cst_createTablesForDataStandardmacro.

Standards

Study

SDTM to CRT-DDS Processing

source_columns

source_tables

sasreferences

ConversionProcessing

results

source_study

CRT-DDS

CRT-DDS Tables

clitemdecodetranslatetext

codelistitems

codelists

definedocument

itemdefs

itemgroupdefitemrefs

itemgroupdefs

metadataversion

study

Page 46: Using SAS Clinical Standards Toolkit, Version 1

3. Creating a define.xml File

3-8

Example of how to create the 39 CRT-DDS table shells:

%cst_createTablesForDataStandard(

_cstStandard= CDISC-CRTDDS,_cstStandardVersion= 1.0,_cstOutputLibrary= work);

The example below shows the skeleton parts of a define.xml file. You can see how the tags in thefile correspond to one of the nine SAS tables above.

<ODM … >

<Study>

<GlobalVariables>

<StudyName> CST Study </StudyName>

<StudyDescription> Test Study </StudyDescription>

<ProtocolName> cstsasdemodata </ProtocolName>

</GlobalVariables>

<MetaDataVersion Name="CDISC-SDTM 3.1.1" … >

<ItemGroupDef Name="CO" … >

<ItemRef ItemOID="COL1" … >

<ItemRef ItemOID="COL2" … >

</ItemGroupDef >

<ItemDef OID="COL1" Name="CODTC" … >

<ItemDef OID="COL2" Name="COEVAL" … >

</MetaDataVersion>

</Study>

</ODM>

The conversion process also generates a results table. The example below shows a results tablegenerated by the previous SAS program.

Page 47: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

3-9

3.3 Validating the CRT-DDS Data

Understanding the Inputs and Outputs

Validation of CRT-DDS data is similar to the validation of SDTM data:

Metadata tables describing the CRT-DDS tables and columns are required.

A series of validation checks are available and you can subset them to a manageable number.

You run the validation check process by using a SAS program with CST macro calls.

Beware of the differences between SDTM validation and CRT-DDS validation:

The tables and columns metadata tables reference the CRT-DDS tables.

The validation checks run against the CRT-DDS tables and columns metadata tables. Theydo not reference the actual study domain tables.

CRT-DDS Validation Processing

Validation

ProcessingMetrics and

Results Tables

CRT-DDSData

CRT-DDSMetadata

Run-timeControl Files

StandardsMetadata

Page 48: Using SAS Clinical Standards Toolkit, Version 1

3. Creating a define.xml File

3-10

Input Files and the Program

Metadata TablesCRT-DDS validation checks need a list of CRT-DDS tables to check and the columns to check.This information is provided in the form of SAS tables.

The metadata control tables for CRT-DDS validation checks contain the following information:

List of Tables provides the CRT-DDS tables to include in validation checks. You can useany table name that is a valid SAS name.

List of Columns provides the columns from the CRT-DDS tables to include in validationchecks. You can use any table name that is a valid SAS name.

Examples of CRT-DDS metadata tables:

Page 49: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

3-11

The program below is an example of how to create the tables and columns metadata tables forCRT-DDS tables.

%let STDYLIB = STUDY;

%let STUDYID = sascstdemodata;

%let STUDYROOTPATH = D:\CSTStudy;

%let STANDARD = CDISC-CRTDDS;

%let STDVERSION = 1.0;

%let TABLESDS = &STUDYID._tables;

%let COLUMNSDS = &STUDYID._columns;

/* Point to where crt-dds data tables live */

libname &STDYLIB "&STUDYROOTPATH.\crtddsdata";

/* Point to where to write metadata tables */

libname crtdds "&STUDYROOTPATH\crtddsfiles";

proc sql;

/* Create list of study tables for CRT-DDS metadata */

create table &TABLESDS as

select libname as sasref ,

memname as table ,

memlabel as label ,

"&STANDARD" as standard length=20,

"&STDVERSION" as standardversion length=20

from dictionary.tables

where upcase(libname)="&STDYLIB" ;

/* Create list of study columns for CRT-DDS metadata */

create table &COLUMNSDS (rename=(coltype=type)) as

select libname as sasref ,

memname as table ,

name as column ,

label ,

case when type="char" then "C"

when type="num" then "N"

end as coltype length=1,

length ,

varnum as order ,

"&STANDARD" as standard length=20,

"&STDVERSION" as standardversion length=20

from dictionary.columns

where libname="&STDYLIB";

/* Initialize the standard to use for macro calls below */

%cst_setStandardProperties(

_cstStandard =&STANDARD,

_cstStandardVersion=&STDVERSION,

_cstSubType =initialize

);

/* Create an empty sasreferences table */

%cst_createDS(

_cstStandard =CST-FRAMEWORK,

Page 50: Using SAS Clinical Standards Toolkit, Version 1

3. Creating a define.xml File

3-12

_cstStandardVersion=1.2,

_cstType =control,

_cstSubType =reference,

_cstOutputDS =sasrefs

);

/* Add 2 records for references tables and columns */

proc sql;

insert into sasrefs

set standard ="&STANDARD",

standardVersion="&STDVERSION",

type ='referencemetadata',

subType ='table',

sasRef ='work',

refType ='libref',

memname ='refTables'

set standard ="&STANDARD",

standardVersion="&STDVERSION",

type ='referencemetadata',

subType ='column',

sasRef ='work',

refType ='libref',

memname ='refColumns' ;

quit;

/* Get tables and columns defined to standards */

%cst_getStandardMetadata(

_cstSASReferences =work.sasrefs,

_cstResultsOverrideDS=_cstresults

);

/* Add extended metadata from standards to CRT-DDS metadata */

proc sql;

create table crtdds.&TABLESDS as

select mystudy.*,

ref.keys ,

ref.standardref ,

ref.class ,

ref.xmlElementName ,

ref.qualifiers ,

ref.comment

from &TABLESDS as mystudy

left join

work.refTables as ref

on upcase(mystudy.table)=upcase(ref.table);

create table crtdds.&COLUMNSDS as

select mystudy.*,

ref.displayformat,

ref.standardref ,

ref.core ,

ref.xmlcodelist ,

ref.qualifier ,

ref.comment

from &COLUMNSDS as mystudy

left join

Page 51: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

3-13

work.refColumns as ref

on upcase(mystudy.table) =upcase(ref.table) and

upcase(mystudy.column)=upcase(ref.column);

drop table reftables, refcolumns, sasrefs, &TABLESDS, &COLUMNSDS;

quit;

libname study clear;

libname crtdds clear;

List of Validation Checks to RunA validation process requires a list of validation checks to run.

Key points:

The validation_master table provides a list of the checks for the CRT-DDS 1.0 standards. Itis located in cstGlobalLibrary\standards\crt-dds-1.0\validation\control .

You can create the list of checks by copying and subsetting the master list that goes with astandard.

Example of a table of validation checks for the CRT-DDS 1.0 standard in CST:

There are several columns in the validation_master table that you can use for subsetting thevalidation checks.

CheckType provides categories of check types. Possible values are Content or Structural.

CheckID provides a way to select specific checks based on the check ID.

Tablescope contains the name of the table to which a check applies.

Page 52: Using SAS Clinical Standards Toolkit, Version 1

3. Creating a define.xml File

3-14

Example of a program to create a list of validation checks for the nine basic CRT-DDS tables:

%let CRTDDSVAL = E:\cstGlobalLibrary\standards\cdisc-crtdds-1.0\validation\control;

%let CRTDDSDATA = D:\CSTStudy\crtddsfiles;

%let CHECKSDS = crtddschecks ;

/* CheckType Values: Content Structural */

*%let WHERECHKTYPE = checktype in("Content");

%let WHERETABLESCOPE = upcase(tablescope) in("CLITEMDECODETRANSLATEDTEXT",

"CODELISTITEMS", "CODELISTS", "DEFINEDOCUMENT", "ITEMDEFS",

"ITEMGROUPDEFITEMREFS","ITEMGROUPDEFS","METADATAVERSION","STUDY" );

*%let WHERECHKIDS = checkid in("CRT0000", "CRT0001", "CRT0108", "CRT0109", "SDTM0113" );

libname crtdds "&CRTDDSDATA";

libname crtddsvl "&CRTDDSVAL";

proc sql;

create table crtdds.&CHECKSDS as

select *

from crtddsvl.validation_master

where &WHERETABLESCOPE

/* and &WHERECHKTYPE */

/* and &WHERECHKIDS */

;

quit;

sasreferences Table

The sasreferences table provides a list of pointers to the tables and files needed to run avalidation check process.

The sasreferences table is basically a list of librefs, filerefs, folder paths, and files to use.

The list of items in the sasreferences table varies depending on the standards and the type ofprocess you are running.

There should be a record in the sasreferences table that references itself.

CST is not very forgiving and can be very picky if things don’t match up exactlybetween what is in the sasreferences table and what is in the metadata tables.

Page 53: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

3-15

Example of a sasreferences table for CRT-DDS validation:

Program to Run the Validation ProcessValidation of CRT-DDS tables involves running a SAS program that initializes the CST standardsto use, defines the location and name of the sasreferences table to use, and runs the appropriateCST macros to validate the tables.

Example of a program to run a CRT-DDS table validation process:

/* >>> Define macro vars that point to data and metadata */

%let STUDYID = SASCSTDEMODATA;

%let STUDYROOTPATH = D:\CSTStudy;

%let STDYLIB = STUDY;

%let TABLESMETADS = &STUDYID._tables;

%let COLUMNSMETADS = &STUDYID._columns;

%let CHECKSDS = crtddschecks;

%let METRICSDS = metrics_validate;

%let RESULTSDS = results_validate;

%let SASREFSDS = sasreferences_crtddsvalidation ;

/* Set up the CST-FRAMEWORK standard. */

%cst_setStandardProperties(

_cstStandard =CST-FRAMEWORK,

_cstStandardVersion=1.2,

_cstSubType =initialize

);

/* Set up the CDISC-SDTM standard. */

%cst_setStandardProperties(

_cstStandard =CDISC-CRTDDS,

_cstStandardVersion=1.0,

_cstSubType =initialize

);

/* >>> Define location/name of sasreferences table to use */

%let _cstSASRefsLoc = &STUDYROOTPATH\crtddsfiles;

%let _cstSASRefsName = &SASREFSDS;

/* Allocate filerefs and librefs defined in sasreferences table */

%cstutil_allocatesasreferences;

/* Run the validation checks. */

%crtdds_validate;

Page 54: Using SAS Clinical Standards Toolkit, Version 1

3. Creating a define.xml File

3-16

Understanding How the Pieces Fit Together

Metadata tables describe the CRT-DDS tables and provide the input for the CRT-DDS tables.

A sasreferences table identifies all the input files that a validation process should use.

A validation control table contains a list of checks to perform on the CRT-DDS data.

CRT-DDS Validation Processing Details

ValidationProcessing

CRT-DDS Data

source_tables

source_columns

clitemdecodetranslate te xt

codelistitems

codelists

defined ocum ent

item defs

ite mgro updefitem refs

itemgroupdefs

m etadataversion

stu dy

CRT-DDS Standards

reference_tables

reference_columns

SAS Formats

sasreferences

Validation checks

metrics

results

Page 55: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

3-17

Running the CRT-DDS Validation Process

Running an CRT-DDS validation process generates two output data tables.

Metrics contains a summary of the number of records processed by various checks anda count of the number of notes, warning messages and error messagesgenerated. Use this table to get an overview of what ran and how manyvalidation issues were encountered.

Results contains the detailed results of the validation checks.

Page 56: Using SAS Clinical Standards Toolkit, Version 1

3. Creating a define.xml File

3-18

3.4 Creating a define.xml File

Understanding the Inputs and Outputs

Key Points:

You must have created the CRT-DDS SAS tables and use those as an input.

A references table is used to find all the other files and tables needed for the process.

You have to create a SAS program that calls appropriate CST macros to run the define.xmlprocess.

define.xml Creation

define.xmlProcessing

Run-timeControl Files

Results Table

CRT-DDSData

Define.xml

Page 57: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

3-19

Input Files and the Program

sasreferences Table

The sasreferences table provides a list of pointers to the tables and files needed to run adefine.xml creation process.

The sasreferences table is basically a list of librefs, filerefs, folder paths, and files to use.

The list of items in the sasreferences table varies depending on the standards and the type ofprocess you are running.

There should be a record in the sasreferences table that references itself.

CST is not very forgiving and can be very picky if things don’t match up exactlybetween what is in sasreferences and what is in the metadata tables.

Example of a sasreferences table for creating a define.xml file:

Program to Run the define.xml ProcessCreating a define.xml file from CRT-DDS tables involves running a SAS program that initializesthe CST standards to use, defines the location and name of the sasreferences table to use, and runsthe appropriate CST macros to create the define.xml file.

Example of a program to run a define.xml creation process:

/* Define study root folder. This is used in the sasreferences_define table. */

%let studyRootPath= D:\CSTStudy;

/* Define location for writing results table */

libname results "&studyRootPath\crtddsfiles";

/* Set up the CST-FRAMEWORK standard. */

%cst_setStandardProperties(

_cstStandard=CST-FRAMEWORK,

_cstStandardVersion=1.2,

_cstSubType=initialize

);

/* Set up the CST_CRTDDS standard. */

%cst_setStandardProperties(

Page 58: Using SAS Clinical Standards Toolkit, Version 1

3. Creating a define.xml File

3-20

_cstStandard=CDISC-CRTDDS,

_cstStandardVersion=1.0,

_cstSubType=initialize

);

/* >>> Define location/name of sasreferences table to use */

%let _cstSASRefsLoc = &studyRootPath\crtddsfiles;

%let _cstSASRefsName = sasreferences_define;

/* Define where to write results */

%let _cstResultsDS = results.results_define;

/* Allocate filerefs and librefs defined in sasreferences table */

%cstutil_allocatesasreferences;

/* Create the define.xml file */

%crtdds_write(

_cstCreateDisplayStyleSheet=1

);

libname results clear;

Understanding How the Pieces Fit Together

CRT-DDS tables and provide the input for the process.

A sasreferences table identifies all the input files that a process should use.

A stylesheet defines the layout of the define.xml.

define.xml Creation Details

define.xmlProcessing

Results

define.xml

CRT-DDS Data

cli temdecodetranslatetext

codelisti tems

codelists

definedocum ent

itemdefs

itemgroupdefi tem refs

item groupdefs

metadatave rsion

study

sa sreferences

stylesheet.xsl

Page 59: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

3-21

Running the Program

Running a define.xml process generates two files.

Results is a SAS table that contains the detailed results of the define.xml process.

Define.xml is the xml file with the study description. It can be viewed using a webbrowser.

Page 60: Using SAS Clinical Standards Toolkit, Version 1

3. Creating a define.xml File

3-22

3.5 Validating the define.xml File

CST provides a macro to validate the structure of a define.xml file.

You typically run define.xml validaton

after creating a define.xml file through CST

after editing a define.xml file.

Inputs and the Program

sasreferences TableYou can use the same sasreferencs table that you used to create the define.xml file.

Program to Validate the define.xmlExample of a program to run a define.xml validation process:

/* Define study root folder. This is used in the ssasreferences_define table. */

%let studyRootPath= D:\CSTStudy;

/* Define location for writing results table */

libname results "&studyRootPath\crtddsfiles";

/* Set up the CST-FRAMEWORK standard. */

%cst_setStandardProperties(

_cstStandard=CST-FRAMEWORK,

_cstStandardVersion=1.2,

_cstSubType=initialize

);

/* Set up the CST_CRTDDS standard. */

%cst_setStandardProperties(

_cstStandard=CDISC-CRTDDS,

_cstStandardVersion=1.0,

_cstSubType=initialize

);

/* >>> Define location/name of sasreferences table to use */

%let _cstSASRefsLoc = &studyRootPath\crtddsfiles;

Page 61: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

3-23

%let _cstSASRefsName = sasreferences_define;

/* Define where to write results */

%let _cstResultsDS = results.results_definevalidate;

/* Allocate filerefs and librefs defined in sasreferences table */

%cstutil_allocatesasreferences;

/* Run chekcs to make sure define.xml file is correct */

%crtdds_xmlvalidate;

libname results clear;

Running the Program

Running a define.xml validation process generates one file.

Results contains the detailed results of the define.xml validation process.

Controlling Log Level of XML Messages

The crtdds_xmlvalidatet macro contains a parameter named _cstLogLevel.

_cstLogLevel values can be Info, Warning, Error, Fatal Error and None.

If you choose a level to report, that log level of messages is reported along with any moresevere messages.

Example:

%crtdds_xmlvalidate(_cstLogLevel=info);

Page 62: Using SAS Clinical Standards Toolkit, Version 1

3. Creating a define.xml File

3-24

Page 63: Using SAS Clinical Standards Toolkit, Version 1

4-1

4 Using CST MacrosVersion 1.0

18MAY10

4.1 Overview and Objectives....................................................................4-2

4.2 Macros for Managing Standards and Tables ....................................4-3cst_createDS............................................................................................................4-3

cst_createStudyFromStandard ...............................................................................4-4

cst_createTablesForDataStandard .........................................................................4-4

cst_getRegisteredStandards ..................................................................................4-5

cst_getStandardMetadata .......................................................................................4-5

cst_getStandardSASReferences ............................................................................4-6

cst_registerStandard...............................................................................................4-7

cst_setStandardVersionDefault ..............................................................................4-8

cst_unregisterStandard...........................................................................................4-8

4.3 Macros for Running CST Processes .................................................4-9cst_setProperties ....................................................................................................4-9

cst_setStandardProperties .....................................................................................4-9

cstutil_allocateSASReferences.............................................................................4-10

cstutil_cleanupCSTSession ..................................................................................4-10

4.4 Macros for Validation Reporting ......................................................4-11cstutil_createReport ..............................................................................................4-11

4.5 Examples of Using CST Macros ......................................................4-13Example 1: Create Validation Reports.................................................................4-13

Example 2: Get a List of Registered Standards ..................................................4-15

Example 3: Create Metadata and Control Tables from a Standard ....................4-16

Example 4: Get Copies of a Standard’s Metadata Tables ....................................4-18

Example 5: Create Empty Domain Tables from a Standard................................4-19

Example 6: Building and Registering a Validation Standard..............................4-20

What Happens when you Register a Standard .....................................................4-20

Tables and Files you need to Edit for a New Standard .........................................4-20

Steps for Creating a New Standard......................................................................4-21

Step 1: Create a Folder Structure for the Standard...........................................4-21

Step 2: Create Metadata Tables for the Standard’s Tables and Columns .........4-22

Step 3: Create a Table of Validation Checks for the Standard ..........................4-22Understanding Table Scope and Column Scope .............................................................................................4-23

Step 4: Copy the Properties Files from an Existing Standard ............................4-24

Step 5: Create a sasreferences Table for the Standard ....................................4-24

Step 6: Create a standards table for the Standard............................................4-25

Step 7: Register the Standard to CST ..............................................................4-26

Page 64: Using SAS Clinical Standards Toolkit, Version 1

4. Using CST Macros

4-2

4.1 Overview and Objectives

The SAS Clinical Standards Toolkit (CST) is built around a set of macro libraries.

This module divides CST macros into three groups:

macros for managing standards

macros for managing CST execution

macros for reporting.

The final section of this module provides short examples of using the macros.

Upon completion of this module you should

be familiar with the most commonly used macros that are provided as part of CST

know how to use some of the CST macros.

Page 65: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

4-3

4.2 Macros for Managing Standards and Tables

The macros referenced in this section are located in the cstframework\sasmacro folder. Referto the Clinical Standards Toolkit documentation for a complete list of macros.

cst_createDS

The cst_createDS macro creates an empty data table based on any table that is referenced by astandard. For example, you can use this macro to create empty tables modeled after a registeredstandard’s reference_tables, and reference_columns, and validation_master tables.

Syntax:%cst_createDS(

_cstStandard = name of registered standard,

_cstStandardVersion= version of registered standard,

_cstType = input/output metadata type,

_cstSubType = data/metadata type within type,

_cstOutputDS = name of table to create,

_cstResultsOverrideDS = name of results table

);

Example:%cst_createDS(

_cstStandard =CDISC-SDTM,

_cstStandardVersion=3.1.1,

_cstType =control,

_cstSubType =reference,

_cstOutputDS =sasrefs

);

See Example 3.

Page 66: Using SAS Clinical Standards Toolkit, Version 1

4. Using CST Macros

4-4

cst_createStudyFromStandard

The cst_createStudyFromStandard macro creates a folder structure for a study based on thefolder structure of a standard.

There is currently a defect in this macro so some macro variables must be definedbefore calling this macro.

Syntax:%cst_createStudyFromStandard(

_cstStandard = name of registered standard,

_cstStandardVersion= version of registered standard,

_cstStudyRootpath = root folder path

);

Example:%cst_createStudyFromStandard(

_cstStandard =CDISC-SDTM,

_cstStandardVersion=3.1.1,

_cstStudyRootPath =d:\XYZ_123,

);

cst_createTablesForDataStandard

The cst_createTablesForDataStandard macro creates an empty table for every domain tablereferenced by a standard.

Syntax:%cst_createTablesForDataStandard(

_cstStandard = name of standard,

<_cstStandardVersion = version,>

_cstOutputLibrary = output library,

<_cstResultsOverrideDS = results table>

);

Example:%cst_createTablesForDataStandard(

_cstStandard = CDISC-SDTM,

_cstStandardVersion = 3.1.1,

_cstOutputLibrary = work,

_cstResultsOverrideDS = my_results

);

See Example 5.

Page 67: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

4-5

cst_getRegisteredStandards

The cst_getRegisteredStandards macro creates a SAS table with a list of registered standardsdefined to CST.

Syntax:%cst_getRegisteredStandards(

_cstOutputDS = table name <,

_cstResultsDS = results table name>

);

Example:%cst_getRegisteredStandards(

_cstOutputDS = work.stdsList,

_cstResultsDS = my_results

);

See Example 2.

cst_getStandardMetadata

The cst_getStandardMetadata macro creates a copy of a metadata table referenced by astandard. The metadata table to copy is defined by a record in a sasreferences table. The_cstSASReferences parameter defines the sasreferences table to use. Each record specifies thetype of metadata tabel to return and the name of the table to create.

You typically use this macro to get the metadata tables for a standard – list of tables and list ofcolumns make up a standard, for example.

Syntax:%cst_getStandardMetadata(

_cstSASReferences = references table <,

_cstResultsOverrideDS = results table>

);

Example:%cst_getStandardMetadata(

_cstSASReferences =work.temprefs,

_cstResultsOverrideDS=my_results

);

See Example 4.

Page 68: Using SAS Clinical Standards Toolkit, Version 1

4. Using CST Macros

4-6

cst_getStandardSASReferences

The cst_getStandardSASReferences macro creates a sasreferences table based on the referencesdefined for a standard.

Syntax:%cst_getStandardSASReferences(

_cstStandard = name of standard,

<_cstStandardVersion = version,>

_cstOutputDS = output table,

<_cstResultsOverrideDS = results table>

);

Example:%cst_getStandardSASReferences(

_cstStandard = CDISC-SDTM,

_cstStandardVersion = 3.1.1,

_cstOutputLibrary = work.mysasrefs,

_cstResultsOverrideDS = my_results

);

Page 69: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

4-7

cst_registerStandard

The cst_registerStandard macro is used to add a new standard to CST.

Syntax:%cst_registerStandard(

_cstRootPath = root folder path for standard,

_cstControlSubPath = relative path to std’s sasrefs table,

_cstStdDSName = name of standard’s registration table,

_cstStdSASRefsDSName = name of standard’s sasrefs table <,

_cstOutputDS = results table>

);

Example:%cst_registerStandard(

_cstRootPath =%nrstr(&_cstGRoot./standards/myNewStds),

_cstControlSubPath = control,

_cstStdDSName = newstd.my_stds,

_cstStdSASRefsDSName = newstd.mysasrefs,

_cstOutputDS = work.myresults

);

Notes: The _cstRootPath parameter specifies the root folder for the new standards you areregistering.

The _cstControlSubpath parameter specifies the subfolder where your standards tableand sasreferences table are located. This folder must be under the folder specified bythe _cstRootPath parameter and it must be a relative path.

The _cstStdDSName parameter specifies the name of the standards table for yourstandard. It contains a single record with column values that identify the standard youare registering. You can use any valid SAS name for this table, but it must be structuredlike a standards table.

The _cstStdSAsReferenceDSName parameter specifies the name of the sasreferencestable for your standards. You can use any valid SAS name for this table, but it must bestructured like a sasreferences table.

For the sasreferences table specified by the _cstStdSAsReferenceDSName parameter,make sure that you specify only relative paths on reference records. Otherwise, youwill have to edit paths in the standardsasreferences table in thecstGlobalLibrary\metadata folder.

You can use the cst_createDS macro to create an empty standards table and an emptysasreferences table.

See Example 6.

Page 70: Using SAS Clinical Standards Toolkit, Version 1

4. Using CST Macros

4-8

cst_setStandardVersionDefault

The cst_setStandardVersionDefault macro is used to set the default version for a standard whenmultiple versions of a standard exist. The default version is used when you do not provide aversion of a standard in a sasreferences table or in macro calls that contain a version parameter.

Syntax:%cst_setStandardVersionDefault(

_cstStandard = standard name,

_cstStandardVersion = standard version <,

_cstResultsOverrideDS= results table >

);

Example:%cst_setStandardVersionDefault(

_cstStandard = CDISC-STDM,

_cstStandardVersion = 3.1.1,

_cstResultsOverrideDS= myresults

);

cst_unregisterStandard

The cst_unregisterStandard macro removes a standard from the list of standards known to CST.

Syntax:%cst_unregisterStandard(

_cstStandard = standard name,

_cstStandardVersion = standard version <,

_cstResultsOverrideDS = results table >

);

Example:%cst_unregisterStandard(

_cstStandard = CDISC-SDTM,

_cstStandardVersion = 3.1.1 +,

_cstResultsOverrideDS = myresults

);

Notes: The list of registered standards is maintained in the standards table in thecstGlobalLibrary\metadata folder.

Page 71: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

4-9

4.3 Macros for Running CST Processes

The macros referenced in this section are located in the cstframework\sasmacro folder. Refer tothe Clinical Standards Toolkit documentation for a complete list of macros.

cst_setProperties

The cst_setProperties macro provides the location and name of the properties file to load. Thecontents of the properties file contains name=value pairs for global macros. The properties filecan be specified as a text file, a SAS fileref, or a SAS table.

Syntax:%cst_setProperties(

_cstPropertiesLocation = property file name,

_cstLocationType = PATH | FILENAME | DATA <,

_cstResultsOverrideDS = results table name > );

Example:%cst_setProperties(

_cstPropertiesLocation = g:\mystudy\config\cst.props,

_cstLocationType = path,

_cstResultsOverrideDS = myresults);

Notes: The value of _cstPropertiesLocation depends on the value of _cstLocationType.

cst_setStandardProperties

The cst_setStandardProperties macro sets global macros that are supplied as part of a standard.These properties are usually stored in a .properties file within a standard’s root folder and arereferenced in the standard’s sasreferences.

Syntax:%cst_setStandardProperties(

_cstStandard = standard name,

<_cstStandardVersion = standard version, >

_cstSubType = supbtype to use <,

_cstResultsOverrideDS = results table >

);

Example:%cst_setStandardProperties(

_cstStandard =CST_FRAMEWORK,

_cstStandardVersion=1.2,

_cstSubType =initialize);

See Example 1, 2, 3, and 4.

Page 72: Using SAS Clinical Standards Toolkit, Version 1

4. Using CST Macros

4-10

cstutil_allocateSASReferences

The cstutil_allocateSASReferences macro allocates the SAS librefs and filerefs specified in asasreferences table. It has no parameters. The sasferences table is specified by setting the globalmacro variables _cstSASRefsLoc and _cstSASRefsName before calling this macro.

Syntax:%cstutil_allocateSASReferences;

Example:%let _cstSASRefsLoc = e:\mystudy\config;

%let _cstSASRefsName = mysasrefs;

%cstutil_allocateSASReferences;

cstutil_cleanupCSTSession

The cstutil_cleanupCSTSession macro cleans up after a CST session. It performs tasks likeremoving any process-level SAS files and clearing the temporary SAS macro catalog.

Syntax:%cstutil_cleanupcstsession(

_cstClearCompiledMacros = 0|1 ,

_cstClearLibRefs = 0|1 ,

_cstResetSASAutos = 0|1 ,

_cstResetFmtSearch = 0|1 ,

_cstResetSASOptions = 0|1 ,

_cstDeleteFiles = 0|1 ,

_cstDeleteGlobalMacroVars = 0|1

);

Notes: _cstClearCompiledMacros removes all compiled macros from the work.sasmacrcatalog. 0 is default.

_cstClearLibRefs deallocates all librefs and filerefs set based upon sasreferencescontent. 0 is default.

_cstResetSASAutos resets the autocall search path to its initial state. 0 is default.

_cstResetFmtSearch resets the format search path to its initial state. 0 is default.

_cstResetSASOptions resets SAS options to their initial state. 1 is default.

_cstDeleteFiles deletes all CST work files and catalogs. If global macro variable_cstDebug=1, files are NOT deleted even if _cstDeleteFiles=1. 1 is default.

_cstDeleteGlobalMacroVars deletes all CST global macro variables set based uponproperty file name/value pairs. 0 is default.

Page 73: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

4-11

4.4 Macros for Validation Reporting

There is currently only one reporting macro. It is located in the cstframework\sasmacro folder.Refer to the Clinical Standards Toolkit documentation for a complete list of macros.

cstutil_createReport

The cstutil_createreport macro generates a report on metrics and results tables created from avalidation process. Reports can be generated in the form of HTML, PDF, or RTF files. Thismacro uses PROC REPORT and ODS to create the report.

In general, you should run this macro in the same CST session after you run a validation check. Itrelies on certain macro variables being defined that point to CST files and tables.

There is currently a defect in this macro and it will not run as documented. Theunderlying macro code has been edited locally so that it will run. This macro isincluded here as an illustration of a possible reporting capabilties in a future release.

Syntax:%cstutil_createreport(

_cstsasreferencesdset = sasreferences table,

_cstresultsdset = results table to use,

_cstmetricsdset = metrics table to use,

_cstrejporterrorsonly = N | Y,

_cstreportobs = 0 | 1,

_cstreportbydomain = 0 | 1,

_cstdomaindset = domain to report,

_cstreportformat = HTML | PDF | RTF,

_cstreportoutput = folder path for output,

_summaryreport = N | Y,

_ioreport = N | Y,

_metricsreport = N | Y,

_generalresultsreport = N | Y,

_checkidresultsreport = N | Y

);

Notes:

_cstsasreferencesdsetlibref.dataset of SASreferences data set used for a specific process. Optional.If specified, the _cstresultsdset and _cstmetricsdset parameters will beignored. Either _cstsasreferencesdset or _cstresultsdset must be provided.

_cstresultsdset libref.dataset of SAS Clinical Standards Toolkit process results data set.Optional. Either _cstsasreferencesdset or _cstresultsdset must be provided.Ignored if _cstsasreferencesdset specified.

Page 74: Using SAS Clinical Standards Toolkit, Version 1

4. Using CST Macros

4-12

_cstmetricsdset libref.dataset of SAS Clinical Standards Toolkit process metrics data set.Optional. Ignored if _cstsasreferencesdset specified.

_cstreporterrorsonlyIf N (default), report all records in the results data set, including informational

and non-error results. If Y, report only records in error (where the results dataset field resultflag=1).

_cstreportobs If null (default), report all records in error (where results.resultflag=1) in theresults data set. Otherwise, set to any integer value > 0, signifying the numberof records to print per checkid (where results.checkid is non-null). If_cstreportobs >0 results in excluding any records, a footnote is printed, notingthat not all records were printed.

_cstreportbydomainIf N (default), do not report results by domain (that is, run report 1). If Y,report results by domain (that is, run report 2).

_cstdomaindset Optionally produce report based on a specific domain, indicated by libref.dataset. If blank or the keyword _ALL_ is specified, all domains are included inthe report. Ignored if _cstreportbydomain=N.

_cstreportformat HTML (default). Allows specification of other ODS-supported formats (forexample, PDF and RTF).

_cstreportoutput The directory location for the generated report output. The value should notinclude the filename, which is currently hardcoded to eitherCSTCheckIDReport + the _cstreportformat (report 1) orCSTDomainReport +the _cstreportformat (report 2). Required.

Be sure to end the path with a slash or the last part of the path will become theprefix for the filename.

_summaryReport (Y/N) If set to Y, generate the report summary panel. Default=Y.

_ioReport (Y/N) If set to Y, generate the process inputs/outputs panel. Default=Y.

_metricsReport (Y/N) If set to Y, generate the process metrics panel. Default=Y. This shouldbe set to N for any non-validation reports and cases where metrics were notgenerated.

_generalResultsReport(Y/N) If set to Y, generate the general process reporting panel. Default=Y.

_checkIdResultsReport(Y/N) If set to Y, generate the process results panel. Default=Y.

See Example 1.

Page 75: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

4-13

4.5 Examples of Using CST Macros

Example 1: Create Validation Reports

Generate validation reports on a previous validation process run. In this example, assume thatbetter_validate_sdtm.sas has just run in this session.

The following is partial output generated by the cstutil_createreport macro:

/* Assumes that better_validate_sdtm.sas has run in this session */

/* Define this macro to make it work */

%let _cstRptControl = srcmeta.sdtmchecks;

%cstutil_createreport(

_cstsasreferencesdset = results.better_sasreferences,

_cstresultsdset = results.results,

_cstmetricsdset = results.metrics,

_cstreportbydomain = N,

_cstreportoutput = d:\cststudy\sampleoutput\

);

Page 76: Using SAS Clinical Standards Toolkit, Version 1

4. Using CST Macros

4-14

Page 77: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

4-15

Example 2: Get a List of Registered Standards

The list of registered standards are located in the folder cstGlobalLibrary\metadata in a SAS tablenamed standards.

You can use the cst_getRegisteredStandards macro to get a list of registered standards. It createsa copy of the standards SAS table.

%cst_setStandardProperties(

_cstStandard = CST-FRAMEWORK,

_cstStandardVersion = 1.2,

_cstSubType = initialize

);

%cst_getRegisteredStandards(

_cstOutputDS = work.mystdsList

);

Page 78: Using SAS Clinical Standards Toolkit, Version 1

4. Using CST Macros

4-16

Example 3: Create Metadata and Control Tables from a Standard

The main table structures that you need for a standard are

a list of domain tables with metadata definitions

a list of columns in domain tables with metadata definitions

a list of validation checks

a sasreferences table to identify where the compoents of a standard are located.

You can use the cst_createDS macro to create empty tables for any table referenced by a record inthe sasreferences table for a standard.

The following program creates empty tables for the fours key tables used by the SDTM 3.1.1standard. It creates the tables in the WORK library.

%cst_setStandardProperties(

_cstStandard = CST-FRAMEWORK,

_cstStandardVersion = 1.2,

_cstSubType = initialize

);

%cst_setStandardProperties(

_cstStandard = CDISC-SDTM,

_cstStandardVersion = 3.1.1,

_cstSubType = initialize

);

%cst_createDS(

_cstStandard =CST-FRAMEWORK,

_cstStandardVersion=1.2,

_cstType =control,

_cstSubType =reference,

_cstOutputDS =work.my_sasrefs

);

%cst_createDS(

_cstStandard =CDISC-SDTM,

_cstStandardVersion=3.1.1,

_cstType =referencemetadata,

_cstSubType =table,

_cstOutputDS =work.my_tablesmetadata

);

%cst_createDS(

_cstStandard =CDISC-SDTM,

_cstStandardVersion=3.1.1,

_cstType =referencemetadata,

_cstSubType =column,

_cstOutputDS =work.my_columnsmetadata

Page 79: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

4-17

);

%cst_createDS(

_cstStandard =CDISC-SDTM,

_cstStandardVersion=3.1.1,

_cstType =referencecontrol,

_cstSubType =validation,

_cstOutputDS =work.my_validationchecks

);

Page 80: Using SAS Clinical Standards Toolkit, Version 1

4. Using CST Macros

4-18

Example 4: Get Copies of a Standard’s Metadata Tables

You want to get copies of the list of tables and list of columns defined to a standard.

The following program creates copies of the tables for the used by the SDTM 3.1.1 standard. Itcreates the tables in the WORK library.

%let STANDARD = CDISC-SDTM;

%let STDVERSION = 3.1.1;

/* Initialize the standard to use for macro calls below */

%cst_setStandardProperties(

_cstStandard =&STANDARD,

_cstStandardVersion=&STDVERSION,

_cstSubType =initialize

);

/* Create an empty sasreferences table */

%cst_createDS(

_cstStandard =CST-FRAMEWORK,

_cstStandardVersion=1.2,

_cstType =control,

_cstSubType =reference,

_cstOutputDS =sasrefs

);

/* Add 2 records for references tables and columns */

proc sql;

insert into sasrefs

set standard ="&STANDARD",

standardVersion="&STDVERSION",

type ='referencemetadata',

subType ='table',

sasRef ='work',

refType ='libref',

memname ='refTables'

set standard ="&STANDARD",

standardVersion="&STDVERSION",

type ='referencemetadata',

subType ='column',

sasRef ='work',

refType ='libref',

memname ='refColumns'

;

quit;

/* Get tables and columns defined to standards */

%cst_getStandardMetadata(

_cstSASReferences =work.sasrefs,

_cstResultsOverrideDS=_cstresults

);

Page 81: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

4-19

Example 5: Create Empty Domain Tables from a Standard

You can use CST to create a set of empty domain tables from a standard like SDTM. This givesyou a way to create domain tables for a new study that are consistent with a standard. Thecst_createTablesForDataStandards macro uses a standard’s reference_tables andreference_columns tables to create an empty table for every table referenced in the standard.

%cst_setStandardProperties(

_cstStandard = CST-FRAMEWORK,

_cstStandardVersion = 1.2,

_cstSubType = initialize

);

%cst_createTablesForDataStandard(

_cstStandard = CDISC-SDTM,

_cstStandardVersion = 3.1.1,

_cstOutputLibrary = work

);

Page 82: Using SAS Clinical Standards Toolkit, Version 1

4. Using CST Macros

4-20

Example 6: Building and Registering a Validation Standard

You can define your own standards and register them to CST.

There are two strategies for defining standards, depending on your needs:

Make a copy of the entire folder hierarchy of an existing standard, edit the tables and files inyour new standard folder.

Build your own folder structure for your standard. This requires a bit more editing, but itpotentially allows for sharing of things like messages and macro libraries across standards.

What Happens when you Register a StandardWhen you register a standard two master CST tables get updated in cstGlobalLibrary\metadata:

The standards table contains one record for each registered standard. A new record is addedwhen you register a new standard.

The standardsasreferences table contains a record for each libref and fileref defined in thesasreferences table for the standard.

Tables and Files you need to Edit for a New StandardYou can use any names that you want for files and tables that define a standard.

Typical Table Name Description

reference_tables Metadata for tables in a study.

Reasons to edit:If you need to define new domains, remove domains, or modify other metadatafor tables.

reference_columns Metadata for columns in the study tables.

Reasons to edit:If you need to define new domains, remove domains, or modify other metadatafor columns in a table.

standards Contains a single record that describes properties for a standard.

Reasons to edit:Must be updated for a new standard.

standardsasreferences Contains the librefs and filerefs used to point to the tables and files used by astandard.

Reasons to edit:Must be updated for new standards.

Beware of defining paths in the Path column

Page 83: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

4-21

Typical Table Name Description

initialize.propertiesvalidation.properties

Contain “name=value” pairs that are converted into SAS macro variables.

Reasons to edit:You want to change the default properties for a standard.

validation_master Contains the list of validation checks for a validation standard.

Reasons to edit:You want to remove validation checks, add new validation checks, orpotentially modify the behavior of a validation check.

macros folder Contains a macro library specific to a standard.

Reasons to edit:You want to add new standard-specific macros.

Steps for Creating a New Standard

Scenario: We want to create an “SDTM Lite” version of SDTM 3.1.1. We want toinclude a small list of domains, add some new domains, and have a simplestudy folder structure. We want to use the existing macro library for SDTM3.1.1.

Step 1: Create a Folder Structure for the Standard

The goal is to have a very simple folder structure for the standard and use that same simplestructure for studies based on SDTM Lite.

The folder structure below is what is used for this standard.

Page 84: Using SAS Clinical Standards Toolkit, Version 1

4. Using CST Macros

4-22

Step 2: Create Metadata Tables for the Standard’s Tables and Columns

Create the two metadata tables using the addon_create_study_meatadata macro. This will createthe metadata tables from existing study domain tables and populate the extended metadatacolumns based on the SDTM 3.1.1 standard. From there, you can edit the metadata tables toreflect customizations to your standard.

%addon_create_study_metadata(

STUDYLIB = stdref,

STUDYID = sdtmlite,

STUDYDESC = SDTM Lite,

STUDYDATAPATH = d:\L040123\data,

SDTMDATAPATH = &_cstGRoot\standards\cdisc-sdtm-lite\metadata,

DOMAINS = DM DU LB OM QS VS,

NEW = Y

);

Notes: There are two new domains (DU and OM) that are not found in the SDTM standards.The extended metadata for these domains will have to be added for the tables andcolumn metadata tables.

Step 3: Create a Table of Validation Checks for the Standard

Copy the validation_master table from the SDTM 3.1.1 standard to your standard. Edit the tableto remove/add domain references relevant to the new standard.

This is where it is useful to join the validation_master table and messages table so that youcan see validation properties of each check along with a description of the check.

You will have to edit the tablescope and columnscope columns for checks in order to getthem to work correctly.

Page 85: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

4-23

Understanding Table Scope and Column Scope

The table with the list of validation checks for a standard contains two columns that control howchecks are applied:

Tablescope specifies the domains to be tested by a check.

Value Format Example Description_ALL_ Applies to all domainsdomainName DM Applies to a single domaindomainName + domainName… LB + OM Applies to specified domains;

plus sign is delimiter_ALL_ - domainName _ALL_ - DM Applies to all domains, excluding

those specified; minus sign isdelimiter

sharedTableName** SUPP** Wildcard to include multipledomains

CLASS:classValue CLASS:FINDINGS Uses the Class column in thetables metadata to determinewhich domain tables to include

[compareGroup][compareGroup] [_ALL_ -DM][DM] Allows the comparison of a groupof domain tables with anothergroup of domain tables

Columnscope specifies the columns to be tested by a check.

Value Format Example Description_ALL_ Applies to all columns. You can

also specify a blank value_NA_ Specifies that the check is not

applicable to column-level checkscolumnName AGE Applies to a singlecolumn. May

be specified aslibref.domain.column ordomain.column

columnName + columnName… LBTEST+LBTESTCD Applies to specified columns;plus sign is delimiter

**sharedColumnName **TESTCD Applies to all shared columnnames across domains

**sharedColumnName-columnName

**TEST - OMTEST Applies to all shared columnnames across domains, excludingthose specified; minus sign isdelimiter

domainName** AE** Applies to all columns in thespecified domain

[compareGroup][compareGroup] [**_STDTC][**ENDTC] Allows the comparison of a groupof columns with another group ofof columns

Page 86: Using SAS Clinical Standards Toolkit, Version 1

4. Using CST Macros

4-24

Here is the edited table of validation checks for the SDTM Lite standard.

Step 4: Copy the Properties Files from an Existing Standard

Since the SDTM Lite standard is based on the SDTM 3.1.1 standard, copy the filesinitialize.properties and validation.properties from the SDTM 3.1.1 standard folder to theSDTM Lite standard folder.

Remember, these two property files are referenced in the sasreferences table for the standard.

Having separate property files for a standard gives you the ability to customize the propertieswithout affecting other standards.

Step 5: Create a sasreferences Table for the Standard

You could use the cst_createDS macro to create an empty sasreferences table, then add recordsfor each libref and fileref that the SDTM Lite standard needs.

%cst_createDS(

_cstStandard =CDISC-SDTM,

_cstStandardVersion=3.1.1,

_cstType =control,

_cstSubType =reference,

_cstOutputDS =work.my_sasrefs

);

Page 87: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

4-25

You could use the cst_getStandardSASReferences macro to create a copy of the sasreferencestable for the SDTM 3.1.1 standard, then edit the records to fit the SDTM Lite standard.

%cst_setStandardProperties(

_cstStandard = CST-FRAMEWORK,

_cstStandardVersion = 1.2,

_cstSubType = initialize

);

%cst_getStandardSASReferences(

_cstStandard = CDISC-SDTM,

_cstStandardVersion = 3.1.1,

_cstoutputds = sdtmlite_sasrefs

);

Here is the sdtmlite_sasrefs table for the SDTM Lite standard. Notice that it uses the samemacro library, messages, and lookup table as the SDTM 3.1.1 standard.

Beware of defining paths in the Path column. The cst_registerStandard macroassumes that the Path column contains only relative paths for standard-specific files.

Step 6: Create a standards table for the Standard

The standards table is a single-record table that stores key identifiers about the standard version.

The standards table for the SDTM Lite standard:

Page 88: Using SAS Clinical Standards Toolkit, Version 1

4. Using CST Macros

4-26

Step 7: Register the Standard to CST

%cst_setStandardProperties(

_cstStandard = CST-FRAMEWORK,

_cstStandardVersion = 1.2,

_cstSubType = initialize

);

%cst_registerStandard(

_cstRootPath = %nrstr(&_cstGRoot./standards/cdisc-sdtm-lite),

_cstControlSubpath = stddefiles,

_cstStdDSName = sdtmlite_standards,

_cstStdSASRefsDSName = sdtmlite_sasrefs

);

Details on the program:

The _cstRootPath parameter specifies the root folder for the new standards you areregistering. The value assigned above includes the _cstGRoot macro and assumes that yourstandards are located under the cstGlobalLibrary\standards folder. Notice the use of the&nrstr macro function. This does prevents the _cstGRoot macro variable from beingresolved at run time and inserts entire path as is.

The _cstControlSubpath parameter specifies the subfolder where your standards table andsasreferences table are located. This folder must be under the folder specified by the_cstRootPath parameter.

The _cstStdDSName parameter specifies the name of the standards table for your standards.

The cstStdSAsReferenceDSName parameter specifies the name of the sasreferences table foryour standards.

Once the program above runs, there should be a record in the standards table incstGlobalLibrary/metadata for you newly registered standard.

Page 89: Using SAS Clinical Standards Toolkit, Version 1

Using the Clinical Standards Toolkit Version 1.018MAY10

4-27

Records have also been added to the standardsasreferences table in thecstGlobalLibrary/metadata folder.

Notice the values in the Path column where the standard’s sasreferences table had fullpath references.

Page 90: Using SAS Clinical Standards Toolkit, Version 1

4. Using CST Macros

4-28