Using SAS Metadata as a Key Performance Indicator!

Size: px
Start display at page:

Download "Using SAS Metadata as a Key Performance Indicator!"

Transcription

1 Using SAS Metadata as a Key Performance Indicator! Vincent J. Amoruccio, Alexion Pharmaceuticals, Inc., Cheshire, CT ABSTRACT Key Performance Indicators (KPIs) help organizations track progress towards goals. SAS Metadata can be used as a platform neutral KPI to help your company do more, faster and better! The concept of metadata is often misunderstood since the term metadata is ambiguous. However, data about our data can be used as KPIs to quantifiably track and measure the success of analytical projects. The purpose of this paper is to show how to use SAS objects as metadata and track almost every aspect of your analytical deliverables. It will specifically address metadata for code reviews, check logs, and validation compliance. Finally, it will explain how to read in data from operating systems and create a utility to understand the status of a programming project. INTRODUCTION Alexion is a global biopharmaceutical company that combines groundbreaking science with a steadfast commitment to meeting the needs of patients living with severe, life-threatening and often ultra-rare diseases. The goal of a biopharmaceutical is to obtain approval from regulatory agencies such as the FDA and to license their drugs as medications. The goal of Alexion is to submit applications to regulatory agencies and obtain approval to use their drug as a medication. The goal of the Clinical and Statistical Programming group at Alexion is to successfully develop the statistical analysis in the form of datasets, tables, listings, and figures required for a regulatory submission. We are a key stakeholder in Alexion s success and have identified tools that quantifiably measure progress towards our success. KEY PERFORMANCE INDICATORS Key performance indicators, also known as KPIs, are a quantifiable performance measurement tools that organizations use to evaluate success of a particular goal. The concept of KPIs is often misunderstood since they have a history of being overly complicated. It is important to predefine what performance measurements are useful to the success of a project and how these measurements can be simply identified and reported. KPIs for SAS programming can be classified into four categories: quantitative, qualitative, process, and output. Qualitative indicators are those that can t be measured and are not presented as a number. They measure distinctive characteristics, attributes, and qualities. Quantitative indicators are those that can be measured as a number. Process indicators represent the efficiency or the productivity of the process. Output indicators reflect the outcome or results of the process activities. METADATA The concept of metadata is often misunderstood since the term metadata is ambiguous. Bretheron & Singley distinguish between two distinct classes: structural/control metadata and guide metadata. According to them, structural metadata are used to describe the structure of computer systems such as tables, columns and indexes. Guide metadata are used to help users find specific items and are usually expressed as a set of keywords in a natural language. While metadata is purely data about data, the metadata used in this paper is a combination of both. We will use data to define the structure of other data, specifically the attributes of data sets, variables, and parameters; however, we will also use data to help end users find specific data. A platform is the underlying hardware or software for a computing system. A metadata platform is the underlying software or file type to store metadata. SAS is a powerful system of software products and has the ability to convert a wide array of data types into SAS data. SAS can easily read files from Microsoft Excel, Microsoft Access, dbase, Lotus, and other delimited files (tab, comma, etc.). Depending on how the metadata are used in SAS, there might be limitations from each platform. If metadata are going to be dynamically accessed by users, SAS, or both, file-access permissions must be taken into consideration. Microsoft Excel files and various delimited files, such as CSV and TXT files, will be problematic if they need to be accessed simultaneously by multiple users or programs. These file types are usually single-access files where only one user or program may access it at time. 1

2 Metadata, or data about data, is platform neutral as long as the data it stores can be clearly identified by rows and columns. If this is true, then the platform storing the data is irrelevant and the metadata should be easily hosted by any other platform other than the one it is stored in. The metadata system at Alexion was initially created using Microsoft Excel and was transformed into Microsoft Access since Microsoft Access is an easy to use relational database. The concepts of metadata described in this paper can be established using any platform which stores data in a row-by-column structure. I highly recommend a relational database such as Microsoft Access since it can be accessed by multiple users, remain open while being accessed by SAS, and use structured query language to join and query data. Using other platforms, such as Microsoft Excel or other delimited files (tab, comma, etc.), will suffice, however it will require more SAS programming code to join and query data. HARNESSING METADATA TO USE AS KPI The goal of Clinical and Statistical programming is to develop and validate programs that create datasets, tables, listings, and figures for a regulatory submission. The measure of success for each of these outputs is determined by the cleanliness of the log, the status of independent programming, and compliance with SOPs. Each of these are measurable quantitatively and qualitatively. VALIDATION METADATA AS A KPI The pharmaceutical industry is governed by various rules and regulations by regulatory agencies. The only requirement for validating SAS programs and output is that validation must occur. The most common method for validating SAS output is independent programming. Independent programming is an objective approach whereby a second program is written by an independent programmer using written specifications. We use independent programming as the primary approach to validating all analysis output at Alexion. The COMPARE procedure is used to compare the contents of two SAS data sets, selected variables in different data sets, or variables within the same data set. It identifies matching variables with different values, the number of observations in common, the number of variables in common, differences in attributes of common variables, and a comparison of the values of matching observations. Validation metadata can be easily created from the COMPARE procedure using the Output Delivery System, also known as ODS. ODS is most popular for its ability to include or exclude select components of any SAS procedure output and converts them into more condensed, understandable, and reportable data. ODS breaks procedures down into sections. Each section is a set of raw data defined by SAS. These data sets store the information that is displayed in the procedure output and can be used to summarize data. tracing is listed below: Figure 1 RESULTS window displaying the COMPARE output object. After a procedure is run, the RESULTS window will display a list of the output sections produced by the procedure. Each section is called an output object and can be transformed into a data set. The procedure s components will become the observations and variables in the data set. Figure 1 is a RESULTS window listing four output objects for the COMPARE procedure: Datasets, Details, Summary, and Differences. The listing in the RESULTS window will match the sections of output generated by the procedure. The RESULTS window can be hidden to increase the working space on your computer monitor; however, when using ODS for the first time, it might be helpful to leave the RESULTS window open. The best way to visualize the output objects generated by a procedure is to view the output in the RESULTS window. ODS identifies the output objects in a way similar to the RESULTS window through a process called tracing. The general syntax for ods trace on; procedure syntax; ods trace off; To use tracing to identify the output objects for the COMPARE procedure, we submit the code below on the adverse events dataset. 2

3 ods trace on; proc compare base = dev.adae comp = val.adae listall; ods trace off; Figure 2 Tracing results from a section of the log for the COMPARE procedure Output Added: Name: CompareDatasets Label: Datasets Data Name: BatchOutput Path: Compare.CompareDatasets Output Added: Name: CompareDetails Label: Details Data Name: BatchOutput Path: Compare.CompareDetails Output Added: Name: CompareSummary Label: Summary Data Name: BatchOutput Path: Compare.CompareSummary Output Added: Name: CompareDifferences Label: Differences As a result of the tracing, information about each of the output objects will be generated in the log. SAS will still generate a listing of the procedure s output objects in the RESULTS window. Information that is not captured in the RESULTS window will be found in the log. Figure 2 shows the results of tracing the COMPARE procedure from a section of the log. The tracing results provide the Name, Label, Data Name, and Path for the output objects. For now, we will use the name of the output object. This provides the information to turn the output objects from the COMPARE procedure into metadata about the validation status of a particular SAS output. The output objects we are primarily concerned with are the Data Set Summary ( comparedatasets ) and the Observation Summary ( comparesummary ). Data Name: BatchOutput The Data Set Summary output object Path: Compare.CompareDifferences provides four useful pieces of metadata: data set name, modification date, number of variables, and number of observations for both the BASE and COMPARISON dataset. We use this at Alexion to ensure the BASE library is not a temporary library and the number of variables and observations are identical between both BASE and COMPAR- ISON datasets. The Observation Summary output object provides two useful pieces of data: the number of observations in common and the number of observations unequal. A metadata set containing one record per output can easily be created to describe the validation status of each output. We begin with COMPARE procedure and ODS OUTPUT statements. The ODS output statements produce SAS datasets from output objects we specify. We previously identified the names of the output objects comparedatasets and comparesummary using the TRACE option. In both of these datasets we kept only those records with data (TYPE = d and BATCH ne ). proc compare base = dev.adae comp = val.adae listall; ods output comparedatasets = comparedatasets1 (where = (type = "d" and batch ne '')); ods output comparesummary = comparesummary1 (where = (type = "d" and batch ne '')); The Data Set Summary output object ( comparedatasets ) contains three records; one for the BASE dataset, one for the COMPARISON dataset, and one for the number of common variables between them. The first DATA step identifies three datasets for which variables will be outputted. We create a dataset called BASE which contains the base dataset name ( base ), the date and time the dataset was modified ( base_dttm ), the number of variables in the base dataset ( base_nvar ), and the number of observations in the base dataset ( base_nobs ). We do the same for the comparison dataset but change the prefixes of the variables to comp. Finally, we create the dataset COMMONVARS which derives a variable to report the number of variables in common between the two datasets. 3

