Best Practice in SAS programs validation. A Case Study



Similar documents
YOUR GATEWAY TO. EXPERIENCE, quality & FLEXIBILITy

USE CDISC SDTM AS A DATA MIDDLE-TIER TO STREAMLINE YOUR SAS INFRASTRUCTURE

Statistical Operations: The Other Half of Good Statistical Practice

Utilizing Clinical SAS Report Templates Sunil Kumar Gupta Gupta Programming, Thousand Oaks, CA

How to Use SDTM Definition and ADaM Specifications Documents. to Facilitate SAS Programming

How to build ADaM from SDTM: A real case study

QUALITY CONTROL AND QUALITY ASSURANCE IN CLINICAL RESEARCH

From Validating Clinical Trial Data Reporting with SAS. Full book available for purchase here.

Innovative Techniques and Tools to Detect Data Quality Problems

PharmaSUG Paper AD08

Utilizing Clinical SAS Report Templates with ODS Sunil Kumar Gupta, Gupta Programming, Simi Valley, CA

Lessons Learned from the QC Process in Outsourcing Model Faye Yeh, Takeda Development Center Americas, Inc., Deerfield, IL

WHITE PAPER. CONVERTING SDTM DATA TO ADaM DATA AND CREATING SUBMISSION READY SAFETY TABLES AND LISTINGS. SUCCESSFUL TRIALS THROUGH PROVEN SOLUTIONS

QualityView - a program database and validation documentation tool

Innovation Quality Flexibility

Paper PO12 Pharmaceutical Programming: From CRFs to Tables, Listings and Graphs, a process overview with real world examples ABSTRACT INTRODUCTION

ClinPlus. Report. Technology Consulting Outsourcing. Create high-quality statistical tables and listings. An industry-proven authoring tool

SDTM, ADaM and define.xml with OpenCDISC Matt Becker, PharmaNet/i3, Cary, NC

A Macro to Create Data Definition Documents

Implementation of SDTM in a pharma company with complete outsourcing strategy. Annamaria Muraro Helsinn Healthcare Lugano, Switzerland

REx: An Automated System for Extracting Clinical Trial Data from Oracle to SAS

Quality Assurance: Best Practices in Clinical SAS Programming. Parag Shiralkar

Using SAS Data Integration Studio to Convert Clinical Trials Data to the CDISC SDTM Standard Barry R. Cohen, Octagon Research Solutions, Wayne, PA

A white paper presented by: Barry Cohen Director, Clinical Data Strategies Octagon Research Solutions, Inc. Wayne, PA

ABSTRACT INTRODUCTION THE MAPPING FILE GENERAL INFORMATION

Practical application of SAS Clinical Data Integration Server for conversion to SDTM data

Defining a Validation Process for End-user (Data Manager / Statisticians) SAS Programs

How to easily convert clinical data to CDISC SDTM

PharmaSUG2010 HW06. Insights into ADaM. Matthew Becker, PharmaNet, Cary, NC, United States

Project Request and Tracking Using SAS/IntrNet Software Steven Beakley, LabOne, Inc., Lenexa, Kansas

PharmaSUG Paper DG06

Automate Data Integration Processes for Pharmaceutical Data Warehouse

Programme Guide PGDCDM

Post Processing Macro in Clinical Data Reporting Niraj J. Pandya

Paper DM10 SAS & Clinical Data Repository Karthikeyan Chidambaram

Metadata and ADaM.

SAS CLINICAL TRAINING

Understanding CDISC Basics

UTILIZING CDISC STANDARDS TO DRIVE EFFICIENCIES WITH OPENCLINICA Mark Wheeldon CEO, Formedix Boston June 21, 2013

Pharmaceutical Applications

ABSTRACT TECHNICAL DESIGN INTRODUCTION FUNCTIONAL DESIGN

«How we did it» Implementing CDISC LAB, ODM and SDTM in a Clinical Data Capture and Management System:

The Essentials of Finding the Distinct, Unique, and Duplicate Values in Your Data

Evaluating the results of a car crash study using Statistical Analysis System. Kennesaw State University

Essential Project Management Reports in Clinical Development Nalin Tikoo, BioMarin Pharmaceutical Inc., Novato, CA

