Beruflich Dokumente
Kultur Dokumente
A Case Study
CROS NT srl Contract Research Organisation Clinical Data Management Statistics
Dr. Paolo Morelli, CEO Dr. Luca Girardello, SAS programmer
AGENDA
Introduction
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
Making certain that the program does what it is supposed to do, producing a documented evidence of this
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
Interactive Process
Interactive Process
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
Good specs & Good standards & Good training = Good programming results
A Case Study
PROC COMPARE
Compare original derived datasets versus validation derived datasets
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.
Value Comparison Results for Variables _________________________________________________________ || AGE (years) || Base Compare pt || age age Diff. % Diff _______ || _________ _________ _________ _________ || 201 || 41 40 -1.0000 -2.4390 _________________________________________________________
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.
Compare of outputs
Subject ID Gender Age Race _______________ _______ ____ _____ 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 M M F M M F M M M M M M M F M M 50 34 58 64 57 64 39 55 41 44 32 37 61 56 34 34 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3
Specification 14%
Display Variables 14%
Examples of Errors
Layout Writing of a note in table
Incorrect: Percentages are calculated number of patients Correct: Percentages are calculated on number of patients
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 interpretation of specification
Note of a table (in SAP): Note 1: Only patients with all value for primary analysis are included in the table. In SAS Program: In the table, all patients are included