4 data base (rename = (dat = base dttm = base_dttm nvar=base_nvar nobs = base_nobs)) comp (rename = (dat = comp dttm = comp_dttm nvar=comp_nvar nobs = comp_nobs)) commonvars; length dat $50.; set comparedatasets1; batch = cats(batch); Since we restricted the metadata to records with data, we use the automatic variable _N_ to help select the records to be outputted. This automatic variable is initially set to 1. Each time the DATA step loops past the DATA statement, the variable increases by 1. It represents the number of times the DATA step re-iterated, but for our purposes it is used to output the records into a metadata set. The first record contains data about the BASE dataset and the second record contains data about the COMPAR- ISON dataset. The variable batch captures the text from the procedure output. We use the text in this variable to create the variables we need using the SCAN function with space as a delimiter. if _n_ in (1, 2) then do; dat = cats(scan(batch, 1, '')); dttm = input(scan(batch, 2, ''),datetime20.); nvar = input(scan(batch, 4, ''),best.); nobs = input(scan(batch, 5, ''),best.); if _n_ = 1 then output base; if _n_ = 2 then output comp; The third record contains the Variable Summary output. We use the SCAN function again, however, a period is used as the delimiter. The period is striped before converting it to a numeric variable with the INPUT function. if _n_ = 3 then do; commonvars = input(compress(scan(batch, -1,''),'.'),best.); output commonvars; We use the same approach to convert the Data Set Summary output objects into metadata. The ODS output statement of the COMPARE procedure restricted the metadata to only keep records with data. We use the automatic variable _N_ again and only keep records 5 and 12. These records provide data about the number observations in common and the number of observations unequal, respectively. data commonnobs nobsuneq; set comparesummary1; if _n_ = 5 then do; commonnobs = input(compress(scan(batch, -1,''),'.'),best.); output commonnobs; if _n_ = 12 then do; nobsuneq = input(compress(scan(batch, -1,''),'.'),best.); output nobsuneq; After splitting the COMPARE procedure output objects into separate SAS datasets, we complete the validation metadata by combining the data together. data compare; merge base comp commonvars commonnobs nobsuneq; keep base: comp: common: nobsuneq; 4

5 Validation metadata are one record per SAS output. Validation metadata are a critical check to ensure all components of the submission package have been independently programmed and pass the validation procedures. This is a critical KPI of the success of a validated and SOP compliant deliverable. The TABULATE procedure displays descriptive statistics in tabular format and is one way to summarize data. proc tabulate data=compare missing; class nobsuneq base; tables nobsuneq*base, (n pctn)/ rts = 100; Figure 3 Validation Metadata Summary of COM- PARE Output by BASE Name No. Obs Unequal Base Dataset N % 0 SDTM.AE SDTM.CM SDTM.DA SDTM.DM SDTM.DV SDTM.EX SDTM.LB SDTM.PC SDTM.PE SDTM.TA SDTM.TE SDTM.MH SDTM.SUPPXR Figure 3 shows a sample of output from the TABULATE procedure above. The metadata provides information about each BASE dataset from a particular library. We can use these metadata to quickly assess which outputs have successfully passed validation. All datasets must have no observations unequal. Additionally, the number of variables and the number of observations in both BASE and COMPARISON datasets must be the same. At Alexion, we create derived variables to categorize these findings further and continually use validation metadata as a KPI. LOG METADATA AS A KPI A SAS log ( log ) is a record of the execution of each statement in a SAS program. Original program statements are identified by line numbers along with messages from SAS about errors, warnings, or other useful notes. SAS performs error processing during both the compilation and the execution phases. An error is a clear indication that something in the SAS program or the data is incorrect. Errors must not be allowed in the logs of any SAS programs. A majority within the SAS programming community agree that avoidable warnings or notes in the log are not acceptable. These messages are confusing and often lead to errors. If any message in the log is avoidable programmers should program around it. Alexion Standard Operating Procedures ( SOPs ) prohibit errors, and avoidable warnings and notes. Our SOP specifically identifies 10 notes which are avoidable and degrade the integrity of the program. The cleanliness of our logs is determined by the presence of errors, warning, and the prohibited notes. It is converted into metadata and used as a KPI. Log metadata can be created in one simple DATA step to report the number of errors, warnings, and nonpermissible note. The first step is to identify the file path where the logs are stored using a FILENAME statement. The FILENAME statement associates a SAS file reference ( FILEREF ) with an external file or a logical file device. It is a powerful statement which can be used to convert any SAS file type such as logs (.log ), lists (.lst ), and programs (.sas ) into searchable data. Wild cards, such as the asterisk and question mark can be used in either the external filename or file extension for matching input filenames. The code below specifies a FILEREF and uses the asterisk as a wild card to identify all log files in a particular directory. filename logs "C:\Users\amorv1982\NESUG\Programs\ANALYSIS\Tables\*.log"; The first step uses the INFILE statement to read in the logs. The INFILE statement specifies an external file to read with and then uses an INPUT statement to bring in the log files. The filename variable is used to determine the file being read. The binary variable eov is created by SAS and is set to 1 on the first record of a file being set in through a series of other files. The INPUT statement describes the arrangement of values in the input data record and assigns input values to the corresponding SAS variables. 5

