Graphical User Interface to Report Generation in a Pharmaceutical Environment (Using SAS/AF Software FRAME Technology to Keep Your Head Above Water)

Similar documents
Automate Clinical Trial Data Issue Checking and Tracking

PharmaSUG Paper PO10

How to write ADaM specifications like a ninja.

Once the data warehouse is assembled, its customers will likely

Making a List, Checking it Twice (Part 1): Techniques for Specifying and Validating Analysis Datasets

Customizing SAS Data Integration Studio to Generate CDISC Compliant SDTM 3.1 Domains

Serious Adverse Events Reporting Form Completion Guidelines

A SAS/AF Application for Linking Demographic & Laboratory Data For Participants in Clinical & Epidemiologic Research Studies

Report Writing, SAS/GRAPH Creation, and Output Verification using SAS/ASSIST Matthew J. Becker, ST TPROBE, inc., Ann Arbor, MI

Integrated Safety Reporting Anemone Thalmann elba - GEIGY Ltd (PH3.25), Basel

One-PROC-Away: The Essence of an Analysis Database Russell W. Helms, Ph.D. Rho, Inc.

The Benefits of Traceability Beyond Just From SDTM to ADaM in CDISC Standards Maggie Ci Jiang, Teva Pharmaceuticals, Great Valley, PA

Macros I Use Every Day (And You Can, Too!)

Creating a Patient Profile using CDISC SDTM Marc Desgrousilliers, Clinovo, Sunnyvale, CA Romain Miralles, Clinovo, Sunnyvale, CA

PharmaSUG Paper PO22

186 Statistics, Data Analysis and Modeling. Proceedings of MWSUG '95

One Project, Two Teams: The Unblind Leading the Blind

Here s how this whole external IRB thing works: A handbook for external IRB submissions

Integrated Clinical Systems, Inc. announces JReview 13.1 with new AE Incidence

A Practical and Efficient Approach in Generating AE (Adverse Events) Tables within a Clinical Study Environment

Reviewers Guide on Clinical Trials

For example, let's say that we have the following functional specification:

Programming Gems that are worth learning SQL for! Pamela L. Reading, Rho, Inc., Chapel Hill, NC

PharmaSUG Paper PO03

Implementing CDISC Using SAS. Full book available for purchase here.

Pharmaceuticals, Health Care, and Life Sciences

Standard Safety Visualization Set-up Using Spotfire

EXPERIENCES USING SAS/ACCESS IN A COMPLEX RELATIONAL DATABASE APPLICATION. Murty Arisetty, Howmedica, Div. of Pfizer Hospital Products Group, Inc.

PH006 Audit Trails of SAS Data Set Changes An Overview Maria Y. Reiss, Wyeth Pharmaceuticals, Collegeville, PA

From Implementing CDISC Using SAS. Full book available for purchase here. About This Book... xi About The Authors... xvii Acknowledgments...

Matt Downs and Heidi Christ-Schmidt Statistics Collaborative, Inc., Washington, D.C.

HealthKeepers, Inc. Website User Guide: Precertification Requests

The Lilly Safety Mailing Process

Tools to Facilitate the Creation of Pooled Clinical Trials Databases

ABSTRACT INTRODUCTION WHERE TO START? 1. DATA CHECK FOR CONSISTENCIES

The Implementation of Display Auto-Generation with Analysis Results Metadata Driven Method

HAVE YOU EVER WISHED THAT YOU DO NOT NEED TO TYPE OR CHANGE REPORT NUMBERS AND TITLES IN YOUR SAS PROGRAMS?

Upholding Ethics and Integrity: A macro-based approach to detect plagiarism in programming

2014 Accuro Waitlist Change - User Guide

SAS Drug Development Program Portability

Create Flowcharts Using Annotate Facility. Priya Saradha & Gurubaran Veeravel

How to clean up dirty data in Patient reported outcomes

Preparing the Office of Scientific Investigations (OSI) Requests for Submissions to FDA

A SAS and Java Application for Reporting Clinical Trial Data. Kevin Kane MSc Infoworks (Data Handling) Limited

Data Integrity and the FDA AFDO Education Conference

Figure 1. Table shell

OnCore Enterprise Research. Subject Administration Full Study

2 Spreadsheet Considerations 3 Zip Code and... Tax ID Issues 4 Using The Format... Cells Dialog 5 Creating The Source... File