The Clinical Research Center

Data Presentation. Paper Using SAS Macros to Create Automated Excel Reports Containing Tables, Charts and Graphs

Building and Customizing a CDISC Compliance and Data Quality Application Wayne Zhong, Accretion Softworks, Chester Springs, PA

Setting your Themis notification preferences

SDTM Validation: Methodologies and Tools


Synergizing global best practices in the CRO industry

PharmaSUG Paper IB05

Clinical Trial Data Integration: The Strategy, Benefits, and Logistics of Integrating Across a Compound

ing Automated Notification of Errors in a Batch SAS Program Julie Kilburn, City of Hope, Duarte, CA Rebecca Ottesen, City of Hope, Duarte, CA

Using SAS to Examine Health-Promoting Life Style Activities of Upper Division Nursing Students at USC

Practical Image Management for

Bridging Statistical Analysis Plan and ADaM Datasets and Metadata for Submission

Comparing JMP and SAS for Validating Clinical Trials Sandra D. Schlotzhauer, Chapel Hill, NC

CDISC Roadmap Outline: Further development and convergence of SDTM, ODM & Co

KEY FEATURES OF SOURCE CONTROL UTILITIES

Training/Internship Brochure Advanced Clinical SAS Programming Full Time 6 months Program

OMCL Network of the Council of Europe QUALITY ASSURANCE DOCUMENT

Use of Metadata to Automate Data Flow and Reporting. Gregory Steffens Novartis PhUSE 13 June 2012

PK IN DRUG DEVELOPMENT. CDISC management of PK data. Matteo Rossini Milan, 9 February 2010

College SAS Tools. Hope Opportunity Jobs

Sanofi-Aventis Experience Submitting SDTM & Janus Compliant Datasets* SDTM Validation Tools - Needs and Requirements

Methodologies for Converting Microsoft Excel Spreadsheets to SAS datasets

Paper PO03. A Case of Online Data Processing and Statistical Analysis via SAS/IntrNet. Sijian Zhang University of Alabama at Birmingham

Managing very large EXCEL files using the XLS engine John H. Adams, Boehringer Ingelheim Pharmaceutical, Inc., Ridgefield, CT

Monitoring Clinical Trials with a SAS Risk-Based Approach

The SET Statement and Beyond: Uses and Abuses of the SET Statement. S. David Riba, JADE Tech, Inc., Clearwater, FL

Apparo Fast Edit. Excel data import via 1 / 19

Data Quality in Clinical Trials: a Sponsor's view

Building A SAS Application to Manage SAS Code Phillip Michaels, P&Ls, Saint Louis, MO

Bringing Order to Your Clinical Data Making it Manageable and Meaningful

Paper PO06. Randomization in Clinical Trial Studies

Visualizing Clinical Trial Data Matt Becker, SAS Institute

Integrity Constraints and Audit Trails Working Together Gary Franklin, SAS Institute Inc., Austin, TX Art Jensen, SAS Institute Inc.

Paul Harris, PhD. Planning, Collecting and Managing Data For Clinical And Translational Research

Managing Data Issues Identified During Programming

SPREADSHEET VALIDATION 101: CREATE AND VALIDATE FDA-COMPLIANT MS EXCEL SPREADSHEETS

Meta-programming in SAS Clinical Data Integration

Clinical Data Management (Process and practical guide) Dr Nguyen Thi My Huong WHO/RHR/RCP/SIS

Paper AD11 Exceptional Exception Reports

Using SAS/IntrNet as a Web-Enabled Platform for Clinical Reporting

The ADaM Solutions to Non-endpoints Analyses

Bag it, Tag it & Put it: Project tracking one click away!

Gregory S. Nelson ThotWave Technologies, Cary, North Carolina

Constructing a Table of Survey Data with Percent and Confidence Intervals in every Direction

Using Excel for Statistics Tips and Warnings

Counting the Ways to Count in SAS. Imelda C. Go, South Carolina Department of Education, Columbia, SC

Statistics and Analysis. Quality Control: How to Analyze and Verify Financial Data

MOVING THE CLINICAL ANALYTICAL ENVIRONMENT INTO THE CLOUD

Permuted-block randomization with varying block sizes using SAS Proc Plan Lei Li, RTI International, RTP, North Carolina

