Professional Documents
Culture Documents
User’s Guide
Release 1.0.0
June 2003
Important Information
SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH
EMBEDDED OR BUNDLED TIBCO SOFTWARE IS SOLELY TO ENABLE THE FUNCTIONALITY
(OR PROVIDE LIMITED ADD-ON FUNCTIONALITY) OF THE LICENSED TIBCO SOFTWARE.
THE EMBEDDED OR BUNDLED SOFTWARE IS NOT LICENSED TO BE USED OR ACCESSED BY
ANY OTHER TIBCO SOFTWARE OR FOR ANY OTHER PURPOSE.
USE OF TIBCO SOFTWARE AND THIS DOCUMENT IS SUBJECT TO THE TERMS AND
CONDITIONS OF A LICENSE AGREEMENT FOUND IN EITHER A SEPARATELY EXECUTED
SOFTWARE LICENSE AGREEMENT, OR, IF THERE IS NO SUCH SEPARATE AGREEMENT,
THE CLICKWRAP END USER LICENSE AGREEMENT WHICH IS DISPLAYED DURING
DOWNLOAD OR INSTALLATION OF THE SOFTWARE (AND WHICH IS DUPLICATED IN THE
TIBCO BUSINESSCONNECT EDI PROTOCOL GUIDE). USE OF THIS DOCUMENT IS SUBJECT
TO THOSE TERMS AND CONDITIONS, AND YOUR USE HEREOF SHALL CONSTITUTE
ACCEPTANCE OF AND AN AGREEMENT TO BE BOUND BY THE SAME.
This document contains confidential information that is subject to U.S. and international copyright
laws and treaties. No part of this document may be reproduced in any form without the written
authorization of TIBCO Software Inc.
Technologies described herein are covered by existing patents and pending patent applications.
TIBCO technology is protected under US patent number 6,003,011.
TIB, TIBCO, Information Bus, The Power of Now, TIBCO ActiveExchange, TIBCO BusinessConnect
EDI Protocol, TIBCO BusinessConnect EDI Protocol HIPAA Edition, TIBCO HL7 Message Designer,
TIBCO Designer, TIBCO HL7 Integration Server, TIBCO BusinessWorks, TIBCO BusinessPartner,
and TIBCO BusinessConnect are either registered trademarks or trademarks of TIBCO Software Inc.
in the United States and/or other countries.
EJB, J2EE, JMS and all Java-based trademarks and logos are trademarks or registered trademarks of
Sun Microsystems, Inc. in the U.S. and other countries.
All other product and company names and marks mentioned in this document are the property of
their respective owners and are mentioned for identification purposes only.
THIS DOCUMENT IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
THIS DOCUMENT COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL
ERRORS. CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESE
CHANGES WILL BE INCORPORATED IN NEW EDITIONS OF THIS DOCUMENT. TIBCO
SOFTWARE INC. MAY MAKE IMPROVEMENTS AND/OR CHANGES IN THE PRODUCT(S)
AND/OR THE PROGRAM(S) DESCRIBED IN THIS DOCUMENT AT ANY TIME.
Copyright © 1999-2003 TIBCO Software Inc. ALL RIGHTS RESERVED.
TIBCO Software Inc. Confidential Information
| iii
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Related Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
TIBCO Product Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
Other TIBCO Product Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
How to Contact TIBCO Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Preface
This user’s guide explains how to use TIBCO HL7 Integration Server.
Topics
Related Documentation
This section lists documentation resources that you may find useful.
For comments or problems with this manual or the software it addresses, please
contact TIBCO Support Services as follows.
• For an overview of TIBCO Support Services, and information about getting
started with TIBCO Product Support, visit this site:
http://www.tibco.com/services/support/default.jsp
• If you already have a valid maintenance or support contract, visit this site:
http://support.tibco.com
Entry to this site requires a username and password. If you do not have a
username, you can request one.
This chapter gives an overview of HL7, TIBCO HL7 Integration Server, HIPAA,
and TIBCO BusinessConnect EDI Protocol HIPAA Edition.
Topics
HL7 (Health Level Seven) is a messaging standard for exchanging clinical and
administrative data between healthcare applications from various vendors,
typically within an enterprise. HIPAA was enacted in 1996 and is designed to
streamline healthcare transactions across enterprises and to uphold patients'
privacy rights.
TIBCO HL7 Integration Server can address the HL7 integration needs of an
enterprise. In addition to addressing HL7 needs, TIBCO HL7 Integration Server
addresses the HL7 requirement for integration with HIPAA, as HIPAA has HL7
requirements for some of its transactions. See ”TIBCO HL7/HIPAA Solutions” on
page 9 for more information.
For more information on HIPAA, please see the TIBCO BusinessConnect EDI
Protocol HIPAA Edition Guide.
HL7
Since HL7 does not establish or endorse canonical rules for compliance testing, an
interactive interface development process is a natural consequence.
HL7 is a broad protocol framework, so no one set of prescribed functions exists.
Application business rules determine which areas of the protocol make the most
sense to support. Attempting to prescribe or anticipate a transaction set may fail
due to the functional concerns of interface requirements.
For a software integrator, HL7 messaging requires setting boundaries between
application functions and messaging infrastructure. Our technical approach is to
develop an interface engine as a messaging hub within which to address issues
with vendor support for HL7 as well as to provide managed, guaranteed delivery
and queue management functions.
HL7 Evolution
HL7 has been evolving since its inception in 1987. Any integration platform for
HL7 must able to support the various versions of the standard.
The following shows the evolution of the HL7 versions.
Ver 2.2
Ver 1.0 Widely
First Draft Adopted
Ver 2.4
Ver 2.3 Current ANSI
Ver 2.0 ANSI Standard
Prototype Standard
Ver 3.0
Ver 2.1
First Ver 2.3.1
Standard
87 88 90 94 97 98 00 02
Version 3 differs from Version 2 in that all standards developed come from an
underlying Reference Information Model (RIM). Messages are developed
according to a defined set of development requirements known as the Message
Development Framework (MDF). The aim is to produce consistency in definition
of different information objects and their representation in messages in order to
facilitate implementation and the definition of clearer conformance requirements.
Furthermore, the underlying modeling approach allows for the definition of
standards for information representation other than just messages including
documentary forms, decision-support mechanisms, and electronic patient record
structures.
Functional Group
Areas of the protocol are grouped according to common application function. For
example, ADT, Order Entry, Finance, Control, and Ancillary Reporting all
represent groups described in the standard. Different functional groups are
typically given individual chapters in the HL7 specification document.
Message Type
Within a functional group, one or more message types are defined that can be
implemented in various combinations to support high-level business rules for the
applications involved. For example, ADT only specifies one message type, while
Order Entry describes more than a dozen.
Message Definition
Within each message type, one or more message definitions describe the specific
set or combination of segments that make up a properly formed message. For
example, ADT distinguishes among more than 30 separate message definitions
based on trigger events or more detailed business rules. Each message definition
includes one or more segments.
Segment Definition
Segments provide a logical grouping for data elements. For example, the Patient
Identification (PID) segment includes fields for such identifying information as
patient name, social security number, medical record number, account number,
and miscellaneous demographic details. How fields are grouped in segments
forms part of the HL7 implied data model. Segments can be required or optional,
can be nested, and can repeat. A parsed message, then, can take on a relatively
arbitrary yet unambiguous form. This is an important characteristic in the context
of decoding and encoding messages.
Field
The HL7 standard identifies several hundred data elements for communicating
patient demographic, clinical, and financial information. HL7 uses more than a
dozen abstract data types to define the nature of the fields. One consequence is
that some fields may hold more than one data element.
For example, a field that holds a time stamp (TS) follows a prescribed format. In
addition, many fields are or can be coded, and the standard includes a variety of
code tables to define acceptable contents. While each field is defined with a
maximum length, the standard does not intend to prescribe format to that level of
detail. In merely includes lengths because it helps readers understand the
purpose of the field, and it may have a practical importance in specific
implementations.
The HL7 protocol architecture does imply a data model that is reflected in the
message structure. HL7 has made a reasonable attempt to insure that data
elements do not overlap in segment definitions, so the organization of data
elements into message segments is analogous to a set of tables in a relational
database. Message definitions would be analogous to database views that involve
relating multiple tables to satisfy implied business rules.
Neither the implied data model nor the implied business rules should be
considered a generic reflection of the shared attributes of all healthcare
applications, even if they do represent much that is commonly accepted.
Pharmacy Insurance
Enterprise Company
Application Application
HL7 / XML
Radiology HL7 Government
Enterprise Funded
Application EDI HIPAA Insurance
TIBCO HL7 XML TIBCO TIBCO XML TIBCO HL7
Claims Application
Integration Business Business Integration
Pathology Server Connect Transactions Connect Server
Employer
Enterprise EDI EDI
Funded
Application Protocol Protocol
Insurance
HIPAA HIPAA
Application
Edition Edition
Physicians'
Enterprise Medicare
Application HL7 HL7 / XML Application
Compatibility
This version of TIBCO HL7 Integration Server installs with and is compatible
with TIBCO BusinessWorks 2.0.4.
Architecture
The following shows an example of how the key components in TIBCO HL7
Integration Server would fit into a hospital’s messaging architecture and how an
event like a patient admission would trigger message flow to the relevant systems
and components.
Event:
Patient Admission
See ”Tutorial — Patient Admission in TIBCO Designer (HL7)” on page 182 for
complete information on a sample patient admission.
Topics
Setup Requirements
System Requirements
The following are the minimum disk space and memory requirements:
• Free disk space: 175 MB
• Memory: 256 MB RAM
Software Requirements
The following software must be installed before starting any installation:
• Windows 2000, Solaris 8, AIX4.3.3, HP-UX 11, or HP-UX 11i
• TIBCO Rendezvous 6.8 or higher. Make sure that you have enough TIBCO
Rendezvous daemon and TIBCO Rendezvous router daemon licenses. Since
TIBCO BusinessWorks uses TIBCO Rendezvous as its internal messaging
software, you must ask for enough licenses for all networks. This includes
client subnets, server subnets, and development subnets.
Configuration Information
See the TIBCO BusinessWorks documentation for information on configuring
TIBCO BusinessWorks.
Installing on Windows
This section explains how to install TIBCO HL7 Integration Server on Windows.
You need administrator privileges for your system.
Uninstalling on Windows
You must first uninstall TIBCO HL7 Message Designer, as this is not uninstalled
with TIBCO HL7 Integration Server.
1. Select Start>Programs>TIBCO>TIBCO HL7 Integration Server> Uninstall
HL7 Message Designer.
2. Select Start>Programs>TIBCO>TIBCO Uninstaller.
Installing on UNIX
This section explains how to install TIBCO HL7 Integration Server on UNIX. The
tar installation type is available.
After Installing
Open a command line window to <HL7_installation_directory>/bin/. Making sure
to include the initial period (.) in the command below, in Bourne shell or k-shell,
enter
. setenv.sh
or, in c-shell, enter
source setenv.csh
Uninstalling on UNIX
Topics
The TIBCO HL7 Integration Server software package consists of design-time and
run-time components, as well as some learning tools.
Learning Tools
The TIBCO HL7 Integration Server package also offers the following learning
tools:
• Tutorials. These tutorials show how to work with HL7 message definitions
and activities in TIBCO Designer. See Chapter 6, ”Tutorials for TIBCO HL7
Integration Server”, page 111.
• Template. The dispatcher template provides some of the basic schemas and
processes needed to facilitate setting up complex HL7 solutions that involve
several message types from various systems. This can be used as a starting
point for users who want to create a complex HL7 implementation. See
”Template Process Diagram — Dispatcher” on page 96.
Interface Engine
One of the key activities in integrating health care systems is to implement the
Interface Engine functionality using the TIBCO BusinessWorks Process Engine in
the course of defining process models.
The following shows how the Interface Engine processes HL7 files from two
sample applications.
Call Center
Radiology
System
TCP Parser System
Enterprise
Enterprise
Application
HL7 Application
HL7
XML
Clinical
HL7
Laboratory
TCP Mapper Information
Front Office System
Data Entry TCP Enterprise
System Application
Enterprise
Application HL7
XML TCP
Pharmacy
Systems
Renderer TCP Enterprise
Application
HL7
The following high-level steps describe how to use the TIBCO HL7 Integration
Server components to develop message definitions and business work flow
definitions for your healthcare enterprise:
1. Create a .vmd message definition file for your project. To do this, use TIBCO
HL7 Message Designer to create new or customize existing message
definitions.
2. Use TIBCO Designer to import your new .vmd message definition file. See
”TIBCO Designer GUI” on page 48.
3. Use TIBCO Designer to create a business process definition based on your
message definition and your business work flow needs. See ”TIBCO Designer
GUI” on page 48.
4. After you have designed your implementation, it can be deployed. See the
TIBCO BusinessWorks User Guide for more information.
5. You can monitor your implementation using TIBCO Administrator. See the
TIBCO BusinessWorks User Guide for more information.
Topics
The TIBCO HL7 Message Designer is a Windows-based program that allows you
to create and edit HL7 message definitions. TIBCO HL7 Message Designer comes
with all the necessary 2.x HL7 standard libraries of message definitions.
TIBCO HL7 Message Designer also allows you to do the following:
• Import and customize message definitions based on your needs.
• Verify an HL7 message against the message definitions in order to find errors
in the message definition or in the message itself.
• Convert an HL7 message to its 2.x XML representation, and vice versa.
HL7 message definitions are stored in a .vmd message definition file. Typically,
you need to create a set of .vmd files, one for each of the HL7 enterprise systems
that your Interface Engine interacts with. Inside the .vmd file, you need to include
the message types that your HL7 systems support.
For HL7 version 3 support, you can use TIBCO TurboXML™, which is the XML
equivalent of the TIBCO HL7 Message Designer. TIBCO TurboXML enables you
to create, edit, and validate XML schema definitions using a .DTD and or .XSD.
You can also validate your HL7 XML message against a schema definition.
See ”How to Use TIBCO HL7 Integration Server Components” on page 25 for a
high-level description of where this software fits in the overall development of a
business process definition.
For complete information on how to use TIBCO HL7 Message Designer, see the
TIBCO HL7 Message Designer documentation, which is available through the
Help menu in TIBCO HL7 Message Designer.
If you are using UNIX, see ”Using TIBCO HL7 Message Designer with UNIX” on
page 19.
Tutorial
For a complete end-to-end tutorial that shows how to create a .vmd message
definition file and use it in a TIBCO Designer process, see ”Tutorial — Getting
Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7)” on
page 112.
For a simple, generic description of how to create a .vmd message definition file,
see ”Using the TIBCO HL7 Message Designer New Project Wizard” on page 29.
When you start TIBCO HL7 Message Designer, the New Project Wizard displays.
You can create a project by selecting New HL7 Project or Empty Project.
Typically, you would need to select New HL7 Project, as this allows you to import
certain standard message definitions to serve as a starting point for your message
definitions.
The New Project Wizard is available when you start TIBCO HL7 Message
Designer.
1. Select Start>Programs>TIBCO>TIBCO HL7 Integration Server>TIBCO HL7
Message Designer.
7. Click Next.
8. Click Next.
9. Click Finish.
10. Click Done. The directory for the new project displays.
11. Select File>Save As... to save your new .vmd, or customize it and then save.
For a tutorial on using the TIBCO HL7 Message Designer, see ”Tutorial — Getting
Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7)” on
page 112.
If you are developing a project in TIBCO Designer that involves multiple .vmd
message definition files, make sure that each .vmd file has a unique prefix before
you select it in TIBCO Designer.
To do this, follow these steps in TIBCO HL7 Message Designer for each .vmd file:
1. Select HL7 Message Designer>Options...
2. Click the Misc tab.
3. In the Prefix field, enter a unique prefix. Example: HL7/AdmitMessages.
This becomes the default for this .vmd.
See ”Creating an .xsd XML Schema File” on page 42 for more information on
creating .xsd schema definition files for a .vmd message definition.
The following additional features are available in TIBCO HL7 Message Designer.
5. Click Finish.
3. Right-click and select Complete Parse to also verify an HL7 message against
the message definitions to detect errors in definition or in the message.
2. The HL7 message in XML format displays in the Complete Parsed View of
Message dialog.
In this implementation of TIBCO HL7 Message Designer, you do not need to use
the .xsd schema creation utility because TIBCO Designer automatically creates
an .xsd schema when you import the .vmd into TIBCO Designer.
You can also do the following if you need to create multiple .xsd XML schema
files for multiple .vmd files:
1. Select HL7 Message Designer>Options...
2. Click the Misc tab.
3. In the Prefix field, enter a unique prefix. Example: HL7/AdmitMessages.
This becomes the default for this .vmd.
4. Click OK.
5. Select HL7 Message Designer>Generate Schema.
6. The Prefix field contains the unique prefix.
7. In the Language list box, select XSD Schema.
8. Click OK.
If you are creating a project with multiple .vmd files, see ”Developing a Project
Involving Multiple .vmd Files” on page 33.
For most processes that you design in TIBCO Designer, you need to use
<HL7_installation_directory>\resources\HeaderAndAck.vmd in an HL7
Definition resource. This is because the Parse Header and Create ACK activity
and LLP Receiver with ACK activity, which are used in most processes, work only
with .vmd files that meet the criteria in HeaderAndAck.vmd.
The pre-defined HeaderAndAck.vmd is provided with TIBCO HL7 Integration
Server to facilitate the development of processes that work with these activities.
See ”Parse Header and Create ACK Activity” on page 63 and ”LLP Receiver with
ACK Activity” on page 68 for more information on these activities.
If you need to change HeaderAndAck.vmd, see ”Customizing the
HeaderAndAck.vmd Message Definition File” on page 44.
• For Header, its Identity rules, or rules to identify a message, must be empty. To
verify this, in the Workspace, expand the Messages folder, expand the Header
message, and double-click Identity(Default). The Segment, Field, and Value
columns should be empty.
These messages are in
<HL7_installation_directory>\resources\HeaderAndAck.vmd. Users normally do
not need to modify this file for use with the Parse Header and Create ACK and
LLP Receiver with ACK activities.
To use these pre-defined messages, create an HL7 Definition resource based on
<HL7_installation_directory>\resources\HeaderAndAck.vmd for use in your
process.
The rules of ACK generation are defined in
<HL7_installation_directory>\resources\HeaderAndAck.vmd.
See also the Auto ACKnowledgement chapter of the HL7 Message Designer manual.
This is available through the Help menu in TIBCO HL7 Message Designer.
Customizing HeaderAndAck.vmd
To customize HeaderAndAck.vmd, do the following:
1. Select Start>Programs>TIBCO>TIBCO HL7 Integration Server>TIBCO HL7
Message Designer.
2. Click the Existing tab.
3. Click Look on Disk...
4. Select <HL7_installation_directory>\resources\HeaderAndAck.vmd.
5. Click Open.
6. Customize the .vmd. For complete information on how to use TIBCO HL7
Message Designer, see the TIBCO HL7 Message Designer documentation,
which is available through the Help menu in TIBCO HL7 Message Designer.
7. Save as HeaderAndAck.vmd or save with a new name.
This chapter describes the TIBCO Designer HL7 components that are installed
with TIBCO HL7 Integration Server.
Topics
One of the key activities in integrating health care systems is to implement the
Interface Engine functionality using the TIBCO BusinessWorks Process Engine in
the course of defining process models. This process modeling is done in TIBCO
Designer using the HL7 features, as well as the many features that are part of the
TIBCO BusinessWorks. These include FTP, the file poller, and logging support.
You can use a new message definition created in TIBCO HL7 Message Designer as
the basis for creating a business process definition in TIBCO Designer.
See ”How to Use TIBCO HL7 Integration Server Components” on page 25 for a
high-level description of where this software fits in the overall development of a
business process definition.
For complete information on how to use TIBCO Designer, see the Help menu in
TIBCO Designer.
Tutorials
For information on the tutorials that are available with this software, see
Chapter 6, ”Tutorials for TIBCO HL7 Integration Server”, on page 111.
For non-HL7 tutorials on using TIBCO Designer, see the TIBCO BusinessWorks
User Guide.
Windows
When starting TIBCO Designer in Windows, select
Start>Programs>TIBCO>TIBCO Designer>Designer or execute
<Designer_installation_directory>\4.1\bin\designer.exe.
UNIX
When starting TIBCO Designer in UNIX, do the following:
1. Making sure to include the initial period (.) in the command below, in Bourne
shell or k-shell, enter
. <tibco>/hl7/1.0/bin/setenv.sh
or, in c-shell, enter
source <tibco>/hl7/1.0/bin/setenv.csh
2. Enter
designer
The following features are available with the TIBCO Designer that is available
with TIBCO HL7 Integration Server:
• Shared Resources Palette, page 52
• Activities, page 58
• Custom Functions, page 91
• Template Process Diagram — Dispatcher, page 96
Each HL7 Definition defines a set of message types and related segments, fields
and types. You configure an HL7 Definition by loading the .vmd definition file
that was created in TIBCO HL7 Message Designer.
This shared resource is used with many activities, including the HL7 Parser and
HL7 Renderer activities. For an example, see ”Tutorial — HL7 Parser and HL7
Renderer Activities in TIBCO Designer” on page 146.
An XML schema resource is automatically created when you load a .vmd file. To
avoid undefined behaviors, do not change the automatically-created schema
resource.
Configuration
The configuration tab has the following fields.
Field Description
Name The name to appear as the label for the resource in the process definition.
Field Description
Definition A .vmd message definition that you use to build your processes. Click Load
Location
Definition to load your .vmd message definition file into the repository.
Click Reload Definition to reload your .vmd message definition file into the
repository if the message definition has changed since you opened the repository
or since you first loaded the .vmd file.
Input
This resource requires no input.
Output
This resource has no output.
Each LLP Configuration defines how a client and a server can establish a
connection.
There four possible ways to use this resource. Sample names have been provided:
• Sample name: Initiator Client Connection. Type: Client. This configuration
could be used to enable a connection from a client application called Initiator
to a server. This configuration would be used in the LLP Connection field of
an activity that sends a message from a client application called Initiator to a
server. This activity would be in the Initiator process, which is the process that
sends the message.
• Sample name: IEngine Server Connection. Type: Server. This configuration
could be used to enable a connection from a client to the Interface Engine
server. This configuration would be used in the LLP Connection field of an
activity that receives a message from a client. This activity would be in the
Interface Engine process, which is the process that receives the message.
• Sample name: IEngine Client Connection. Type: Client. This configuration
could be used to enable a connection from the Interface Engine acting as a
client to an application acting as a server. This configuration would be used in
the LLP Connection field of an activity that sends a message to an application
acting as a server. This activity would be in the Interface Engine process,
which is the process that sends the message.
• Sample name: Initiator Server Connection. Type: Server. This configuration
could be used to enable a connection from a client to an application acting as a
server. This configuration would be used in the LLP Connection field of an
activity that receives a message from a client. This activity would be in the
process that receives the message.
This shared resource is used with the following activities:
• LLP Request Response. See ”LLP Request Response Activity” on page 65.
• LLP Receiver with Ack. See ”LLP Receiver with ACK Activity” on page 68.
• LLP Response. See ”LLP Response Activity” on page 71.
See also ”Guidelines for Using LLP Resources and Activities in TIBCO Designer
Processes” on page 73.
For an example of this shared resource implemented in one of these activities, see
the Connections section in ”Shared Configurations” on page 183 and the first
image in ”Expected Results” on page 188 in the Patient Admission tutorial.
Configuration
The configuration tab has the following fields.
Field Description
Name The name to appear as the label for the resource in the process definition.
Type Select Client if your system is acting as a client by sending requests. Select
Server if your is acting as a server by receiving requests.
Port The port on which your client or server is listening for HL7 messages from a
client or server system.
Field Description
Encoding To be used in the future.
Input
This resource requires no input.
Output
This resource has no output.
Activities
The Activity tab is visible when you double-click the Process Definition activity.
This tab contains the HL7 palette and a variety of standard TIBCO BusinessWorks
palettes. The HL7 palette has HL7-specific activities for implementing your
Interface Engine. This is explained in detail below.
Activities fall into the following groups:
• Basic activities. The following activities are mostly likely to be used in your
HL7 integration project:
— HL7 Parser Activity, page 59
— HL7 Renderer Activity, page 61
— Parse Header and Create ACK Activity, page 63
• LLP activities. Most HL7 messages are sent using TCP using Lower Level
Protocol (LLP). The following activities can be used to send or receive HL7
messages using LLP. These activities are related to TCP over LLP. These are
used to send or receive HL7 messages to or from other systems in the provider
space.
— LLP Request Response Activity, page 65
— LLP Receiver with ACK Activity, page 68
— LLP Response Activity, page 71
• Advanced: Wait-Notify and related activities. These activities can be used to
implement a wait-notify pattern for handling messages. These activities
facilitate modular implementation of mapping and handling of each message.
They provide an efficient way to implement and they shorten the time needed
for implementation. You can use these activities to implement the concept of
stateful transaction management. This helps in the handling of asynchronous
responses.
— Deliver HL7 Msg Get SyncResponse Activity, page 83
— Handle HL7 Message Activity, page 85
— Wait For Async Response Activity, page 87
— Deliver Synchronous Response or ACK Activity, page 89
This activity parses an HL7 string message and generates an XML representation
based on the configured definition. The activity can also validate the message.
Configuration
The configuration tab has the following fields.
Field Description
Name The name to appear as the label for the activity in the process definition.
Definition The HL7 Definition resource used to identify the custom message definition
that identifies the message. If you have already created an HL7 Definition
resource, click the Browse button and select an HL7 Definition resource.
Field Description
Message This displays all the message types defined in the .vmd definition file. This lists
all the message types that the activity can handle.
Input
The input for the activity is hl7Message. This is the HL7 string message to be
parsed.
See TIBCO BusinessWorks Process Design Guide for more information about
mapping and transforming input data.
Output
The output for the activity is <message_Node>: XData. This is a dynamic XData
object that represents the message being handled by the activity. This reflects the
message chosen in the Message list box in the Configuration tab.
This activity renders an HL7 XML message and generates an HL7 string
representation based on the configured message definition.
Configuration
The configuration tab has the following fields.
Field Description
Name The name to appear as the label for the activity in the process definition.
Definition The HL7 Definition resource used to identify the custom message definition
that identifies the message. If you have already created an HL7 Definition
resource, click the Browse button and select an HL7 Definition resource.
Field Description
Message This displays all the message types defined in the .vmd definition file. This lists
all the message types that the activity can handle.
Input
The input for the activity is <message_Node>: XData. This is a dynamic XData
object that represents the message being handled by the activity. This reflects the
message chosen in the Message list box in the Configuration tab.
See TIBCO BusinessWorks Process Design Guide for more information about
mapping and transforming input data.
Output
The output for the activity is hl7Message. This is the rendered HL7 string
message.
This activity parses the header of any HL7 string message and generates an
acknowledgement based on the configuration.
Configuration
The configuration tab has the following fields.
Field Description
Name The name to appear as the label for the activity in the process definition.
Field Description
Definition The HL7 Definition resource used to define the Acknowledgement message to
be generated. TIBCO HL7 Integration Server comes with
<HL7_installation_directory>\resources\HeaderAndAck.vmd, which is a
pre-configured message definition file for Acknowledgements. Use of this
definition file is recommended. You can also change this file for a custom
message definition of the acknowledgement. See ”.vmd File Compatibility” on
page 63 for details on defining your message definition file for
acknowledgements.
OutputXML If selected, outputs the XML data for the acknowledgement generated for the
incoming message.
Input
The input for the activity is hl7Msg. This is the HL7 message to be parsed.
Output
The output for the activity is the following:
• msgType. The message type of the incoming message. Example: ADT_A05.
This message type is constructed from the ninth field in the MSH segment of
the message and has an underscore as the separator.
• isEnhancedMode. Determines if the message contains values for the fifteenth
and sixteenth fields in the MSH segment.
• ackMsg. The auto-generated acknowledgement for the incoming message.
This acknowledgement is based on the custom message definition specified in
the Definition field of the Configuration tab.
• msgControlID. The msg control id for the incoming message. This is the value
of the tenth field in the MSH segment of the message.
• responseID. The value of the second field in the MSA segment of the incoming
message. This MSA segment is present only if the incoming message is a
response message. This field is optional, as the request message does not have
an MSA segment.
This activity sends a request and receives a synchronous response. The request
and response can either be in the form of an HL7 string or XML data. The
configuration for the Definition and Message fields is required only when the
message has to be XML.
Synchronous response means that the response is sent on the same TCP
connection. If a connection is closed, and a response is sent on a different TCP
connection, then it is called an asynchronous response.
See also ”Guidelines for Using LLP Resources and Activities in TIBCO Designer
Processes” on page 73.
Configuration
The configuration tab has the following fields.
Field Description
Name The name to appear as the label for the activity in the process definition.
LLP A shared resource that defines the transport parameters to be used for
Connection
receiving HL7 messages.
Request The HL7 Definition resource used to identify the custom message definition
Definition
that identifies the outgoing request message.
Response The HL7 Definition resource used to identify the custom message definition
Definition
that identifies the incoming response message.
Input
The input for the activity is the following:
• <msg_Node>: XData. The XML message to be sent out. This displays only if
the user has configured the RequestDefinition and RequestMessage fields.
• asciiData. The request HL7 message string to be sent out.
• encoding. Encoding information about the message to be sent out.
• binaryData. The synchronous HL7 message in binary format to be sent out. A
user normally would not use this option.
Output
The output for the activity is the following:
• asciiData. The response HL7 message string received.
• requestHL7Msg. The request HL7 message string which was sent out.
• responseHL7Msg. The response HL7 message string received. This is same as
asciiData.
• <msg_Node>: XData. The XML format of the message received. This displays
only if the user has configured the ResponseDefinition and
ResponseMessage fields.
This activity receives an HL7 message on a particular port and can return an
auto-generated acknowledgement based on the configuration.
See also ”Guidelines for Using LLP Resources and Activities in TIBCO Designer
Processes” on page 73.
Configuration
The configuration tab has the following fields.
Field Description
Name The name to appear as the label for the activity in the process definition.
LLP A shared resource that defines the transport parameters to be used for
Connection
receiving HL7 messages.
Definition The HL7 Definition resource used to define the Acknowledgement message to
be generated. TIBCO HL7 Integration Server comes with
<HL7_installation_directory>\resources\HeaderAndAck.vmd, which is a
pre-configured message definition file for Acknowledgements. Use of this
definition file is recommended. You can also change this file for a custom
message definition of the acknowledgement. See ”.vmd File Compatibility” on
page 68 for details on defining your message definition file for
acknowledgements.
OutputXML If selected, outputs the XML data for the acknowledgement generated for the
incoming message.
SendACK The following choices are available for acknowledgement processing for the
incoming message.
— Never sends an acknowledgement to the initiator of the incoming
message.
— Always sends an acknowledgement to the initiator of the incoming
message.
Input
There are no dynamic inputs for this activity.
Output
The output for the activity is the following:
• asciiData. This is the incoming HL7 message string.
• msgType. The message type of the incoming message. Example: ADT_A05.
This message type is constructed from the ninth field in the MSH segment of
the message and has an underscore as the separator.
This activity sends a synchronous response back to the initiating system on TCP
over LLP. This activity can work in combination with the ”LLP Receiver with
ACK Activity” on page 68.
See also ”Guidelines for Using LLP Resources and Activities in TIBCO Designer
Processes” on page 73.
Configuration
The configuration tab has the following fields.
Field Description
Name The name to appear as the label for the activity in the process definition.
Input
The input for the activity is the following:
• asciiData. The synchronous HL7 message string to be sent out.
• encoding. Encoding information about the message to be sent out.
• binaryData. The synchronous HL7 message in binary format to be sent. A user
would not normally be using this option.
Output
There are no outputs for this activity.
The following matrices show the options available when configuring an LLP
Connection resource and its related activities:
• Matrix For LLP Connection and Messaging Options — Client, page 74
• Matrix For LLP Connection and Messaging Options — Server, page 75
Client Connection
Is One Way field Close Request Response
in LLP Connection Definition / Definition /
Connection field in LLP Request Response
Resource Connection Message fields Message fields
Resource in LLP Request in LLP Request
Response Response
Activity Activity
One-Way Selected Option 1: Optional Do not select
Messaging
Selected
Option 2:
Do not select
In option 1, the connection closes after the client sends a request to the server.
In option 2, the connection does not close after the client sends a message to the
server. This allows a client to send multiple one-way messages to the server on
the same connection.
In option 1, the client sends a request to the server and waits on the same
channel for a response. The connection closes after the client gets a response
from the server.
In option 2, the connection does not close after the client gets a response from
the server. The client can send and receive multiple messages on the same
connection.
Server Connection
Is One Way field Close SendACK field LLP Event
in LLP Connection in LLP Receiver Source field in
Connection field in LLP with ACK LLP Response
Resource Connection Activity Activity
Resource
One-Way Selected Option 1: Select Never Does not apply in
Messaging this scenario
Selected
Option 2:
Do not select
In option 1, the connection closes after the client sends a request to the server.
In option 2, the connection does not close after the client sends a message to the
server. This allows a client to send multiple one-way messages to the server on
the same connection.
In option 1, the client sends a request to the server and waits on the same
channel for a response. The connection closes after the client gets a response
from the server.
In option 2, the connection does not close after the client gets a response from
the server. The client can send and receive multiple messages on the same
connection.
An LLP Connection resource, with Client selected in the Type list box, can then be
selected in the LLP Connection field of the LLP Request Response activity. This
LLP Connection resource is used to establish a connection for sending a request
from a client to a server. The activity in which it is used would be in the process
that is sending the request.
An LLP Connection resource, with Server selected in the Type list box, can then
be selected in the LLP Connection field of the LLP Receiver with Ack activity.
This LLP Connection resource is used to establish a connection for receiving a
request or an acknowledgement from a client. The activity in which it is used
would be in the process that is receiving the request.
LLP Request Response Activity with Client LLP Connection — System acting as Client sends
to Interface Engine acting as Server
For the LLP Request Response activity, you should use an LLP Connection
resource set to Client in the Type list box. The following Client example of an LLP
Connection resource in an LLP Request Response activity is from the Patient
Admission tutorial. It shows an LLP Request Response activity that the
Scheduling System client uses to send a request to the Interface Engine.
LLP Request Response Activity with Client LLP Connection — Interface Engine acting as Client
sends to Client acting as Server
For the LLP Request Response activity, you should use an LLP Connection
resource set to Client in the Type list box. The following Client example of an LLP
Connection resource in an LLP Request Response activity is from the Patient
Admission tutorial. It shows an LLP Request Response activity that the Interface
Engine uses to send a request to the HIS system.
LLP Receiver with ACK Activity with Server LLP Connection — Interface Engine Receives from
Systems Acting as Client
For the LLP Receiver with ACK activity, you can use an LLP Connection resource
set to Server in the Type list box. The following Server example of an LLP
Connection resource in an LLP Receiver with ACK activity is from the Patient
Admission tutorial. It shows an LLP Receiver with ACK activity that the Interface
Engine server uses to receive messages from client systems.
LLP Receiver with ACK Activity with Server LLP Connection — System Receives from Interface
Engine Acting as Client
For the LLP Receiver with ACK activity, you can use an LLP Connection resource
set to Server in the Type list box. The following Server example of an LLP
Connection resource in an LLP Receiver with ACK activity is from the Patient
Admission tutorial. It shows an LLP Receiver with ACK activity that the
Scheduling System client uses to receive messages from the Interface Engine
server.
The Receive item selected in the LLP Event Source list box is the
Messages
Receive Messages LLP Receiver with ACK activity in the same process.
This notify activity is used with the Handle HL7 Message activity or the Wait For
Async Response activity. These are both wait activities.
This activity is used in the following tutorials:
• Tutorial — Synchronous Messaging in TIBCO Designer (HL7), page 155
• Tutorial — Asynchronous Messaging in TIBCO Designer (HL7), page 161
Configuration
The configuration tab has the following fields.
Field Description
Name The name to appear as the label for the activity in the process definition.
Input
See TIBCO BusinessWorks Process Design Guide for more information about
mapping and transforming input data.
The input for the activity is the following:
Output
The output for the activity is hl7Message. This is the synchronous response
message sent for the incoming request.
This wait activity can be configured to wait on a particular message type and
message definition. This activity then becomes the source of all the incoming
messages of the configured kind.
This wait activity is used with the notify Deliver HL7 Msg Get SyncResponse
activity.
This activity is used in the following tutorials:
• Tutorial — Synchronous Messaging in TIBCO Designer (HL7), page 155
• Tutorial — Asynchronous Messaging in TIBCO Designer (HL7), page 161
See also the ”Template Process Diagram — Dispatcher” on page 96 for an
example of how this can be used.
Configuration
The configuration tab has the following fields.
Field Description
Name The name to appear as the label for the activity in the process definition.
Field Description
Description Short description of the activity.
Definition The HL7 Definition resource used to identify the custom message definition
that identifies the message.
Synchronous- If selected, the Deliver HL7 Msg Get SyncResponse activity waits for the
Reply
synchronous response for this message.
Key Displays the Key on which this activity would be waiting to receive the
message. The key consists of a Message definition resource name and the
message type name separated by the delimiter '|'. The message definition
resource name is the same as the value specified for the msgDefinitionFile
input for the Deliver HL7 Msg Get SyncResponse activity.
Input
There are no dynamic inputs for this activity.
Output
The output for the activity is the following:
• hl7Message. The original incoming HL7 message string.
• hl7Ack. The auto generated ack message string.
• syncReplyHandle. The reply handle to be used by the implementer to send
synchronous response to the incoming message. This displays only if you
select the Synchronous-Reply check box.
• <message_Node>: XData. A dynamic XData object that represents the message
being handled by the activity. This is based on the Message chosen in the
configuration.
This wait activity can be configured to wait on a particular message type, message
definition, and response to a request. This activity helps map the request to the
response.
The mapping is based on the Message controlID field of the MSH field of the
request message and the Message control ID field of the MSA field in the
response. These two fields have the same value for request/response messages.
This wait activity is used with the notify Deliver HL7 Msg Get SyncResponse
activity. See ”Deliver HL7 Msg Get SyncResponse Activity” on page 83.
This activity is used in the following tutorial:
• Tutorial — Asynchronous Messaging in TIBCO Designer (HL7), page 161
Configuration
The configuration tab has the following fields.
Field Description
Name The name to appear as the label for the activity in the process definition.
Field Description
Definition The HL7 Definition resource used to identify the custom message definition
that identifies the message.
Synchronous- If selected, the Deliver HL7 Msg Get SyncResponse activity waits for the
Reply
synchronous response for this message.
Key Displays the Key on which this activity waits to receive the message. The key
consists of a Message definition resource name and the message type name
separated by the delimiter '|'. The message definition resource name is the
same as the value specified for the msgDefinitionFile input for the Deliver
HL7 Msg Get SyncResponse activity.
Input
The input for the activity is responseId. This should be the tenth field in the
MSH segment of the request message. The corresponding response message
should have the same value in the second field in the MSA segment.
Output
The output for the activity is the following:
• hl7Message. The original response HL7 message string.
• hl7Ack. The auto generated ack message string for the response.
• syncReplyHandle. The reply handle to be used by the implementer to send a
synchronous response to the incoming response message. This displays only if
you select the Synchronous-Reply check box.
• <message_Node>: XData. A dynamic XData object that represents the message
being handled by the activity. This is based on the Message chosen in the
configuration.
This wait activity delivers the synchronous response to the waiting Deliver HL7
Msg Get SyncResponse activity. This activity is only used if the Handle HL7
Message or Wait for Async Response activity has been used with the
Synchronous-Reply check box selected.
This wait activity is used with the notify Deliver HL7 Msg Get SyncResponse
activity.
This activity is used in the following tutorials:
• Tutorial — Synchronous Messaging in TIBCO Designer (HL7), page 155
• Tutorial — Asynchronous Messaging in TIBCO Designer (HL7), page 161
Configuration
The configuration tab has the following fields.
Field Description
Name The name to appear as the label for the activity in the process definition.
Field Description
Definition The HL7 Definition resource used to identify the custom message definition
that identifies the message.
Input
The input for the activity is the following:
• syncReplyHandle. This must be the same syncReplyHandle value that is
output by the wait activities.
• timeout. Time before timeout.
Output
This activity has no output.
Custom Functions
An important part of any HL7 integration project is the data mapping from one
message format to another. TIBCO BusinessWorks offers advanced functionality
in data mapping, including drag-and-drop and a comprehensive suite of built-in
functions.
However, no matter how complete the built-in functions are, there is always a
need to customize, especially in the healthcare industry.
See the TIBCO BusinessWorks manual for detailed information on how to write,
load, and use your own custom functions.
When you are developing your own custom functions, you load a class file by
clicking Load Class. In the case of HL7Functions.xml, an empty project was
developed, the custom functions class was loaded into it, and it was exported as
HL7Functions.xml so that it could be easily imported.
After you import HL7Functions.xml into the repository, the custom functions
become available during mapping.
Configuration
The configuration tab has the following fields.
Field Description
Name The name to appear as the label for the activity in the process definition.
Class File The Java class that supports the HL7 custom functions.
See also ”Tutorial — HL7 Parser and HL7 Renderer Activities in TIBCO Designer”
on page 146.
See the TIBCO BusinessWorks manual for detailed information on how to write,
load, and use your own custom functions.
If you are using the Dispatcher template, the HL7 functions are already available.
See ”Template Process Diagram — Dispatcher” on page 96 for more information.
• extractField. Takes the HL7 message, segment name, and index value
parameters and extracts the indexed field in an HL7 message from the first
segment with a given segmentname. Example:
extractField("MSH|^~\\&|REGADT|MCM|IFENG||199112311501||ADT^A05|00
0001|P|2.1|||", "MSH", 9) gives ADT^A05
If your implementation involves just a few HL7 message types and just a few
healthcare systems, you can often use separate ports to handle messages to and
from each system, and use different processes to handle messages to and from
each system. In this setup, each system’s unique process receives HL7 messages
through the LLP Receiver with Ack activity. Based on the message type, this
activity routes each message to the system’s subprocess that handles that
particular message type.
However, if your Interface Engine has to communicate with several healthcare
systems, it is not possible to manage one port for each system. In this case, a single
receiver may receive several different HL7 message types or acknowledgements
from different systems on one port. The receiver must then dispatch the messages
based on the message type and possibly other fields in the message header.
The Dispatcher template can help you create a manageable solution for this type
of complex scenario. To begin with, the Dispatcher template can facilitate your
setup, as it contains the pre-defined HeaderAndAck.vmd message definition file,
as well as the HL7 custom functions.
The Dispatcher template process is based on the wait-notify advanced set of HL7
activities. See ”Activities” on page 58 for more information. This allows you to
define separate message handlers for each message type. This is useful because it
allows you to avoid using if/then/else message routing. When you have several
message types to process, using if/then/else message routing makes the
dispatching diagram complex, and also requires you to change the diagram
layout each time that a message type is added or removed.
Instead of using if/then/else message routing, the Dispatcher template process
uses key-based notification. This separates the dispatcher process from the
handlers processes. You can therefore have a self-contained dispatcher process
and a set of independent handler processes.
In this template, there are two model handler processes. You can copy and paste
from these and then customize them to fit your needs.
• Handle XXX Request - Simple Process
• Handle YYY Request - With Custom ACK Or Sync Response Process
There is also a model process that sends out an HL7 message, and then waits for
the response on the dispatcher's port.
Before you can start adding processes and shared configurations required for
your project, you must configure the shared configurations and processes that
come with the template.
InterfaceEngine Folder
The InterfaceEngine folder contains the following processes:
• Dispatcher. See ”Interface Engine: Dispatcher Process” on page 99.
• Handle XXX Request - Simple. See ”Handle XXX Request - Simple Process” on
page 105.
• Handle YYY Request - With Custom ACK Or Sync Response. See ”Handle
YYY Request - With Custom ACK Or Sync Response Process” on page 107.
• Send Request and Handle Async ZZZ Response. See ”Send Request and
Handle Async ZZZ Response Process” on page 109.
This activity listens on the port specified in the LLP IE Server Connection. You
can change this port for your implementation. See ”HL7 Shared
Configurations Folder” on page 110 for more information.
The following assumes a request message from a healthcare system. When a
request arrives, the activity parses the header to later determine which HL7
Definition resource to use. Although the Dispatcher template has just one HL7
Definition resource, in reality there can be more. There can be just one HL7
Definition resource for each healthcare system if each healthcare system uses
the same set of message types but different definition details. Normally, one or
two HL7 Definition resources is enough, assuming that different systems use
different message types, or the same message types with similar constraints.
Note that the SendACK list box has a value of Auto. This means that an
acknowledgement is automatically sent if one is requested in the inbound
message. In an implementation that you may create from this template, Auto
may or may not be appropriate.
2. The Deliver HL7 Msg (Deliver HL7 Msg Get SyncResponse) activity
determines the key, and sends a notify on the specific key to activate one of the
corresponding wait or process starter activities in the handle message
processing. For more information on this kind of notify activity, see ”Deliver
HL7 Msg Get SyncResponse Activity” on page 83.
Based on the request, the key is constructed from the message type and HL7
Definition resource path input slots. It is easy to determine the message type,
as the message type is part of the LLP Receiver with ACK activity’s output
slot. Therefore, choosing the proper HL7 definition is the main task when
customizing the Dispatcher process. For example, you can define a proper
XPath expression based on the sender of the message and the message type,
which determines which HL7 definition should be used.
If you are using just one HL7 definition, as in the template, the input slot for
To find the value of the HL7 definition path, inspect the HL7 definition
resource itself, the second line of which shows the value. Example:
/<folder1>/<folder2>/…/<resource_name>.
Because you cannot drag and drop a resource path into an input slot, you
must carefully enter it. If the resource name or directory changes, the input
value must be updated manually.
Depending on your needs, you can copy and customize one of the two model
handler processes:
Customize based on the Handle XXX Request - Simple handler process
when your message handling does not require a response or
acknowledgement on the same TCP connection, or an acknowledgement is
already sent by the LLP Receiver with ACK activity. See ”Handle XXX
Request - Simple Process” on page 105.
Customize based on the Handle YYY Request - With Custom ACK Or Sync
Response handler process when your message handling does require a
response or acknowledgement on the same TCP connection. See ”Handle
YYY Request - With Custom ACK Or Sync Response Process” on page 107.
3. The Deliver HL7 Msg (Deliver HL7 Msg Get SyncResponse) activity waits and
later forwards the message to the Send ACK or Sync Response activity if it
2. The Deliver HL7 Msg (Deliver HL7 Msg Get SyncResponse) activity
determines the key, and sends a notify on the specific key to activate one of the
corresponding wait or process starter activities in the handle message
processing. For more information on this kind of notify activity, see ”Deliver
HL7 Msg Get SyncResponse Activity” on page 83.
Based on the asynchronous response, the key is constructed from the message
type, HL7 Definition resource path, and responseID input slots.
It is easy to determine the message type, as it is part of the LLP Receiver with
ACK activity’s output slot. Therefore, choosing the proper HL7 definition is
the main task when customizing the Dispatcher process. For example, you can
define a proper XPath expression based on the sender of the message and the
message type, which determines which HL7 definition should be used.
If you are using just one HL7 definition, as in the template, the input slot for
the hl7Definition field can be hard-coded, as occurs in this template.
Typically, this input slot would contain some logic, and would not necessarily
be hard-coded.
To find the value of the HL7 definition path, inspect the HL7 definition
resource itself, the second line of which shows the value. Example:
/<folder1>/<folder2>/…/<resource_name>.
Because you cannot drag and drop a resource path into an input slot, you
must carefully enter it. If the resource name or directory changes, the input
value must be updated manually.
The Deliver HL7 Msg activity then sends the asynchronous response back to
the Wait For Async Response activity in the Send Request and Handle Async
ZZZ Response process. See step 3 on page 109.
See also ”HL7 Shared Configurations Folder” on page 110 for information on the
unconfigured HL7 Definition resource.
See also ”HL7 Shared Configurations Folder” on page 110 for information on the
unconfigured HL7 Definition resource.
3. The Wait For Async Response activity receives the asynchronous response
back from the Deliver HL7 Msg activity in the Dispatcher process. The process
ends.
Troubleshooting
If you have any questions or feedback, see ”How to Contact TIBCO Customer
Support” on page xi in the preface and include a detailed description of the
problem.
This chapter describes tutorials available with TIBCO HL7 Integration Server.
See ”Template Process Diagram — Dispatcher” on page 96 for information on a
template that is available with TIBCO HL7 Integration Server.
Topics
• Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO
Designer (HL7), page 112
• Tutorial — HL7 Parser and HL7 Renderer Activities in TIBCO Designer, page 146
• Tutorial — LLP Request Response and HL7 LLP Receiver with ACK Activities in
TIBCO Designer, page 150
• Tutorial — Synchronous Messaging in TIBCO Designer (HL7), page 155
• Tutorial — Asynchronous Messaging in TIBCO Designer (HL7), page 161
• Tutorial — Batch Messages in TIBCO Designer (HL7), page 168
• Tutorial — HL7 V3 Messaging in TIBCO Designer, page 171
• Tutorial — Inbound EDI-X12 HIPAA 275/HL7 Messages in TIBCO Designer,
page 177
• Tutorial — Patient Admission in TIBCO Designer (HL7), page 182
• Guidelines for Using LLP Resources and Activities in TIBCO Designer Processes,
page 73
• Tips and Tricks, page 210
• Starting a Project under the BusinessWorks Engine, page 212
Tutorial Files
The following files are part of this tutorial:
• ADT_A05.hl7. HL7 message definition that triggers the example.
• GetStarted.dat. Repository instance containing the example.
• GetStarted.vmd. HL7 message definition for the Interface Engine. This file
was created using TIBCO HL7 Message Designer. This .vmd file is for
reference only. The .vmd definition has already been loaded into the
GetStarted.dat repository instance, so you do not need this .vmd file to run
the example. See ”Step 1 — Using TIBCO HL7 Message Designer to Create
GetStarted.vmd” on page 114 to see how this file was initially created before
being implemented in the Getting Started tutorial.
Setup
The hl7.samples.GetStarted.dir global variable refers to the directory that
contains ADT_A05.hl7, which is used to trigger the tutorial. By default, the value
of this variable is C:/tibco/hl7/1.0/samples/GetStarted. If TIBCO HL7
Integration Server is installed in a non-default directory, change this variable by
selecting Edit>Global Variables> in the TIBCO Designer menu and changing
hl7.samples.GetStarted.dir to the new value.
If you go through these steps to re-create the GetStarted.vmd file, you do not
need to use this file in the tutorial, as the GetStarted.vmd file that comes with
TIBCO HL7 Integration Server has already been added to the GetStarted.dat
file, which is also provided.
1. Select Start>Programs>TIBCO>TIBCO HL7 Integration Server>TIBCO HL7
Message Designer.
6. Click Finish.
b. Enter
designer
3. Click Apply.
4. Expand the HL7 Configurations folder under the Project tab.
5. Click the General Resources tab.
6. Click the HL7 Shared Configuration palette.
7. Click and drag the HL7 Definition resource to the design pane for the HL7
Configurations folder.
• A connection that enables receiving by the HIS system acting as a server from
the Interface Engine acting as a client. This is called HIS Server Connection.
This resource will be used in the LLP Connection field of an activity in the HIS
system that receives a message from the Interface Engine. See ”Creating HIS
Server Connection LLP Connection” on page 123.
13. Click and drag a link from textContent on the Process Data side to asciiData
on the Activity Input side. This means that the text content of the file that we
read should be the ASCII data that is sent through the Send Request activity.
12. Click and drag a link from the asciiData field to the hl7Msg field. This means
that we want the incoming ASCII data to be the HL7 message input. This is
the HL7 message that will be parsed.
10. To define what the contents of the ADT_A28 message will look like, click the
Input tab.
11. Expand Parse ADT_A05 on the Process Data side and ADT_A28 on the
Activity Input side.
12. Map the incoming fields on the Process Data side to the desired output on the
Activity Input side to create the ADT_A28 message. The red fields on the
Activity Input side are mandatory. You can use the XPath Formula Builder to
add business logic as needed.
13. On the Activity Input side, expand MSH, then MSH.9.MessageType, then
CM_MSH.
14. In the CM_MSH.1.Event field, enter "ADT".
15. In the CM_MSH.2.Type field, enter "A28".
16. On the Activity Input side, click inside the MSH.7.DateTimeofMessage field.
17. Click the XPath Formula Builder button.
18. Click the Functions tab and expand HL7.
21. Drag a link from the MSH.11.ProcessingID field on the Process Data side to
the MSH.11.ProcessingID field on the Activity Input side.
22. Click Apply.
13. Click and drag a link from the hl7msg field in the ProcessData side to the
asciiData field on the Activity Input side. This means that the output of the
Render ADT_A28 renderer activity maps to the asciiData field.
4. Click Apply.
5. Click the Create Transition button in the toolbar.
6. Create a transition from the Receiver activity to the Log Info on the msg
received activity.
7. Click the Select button in the toolbar.
8. For the Log Info on the msg received activity, click the Input tab and the
message field on the Activity Input side.
12. Place your cursor after the first comma and press Enter.
13. Place your cursor after the first parenthesis and enter the following:
"HL7 Get Started Sample ", "SIMULATOR/HIS : Received Msg ",
16. Click and drag CM_MSH.1.Event to << string1 >> in the XPath Formula pane.
Click and drag CM_MSH.2.Type to << string2 >> in the XPath Formula pane.
This writes to the standard out and to the log file. This writes "HL7 Get Started
Sample, SIMULATOR/HIS : Received Msg". It then writes the messaging
event and the message type. It is expected that Event will be replaced by ADT,
as you will be expecting an ADT_A28 message. It is expected that Type will be
replaced by A05, as the HIS process will be expecting an ADT_A28 message.
17. Click OK.
18. Click the Create Transition button in the toolbar.
19. Create a transition from Log Info on the msg received to the Stop activity.
20. Click the Select button in the toolbar.
21. Click Apply.
22. Select Project>Save.
23. Enter GetStarted_demo in the Project Name field if you have not already
saved your project at least once.
24. Click Browse and save the project file in C:\TIBCO.
25. Click OK.
b. Enter
designer
Notes
TIBCO Designer simulates the message flow by changing the color of the
transition lines from black to green. Places where the process waits for an action
are in yellow. Errors are red blocks.
In TIBCO Designer, make sure that the Show Ball check box is selected. With one
of the applications selected, select View>Test>Moving Ball Options.
In TIBCO Designer, you can set breakpoints before or after an activity. At runtime,
process execution stops at this breakpoint and input/output tabs containing the
current data can be reviewed. To set a breakpoint, select an activity in TIBCO
Designer, select View>Test>Set Breakpoints.
In test mode, you can review the Input and Output tabs of each task in the
processes to see the data being transformed.
Expected Results
You should see the message travel from the File Poller activity to the
Simulator/Scheduler Process to the IEngine/Process ADT_A05 Process and
finally to the Simulator/HIS Process.
If all the parsing succeeds, you will see a message similar to the following in
either the Console Window or the Designer log file:
HL7 Get Started Sample SIMULATOR/HIS : Received Msg ADTA05
If an error occurs, you will see a message that begins with the following in either
the Console Window or the Designer log file:;
HL7 Get Started Sample - ERROR IENGINE/PROCESS ADT_A05
Troubleshooting
The following troubleshooting items may be useful.
This example describes the HL7 Parser and HL7 Renderer activities.
In this tutorial, a file containing an ADT_A05 message is read. The contents of the
file are then parsed and rendered into an ADT_A28 message. This message is
written to a file.
Tutorial Files
The following files are part of this tutorial:
• ADT_A05.hl7. HL7 message file that triggers the process.
• ParserAndRenderer.dat. Repository instance containing the example.
• ParserAndRenderer.vmd. HL7 definition for the Interface Engine used in this
example. This file was created using TIBCO HL7 Message Designer. This .vmd
file is for reference only. The .vmd definition has already been loaded into the
ParserAndRenderer.dat repository instance, so you do not need this .vmd
file to run the example.
Setup
The hl7.samples.ParserRenderer.dir global variable refers to the directory
that contains ADT_A05.hl7. By default, the value of this variable is
C:/tibco/hl7/1.0/samples/ParserRenderer. If TIBCO HL7 Integration Server
is installed in a non-default directory, change this variable by selecting
Edit>Global Variables> in the TIBCO Designer menu and changing
hl7.samples.ParserRenderer.dir to the new value.
b. Enter
designer
10. Run the process in Test mode by selecting View>Test>Start or by pressing F9.
11. Click Start. After a few seconds, the process starts.
Notes
TIBCO Designer simulates the message flow by changing the color of the
transition lines from black to green. Places where the process waits for an action
are in yellow. Errors are red blocks.
In TIBCO Designer, make sure that the Show Ball check box is selected. With one
of the applications selected, select View>Test>Moving Ball Options.
In TIBCO Designer, you can set breakpoints before or after an activity. At runtime,
process execution stops at this breakpoint and input/output tabs containing the
current data can be reviewed. To set a breakpoint, select an activity in TIBCO
Designer, select View>Test>Set Breakpoints.
In test mode, you can review the Input and Output tabs of each task in each
process to see the data being transformed.
Expected Results
You should see the message travel from the File Poller activity, through several
activities, to the End activity in the Process Definition process.
If all the processing succeeds, a file named ADT_28.hl7 is created in the directory
specified by the hl7.samples.ParserRenderer.dir global variable. This file
should contain the ADT_A28 message generated by the Process.
If an error occurs, you will see a message that begins with the following in either
the Console Window or the Designer log file:
HL7 ParserAndRenderer Sample - ERROR IENGINE/PROCESS ADT_A05:
Troubleshooting
The following troubleshooting items may be useful.
Tutorial — LLP Request Response and HL7 LLP Receiver with ACK
Activities in TIBCO Designer
This tutorial describes the LLP Request Response and HL7 LLP Receiver with
ACK activities.
The following processes have been included in this example:
• Illustrate NE. Reads ADT_A05NE.hl7 and issues an LLP Request, with no
response expected.
• Illustrate AL. Reads ADT_A05AL.hl7 and issues an LLP Request, listing an
ACK as the expected response.
• Receive. Contains an LLP Receiver with the SendACK field set to Auto. This
means that the decision to send an ACK is based on the content of the
incoming HL7 message. See the TIBCO HL7 documentation for further
information on this SendACK field.
Tutorial Files
The following files are part of this tutorial:
• ADT_A05AL.hl7. HL7 message file that triggers the Illustrate AL process.
• ADT_A05NE.hl7. HL7 message file that triggers the Illustrate NE process.
• LLPAutoAck.dat. Repository instance containing the example.
• LLPAutoAck.vmd. HL7 definition for the Interface Engine used in this
example. This file was created using TIBCO HL7 Message Designer. This .vmd
file is for reference only. This .vmd definition has already been loaded into the
LLPAutoAck.dat repository instance, so you do not need this .vmd file to run
the example.
Setup
The hl7.samples.LLP.dir global variable refers to the directory that contains
ADT_A05AL.hl7 and ADT_A05NE.hl7. By default, the value of this variable is
C:/tibco/hl7/1.0/samples/LLP. If TIBCO HL7 Integration Server is installed in
a non-default directory, change this variable by selecting Edit>Global Variables>
in the TIBCO Designer menu and changing hl7.samples.LLP.dir to the new
value.
b. Enter
designer
10. Run the Illustrate NE and Receive processes in Test mode by selecting
View>Test>Load Processes and Start or by pressing Shift + F9.
This shows a process where the client does not expect a response to the LLP
request.
11. Select the Illustrate NE and Receive processes.
12. Click Start.
To run another aspect of the tutorial, do the following:
1. Select Illustrate AL.
Notes
TIBCO Designer simulates the message flow by changing the color of the
transition lines from black to green. Places where the process waits for an action
are in yellow. Errors are red blocks.
In TIBCO Designer, make sure that the Show Ball check box is selected. With one
of the applications selected, select View>Test>Moving Ball Options.
In TIBCO Designer, you can set breakpoints before or after an activity. At runtime,
process execution stops at this breakpoint and input/output tabs containing the
current data can be reviewed. To set a breakpoint, select an activity in TIBCO
Designer, select View>Test>Set Breakpoints.
In test mode, you can review the Input and Output tabs of each task in each
process to see the data being transformed.
Expected Results
You should see the message travel from the Illustrate AL or Illustrate NE Process
to the Receive Process.
You should see the message travel from the File Poller activity in either the
Illustrate NE or Illustrate AL processes, through several activities, to the End task
in the Receive Process.
If all the processing succeeds, you will see a message similar to the following in
either the Console Window or the Designer log file:
HL7 LLP Sample RECEIVE: Received a ADTA05 message with ACK TYPE: NE
or
HL7 LLP Sample RECEIVE: Received a ADTA05 message with ACK TYPE: AL
If an error occurs, you will see a message that begins with the following in either
the Console Window or the Designer log file:
HL7 LLP Sample - ERROR ILLUSTRATE NE:
or
HL7 LLP Sample - ERROR ILLUSTRATE AL:
Troubleshooting
The following troubleshooting items may be useful.
This tutorial is based on the interaction between Interface Engine and the HIS
system for querying a patient record.
In this tutorial, the Scheduling system has initiated an ADT_A05 (pre-admit a
patient) with Interface Engine. Interface Engine queries the HIS system to find out
if the patient record already exists.
Interface Engine (simulated by Initiator Application) sends a QRY_Q01 (query for
immediate response) message to the HIS system (simulated by Responder
Application). Interface Engine expects the response ADR_A19 (patient query -
response to QRY) from the HIS system.
This example describes the synchronous handling of the ADR_A19 response and
shows the transaction state management.
Processes Included
The following processes are provided with this tutorial.
3. When a reply is received, information from the reply is logged and the process
ends.
Several log tasks are also included to log errors that may occur.
3. The Deliver HL7 Msg Get SyncResponse activity sends a notify based on the
message that was received at the beginning of this process. Note the
msgDefinitionFile and msgType fields.
4. If a response is received, that response is sent back to the process that sent the
initial request that started this process (Initiator Application/Main) and the
response is logged.
Several log tasks are also included to log errors that may occur.
Tutorial Files
The following files are part of this tutorial:
• QRY_Q01.hl7. HL7 message that triggers the example.
• Sync-Messaging.dat. TIBCO Designer project file for this example.
• Sync-Messaging.vmd. HL7 message definitions used in this example. This file
was created using TIBCO HL7 Message Designer. This .vmd file is for
reference only. The .vmd definition has already been loaded into the .dat
repository instance, so you do not need this .vmd file to run the example.
Setup
The hl7.samples.sync-messaging.dir global variable refers to the directory
that contains the example message and HL7 message definition used in this
example. By default, the value of this variable is
C:/tibco/hl7/1.0/samples/Sync-Messaging. If TIBCO HL7 Integration Server
is installed in a non-default directory, change this variable by selecting
Edit>Global Variables> in the TIBCO Designer menu and changing
hl7.samples.sync-messaging.dir to the new value.
b. Enter
designer
11. Run the processes in Test mode by selecting View>Test>Load Processes and
Start or by pressing Shift + F9. A process definition must be selected first to
see the Test menu option.
12. Click Select All because you need to run all processes. The tutorial is
triggered from the Initiator Application/Main process.
13. Click Start.
Notes
TIBCO Designer simulates the message flow by changing the color of the
transition lines from black to green. Places where the process waits for an action
are in yellow. Errors are red blocks.
In TIBCO Designer, make sure that the Show Ball check box is selected. With one
of the applications selected, select View>Test>Moving Ball Options.
In TIBCO Designer, you can set breakpoints before or after an activity. At runtime,
process execution stops at this breakpoint and input/output tabs containing the
current data can be reviewed. To set a breakpoint, select an activity in TIBCO
Designer, select View>Test>Set Breakpoints.
In test mode, you can review the Input and Output tabs of each task in each
process to see the data being transformed.
Expected Results
If all the processing succeeds, you should see the following:
1. The message travel from the Read QRY_Q01 activity in the Initiator
Application/Main process through to the Send Request Receive Response
activity in the Initiator Application/Main process.
2. This triggers the HL7 LLP Receiver with Ack activity in the Responder
Application/Main process.
3. The process flow continues to the Get Msg Definition call process activity,
which causes the Get Msg Definition process to be completed.
4. The message flow continues in the Responder Application/Main process to
the Deliver HL7 Msg Get SyncResponse.
5. This activity triggers a notify with a key based on the contents of the
msgDefinitionFile and msgType fields.
6. The message flow continues in the Responder Application/Handler process,
as the key listed in the Handle HL7 Message start activity matches the key in
the incoming message.
or
HL7 Sync Messaging Sample - ERROR RESPONDER APPLICATION/MAIN:
or
HL7 Sync Messaging Sample - ERROR RESPONDER APPLICATION/HANDLER:
Troubleshooting
The following troubleshooting items may be useful.
In this tutorial, the Scheduling system (not included with the example) has
initiated an ADT_A05 (pre-admit a patient) with Interface Engine. Interface
Engine queries the HIS system to find out if the patient record already exists. This
tutorial is based on the interaction between the Interface Engine and the HIS
system.
Interface Engine, which is simulated by Initiator Application, sends a QRY_Q01
(query for immediate response) message to the HIS system, which is simulated by
Responder Application. Interface Engine expects ADR_A19 (patient query -
response to QRY) from the HIS system.
This tutorial describes the asynchronous handling of the ADR_A19 response and
shows the transaction state management. It also shows different ways in which
ACKs can be sent.
Processes Included
The following processes are provided with this tutorial.
3. The activity waits for an ACK response. Once an ACK is received, the ACK
information is logged.
4. The process waits for a notify response containing an ADR_A19. When this
notify arrives, information from the notify is logged and the process ends.
Several log tasks are also included to log errors that may occur.
2. The request is logged and the Get Msg Definition process is called to get the
appropriate message definition, based on the current MsgType.
3. If a response exists, that response is sent back to the process that sent the
initial request that started this process (Responder Application/Handler) and
the process ends.
Several log tasks are also included to log errors that may occur.
4. Once an ACK is received, the ACK information is logged and the process
ends.
Several log tasks are also included to log errors that may occur.
Tutorial Files
The following files are part of this tutorial:
• QRY_Q01.hl7. The HL7 message that triggers the example.
• Async-Messaging.dat. The TIBCO Designer project file.
• Async-Messaging.vmd. The HL7 message definitions in this example. This file
was created using TIBCO HL7 Message Designer. This .vmd file is for
reference only. The .vmd definition has already been loaded into the .dat
repository instance, so you do not need this .vmd file to run the example.
Setup
The hl7.samples.async-messaging.dir global variable refers to the directory
that contains the example message and HL7 message definition used in this
example. By default, the value of this variable is
C:/tibco/hl7/1.0/samples/Async-Messaging. If TIBCO HL7 Integration
Server is installed in a non-default directory, change this variable by selecting
Edit>Global Variables> in the TIBCO Designer menu and changing
hl7.samples.async-messaging.dir to the new value.
b. Enter
designer
10. Run the processes in Test mode by selecting View>Test>Load Processes and
Start or by pressing Shift + F9.
11. Click Select All because you need to run all the processes.
12. Click Start. The tutorial is triggered from the Initiator Application/Main
process.
Notes
TIBCO Designer simulates the message flow by changing the color of the
transition lines from black to green. Places where the process waits for an action
are in yellow. Errors are red blocks.
In TIBCO Designer, make sure that the Show Ball check box is selected. With one
of the applications selected, select View>Test>Moving Ball Options.
In TIBCO Designer, you can set breakpoints before or after an activity. At runtime,
process execution stops at this breakpoint and input/output tabs containing the
current data can be reviewed. To set a breakpoint, select an activity in TIBCO
Designer, select View>Test>Set Breakpoints.
In test mode, you can review the Input and Output tabs of each task in each
process to see the data being transformed.
Expected Results
If the processing succeeds, you should see the following message flow.
Troubleshooting
The following troubleshooting items may be useful.
Error
If an error occurs during processing, you will see a message that begins with the
following in either the Console Window or the Designer log file:
HL7 Async Messaging Sample - ERROR INITIATOR APPLICATION/MAIN:
or
HL7 Async Messaging Sample - ERROR INITIATOR APPLICATION/RECEIVER
or
or
HL7 Async Messaging Sample - ERROR RESPONDER APPLICATION/HANDLER:
followed by the error message and stack trace or HL7 information depending on
the type of activity that generates the error.
This tutorial shows how to handle a batch message using TIBCO HL7 Integration
Server.
In the tutorial, a file containing a batch of two BHS/BTS messages is read. Each
batch contains a list of HL7 messages. The following occurs:
1. The file contents are passed through a custom function called
separateBatchesFromFile to remove the FHS/FTS tags and insert a new line
between messages.
2. The file contents are passed through a custom function called
separateMsgsFromBatch to remove the BHS/BTS tags and insert a new line
between messages.
3. The updated content is parsed to produce a sequence of individual HL7
messages.
4. The message type for each message is written to a file.
Tutorial Files
The following files are part of this tutorial:
• batch.hl7. The HL7 message that triggers the example.
• batch.dat. The TIBCO Designer project file.
• batch.vmd. The HL7 message definitions in this example. This file was created
using TIBCO HL7 Message Designer. This .vmd file is for reference only. The
.vmd definition has already been loaded into the .dat repository instance, so
you do not need this .vmd file to run the example.
Setup
The hl7.samples.batch.dir global variable refers to the directory that contains
the example message and HL7 message definition used in this example. By
default, the value of this variable is C:/tibco/hl7/1.0/samples/batch. If
TIBCO HL7 Integration Server is installed in a non-default directory, change this
variable by selecting Edit>Global Variables> in the TIBCO Designer menu and
changing hl7.samples.batch.dir to the new value.
b. Enter
designer
Notes
TIBCO Designer simulates the message flow by changing the color of the
transition lines from black to green. Places where the process waits for an action
are in yellow. Errors are red blocks.
In TIBCO Designer, make sure that the Show Ball check box is selected. With one
of the applications selected, select View>Test>Moving Ball Options.
In TIBCO Designer, you can set breakpoints before or after an activity. At runtime,
process execution stops at this breakpoint and input/output tabs containing the
current data can be reviewed. To set a breakpoint, select an activity in TIBCO
Designer, select View>Test>Set Breakpoints.
In test mode, you can review the Input and Output tabs of each task in each
process to see the data being transformed.
Expected Results
You should see the message travel from the File Poller activity through several
activities to the End task.
If all the processing succeeds, messageTypes.txt is created in the directory
specified by the hl7.samples.batch.dir global variable.
This file should contain a list of the message type for each message in the file read.
Examples:
• RQI_A04
• ADT_A05
• QRY_Q01
Troubleshooting
The following troubleshooting item may be useful.
This simple tutorial shows how the TIBCO HL7 Integration Server can work with
HL7 V3 messages, which are XML-based.
The examples here are from the CDA (Clinical Document Architecture). For
details on the CDA standard, see http://www.hl7.org.
The following two processes have been included:
• Process CDA Minimal Sample. This process reads
<HL7_installation_directory>\samples\CDA\CDA_minimal_sample.xml and
uses the Parse XML task to parse the file.
• Process CDA Rich Sample. This process reads
<HL7_installation_directory>\samples\CDA\CDA_rich_sample.xml and uses
the Parse XML task to parse the file.
Tutorial Files
The following files are part of this tutorial:
• CDA.dat. Repository instance containing the tutorial.
• CDA.dtd. CDA schema definition.
• CDA_minimal_sample.xml. The XML (CDA) message that triggers the
Process CDA Minimal Sample Process.
• CDA_rich_sample.xml. The XML (CDA) message that triggers the Process
CDA Rich Sample Process.
Setup
Before running the tutorial, the hl7.samples.CDA.dir global variable must be
configured. This variable refers to the directory that contains
CDA_minimal_sample.xml and CDA_rich_sample.xml. By default, the value of
this variable is C:/tibco/hl7/1.0/samples/CDA. If TIBCO HL7 Integration
Server is installed in a non-default directory, change this variable by selecting
Edit>Global Variables> in the TIBCO Designer menu and changing
hl7.samples.CDA.dir to the new value.
b. Enter
designer
10. Run the process in Test mode by selecting View>Test>Load Processes and
Start or by pressing Shift + F9.
11. Select Process CDA Minimal Sample.
12. Click Start.
b. Enter
designer
10. Run the process in Test mode by selecting View>Test>Load Processes and
Start or by pressing Shift + F9.
Notes
TIBCO Designer simulates the message flow by changing the color of the
transition lines from black to green. Places where the process waits for an action
are in yellow. Errors are red blocks.
In TIBCO Designer, make sure that the Show Ball check box is selected. With one
of the applications selected, select View>Test>Moving Ball Options.
In TIBCO Designer, you can set breakpoints before or after an activity. At runtime,
process execution stops at this breakpoint and input/output tabs containing the
current data can be reviewed. To set a breakpoint, select an activity in TIBCO
Designer, select View>Test>Set Breakpoints.
In test mode, you can review the Input and Output tabs of each task in each
process to see the data being transformed.
Expected Results
You should see the message travel from the Read XML file task to the Parse XML
task in each process.
If all the processing succeeds, you will see a message similar to the following in
either the Console Window or the Designer log file:
HL7 CDA Sample PROCESS CDA MINIMAL SAMPLE : RECEIVED A Consultation
note REQUEST FROM : General internal medicine clinic
or
HL7 CDA Sample PROCESS CDA RICH SAMPLE : RECEIVED A Consultation
note REQUEST FROM : General internal medicine clinic
If an error occurs, you will see a message that begins with the following in either
the Console Window or the Designer log file:
HL7 CDA Sample - ERROR PROCESS CDA MINIMAL SAMPLE
or
HL7 CDA Sample - ERROR PROCESS CDA RICH SAMPLE
Troubleshooting
The following troubleshooting item may be useful.
This tutorial shows how TIBCO BusinessWorks can process an inbound EDI-X12
HIPAA 275 message with an embedded HL7 message. An EDI-X12 HIPAA 275
message would normally be requested by a payor like an insurance company
from a provider like a hospital.
In this tutorial, a file, which contains an EDI document which was converted to
XML and encoded in Unicode, is read and then passed through several mapping
and parsing tasks to extract the embedded HL7 message from the HIPAA
message.
The following sample EDI HIPAA 275 documents come with the tutorial:
• 275_HL7ex1.xml
• 275_HL7ex2.xml
Each EDI HIPAA 275 document in these files has been converted to XML and
encoded in Unicode.
The following processes have been included in the project:
• Process ex1. Reads the encoded file 275_HL7ex1.xml and passes the text
content to the Process 275 Process.
• Process ex2. Reads the encoded file 275_HL7ex2.xml and passes the text
content to the Process 275 Process.
• Process 275. Takes an EDI document in XML format and parses the XML to
access the EDI-specific data. Element-785 from the EDI document is then
decoded from base64 and passed to a HL7 parser activity.
If no errors occur during the HL7 parsing, the Message Type and HL7 Version
number are written to a log file and the processes end.
If an error occurs during the HL7 parsing, the HL7 Message is written to
ERROR.hl7 in the directory specified by the hl7.samples.HIPAA.dir global
variable. An error is generated.
See also ”How TIBCO HL7 Integration Server and TIBCO BusinessConnect EDI
Protocol HIPAA Edition Can Work Together” on page 215 for an overall view of
the HL7/HIPAA message exchange that occurs between enterprises before the
275 HIPAA message, described in this tutorial, is exchanged.
Tutorial Files
The following files are part of this tutorial:
• ClaimsAttachments.dat. Repository instance containing the example.
• 4020X107_275.xsd. Schema definition for the EDI 275 standard.
• ClaimsAttachment.vmd. HL7 definition for the Interface Engine used in this
example. This file was created using TIBCO HL7 Message Designer. This .vmd
file is for reference only. This .vmd message definition has already been loaded
into the ClaimsAttachments.dat repository instance, so you do not need this
.vmd file to run the example.
Setup
Before running the tutorial, the hl7.samples.HIPAA.dir global variable must be
configured. This variable refers to the directory that contains 275_HL7ex1.xml
and 275_HL7ex2.xml. By default, the value of this variable is
C:/tibco/hl7/1.0/samples/HIPAA. If TIBCO HL7 Integration Server is
installed in a non-default directory, change this variable by selecting Edit>Global
Variables> in the TIBCO Designer menu and changing hl7.samples.HIPAA.dir
to the new value.
b. Enter
designer
Notes
TIBCO Designer simulates the message flow by changing the color of the
transition lines from black to green. Places where the process waits for an action
are in yellow. Errors are red blocks.
In TIBCO Designer, make sure that the Show Ball check box is selected. With one
of the applications selected, select View>Test>Moving Ball Options.
In TIBCO Designer, you can set breakpoints before or after an activity. At runtime,
process execution stops at this breakpoint and input/output tabs containing the
current data can be reviewed. To set a breakpoint, select an activity in TIBCO
Designer, select View>Test>Set Breakpoints.
In test mode, you can review the Input and Output tabs of each task in each
process to see the data being transformed.
Expected Results
You should see the message travel from the Process ex1 or Process ex2 Process to
the Process 275 Process.
If the parsing succeeds, a message displays in either the Console Window or the
Designer log file. To view the Console Window, select Window>Show Console.
The log file is
<TIBCO_Designer_installation_directory>\4.1\logs\<project_name>.log.
The message that displays is similar to the following:
Job-1000 [Processes/Process 275/Log some message details]:
2002-11-01T17:26:33.138-08:00HL7 HIPPA Example Message Type : ORU
R01
HL7 Version # : 2.4
Troubleshooting
The following troubleshooting item may be useful.
Shared Configurations
The Shared Configurations folder contains the following:
• Definitions. These HL7 Definition resources are used in processes to specify
.vmd message definition files and the one or more message type definitions
that each .vmd message definition can contain.
— Patient Admission Definition. This resource specifies
Patient-Admission.vmd.
Interface Engine
The Interface Engine folder contains various processes. The Interface Engine
processes exchange and handle documents from the simulated client applications.
Simulated Systems
The following shows, among other items, the simulated systems.
Tutorial Files
The following files are part of this tutorial:
• ADT_A05.hl7. The HL7 message that triggers the tutorial.
• Patient-Admission.dat. The TIBCO Designer project file.
• Patient-Admission.vmd. The ACK, ADT_A04, ADT_A05, ADT_A11,
ADT_A14, ADT_A28, ADT_A29, ADT_A31, RQI_I01, and RPI_I01 HL7
message definitions. This file was created using TIBCO HL7 Message
Designer. This .vmd file is for reference only. The .vmd definition has already
been loaded into the .dat repository instance, so you do not need this .vmd
file to run the example. See ”HL7 Messages” on page 208 for more
information.
• QueryMessages.vmd. The QRY_Q01 query message and ADR_A19 query
response HL7 message definitions. This file was created using TIBCO HL7
Message Designer. This .vmd file is for reference only. The .vmd definition has
already been loaded into the .dat repository instance, so you do not need
this .vmd file to run the example. See ”HL7 Messages” on page 208 for more
information.
Setup
Global variables in TIBCO Designer are used to configure the transport settings
between the systems. The HIS and Eligibility and Scheduler Responder systems
can also be configured as simulated/live.
b. Enter
designer
Notes
TIBCO Designer simulates the message flow by changing the color of the
transition lines from black to green. Places where the process waits for an action
are in yellow. Errors are red blocks.
In TIBCO Designer, make sure that the Show Ball check box is selected. With one
of the applications selected, select View>Test>Moving Ball Options.
In TIBCO Designer, you can set breakpoints before or after an activity. At runtime,
process execution stops at this breakpoint and input/output tabs containing the
current data can be reviewed. To set a breakpoint, select an activity in TIBCO
Designer, select View>Test>Set Breakpoints.
In test mode, you can review the Input and Output tabs of each task in each
process to see the data being transformed.
Expected Results
The output directory is where Interface Engine writes the outgoing HL7 messages
in the simulated mode.
The following event flow occurs in this tutorial:
1. A patient arrives in hospital.
2. Patient demographic information such as name, address, and phone is
entered into the Simulated Scheduling System.
3. Patient primary care physician and Health Plan (payor) information is entered
into the Simulated Scheduling System.
4. The Simulated Scheduling System client uses an LLP Request Response
activity to send an ADT_A05 pre-admit message to the Interface Engine. Note:
The Scheduling System is not fully HL7-compatible.
5. The Interface Engine uses an LLP Receiver with ACK activity to receive the
ADT_A05 pre-admit request from the Scheduling System. This activity parses
6. The Interface Engine calls the Generate Msg Definition process, which
contains Java code that determines the message type.
7. The Interface Engine uses a Deliver HL7 Msg Get SyncResponse activity to
determine the key, and sends a notify on the specific key to activate one of the
9. The Simulated HIS client uses an Handle HL7 Message activity to receive the
QRY_Q01 query message from the Interface Engine.
10. The Simulated HIS client uses a Deliver Synchronous Response or ACK
activity to send an ADR_A19 query response to the Interface Engine.
11. Interface Engine parses the ADR_A19 query response from the HIS client
system.
a. The patient is new (the query did not return a patient record). A new
record is then created in the Scheduling System client and the Interface
Engine creates an ADT_A28 new patient message and sends it to the HIS
client.
This can be done by comparing the Patient information with the ADR_A19
query response message contents.
12. If the patient is new, the HIS client uses an Handle HL7 Message activity to
receive the ADT_A28 new patient message from the Interface Engine.
13. If the patient exists, the HIS client uses an Handle HL7 Message activity to
receive the ADT_A31 update patient message from the Interface Engine.
14. If the HIS client cannot receive an ADT_A28 new patient or ADT_A31 update
patient, Interface Engine may send an ADT_A05 pre-admit to the HIS client.
16. The Interface Engine uses an LLP Request Response activity to send the
ADT_A14 pending admit message to the Scheduling System client and the
HIS client.
17. The Interface Engine uses an HL7 Renderer activity to create an RQI_I01
eligibility verification request.
18. The Interface Engine uses an LLP Request Response activity to send an
RQI_I01 eligibility verification request to the HL7-enabled simulated
Eligibility client. This is the insurance carrier.
19. The remote Eligibility insurance carrier system client uses an LLP Receiver
with ACK activity to receive the RQI_I01 eligibility verification request from
the Interface Engine.
20. The remote Eligibility insurance client uses an HL7 Renderer activity to create
an RPI_I01.
21. The remote Eligibility insurance client uses a Deliver HL7 Msg Get
SyncResponse activity to send the RPI_I01 eligibility verification response
back to the Interface Engine.
b. After a negative eligibility response, the Interface Engine also uses an LLP
Request Response activity to send an ADT_A11 message to the Scheduling
System client and the HIS client.
b. After a positive eligibility response, the Interface Engine also uses an LLP
Request Response activity to send the ADT_A04 outpatient registration
message to the simulated HIS, Clinical, Billing, and Scheduling client
systems.
If the Scheduling System client cannot accept HL7 messages from the Interface
Engine, incoming HL7 messages can be transformed to a database record and
inserted into the application.
Also, each ADT message may request an ACK from the recipient.
Scheduling Interface
HIS Eligibility Billing Clinical Sys
Sys tem Engin e
AD T
A05()
QRY
Q01()
AD R
A19()
ACk()
R PI I01()
ACK()
N ot Elig ible: AD T
A11()
ACK()
N ot Eligib le: AD T
A11()
AC k()
Eligible: ADT
A04()
ACK()
Elig ible: AD T
A0 4()
AC k()
Eligible : AD T
A04()
AC K()
Eligible: AD T
A04()
ACk()
Error Conditions
There could be errors in any of the messages above. These include the following:
• mal-formatted HL7 message
• invalid or unrecognized character in the message
• Required fields missing
• Segment and Field improperly delimited
• Message is abruptly truncated
• Length of fields in not as expected
• Receive an unexpected HL7 message — for example a "cancel admit" ADT
A11 prior to a admit record — ADT A04
• An ADT A04 message for a patient with a patient ID that is not in the HIS
system. In this case a QRY Q01 must be initiated to confirm the existence or
absence of the patient in the system.
HL7 Messages
The following HL7 messages are involved in the registration and admission of a
patient:
• ACK
• ADT_A04 — Outpatient registration
• ADT_A05 — Preadmit
• ADT_A11 — Cancel admit
• ADT_A14 — Pending admit
• ADT_A28 — New patient
• ADT_A31 — Update patient
• RQI_I01 — Eligibility verification request
• RPI_I01 — Eligibility verification response
• QRY_Q01 — Query patient record
• ADR_A19 — Query response
The following tips and tricks may be useful when building a project.
4. Right-click values.
5. Select Copy.
6. Paste the content into a text file.
7. Save the text file using a name that will help you remember the mapping.
8. If you want to restore this mapping later, copy the contents of the text file,
right-click values, and select Paste.
See also ”Tutorial — HL7 Parser and HL7 Renderer Activities in TIBCO Designer”
on page 146.
The following describes how to run a project under the BusinessWorks engine.
Windows
When running a project on Windows under the BusinessWorks engine, do the
following:
1. Enter
<BW_installation_directory>\2.0\setenv.bat
2. Enter
bwengine <full_path_of_repository_file>
or,
cd <bw_repository_directory>
bwengine <repository_file>
UNIX
When running a project on UNIX under the BusinessWorks engine, do the
following:
1. Making sure to include the initial period (.) in the command below, in Bourne
shell or k-shell, enter
. <BW_installation_directory>/2.0/setenv.sh
or, in c-shell, enter
source <BW_installation_directory>/2.0/setenv.csh
2. Enter
bwengine <full_path_of_repository_file>
or,
cd <bw_repository_directory>
bwengine <repository_file>
Topics
TIBCO HL7 Integration Server and TIBCO BusinessConnect EDI Protocol HIPAA
Edition can be used in concert to provide the ability to include HL7 information in
EDI-X12 275 HIPAA messages exchanged between a healthcare enterprise and an
external payor enterprise.
1
Provider
Payor
Hospital EDI-X12 HIPAA 837 Message Insurance
Information
Company
System (HIS)
-
- 2 TIBCO HL7
TIBCO HL7
Integration Server
Integration Server
EDI-X12 HIPAA 277 Message -
-
TIBCO
TIBCO
BusinessConnect
BusinessConnect
3 EDI Protocol
EDI Protocol
HIPAA Edition
HIPAA Edition
EDI-X12 HIPAA 275 Message (HL7 embedded)
2. The payor uses TIBCO BusinessConnect EDI Protocol HIPAA Edition to send
an EDI-X12 277 Health Care Information Status Notification HIPAA message
back to you. This is a responder request for more information.
3. You use TIBCO BusinessConnect EDI Protocol HIPAA Edition to send an
EDI-X12 275 Patient Information HIPAA message back to the payor. This is a
responder response message. See ”Tutorial — Inbound EDI-X12 HIPAA
275/HL7 Messages in TIBCO Designer” on page 177 for a tutorial that shows
this part of the interaction.
The BIN segment of this 275 XML message TIBCO BusinessConnect EDI
Protocol HIPAA Edition contains an embedded HL7 ORU (Observation
Result/Unsolicited) message created in TIBCO HL7 Integration Server with
the additional patient information that was requested. This information can
include diagnoses, test results, observations, and treatments.
The BIN segment is carried in the response field of the private
RESPONDER.RESPONSE message in EDI HIPAA. See the TIBCO BusinessConnect
EDI Protocol HIPAA Edition Guide for more information on the
RESPONDER.RESPONSE messaging class.
The embedded HL7 ORU message is obtained during EDI processing in
TIBCO BusinessWorks. Also see ”HL7 ORU Messages” on page 223.
There are many other scenarios where it make sense to use TIBCO HL7
Integration Server and TIBCO BusinessConnect EDI Protocol HIPAA Edition
together. For example, after a patient is discharged, the HL7 discharge message
can trigger queries to a billing system, which can then generate a proper 837
HIPAA message to send to the insurance company. This streamlines the operation
for claim submission, brings valuable turn-around time for the provider, and
helps increase efficiency and return on investment.
Topics
Each HL7 message type definition contains a set of lines known as segments. Each
segment groups related information, and has a three-character name and a
pre-defined format of specific fields. The fields are separated by the | (pipe)
character, and may be further divided into subcomponents with the ^ character.
Different HL7 events trigger different message types - each message type has a
defined set of segments that are joined together to provide all the required
information regarding that event. Some segments are mandatory, and must be
included in the message, and other segments are optional.
Each segment is delimited by one of the following end line characters:
• \n
• 0x0D
Each segment contains a specific type of information. Examples:
• MSH. Information about the sender and receiver of the message, type of
message, and time stamp.
• PID. Demographic information. This includes patient name, id codes, and
address.
• PV1. Information on the patient’s hospital stay. This includes location, and
referring doctor.
Each segment in turn contains a sequence of fields that are composites. These
fields may or may not repeat. Composites are delimited by "|".
The following is a typical HL7 ADT^A04 message, which is sent after a patient
enters the hospital. When the patient information is entered into the Patient
Administration System (PAS), the information is sent to other enterprise systems,
such as Pathology Laboratory Information Systems or Pharmacy Systems.
MSH|^~\&|EPIC|EPICADT|SMS|SMSADT|199912271408|CHARRIS|ADT^A04|1817
457|D|2.3|EVN|A04|199912271408|||CHARRIS
PID||0493575^^^2^ID 1|454721||DOE^JOHN^^^^|DOE^JOHN^^^^|
19480203|M||B|254 E238ST^^EUCLID^OH^44123^USA||(216)731-4359|||
M|NON|400003403~1129086|999-|
NK1||CONROY^MARI^^^^|SPO||(216)731-4359||EC|||||||||||||||||||||||
||||
PV1||O|168 ~219~C~PMA^^^^^^^^^||||277^ALLEN FADZL^BONNIE
^^^^|||||||||| ||2688684|||||||||||||||||||||||||
199912271408||||||002376853
HL7 messages are in ASCII, and are difficult to interpret. However, you can use
TIBCO HL7 Message Designer to instantly convert an HL7 ASCII message to a
tree format. You can also use TIBCO HL7 Message Designer to convert an HL7
ASCII message to XML. TIBCO has defined an XML format that is easy to read.
This also allows data to work well with other components in TIBCO
BusinessWorks.
You can also use TIBCO HL7 Message Designer to convert the XML message back
to ASCII.
See ”Converting, Testing, and Debugging Messages” on page 37 for information
on how do this.
This appendix describes the utilities that come with TIBCO HL7 Integration
Server.
Topics
The HL7 Listener utility allows you to listen to and record a stream of messages
that normally travel from an enterprise application to the Interface Engine. These
are HL7 messages that, for example, a Laboratory enterprise application might
send to the Interface Engine before they are transformed and distributed to other
interested systems in the hospital.
After you use the HL7 Listener utility to capture and log a stream of live messages
that would normally go from an enterprise application straight to the Interface
Engine, you can later use the HL7 Simulator utility to send the captured HL7
messages to the Interface Engine one at a time. The HL7 Simulator utility allows
you to simulate a live feed of messages from an enterprise application to the
Interface Engine. This allows you to more easily detect any problems with a set of
HL7 messages because you are sending and monitoring one message at a time.
The HL7 Listener and HL7 Simulator can be used together in other ways, but the
following description of how to use these utilities together is based on their use in
the scenario in the previous paragraph.
1. Enter a directory and a file name in the Message Log File name field. This is
the file to which you will save the HL7 messages that you capture if you select
Append to message log file.
2. Select Append to message log file if you want to capture the messages. Clear
this check box if you want to see the message flow in the dialog, but do not
want to record anything to the message log file.
3. Enter the number of the port on which you want to listen for messages from
an enterprise application. The application that is sending the messages that
you want to capture must be configured to use TCP/IP to connect as a client
to this port. This is because the HL7 Listener works as a TCP/IP server that is
listening on a port number.
4. The MSH header can indicate what field separators should be used. By
default, the field separator is "|". But each HL7 message can be different if the
sender is creative. In this case, select Parse Delimiter Characters from MSH
Segment. If the sender uses the default "|", clear this check box.
5. If the sender application expects an acknowledgement, and will not send the
next message until it gets an acknowledgement for each message, select Send
Acknowledgement back to sender.
6. Click Start when you are ready to start listening to the sender application.
1. Enter the host name in the Host field. This is the host machine that is home to
the Interface Engine to which you are sending the HL7 messages one by one.
2. Enter the port on which the Interface Engine is expecting the HL7 messages.
These are the HL7 messages that it would normally receive directly from the
sender enterprise application all at once.
3. Select the message file that you created using the Listener utility. This contains
the HL7 messages that you captured using the Listener utility.
4. If you do not select Keep sending messages when ACK received, the
simulator sends only one message each time you click Start, even if the
message file contains 10 messages.
Select Keep sending messages when ACK received if you want to
automatically send the next message in the message log file after an
acknowledgement message is received from the Interface Engine for the last
message. In that case, if an acknowledgement is received for message 1 from
the Interface Engine within the period in the Time out field, the Simulator
sends message 2 automatically. If an acknowledgement is not received from
the Interface Engine for message 1 in the period in the Time out field (in
milliseconds), the Simulator tries to resend message 1 as many times as are
specified in the Retry Count field.
The Time Delay field specifies in milliseconds how long to wait before
automatically sending the message 2 after getting an acknowledgement from
the Interface Engine for message 1.
5. Select Receive Acknowledgement Messages Via Server Socket if you expect
acknowledgements on a different connection, and therefore on a different
port. Then enter a port on which to expect the acknowledgement messages
from the Interface Engine.
6. Click Start when you are ready to start sending messages.
For complete information on these utilities, see the TIBCO HL7 Message Designer
documentation, which is available through the Help menu in TIBCO HL7
Message Designer.
The HL7 Diff utility is a command line utility that allows you compare two HL7
messages semantically. The Diff utility does not compare the content of two HL7
files, which can vary without the semantics of the messages being different.
For example, you can use this utility to compare two ADT_A05 files, one created
by another vendor’s HL7 software, one created by TIBCO HL7 Integration Server.
The purpose is to make sure that the files are semantically identical, as evidence
that TIBCO HL7 Integration Server can produce an HL7 file that is semantically
identical to a file created by another vendor.
The following shows how this might look before executing msgdiff.exe.
The following shows how this might look after executing msgdiff.exe.
After you execute msgdiff.exe, open index.html in a browser to view the results.
The numbers show the number of differences between the messages in the files.
Click a message to see the differences, if any.
Glossary
a certificate are the CA’s signature, the user’s software that supports certificates has a
identity, and the user’s public key. collection of trusted CA certificates. These
trusted CA certificates determine which
A certificate is like a driver’s license in that both
certificate issuers the software can "trust".
are issued by a recognized authority (a CA or a
governmental agency, respectively) and both The root CA's certificate is unique in that it is a
identify the holder. self-signed certificate. It is signed by the root CA
itself. The CAs that are directly subordinate to
A certificate’s contents are specified by the X.509
the root CA in the CA hierarchy have CA
standard, such as X.509v3.
certificates that were verified and signed by the
If client-side authentication is required, an entity root CA.
is authenticated using the X.509 certificate that
certificate chain
the client provides to the server.
A list of certificates made up of a user’s X.509
A certificate contains the following items, among digital certificate and the certificate chain of its
others: CA’s certificates. The top certificate of the
certificate chain is the "root" CA certificate. Each
— An entity’s public key. This is like a signature
CA’s certificate is followed by the certificate of
on a driver's license.
the CA that issued the first CA’s certificate.
— An entity’s "distinguished-name"
A certificate chain can be in a certificates file. See
information. This is like personal information on
also certificates file.
a driver’s license. Examples: Name,
organizational unit, organization, city or locality, A certificate chain can also be in a key identity
state or province, and country code. file. See also key identity file.
— The CA’s digital signature. This is like the certificates file
lamination, holographs, and other unique A file that contains a private key’s certificate
packaging on a driver’s license. This "proves" to chain. Unlike a key identity, it contains no
a third party that the CA has authenticated the private key and is not protected with a
user’s identity. password. Trading partners exchange certificates
files during the setup phase of their relationship.
— The CA’s "distinguished-name" information.
Each trading partner then installs the other
This is like the issuing agency’s identifying
partner’s certificates file. For a host to verify the
information on a driver’s license.
validity of a trading partner’s certificate, the host
— A date range. This describes the time period must "trust" each CA’s certificate in the
in which the certificate is valid. certificate chain within the trading partner’s
certificates file. The certificates file defines how
The data string known as a certificate can be
each trading partner should expect the other to
represented by itself in different file formats.
identify itself in e-commerce transactions. The
Among these would be .der and .pem.
supported format is PKCS#7 "certificates only",
A certificate is in a certificate chain. See also which can have file extensions like .p7b and .p7c.
certificate chain. When setting up an installation for e-commerce,
the key identity file relates to the trading host
Certificate Authority (CA)
and certificates file(s) relate to any trading
A trusted third party that validates identities
partner(s) that the host has.
and issues X.509 certificates by signing the
certificate with its signature. Any client or server ChemXML™
I M
IMAP, IMAP4 MAPI
Internet Message Access Protocol. A transport Messaging Applications Programming Interface.
protocol for email clients to retrieve email from a A proprietary interface to client email servers.
message store on a host server. IMAP is newer
MIME PIP
Multipurpose Internet Mail Extensions. A Partner Interface Process. Part of the RosettaNet
standard structured messaging format which and ChemXML business protocols.
allows a single message to contain many parts,
PKI
such as plain text, web hypertext documents,
Public Key Infrastructure. The infrastructure
graphics, audio, and fax. MIME specifies how
necessary to successfully use public key
messages must be formatted so that they can be
cryptography. This infrastructure includes
exchanged between different email systems.
certificates and certificate authorities.
MIME is a very flexible format, which can
include virtually any type of file or document in plugin
an email message. MIME uses base64 and other A data container with fields for specifying how
encodings to encode non-text information as text data is routed in a transform. A plugin can
to make sure that email messages with images or retrieve input data from a file, or output it to
other non-text information are delivered with TIBCO Rendezvous. Each plugin also has
maximum protection against corruption. For multiple read-only fields. By entering data in the
example, a MIME message may have a header, input fields, you configure the plugin to fit your
body, and digital signature. See also S/MIME. environment. A plugin has input and output
properties that are graphically represented as
ports. Connection lines that represent data flow
are drawn between ports. The resulting
N transform defines part or all of a particular
business transaction. When plugins are
nack activated, the transform becomes functional
A return message indicating that data has not during the next run-time mode. See transform.
been received correctly. See also ack.
PO
non-repudiation Purchase Order.
Non-repudiation of service allows the sender of
POP, POP3
a message to provide the recipient of a message
Post Office Protocol. A client-to-host transport
proof of the origin of the message. This protects
protocol for email clients to retrieve email from a
against any attempt by the sender to
message store. POP is more widely used than the
subsequently revoke the message or its content.
IMAP protocol, which has more features. See
This is based on a sender’s unique digital
also IMAP.
signature.
private key
The part of a key pair that is kept strictly
confidential. It is encrypted with a password. It
P is used for message unencryption and for
signing. A private key is kept in a key identity
parsed file.
For XML, data that has been converted to the
public key
TIBCO IntegrationManager internal
The part of a key pair that can be shared with
representation (AttributeNode) and which can
anybody. It is used for message encryption and
be accessed at the field level by other
for verifying a signature.
components. See also unparsed.
SQL T
Structured Query Language. A language for
accessing data in a database. TCP/IP
Transmission Control Protocol on top of the
SSL
Internet Protocol. Protocols to enable
Secure Sockets Layer. A protocol designed by
communication between different types of
Netscape Communications Corporation to
computers and computer networks. TCP is a
encrypt data and authenticate senders. SSL is the
connection-oriented protocol that provides
industry standard for sharing secured data over
reliable communication and multiplexing. IP is a
the web. SSL provides encryption, client and
connectionless protocol that provides packet
server authentication, and message integrity.
routing.
SSL is part of all major browsers and web
servers. Installing a digital certificate makes a transform/transformation function
browser or server’s SSL capabilities available. A function allows you to represent and
SSL is layered beneath protocols such as HTTP, transform data in a TIBCO BusinessPartner
SMTP, Telnet, FTP, Gopher, and NNTP. SSL is transform. All transformation functions
layered above the TCP/IP connection protocol. available in TIBCO MessageBroker are available
SSL can use digital certificates to authenticate an in TIBCO MessageBroker software. In addition,
encrypted socket. A client signs random data custom functions are provided that can be used
with a private key during the setup phase of an with plugins. This allows you to convert
SSL connection to authenticate itself. Encrypted information into a different data format. A
data sent after the setup phase is not signed. SSL transformation function takes one or more
is available at the 40-bit, 56-bit, and 128-bit inputs and produces a single output. For
levels. This refers to the length of the session key example, a function can be used to convert a
that every encrypted conversation generates. purchase order into a tree format, and then into
The longer the session key is, the more difficult it another format, such as a TIBCO Rendezvous
is to break the encryption code. TIBCO message. See plugin.
BusinessConnect supports different levels of
type-aware
SSL, including the highest level, which uses
A document that uses a schema of some sort. The
server and client authentication. SSL is used by
in-memory representation of 'type-aware' data
HTTPS. See also HTTPS.
uses strings, numbers, and arrays, among others.
symmetric key cryptography See also untyped.
A system that offers encryption. The same key is
used to encrypt and unencrypt data. A sender
encrypts a document using the symmetric key,
and the recipient decrypts the document using U
the same symmetric key. See also public key
cryptography. UCCnet
A universal foundation for industry
synchronous transaction type
standards-based electronic commerce. This
A request/response transaction type in which
provides foundational product registry services,
the responder sends a response on the sending
enabling the synchronization of item and
channel. See also asynchronous transaction type.
location information among trading partners,
trade exchanges, solution partners and national
data pools. UCCnet also facilitates
Index
A D
ack 233 DBMS 235
ActiveEnterprise 233 Deliver HL7 Message Get Sync Response activity 83
additional features in TIBCO HL7 Message Deliver Synchronous Response or ACK activity 89
Designer 34 developing a project involving multiple message defi-
alert 233 nition files 33
architecture 12 digital certificate 235
asynchronous transaction type 233 digital signature 235
dispatcher template 96
document type declaration 235
DTD 235
B DUNS Number 236
B2B 233
C EAI 236
EDI 236
CA 233 element 236
CDATA 233 ERP 236
certificate 233 exception 236
Certificate Authority (CA) 234
certificate chain 234
certificates file 234
ciphertext 235 F
cleartext 235
client 235 features 11
CMS 235 FTP 236
compatibility 11 function 237
container 235
CRM 235
CSR 235
CSV 235 G
customer support xi
generic TIBCO Designer activities in TIBCO Designer
tutorials 49
GUI 237
H K
Handle HL7 Message activity 85 key file 237
HeaderAndAck.vmd key identity file 237
customizing 44 key pair 237
using 43
HIPAA and HL7 messaging 214
HL7 3
HL7 and HIPAA messaging standards 2 L
HL7 Definition resource 53
HL7 Diff utility 230 LLP connection and messaging options 74
HL7 Evolution 5 LLP Connection resource 55
HL7 Functional View 7 LLP Receiver with ACK activity 68
HL7 Implementation Questions 3 LLP Request Response activity 65
HL7 Implied Data Model 7 LLP Resources and Activities in TIBCO Designer pro-
HL7 Listener and HL7 Simulator utilities 226 cesses
HL7 message components 219 using 73
HL7 ORU messages 223 LLP Response activity 71
HL7 Parser activity 59
HL7 Protocol Description 6
HL7 Renderer activity 61
HL7 sample message 221 M
how TIBCO HL7 Integration Server and TIBCO Busi-
nessConnect EDI Protocol HIPAA Edition can making HL7 messages more readable 222
work together 215 MAPI 237
HTTP 237 matrix for LLP connection and messaging options 74
https 237 MIME 238
I N
IMAP, IMAP4 237 nack 238
installing on Windows 16 non-repudiation 238
interface engine 24
P
J
Parse Header and Create ACK activity 63
JSSE 237 parsed 238
PIP 238
PKI cryptography 238
plugin 238
PO 238
U
uninstalling on Windows 17, 20
unparsed 241
untyped 241
URI 241
URL 241
URN 241
using LLP Resources and Activities in TIBCO
Designer processes 73
utilities
HL7 Diff 230
HL7 Listener and HL7 Simulator 226
V
VAN 241
VPN 241
W
Wait For Async Response activity 87
X
X12N 217
XDR 241
XML 241
XML schema 242
XSD 242
XSDL 242
XSL 242
XSLT 242