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

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

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

Transcription

1 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 programs. It has been used widely in clinical development in the area of statistical programming to manage the creation and maintenance of SAS programs generating various outputs such as datasets, tables, listings & graphs. This paper introduces how the creation of descriptor file used by the make utility has been automated at BioMarin Pharmaceutical Inc. Details about the descriptor file syntax & the SAS program used to create it are described. INTRODUCTION What, Why and How of make utility What o It is a tool for managing and maintaining outputs. Why o make provides help in creating or updating existing outputs when the programs creating them include dependencies on other files. How o By creating a descriptor file containing dependency rules you can instruct make to automatically rebuild your outputs whenever one of the outputs dependent files is modified. make is smart enough to only rebuild the outputs that were affected by changes thus saving time and at the same time making sure all the outputs are up to date. In the context of statistical programming what this means is that every time the raw data or other dependent files are updated, the programmer just needs run the make utility to update all the datasets, TLGs and other study deliverables including the define documents. The key here is to have the descriptor file updated with any new deliverables. The objective of this paper is to explain the fundamental approach taken at BioMarin Pharmaceutical Inc. to implement the automation of the descriptor file generation for the make utility. BACKGROUND I will begin with background of the make utility, the descriptor file and the data standards in place at BioMarin Pharmaceutical Inc. which play a critical role in this automated process. make is a helpful UNIX utility used to create or update existing files identified as output files. To do so, it uses the last modification date of the source files as the rule. For details on various options of make utility, please refer to the man pages on UNIX. A descriptor file describes the relationship among source files and provides commands for updating each output file. The make utility uses this descriptor file to automatically rebuild an output file whenever one of the source files is modified. It only rebuilds the output files that were affected by changes, thus saving time by not having to run all the programs or having to selectively running programs affected by changes. make utility provides the flexibility to use any name for this descriptor file, in our case we use the default name called makefile. For the purposes of discussion through out this paper I will use the SDTM dataset creation process as an example. Figure 1 shows the data flow from its entry into the EDC system to SDTM data generation and all its dependencies at BioMarin Pharmaceutical Inc. The generation of SDTM data sets is the first step and the only possible source of data is the raw data. This streamlined flow of data makes it easy to identify the dependencies for the outputs. There is an abundance of metadata that needs to be maintained for a typical TLG generation process. Starting with the inventory of deliverables, titles & footnotes, SDTM programming specifications, ADaM programming specifications, control terminology specifications etc.. At BioMarin we maintain these as MS EXCEL files. A script called the metadata script with an argument for each metadata type is used to generate SAS datasets from these EXCEL files. So for 1

2 the implementation of this automatic makefile descriptor file generation process an argument m was assigned to be used with metadata script. Anyone who has ever considered automating the makefile descriptor file generation knows that the most difficult part is identifying the dependencies. Papers published to-date have used PERL scripting, program header information etc. to create the dependencies. We took a slightly different approach to identifying these dependencies which was to look for references to the expected source data sets in the output file generation programs. For example when creating the dependencies for the sd_ae.sas program that creates an SDTM AE dataset, we looked for all raw data library dataset references in the sd_ae.sas program. This resulted in a list of all raw data set sources used by the sd_ae.sas program. Figure 1: Schematic of SDTM data set generation NUTS & BOLTS The automation of the makefile descriptor file creation is a two step process outlined below. In the first step, a program called makefile_metadata.sas is run which creates a control dataset called makefile_metadata.sas7bdat. The makefile_metadata.sas7bdat dataset contains all the programs and the corresponding source datasets and outputs that the program generates. The second step is run by a program called makefile_write_make.sas in which the descriptor file is created if makefile_metadata.sas7bdat dataset is successfully created in the first step. Let s look at each of these steps closely. STEP 1: MAKEFILE METADATA 2

3 Figure 2: Schematic of makefile_metadata.sas7bdat generation Sample makefile_metadata.sas7bdat Program Name Output Name Source Dataset Name sd_ae.sas ae.sas7bdat odat.ae sd_ae.sas ae.sas7bdat odat.cm sd_ae.sas ae.sas7bdat odat.ds sd_ae.sas ae.sas7bdat odat.ex As can be seen from the example records from makefile_metadata.sas7bdat file for sd_ae.sas program, a list of all the source datasets from the raw data directory is listed. Once this list is generated, it is an easy task to use this dataset in conjunction with other more standard dependencies like the specifications files and create the descriptor file makefile. Macro %grep_data is the fundamental macro that does most of the heavy lifting and is described in figure 3 along with a sample call for SDTM dataset generation programs. The %grep_data macro takes the following 3 parameters: Parameter ID LIBREF LIBNAME Description Source data type identifier Library reference for the physical location provided in the LIBNAME parameter Name of the directory containing the potential source data sets Sample Call: %grep_data(id=o,libref=odat,libname=dataoper); 3