Implementing CDASH Standards Into Data Collection and Database Design. Robert Stemplinger ICON Clinical Research

Applications Development ABSTRACT PROGRAM DESIGN INTRODUCTION SAS FEATURES USED

2. Making example missing-value datasets: MCAR, MAR, and MNAR

Using Pharmacovigilance Reporting System to Generate Ad-hoc Reports

Overview of EAM Services. A Fully Integrated Global EAM Service Provider

Transcription:

Best Practice in SAS programs validation. A Case Study CROS NT srl Contract Research Organisation Clinical Data Management Statistics Dr. Paolo Morelli, CEO Dr. Luca Girardello, SAS programmer

AGENDA Introduction Program Verification: a Business Approach Program Verification: some case studies

Headquarters in Verona (Italy) Founded in 1993 Offices in Milan and Munich 40 employees FACTS about CROS NT Data Management, Statistical, PhV and hosting services Services to Pharma, Biotech and CROs Cooperation with Universities of Padua, Bologna, Milan

Introduction Topic of the presentation: how to maximize the quality of programming while minimizing the time to verify program. In the first part of the presentation we will discuss about the business part: What is program verification? Why program verification is necessary? When is program verification done? Who performs program verification? How does the verification process work? In the second part of the presentation we will discuss about a case study

What is program verification Making certain that the program does what it is supposed to do, producing a documented evidence of this

Why program verification is necessary The aim of SAS validation in pharmaceutical research area is that end-users will produce high quality programs that fit the purpose for which they are designed and provide accurate results with a style that they promote: Reliabity Efficiency Portability Flexibility Ease of use

When is program verification done Program verification should performed as soon after the development of the SAS code, before putting the product in production Development and production environment should be clearly defined; Audit trail of program changes should be present as soon the program is released to production

Who performs program verification The SAS programmer who create the code should perform basic testing and follow coding rules, like: Error log search Warning evaluation Comments on critical steps Comments on Macro usage Details of the SAS program (datetime of creation, SAS programmer name, dataset used, datetime of verification, Name of second SAS programmer, etc) It should be emphasized to perform then a program verification by a second SAS programmer

How does the verification process work Biostatistician creates specs then Submits request Interactive Process SAS developer produces TLGs Then submits verification request Interactive Process Quality Control programmer verifies results

Different Verification Procedures SOP should define different verification procedures. Independent programming Reviewing results Random review of results Visually verify code Some of them should mandatory, other optional. The Document Containing the programming specs (for example the SAP) should define which approach to follow, illustrating program verification techniques (for example using alternative SAS programming procedures) The determination of the level of validation should follow a risk-based model. The key is to determine the effect on the process if the program does not produce the desired result.

Error Types Business strategy should identify common error types found in: Statistical tables Listings Graphs Data analysis files Header section of SAS programs Bad programming specifications Metric report related to error type should be analyzed in order to perform preventive action correction

Specific CDISC SDTM Validation specs Metadata Level Verifies that all required variables are present in the dataset Reports as an error any variables in the dataset that are not defined in the domain Reports a warning for any expected domain variables which are not in the dataset

Specific CDISC SDTM Validation specs - Metadata Level Notes any permitted domain variables which are not in the dataset Verifies that all domain variables are of the expected data type and proper length Detects any domain variables which are assigned a controlled terminology specification by the domain and do not have a format assigned to them

SAS Programming Rules when validating Emphasizing well commented programs. Macro in order to use programs repeatedly to verify different programs (re-usability) Using alternative SAS programming procedures when validating. Define a workflow if error are identified

How to optimize the process Good specs & Good standards & Good training = Good programming results

A Case Study

Example of Derived Datasets Validation (1/4) First Programmer programs all derived datasets Second Programmer programs all derived datasets PROC COMPARE Compare original derived datasets versus validation derived datasets

Example of Derived Datasets Validation (2/4) proc compare base=listing compare=validation listbase listcomp; id pt; run; The COMPARE Procedure Comparison of WORK.LISTING with WORK.VALIDATION (Method=EXACT) Observation Summary Observation Base Compare ID First Obs 1 1 pt=121 First Unequal 79 79 pt=201 Last Unequal 79 79 pt=201 Last Obs 89 89 pt=212 Number of Observations in Common: 89. Total Number of Observations Read from WORK.LISTING: 89. Total Number of Observations Read from WORK.VALIDATION: 89. Number of Observations with Some Compared Variables Unequal: 1. Number of Observations with All Compared Variables Equal: 88.

