Phase-III Macro System auf der PhUSE Berlin 2010

Aus phenixxenia.org
Zur Navigation springen Zur Suche springen

Fraktal Programming

Phase-III Macro System

Author
WOLF-DIETER BATZ, Phenix-MTK GmbH 
Summary

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.