4 create a dataset containing names of all the datasets at the source dataset location (&LIBREF=ODAT library reference for raw datasets, SDTM datasets can only have raw datasets as sources) count the number of datasets and store in a macro variable store the name of each dataset in a macro variable In each SDTM dataset generation program, look for the string ODAT.&DSN (&DSN is the macro variable containing the name of the source dataset) STEP 2: CREATING THE MAKEFILE Figure 3: Schematic of the %grep_data macro As mentioned previously, the makefile_metadata.sas7bdat dataset contains all the programs and the corresponding source datasets and outputs that the program generates. In addition to the study datasets and TLGs, other deliverables included in the makefile descriptor file are define.pdf for SDTM and ADaM datasets. The following is a complete list of dependency rules that apply: A. Datasets & TLGs: SDTM datasets depend on raw datasets, formats.sas & sdtm_specs.xls file ADaM datasets depend on SDTM datasets, formats.sas & sdtm_specs.xls file TLGs depend on SDTM & ADaM datasets & apd_protocol_activity.xls file. B. define.pdf: SDTM define.pdf depends on dm.sas7bdat ADaM define.pdf depends on adsl.sas7bdat C. Metadata dependencies: apd_metadata.sas7bdat depends on apd_protocol_activity.xls file. control_terminology_metadata.sas7bdat depends on control_terminology_specs.xls sdtm_metadata.sas7bdat depends on sdtm_specs.xls file. adam_metadata.sas7bdat depends on adam_specs.xls file. Now that we have all the dependency information and data that we need in makefile_metadata.sas7bdat to create the makefile descriptor file let s dive into some details on writing the actual descriptor file. The first line in the makefile descriptor file is the definition of all the possible locations you want make utility to look for the targets. The make utility has a designated variable for this called the VPATH which can be defined as: VPATH =../documentation/specs:../datasdtm:../dataadam:../output/stat/lst:../output/stat/tab:../output/stat/fig"/; 4

5 All the destinations defined above are relative paths with respect to the program directory where the makefile descriptor file exists and the make utility is run. The next few lines in the descriptor file define target sets using the SYSTEM command. Once the target sets are defined, the make utility gives you the functionality of selectively re-building targets. Our makefile_write_make.sas program uses the following syntax to generate a SDTM target set. system: \; %if &nspgms > 0 %then %do; put "sdtm \"; %end; etc As seen in the code snippet above the addition of target sets to the makefile descriptor file is done conditionally, NSPGMS is a macro variable that stores the total number of SDTM dataset generation programs. In other words SDTM target set will be added to the makefile descriptor file only if there is at least one SDTM generation program in the makefile_metadata.sas7bdat dataset. The result of this allows you to re-build all your SDTM datasets only if you want by entering the following on the command prompt. > make sdtm The next step is to define the targets for each set of targets defined in the SYSTEM command. One output name from each program needs to be added into the list of targets. In other words if a table program generates 10 tables you need to only include 1 output name as a target in the makefile descriptor file. %do i = 1 %to &nspgms; put "../datasdtm/&&targs&i. \"; %end; %else %if &i = &nspgms. %then %do; put "../datasdtm/&&targs&i."/; %end; The lines of code above define the SDTM set of targets. The execution of the above code writes the following lines to the makefile descriptor file.../datasdtm/dm.sas7bdat \../datasdtm/ds.sas7bdat \../datasdtm/ae.sas7bdat \../datasdtm/vs.sas7bdat Similar loops need to run for other targets like ADaM programs, TLG programs and defines. A target set called help has been defined which among other help items like makefile descriptor file syntax also gives the users a way to know the names of various target sets. The excerpt below shows how this can be added. put '09'x '1. USAGE:"; put '09'x ' make sdtm - build SDTM datasets only '"; put '09'x ' make adam - build ADaM datasets only '"; Once we have told make what to make, the last step is tell it how to make it. The syntax for these statements is as follows. target: dependencies 5

6 [tab] system command The excerpt below shows how this can be added. if first.program_name then put "../datasdtm/" output_id "\"/"../documentation/specs/sdtm_specs.xls \"/"../documentation/specs/control_terminology_specs.xls \"/"../aceautos/formats.sas \"; else put "../dataoper/" dependency "\"; if last.program_name then put program_name/'09'x"bace " program_name/; The code snippet above shows how the makefile_metadata.sas7bdat and the fixed dependency rules are put together to define the dependency rules in the makefile descriptor file. A few key pointers while writing the makefile descriptor file: 1. The target name should be followed by a :, this tells the make utility what is the target 2. If you are writing each dependency on a separate line, there should be no spaces after \ at the end of each line. 3. Note from the syntax above that the system command should be preceded by a tab. This is provided by using 09 x, the hexadecimal notation for tab. The excerpt below shows what the makefile descriptor file looks like for sd_ae.sas../datasdtm/dm.sas7bdat: \../documentation/specs/sdtm_specs.xls \../documentation/specs/control_terminology_specs.xls \../aceautos/formats.sas \../dataoper/ae.sas7bdat \../dataoper/cm.sas7bdat \../dataoper/ds.sas7bdat \../dataoper/ex.sas7bdat \ sd_ae.sas bace sd_ae.sas Recall from the syntax section that after all the dependencies have been defined a system command needs to be provided that will tell make utility which program to run to rebuild the target using the dependency rules. We have a PERL script called bace which is used to run SAS programs in batch mode. As an added measure of oversight when automated batch processing is undertaken, we decided to include a log checking functionality. At the end of makefile descriptor file a script called logscan is included that scans through all the log files in the directory where the log files are stored and lists out the log files that need to be reviewed for unexpected messages in the log like ERROR, WARNING, etc. CONCLUSION Given the number of deliverables that constitute a submission, I strongly believe that automatically creating a descriptor file that can be fed to a smart utility like make to re-build targets with every raw data update is really critical. I hope this paper brings you one step closer to achieving that target and that you find a way to generate makefile descriptor file automatically. REFERENCES Online documentation for SAS software, Version UNIX man pages for make 6