PhUse Practical Uses of the DOW Loop in Pharmaceutical Programming Richard Read Allen, Peak Statistical Services, Evergreen, CO, USA

Main challenges for a SAS programmer stepping in SAS developer s shoes

InForm Functionality Reference Manual for Sites. Version 1.0

USING HASH TABLES FOR AE SEARCH STRATEGIES Vinodita Bongarala, Liz Thomas Seattle Genetics, Inc., Bothell, WA

EP90SAS: A Clinical Trials Data Management Tool

-- ~ J ...

ODS TAGSETS - a Powerful Reporting Method

Active Server Pages Architecture

Statistics and Data Analysis. Common Pitfalls in SAS Statistical Analysis Macros in a Mass Production Environment

Once you have been assigned the role of Search Committee you will receive a system triggered to alert you.

Data Edit-checks Integration using ODS Tagset Niraj J. Pandya, Element Technologies Inc., NJ Vinodh Paida, Impressive Systems Inc.

SAS CLINICAL SYLLABUS. DURATION: - 60 Hours

Remodeling Your Office A New Look for the SAS Add-In for Microsoft Office

FormsNet3 sm Recipient Module Training Guide

Technical White Paper

Study Data Reviewer s Guide Completion Guideline

A Guided Tour Through the SAS Windowing Environment Casey Cantrell, Clarion Consulting, Los Angeles, CA

A TEXT MINER ANALYSIS TO COMPARE INTERNET AND MEDLINE INFORMATION ABOUT ALLERGY MEDICATIONS Chakib Battioui, University of Louisville, Louisville, KY

Advanced Data Visualization using TIBCO Spotfire and SAS using SDTM. Ajay Gupta, PPD

Advanced Visualization using TIBCO Spotfire and SAS

i2b2 User Guide University of Minnesota Clinical and Translational Science Institute

Florida Hospital Electronic Documentation PowerNote

SAS/AF FRAME Entries: A Hands-on Introduction

The Next Generation Smart Program Repository

Understanding and Applying the Logic of the DOW-Loop

A Table Production System That Meets the Challenges of Tomorrow Using SAS/AF Software and the Report Procedure

CHAPTER 7 Using Other SAS Software Products

Aerial iexchange Users Guide

Making the most of SAS Jobs in LSAF

HOW TO DEVELOP A SAS/AF APPLICATION

Your Guide to the FDA Annual Report

Easy CSR In-Text Table Automation, Oh My

Study Composer: a CRF design tool enabling the re-use of CDISC define.xml metadata

David S. Septoff Fidia Pharmaceutical Corporation

An Introduction to Compressing Data Sets J. Meimei Ma, Quintiles

Indenting with Style

The Path To Treatment Pathways Tracee Vinson-Sorrentino, IMS Health, Plymouth Meeting, PA

EZ-NET Authorization Submission

- a SAS/A~ Application

Applying ADaM Principles in Developing a Response Analysis Dataset

The Impossible An Organized Statistical Programmer Brian Spruell and Kevin Mcgowan, SRA Inc., Durham, NC

Below we ve highlighted several of the key points from the final guidance document.

Anatomy of a Merge Gone Wrong James Lew, Compu-Stat Consulting, Scarborough, ON, Canada Joshua Horstman, Nested Loop Consulting, Indianapolis, IN, USA

A Taste of SDTM in Real Time

Getting Started With Frame Technology Christopher A. Roper, Qualex Consulting Services, Inc., Hillsville, Va.

A CMC Reviewer s Perspective on the Quality Overall Summary. Arthur B. Shaw, Ph.D. FDA/CDER/ONDQA FDA DMF Expert June 15, 2010.

Material covered in the Dec 2014 FDA Binding Guidances

Module I: Clinical Trials a Practical Guide to Design, Analysis, and Reporting 1. Fundamentals of Trial Design

DSCI 325: Handout 9 Sorting and Options for Printing Data in SAS Spring 2017

Error Trapping Techniques for SCL. Andrew Rosenbaum, Trilogy Consulting, Kalamazoo, MI

Utilizing the VNAME SAS function in restructuring data files

PharmaSUG Paper AD03

Transcription:

Graphical User Interface to Report Generation in a Pharmaceutical Environment (Using SAS/AF Software FRAME Technology to Keep Your Head Above Water) Kenneth Salatka, PARKE-DAVIS Phannaceutical Research, Division of Warner-Lambert Company Nancy Brucken, PARKE-DAVIS Pharmaceutical Research, Division of Warner-Lambert Company ABSTRACT This paper describes the user interface developed at PARKE-DAVIS Pharmaceutical Research. This interface is used as part of a CANDA (Computer Assisted New Drug Approval). The system was developed with SAS/AF' FRAME software. Two important aspects of any New Drug Approval are listing tables that contain all patient information and summary tables that describe the safety and efficacy of the drug. We have developed a reporting system that allows any user to quickly produce and review' a production quality report (listing or summary table). This is an object orientated point and click" system that will execute SAS' Base software to produce the desired output. INTRODUCTION There are two main components to the reporting system developed at PARKE-DAVIS, the Graphical User Interface (GUI) and the production report generator. The report generator is the more complex component of the system and, therefore, was more difficult to program. The report generator was designed to be very flexible, which made the user interface easier to develop, One of our drug development programs has 19 different studies, with each study requiring 265 different production reports. A total of 5035 different production reports will be produced for 'that drug development program. A well organized system for producing these reports is essential. A Graphical User Interface is a tremendous advantage for people who review the clinical trial data. It allows them to run the tables and look at the output on their computer without having to print it. Furthermore, reviewers can use the GUI to select different subsets of data for analysis: a task which was previously difficult to accomplish. PRODUCTION REPORT GENERATOR Production report generation is accomplished using SAS' Base software. These reports are placed directly into the research report for the Food and Drug Administration (FDA) Without any modification. The reports must be well organized, have a neat appearance and most important, be absolutely correct. The SAS' system does an excellent j,ob of doing all this. It must be stressed that report generation is the most important part of the system. The report generation software was deliberately programmed to interface nicely with a GUI. Good parameter definition allows easy communication between the GUI and the report generation software. Most summary table programs need to produce reports based on patient type, visit type and patient qualification. All summary table programs must also produce reports by center (place of treatment) and some need to produce reports by diagnosis. Therefore, there are two basic activities that can be made to work with all tables: 1) subset data for patient type, visit type and patient qualification. 2) use a general macro program to organize the output to print each report by center or diagnosis when requested. A set of routines has been developed to make programming summary tables quick and consistent. There are three basic routines: 1) A string parsing routine that sets global macro variables for use later in the program. 2) A subsetting routine that produces a data set from the original without altering the original data set. 3) A routine that builds SAS' code into macro variables, which are used to produce tables by center and diagnosis. STRING PARSING The first routine, called RESTPAR, will parse a SAS' macro variable to get user input. When a program is executed the possible parameters can be entered as follows: ' program_name/i ICBE, TOC,DIAG,CEN,QCB,ASSOC 635

