This case study considers
these three issues related to the support of the SAS Clinical Standards
Toolkit messaging:
-
Maintain the relationship
between the SAS Clinical Standards Toolkit standard-specific messages
and standard-specific validation checks.
-
Maintain the relationship
between messages and validation check macro code.
(Deviations are acceptable
to the extent that missing parameters have suitable defaults.)
-
Internationalize messages.
A SAS Clinical Standards
Toolkit message is created for each distinct combination of the Validation
Master standard and checksource fields. This allows the SAS Clinical
Standards Toolkit to support checksource-specific messaging and severity.
A unique SAS Clinical Standards Toolkit message is required for each
value of the Validation Master standardversion field if that value
is not the wildcard ***.
Consider this CDISC
SDTM 3.1.1 Validation Master record excerpt:
Validation Master Data Set Excerpt for Check SDTM0013
The SAS Clinical Standards
Toolkit representation of the SDTM0013 check in the Messages data
set is:
Messages Data Set Excerpt for Check SDTM0013
The Messages data set
contains two records because there are two distinct checksource values
for Validation Master checkid SDTM0013.
Consider this CDISC
SDTM Validation Master record excerpt:
Validation Master Data Set Excerpt for Check CUST0073
Three separate invocations
of CUST0073 are represented. Each record points to a different domain
(tablescope). This example assumes that the CDISC SDTM 3.1.2 standard
has been registered. The first and third records (AE and MH domains)
indicate that this specific implementation of the check is applicable
to all versions of CDISC SDTM. However, the second record is applicable
to only CDISC SDTM 3.1.2 (because CE is a new domain in SDTM 3.1.2).
Only two Messages data
set records are required:
Messages Data Set Excerpt for Check CUST0073
It is the distinct combinations
of the Validation Master checkid, standardversion, and checksource
fields that control the associated Messages data set records.
It is important to maintain
the relationship between messages and validation check macro code.
If the validation check macro code references an unknown resultid,
the text
<Message lookup failed to find matching record>
is written to the Results data set.
The CUST0073 check defines
a substitution parameter (&_cstParm1). (The SAS Clinical Standards
Toolkit code assumes that message substitution parameters begin with
the string &_cst.) For the calling validation check macro to support
parameters when writing output to the Results data set, the parameters
that are passed should be syntactically consistent with the messagetext
field in the Messages data set.
Building the message
record to use a default value (as specified in the parameter1 field)
solves the problem when the calling macro fails to pass a substitution
value. Using parameters is optional. Parameters might be needed only
if the message is to be used in multiple contexts where substitutions
of parameter values help interpret the message.
The SAS Clinical Standards
Toolkit supports the internationalization of messages through specifying
message file references in the SASReferences data set (type=messages).
If referenced message files conform to the structure expected by the
SAS Clinical Standards Toolkit, any text, including internationalized
text, can be included.