This case
study considers the following three issues related to the support
of SAS Clinical Standards Toolkit messaging:
-
Maintain
the relationship between 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
the following CDISC SDTM 3.1.1 Validation Master record excerpts:
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
the following CDISC SDTM Validation Master record excerpts:
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 only be needed 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.