7 ACKNOWLEDGMENTS I would like to thank Nick Paszty for his constant support and guidance throughout the course of the project as well as his valuable input in this paper. CONTACT INFORMATION Your comments and questions are valued and encouraged. Contact the author at: Name: Nalin Tikoo Enterprise: BioMarin Pharmaceutical Inc. Address: 105 Digital Drive City, State ZIP: Novato, CA The output/code for this paper was generated using SAS software. Copyright, SAS Institute Inc. SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc., Cary, NC, USA. 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 trademarks of their respective companies. 7

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

PharmaSUG Paper PO10

PharmaSUG Paper PO10 PharmaSUG 2013 - Paper PO10 How to make SAS Drug Development more efficient Xiaopeng Li, Celerion Inc., Lincoln, NE Chun Feng, Celerion Inc., Lincoln, NE Peng Chai, Celerion Inc., Lincoln, NE ABSTRACT

More information

The Submission Data File System Automating the Creation of CDISC SDTM and ADaM Datasets

The Submission Data File System Automating the Creation of CDISC SDTM and ADaM Datasets Paper AD-08 The Submission Data File System Automating the Creation of CDISC SDTM and ADaM Datasets Marcus Bloom, Amgen Inc, Thousand Oaks, CA David Edwards, Amgen Inc, Thousand Oaks, CA ABSTRACT From

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

SAS Clinical Data Integration 2.4

SAS Clinical Data Integration 2.4 SAS Clinical Data Integration 2.4 User s Guide SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2013. SAS Clinical Data Integration 2.4: User's Guide.

More information

An Alternate Way to Create the Standard SDTM Domains

An Alternate Way to Create the Standard SDTM Domains PharmaSUG 2018 - Paper DS-12 ABSTRACT An Alternate Way to Create the Standard SDTM Domains Sunil Kumar Pusarla, Omeros Corporation Sponsors who initiate clinical trials after 2016-12-17 are required to

More information

Cleaning up your SAS log: Note Messages

Cleaning up your SAS log: Note Messages Paper 9541-2016 Cleaning up your SAS log: Note Messages ABSTRACT Jennifer Srivastava, Quintiles Transnational Corporation, Durham, NC As a SAS programmer, you probably spend some of your time reading and

More information

PhUSE US Connect 2019

PhUSE US Connect 2019 PhUSE US Connect 2019 Paper SI04 Creation of ADaM Define.xml v2.0 Using SAS Program and Pinnacle 21 Yan Lei, Johnson & Johnson, Spring House, PA, USA Yongjiang Xu, Johnson & Johnson, Spring House, PA,

More information

Submission-Ready Define.xml Files Using SAS Clinical Data Integration Melissa R. Martinez, SAS Institute, Cary, NC USA

Submission-Ready Define.xml Files Using SAS Clinical Data Integration Melissa R. Martinez, SAS Institute, Cary, NC USA PharmaSUG 2016 - Paper SS12 Submission-Ready Define.xml Files Using SAS Clinical Data Integration Melissa R. Martinez, SAS Institute, Cary, NC USA ABSTRACT SAS Clinical Data Integration simplifies the

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

PharmaSUG Paper AD03

PharmaSUG Paper AD03 PharmaSUG 2017 - Paper AD03 Three Issues and Corresponding Work-Around Solution for Generating Define.xml 2.0 Using Pinnacle 21 Enterprise Jeff Xia, Merck & Co., Inc., Rahway, NJ, USA Lugang (Larry) Xie,

More information

SAS Clinical Data Integration 2.6

SAS Clinical Data Integration 2.6 SAS Clinical Data Integration 2.6 User s Guide SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2015. SAS Clinical Data Integration 2.6: User's Guide.

More information

SAS Model Manager 15.1: Quick Start Tutorial

SAS Model Manager 15.1: Quick Start Tutorial SAS Model Manager 15.1: Quick Start Tutorial Overview This Quick Start Tutorial is an introduction to some of the primary features of SAS Model Manager. The tutorial covers basic tasks that are related

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

ABSTRACT MORE THAN SYNTAX ORGANIZE YOUR WORK THE SAS ENTERPRISE GUIDE PROJECT. Paper 50-30

