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



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

Database Design Strategies in CANDAs Sunil Kumar Gupta Gupta Programming, Simi Valley, CA

Best Practice in SAS programs validation. A Case Study

Creating Word Tables using PROC REPORT and ODS RTF

THE POWER OF PROC FORMAT

SAS Programming Tips, Tricks, and Techniques

Using DATA Step MERGE and PROC SQL JOIN to Combine SAS Datasets Dalia C. Kahane, Westat, Rockville, MD

Creating HTML Output with Output Delivery System

Can SAS Enterprise Guide do all of that, with no programming required? Yes, it can.

Report Customization Using PROC REPORT Procedure Shruthi Amruthnath, EPITEC, INC., Southfield, MI

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

Salary. Cumulative Frequency

Using the SQL Procedure

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

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

OS/390 SAS/MXG Computer Performance Reports in HTML Format

Let SAS Modify Your Excel File Nelson Lee, Genentech, South San Francisco, CA

Simple Rules to Remember When Working with Indexes Kirk Paul Lafler, Software Intelligence Corporation, Spring Valley, California

One problem > Multiple solutions; various ways of removing duplicates from dataset using SAS Jaya Dhillon, Louisiana State University

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

Using Pharmacovigilance Reporting System to Generate Ad-hoc Reports

KEY FEATURES OF SOURCE CONTROL UTILITIES

Five Little Known, But Highly Valuable, PROC SQL Programming Techniques. a presentation by Kirk Paul Lafler

Top Ten SAS Performance Tuning Techniques

Methodologies for Converting Microsoft Excel Spreadsheets to SAS datasets

Dynamic Dashboards Using Base-SAS Software

Chapter 1 Overview of the SQL Procedure

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

Using the COMPUTE Block in PROC REPORT Jack Hamilton, Kaiser Foundation Health Plan, Oakland, California

Choosing the Best Method to Create an Excel Report Romain Miralles, Clinovo, Sunnyvale, CA

Demystifying PROC SQL Join Algorithms Kirk Paul Lafler, Software Intelligence Corporation

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

Software Validation in Clinical Trial Reporting: Experiences from the Biostatistical & Data Sciences Department

Perfecting Report Output to RTF Steven Feder, Federal Reserve Board, Washington, D.C.

Simulate PRELOADFMT Option in PROC FREQ Ajay Gupta, PPD, Morrisville, NC

PharmaSUG Paper AD08

Normalized EditChecks Automated Tracking (N.E.A.T.) A SAS solution to improve clinical data cleaning

Post Processing Macro in Clinical Data Reporting Niraj J. Pandya

SAS Credit Scoring for Banking 4.3

PO-18 Array, Hurray, Array; Consolidate or Expand Your Input Data Stream Using Arrays

Automate Data Integration Processes for Pharmaceutical Data Warehouse

How To Use Sas With A Computer System Knowledge Management (Sas)

Effective Use of SQL in SAS Programming

Subsetting Observations from Large SAS Data Sets

New Tricks for an Old Tool: Using Custom Formats for Data Validation and Program Efficiency

A simple tool to catalogue statistical outputs developed for submission by linking two in-house systems experience from a submission project

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

Big Data, Fast Processing Speeds Kevin McGowan SAS Solutions on Demand, Cary NC

ABSTRACT INTRODUCTION EXERCISE 1: EXPLORING THE USER INTERFACE GRAPH GALLERY

Top Ten SAS DBMS Performance Boosters for 2009 Howard Plemmons, SAS Institute Inc., Cary, NC

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

Alex Vidras, David Tysinger. Merkle Inc.

SUGI 29 Data Presentation

PROC REPORT: How To Get Started

Data Mining: An Overview of Methods and Technologies for Increasing Profits in Direct Marketing. C. Olivia Rud, VP, Fleet Bank

EXST SAS Lab Lab #4: Data input and dataset modifications

PharmaSUG Paper DG06

Clinical Data Warehouse Functionality Peter Villiers, SAS Institute Inc., Cary, NC

Modeling Lifetime Value in the Insurance Industry