Where CBE - Patient type, TOC-Visit type, DIAG=by diagnosis, CEN=by center, QCB=patient qualification and ASSOC=associated. Not all of these parameters are necessarily entered at the same time. This list simply shows possible combinations. The three slashes after the program name will cause the user input data to be placed into a macro variable called JSMREST. The RESTPAR macro will parse JSMREST and then set six global macro variables: pttyppatient type, vst - visit type, bydiag - by diagnosis, bycent - by center, qutyp - patient qualification, aetype - adverse event type. These variables are available for use by any routine after RESTPAR is called. The valid values for the variables are: pttyp CBE (Clinically & Bacteriologically Evaluable) CLiN (Clinically Evaluable) MITT (Modified intent to treat) ITT (Intent to treat [Default] {All Patients)) vst TOC (Test of Cure) LT (Long-term FolloW-Up) blank (Everything [Default]) bydiag DIAG (By diagnosis) blank (across all diagnosis [Default]) bycent CEN (By Center) blank (across all centers [Default]) aetype ASSOC (Only associated Adverse Events) blank (all AE's) qutyp DQCB (Disqualified clinically and bacteriologically) DQC (Disqualified clinically) QCB (Qualified clinically and bacteriologically) QC (Qualified clinically) blank (all patients) If RESTPAR finds a string that does not "match its valid list of strings then an error message is printed in the output and the SAS' job is aborts. SUBSETTING THE DATA The second macro routine produces a temporary data set that is a subset of the original data set. This routine is called REPSUBO. The pttyp and the vst variables are used to perform the subsetting. A data set name must be passed to the macro routine. This data set will be used to create a new and smaller data set. When producing listing and summary tables for review, usually only one SAS' data set is analyzed at a time. Occasionally, some merging of other data sets is necessary. Obtaining the initial data set is usually a matter of using a SET statement with some standard subsetting, like getting the desired protocol. This is not a large part of the process but it is important and will only be performed once for each SAS' job. A routine called SETUP gets the initial data set that the program will use. Frequently, several production reports are run at the same time. These reports will almost always require the same initial SAS' data set. Therefore, we only want to create the initial data set once for the entire SAS' job. The subsetting routine will not modify the data set, but create a new one. If the setup routine was called with CUN as the desired data set then REPSUB would be called in the same way. For example; SETUP(CUN); RESTPAR; REP5UB(CLlN); 1* get initial data set. j /* get user input parameters. / r subset data based on user input. 'j The original data set called CUN will not be altered, but a new data set will be created called CUNQ. Another global macro variable called subs is created in REPSUB. It is set to blank if no subsetting is performed and set to Q if a subset is created. In our SAS' program the macro variable is always appended to the name of the d1lta set. That way if a subset was created it will be used, otherwise it will use the original data set. Example: DATACUN1; SET CUN&subs; IF CLASMT=l; The macro variable subs can assume two values: blank or Q. If blank, the original data set is used. If subs is set to Q, the subsetted data set is used. Thus, the SET statement will have one of two names; CLiN or CUNQ. If a program is executed later in the same job submission and the CUN data set is used again with no subsetting, SETUP will not have to recreate CUN. 636

If a later program requires subsetting, then REPSUB will overwrite CLlNQ thereby saving memory space. SASe CODE GENERATOR The third macro routine builds pieces of code that are run later in the program (A nice feature of interpretive languages). A routine called BYCENDIA sets a group of global macro variables based on what the user designated for diagnosis and center. These variables contain critical SAS' code to control how the SAS' procedures are executed. Example: PROC SORT DATA=CLlNl; &fsortby; These titles describe the visit type for an antiinfective study: Test of Cure Visit Long Tenn Follow-Up These titles describe the patient type: Clinically Evaluable Patients All Patients These titles describe how the report is organized: Across all Diagnosis By Diagnosis An example of a listing table and summary table is presented here. &fsortby may contain one of the following SAS' statements depending on the user input: BY PROT RXGRP PTNO; BY TRIAL PROT RXGRP PTNO; BY TRIAL DIAG RXGRP PTNO; BY DIAG RXGRP PTNO; (1 ) (2) (3) (4) Ifthe user wants a summary of the entire study, then the first BY statement would be substituted for &fsortby. If a summary of the entire study by center is desired then, the second BY statement would be used. The third BY statement is for summaries by center and diagnosis, while the fourth BY statement is by diagnosis only. ~L, r.f[-ol/ tdllu: 01; 'IlliI.'IIDI'l' cmjp: l =, I'T mdi' ldcm CLlJIUL IIll,11;[ m IJY &AL IESI'OOE (I~rnI 1 n F 11 YES turt 11 II F n '!ll5 turn. CDC. tdli Figure 1 Listing table report. SllSt!Pl1!:lJ'IV 1-----------------------1 IIISEI.M rtltllwp I!lmcnrl um.g1il'1 sa[ 1.11 C.11 I.lm) '.l1m) The BYCENDIA routine is called after RESTPAR has been called. The code in our SAS' program referring to center and diagnosis will have a macro variable to define how to handle center and diagnosis. BYCENDIA has the logic to identify what the user has chosen. This logic will call another macro that simply sets up all the necessary variables to be used in the program. Another macro program has been developed that will set the SAS' TITLE statements based on user input. This will cause the correct titles to be printed. It uses the four macro variables from the input parsing routine. This routine is called after SETTITLE. The titles are set for visit type, patient evaluability, and diagnosis. Examples of titles are shown here. CllrIloll l.i\ tilt 1'l;utnllllt 0:1 lir:o.pl.lct~~ JrlI\ouy Tnct WeetUI'S 5\1W1lJY ;1 Ctn!;l,lmnt IIe\IU:~t:II:r1S lrr' r.ei'eoe _.,d 1hIi~ullc UUIJI!Y.\ll Jfltifnts In..~tlt totfoqt>ryillonen<,_ I ll,q.r III ;( Pltlefltl; I, 1------------------------------1 I I curvall I c.arnll I I IcurolllmllO I loo}l;1 : IlIIO", 101 BID I BID I 'fiiw! I ~'II I ~-41 I.-., I 1-111, 0 1------------- ----- -----, " I, I J I, I. I, I. I \ I j.----.---.. -----.---..--------------.--------...---..- _--_ -- --1 IMttlMttlMt;I\1'1mit-1 M:;D:.i!:i1lin I II 11.1 II II 1.11 11 t_" lit 1------------------- --- _ _..., I I P!!\!J!lUm I" CI 11 1.11 II CI tl 6.!, 1-.. -------------------- - --- ----- - --- ------, 1''''\lI'I'fJJ'.. I llll.j1 11 l.ll II t.ll 11 j.j, j-----.. -..--.....-------.--.----..--.-------..-. - - -... - 1 I!IOS' And SU'lll!lIlq"'~ I Tfr1enldJ.ne 1 11 UI 11 UI,I 4.11 '1 \.lj 1--- ---_ _ _.. -..._-- -_ --_ _ _--...---_, III CI 11 l.ll II II \I U: I Dlc:m;tStAII~ 1:1 01 11 1.11 ei Ii II ~.,: 1----... _----_ _-_ -_ _--- --... ----- - - _-_ - : 1:11).\1 111t.l1 Illl.II!II!l.\1 t --- ----- - - ---- ---------... --. -.--_. -.- -.--... ----1.. " Figure 2. Summary table report. 637

SELECTION PROCESS: SAS/A~ Software FRAME Technology The previous section described the program flow and organization. This section describes the user interface. Making the table selection and choosing patient subsets is very easy for the user. One does not have to remember that CLiN means to retrieve only the clinically evaluable patients, or any of the other acronyms. Using the CUI, everything is presented clearly to the user without confusion. A "point and click" interface was developed to minimize keystrokes. The user selects a table and the additional parameters. The command line is built for the SAS job as described in the previous section. The job is then submitted for execution. This approach has worked very well. During development o~ a particular report the programmer does not necessarily want to use the point and click interface each time the program is to be executed. All the programmer has to do is submit the command line for execution. When the program development is finished, the program can be easily added to the interface as a selection for other users. The following SAS/AF FRAME screens show the basic flow. A consistent color scheme was implemented. Red and green can be "clicked". Red always cancels the current activity and takes the system back a screen. Creen always makes a selection or initiates a process. Blue is informational and cannot be modified. "Clicking" on blue does nothing. In figure 3. the user simply "clicks" the mouse cursor on the box indicating the type of report desired. If the Summary Tables box is "clicked", then screen shown in figure 4. will appear. A type of summary table report is chosen from the buttons at the top of the screen. The radio Figure 3. The first menu allows the user to 638

buttons in the middle allow the user to select patient subsets based on analysis and visit types. If the user "clicks" on the Clinical Outcome, Investigator button, then the screen shown in figure 5. appears, allowing the user to select the actual report. Once the user "clicks" Select Table and Generate Table, the report is produced and displayed to the user. The report can be printed or saved to a file. The Screen Control Language manual and the SAS/AF" Software FRAME Entry manual explain these concepts clearly. This paper demonstrates the practical application of various types of SAS" software. Code development to do this is relatively simple. The GUI development package provided by SAS" Institute is an excellent tool. Actual screen design and creation for the entire system took about 5 days. The SCL code determines which objects on the screen are activated. Parameters are set up and sent to task that is initiated. The details of this are simple but it would take up a great deal of space to explain them here. Figure 4. Shows the Summary report selection. 639

Figure S. Actual table name is chosen here. CONCLUSION The reporting system developed at PARKE-DAVIS has greatly helped those who have used it. This system will continue to be used and enhanced. GUI interfaces are being increasingly applied in pharmaceutical research. SAS/ AF" Software is an excellent tool for developing GUI interfaces. SAS, SAS Base, SAS/AF, SAS/AF Software FRAME Technology are registered trademarks or trademarks of SAS Institute Inc. Other brand and product names are registered trademarks or trademarks of their respective companies. 640