ABSTRACT MORE THAN SYNTAX ORGANIZE YOUR WORK THE SAS ENTERPRISE GUIDE PROJECT. Paper 50-30 Paper 50-30 The New World of SAS : Programming with SAS Enterprise Guide Chris Hemedinger, SAS Institute Inc., Cary, NC Stephen McDaniel, SAS Institute Inc., Cary, NC ABSTRACT SAS Enterprise Guide (with

More information

Streamline SDTM Development and QC

Streamline SDTM Development and QC Paper SI09 Streamline SDTM Development and QC Stephen Gormley, Amgen, United Kingdom ABSTRACT Amgen s Global Statistical Programming ( GSP ) function have one centralised team (The CDISC Consultancy and

More information

SAS/ACCESS Interface to R/3

SAS/ACCESS Interface to R/3 9.1 SAS/ACCESS Interface to R/3 User s Guide The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2004. SAS/ACCESS 9.1 Interface to R/3: User s Guide. Cary, NC: SAS Institute

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

SAS ENTERPRISE GUIDE USER INTERFACE

SAS ENTERPRISE GUIDE USER INTERFACE Paper 294-2008 What s New in the 4.2 releases of SAS Enterprise Guide and the SAS Add-In for Microsoft Office I-kong Fu, Lina Clover, and Anand Chitale, SAS Institute Inc., Cary, NC ABSTRACT SAS Enterprise

More information

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

Creating a Patient Profile using CDISC SDTM Marc Desgrousilliers, Clinovo, Sunnyvale, CA Romain Miralles, Clinovo, Sunnyvale, CA Creating a Patient Profile using CDISC SDTM Marc Desgrousilliers, Clinovo, Sunnyvale, CA Romain Miralles, Clinovo, Sunnyvale, CA ABSTRACT CDISC SDTM data is the standard format requested by the FDA for

More information

Using SAS to Control and Automate a Multi SAS Program Process Patrick Halpin, dunnhumby USA, Cincinnati, OH

Using SAS to Control and Automate a Multi SAS Program Process Patrick Halpin, dunnhumby USA, Cincinnati, OH Paper T05-2007 Using SAS to Control and Automate a Multi SAS Program Process Patrick Halpin, dunnhumby USA, Cincinnati, OH ABSTRACT Often times a project is comprised of many SAS programs that need to

More information

Application Interface for executing a batch of SAS Programs and Checking Logs Sneha Sarmukadam, inventiv Health Clinical, Pune, India

Application Interface for executing a batch of SAS Programs and Checking Logs Sneha Sarmukadam, inventiv Health Clinical, Pune, India PharmaSUG 2013 - Paper AD16 Application Interface for executing a batch of SAS Programs and Checking Logs Sneha Sarmukadam, inventiv Health Clinical, Pune, India ABSTRACT The most convenient way to execute

More information

Dynamic Projects in SAS Enterprise Guide How to Create and Use Parameters

Dynamic Projects in SAS Enterprise Guide How to Create and Use Parameters Paper HW02 Dynamic Projects in SAS Enterprise Guide How to Create and Use Parameters Susan J. Slaughter, Avocet Solutions, Davis, CA Lora D. Delwiche, University of California, Davis, CA ABSTRACT SAS Enterprise

More information

Journey to the center of the earth Deep understanding of SAS language processing mechanism Di Chen, SAS Beijing R&D, Beijing, China

Journey to the center of the earth Deep understanding of SAS language processing mechanism Di Chen, SAS Beijing R&D, Beijing, China Journey to the center of the earth Deep understanding of SAS language processing Di Chen, SAS Beijing R&D, Beijing, China ABSTRACT SAS is a highly flexible and extensible programming language, and a rich

More information

SIMPLIFY AND STREAMLINE USING PYTHON

SIMPLIFY AND STREAMLINE USING PYTHON SIMPLIFY AND STREAMLINE USING PYTHON October 25 th, 2018 Copyright 2018 Covance. All Rights Reserved Michael Stackhouse BIOGRAPHY Michael Stackhouse holds a bachelor s degree from Arcadia University where

More information

Paper ###-YYYY. SAS Enterprise Guide: A Revolutionary Tool! Jennifer First, Systems Seminar Consultants, Madison, WI

Paper ###-YYYY. SAS Enterprise Guide: A Revolutionary Tool! Jennifer First, Systems Seminar Consultants, Madison, WI Paper ###-YYYY SAS Enterprise Guide: A Revolutionary Tool! Jennifer First, Systems Seminar Consultants, Madison, WI ABSTRACT Whether you are a novice or a pro with SAS, Enterprise Guide has something for

More information

Macro Basics. Introduction. Defining and Using Macro Variables. Defining and Using Macros. Macro Parameters. Part 1. Chapter 1. Chapter 2.

Macro Basics. Introduction. Defining and Using Macro Variables. Defining and Using Macros. Macro Parameters. Part 1. Chapter 1. Chapter 2. Part 1 Macro Basics Chapter 1 Chapter 2 Chapter 3 Chapter 4 Introduction Defining and Using Macro Variables Defining and Using Macros Macro Parameters 2 Carpenter s Complete Guide to the SAS Macro Language

More information

One Project, Two Teams: The Unblind Leading the Blind

One Project, Two Teams: The Unblind Leading the Blind ABSTRACT PharmaSUG 2017 - Paper BB01 One Project, Two Teams: The Unblind Leading the Blind Kristen Reece Harrington, Rho, Inc. In the pharmaceutical world, there are instances where multiple independent

More information

PharmaSUG China Paper 059

PharmaSUG China Paper 059 PharmaSUG China 2016 - Paper 059 Using SAS @ to Assemble Output Report Files into One PDF File with Bookmarks Sam Wang, Merrimack Pharmaceuticals, Inc., Cambridge, MA Kaniz Khalifa, Leaf Research Services,

More information

Copy That! Using SAS to Create Directories and Duplicate Files

Copy That! Using SAS to Create Directories and Duplicate Files Copy That! Using SAS to Create Directories and Duplicate Files, SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and

More information

Paper William E Benjamin Jr, Owl Computer Consultancy, LLC

Paper William E Benjamin Jr, Owl Computer Consultancy, LLC Paper 025-2009 So, You ve Got Data Enterprise Wide (SAS, ACCESS, EXCEL, MySQL, and Others); Well, Let SAS Enterprise Guide Software Point-n-Click Your Way to Using It William E Benjamin Jr, Owl Computer

More information

How to validate clinical data more efficiently with SAS Clinical Standards Toolkit

How to validate clinical data more efficiently with SAS Clinical Standards Toolkit PharmaSUG China2015 - Paper 24 How to validate clinical data more efficiently with SAS Clinical Standards Toolkit Wei Feng, SAS R&D, Beijing, China ABSTRACT How do you ensure good quality of your clinical

More information

Automated Creation of Submission-Ready Artifacts Silas McKee, Accenture, Pennsylvania, USA Lourdes Devenney, Accenture, Pennsylvania, USA

Automated Creation of Submission-Ready Artifacts Silas McKee, Accenture, Pennsylvania, USA Lourdes Devenney, Accenture, Pennsylvania, USA Paper DH06 Automated Creation of Submission-Ready Artifacts Silas McKee, Accenture, Pennsylvania, USA Lourdes Devenney, Accenture, Pennsylvania, USA ABSTRACT Despite significant progress towards the standardization

More information

The Next Generation Smart Program Repository

The Next Generation Smart Program Repository Paper TT08 The Next Generation Smart Program Repository Hrideep Antony, Syneos Health, Cary, USA Aman Bahl, Syneos Health, Ontario, Canada ABSTRACT The term repository sounds very routine, but what if

More information

START CONVERTING FROM TEXT DATE/TIME VALUES

START CONVERTING FROM TEXT DATE/TIME VALUES A Macro Mapping Date and Time Variable to CDISC Date and Time Variable Song Liu, Biogen Idec, San Diego, California Brett Sellars, Biogen Idec, San Diego, California ABSTRACT The Clinical Data Interchange

More information

Paper A Simplified and Efficient Way to Map Variable Attributes of a Clinical Data Warehouse

Paper A Simplified and Efficient Way to Map Variable Attributes of a Clinical Data Warehouse Paper 117-28 A Simplified and Efficient Way to Map Variable Attributes of a Clinical Data Warehouse Yanyun Shen, Genentech, Inc., South San Francisco ABSTRACT In the pharmaceutical industry, pooling a

More information

PharmaSUG 2014 PO16. Category CDASH SDTM ADaM. Submission in standardized tabular form. Structure Flexible Rigid Flexible * No Yes Yes

PharmaSUG 2014 PO16. Category CDASH SDTM ADaM. Submission in standardized tabular form. Structure Flexible Rigid Flexible * No Yes Yes ABSTRACT PharmaSUG 2014 PO16 Automation of ADAM set Creation with a Retrospective, Prospective and Pragmatic Process Karin LaPann, MSIS, PRA International, USA Terek Peterson, MBA, PRA International, USA

More information

PharmaSUG Paper AD09

PharmaSUG Paper AD09 PharmaSUG 2015 - Paper AD09 The Dependency Mapper: How to save time on changes post database lock Apoorva Joshi, Biogen, Cambridge, MA Shailendra Phadke, Eliassen Group, Wakefield, MA ABSTRACT We lay emphasis

More information

JMP Clinical. Getting Started with. JMP Clinical. Version 3.1

JMP Clinical. Getting Started with. JMP Clinical. Version 3.1 JMP Clinical Version 3.1 Getting Started with JMP Clinical Creativity involves breaking out of established patterns in order to look at things in a different way. Edward de Bono JMP, A Business Unit of

More information

What s New in SAS Studio?

What s New in SAS Studio? ABSTRACT Paper SAS1832-2015 What s New in SAS Studio? Mike Porter, Amy Peters, and Michael Monaco, SAS Institute Inc., Cary, NC If you have not had a chance to explore SAS Studio yet, or if you re anxious

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

Submitting Code in the Background Using SAS Studio

Submitting Code in the Background Using SAS Studio ABSTRACT SAS0417-2017 Submitting Code in the Background Using SAS Studio Jennifer Jeffreys-Chen, SAS Institute Inc., Cary, NC As a SAS programmer, how often does it happen that you would like to submit

More information

SAS Clinical Data Integration Server 2.1

SAS Clinical Data Integration Server 2.1 SAS Clinical Data Integration Server 2.1 User s Guide Preproduction Documentation THIS DOCUMENT IS A PREPRODUCTION DRAFT AND IS PROVIDED BY SAS INSTITUTE INC. ON AN AS IS BASIS WITHOUT WARRANTY OF ANY

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

Going Under the Hood: How Does the Macro Processor Really Work?

Going Under the Hood: How Does the Macro Processor Really Work? Going Under the Hood: How Does the Really Work? ABSTRACT Lisa Lyons, PPD, Inc Hamilton, NJ Did you ever wonder what really goes on behind the scenes of the macro processor, or how it works with other parts

More information

Automate Clinical Trial Data Issue Checking and Tracking

Automate Clinical Trial Data Issue Checking and Tracking PharmaSUG 2018 - Paper AD-31 ABSTRACT Automate Clinical Trial Data Issue Checking and Tracking Dale LeSueur and Krishna Avula, Regeneron Pharmaceuticals Inc. Well organized and properly cleaned data are

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

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

Legacy to SDTM Conversion Workshop: Tools and Techniques

Legacy to SDTM Conversion Workshop: Tools and Techniques Legacy to SDTM Conversion Workshop: Tools and Techniques Mike Todd President Nth Analytics Legacy Data Old studies never die Legacy studies are often required for submissions or pharmacovigilence. Often

More information

SAS Studio: A New Way to Program in SAS

SAS Studio: A New Way to Program in SAS SAS Studio: A New Way to Program in SAS Lora D Delwiche, Winters, CA Susan J Slaughter, Avocet Solutions, Davis, CA ABSTRACT SAS Studio is an important new interface for SAS, designed for both traditional

More information

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

The Impossible An Organized Statistical Programmer Brian Spruell and Kevin Mcgowan, SRA Inc., Durham, NC Paper CS-061 The Impossible An Organized Statistical Programmer Brian Spruell and Kevin Mcgowan, SRA Inc., Durham, NC ABSTRACT Organization is the key to every project. It provides a detailed history of

More information

Tips on Creating a Strategy for a CDISC Submission Rajkumar Sharma, Nektar Therapeutics, San Francisco, CA

Tips on Creating a Strategy for a CDISC Submission Rajkumar Sharma, Nektar Therapeutics, San Francisco, CA PharmaSUG 2015 - Paper IB09 Tips on Creating a Strategy for a CDISC Submission Rajkumar Sharma, Nektar Therapeutics, San Francisco, CA ABSTRACT A submission to FDA for an NDA (New Drug Application) or

More information

Automated Checking Of Multiple Files Kathyayini Tappeta, Percept Pharma Services, Bridgewater, NJ

Automated Checking Of Multiple Files Kathyayini Tappeta, Percept Pharma Services, Bridgewater, NJ PharmaSUG 2015 - Paper QT41 Automated Checking Of Multiple Files Kathyayini Tappeta, Percept Pharma Services, Bridgewater, NJ ABSTRACT Most often clinical trial data analysis has tight deadlines with very

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

SAS Model Manager 2.2. Tutorials

SAS Model Manager 2.2. Tutorials SAS Model Manager 2.2 Tutorials The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2009. SAS Model Manager 2.2: Tutorials. Cary, NC: SAS Institute Inc. SAS Model Manager

More information

Clinical Standards Toolkit 1.7

Clinical Standards Toolkit 1.7 SAS Clinical Standards Toolkit 1.7 Migration Guide SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2015. SAS Clinical Standards Toolkit 1.7: Migration

More information

A Practical Introduction to SAS Data Integration Studio

A Practical Introduction to SAS Data Integration Studio ABSTRACT A Practical Introduction to SAS Data Integration Studio Erik Larsen, Independent Consultant, Charleston, SC Frank Ferriola, Financial Risk Group, Cary, NC A useful and often overlooked tool which

More information

SDTM Automation with Standard CRF Pages Taylor Markway, SCRI Development Innovations, Carrboro, NC

SDTM Automation with Standard CRF Pages Taylor Markway, SCRI Development Innovations, Carrboro, NC PharmaSUG 2016 - Paper PO21 SDTM Automation with Standard CRF Pages Taylor Markway, SCRI Development Innovations, Carrboro, NC ABSTRACT Much has been written about automatically creating outputs for the

More information

PharmaSUG Paper PO22

PharmaSUG Paper PO22 PharmaSUG 2015 - Paper PO22 Challenges in Developing ADSL with Baseline Data Hongyu Liu, Vertex Pharmaceuticals Incorporated, Boston, MA Hang Pang, Vertex Pharmaceuticals Incorporated, Boston, MA ABSTRACT

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

Paper HOW-06. Tricia Aanderud, And Data Inc, Raleigh, NC

Paper HOW-06. Tricia Aanderud, And Data Inc, Raleigh, NC Paper HOW-06 Building Your First SAS Stored Process Tricia Aanderud, And Data Inc, Raleigh, NC ABSTRACT Learn how to convert a simple SAS macro into three different stored processes! Using examples from

More information

Harnessing the Web to Streamline Statistical Programming Processes

Harnessing the Web to Streamline Statistical Programming Processes Paper TT03 Harnessing the Web to Streamline Statistical Programming Processes Daniel Boisvert, Biogen, Cambridge MA, USA Pankaj Kumar, Biogen, Cambridge MA, USA Gordon Schantz, Biogen, Cambridge MA, USA

More information

SAS (Statistical Analysis Software/System)

SAS (Statistical Analysis Software/System) SAS (Statistical Analysis Software/System) Clinical SAS:- Class Room: Training Fee & Duration : 23K & 3 Months Online: Training Fee & Duration : 25K & 3 Months Learning SAS: Getting Started with SAS Basic

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

How Managers and Executives Can Leverage SAS Enterprise Guide

How Managers and Executives Can Leverage SAS Enterprise Guide Paper 8820-2016 How Managers and Executives Can Leverage SAS Enterprise Guide ABSTRACT Steven First and Jennifer First-Kluge, Systems Seminar Consultants, Inc. SAS Enterprise Guide is an extremely valuable

More information

The first approach to accessing pathology diagnostic information is the use of synoptic worksheets produced by the

The first approach to accessing pathology diagnostic information is the use of synoptic worksheets produced by the ABSTRACT INTRODUCTION Expediting Access to Critical Pathology Data Leanne Goldstein, City of Hope, Duarte, CA Rebecca Ottesen, City of Hope, Duarte, CA Julie Kilburn, City of Hope, Duarte, CA Joyce Niland,

More information

Quality Control of Clinical Data Listings with Proc Compare

Quality Control of Clinical Data Listings with Proc Compare ABSTRACT Quality Control of Clinical Data Listings with Proc Compare Robert Bikwemu, Pharmapace, Inc., San Diego, CA Nicole Wallstedt, Pharmapace, Inc., San Diego, CA Checking clinical data listings with

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

Predictive Modeling with SAS Enterprise Miner

Predictive Modeling with SAS Enterprise Miner Predictive Modeling with SAS Enterprise Miner Practical Solutions for Business Applications Third Edition Kattamuri S. Sarma, PhD Solutions to Exercises sas.com/books This set of Solutions to Exercises

More information

Enterprise Client Software for the Windows Platform

Enterprise Client Software for the Windows Platform Paper 154 Enterprise Client Software for the Windows Platform Gail Kramer, SAS Institute Inc., Cary, NC Carol Rigsbee, SAS Institute Inc., Cary, NC John Toebes, SAS Institute Inc., Cary, NC Jeff Polzin,

More information

Advantages of a real end-to-end approach with CDISC standards

Advantages of a real end-to-end approach with CDISC standards Advantages of a real end-to-end approach with CDISC standards Dr. Philippe Verplancke CEO XClinical GmbH 26th Annual EuroMeeting 25-27 March 2014 ACV, Vienna Austria Disclaimer The views and opinions expressed

More information

Using GSUBMIT command to customize the interface in SAS Xin Wang, Fountain Medical Technology Co., ltd, Nanjing, China

Using GSUBMIT command to customize the interface in SAS Xin Wang, Fountain Medical Technology Co., ltd, Nanjing, China PharmaSUG China 2015 - Paper PO71 Using GSUBMIT command to customize the interface in SAS Xin Wang, Fountain Medical Technology Co., ltd, Nanjing, China One of the reasons that SAS is widely used as the

More information

Transitioning from Batch and Interactive SAS to SAS Enterprise Guide Brian Varney, Experis Business Analytics, Portage, MI

Transitioning from Batch and Interactive SAS to SAS Enterprise Guide Brian Varney, Experis Business Analytics, Portage, MI Paper BI-05-2013 Transitioning from Batch and Interactive SAS to SAS Enterprise Guide Brian Varney, Experis Business Analytics, Portage, MI ABSTRACT Although the need for access to data and analytical

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

Better Metadata Through SAS II: %SYSFUNC, PROC DATASETS, and Dictionary Tables

Better Metadata Through SAS II: %SYSFUNC, PROC DATASETS, and Dictionary Tables Paper 3458-2015 Better Metadata Through SAS II: %SYSFUNC, PROC DATASETS, and Dictionary Tables ABSTRACT Louise Hadden, Abt Associates Inc., Cambridge, MA SAS provides a wealth of resources for users to

More information

SAS. IT Service Level Management 2.1: Migration Documentation

SAS. IT Service Level Management 2.1: Migration Documentation SAS IT Service Level Management 2.1: Migration Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2005. SAS IT Service Level Management 2.1: Migration Documentation.

More information

SAS Model Manager 2.3

SAS Model Manager 2.3 SAS Model Manager 2.3 Administrator's Guide SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2010. SAS Model Manager 2.3: Administrator's Guide. Cary,

More information

From SDTM to displays, through ADaM & Analyses Results Metadata, a flight on board METADATA Airlines

From SDTM to displays, through ADaM & Analyses Results Metadata, a flight on board METADATA Airlines From SDTM to displays, through ADaM & Analyses Results Metadata, a flight on board METADATA Airlines Omar SEFIANI - Stéphane BOUGET, Boehringer Ingelheim DH13, PhUSE Barcelona 2016, October, 12 th Outline

More information

It s not the Yellow Brick Road but the SAS PC FILES SERVER will take you Down the LIBNAME PATH= to Using the 64-Bit Excel Workbooks.

It s not the Yellow Brick Road but the SAS PC FILES SERVER will take you Down the LIBNAME PATH= to Using the 64-Bit Excel Workbooks. Paper FP_82 It s not the Yellow Brick Road but the SAS PC FILES SERVER will take you Down the LIBNAME PATH= to Using the 64-Bit Excel Workbooks. ABSTRACT William E Benjamin Jr, Owl Computer Consultancy,

More information

Installation and Configuration Instructions. SAS Model Manager API. Overview

Installation and Configuration Instructions. SAS Model Manager API. Overview Installation and Configuration Instructions SAS Model Manager 2.1 This document is intended to guide an administrator through the pre-installation steps, the installation process, and post-installation

More information

Locking SAS Data Objects

Locking SAS Data Objects 59 CHAPTER 5 Locking SAS Data Objects Introduction 59 Audience 60 About the SAS Data Hierarchy and Locking 60 The SAS Data Hierarchy 60 How SAS Data Objects Are Accessed and Used 61 Types of Locks 62 Locking

More information

Data Science Services Dirk Engfer Page 1 of 5

Data Science Services Dirk Engfer Page 1 of 5 Page 1 of 5 Services SAS programming Conform to CDISC SDTM and ADaM within clinical trials. Create textual outputs (tables, listings) and graphical output. Establish SAS macros for repetitive tasks and

More information

Installation Instructions for Release 5.2 of the SAS Performance Management Solutions

Installation Instructions for Release 5.2 of the SAS Performance Management Solutions Installation Instructions for Release 5.2 of the SAS Performance Management Solutions Copyright Notice The correct bibliographic citation for this manual is as follows: SAS Institute Inc., Installation

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

Document and Enhance Your SAS Code, Data Sets, and Catalogs with SAS Functions, Macros, and SAS Metadata. Louise S. Hadden. Abt Associates Inc.

Document and Enhance Your SAS Code, Data Sets, and Catalogs with SAS Functions, Macros, and SAS Metadata. Louise S. Hadden. Abt Associates Inc. Document and Enhance Your SAS Code, Data Sets, and Catalogs with SAS Functions, Macros, and SAS Metadata Louise S. Hadden Abt Associates Inc. Louise Hadden has been using and loving SAS since the days

More information

SAS Simulation Studio 14.1: User s Guide. Introduction to SAS Simulation Studio

SAS Simulation Studio 14.1: User s Guide. Introduction to SAS Simulation Studio SAS Simulation Studio 14.1: User s Guide Introduction to SAS Simulation Studio This document is an individual chapter from SAS Simulation Studio 14.1: User s Guide. The correct bibliographic citation for

More information

PharmaSUG. companies. This paper. will cover how. processes, a fairly linear. before moving. be carried out. Lifecycle. established.

PharmaSUG. companies. This paper. will cover how. processes, a fairly linear. before moving. be carried out. Lifecycle. established. PharmaSUG 2016 - Paper PO17 Standards Implementationn & Governance: Carrot or Stick? Julie Smiley, Akana, San Antonio, Texas Judith Goud, Akana, Bennekom, Netherlands ABSTRACT With the looming FDA mandate

More information

Patricia Guldin, Merck & Co., Inc., Kenilworth, NJ USA

Patricia Guldin, Merck & Co., Inc., Kenilworth, NJ USA SESUG 2015 Paper AD-35 Programming Compliance Made Easy with a Time Saving Toolbox Patricia Guldin, Merck & Co., Inc., Kenilworth, NJ USA ABSTRACT Programmers perform validation in accordance with established

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

Syntax Conventions for SAS Programming Languages

Syntax Conventions for SAS Programming Languages Syntax Conventions for SAS Programming Languages SAS Syntax Components Keywords A keyword is one or more literal name components of a language element. Keywords are uppercase, and in reference documentation,

More information

Your Data Visualization Game Is Strong Take It to Level 8.2

Your Data Visualization Game Is Strong Take It to Level 8.2 Paper SAS2164-2018 Your Data Visualization Game Is Strong Take It to Level 8.2 Brandon Kirk and Jason Shoffner, SAS Institute Inc., Cary, NC ABSTRACT Your organization already uses SAS Visual Analytics,

More information

Addressing the Java Deserialization Vulnerability for SAS Software

Addressing the Java Deserialization Vulnerability for SAS Software README Addressing the Java Deserialization Vulnerability for SAS Software If you have applied SAS Security Update 2015-11 or 2016-02 and the hot fixes associated with them, you should still apply SAS Security

More information

Administering SAS Enterprise Guide 4.2

Administering SAS Enterprise Guide 4.2 Administering SAS Enterprise Guide 4.2 SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2009. Administering SAS Enterprise Guide 4.2. Cary, NC: SAS

More information

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

Implementing CDISC Using SAS. Full book available for purchase here. Implementing CDISC Using SAS. Full book available for purchase here. Contents About the Book... ix About the Authors... xv Chapter 1: Implementation Strategies... 1 The Case for Standards... 1 Which Models

More information

An Introduction to SAS/SHARE, By Example

An Introduction to SAS/SHARE, By Example Paper AD01 An Introduction to SAS/SHARE, By Example Larry Altmayer, U.S. Census Bureau, Washington, DC ABSTRACT SAS/SHARE software is a useful tool for allowing several users to access and edit the same

More information

TECHNICAL PAPER USING VERSION 9.2 OF THE SAS BUSINESS INTELLIGENCE PLATFORM TO ASSIGN UNIQUE SAS APPLICATION SERVERS TO SAS WEB ANALYTICS

TECHNICAL PAPER USING VERSION 9.2 OF THE SAS BUSINESS INTELLIGENCE PLATFORM TO ASSIGN UNIQUE SAS APPLICATION SERVERS TO SAS WEB ANALYTICS TECHNICAL PAPER USING VERSION 9.2 OF THE SAS BUSINESS INTELLIGENCE PLATFORM TO ASSIGN UNIQUE SAS APPLICATION SERVERS TO SAS WEB ANALYTICS Table of Contents Introduction... 1 Deployment and Configuration

More information

Programming checks: Reviewing the overall quality of the deliverables without parallel programming

Programming checks: Reviewing the overall quality of the deliverables without parallel programming PharmaSUG 2016 Paper IB04 Programming checks: Reviewing the overall quality of the deliverables without parallel programming Shailendra Phadke, Baxalta US Inc., Cambridge MA Veronika Csom, Baxalta US Inc.,

More information

define.xml: A Crash Course Frank DiIorio

define.xml: A Crash Course Frank DiIorio sponsor requests ODM extensions XSL-FO schema/xsd define.xml define.xml: A Crash Course metadata tables XML4Pharma metadata interface (the other) define.pdf ODM itext Frank DiIorio CodeCrafters, Inc. Philadelphia

More information