Importing Excel File using Microsoft Access in SAS Ajay Gupta, PPD Inc, Morrisville, NC

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

SUGI 29 Tutorials. Paper Using Styles and Templates to Customize SAS ODS Output Sunil K. Gupta, Gupta Programming, Simi Valley, CA

SAS -Based Data Management System for Clinical Drug Trials. Jean Bitney, A. H. Robins

Reshaping & Combining Tables Unit of analysis Combining. Assignment 4. Assignment 4 continued PHPM 672/677 2/21/2016. Kum 1

Data Cleaning 101. Ronald Cody, Ed.D., Robert Wood Johnson Medical School, Piscataway, NJ. Variable Name. Valid Values. Type

Testing data warehouses with key data indicators Results with Highspeed

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

From The Little SAS Book, Fifth Edition. Full book available for purchase here.

Efficient Techniques and Tips in Handling Large Datasets Shilong Kuang, Kelley Blue Book Inc., Irvine, CA

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

Downloading, Configuring, and Using the Free SAS University Edition Software

Producing Structured Clinical Trial Reports Using SAS: A Company Solution

Paper Hot Links: Creating Embedded URLs using ODS Jonathan Squire, C 2 RA (Cambridge Clinical Research Associates), Andover, MA


Paper DM10 SAS & Clinical Data Repository Karthikeyan Chidambaram

SAS Data Views: A Virtual View of Data John C. Boling, SAS Institute Inc., Cary, NC

Statistics, Data Analysis & Econometrics

Beyond the Basics: Advanced REPORT Procedure Tips and Tricks Updated for SAS 9.2 Allison McMahill Booth, SAS Institute Inc.

Guido s Guide to PROC FREQ A Tutorial for Beginners Using the SAS System Joseph J. Guido, University of Rochester Medical Center, Rochester, NY

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

Performing Queries Using PROC SQL (1)

GENERATE DATA LISTINGS FOR A NEW DRUG APPLICATION IN 5 MINUTES AS A PART OF AUTOMATED REPORT SYSTEM

Date/Time Stamped Files and Audit Trails: What Part 11 Compliant SAS Systems are Made of. Carolyn Dougherty, ViroPharma Incorporated, Exton, PA

Tips and Tricks for Creating Multi-Sheet Microsoft Excel Workbooks the Easy Way with SAS. Vincent DelGobbo, SAS Institute Inc.

Listings and Patient Summaries in Excel (SAS and Excel, an excellent partnership)

Parallel Data Preparation with the DS2 Programming Language

AN INTRODUCTION TO THE SQL PROCEDURE Chris Yindra, C. Y. Associates

Using SAS Output Delivery System (ODS) Markup to Generate Custom PivotTable and PivotChart Reports Chevell Parker, SAS Institute

Gregory S. Nelson ThotWave Technologies, Cary, North Carolina

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

Intelligent Data Capture as an Onramp for Energy Management. Sandy Patel VP, ECM Solution Sales CDIT Inc.

Technical Paper. Performance of SAS In-Memory Statistics for Hadoop. A Benchmark Study. Allison Jennifer Ames Xiangxiang Meng Wayne Thompson

Health Services Research Utilizing Electronic Health Record Data: A Grad Student How-To Paper

Preparing Real World Data in Excel Sheets for Statistical Analysis

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

Creating Dynamic Reports Using Data Exchange to Excel

Using Macros to Automate SAS Processing Kari Richardson, SAS Institute, Cary, NC Eric Rossland, SAS Institute, Dallas, TX

Intelligent Query and Reporting against DB2. Jens Dahl Mikkelsen SAS Institute A/S

Analyzing the Server Log

Fecal Incontinence Quality of Life Instrument

Transcription:

Utilizing Clinical SAS Report Templates Sunil Kumar Gupta Gupta Programming, Thousand Oaks, CA ABSTRACT SAS programmers often have the responsibility of supporting the reporting needs of the Clinical Affairs Department of Pharmaceutical Companies. This involves generating a variety of reports to fulfill the regulatory requirements of the clinical investigation of the medical device. By establishing clinical reporting templates for each of the functional aspects of Clinical Data Management, the SAS programmer can dramatically improve the efficiency of developing and generating reports. Examples of these functional reports include patient listings, patient x-ray logs, monitor site visits, monthly status reports, & reports necessary for pre market approval application. Each type of report requires different layouts due to the different objectives of the organization. By establishing a reporting template for each type, the SAS programmer can make modifications to an already verified and complete program. Only minor adjustments may be required for user specific selections. Proper tools such as SAS report templates should be in place to facilitate the rapid development and execution of clinical reports. Establishing reporting standards will increase efficiency. INTRODUCTION Supporting the reporting needs of the Clinical Affairs Department can be a challenging task. This is because of the pressure on the programmer to quickly generate a variety of reports. Time is often critical as millions of dollars in sales can be lost due to delays in submission. By establishing clinical reporting templates for each of the functional aspects, the SAS programmer becomes organized and prepared to receive reporting requests. The department improves their efficiency in the development and generation of clinical reports. System standardization can be realized in the following areas: Program Header File Definitions Merged File Definitions Field Properties Standard & Custom Conditions Custom Formats Random Sample Verification of Dataset Contents Output Layout If possible, it is recommended to use the report specification similar to one defined in the SAS Service Request Form before initiating the coding. This paper will review sample templates for detail & summary patient listings. SYSTEM STANDARDIZATION Program Header By completing the program header, proper documentation is maintained for all programs. This is essential for program support. File Definitions All files containing the clinical information are defined with any access & view descriptors. This is a central source of file documentation. Merged File Definitions All links are defined and established to create new files for data consolidation & reporting. Field Properties For each file, fields are defined with label, format, & informat statements. These properties are utilized in all data analysis and presentation. Standard & Custom Conditions on the file Any required conditions can be applied to assure data validity. Any user specific conditions can also be applied. Custom Formats Standards in study formats can be recognized. Random Sample With a small random sample, a sufficient amount of data is available for testing. This allows for rapid testing without utilizing all the data in the dataset. Verification of Dataset Contents This is important to assure proper data extraction and to verify programming assumptions. Output Layout The end user knows what to expect on the report. The header contains the title, date of execution, and selection conditions. The following procedures are presented with the macro language: DATA Step, PROC SORT, FORMAT & REPORT.

SAMPLE DATASETS The two datasets represent patient demographics and follow-up visit information. * Program Header; * Name - List1; * Function - Detail & Summary listing of Clinical Data; * Programmer - Sunil K. Gupta; * Date - 7/1/95; * Verification Date - 7/2/95 By - ; * Revision Log; * Date Programmer Change; LIBNAME CLINRPT 'C:\SAS\CLINICAL\MONTHLY'; * Patient Demographics File; DATA DEMO; INPUT INV 1-2 PATNO 4-5 PTNAME $5. STATUS 12 SEX 14 AGE 16-18 DX 20; * Custom Conditions; * WHERE INV IN (1,2) AND STATUS IN (1) AND SEX IN (1) AND AGE < 45 AND DX IN (1); * Random Sample; * Field Properties; LABELS INV PATNO PTNAME STATUS SEX AGE DX FORMAT INV 2. PATNO 2. PTNAME $5. STATUS 1. SEX 1. AGE 3. DX 1.; CARDS; 1 1 JOHN 1 1 31 2 1 2 JAN 2 1 41 1 2 1 TIM 1 2 100 1 3 1 JOE 1 2 32 3 4 1 SUE 2 2 42 3 5 1 MARY 1 2 102 3 ; = 'Investigator' = 'Patient*#' = 'Patient*Name' = 'Status' = 'Sex' = 'Age' = 'Diagnosis'; * Patient Followup Visits File; DATA PVISIT; INPUT INV 1-2 PATNO 4-5 VISIT 7-8 EFF1 10-11 EFF2 13-14 SAF1 16-17; * Custom Conditions; * WHERE INV IN (1,2) AND VISIT IN (1,2,3); * Random Sample; * Field Properties; LABELS INV PATNO VISIT EFF1 EFF2 SAF1 = 'Investigator' = 'Patient*#' = 'Visit' = 'Efficacy*Variable*1' = 'Efficacy*Variable*2' = 'Safety*Variable*1'; FORMAT INV 2. PATNO 2. VISIT 1. EFF1 2. EFF2 2. SAF1 2.; CARDS; 1 1 1 50 52 62 1 1 2 60 41 73 1 1 3 70 12 25 1 1 4 80 41 75 1 1 5 90 25 72 1 2 1 40 13 36 1 2 2 50 15 26 1 2 3 60 18 42 2 1 1 80 17 53 2 1 2 90 26 47 ; * Standard Study Format; PROC FORMAT; VALUE INV 1 = 'Investigator 1' 2 = 'Investigator 2' 3 = 'Investigator 3' 4 = 'Investigator 4' 5 = 'Investigator 5'; VALUE STATUS 1 = 'Active' 2 = 'Dead'; VALUE SEX 1 = 'Male' 2 = 'Female';

