E N D
1. Programming Validation Presented By
Deb Goodfellow, ASG Inc., Cary, NC
2. 2
3. 3 Why do we need validation? Need for accuracy
Quality deliverable
Errors in programming
Different interpretations of requirements
4. 4 Validation Process For output, check spelling, layout, format, etc.
For datasets, variables, formats, lengths, labels, etc.
5. 5 Useful and necessary tools for validation CRF
Protocol
SAP
Output shells
Specs
6. 6 First steps Check the specs, SAP, CRF to make sure they apply and do not conflict with each other
Make sure you have the information required to do the validation
7. 7 Visual Check Does the output match the shell
Are there misspellings in headers, footnotes, titles
Is the alignment of columns proper
Are any of the data being truncated
Are the data formatted correctly
8. 8 Spot checking In some companies, there is no dataset to compare for output.
Listings may have hundreds of pages
Get clarification on which specific values need to be checked
Parallel program and visually check the results
9. 9 Parallel Programming Independence is necessary
Determine which variables are required either by specs or ??
proc compare the datasets
10. 10 Proc compare results All information in the proc compare output is important
Note: no unequal values were found. It passes???
Using ID in proc, we match. It passes?
11. 11 One method for double check We could visually look at all the information in the proc compare results
Easy to miss something with all the information given
Very time consuming each time you need to re-run
12. 12 A programming method SASHELP library
Dataset VCOLUMN provides information about each dataset
Do parallel programming applying the correct formats, labels, lengths, etc according to specs
Add a data step to compare
13. 13 Code Proc sql noprint;
Create table production as select distinct
Name, length, label, format, informat
From sashelp.vcolumn where
Memname = DATAX and libname = ADS
Order by Name, length, label, format, informat;
Create table validation as select distinct
Name, length, label, format, informat
From sashelp.vcolumn where
Memname = DATAX and libname = WORK
Order by Name, length, label, format, informat;
Quit;
14. Check Data check;
merge production(in=a) validation(in=b);
by name length label format informat;
if a and not b then ds = prod;
else if b and not a then ds = val;
else delete;
Run;
15. 15 Overview Validation is more than doing a simple proc compare and getting No unequal values were found
The more we can check, the more assured we can be of having a quality deliverable
Use our programming skills whenever possible to save time and mistakes
16. 16 Remember There is absolutely no pressure. If you miss something, chances are good that the FDA will find it!