Example of Derived Datasets Validation (3/4) Values Comparison Summary Number of Variables Compared with All Observations Equal: 3. Number of Variables Compared with Some Observations Unequal: 1. Total Number of Values which Compare Unequal: 1. Maximum Difference: 1. Variables with Unequal Values Variable Type Len Label Ndif MaxDif age NUM 8 AGE (years) 1 1.000 Value Comparison Results for Variables AGE (years) Base Compare pt age age Diff. % Diff 201 41 40-1.0000-2.4390

Example of Derived Datasets Validation (4/4) The COMPARE Procedure Comparison of WORK.LISTING with WORK.VALIDATION (Method=EXACT) Observation Summary Observation Base Compare ID First Obs 1 1 pt=121 Last Obs 89 89 pt=212 Number of Observations in Common: 89. Total Number of Observations Read from WORK.LISTING: 89. Total Number of Observations Read from WORK.VALIDATION: 89. Number of Observations with Some Compared Variables Unequal: 0. Number of Observations with All Compared Variables Equal: 89. NOTE: No unequal values were found. All values compared are exactly equal.

Example of Tables Validation (1/3) First Programmer programs all tables applying the set of layout specifications and saves outputs in Word Second Programmer programs all tables avoiding to add additional SAS code to control output Compare of outputs

Example of Tables Validation (2/3) Tmt A Tmt B First Programmer - Output in Word Age (years) n 41 48 Mean (SD) 51.44 (10.39) 52.10 (11.00) Median 55.00 55.00 Min - Max 30.00-66.00 27.00-71.00 Gender Female 14 (34.15%) 21 (43.75%) Male 27 (65.85%) 27 (56.25%) Second programmer - Output SAS proc means data=demog n mean stddev median min max; var age; by tmt; run;

Example of of Tables Validation (3/3) Tmt A Tmt B First Programmer - Output in Word Age (years) n 41 48 Mean (SD) 51.44 (10.39) 52.10 (11.00) Median 55.00 55.00 Min - Max 30.00-66.00 27.00-71.00 Gender Female 14 (34.15%) 21 (43.75%) Male 27 (65.85%) 27 (56.25%) Second programmer - Output SAS proc freq data=demog; tables gender*tmt; run;

Example of Listings Validation (1/2) First Programmer programs all listings applying the set of layout specifications and saves outputs in Word Second Programmer prints derived datasets in SAS Compare listing output in Word versus output in SAS of derived dataset

Example of Listings Validation (2/2) Listing Output in Word Print of Derived Dataset Listing 1 Demographic Characteristics Subject ID Gender Age Race 121 M 50 3 122 M 34 3 123 F 58 3 124 M 64 3 125 M 57 3 126 F 64 3 127 M 39 3 128 M 55 2 129 M 41 3 130 M 44 3 131 M 32 3 132 M 37 3 133 M 61 3 134 F 56 3 135 M 34 3 136 M 34 3

Example of Registration Errors

Metrics on Programming Errors Specification not detailed 40% Output Structure 30% Wrong interpretation of specification 60% Specification 14% Display Variables 14% Output Writing 56% Calculation of variables 20% Layout 45% Selection of Variables 14% SAS Programming 66% Programming 41%

Examples of Errors Layout Writing of a note in table Incorrect: Percentagesare calculatednumberofpatients Correct: Percentagesare calculatedon number ofpatients

Examples of Errors Programming data age; set demog; if age<20 then age_c=1; else if 20<age<40 then age_c=2; else if age>=40 then age_c=3; run; data age; set demog; if age<20 then age_c=1; else if 20<=age<40 then age_c=2; else if age>=40 then age_c=3; run;

Examples of Errors Wrong interpretationofspecification Note of a table(in SAP): Note 1: Onlypatients withallvalueforprimary analysis are included in the table. In SAS Program: In the table, allpatientsare included

Thank you for your attention Questions?