VALUE DX 1 = 'OA' 2 = 'RA' 3 = 'PT'; VALUE VISIT 1 = 'Preop' 2 = 'Operative' 3 = 'Week 1' 4 = 'Week 2' 5 = 'Week 3'; QUIT; * Merged File - Demographics & Followup File; PROC SORT DATA=DEMO; PROC SORT DATA=PVIST; DATA PDVISIT; MERGE DEMO (IN=A) PVISIT (IN=B); IF A; * Verification of Dataset Contents; PROC FREQ DATA=PDVISIT; TABLES INV PATNO STATUS SEX DX VISIT; MACRO VARIABLES %LET DATAV %LET CLASSV %LET VARV %LET STATV1 Level 1 Controls = PDVISIT; = INV PATNO VISIT; = EFF1; = MEAN; Macro variables enable the programmer to specify the data set name, factor & analysis variable, & statistics. The factor variable may be more than one variable. The analysis variable is usually one of the efficacy or safety variables. The statistics option includes the following: mean, sum, min, max, & std. %LET INVV = (1, 2); %LET PATNOV = (1, 2, 3, 4, 5); %LET VISITV = (1, 2, 3); Level 2 Controls the investigator number, patient number, or visit period. This section can be uncommeted if needed. SIMPLE PATIENT LISTING For a simple patient listing, the report procedure can be utilized. Once the file is sorted, then can be applied. This generates a sorted listing of the investigator name, patient number, visit period, and score value. See output 1 for the report generated. PROC SORT DATA=PDVIST; TITLE1 "CLINICAL REPORT : Simple Patient Listing - &SYSDATE, &SYSTIME"; OUTREPT = CLINRPT.LIST1 CENTER HEADLINE HEADSKIP MISSING LIST SPLIT='*'; * Level 2 controls; * WHERE INV IN &INVV AND PATNO IN &PATNOV AND VISIT IN &VISITV; * Apply custom formats; FORMAT INV INV. VISIT VISIT.; * List column variables; COLUMN &CLASSV &VARV; * Define each column field; DEFINE INV / GROUP CENTER 'Investigator*Name'; DEFINE PATNO / GROUP CENTER 'Patient*#'; DEFINE VISIT / GROUP CENTER DEFINE &VARV / &STATV1 CENTER 'Efficacy*Variable*1' FORMAT=COMMA6.; 'Visit'; * Generate a line after each Investigator; COMPUTE AFTER INV; LINE 45*'-'; LINE 'Efficacy Variable 1 Scores for ' INV 2. +2 ' Investigator '; LINE ' '; ENDCOMP; This enables the programmer to futher subset the data for additional analysis. For example, the programmer can specify