6 data chklog; length filename $256 progname $32; retain progname; infile logs filename=filename eov=eov length=l; input logline $varying256. l; Next, we use the filename of the first record to create a variable to store the program name. if _n_ eq 1 or eov then do; progname = scan(filename,-2,'.\'); eov = 0; The log will have program statements as well as SAS messages. We use the SCAN function to pick off only those log lines containing the SAS messages. The SCAN function returns the n th word from a character string. Using a positive counter we scan the log line from left to right using colon as the delimiter. if index(logline,':') gt 0 then type = scan(logline, 1, ':'); else if index(logline,':') =0 then type = ''; The sample code below shows a few SAS NOTES we check for at Alexion using the INDEX function. This function searches a character expression for a string of characters, and returns the position of the string s first character for the first occurrence of the string. We then use the CATX function to remove leading and trailing blanks, insert a semicolon as a delimiter and create a concatenated variable discrep categorizing the NOTE messages. if type eq "NOTE" then do; if index(upcase(logline),'uninitialized') gt 0 then r1= "Uninitialized"; if index(upcase(logline),'converted') gt 0 then r2= "Converted"; if index(upcase(logline),'invalid') gt 0 then r3 = "Invalid"; if index(upcase(logline),'missing') gt 0 then r4 = "Missing"; discrep = catx(";", r3, r4); The final step in this data set is to keep only ERROR and WARNING messages or those NOTES identified using the INDEX function. if type in ("ERROR", "WARNING") or (type eq "NOTE" and discrep ne ''); The data about the logs, also known as log metadata, can be summarized and presented as a KPI about the cleanliness of the logs through the TABULATE procedure. proc tabulate data=chklog missing; class progname type discrep; tables progname*type*discrep, (n pctn)/ rts = 100; Figure 4 shows a sample of the output from the TABULATE procedure above. These metadata provide information about each programs log in a particular submission. At Alexion, we do not allow ERRORs in the log and we do not allow WARNINGS in the logs unless they are unavoidable such as those from statistical procedures. Additionally, we have a select list of NOTES which we do not allow unless they are proven to be unavoidable. Log metadata are used as a KPI to provide an indication of the cleanliness of the logs. We anticipate no findings as the best-case scenario and document any deviations from this. 6

7 Figure 4 Log Metadata Summary of Log Notes by Program Name Program Name Category Discrepancy N % eff-chg-tto WARNING t6mwt WARNING tdexa WARNING texpext ERROR texpext NOTE Stopped texpext WARNING thhd WARNING tpd24 WARNING tpdvis NOTE Missing tpdvis WARNING tpft WARNING tstatlabchgbase NOTE Missing tstatlabchgbase WARNING PROGRAM METADATA AS A KPI A SAS Program is a group of DATA steps or procedure steps, used in any combination, to guide SAS through a series of processes to read, transform, and output data. The SAS program can be easily turned into metadata similar to how we turned the SAS Log into metadata. Alexion has an SOP requiring good programming standards, not practices. These standards make our programs manageable and maintainable. We convert our SAS programs into metadata and check them for compliance with our SOPs through a process known as code review. In the example below, we convert SAS programs into searchable text and look for two items from our good programming standards. The results of this search are then converted into metadata and used as KPI about code review. In the first step, we use the FILENAME statement to associate a SAS file reference ( FILEREF ) with SAS programs. We will again use a wild card statement to read in all SAS programs found in a particular location. filename progs "C:\Users\amorv1982\NESUG2013\Programs\*.sas"; Once the FILEREF has been created, the first step is to convert the programs into searchable text using the IN- FILE and INPUT statement. The next piece of code is to create a variable to identify the program name using the filename of the first record from the program s FILEREF. data codervw; length filename $256 progname $32; retain progname; infile progs filename=filename eov=eov length=l; input progline $varying256. l; if _n_ eq 1 or eov then do; progname = scan(filename,-2,'.\'); eov = 0; The two conditional if/then loops provide a straight forward example of two items from Alexion s code review program however, our programming standards describe many more conventions to check for. This sample code is intended to demonstrate how your SAS program can be converted into searchable text data. In this first straight forward example, we are searching for the use of a library reference, also known as a LIBNAME. Our SOP only allows LIBNAMES to be used in initialization programs. Next, we search the end of macros and flag cases where the macro name is not specified on the MEND statement. Providing the name of the macro on the MEND statement makes the program more manageable. if substr(left(upcase(progline)),1,7)='libname' then do; 7

8 violation="library references found."; output; if substr(left(upcase(compress(progline))),1,6)='%mend;' then do; violation="mend Statement must include macro name."; output; From this, data about programming conventions, also known as code review metadata, can be summarized through the TABULATE procedure and presented as a KPI about the level of compliance with the SOP. proc tabulate data = codervw out = test; class violation progname; tables violation*progname, (n pctn) / rts =100; Figure 5 Code Review Metadata Summary of SOP Violations SOP Violation Program N % Library references found. compare MEND Statement must include macro name. chklog compare from this. Figure 5 shows a sample of the output from the TABULATE procedure above. These metadata provide information about each program s compliance with programming standards in a particular submission. We anticipate no findings as the bestcase scenario and document any deviations OPERATING SYSTEM METADATA AS A KPI An operating system ( O/S ) is a collection of software that supports a computer s basic functions. Alexion uses a Microsoft Windows 2008 R2 O/S and SAS software. Information about the SAS files is stored in a file manager application that is provided by Microsoft and referred to as Windows Explorer. Windows explorer provides the name, location, modification date/time, and size of all files stored on it. Figure 6 Results of PIPE Command Directory of C:\Users\amorv1982\NESUG2013\Programs 07/06/ :43 PM <DIR>. 07/06/ :43 PM <DIR>.. 07/03/ :00 PM <DIR> ANALYSIS 07/03/ :31 AM 63,184 chklog.log 07/03/ :31 AM 3,370 chklog.lst 07/05/ :03 PM 2,514 chklog.sas 07/06/ :25 PM 1,329 codervw.sas 07/05/ :43 PM 1,806 compare.sas 07/06/ :43 PM 1,329 pipe.sas 07/03/ :00 PM <DIR> SDTM Directory of C:\Users\amorv1982\NESUG2013\Programs 6 File(s) 73,532 bytes 4 Dir(s) 495,282,667,520 bytes free We begin again with a FILENAME statement but now include a PIPE command. PIPE commands enable you to capture data from a program external to SAS without creating an intermediate data file. Initializing this command and reading the file into a dataset, creates metadata about the directory specified in the FILENAME statement. Figure 6 shows the crude results of using the FILENAME statement with the PIPE command. The metadata set contains one text variable which can be searched to create other metadata. Since we are only concerned with pulling in metadata about our SAS programs, we use the INDEX function to only keep those records with.sas as a file extension. 8

9 filename path1 pipe "dir q ""C:\Users\amorv1982\NESUG2013\Programs"" 2>&1'"; data pipe1; infile path1 firstobs = 5 truncover; grepline $300.; if index(grepline, ".SAS") > 0; We use the sub-strand function, known as SUBSTR, to convert the date and time of the file into a single variable. The sub-strand function returns a substring of a text variable. We then use SCAN function to create a variable to store the file name. dttm =input(substr(grepline,1,20),mdyampm25.2); flnme = upcase(scan(substr(grepline,40),1,".")); format dttm mdyampm25.2; These metadata are not a powerful KPI alone, but can be used in conjunction with other metadata to enhance its value as a KPI. THE KPI UTILITY The goal of Clinical and Statistical Programming is to develop and validate the programs that create datasets, tables, listings, and figures for a regulatory submission. The measure of success for each of these outputs comes from a cleanliness of the SAS log, the status and independent programming results of COMPARE procedure output, and compliance with our SOPs. Each of these are quantifiable and can be measured through our validation metadata, log metadata, and code review metadata. Combining them with our O/S metadata, we can build a single dataset by merging the metadata sets together. A simple REPORT procedure can then be used to provide the overall status of a group of a programs used for a submission. To enhance the process of identifying records which are ready to be submitted, TRAFFIC LIGHTING is used. This is a way of using data values conditionally to visually format your report. ods tagsets.excelxp path=" C:\Users\amorv1982\NESUG2013\Output file="kpi.xml" style=xlsansprinter; options pageno=1 number orientation = landscape; ods tagsets.excelxp options( sheet_interval="none" sheet_name="kpi" width_fudge='1' default_column_width = "20" autofilter='all' autofilter_table = '1' frozen_headers = '1' frozen_rowheaders = '2' ); proc report data=out.kpi nowd headline headskip spacing=3 split='*' missing ls=161 ps=42 style(column) = [just=center font_face = courier] style(header) = [just=center font_face = courier font_weight = bold]; column _all_; define Pass / display; compute Pass; if upcase(pass) = "NO" then call define (_row_, 'style', 'style={background = light red}'); if upcase(pass) = "YES" then call define (_row_, 'style', 'style={background = light green}'); 9

10 endcomp; ods tagsets.excelxp close; ods listing; Figure 7 is a simple example of the output from our KPI Utility. In this example, we can see the programs on records two and four are not ready for submission. The program on record two is not ready because the O/S metadata discovered the development output was updated but not validated. The program on record four is not ready because it problems were identified in the log metadata, code review metadata, and the validation metadata. Figure 7 KPI Utility CONCLUSIONS There are many ways for us to extract information directly from our SAS objects and summarize the information. Key Performance Indicators (KPIs) help organizations track progress towards their goals by allowing them to summarize information about processes and objects. Each SAS programmer has a different goal depending on their organization. Data about their SAS logs, lists, programs and output can be easily extracted to summarize and track their progress towards their goal. REFERENCES: Amoruccio, Vincent. "Using Procedure-Based ODS Data Components in Statistical Reporting." Paper Print. < Amoruccio, Vincent. "The Y2K17 Bug! Using Metadata to Respond to PDUFA V Requirements." DS12Print. < Amrouccio, Vincent. "Could have, Would have, Should have! Adopting Good Programming Standards, Not Practices, to Survive An Audit." IB04Print. < IB04.pdf>. "Base SAS Glossary." N.p.. Web. 6 Jul < DelGobbo, Vincent. "Traffic Lighting Your Multi-Sheet Microsoft Excel Workbooks the easy way with SAS." Paper 153. Print. Howard, Neil. "Beyond Debugging: Program Validation." Paper 58-28Print. < 10

11 Newhouse, Rusell. "Validation and SAS Programming: Benefits of Using The System Life Cycle Method." n.d. n. page. Print. < Truong, Sy. "Effective Ways of Validating SAS Programs." Paper HW07Print. < ACKNOWLEDGMENTS I would like to thank Daniel Amoruccio for his unbounded support in making this paper possible. SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. indicates USA registration. Other brand and product names are registered trademarks or trademarks of their respective companies. Acknowledgments like the two above go after your references. You should acknowledge the trademarks of the products discussed in your paper. You can also use this section to thank any individuals or organizations that assisted you in a substantive manner. CONTACT INFORMATION Your comments and questions are valued and encouraged. Contact the author at: Vincent J. Amoruccio Alexion Pharmaceuticals 352 Knotter Drive Cheshire, CT (203) AmoruccioV@alxn.com 11

INTRODUCTION TO SAS HOW SAS WORKS READING RAW DATA INTO SAS

INTRODUCTION TO SAS HOW SAS WORKS READING RAW DATA INTO SAS TO SAS NEED FOR SAS WHO USES SAS WHAT IS SAS? OVERVIEW OF BASE SAS SOFTWARE DATA MANAGEMENT FACILITY STRUCTURE OF SAS DATASET SAS PROGRAM PROGRAMMING LANGUAGE ELEMENTS OF THE SAS LANGUAGE RULES FOR SAS

More information

Base and Advance SAS

Base and Advance SAS Base and Advance SAS BASE SAS INTRODUCTION An Overview of the SAS System SAS Tasks Output produced by the SAS System SAS Tools (SAS Program - Data step and Proc step) A sample SAS program Exploring SAS

More information

%check_codelist: A SAS macro to check SDTM domains against controlled terminology

%check_codelist: A SAS macro to check SDTM domains against controlled terminology Paper CS02 %check_codelist: A SAS macro to check SDTM domains against controlled terminology Guido Wendland, UCB Biosciences GmbH, Monheim, Germany ABSTRACT The SAS macro %check_codelist allows programmers

More information

PharmaSUG Paper PO12

PharmaSUG Paper PO12 PharmaSUG 2015 - Paper PO12 ABSTRACT Utilizing SAS for Cross-Report Verification in a Clinical Trials Setting Daniel Szydlo, Fred Hutchinson Cancer Research Center, Seattle, WA Iraj Mohebalian, Fred Hutchinson

More information

How to write ADaM specifications like a ninja.

How to write ADaM specifications like a ninja. Poster PP06 How to write ADaM specifications like a ninja. Caroline Francis, Independent SAS & Standards Consultant, Torrevieja, Spain ABSTRACT To produce analysis datasets from CDISC Study Data Tabulation

More information

SDTM Attribute Checking Tool Ellen Xiao, Merck & Co., Inc., Rahway, NJ

SDTM Attribute Checking Tool Ellen Xiao, Merck & Co., Inc., Rahway, NJ PharmaSUG2010 - Paper CC20 SDTM Attribute Checking Tool Ellen Xiao, Merck & Co., Inc., Rahway, NJ ABSTRACT Converting clinical data into CDISC SDTM format is a high priority of many pharmaceutical/biotech

More information

Validation Summary using SYSINFO

Validation Summary using SYSINFO Validation Summary using SYSINFO Srinivas Vanam Mahipal Vanam Shravani Vanam Percept Pharma Services, Bridgewater, NJ ABSTRACT This paper presents a macro that produces a Validation Summary using SYSINFO

More information

SAS Online Training: Course contents: Agenda:

SAS Online Training: Course contents: Agenda: SAS Online Training: Course contents: Agenda: (1) Base SAS (6) Clinical SAS Online Training with Real time Projects (2) Advance SAS (7) Financial SAS Training Real time Projects (3) SQL (8) CV preparation

More information

SAS Application to Automate a Comprehensive Review of DEFINE and All of its Components

SAS Application to Automate a Comprehensive Review of DEFINE and All of its Components PharmaSUG 2017 - Paper AD19 SAS Application to Automate a Comprehensive Review of DEFINE and All of its Components Walter Hufford, Vincent Guo, and Mijun Hu, Novartis Pharmaceuticals Corporation ABSTRACT

More information

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

The Benefits of Traceability Beyond Just From SDTM to ADaM in CDISC Standards Maggie Ci Jiang, Teva Pharmaceuticals, Great Valley, PA PharmaSUG 2017 - Paper DS23 The Benefits of Traceability Beyond Just From SDTM to ADaM in CDISC Standards Maggie Ci Jiang, Teva Pharmaceuticals, Great Valley, PA ABSTRACT Since FDA released the Analysis

More information

An Efficient Tool for Clinical Data Check

An Efficient Tool for Clinical Data Check PharmaSUG 2018 - Paper AD-16 An Efficient Tool for Clinical Data Check Chao Su, Merck & Co., Inc., Rahway, NJ Shunbing Zhao, Merck & Co., Inc., Rahway, NJ Cynthia He, Merck & Co., Inc., Rahway, NJ ABSTRACT

More information

CC13 An Automatic Process to Compare Files. Simon Lin, Merck & Co., Inc., Rahway, NJ Huei-Ling Chen, Merck & Co., Inc., Rahway, NJ

CC13 An Automatic Process to Compare Files. Simon Lin, Merck & Co., Inc., Rahway, NJ Huei-Ling Chen, Merck & Co., Inc., Rahway, NJ CC13 An Automatic Process to Compare Files Simon Lin, Merck & Co., Inc., Rahway, NJ Huei-Ling Chen, Merck & Co., Inc., Rahway, NJ ABSTRACT Comparing different versions of output files is often performed

More information

3N Validation to Validate PROC COMPARE Output

3N Validation to Validate PROC COMPARE Output ABSTRACT Paper 7100-2016 3N Validation to Validate PROC COMPARE Output Amarnath Vijayarangan, Emmes Services Pvt Ltd, India In the clinical research world, data accuracy plays a significant role in delivering

More information

Improving Metadata Compliance and Assessing Quality Metrics with a Standards Library

Improving Metadata Compliance and Assessing Quality Metrics with a Standards Library PharmaSUG 2018 - Paper SS-12 Improving Metadata Compliance and Assessing Quality Metrics with a Standards Library Veena Nataraj, Erica Davis, Shire ABSTRACT Establishing internal Data Standards helps companies

More information

Implementing external file processing with no record delimiter via a metadata-driven approach

Implementing external file processing with no record delimiter via a metadata-driven approach Paper 2643-2018 Implementing external file processing with no record delimiter via a metadata-driven approach Princewill Benga, F&P Consulting, Saint-Maur, France ABSTRACT Most of the time, we process

More information

Exporting Variable Labels as Column Headers in Excel using SAS Chaitanya Chowdagam, MaxisIT Inc., Metuchen, NJ

Exporting Variable Labels as Column Headers in Excel using SAS Chaitanya Chowdagam, MaxisIT Inc., Metuchen, NJ Paper 74924-2011 Exporting Variable Labels as Column Headers in Excel using SAS Chaitanya Chowdagam, MaxisIT Inc., Metuchen, NJ ABSTRACT Excel output is the desired format for most of the ad-hoc reports

More information

Program Validation: Logging the Log

Program Validation: Logging the Log Program Validation: Logging the Log Adel Fahmy, Symbiance Inc., Princeton, NJ ABSTRACT Program Validation includes checking both program Log and Logic. The program Log should be clear of any system Error/Warning

More information

Lex Jansen Octagon Research Solutions, Inc.

Lex Jansen Octagon Research Solutions, Inc. Converting the define.xml to a Relational Database to Enable Printing and Validation Lex Jansen Octagon Research Solutions, Inc. Leading the Electronic Transformation of Clinical R&D * PharmaSUG 2009,

More information

Creating and Executing Stored Compiled DATA Step Programs

Creating and Executing Stored Compiled DATA Step Programs 465 CHAPTER 30 Creating and Executing Stored Compiled DATA Step Programs Definition 465 Uses for Stored Compiled DATA Step Programs 465 Restrictions and Requirements 466 How SAS Processes Stored Compiled

More information

PDF Multi-Level Bookmarks via SAS

PDF Multi-Level Bookmarks via SAS Paper TS04 PDF Multi-Level Bookmarks via SAS Steve Griffiths, GlaxoSmithKline, Stockley Park, UK ABSTRACT Within the GlaxoSmithKline Oncology team we recently experienced an issue within our patient profile

More information

Utilizing SAS for Cross- Report Verification in a Clinical Trials Setting

Utilizing SAS for Cross- Report Verification in a Clinical Trials Setting Utilizing SAS for Cross- Report Verification in a Clinical Trials Setting Daniel Szydlo, SCHARP/Fred Hutch, Seattle, WA Iraj Mohebalian, SCHARP/Fred Hutch, Seattle, WA Marla Husnik, SCHARP/Fred Hutch,

More information

SAS CURRICULUM. BASE SAS Introduction

SAS CURRICULUM. BASE SAS Introduction SAS CURRICULUM BASE SAS Introduction Data Warehousing Concepts What is a Data Warehouse? What is a Data Mart? What is the difference between Relational Databases and the Data in Data Warehouse (OLTP versus

More information

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

A Practical and Efficient Approach in Generating AE (Adverse Events) Tables within a Clinical Study Environment A Practical and Efficient Approach in Generating AE (Adverse Events) Tables within a Clinical Study Environment Abstract Jiannan Hu Vertex Pharmaceuticals, Inc. When a clinical trial is at the stage of

More information

A Taste of SDTM in Real Time

A Taste of SDTM in Real Time A Taste of SDTM in Real Time Changhong Shi, Merck & Co., Inc., Rahway, NJ Beilei Xu, Merck & Co., Inc., Rahway, NJ ABSTRACT The Study Data Tabulation Model (SDTM) is a Clinical Data Interchange Standards

More information

Applications Development

Applications Development AD003 User Implementation and Revision of Business Rules Without Hard Coding: Macro-Generated SAS Code By Michael Krumenaker, Sr. Project Manager, Palisades Research, Inc. and Jit Bhattacharya, Manager

More information

LST in Comparison Sanket Kale, Parexel International Inc., Durham, NC Sajin Johnny, Parexel International Inc., Durham, NC

LST in Comparison Sanket Kale, Parexel International Inc., Durham, NC Sajin Johnny, Parexel International Inc., Durham, NC ABSTRACT PharmaSUG 2013 - Paper PO01 LST in Comparison Sanket Kale, Parexel International Inc., Durham, NC Sajin Johnny, Parexel International Inc., Durham, NC The need for producing error free programming

More information

Contents. Overview How SAS processes programs Compilation phase Execution phase Debugging a DATA step Testing your programs

Contents. Overview How SAS processes programs Compilation phase Execution phase Debugging a DATA step Testing your programs SAS Data Step Contents Overview How SAS processes programs Compilation phase Execution phase Debugging a DATA step Testing your programs 2 Overview Introduction This section teaches you what happens "behind

More information

PharmaSUG Paper DS24

PharmaSUG Paper DS24 PharmaSUG 2017 - Paper DS24 ADQRS: Basic Principles for Building Questionnaire, Rating and Scale Datasets Nancy Brucken, inventiv Health, Ann Arbor, MI Karin LaPann, Shire, Lexington, MA ABSTRACT Questionnaires,

More information

APPENDIX 4 Migrating from QMF to SAS/ ASSIST Software. Each of these steps can be executed independently.

APPENDIX 4 Migrating from QMF to SAS/ ASSIST Software. Each of these steps can be executed independently. 255 APPENDIX 4 Migrating from QMF to SAS/ ASSIST Software Introduction 255 Generating a QMF Export Procedure 255 Exporting Queries from QMF 257 Importing QMF Queries into Query and Reporting 257 Alternate

More information

What to Expect When You Need to Make a Data Delivery... Helpful Tips and Techniques

What to Expect When You Need to Make a Data Delivery... Helpful Tips and Techniques What to Expect When You Need to Make a Data Delivery... Helpful Tips and Techniques Louise Hadden, Abt Associates Inc. QUESTIONS YOU SHOULD ASK REGARDING THE PROJECT Is there any information regarding

More information

Using PROC REPORT to Cross-Tabulate Multiple Response Items Patrick Thornton, SRI International, Menlo Park, CA

Using PROC REPORT to Cross-Tabulate Multiple Response Items Patrick Thornton, SRI International, Menlo Park, CA Using PROC REPORT to Cross-Tabulate Multiple Response Items Patrick Thornton, SRI International, Menlo Park, CA ABSTRACT This paper describes for an intermediate SAS user the use of PROC REPORT to create

More information

QUEST Procedure Reference

QUEST Procedure Reference 111 CHAPTER 9 QUEST Procedure Reference Introduction 111 QUEST Procedure Syntax 111 Description 112 PROC QUEST Statement Options 112 Procedure Statements 112 SYSTEM 2000 Statement 114 ECHO ON and ECHO

More information

Why SAS Programmers Should Learn Python Too

Why SAS Programmers Should Learn Python Too PharmaSUG 2018 - Paper AD-12 ABSTRACT Why SAS Programmers Should Learn Python Too Michael Stackhouse, Covance, Inc. Day to day work can often require simple, yet repetitive tasks. All companies have tedious

More information

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

Data Edit-checks Integration using ODS Tagset Niraj J. Pandya, Element Technologies Inc., NJ Vinodh Paida, Impressive Systems Inc. PharmaSUG2011 - Paper DM03 Data Edit-checks Integration using ODS Tagset Niraj J. Pandya, Element Technologies Inc., NJ Vinodh Paida, Impressive Systems Inc., TX ABSTRACT In the Clinical trials data analysis

More information

The Output Bundle: A Solution for a Fully Documented Program Run

The Output Bundle: A Solution for a Fully Documented Program Run Paper AD05 The Output Bundle: A Solution for a Fully Documented Program Run Carl Herremans, MSD (Europe), Inc., Brussels, Belgium ABSTRACT Within a biostatistics department, it is required that each statistical

More information

PharmaSUG Paper TT11

PharmaSUG Paper TT11 PharmaSUG 2014 - Paper TT11 What is the Definition of Global On-Demand Reporting within the Pharmaceutical Industry? Eric Kammer, Novartis Pharmaceuticals Corporation, East Hanover, NJ ABSTRACT It is not

More information

SAS Drug Development Program Portability

SAS Drug Development Program Portability PharmaSUG2011 Paper SAS-AD03 SAS Drug Development Program Portability Ben Bocchicchio, SAS Institute, Cary NC, US Nancy Cole, SAS Institute, Cary NC, US ABSTRACT A Roadmap showing how SAS code developed

More information

Data Integrity through DEFINE.PDF and DEFINE.XML

Data Integrity through DEFINE.PDF and DEFINE.XML Data Integrity through DEFINE.PDF and DEFINE.XML Sy Truong, Meta Xceed, Inc, Fremont, CA ABSTRACT One of the key questions asked in determining if an analysis dataset is valid is simply, what did you do

More information

Accessing Data and Creating Data Structures. SAS Global Certification Webinar Series

Accessing Data and Creating Data Structures. SAS Global Certification Webinar Series Accessing Data and Creating Data Structures SAS Global Certification Webinar Series Accessing Data and Creating Data Structures Becky Gray Certification Exam Developer SAS Global Certification Michele

More information

A Tool to Compare Different Data Transfers Jun Wang, FMD K&L, Inc., Nanjing, China

A Tool to Compare Different Data Transfers Jun Wang, FMD K&L, Inc., Nanjing, China PharmaSUG China 2018 Paper 64 A Tool to Compare Different Data Transfers Jun Wang, FMD K&L, Inc., Nanjing, China ABSTRACT For an ongoing study, especially for middle-large size studies, regular or irregular

More information

Introduction to ADaM and What s new in ADaM

Introduction to ADaM and What s new in ADaM Introduction to ADaM and What s new in ADaM Italian CDISC UN Day - Milan 27 th October 2017 Silvia Faini Principal Statistical Programmer CROS NT - Verona ADaM Purpose Why are standards needed in analysis

More information

Check Please: An Automated Approach to Log Checking

Check Please: An Automated Approach to Log Checking ABSTRACT Paper 1173-2017 Check Please: An Automated Approach to Log Checking Richann Watson, Experis In the pharmaceutical industry, we find ourselves having to re-run our programs repeatedly for each

More information

SAS CLINICAL SYLLABUS. DURATION: - 60 Hours

SAS CLINICAL SYLLABUS. DURATION: - 60 Hours SAS CLINICAL SYLLABUS DURATION: - 60 Hours BASE SAS PART - I Introduction To Sas System & Architecture History And Various Modules Features Variables & Sas Syntax Rules Sas Data Sets Data Set Options Operators

More information

A Macro To Generate a Study Report Hany Aboutaleb, Biogen Idec, Cambridge, MA

A Macro To Generate a Study Report Hany Aboutaleb, Biogen Idec, Cambridge, MA Paper PO26 A Macro To Generate a Study Report Hany Aboutaleb, Biogen Idec, Cambridge, MA Abstract: Imagine that you are working on a study (project) and you would like to generate a report for the status

More information

Top Coding Tips. Neil Merchant Technical Specialist - SAS

Top Coding Tips. Neil Merchant Technical Specialist - SAS Top Coding Tips Neil Merchant Technical Specialist - SAS Bio Work in the ANSWERS team at SAS o Analytics as a Service and Visual Analytics Try before you buy SAS user for 12 years obase SAS and O/S integration

More information

Techdata Solution. SAS Analytics (Clinical/Finance/Banking)

Techdata Solution. SAS Analytics (Clinical/Finance/Banking) +91-9702066624 Techdata Solution Training - Staffing - Consulting Mumbai & Pune SAS Analytics (Clinical/Finance/Banking) What is SAS SAS (pronounced "sass", originally Statistical Analysis System) is an

More information

SAS Visual Analytics Environment Stood Up? Check! Data Automatically Loaded and Refreshed? Not Quite

SAS Visual Analytics Environment Stood Up? Check! Data Automatically Loaded and Refreshed? Not Quite Paper SAS1952-2015 SAS Visual Analytics Environment Stood Up? Check! Data Automatically Loaded and Refreshed? Not Quite Jason Shoffner, SAS Institute Inc., Cary, NC ABSTRACT Once you have a SAS Visual

More information

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

Customizing SAS Data Integration Studio to Generate CDISC Compliant SDTM 3.1 Domains Paper AD17 Customizing SAS Data Integration Studio to Generate CDISC Compliant SDTM 3.1 Domains ABSTRACT Tatyana Kovtun, Bayer HealthCare Pharmaceuticals, Montville, NJ John Markle, Bayer HealthCare Pharmaceuticals,

More information

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

Tips and Tricks for Creating Multi-Sheet Microsoft Excel Workbooks the Easy Way with SAS. Vincent DelGobbo, SAS Institute Inc. Tips and Tricks for Creating Multi-Sheet Microsoft Excel Workbooks the Easy Way with SAS Vincent DelGobbo, SAS Institute Inc., Cary, NC ABSTRACT Transferring SAS data and analytical results between SAS

More information

Lex Jansen Octagon Research Solutions, Inc.

Lex Jansen Octagon Research Solutions, Inc. Converting the define.xml to a Relational Database to enable Printing and Validation Lex Jansen Octagon Research Solutions, Inc. Leading the Electronic Transformation of Clinical R&D PhUSE 2009, Basel,

More information

Applying ADaM Principles in Developing a Response Analysis Dataset

Applying ADaM Principles in Developing a Response Analysis Dataset PharmaSUG2010 Paper CD03 Applying ADaM Principles in Developing a Response Analysis Dataset Mei Dey, Merck & Co., Inc Lisa Pyle, Merck & Co., Inc ABSTRACT The Clinical Data Interchange Standards Consortium

More information

Keeping Track of Database Changes During Database Lock

Keeping Track of Database Changes During Database Lock Paper CC10 Keeping Track of Database Changes During Database Lock Sanjiv Ramalingam, Biogen Inc., Cambridge, USA ABSTRACT Higher frequency of data transfers combined with greater likelihood of changes

More information

CDISC Variable Mapping and Control Terminology Implementation Made Easy

CDISC Variable Mapping and Control Terminology Implementation Made Easy PharmaSUG2011 - Paper CD11 CDISC Variable Mapping and Control Terminology Implementation Made Easy Balaji Ayyappan, Ockham Group, Cary, NC Manohar Sure, Ockham Group, Cary, NC ABSTRACT: CDISC SDTM (Study

More information

Pharmaceuticals, Health Care, and Life Sciences. An Approach to CDISC SDTM Implementation for Clinical Trials Data

Pharmaceuticals, Health Care, and Life Sciences. An Approach to CDISC SDTM Implementation for Clinical Trials Data An Approach to CDISC SDTM Implementation for Clinical Trials Data William T. Chen, Merck Research Laboratories, Rahway, NJ Margaret M. Coughlin, Merck Research Laboratories, Rahway, NJ ABSTRACT The Clinical

More information

Material covered in the Dec 2014 FDA Binding Guidances

Material covered in the Dec 2014 FDA Binding Guidances Accenture Accelerated R&D Services Rethink Reshape Restructure for better patient outcomes Sandra Minjoe Senior ADaM Consultant Preparing ADaM and Related Files for Submission Presentation Focus Material

More information

A Useful Macro for Converting SAS Data sets into SAS Transport Files in Electronic Submissions

A Useful Macro for Converting SAS Data sets into SAS Transport Files in Electronic Submissions Paper FC07 A Useful Macro for Converting SAS Data sets into SAS Transport Files in Electronic Submissions Xingshu Zhu and Shuping Zhang Merck Research Laboratories, Merck & Co., Inc., Blue Bell, PA 19422

More information

eschoolplus+ Cognos Query Studio Training Guide Version 2.4

eschoolplus+ Cognos Query Studio Training Guide Version 2.4 + Training Guide Version 2.4 May 2015 Arkansas Public School Computer Network This page was intentionally left blank Page 2 of 68 Table of Contents... 5 Accessing... 5 Working in Query Studio... 8 Query

More information

Why organizations need MDR system to manage clinical metadata?

Why organizations need MDR system to manage clinical metadata? PharmaSUG 2018 - Paper SS-17 Why organizations need MDR system to manage clinical metadata? Abhinav Jain, Ephicacy Consulting Group Inc. ABSTRACT In the last decade, CDISC standards undoubtedly have transformed

More information

CDISC SDTM and ADaM Real World Issues

CDISC SDTM and ADaM Real World Issues CDISC SDTM and ADaM Real World Issues Washington DC CDISC Data Standards User Group Meeting Sy Truong President MXI, Meta-Xceed, Inc. http://www.meta-x.com Agenda CDISC SDTM and ADaM Fundamentals CDISC

More information

esubmission - Are you really Compliant?

esubmission - Are you really Compliant? ABSTRACT PharmaSUG 2018 - Paper SS21 esubmission - Are you really Compliant? Majdoub Haloui, Merck & Co., Inc., Upper Gwynedd, PA, USA Suhas R. Sanjee, Merck & Co., Inc., Upper Gwynedd, PA, USA Pinnacle

More information

Text Generational Data Sets (Text GDS)

Text Generational Data Sets (Text GDS) Paper 274-2017 Text Generational Data Sets (Text GDS) Dr. Kannan Deivasigamani HSBC ABSTRACT This paper offers a way to fill the void that SAS currently has with respect to the missing feature in the language,

More information

Chapter 2: Getting Data Into SAS

Chapter 2: Getting Data Into SAS Chapter 2: Getting Data Into SAS Data stored in many different forms/formats. Four categories of ways to read in data. 1. Entering data directly through keyboard 2. Creating SAS data sets from raw data

More information

Customized Flowcharts Using SAS Annotation Abhinav Srivastva, PaxVax Inc., Redwood City, CA

Customized Flowcharts Using SAS Annotation Abhinav Srivastva, PaxVax Inc., Redwood City, CA ABSTRACT Customized Flowcharts Using SAS Annotation Abhinav Srivastva, PaxVax Inc., Redwood City, CA Data visualization is becoming a trend in all sectors where critical business decisions or assessments

More information

Doctor's Prescription to Re-engineer Process of Pinnacle 21 Community Version Friendly ADaM Development

Doctor's Prescription to Re-engineer Process of Pinnacle 21 Community Version Friendly ADaM Development PharmaSUG 2018 - Paper DS-15 Doctor's Prescription to Re-engineer Process of Pinnacle 21 Community Version Friendly ADaM Development Aakar Shah, Pfizer Inc; Tracy Sherman, Ephicacy Consulting Group, Inc.

More information

BI-09 Using Enterprise Guide Effectively Tom Miron, Systems Seminar Consultants, Madison, WI

BI-09 Using Enterprise Guide Effectively Tom Miron, Systems Seminar Consultants, Madison, WI Paper BI09-2012 BI-09 Using Enterprise Guide Effectively Tom Miron, Systems Seminar Consultants, Madison, WI ABSTRACT Enterprise Guide is not just a fancy program editor! EG offers a whole new window onto

More information

SAS Log Summarizer Finding What s Most Important in the SAS Log

SAS Log Summarizer Finding What s Most Important in the SAS Log Paper CC-037 SAS Log Summarizer Finding What s Most Important in the SAS Log Milorad Stojanovic RTI International Education Surveys Division RTP, North Carolina ABSTRACT Validity of SAS programs is an

More information

An Efficient Solution to Efficacy ADaM Design and Implementation

An Efficient Solution to Efficacy ADaM Design and Implementation PharmaSUG 2017 - Paper AD05 An Efficient Solution to Efficacy ADaM Design and Implementation Chengxin Li, Pfizer Consumer Healthcare, Madison, NJ, USA Zhongwei Zhou, Pfizer Consumer Healthcare, Madison,

More information

SAS Programming Techniques for Manipulating Metadata on the Database Level Chris Speck, PAREXEL International, Durham, NC

SAS Programming Techniques for Manipulating Metadata on the Database Level Chris Speck, PAREXEL International, Durham, NC PharmaSUG2010 - Paper TT06 SAS Programming Techniques for Manipulating Metadata on the Database Level Chris Speck, PAREXEL International, Durham, NC ABSTRACT One great leap that beginning and intermediate

More information

Utilizing the VNAME SAS function in restructuring data files

Utilizing the VNAME SAS function in restructuring data files AD13 Utilizing the VNAME SAS function in restructuring data files Mirjana Stojanovic, Duke University Medical Center, Durham, NC Donna Niedzwiecki, Duke University Medical Center, Durham, NC ABSTRACT Format

More information

Query Studio Training Guide Cognos 8 February 2010 DRAFT. Arkansas Public School Computer Network 101 East Capitol, Suite 101 Little Rock, AR 72201

Query Studio Training Guide Cognos 8 February 2010 DRAFT. Arkansas Public School Computer Network 101 East Capitol, Suite 101 Little Rock, AR 72201 Query Studio Training Guide Cognos 8 February 2010 DRAFT Arkansas Public School Computer Network 101 East Capitol, Suite 101 Little Rock, AR 72201 2 Table of Contents Accessing Cognos Query Studio... 5

More information

TLF Management Tools: SAS programs to help in managing large number of TLFs. Eduard Joseph Siquioco, PPD, Manila, Philippines

TLF Management Tools: SAS programs to help in managing large number of TLFs. Eduard Joseph Siquioco, PPD, Manila, Philippines PharmaSUG China 2018 Paper AD-58 TLF Management Tools: SAS programs to help in managing large number of TLFs ABSTRACT Eduard Joseph Siquioco, PPD, Manila, Philippines Managing countless Tables, Listings,

More information

Making the most of SAS Jobs in LSAF

Making the most of SAS Jobs in LSAF PharmaSUG 2018 - Paper AD-26 Making the most of SAS Jobs in LSAF Sonali Garg, Alexion; Greg Weber, DataCeutics ABSTRACT SAS Life Science Analytics Framework (LSAF) provides the ability to have a 21 CFR

More information

ADaM Compliance Starts with ADaM Specifications

ADaM Compliance Starts with ADaM Specifications PharmaSUG 2017 - Paper DS16 ADaM Compliance Starts with ADaM Specifications Trevor Mankus, Kent Letourneau, PRA Health Sciences ABSTRACT As of December 17th, 2016, the FDA and PMDA require that all new

More information

ODS/RTF Pagination Revisit

ODS/RTF Pagination Revisit PharmaSUG 2018 - Paper QT-01 ODS/RTF Pagination Revisit Ya Huang, Halozyme Therapeutics, Inc. Bryan Callahan, Halozyme Therapeutics, Inc. ABSTRACT ODS/RTF combined with PROC REPORT has been used to generate

More information

ET01. LIBNAME libref <engine-name> <physical-file-name> <libname-options>; <SAS Code> LIBNAME libref CLEAR;

ET01. LIBNAME libref <engine-name> <physical-file-name> <libname-options>; <SAS Code> LIBNAME libref CLEAR; ET01 Demystifying the SAS Excel LIBNAME Engine - A Practical Guide Paul A. Choate, California State Developmental Services Carol A. Martell, UNC Highway Safety Research Center ABSTRACT This paper is a

More information

Introduction. Getting Started with the Macro Facility CHAPTER 1

Introduction. Getting Started with the Macro Facility CHAPTER 1 1 CHAPTER 1 Introduction Getting Started with the Macro Facility 1 Replacing Text Strings Using Macro Variables 2 Generating SAS Code Using Macros 3 Inserting Comments in Macros 4 Macro Definition Containing

More information

Reading in Data Directly from Microsoft Word Questionnaire Forms

Reading in Data Directly from Microsoft Word Questionnaire Forms Paper 1401-2014 Reading in Data Directly from Microsoft Word Questionnaire Forms Sijian Zhang, VA Pittsburgh Healthcare System ABSTRACT If someone comes to you with hundreds of questionnaire forms in Microsoft

More information

Automation of makefile For Use in Clinical Development Nalin Tikoo, BioMarin Pharmaceutical Inc., Novato, CA

Automation of makefile For Use in Clinical Development Nalin Tikoo, BioMarin Pharmaceutical Inc., Novato, CA Automation of makefile For Use in Clinical Development Nalin Tikoo, BioMarin Pharmaceutical Inc., Novato, CA ABSTRACT The 'make' utility is a software engineering tool for managing and maintaining computer

More information

Using UNIX Shell Scripting to Enhance Your SAS Programming Experience

Using UNIX Shell Scripting to Enhance Your SAS Programming Experience Using UNIX Shell Scripting to Enhance Your SAS Programming Experience By James Curley SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute

More information

How a Metadata Repository enables dynamism and automation in SDTM-like dataset generation

How a Metadata Repository enables dynamism and automation in SDTM-like dataset generation Paper DH05 How a Metadata Repository enables dynamism and automation in SDTM-like dataset generation Judith Goud, Akana, Bennekom, The Netherlands Priya Shetty, Intelent, Princeton, USA ABSTRACT The traditional

More information

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

Matt Downs and Heidi Christ-Schmidt Statistics Collaborative, Inc., Washington, D.C. Paper 82-25 Dynamic data set selection and project management using SAS 6.12 and the Windows NT 4.0 file system Matt Downs and Heidi Christ-Schmidt Statistics Collaborative, Inc., Washington, D.C. ABSTRACT

More information

Please Don't Lag Behind LAG!

Please Don't Lag Behind LAG! Please Don't Lag Behind LAG! Anjan Matlapudi and J. Daniel Knapp Pharmacy Informatics and Finance PerformRx, The Next Generation PBM 200 Stevens Drive, Philadelphia, PA 19113 ABSTRACT A programmer may

More information

TLFs: Replaying Rather than Appending William Coar, Axio Research, Seattle, WA

TLFs: Replaying Rather than Appending William Coar, Axio Research, Seattle, WA ABSTRACT PharmaSUG 2013 - Paper PO16 TLFs: Replaying Rather than Appending William Coar, Axio Research, Seattle, WA In day-to-day operations of a Biostatistics and Statistical Programming department, we

More information

Optimization of the traceability when applying an ADaM Parallel Conversion Method

Optimization of the traceability when applying an ADaM Parallel Conversion Method Paper SI04 Optimization of the traceability when applying an ADaM Parallel Conversion Method DEBRUS Roxane, Business & Decision Life Sciences, Brussels, Belgium ABSTRACT One of the methods to create CDISC

More information

A Few Quick and Efficient Ways to Compare Data

A Few Quick and Efficient Ways to Compare Data A Few Quick and Efficient Ways to Compare Data Abraham Pulavarti, ICON Clinical Research, North Wales, PA ABSTRACT In the fast paced environment of a clinical research organization, a SAS programmer has

More information

A Macro to Create Program Inventory for Analysis Data Reviewer s Guide Xianhua (Allen) Zeng, PAREXEL International, Shanghai, China

A Macro to Create Program Inventory for Analysis Data Reviewer s Guide Xianhua (Allen) Zeng, PAREXEL International, Shanghai, China PharmaSUG 2018 - Paper QT-08 A Macro to Create Program Inventory for Analysis Data Reviewer s Guide Xianhua (Allen) Zeng, PAREXEL International, Shanghai, China ABSTRACT As per Analysis Data Reviewer s

More information

Cover the Basics, Tool for structuring data checking with SAS Ole Zester, Novo Nordisk, Denmark

Cover the Basics, Tool for structuring data checking with SAS Ole Zester, Novo Nordisk, Denmark ABSTRACT PharmaSUG 2014 - Paper IB04 Cover the Basics, Tool for structuring data checking with SAS Ole Zester, Novo Nordisk, Denmark Data Cleaning and checking are essential parts of the Stat programmer

More information

Uncommon Techniques for Common Variables

Uncommon Techniques for Common Variables Paper 11863-2016 Uncommon Techniques for Common Variables Christopher J. Bost, MDRC, New York, NY ABSTRACT If a variable occurs in more than one data set being merged, the last value (from the variable

More information

Other Data Sources SAS can read data from a variety of sources:

Other Data Sources SAS can read data from a variety of sources: Other Data Sources SAS can read data from a variety of sources: Plain text files, including delimited and fixed-column files Spreadsheets, such as Excel Databases XML Others Text Files Text files of various

More information

A Mass Symphony: Directing the Program Logs, Lists, and Outputs

A Mass Symphony: Directing the Program Logs, Lists, and Outputs PharmaSUG2011 Paper CC24 ABSTRACT A Mass Symphony: Directing the Program Logs, Lists, and Outputs Tom Santopoli, Octagon Research Solutions, Inc., Wayne, PA When executing programs in SAS, it is efficient

More information

Getting it Done with PROC TABULATE

Getting it Done with PROC TABULATE ABSTRACT Getting it Done with PROC TABULATE Michael J. Williams, ICON Clinical Research, San Francisco, CA The task of displaying statistical summaries of different types of variables in a single table

More information

SAS Business Rules Manager 1.2

SAS Business Rules Manager 1.2 SAS Business Rules Manager 1.2 User s Guide Second Edition SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2012. SAS Business Rules Manager 1.2. Cary,

More information

An Introduction to SAS University Edition

An Introduction to SAS University Edition An Introduction to SAS University Edition Ron Cody From An Introduction to SAS University Edition. Full book available for purchase here. Contents List of Programs... xi About This Book... xvii About the

More information

3. Almost always use system options options compress =yes nocenter; /* mostly use */ options ps=9999 ls=200;

3. Almost always use system options options compress =yes nocenter; /* mostly use */ options ps=9999 ls=200; Randy s SAS hints, updated Feb 6, 2014 1. Always begin your programs with internal documentation. * ***************** * Program =test1, Randy Ellis, first version: March 8, 2013 ***************; 2. Don

More information

Cite: CTSA NIH Grant UL1- RR024982

Cite: CTSA NIH Grant UL1- RR024982 PREREQUISITE FOR USE Review and approval of the project by the Institutional Review Board is required If colleting data for the purpose of human subject s research. Cite: CTSA NIH Grant UL1- RR024982 1

More information

Moving Data and Results Between SAS and Excel. Harry Droogendyk Stratia Consulting Inc.

Moving Data and Results Between SAS and Excel. Harry Droogendyk Stratia Consulting Inc. Moving Data and Results Between SAS and Excel Harry Droogendyk Stratia Consulting Inc. Introduction SAS can read ( and write ) anything Introduction In the end users want EVERYTHING in. Introduction SAS

More information

Using an ICPSR set-up file to create a SAS dataset

Using an ICPSR set-up file to create a SAS dataset Using an ICPSR set-up file to create a SAS dataset Name library and raw data files. From the Start menu, launch SAS, and in the Editor program, write the codes to create and name a folder in the SAS permanent

More information

2997 Yarmouth Greenway Drive, Madison, WI Phone: (608) Web:

2997 Yarmouth Greenway Drive, Madison, WI Phone: (608) Web: Getting the Most Out of SAS Enterprise Guide 2997 Yarmouth Greenway Drive, Madison, WI 53711 Phone: (608) 278-9964 Web: www.sys-seminar.com 1 Questions, Comments Technical Difficulties: Call 1-800-263-6317

More information

Using Dynamic Data Exchange

Using Dynamic Data Exchange 145 CHAPTER 8 Using Dynamic Data Exchange Overview of Dynamic Data Exchange 145 DDE Syntax within SAS 145 Referencing the DDE External File 146 Determining the DDE Triplet 146 Controlling Another Application

More information

Importing CSV Data to All Character Variables Arthur L. Carpenter California Occidental Consultants, Anchorage, AK

Importing CSV Data to All Character Variables Arthur L. Carpenter California Occidental Consultants, Anchorage, AK PharmaSUG 2017 QT02 Importing CSV Data to All Character Variables Arthur L. Carpenter California Occidental Consultants, Anchorage, AK ABSTRACT Have you ever needed to import data from a CSV file and found

More information