(Author: Roland Rashleigh-Berry
Date: 10 Jun 2006)
Spectre offers very little to help programmers build their derived datasets. It is quite the opposite, in fact. You have to help the reporting system. This will be explained later.
The reporting system upon which this one is based, used the "make" utility. The "make" utility analyses the dependencies between programs and creates a script to run programs in the correct order. Though an extremely clever utility, I witnessed much time wasted in editing the scripts it created. Also, nearly all the programs within a reporting system are there to create tables and listings, and if this is sensibly done from derived/stats/reporting-ready datasets then there should no dependencies between these programs. This only leaves the few programs that create the derived datasets (maybe only twenty) and there are easier, more visible and more obvious ways of running these programs in the correct order.
The way derived datasets are built, there is usually a cut down version of an "acct" dataset that the other programs use so this cut down "acct" dataset has to be the first built. Let us assume that this cut down "acct" dataset is named "acct0". There may well be other programs that have to be run before this can be created, so a recommended name for it would be s10_acct0.sas . The "10" gives it the main order key, the full name "s10_acct0" is the name order key and will be used as the second key in the sort. Note the underscore. This is compulsory. You can have other underscores but the number must be directly before the first underscore. The actual "name" part of the program, in this case "acct0", should be the same as the dataset it builds. Finally, the program name, to qualify, must end with ".sas".
The way the scripts are delivered, it is a requirement that program names starts with "s" or "d" but the Spectre administrator is allowed to edit the script to change this to meet your site standards. Note that you must not leave old versions of programs around that fit this pattern, otherwise these old versions will be run as well. For example, suppose you have an old version of the program just mentioned, then do not call it s10_acct0_old.sas or this too will be run. Call it s10_acct0.old instead or use some other way to make sure it does not match the pattern.
There will often be some dependencies between the derived dataset build programs. To give an example, it may be a requirement to include the dose a patient was on for the onset of every AE (Adverse Event). So the "dose" dataset program has to come before the "adv" (adverse event) dataset program. So if the dose program is named s11_dose.sas then the adverse event dataset program should be called s12_adv.sas (assuming the dataset is named "adv").
From time to time, programs will have to be renamed where more dependencies are found. This can get out of control, with numbers going higher and higher, unless two rules are followed. These are:
The Spectre administrator is also aware of these rules and will make checks on your program names.
- No derived dataset is allowed to contain fields that are in the full "acct" dataset that are not in the cut down "acct0" dataset. This is only allowed for efficacy datasets.
- You should use the lowest number you can, within the constraints of the numbering system.
derorder |
You can use this script to ensure that all the programs you want to run will be run and those you do not want to run will be left out. You will see the order in which your programs will be run.
Use the "Back" button of your browser to return to the previous page.