OUTPUT 1 CLINICAL REPORT : Simple Patient Listing - Monday, 3JULY95 15:03 EFFICACY INVESTIGATOR PATNO VARIABLE NAME # VISIT 1. Investigator 1 1 Operative 60 Preop 50 Week 1 70 Week 2 80 Week 3 90 2 Operative 50 Preop 40 Week 1 60 Efficacy Variable 1 Scores for 1 Investigator Investigator 2 1 Operative 90 Preop 80 Efficacy Variable 1 Scores for 2 Investigator SUMMARY PATIENT LISTING For a summary listing across follow-up visits, the REPORT procedure is applied again. This procedure generates a summary listing by investigator name and patient number. The visit scores reported include: mean, minimum, maximum, and standard deviation. See output 2 for the report generated. %LET CLASS=INV PATNO; TITLE1 "CLINICAL REPORT : Summary Patient Listing - &SYSDATE, &SYSTIME"; OUTREPT = CLINRPT.LIST2 NOWD HEADLINE HEADSKIP MISSING LIST SPLIT='*'; * Level 2 controls; * WHERE INV IN &INVV AND PATNO IN &PATNOV AND VISIT IN &VISITV; * List column fields; COLUMN &CLASSV &VARV &VARV=SMIN &VARV=SMAX &VARV=SSTD; * Apply custom formats; FORMAT INV INV.; * Define each column fields; DEFINE INV / GROUP CENTER 'Investigator*Name'; OUTPUT 2 DEFINE &VARV / &STATV1 CENTER 'Efficacy*Variable*1' FORMAT=COMMA6.; DEFINE SMIN / MIN CENTER 'MIN*SCORE' FORMAT=COMMA6.; DEFINE SMAX / MAX CENTER 'MAX*SCORE' FORMAT=COMMA6.; DEFINE SSTD / STD CENTER 'STD*SCORE' FORMAT=COMMA6.; COMPUTE AFTER INV; LINE 45*'-'; LINE 'Efficacy Variable 1 Scores for ' INV 2. +2 ' Investigator '; LINE ' '; ENDCOMP; CLINICAL REPORT : Summary Patient Listing - Monday, 3JULY95 15:03 INVESTIGATOR MEAN MIN MAX STD NAME PATNO SCORE SCORE SCORE SCORE Invest. 1 1 70 50 90 16 2 50 40 60 10 Efficacy Variable 1 Scores for 1 Investigator Invest. 2 1 85 80 90 7 Efficacy Variable 1 Scores for 2 Investigator Use the REPORT = option for using a predefined clinical template for reporting of a data subset. * Subset Dataset for Male patients; DATA PDVISITM; SET PDVISIT; WHERE SEX = 1; %LET DATAV = PDVISITM; REPORT = CLINRPT.LIST2; DEFINE PATNO / GROUP CENTER 'Patient*#';

SUMMARY A similar template can be developed for each of the other functional reports. The two OPTIONS - OUTREPT & REPORT allow for additional reporting power. Use the OUTREPT = option to save the report template. This template can be utilized for other datasets of the same dataset structure. A subset population of the original dataset is an application example. Use the REPORT= option to load the template containing the report definition to format the current SAS dataset. PROC FORMS can be used to generate reports that resemble the case report form. This can be useful in assisting in the verification of the clinical data. With the clinical report templates, efficiency is realized because the programmer starts working with code from a similar program. Often, there are similar studies being conducted and the method of clinical review is similar across the efficacy variables. In addition, a great deal of time is saved because the modified code does not need to go through a complete and comprehensive test as the original code has. By effectively utilizing SAS's flexibility and power for report generation, it is possible to expedite the process of report development. Clinical SAS report templates serve as a set of tools to facilitate the rapid development and execution of clinical reports. The standards established also improve the communication and training of new SAS programmers. REFERENCES SAS Procedures Guide, ver. 6, third edition; SAS Guide to the Report Procedure - Usage and Reference, ver. 6, first edition; TRADEMARK INFORMATION SAS is a registered trademark of the SAS Institute Inc., Cary, NC, USA. ABOUT THE AUTHOR The author welcomes your comments & suggestions. Sunil Kumar Gupta Gupta Programming 926 Tupelo Wood Ct. Thousand Oaks, CA 91320-3650 (805) 499-9691 sunilgupta@aol.com ACKNOWLEDGMENTS The author would like to thank Dr. Fred Hoehler of Data Management Center, Santa Ana, CA and Kirk Paul Lafler of Software Intelligence Corporation, Spring Valley, CA for their invaluable assistance in the preparation of this paper.