The Message
Maker Project
is a collaboration effort between the National Institute of Standards
and Technology (NIST) and the Health Level 7 (HL7) Standards Consortium.
NIST is directing their efforts towards the development of a conformance-testing
tool that automatically generates test messages for HL7 message profile
specifications. The messages can be used to test systems for conformance.
A prototype of Message Maker is available at this site.
All NIST produced source code, documents, and associated products
are in the public domain. Message Maker is a work-in-progress,
as such, not all planned functionality is implemented;feedback on its design,
feature set, and usefulness is welcomed.
HL7 is an application-level
messaging standard for the healthcare industry and defines
the interfaces that allow centrally located and/or distributed
information systems to communicate. HL7 establishes the rules
for building interfaces and provides many optional features
to accommodate the disperse needs of the health care industry.
However, for interfaces to be implemented, a precise and unambiguous
specification must be defined. Message profiles can be employed
to constrict the definition of a message in a manner that specifically
states the optional constructs and processing rules of a message.
Tools, such as the Messaging Workbench (MWB), have been developed
to help in the construction of message profiles. Interfaces
modeled by a message profile need to be tested to ensure that
they have been implemented correctly. Current practice involves
meticulous by hand debugging of implementations as problems
appear. Test message suites and the tools to create them are
needed. Message Maker is a tool that that is designed to automatically and
dynamically generates test messages.
Figure 1. Overview
of Message Maker Process
Message Maker uses
the message template provided by the profile definition to populate
the primitive elements (fields, components, and sub-components)
with data content to create test messages. The data used to
populate the messages is drawn from a number of sources including
the NIST developed database of HL7 data items, HL7 tables, user
tables, and external tables.
Message Maker creates
a test suite of messages for a given profile. The messages can
be valid or invalid and contain variation from message to message.
An example of an invalid message is a missing data item for
a required field. A number of test parameters control the variation
in the construction of a message. These may include segment
and field cardinality, the usage of certain primitive fields,
value sets, data content, and more. Data content variation is
achieved by randomly selecting items from the HL7 items database.
The core engine of
Message Maker generates messages in an XML format. These messages
can be subsequently transformed into the HL7 ER7 format. Figure
1 depicts a functional overview of Message Maker. Processing
is XML based. Profile generation tools, such as MWB, export
message specifications as XML documents. Data sources, converted
into XML files, along with the profile are used by the XSL transformation
generation engine to create the test messages. Descriptive metadata
is recorded for each message. This information can be browsed
to gained insight on the purpose of the test messages. Later
stages of this project will include a testing framework that
will utilize these messages to examine the correctness of an
interface implementation to a specification.