Phase-III Macro System auf der PhUSE Berlin 2010
- Fraktal Programming
- Phase-III Macro System
WOLF-DIETER BATZ, Phenix-MTK GmbH |
The Phase-III Macro System is a flexible, data independent and parameter controlled set of SAS macros. Module size is kept small (three screen pages at maximum) for maintainability and avoids hard-coded references to any application related information like data types, labels and formats. Coding style makes broad use of automatic documentation and generation of meta data and lookup tables at runtime. |
- INTRODUCTION
The Phase-III Macro System is aimed at serving as a base for an extendable system that provides mechanisms for shaping input datasets, processing calculations and generating SAS datasets with ready made text content. The following requirements are met:
- Produce a wide variety of output with a minimum set of modules.
- Minimize maintenance efforts through self-documenting and limited program code.
- Be prepared to add new output structures without substantial delay.
The Phase-III Macro System is a highly interactive collection of macro modules providing transformation methods for study emergent datasets making use of all the information available in the description part of the dataset processed.
It provides subroutines that care for data types, formats, labels, headers, missing values, loops and more. Runtime generated information used to control processing is kept in standardized data structures using macro variable lists (“mlists”), SAS formats and datasets.
The user is provided with (an) output dataset(s) containing character columns with standard names and externally controlled attributes. Finally the Phase-III Macro System provides pre- and post processing functionality such as condense, struct and missline.
- SCOPE
The Requirements, Ideas, Architecture and Solution described here have been taken from the statistical programming part of a clinical study for which I was contracted a few years ago. As part of the excellent and precisely defined processes the study was based on, a booklet, the so-called table shell, served as unique reference for the total of all tabulation to be performed and later addressed to the health authorities for approval.
- SUSTAINABLE APPROACH
The ordinary way to go would have been to immediately start programming in order to generate the first table according to the definition from the table shell and then continue one-by-one. But for some reason we did not do that. Maybe because the number of tables was too large to accomplish programming both, in-time and in high quality, or maybe because we were expecting a number of minor last-minute-changes to eat up more time than was available after database closure or, worse, after un-blinding.
- REQUIREMENTS ANALYSIS
Instead, we started by investing some time to have a closer look at the table definitions. Not at all surprising, we identified a limited number of similarities and dissimilarities that resulted in two lists: The first one listed table structures found and the second one listed parameters. After that every single entry from the table-shell could be expressed as variation and combination from on one or more structures.
- CONTACT INFORMATION
Your comments and questions are valued and encouraged. Contact the author at:
Wolf Dieter Batz Phenix-MTK GmbH Wiesengrund 8 D-69234 Dielheim +491772163609 +496222770095 (Fax) batz@phenix-mtk.com www.phenix-mtk.com
Brand and product names are trademarks of their respective companies.