You are on page 1of 262

TIBCO HL7 Integration Server™

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

Chapter 1 Healthcare Messaging Standards and TIBCO Solutions . . . . . . . . . . . . . . . . . . . . . . 1


HL7 and HIPAA Healthcare Messaging Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
How HL7 and HIPAA Messaging Can Overlap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
HL7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
HL7 Implementation Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
HL7 Evolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
HL7 Protocol Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
HL7 Functional View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
HL7 Implied Data Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
TIBCO HL7/HIPAA Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
TIBCO HL7 Integration Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
TIBCO BusinessConnect EDI Protocol HIPAA Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Features: TIBCO HL7 Integration Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Chapter 2 Installing TIBCO HL7 Integration Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13


Setup Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
TIBCO HL7 Integration Server Software Bundle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Configuration Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Installing on Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Uninstalling on Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Installing on UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Solaris Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Installing the Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
After Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Using TIBCO HL7 Message Designer with UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

TIBCO HL7 Integration Server User’s Guide


iv
| Contents
Uninstalling on UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Chapter 3 TIBCO HL7 Integration Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21


TIBCO HL7 Integration Server Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
TIBCO HL7 Integration Server — Design-time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
TIBCO HL7 Integration Server — Run-time. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Learning Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Interface Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
How to Use TIBCO HL7 Integration Server Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Chapter 4 TIBCO HL7 Message Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27


TIBCO HL7 Message Designer GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Using the TIBCO HL7 Message Designer New Project Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Developing a Project Involving Multiple .vmd Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Additional Features in TIBCO HL7 Message Designer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Adding a Message Type to a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Converting, Testing, and Debugging Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Creating an .xsd XML Schema File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Using the HeaderAndAck.vmd Message Definition File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Customizing the HeaderAndAck.vmd Message Definition File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
HeaderAndAck.vmd Compatibility with Parse Header Activity and Create ACK and LLP Receiver with ACK
Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Customizing HeaderAndAck.vmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Chapter 5 TIBCO Designer — HL7 Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47


TIBCO Designer GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Tutorials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Guidelines for Designing a Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Tip and Tricks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Generic TIBCO Designer Activities in the TIBCO Designer Tutorials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Starting TIBCO Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
TIBCO Designer — HL7 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Shared Resources Palette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
HL7 Definition Resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
LLP Connection Resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

TIBCO HL7 Integration Server User’s Guide


Contents v
|
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Activities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
HL7 Parser Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
HL7 Renderer Activity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Parse Header and Create ACK Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
LLP Request Response Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
LLP Receiver with ACK Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
LLP Response Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Guidelines for Using LLP Resources and Activities in TIBCO Designer Processes . . . . . . . . . . . . . . . . . . . . . . 73
Matrix For LLP Connection and Messaging Options — Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Matrix For LLP Connection and Messaging Options — Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Client and Server Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Deliver HL7 Msg Get SyncResponse Activity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Handle HL7 Message Activity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Wait For Async Response Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

TIBCO HL7 Integration Server User’s Guide


vi
| Contents
Deliver Synchronous Response or ACK Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Custom Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Using HL7 Custom Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Custom Functions Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Available HL7 Custom Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Template Process Diagram — Dispatcher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Opening the Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
InterfaceEngine Folder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
HL7 Shared Configurations Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

Chapter 6 Tutorials for TIBCO HL7 Integration Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) . . . . . . . . . . . . . . 112
Tutorial Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Step 1 — Using TIBCO HL7 Message Designer to Create GetStarted.vmd . . . . . . . . . . . . . . . . . . . . . . . . 114
Step 2 — Using TIBCO Designer to Create GetStarted.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Step 3 — Running the Tutorial in TIBCO Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Expected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Tutorial — HL7 Parser and HL7 Renderer Activities in TIBCO Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Tutorial Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Running the Tutorial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Expected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Tutorial — LLP Request Response and HL7 LLP Receiver with ACK Activities in TIBCO Designer . . . . . . . . . 150
Tutorial Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Running the Tutorial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Expected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Tutorial — Synchronous Messaging in TIBCO Designer (HL7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Processes Included . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Tutorial Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

TIBCO HL7 Integration Server User’s Guide


Contents vii
|
Running the Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Expected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Tutorial — Asynchronous Messaging in TIBCO Designer (HL7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Processes Included . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Tutorial Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Running the Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Expected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Tutorial — Batch Messages in TIBCO Designer (HL7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Tutorial Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Running the Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Expected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Tutorial — HL7 V3 Messaging in TIBCO Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Tutorial Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Running the Minimal Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Running the Rich Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Expected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Tutorial — Inbound EDI-X12 HIPAA 275/HL7 Messages in TIBCO Designer . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Tutorial Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Running the Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Expected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Tutorial — Patient Admission in TIBCO Designer (HL7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Shared Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Interface Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Simulated Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Tutorial Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Running the Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Expected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Event Flow Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

TIBCO HL7 Integration Server User’s Guide


viii
| Contents
Error Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
HL7 Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Sample HL7 Patient Registration Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Tips and Tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Saving a Complex Mapping for Later Use in TIBCO Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Starting a Project under the BusinessWorks Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

Chapter 7 TIBCO HL7/HIPAA Messaging Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213


HIPAA and HL7 Messaging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
TIBCO HL7/HIPAA Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
How TIBCO HL7 Integration Server and TIBCO BusinessConnect EDI Protocol HIPAA Edition Can Work Together
215
Sample High-Level Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Provider and Payor Roles When Sending an EDI-X12 275 HIPAA Message . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Payor Role When Receiving an EDI-X12 275 HIPAA Message. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

Appendix A HL7 Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219


HL7 Message Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
HL7 Message Definition Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
HL7 Sample Message. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Making HL7 Messages More Readable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
HL7 ORU Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

Appendix B HL7 Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225


HL7 Listener and HL7 Simulator Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Using the Listener Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Using the HL7 Simulator Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
HL7 Diff Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Using the HL7 Diff Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

TIBCO HL7 Integration Server User’s Guide


| ix

Preface

This user’s guide explains how to use TIBCO HL7 Integration Server.

Topics

• Related Documentation, page x


• How to Contact TIBCO Customer Support, page xi

TIBCO HL7 Integration Server User’s Guide


x | Preface

Related Documentation

This section lists documentation resources that you may find useful.

TIBCO Product Documentation


The following documents form the TIBCO BusinessConnect / TIBCO
BusinessPartner documentation set:
• TIBCO ActiveExchange™ Concepts
• TIBCO BusinessConnect EDI Protocol HIPAA Edition Guide
• TIBCO BusinessConnect / TIBCO BusinessPartner User’s Guide
• TIBCO BusinessWorks User’s Guide
• TIBCO Designer User’s Guide

Other TIBCO Product Documentation


You may find it useful to read the documentation for the following TIBCO
product:
• TIBCO Rendezvous™

TIBCO HL7 Integration Server User’s Guide


How to Contact TIBCO Customer Support xi
|

How to Contact TIBCO Customer Support

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.

TIBCO HL7 Integration Server User’s Guide


xii | Preface

TIBCO HL7 Integration Server User’s Guide


|1

Chapter 1 Healthcare Messaging Standards and


TIBCO Solutions

This chapter gives an overview of HL7, TIBCO HL7 Integration Server, HIPAA,
and TIBCO BusinessConnect EDI Protocol HIPAA Edition.

Topics

• HL7 and HIPAA Healthcare Messaging Standards, page 2


• HL7, page 3
• TIBCO HL7/HIPAA Solutions, page 9
• Features: TIBCO HL7 Integration Server, page 11
• Architecture, page 12

TIBCO HL7 Integration Server User’s Guide


2
| Chapter 1 Healthcare Messaging Standards and TIBCO Solutions

HL7 and HIPAA Healthcare Messaging Standards

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.

How HL7 and HIPAA Messaging Can Overlap


Within enterprises like hospitals, events like patient admission and billing trigger
HL7 messages between enterprise applications. Between enterprises like hospitals
and insurance companies, which exchange HIPAA (Health Insurance Portability
and Accountability Act) EDI-X12 transactions, HL7 is used in certain HIPAA
EDI-X12 transactions.
For example, when a patient is admitted to hospital, the Patient Administration
System (PAS) records details about the patient and the admission. Other systems,
such as Pathology Laboratory Information Systems or Pharmacy Systems, are
likely to need information about the new patient. The PAS sends an HL7 message
about the patient to each of the appropriate hospital systems.
Later, when the hospital sends a claim for payment to another enterprise, like an
insurance company, the hospital and the insurance company exchange HIPAA
EDI-X12 messages. One or more of those HIPAA EDI-X12 messages may contain
an embedded HL7 message with additional patient information.

TIBCO HL7 Integration Server User’s Guide


HL7 3
|

HL7

Before HL7, enabling two healthcare applications to communicate involved a


negotiation that had few ground rules. Details as minor as record separators
could be a source of disagreement and delay. Vendor preference tended to
influence the outcome more than customer requirements.
Over the past 10 years, application integration using HL7 has gained wide
acceptance and support. This success has come because HL7 responded to earlier
integration difficulties by providing a common vocabulary and architecture to
connect the analysis/negotiation process more closely to customer requirements.
For customers, using HL7 as a healthcare messaging standard establishes the
baseline architectural rules for integration and the vocabulary for accomplishing
it. For software developers, HL7 provides a framework, but the HL7 specification
itself does not define canonical rules that allow a standard implementation. While
HL7 implies a data model and business rules, it is not based on an explicit
reference architecture, so compliance testing is not practical. This has been a
trade-off within the HL7 community.

HL7 Implementation Questions


The following kinds of questions are expected when a decision is made to use
HL7 to support an integration approach:
• What integration capabilities must be offered?
• How do we establish and manage the boundary between application
functions and message functions?
• How do we support HL7 messaging as a general approach without having to
program support for all possible combinations of transactions, including ones
that are almost never used?
HL7 neither intends nor necessarily recommends that a complete implementation
of an interface must include support for the entire hierarchy of protocol features.
The answer to the question "Which transactions must I support?" is normally
"Support the ones that you need." The HL7 specification allows tremendous
flexibility for a developer working on a specific implementation by supporting
many common requirements.
For example, an ADT vendor may support fewer than half the ADT message
definitions that the standard describes, and yet be functionally and operationally
compliant. This is even more the case with Order Entry, where vendor capabilities
can vary considerably.

TIBCO HL7 Integration Server User’s Guide


4
| Chapter 1 Healthcare Messaging Standards and TIBCO Solutions

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.

TIBCO HL7 Integration Server User’s Guide


HL7 5
|

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.

TIBCO HL7 Integration Server User’s Guide


6
| Chapter 1 Healthcare Messaging Standards and TIBCO Solutions

HL7 Protocol Description


HL7 is a structured, message-oriented framework for communications between
healthcare application systems. When designers began to develop Hl7, they
borrowed from what is now ASC X.12 (EDI). However, the current similarity
between the two standards is accidental for practical purposes since HL7 has
evolved down its own path since its creation.
The HL7 protocol architecture is hierarchical, moving from high-level groupings
and structures to a set of several hundred data fields. Each level of the hierarchy
serves a different organizing purpose.

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.

TIBCO HL7 Integration Server User’s Guide


HL7 7
|

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.

HL7 Functional View


On a functional level, HL7 can be thought of as an architecture with a set of
constituent protocols. The division of message definitions into functional groups
and the division of HL7 itself into functional groups, has resulted in key
conceptual differences between groups.
The idea of the trigger event governs ADT messages. Each ADT message
definition includes an event (EVN) segment that describes the necessary action.
Orders messages on the other hand follow a similar, but not identical scheme.
Rather than an event segment, order messages use a common order segment
(ORC) with an order control code (SEQ 1) that determines the function. The
control code is analogous to a trigger event, but is further broken down into
classes-request, acknowledgement, and notification.
In addition, rather than define ancillary-specific segments that fall under the
general order message (ORM) definition, some ancillary segments have distinct
message definitions with the order entry group. Fortunately, these message
definitions follow the same general encoding rules. Specific ancillary support for
these fairly complex rules, however, is practically always a matter of negotiation.
Not every vendor supports HL7 messaging in exactly the same way. No vendor
supports all forms of all messages.

HL7 Implied Data Model


Because HL7 is not based on an explicit data model, compliance testing against a
reference architecture has not been part of the HL7 culture. The HL7 community
itself tends to accept this as a reasonable trade-off for the sake of flexibility.
Vendors and their systems are diverse and evolve slowly, so the benefits of greater
purity of method would be at the cost of actual utility.

TIBCO HL7 Integration Server User’s Guide


8
| Chapter 1 Healthcare Messaging Standards and TIBCO Solutions

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.

TIBCO HL7 Integration Server User’s Guide


TIBCO HL7/HIPAA Solutions 9
|

TIBCO HL7/HIPAA Solutions

The following TIBCO products work together to provide a solution to a


company’s internal and external HL7 and HIPAA healthcare messaging needs:
• TIBCO HL7 Integration Server
• TIBCO BusinessConnect EDI Protocol HIPAA Edition
The following shows an overview of how HIPAA and HL7 transactions are
exchanged in the context of TIBCO HL7 Integration Server and TIBCO
BusinessConnect EDI Protocol HIPAA Edition.

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

Healthcare Provider Space Healthcare Payor Space

TIBCO HL7 Integration Server


TIBCO HL7 Integration Server is the TIBCO implementation of the HL7 standard.
TIBCO HL7 Integration Server is a software package that provides a framework
for quick integration of a healthcare provider’s HL7 systems.
By combining the TIBCO HL7 Message Designer GUI, process design-time HL7
activities in TIBCO BusinessWorks, and the run-time Interface Engine in TIBCO
BusinessWorks, TIBCO HL7 Integration Server is able to offer HL7 message
customization together with business process design and management.

TIBCO HL7 Integration Server User’s Guide


10
| Chapter 1 Healthcare Messaging Standards and TIBCO Solutions

The Interface Engine, a run-time feature of TIBCO BusinessWorks, can receive


inbound and outbound HL7 messages and convert data back and forth between
HL7 and XML. The Interface Engine can then make business decisions by looking
at the data in the messages. The Interface Engine also provides centralized
messaging routing.
In summary, the TIBCO implementation of the HL7 standard offers healthcare
customers the ability to quickly implement the complex integration of various
healthcare enterprise systems through intuitive process modeling.

TIBCO BusinessConnect EDI Protocol HIPAA Edition


TIBCO BusinessConnect EDI Protocol HIPAA Edition is the TIBCO
implementation of the EDI standard, and offers specialized functionality for
customers who require HIPAA compliance.
TIBCO BusinessConnect EDI Protocol HIPAA Edition enables the exchange of
HIPAA messages and embedded HL7 messages between enterprises like
hospitals and insurance companies.
For information on how TIBCO HL7 Integration Server and TIBCO
BusinessConnect EDI Protocol HIPAA Edition can work together, see Chapter 7,
”TIBCO HL7/HIPAA Messaging Solution”, on page 213.

TIBCO HL7 Integration Server User’s Guide


Features: TIBCO HL7 Integration Server 11
|

Features: TIBCO HL7 Integration Server

The following features are available in TIBCO HL7 Integration Server:


• TIBCO HL7 Message Designer GUI (design-time). This is available in the
Windows version only. If you are using UNIX, see ”Using TIBCO HL7
Message Designer with UNIX” on page 19.
• Complete HL7 Definition library files for HL7 2.x standards, and complete v3
XML support
• TIBCO Designer GUI (design-time)
• Interface Engine (run-time)
• TIBCO Administrator GUI (run-time)

Compatibility
This version of TIBCO HL7 Integration Server installs with and is compatible
with TIBCO BusinessWorks 2.0.4.

TIBCO HL7 Integration Server User’s Guide


12
| Chapter 1 Healthcare Messaging Standards and TIBCO Solutions

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

Data is entered into the


Scheduling System
Patient
Administration
Pathology System
Laboratory Enterprise
Information Application
HL7 Message
System
Enterprise
Application Hospital
Interface Information
Engine System
Radiology (HIS)
Information
System
Enterprise Pharmacy
Application Systems
Enterprise
Application

See ”Tutorial — Patient Admission in TIBCO Designer (HL7)” on page 182 for
complete information on a sample patient admission.

TIBCO HL7 Integration Server User’s Guide


| 13

Chapter 2 Installing TIBCO HL7 Integration Server

This chapter describes how to install TIBCO HL7 Integration Server.

Topics

• Setup Requirements, page 14


• Installing on Windows, page 16
• Uninstalling on Windows, page 17
• Installing on UNIX, page 18
• Uninstalling on UNIX, page 20

TIBCO HL7 Integration Server User’s Guide


14
| Chapter 2 Installing TIBCO HL7 Integration Server

Setup Requirements

This section provides information on the following topics:


• System requirements
• Software requirements
• TIBCO HL7 Integration Server Software Bundle, page 15
• Configuration Information, page 15

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.

TIBCO HL7 Integration Server User’s Guide


Setup Requirements 15
|

TIBCO HL7 Integration Server Software Bundle


The following items are bundled in the TIBCO HL7 Integration Server software
package:
• TIBCO HL7 Message Designer
• TIBCO BusinessWorks
• TIBCO Administrator
• TIBCO Designer
• TIBCO Run-time Agent

Configuration Information
See the TIBCO BusinessWorks documentation for information on configuring
TIBCO BusinessWorks.

TIBCO HL7 Integration Server User’s Guide


16
| Chapter 2 Installing TIBCO HL7 Integration Server

Installing on Windows

This section explains how to install TIBCO HL7 Integration Server on Windows.
You need administrator privileges for your system.

If you have previously installed a pre-release version of the TIBCO HL7


Integration Server, before you install the current version, uninstall the earlier
version of TIBCO HL7 Integration Server, and then uninstall TIBCO HL7 Message
Designer.
Also clean up the PATH environment to remove the added path for the TIBCO HL7
Message Designer before you install the current version of TIBCO HL7
Integration Server.

Follow these steps:


1. Double-click the TIBCO HL7 Integration Server zip file.
2. Extract the contents of TIB_hl7_1.0.0_w32.zip to a local directory.
3. Double-click Tibinstall.exe.
4. The installer asks you to accept the License Agreement.
5. Accept or change the default installation directory.
6. Accept or change the default installation components.
7. Accept or change the list of items to be installed.
8. If you have already have TIBCO BusinessWorks 1.1.2 installed, the installer
asks you if you want to keep 1.1.2 and install 2.0.4.
If you choose to keep 1.1.2 and install 2.0.4, your 1.1.2 configuration is
preserved and automatically migrated to the 2.0.4 installation.
If you choose to delete 1.1.2 and install 2.0.4, your 1.1.2 configuration is
automatically migrated to the 2.0.4 installation and then deleted.
9. The installer installs TIBCO HL7 Integration Server.
10. Enter a domain.
11. Enter a password for the TIBCO Administration server.
12. Select Display Documentation if you want to view this documentation.
13. Click Done.

TIBCO HL7 Integration Server User’s Guide


Uninstalling on Windows 17
|

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.

TIBCO HL7 Integration Server User’s Guide


18
| Chapter 2 Installing TIBCO HL7 Integration Server

Installing on UNIX

This section explains how to install TIBCO HL7 Integration Server on UNIX. The
tar installation type is available.

If you have previously installed a pre-release version of the TIBCO HL7


Integration Server, before you install the current version, uninstall the earlier
version of TIBCO HL7 Integration Server, and then uninstall TIBCO HL7 Message
Designer.

Solaris Software Requirements


On Solaris 8, the following patches are necessary to use TIBCO HL7 Integration
Server:
• 108434-04
• 109147-07

Installing the Software


Follow these steps:
1. You should be logged in to UNIX as root. If you are using a remote xterm
session, make sure you have set and exported the DISPLAY environment
variable. Example: export DISPLAY=myLocalHost:0.0. Make sure that you
are allowed access from remote session to display locally using the "xhost +"
command.
2. Make sure that you can access files on the CD-ROM containing the TIBCO
HL7 Integration Server installer.
3. Change the directory to the folder containing the installer package and
Tibinstall.
4. Execute the following script: # ./Tibinstall.
5. The installer asks you to accept the License Agreement.
6. Accept or change the default installation directory.
7. Accept or change the default installation components.
8. Accept or change the list of items to be installed.
9. If you have already have TIBCO BusinessWorks 1.1.2 installed, the installer
asks you if you want to keep 1.1.2 and install 2.0.4.
If you choose to keep 1.1.2 and install 2.0.4, your 1.1.2 configuration is

TIBCO HL7 Integration Server User’s Guide


Installing on UNIX 19
|

preserved and automatically migrated to the 2.0.4 installation.


If you choose to delete 1.1.2 and install 2.0.4, your 1.1.2 configuration is
automatically migrated to the 2.0.4 installation and then deleted.
10. The installer installs TIBCO HL7 Integration Server.
11. Enter a domain.
12. Enter a password for the TIBCO Administration server.
13. Select Display Documentation if you want to view this documentation.
14. Click Done.
The software is not recorded in the system software package database.

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

Using TIBCO HL7 Message Designer with UNIX


If you are installing TIBCO HL7 Integration Server on UNIX, the Windows-based
TIBCO HL7 Message Designer is not installed. To access this Windows-based
software, also install the Windows version of TIBCO HL7 Integration Server on a
Windows machine. You can then use TIBCO HL7 Message Designer on the
Windows machine to design your .vmd message definition files. Then move the
.vmd files to the TIBCO HL7 Integration Server installation on your UNIX
machine and implement them as needed in your TIBCO Designer .dat project
files.

TIBCO HL7 Integration Server User’s Guide


20
| Chapter 2 Installing TIBCO HL7 Integration Server

Uninstalling on UNIX

To uninstall on UNIX, do the following:


1. You should be logged in to UNIX as root. If you are using a remote xterm
session, make sure that you have set and exported the DISPLAY environment
variable. Example: export DISPLAY=myLocalHost:0.0. Make sure that you
are allowed access from remote session to display locally using the "xhost +"
command.
2. run the tibreg or /bin/tibreg command to start the TIBCO HL7 Integration
Server uninstaller GUI.
3. Follow the prompts to uninstall the software.

TIBCO HL7 Integration Server User’s Guide


| 21

Chapter 3 TIBCO HL7 Integration Server

This chapter describes the TIBCO HL7 Integration Server.

Topics

• TIBCO HL7 Integration Server Components, page 22


• Interface Engine, page 24
• How to Use TIBCO HL7 Integration Server Components, page 25

TIBCO HL7 Integration Server User’s Guide


22
| Chapter 3 TIBCO HL7 Integration Server

TIBCO HL7 Integration Server Components

The TIBCO HL7 Integration Server software package consists of design-time and
run-time components, as well as some learning tools.

TIBCO HL7 Integration Server — Design-time


• TIBCO HL7 Message Designer GUI. See Chapter 4, ”TIBCO HL7 Message
Designer”, page 27.
• TIBCO Designer GUI. See Chapter 5, ”TIBCO Designer — HL7 Components”,
page 47. This also contains HL7 palettes for TIBCO Designer. See ”TIBCO
Designer — HL7 Features” on page 51.

TIBCO HL7 Integration Server — Run-time


• TIBCO Run-time Agent. See the TIBCO BusinessWorks User Guide for complete
information.
• Interface Engine. This serves as a messaging gateway by providing a central
point for HL7 message routing between enterprise applications. For example,
when a patient is admitted to hospital, the Patient Administration System
(PAS) uses the Interface Engine to exchange details about the patient and the
admission with other systems, such as Pathology Laboratory Information
Systems or Pharmacy Systems. See ”Interface Engine” on page 184 for more
information. See also the TIBCO BusinessWorks User Guide for complete
information.
• TIBCO Administrator GUI. You can use this to monitor the speed of your
processes. See the TIBCO BusinessWorks User Guide for complete information.

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

TIBCO HL7 Integration Server User’s Guide


TIBCO HL7 Integration Server Components 23
|

point for users who want to create a complex HL7 implementation. See
”Template Process Diagram — Dispatcher” on page 96.

TIBCO HL7 Integration Server User’s Guide


24
| Chapter 3 TIBCO HL7 Integration Server

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.

TIBCO HL7 Integration


Server
-
Interface Engine

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

TIBCO HL7 Integration Server User’s Guide


How to Use TIBCO HL7 Integration Server Components 25
|

How to Use TIBCO HL7 Integration Server Components

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.

TIBCO HL7 Integration Server User’s Guide


26
| Chapter 3 TIBCO HL7 Integration Server

TIBCO HL7 Integration Server User’s Guide


| 27

Chapter 4 TIBCO HL7 Message Designer

This chapter describes how to use TIBCO HL7 Message Designer.

Topics

• TIBCO HL7 Message Designer GUI, page 28


• Using the TIBCO HL7 Message Designer New Project Wizard, page 29
• Developing a Project Involving Multiple .vmd Files, page 33
• Additional Features in TIBCO HL7 Message Designer, page 34
• Using the HeaderAndAck.vmd Message Definition File, page 43
• Customizing the HeaderAndAck.vmd Message Definition File, page 44

TIBCO HL7 Integration Server User’s Guide


28
| Chapter 4 TIBCO HL7 Message Designer

TIBCO HL7 Message Designer GUI

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.

TIBCO HL7 Integration Server User’s Guide


Using the TIBCO HL7 Message Designer New Project Wizard 29
|

Using the TIBCO HL7 Message Designer New Project Wizard

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.

TIBCO HL7 Integration Server User’s Guide


30
| Chapter 4 TIBCO HL7 Message Designer

2. Select New HL7 Project. Click Open.

3. Enter a directory and a name for the new project.


4. Click Next.

5. Select the version of the HL7 project. Click Next.

TIBCO HL7 Integration Server User’s Guide


Using the TIBCO HL7 Message Designer New Project Wizard 31
|

6. Add at least two message definitions to your new HL7 project.

7. Click Next.

TIBCO HL7 Integration Server User’s Guide


32
| Chapter 4 TIBCO HL7 Message Designer

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.

TIBCO HL7 Integration Server User’s Guide


Developing a Project Involving Multiple .vmd Files 33
|

Developing a Project Involving Multiple .vmd Files

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.

TIBCO HL7 Integration Server User’s Guide


34
| Chapter 4 TIBCO HL7 Message Designer

Additional Features in TIBCO HL7 Message Designer

The following additional features are available in TIBCO HL7 Message Designer.

Adding a Message Type to a Project


Do the following to add a message type to an existing project:
1. Select HL7 Message Designer>Message Wizard.

2. In the Name field, enter, for example, ADT_A05 (pre-admit a patient).

TIBCO HL7 Integration Server User’s Guide


Additional Features in TIBCO HL7 Message Designer 35
|

3. Click Next twice.

4. Select ADT.A05 and click Next.

TIBCO HL7 Integration Server User’s Guide


36
| Chapter 4 TIBCO HL7 Message Designer

5. Click Finish.

TIBCO HL7 Integration Server User’s Guide


Additional Features in TIBCO HL7 Message Designer 37
|

Converting, Testing, and Debugging Messages


You can also use the TIBCO HL7 Message Designer to do the following:
• Convert HL7 ASCII messages to Tree Format
• Convert HL7 ASCII messages to XML
• Test and Debug HL7 Messages
Do the following to see these options in use:
1. Select Start>Programs>TIBCO>TIBCO HL7 Integration Server>HL7
Message Designer.
2. Click the Existing tab.
3. Click Look on Disk...
4. Select <HL7_installation_directory>\examples\GetStarted\GetStarted.vmd.

TIBCO HL7 Integration Server User’s Guide


38
| Chapter 4 TIBCO HL7 Message Designer

5. Use a text editor to open


<HL7_installation_directory>\examples\GetStarted\ADT_A05.hl7. This HL7
message displays as ASCII text.
6. Copy the message content.
7. Select HL7 Message Designer>Test/Browse Messages.
8. Paste the HL7 ASCII message into the Message Browser dialog.

TIBCO HL7 Integration Server User’s Guide


Additional Features in TIBCO HL7 Message Designer 39
|

Parsing an HL7 Message / Testing an HL7 Message


1. Click Parse. Once a message is parsed, it is in tree format. Errors are
color-coded, where red indicates an error, and can be seen easily.
2. The message displays in tree format below.

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.

TIBCO HL7 Integration Server User’s Guide


40
| Chapter 4 TIBCO HL7 Message Designer

Converting HL7 to XML / Debugging a Message


1. It can be easier to debug a message if you can see it in XML format. Do the
following to convert your message to XML.
To convert the HL7 ASCII message in the Message Browser dialog to XML,
right-click and select Convert to XML.

TIBCO HL7 Integration Server User’s Guide


Additional Features in TIBCO HL7 Message Designer 41
|

2. The HL7 message in XML format displays in the Complete Parsed View of
Message dialog.

Converting XML to HL7


1. To convert the XML message in the Complete Parsed View of Message dialog
back to ASCII, click and drag to select the entire XML message.
2. Copy the XML message.
3. Close the Complete Parsed View of Message dialog.
4. In the Message Browser dialog, click and drag to select the contents of the
original ASCII message. Press Backspace or Delete.
5. Paste the XML message into the Message Browser dialog.
6. Right-click and select Convert to HL7.

TIBCO HL7 Integration Server User’s Guide


42
| Chapter 4 TIBCO HL7 Message Designer

Creating an .xsd XML Schema File


To create a new .xsd XML schema file for your new message definition, the
following option is available:
1. Select HL7 Message Designer>Generate Schema.
2. In the Prefix field, you can enter a unique prefix if necessary. Example:
HL7/AdmitMessages.

3. In the Language list box, select XSD Schema.


4. Click OK.

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.

TIBCO HL7 Integration Server User’s Guide


Using the HeaderAndAck.vmd Message Definition File 43
|

Using the HeaderAndAck.vmd Message Definition File

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.

TIBCO HL7 Integration Server User’s Guide


44
| Chapter 4 TIBCO HL7 Message Designer

Customizing the HeaderAndAck.vmd Message Definition File

You may need to customize


<HL7_installation_directory>\resources\HeaderAndAck.vmd in the following
cases, among others:
• You want to use a different status code. Example: CA instead of AA.
• You have a different naming convention for your acknowledge message
Control ID.
• You want to have a more accurate timestamp.

HeaderAndAck.vmd Compatibility with Parse Header Activity and Create ACK


and LLP Receiver with ACK Activity
The Parse Header and Create ACK and LLP Receiver with ACK activities work
with .vmd files that meet the following criteria:
• There should be ACK and Header messages. The message names must match
exactly with ACK and Header.
• In TIBCO HL7 Message Designer, HL7 Message
Designer>Options>Special Messages tab, ACK should be the
Acknowledgement Message, and Header should be the Default
(unidentified message).

• 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.

TIBCO HL7 Integration Server User’s Guide


Customizing the HeaderAndAck.vmd Message Definition File 45
|

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.

TIBCO HL7 Integration Server User’s Guide


46
| Chapter 4 TIBCO HL7 Message Designer

TIBCO HL7 Integration Server User’s Guide


| 47

Chapter 5 TIBCO Designer — HL7 Components

This chapter describes the TIBCO Designer HL7 components that are installed
with TIBCO HL7 Integration Server.

Topics

• TIBCO Designer GUI, page 48


• Starting TIBCO Designer, page 50
• TIBCO Designer — HL7 Features, page 51
• Shared Resources Palette, page 52
• Activities, page 58
• Guidelines for Using LLP Resources and Activities in TIBCO Designer Processes,
page 73
• Custom Functions, page 91
• Template Process Diagram — Dispatcher, page 96

TIBCO HL7 Integration Server User’s Guide


48
| Chapter 5 TIBCO Designer — HL7 Components

TIBCO Designer GUI

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.

Guidelines for Designing a Project


See ”Guidelines for Using LLP Resources and Activities in TIBCO Designer
Processes” on page 73 for information on basic rules that must be followed when
building a project. This includes guidelines on what combinations of connection
features and messaging features should be used in certain situations.

Tip and Tricks


See ”Tips and Tricks” on page 210 for information on things that you can use to
make easier the process of building a project.

TIBCO HL7 Integration Server User’s Guide


TIBCO Designer GUI 49
|

Generic TIBCO Designer Activities in the TIBCO Designer Tutorials


The TIBCO Designer tutorials in this user guide implement the following generic
TIBCO Designer activities:
• Parse XML
• File Poller
• Write to Log
See the TIBCO Designer User Guide for complete information on these activities.

TIBCO HL7 Integration Server User’s Guide


50
| Chapter 5 TIBCO Designer — HL7 Components

Starting TIBCO Designer

The following describes how to start TIBCO Designer in Windows or UNIX.

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

TIBCO HL7 Integration Server User’s Guide


TIBCO Designer — HL7 Features 51
|

TIBCO Designer — HL7 Features

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

TIBCO HL7 Integration Server User’s Guide


52
| Chapter 5 TIBCO Designer — HL7 Components

Shared Resources Palette

The HL7 Shared Configuration palette contains the following resources:


• HL7 Definition Resource, page 53
• LLP Connection Resource, page 55

TIBCO HL7 Integration Server User’s Guide


HL7 Definition Resource 53
|

HL7 Definition Resource

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.

Description Short description of the resource.

TIBCO HL7 Integration Server User’s Guide


54
| Chapter 5 TIBCO Designer — HL7 Components

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.

TIBCO HL7 Integration Server User’s Guide


LLP Connection Resource 55
|

LLP Connection Resource

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.

TIBCO HL7 Integration Server User’s Guide


56
| Chapter 5 TIBCO Designer — HL7 Components

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.

Description Short description of the resource.

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.

Separator To be used in the future.

Binary To be used in the future.

TIBCO HL7 Integration Server User’s Guide


LLP Connection Resource 57
|

Field Description
Encoding To be used in the future.

Input
This resource requires no input.

Output
This resource has no output.

TIBCO HL7 Integration Server User’s Guide


58
| Chapter 5 TIBCO Designer — HL7 Components

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

TIBCO HL7 Integration Server User’s Guide


HL7 Parser Activity 59
|

HL7 Parser Activity

This activity parses an HL7 string message and generates an XML representation
based on the configured definition. The activity can also validate the message.

This activity is used in the following tutorials:


• 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 — Inbound EDI-X12 HIPAA 275/HL7 Messages in TIBCO Designer,
page 177

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.

Description Short description of the activity.

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.

TIBCO HL7 Integration Server User’s Guide


60
| Chapter 5 TIBCO Designer — HL7 Components

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.

TIBCO HL7 Integration Server User’s Guide


HL7 Renderer Activity 61
|

HL7 Renderer Activity

This activity renders an HL7 XML message and generates an HL7 string
representation based on the configured message definition.

This activity is used in the following tutorials:


• 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

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.

Description Short description of the activity.

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.

TIBCO HL7 Integration Server User’s Guide


62
| Chapter 5 TIBCO Designer — HL7 Components

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.

TIBCO HL7 Integration Server User’s Guide


Parse Header and Create ACK Activity 63
|

Parse Header and Create ACK Activity

This activity parses the header of any HL7 string message and generates an
acknowledgement based on the configuration.

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
• Tutorial — Batch Messages in TIBCO Designer (HL7), page 168

.vmd File Compatibility


The Parse Header and Create ACK and LLP Receiver with ACK activities work
with .vmd files that meet certain criteria. See ”Customizing the
HeaderAndAck.vmd Message Definition File” on page 44 for more information.

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.

Description Short description of the activity.

TIBCO HL7 Integration Server User’s Guide


64
| Chapter 5 TIBCO Designer — HL7 Components

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.

TIBCO HL7 Integration Server User’s Guide


LLP Request Response Activity 65
|

LLP Request Response Activity

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.

This activity is used in the following tutorials:


• Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO
Designer (HL7), page 112
• Tutorial — Synchronous Messaging in TIBCO Designer (HL7), page 155
• Tutorial — Asynchronous Messaging in TIBCO Designer (HL7), page 161

TIBCO HL7 Integration Server User’s Guide


66
| Chapter 5 TIBCO Designer — HL7 Components

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.

Description Short description of the activity.

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.

Request The message type of the message to be sent out.


Message

Response The HL7 Definition resource used to identify the custom message definition
Definition
that identifies the incoming response message.

Response The message type of the message to be received as 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.

TIBCO HL7 Integration Server User’s Guide


LLP Request Response Activity 67
|

• <msg_Node>: XData. The XML format of the message received. This displays
only if the user has configured the ResponseDefinition and
ResponseMessage fields.

TIBCO HL7 Integration Server User’s Guide


68
| Chapter 5 TIBCO Designer — HL7 Components

LLP Receiver with ACK Activity

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.

This activity is used in the following tutorials:


• Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO
Designer (HL7), page 112
• Tutorial — Synchronous Messaging in TIBCO Designer (HL7), page 155
• Tutorial — Asynchronous Messaging in TIBCO Designer (HL7), page 161

.vmd File Compatibility


The Parse Header and Create ACK and LLP Receiver with ACK activities work
with .vmd files that meet certain criteria. See ”Customizing the
HeaderAndAck.vmd Message Definition File” on page 44 for more information.

TIBCO HL7 Integration Server User’s Guide


LLP Receiver with ACK Activity 69
|

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.

Description Short description of the activity.

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.

TIBCO HL7 Integration Server User’s Guide


70
| Chapter 5 TIBCO Designer — HL7 Components

• 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.
• <msgNode>: XData. The xml representation of the incoming HL7 message.
The XML is based on the Definition and Message fields in the Configuration
tab.
• isACKSent: Boolean. Indicates if the activity could send a synchronous
acknowledgement back.

TIBCO HL7 Integration Server User’s Guide


LLP Response Activity 71
|

LLP Response Activity

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.

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.

Description Short description of the activity.

LLP Event Provides a choice of LLP Receivers in the process to be used.


Source

TIBCO HL7 Integration Server User’s Guide


72
| Chapter 5 TIBCO Designer — HL7 Components

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.

TIBCO HL7 Integration Server User’s Guide


Guidelines for Using LLP Resources and Activities in TIBCO Designer Processes 73
|

Guidelines for Using LLP Resources and Activities in TIBCO


Designer Processes

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

TIBCO HL7 Integration Server User’s Guide


74
| Chapter 5 TIBCO Designer — HL7 Components

Matrix For LLP Connection and Messaging Options — Client


The following table describes how to set up the connection and messaging fields
in the LLP Connection resource and LLP Request Response activity when these
are being used to set up processes for a client application.
The following table assumes that Client is selected in the Type list box in the LLP
Connection Resource that you are using with the LLP Request Response activity.

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.

Two-Way Not selected Option 1: Selected if the Selected if the


Messaging request is an expected
Selected
XML tree that response is an
(Request/
Option 2: must be parsed. XML tree that
Response - sync)
must be parsed.
Not selected. Empty if the
request is an HL7 Empty if the
string. expected
response is an
HL7 string.

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.

TIBCO HL7 Integration Server User’s Guide


Guidelines for Using LLP Resources and Activities in TIBCO Designer Processes 75
|

Matrix For LLP Connection and Messaging Options — Server


The following table describes how to set up the connection and messaging fields
in the LLP Connection resource and LLP Receiver with ACK and LLP Response
activities when these are being used to set up processes for a server application.
The following table assumes that Server is selected in the Type list box in the LLP
Connection Resource that you are using with these activities.

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.

Two-Way Not selected Option 1: Select Never if Select an LLP


Messaging you are using an Receiver with
Selected
LLP Response in ACK activity in
(Request/
Option 2: the same process the same process.
Response - sync)
to send an ACK
Not selected.

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.

TIBCO HL7 Integration Server User’s Guide


76
| Chapter 5 TIBCO Designer — HL7 Components

Client and Server Examples


The following examples are available:
• LLP Connection Resource — Client / Connection to Server, page 77
• LLP Connection Resource — Server / Connection from Client, page 78
• LLP Request Response Activity with Client LLP Connection — System acting
as Client sends to Interface Engine acting as Server, page 79
• LLP Request Response Activity with Client LLP Connection — Interface
Engine acting as Client sends to Client acting as Server, page 80
• LLP Receiver with ACK Activity with Server LLP Connection — Interface
Engine Receives from Systems Acting as Client, page 81
• LLP Receiver with ACK Activity with Server LLP Connection — System
Receives from Interface Engine Acting as Client, page 81
• LLP Response Activity — Client Sends Response or ACK to Server, page 82

TIBCO HL7 Integration Server User’s Guide


Guidelines for Using LLP Resources and Activities in TIBCO Designer Processes 77
|

LLP Connection Resource — Client / Connection to Server


The following Client example of an LLP Connection resource is from the Patient
Admission tutorial.

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.

TIBCO HL7 Integration Server User’s Guide


78
| Chapter 5 TIBCO Designer — HL7 Components

LLP Connection Resource — Server / Connection from Client


The following Server example of an LLP Connection resource is from the Patient
Admission tutorial.

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.

TIBCO HL7 Integration Server User’s Guide


Guidelines for Using LLP Resources and Activities in TIBCO Designer Processes 79
|

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.

TIBCO HL7 Integration Server User’s Guide


80
| Chapter 5 TIBCO Designer — HL7 Components

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.

TIBCO HL7 Integration Server User’s Guide


Guidelines for Using LLP Resources and Activities in TIBCO Designer Processes 81
|

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.

TIBCO HL7 Integration Server User’s Guide


82
| Chapter 5 TIBCO Designer — HL7 Components

LLP Response Activity — Client Sends Response or ACK to Server


The following example of an LLP Response activity is from the Patient Admission
tutorial. It shows an LLP Response activity that the HIS System acting as a server
uses to send synchronous response or ACK messages back to the Interface Engine
that is acting as a client.

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.

TIBCO HL7 Integration Server User’s Guide


Deliver HL7 Msg Get SyncResponse Activity 83
|

Deliver HL7 Msg Get SyncResponse Activity

This notify activity is used to forward the incoming request or asynchronous


response to the activities which would be waiting to receive these messages.

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.

Description Short description of the activity.

Input
See TIBCO BusinessWorks Process Design Guide for more information about
mapping and transforming input data.
The input for the activity is the following:

TIBCO HL7 Integration Server User’s Guide


84
| Chapter 5 TIBCO Designer — HL7 Components

• hl7Message. The incoming hl7 message.


• hl7Ack. Acknowledgement message generated for the incoming message.
This is generated by the LLP Receiver activity.
• msgDefinition. The message definition resource name to be used. This is
typically determined by an implementation-specific process based on the
message type and the MSH segment of the incoming message. For a sample
implementation, see the get message definition process in the
dispatcher template. See ”Template Process Diagram — Dispatcher” on
page 96.
• msgType. The message type of the incoming message. This is generated by the
LLP Receiver activity. It can also be inferred from the ninth field in the MSH
segment. Example: ADT_A05.
• responseID. Should be provided only if the incoming message is a response.
This is generated by the LLP Receiver activity. It can also be inferred from the
second field (MessageControlID) in the MSA segment. Example: ADT_A05.
• ACKTimeout. The timeout value used internally for communicating between
the activities.
• ResponseTimeout. The time that this activity waits for a synchronous
response to the request that it sends out.

Output
The output for the activity is hl7Message. This is the synchronous response
message sent for the incoming request.

TIBCO HL7 Integration Server User’s Guide


Handle HL7 Message Activity 85
|

Handle HL7 Message Activity

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.

TIBCO HL7 Integration Server User’s Guide


86
| Chapter 5 TIBCO Designer — HL7 Components

Field Description
Description Short description of the activity.

Definition The HL7 Definition resource used to identify the custom message definition
that identifies the message.

Message The message type to be handled by the activity.

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.

TIBCO HL7 Integration Server User’s Guide


Wait For Async Response Activity 87
|

Wait For Async Response Activity

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.

Description Short description of the activity.

TIBCO HL7 Integration Server User’s Guide


88
| Chapter 5 TIBCO Designer — HL7 Components

Field Description
Definition The HL7 Definition resource used to identify the custom message definition
that identifies the message.

Message The message type to be handled by the activity.

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.

TIBCO HL7 Integration Server User’s Guide


Deliver Synchronous Response or ACK Activity 89
|

Deliver Synchronous Response or ACK Activity

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.

Description Short description of the activity.

TIBCO HL7 Integration Server User’s Guide


90
| Chapter 5 TIBCO Designer — HL7 Components

Field Description
Definition The HL7 Definition resource used to identify the custom message definition
that identifies the message.

Message The message type to be handled by the activity.

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.

TIBCO HL7 Integration Server User’s Guide


Custom Functions 91
|

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.

Using HL7 Custom Functions


TIBCO HL7 Integration Server includes a set of HL7-related custom functions. To
use these, in TIBCO Designer select Resources>Import Resource... and import
<HL7_installation_directory>\resources\HL7Functions.xml.

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.

TIBCO HL7 Integration Server User’s Guide


92
| Chapter 5 TIBCO Designer — HL7 Components

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.

Description Short description of the activity.

Prefix This should be HL7 when using HL7 custom functions.

Class File The Java class that supports the HL7 custom functions.

TIBCO HL7 Integration Server User’s Guide


Custom Functions 93
|

Custom Functions Example


For example, in the HL7 Parser and HL7 Renderer tutorial, do the following to see
where the custom functions display.
1. Click Process Definition.
2. Click the Parse ADT_A05 activity. This is an HL7 Parser activity.
3. Click the Input tab.
4. Click hl7Msg in the Activity Input side.

TIBCO HL7 Integration Server User’s Guide


94
| Chapter 5 TIBCO Designer — HL7 Components

5. Click the XPath Formula Builder button.


See ”Tips and Tricks” on page 210 for a suggestion on how to save a complex
mapping for restoration later before changing the mapping for testing.

6. Click the Functions tab.


7. Expand the HL7 folder. The custom HL7 functions display.

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.

TIBCO HL7 Integration Server User’s Guide


Custom Functions 95
|

Available HL7 Custom Functions


The following HL7-related custom functions are available through
<HL7_installation_directory>\resources\HL7Functions.xml.
• displayableToHL7. Converts a DOS/UNIX file into HL7 ER7 format. HL7
requires that all segments end with \r.
• HL7ToDisplayable. Replaces \r with a system line separator.
• currentTimeStamp. Returns the current timestamp in the HL7 format:
yyyyMMddhhmmss.

• 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

• separateMsgsFromBatch. Returns individual messages from a BHS/BTS


string. Messages are separated by <cr> after processing.
• separateBatchesFromFile. Returns individual BHS/BTS strings from a
batch file message. Batches are separated by <cr> after processing. Each batch
message string can later be processed by separateMsgsFromBatch().
• trimEmptyFields. Trims any empty fields that appear at the end of a segment
in an HL7 message. Example:
trimEmptyFields("MSH|^~\\&|REGADT|MCM|IFENG||199112311501||ADT^A05
|000001|P|2.1|||") gives
MSH|^~\\&|REGADT|MCM|IFENG||199112311501||ADT^A05|000001|P|2.1

TIBCO HL7 Integration Server User’s Guide


96
| Chapter 5 TIBCO Designer — HL7 Components

Template Process Diagram — Dispatcher

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.

TIBCO HL7 Integration Server User’s Guide


Template Process Diagram — Dispatcher 97
|

Opening the Template


To open the template, do the following:
1. Select Start>Programs>TIBCO>TIBCO Designer>Designer.
2. Click New Project From Template.
3. Click Browse.
4. Select <HL7_installation_directory>\templates\dispatcher.aetemplate.
5. Click Open.
6. Click OK.
7. Click New Project.
8. Enter data in the Project Name and Dir Name fields.
9. Click Create.
10. Click OK.
11. Expand Interface Engine and HL7 Shared Configurations.

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.

TIBCO HL7 Integration Server User’s Guide


98
| Chapter 5 TIBCO Designer — HL7 Components

• 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.

TIBCO HL7 Integration Server User’s Guide


Template Process Diagram — Dispatcher 99
|

Interface Engine: Dispatcher Process


This is the starting point for the template. In a typical implementation, there
would be one dispatcher and a separate message handler process for each
message type that you might receive. In this case, there is one dispatcher process
with two message handler processes from which you can copy and customize.

Dispatcher Process — A Synchronous Request Message is Received


1. The Receive Request or Async Response And ACK (LLP Receiver with ACK)
activity listens on a port for a message. For general information on this
activity, see ”LLP Receiver with ACK Activity” on page 68.

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

TIBCO HL7 Integration Server User’s Guide


100
| Chapter 5 TIBCO Designer — HL7 Components

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

TIBCO HL7 Integration Server User’s Guide


Template Process Diagram — Dispatcher 101
|

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.
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

TIBCO HL7 Integration Server User’s Guide


102
| Chapter 5 TIBCO Designer — HL7 Components

requires an acknowledgement or a synchronous response. Otherwise, the


process ends.
4. The Send ACK or Sync Response activity sends an acknowledgement or a
synchronous response. The process ends.

TIBCO HL7 Integration Server User’s Guide


Template Process Diagram — Dispatcher 103
|

Dispatcher Process — An Asynchronous Response Message is Received


1. The Receive Request or Async Response And ACK (LLP Receiver with ACK)
activity listens on a port for a message. For general information on this
activity, see ”LLP Receiver with ACK Activity” on page 68.
The following assumes an asynchronous response message from an earlier
request message sent by the Interface Engine on a different connection.
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.
When a response arrives, the activity parses the header to later determine
which HL7 definition resource to use.

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.

TIBCO HL7 Integration Server User’s Guide


104
| Chapter 5 TIBCO Designer — HL7 Components

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.

TIBCO HL7 Integration Server User’s Guide


Template Process Diagram — Dispatcher 105
|

Handle XXX Request - Simple Process


Copy and customize this process for each message type that does not require a
synchronous response or an explicit acknowledgement.
In this scenario, the dispatcher process takes care of sending the
acknowledgement, and the message handler here just needs some simple
processing as defined by your business logic.
If this scenario is what your project requires, you can configure the Dispatcher
process to send an acknowledgement by setting the SendACk list box in the
Receive Request or Async Response And ACK (LLP Receiver with ACK) activity
to Auto or Always. See ”Interface Engine: Dispatcher Process” on page 99.
The Handle XXX Message (Handle HL7 Message) activity in this handler process
uses the HL7 Definition resource and the message type to determine the key on
which it should wait for notification. The Handle HL7 Message activity here is
triggered when the Deliver HL7 Msg (Deliver HL7 Msg Get SyncResponse) notify
activity in the dispatcher process sends a notify with a key that matches the key
listed here.
As you can see, the key with this Handle HL7 Message activity is now
incomplete, as the key in the Message list box ends in null. However, when you
load your .vmd message definition file into the currently empty HL7 Definition
resource, a list of message types will display in the Message list box. You can then
select the one that is appropriate for your handler process. The null value in the
key would then be replaced with a message type.

TIBCO HL7 Integration Server User’s Guide


106
| Chapter 5 TIBCO Designer — HL7 Components

See also ”HL7 Shared Configurations Folder” on page 110 for information on the
unconfigured HL7 Definition resource.

You can choose to send an asynchronous response in this process by adding an


LLP Request Response activity between the Handle XXX Message activity and
End.

TIBCO HL7 Integration Server User’s Guide


Template Process Diagram — Dispatcher 107
|

Handle YYY Request - With Custom ACK Or Sync Response Process


Copy and customize this process for each message type that does require an
asynchronous response or an explicit acknowledgement.
In this scenario, the sender expects to receive a custom or synchronous
acknowledgement. The dispatcher process in this case does not send an
acknowledgement. Instead, the message handler process here generates and
sends an acknowledgement. That is why there is a Deliver Synchronous Response
or ACK activity in this message handler process.
If this scenario is what your project requires, you can configure the Dispatcher
process to not send an acknowledgement by setting the SendACk list box in the
Receive Request or Async Response And ACK (LLP Receiver with ACK) activity
to Never. See ”Interface Engine: Dispatcher Process” on page 99.
The Deliver HL7 Msg (Deliver HL7 Msg Get SyncResponse) activity in the
Dispatcher process passes a parsed message to this handler process and waits for
a response or acknowledgement from the Deliver Synchronous Response or ACK
activity, which activates the Send ACK or Sync Response (LLP Response) activity
in the Dispatcher process.
The Handle YYY Message (Handle HL7 Message) activity in this handler process
uses the HL7 Definition resource and the message type to determine the key on
which it should wait for notification. You must configure this.

TIBCO HL7 Integration Server User’s Guide


108
| Chapter 5 TIBCO Designer — HL7 Components

See also ”HL7 Shared Configurations Folder” on page 110 for information on the
unconfigured HL7 Definition resource.

TIBCO HL7 Integration Server User’s Guide


Template Process Diagram — Dispatcher 109
|

Send Request and Handle Async ZZZ Response Process


This is your model process for sending a request to a different system and
expecting an asynchronous response from the other system, which is dispatched
by the dispatcher process. In this case, the following occurs:
1. The Send Request and Handle Async ZZZ Response process uses the LLP
Request Response activity to send an asynchronous request. The Wait For
Async Response activity waits for the asynchronous response.
2. The Receive Request or Async Response And ACK (LLP Receiver with ACK)
listener activity in the Dispatcher process receives the asynchronous response
as just another inbound message on a specified port. See ”Dispatcher Process
— An Asynchronous Response Message is Received” on page 103.

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.

TIBCO HL7 Integration Server User’s Guide


110
| Chapter 5 TIBCO Designer — HL7 Components

HL7 Shared Configurations Folder


This folder contains the following:
• HL7 Header and ACK Definition. This is configured with the pre-loaded
<HL7_installation_directory>\resources\HeaderAndAck.vmd file. This is used
here in the LLP Receiver with ACK activity in the Interface Engine Dispatcher
process. See ”Interface Engine: Dispatcher Process” on page 99. See also
”Using the HeaderAndAck.vmd Message Definition File” on page 43 for more
general information.
• LLP IE Server Connection. The LLP activities in the processes use this LLP
Connection resource to receive a message from a client. You must add a
number of client connections for each remote system port to which you send
requests. This resource listens on the port specified in the
hl7.tcp.interfaceEngine.port global variable. See ”LLP Connection
Resource” on page 55 for more general information.
• HL7 Custom Functions. This resource is configured with
<HL7_installation_directory>\resources\HL7Functions.xml, which contains
the HL7 custom functions. See ”Using HL7 Custom Functions” on page 91 for
more general information.
• HL7 Definition. This resource is not configured. To configure it, select a .vmd
message definition file that you want to use in your project. Then configure
the activities that use the HL7 Definition resource and select the specific
message type that you want to use in the various activities.
This resource is used in the following activities:
— Handle HL7 Message activity, Handle XXX Request - Simple Process
process
— Handle HL7 Message activity, Handle YYY Request - With Custom ACK Or
Sync Response Process process
— Wait For Async Response activity, Send Request and Handle Async ZZZ
Response process
See ”HL7 Definition Resource” on page 53 for more general information.

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.

TIBCO HL7 Integration Server User’s Guide


| 111

Chapter 6 Tutorials for TIBCO HL7 Integration Server

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

TIBCO HL7 Integration Server User’s Guide


112
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Tutorial — Getting Started with TIBCO HL7 Message Designer and


TIBCO Designer (HL7)

In this tutorial, the following occurs:


1. A simulated scheduling system reads the ADT_A05.hl7 file and sends an
ADT_A05 (pre-admit a patient) to Interface Engine.
2. The Interface Engine determines that the patient is not in the HIS system, so
an ADT_A28 (Add person information) is created, based on information
supplied in the ADT_A05, and sent to the simulated HIS system.
In this tutorial, acknowledgements are not sent.
Interface Engine (named IEngine/Process ADT_A05) is implemented using the
HL7 plugin in TIBCO Designer. Also included is a simulated scheduling system
that sends the initial A05 message, and a simulated HIS system. Both have been
implemented in TIBCO Designer.
Although this tutorial comes with the GetStarted.vmd message definition file
and the GetStarted.dat project file, this tutorial includes instructions on how to
create these files using TIBCO HL7 Message Designer and TIBCO Designer.
Therefore, this tutorial has the following sections:
• Step 1 — Using TIBCO HL7 Message Designer to Create GetStarted.vmd,
page 114
• Step 2 — Using TIBCO Designer to Create GetStarted.dat, page 117
• Step 3 — Running the Tutorial in TIBCO Designer, page 144

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.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) 113
|

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.

TIBCO HL7 Integration Server User’s Guide


114
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Step 1 — Using TIBCO HL7 Message Designer to Create GetStarted.vmd


The following steps show how to create the GetStarted.vmd file.

This software is available on Windows only.

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.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) 115
|

2. Click New HL7 Project. Click Open.

3. Enter <HL7_installation_directory>\samples\ in the Directory field. Enter


GetStarted in the Name field. Click Next.

TIBCO HL7 Integration Server User’s Guide


116
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

4. Select the version of the HL7 project. Click Next.

5. Add the ADT.A05 and ADT.A28 message definitions. Click Next.

6. Click Finish.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) 117
|

Step 2 — Using TIBCO Designer to Create GetStarted.dat


The following steps show how to create the GetStarted.dat file.
A GetStarted.dat file is already provided with the software, in case you would
prefer to use that file rather than build your own.
1. For Windows, select Start>Programs>TIBCO>TIBCO Designer>Designer.
2. For UNIX, do the following:
a. 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

b. Enter
designer

3. Click New Empty Project.


4. Click Cancel when it prompts you to save the project.
5. Select Resources>Import Resource...
6. Select Repository/AEXML format.
7. Click Browse and import
<HL7_installation_directory>\resources\HL7Functions.xml
8. Click the General Resources tab.
9. Click the Process palette.
10. Click and drag the Process Definition process to the design panel.

TIBCO HL7 Integration Server User’s Guide


118
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Assigning the Location of the ADT_A05.hl7 Trigger File


You must assign the variable for and the location of the ADT_A05.hl7 file, which
is used to start the example.
1. Click Edit>Global Variables...

2. Enter hl7.samples.GetStarted.dir as the variable in the Name field.


3. In the Value field, enter the directory in which the ADT_A05.hl7 file is located.
The default is C:\TIBCO\hl7\1.0\samples\GetStarted.
4. Click Set.
5. Click Close.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) 119
|

Creating Shared Message Definition Configurations


This section shows how to create the shared message definition configurations
that your activities use in this tutorial.
1. Right-click Untitled and Click New Folder.

2. Enter HL7 Configurations in the Name field.

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.

TIBCO HL7 Integration Server User’s Guide


120
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

8. Click Load Definition and select


<HL7_installation_directory>\samples\GetStarted\GetStarted.vmd.
9. Click Apply. TIBCO Designer creates the XSD equivalent of this automatically
in case it is needed.
10. Click and drag the HL7 Definition resource again to the design pane for the
HL7 Configurations folder.
11. Enter HeaderAndAck in the Name field.
12. Click Load Definition and select
<HL7_installation_directory>\resources\HeaderAndAck.vmd.
13. Click Apply. TIBCO Designer creates the XSD equivalent of this automatically
in case it is needed.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) 121
|

Creating Shared LLP Connection Configurations


This section shows how to create the shared LLP Connection configurations that
your activities use in this tutorial. See ”LLP Connection Resource” on page 55 for
general information on this resource.

The following four types of LLP Connections are necessary:


• A connection that enables sending from the Scheduler acting as a client to the
Interface Engine acting as a server. This is called Scheduler Client
Connection (to IEngine). This resource will be used in the LLP Connection
field of an activity that sends a message from the Scheduler application to the
Interface Engine. See ”Creating Scheduler Client Connection (to IEngine) LLP
Connection” on page 122.
• A connection that enables receiving by the Interface Engine acting as a server
from the Scheduler acting as a client. This is called IEngine Server
Connection. This resource will be used in the LLP Connection field of an
activity in the Interface Engine that receives a message from the Scheduler
application. See ”Creating IEngine Server Connection LLP Connection” on
page 122.
• A connection that enables sending from the Interface Engine acting as a client
to the HIS system acting as a server. This is called IEngine Client
Connection (to HIS). This resource will be used in the LLP Connection field
of an activity that sends a message from the Interface Engine to the HIS
system. See ”Creating IEngine Client Connection (to HIS) LLP Connection” on
page 123.

TIBCO HL7 Integration Server User’s Guide


122
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

• 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.

Creating Scheduler Client Connection (to IEngine) LLP Connection


The following steps are necessary:
1. Click and drag the LLP Connection resource to the design pane for the HL7
Configurations folder.
2. Enter Scheduler Client Connection (to IEngine) in the Name field.
3. Select Client in the Type list box.
4. Enter localhost in the Host field.
5. Enter 9081 in the Port field.
6. Select Is One Way.
7. Select Close Connection.
8. Click Apply.

Creating IEngine Server Connection LLP Connection


The following steps are necessary:
1. Click and drag the LLP Connection resource to the design pane for the HL7
Configurations folder.
2. Enter IEngine Server Connection in the Name field.
3. Select Server in the Type list box.
4. Enter 9081 in the Port field, as the Scheduler client sender is sending on port
9081.
5. Click Apply.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) 123
|

Creating IEngine Client Connection (to HIS) LLP Connection


The following steps are necessary:
1. Click and drag the LLP Connection resource to the design pane for the HL7
Configurations folder.
2. Enter IEngine Client Connection (to HIS) in the Name field.
3. Select Client in the Type list box.
4. Enter localhost in the Host field.
5. Enter 9082 in the Port field because this a different connection from the first
two LLP Connection configurations.
6. Select Is One Way.
7. Select Close Connection.
8. Click Apply.

Creating HIS Server Connection LLP Connection


The following steps are necessary:
1. Click and drag the LLP Connection resource to the design pane for the HL7
Configurations folder.
2. Enter HIS Server Connection in the Name field.
3. Select Server in the Type list box.
4. Enter 9082 in the Port field, as the Interface Engine client sender is sending on
port 9082.
5. Click Apply.

TIBCO HL7 Integration Server User’s Guide


124
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Creating the Processes


The following processes are necessary:
• Scheduler. This simulated process involves an activity that first polls a
directory for the ADT_A05.hl7 file. When the first activity finds the file, it
forwards the file to a second activity, that sends the file to the IEngine process.
— See ”Creating the Scheduler Process — First Activity” on page 125.
— See ”Creating the Scheduler Process — Second Activity” on page 126.
• Interface Engine. This process involves an initial activity that receives the
ADT_A05.hl7 message from the Scheduler process, it parses the header to
determine the message type. The second activity parses the rest of the
ADT_A05 message. The third activity renders the parsed ADT_A05 (pre-admit)
message to create an ADT_A28 (new patient) message. The fourth activity
sends the ADT_A28 message to the simulated HIS system.
— See ”Creating the IEngine Process — First Activity” on page 129.
— See ”Creating the IEngine Process — Second Activity” on page 131.
— See ”Creating the IEngine Process — Third Activity” on page 133.
— See ”Creating the IEngine Process — Fourth Activity” on page 136.
• HIS System. This simulated process involves an initial activity that receives
the ADT_A28 message from the IEngine process. The second activity logs
information on the message.
— See ”Creating the HIS System Process — First Activity” on page 139.
— See ”Creating the HIS System Process — Second Activity” on page 140.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) 125
|

Creating the Scheduler Process — First Activity


To create the Scheduler process and the first activity in the Scheduler process, do
the following:
1. Right-click Untitled and select New Folder.
2. Enter Simulator in the Name field.
3. Click Apply.
4. Click and drag the Process Definition process from the Project tab into the
Simulator folder.
5. Expand the Simulator folder under the Project tab.
6. Click the new Process Definition process.
7. Enter Scheduler in the Name field.
8. Click the Activity tab and the File palette.
9. Click and drag the File Poller activity into the Scheduler process. The activity
can be configured to poll a directory for a particular file or for any file.
10. In the File Name field, instead of hard-coding a specific directory or file
name, use the global variable that was entered earlier along with the actual
file name. Enter %%hl7.samples.GetStarted.dir%%\ADT_A05.hl7.

TIBCO HL7 Integration Server User’s Guide


126
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

11. Click Apply.

Creating the Scheduler Process — Second Activity


To create the second activity in the Scheduler process, do the following:
1. Click the Activity tab and the HL7 palette.
2. Click and drag the LLP Request Response activity to the Scheduler process.
See ”LLP Request Response Activity” on page 65 for general information on
this activity.
3. Enter Send Request in the Name field.
4. Click the Create Transition button in the toolbar.
5. Create a transition from File Poller to Send Request.
6. Click the Select button in the toolbar.
7. Click the Send Request activity.
8. For the Send Request activity, in the LLP Connection field, click the Browse
button and select Scheduler Client Connection (to IEngine).
9. Because we know that the message type will be ADT_A05, for the
RequestDefinition field, click the Browse button and select HL7
Definition, which contains the GetStarted.vmd message definition file for
ADT_A05.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) 127
|

10. For the RequestMessage list box, select ADT_A05.

11. Click the Input tab.


12. On the Process Data side, expand $File-Poller and then fileContent.

TIBCO HL7 Integration Server User’s Guide


128
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

14. Click the Create Transition button in the toolbar.


15. Create a transition from the Send Request activity to the End activity.

16. Click the Select button in the toolbar.


17. Click Apply.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) 129
|

Creating the IEngine Process — First Activity


To create the IEngine process and the first Interface Engine activity, do the
following:
1. Right-click Untitled and select New Folder.
2. Enter IEngine in the Name field.
3. Click Apply.
4. Click the General Resources tab and the Process palette.
5. Click and drag the Process Definition process into the IEngine folder.
6. Enter Process ADT_A05 in the Name field for the Process Definition process.
7. Click Apply.
8. Click the Activity tab and the HL7 palette.
9. Click and drag the LLP Receiver with ACK activity to the Interface Engine
process. This activity will parse the ADT_A05 message header from the
Scheduler client, which will give information about what type of message is
received. See ”LLP Receiver with ACK Activity” on page 68 for general
information on this activity.
10. Enter Receiver for scheduling in the Name field.
11. Click the Browse button for the LLP Connection field and select IEngine
Server Connection.
12. Click the Browse button for the Definition field and select
HeaderAndAck.
13. Select OutputXML.

TIBCO HL7 Integration Server User’s Guide


130
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

14. Select Never in the SendACK list box.

15. Click Apply.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) 131
|

Creating the IEngine Process — Second Activity


To create the second Interface Engine activity, do the following:
1. Click the Activity tab and the HL7 palette.
2. Click and drag the HL7 Parser activity to the Interface Engine process. This
activity parses the rest of the ADT_A05 message from the Scheduler client. See
”HL7 Parser Activity” on page 59 for general information on this activity.
3. Click the Create Transition button in the toolbar.
4. Create a transition from the Receiver for scheduling activity to the HL7 Parser
activity.
5. Click the Select button in the toolbar.
6. Click the HL7 Parser activity.
7. Enter Parse ADT_A05 in the Name field of the HL7 Parser activity.
8. For the Parse ADT_A05 activity, click the Browse button for the
Definition field and select HL7 Definition.

9. Select ADT_A05 in the Message list box.

10. Click the Input tab.


11. Expand Receiver for scheduling.

TIBCO HL7 Integration Server User’s Guide


132
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

13. Click Apply.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) 133
|

Creating the IEngine Process — Third Activity


To create the third Interface Engine activity, do the following:
1. Click the Activity tab and the HL7 palette.
2. Click and drag the HL7 Renderer activity to the Interface Engine process. This
activity renders the parsed ADT_A05 message to create an ADT_A28
message. See ”HL7 Renderer Activity” on page 61 for general information on
this activity.
3. Click the Create Transition button in the toolbar.
4. Create a transition from Parse ADT_A05 to the HL7 Renderer activity.
5. Click the Select button in the toolbar.
6. Click the HL7 Renderer activity.
7. Enter Render ADT_A28 in the Name field of the HL7 Renderer activity.
8. Click the Browse button for the Definition field and select HL7
Definition.
9. Select ADT_A28 in the Message list box.

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.

TIBCO HL7 Integration Server User’s Guide


134
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) 135
|

19. Drag currentTimeStamp to the XPath Formula pane.

20. Click OK.

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.

TIBCO HL7 Integration Server User’s Guide


136
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Creating the IEngine Process — Fourth Activity


To create the fourth Interface Engine activity, do the following:
1. Click the Activity tab and the HL7 palette.
2. Click and drag the LLP Request Response activity to the Interface Engine
process. This activity sends the ADT_A28 message to the HIS system. See
”LLP Request Response Activity” on page 65 for general information on this
activity.
3. Click the Create Transition button in the toolbar.
4. Create a transition from Render ADT_A28 to the LLP Request Response
activity.
5. Click the Select button in the toolbar.
6. Click the LLP Request Response activity.
7. Enter Send ADT_A28 to HIS in the Name field of the LLP Request Response
activity.
8. Click the Browse button for the LLP Connection field and select IEngine
Client Connection (to HIS).
9. Click the Browse button for the Definition field and select HL7
Definition.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) 137
|

10. Select ADT_A28 in the RequestMessage list box.

11. Click the Input tab.


12. Expand Render ADT_A28 in the ProcessData side.

TIBCO HL7 Integration Server User’s Guide


138
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

14. Click Apply.


15. Click the Create Transition button in the toolbar.
16. Create a transition from the Send ADT_A28 to HIS activity to the End activity.
17. Click the Select button in the toolbar.
18. Click Apply.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) 139
|

Creating the HIS System Process — First Activity


To create the HIS process and the first activity in the HIS process, do the
following:
1. With the Simulator folder still expanded, click the General Resources tab and
the Process palette.
2. Click and drag the Process Definition process into the Simulator folder design
pane.
3. Click the Project tab.
4. Enter HIS in the Name field for the new Process Definition process.
5. Click the Activity tab and the HL7 palette.
6. Click and drag the LLP Receiver with ACK activity into the HIS process. See
”LLP Receiver with ACK Activity” on page 68 for general information on this
activity.
7. Enter Receiver in the Name field.
8. Click the Browse button for the LLP Connection field and select HIS
Server Connection.
9. Click the Browse button for the Definition field and select HL7
Definition.
10. Select OutputXML.
11. Select Never in the SendACK list box.

TIBCO HL7 Integration Server User’s Guide


140
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

12. Click Apply.

Creating the HIS System Process — Second Activity


To create the second activity in the HIS process, do the following:
1. Click the Activity tab and the General Activities palette.
2. Click and drag the Write to Log activity into the HIS process. This allows you
to log information on the message that this process receives.
3. Enter Log Info on the msg received in the Name 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.

9. Click the XPath Formula Builder button.


10. Click the Functions tab and expand String.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) 141
|

11. Click and drag concat to the XPath Formula pane.

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 ",

14. Click the Data tab.


15. Expand $Receiver, Header, MSH, MSH.9.MessageType, and CM_MSH.

TIBCO HL7 Integration Server User’s Guide


142
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

16. Click and drag CM_MSH.1.Event to << string1 >> in the XPath Formula pane.

<< string1 >> is replaced with


$Receiver/pfx2:Header/pfx2:MSH/pfx2:MSH.9.MessageType/pfx2:CM_MS
H/pfx2:CM_MSH.1.Event.

Click and drag CM_MSH.2.Type to << string2 >> in the XPath Formula pane.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) 143
|

<< string2 >> is replaced with


$Receiver/pfx2:Header/pfx2:MSH/pfx2:MSH.9.MessageType/pfx2:CM_MS
H/pfx2:CM_MSH.2.Type.

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.

TIBCO HL7 Integration Server User’s Guide


144
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Step 3 — Running the Tutorial in TIBCO Designer


You can run the GetStarted_demo.dat that you just created or you can run the
GetStarted.dat that comes with TIBCO HL7 Integration Server. The files should
be similar in naming of internal components and should be identical in how they
function.
To run the tutorial using the GetStarted.dat file that comes with TIBCO HL7
Integration Server, do the following:
1. For Windows, select Start>Programs>TIBCO>TIBCO Designer>Designer.
a. 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

b. Enter
designer

2. Click Open Existing Project.


3. Select <HL7_installation_directory>\samples\GetStarted\GetStarted.dat.
4. To set two breakpoints to make it easier to see the message flow, in the Process
ADT_A05 process, right-click the first activity, Receiver for scheduling, and
select Set BreakPoint After. In the HIS process, right-click the first activity,
Receiver, and select Set BreakPoint After.
5. Run the processes in Test mode by selecting View>Show Debug Window.
Then select View>Test>Load Processes and Start. A process definition must
be selected first to see the Test menu option.
6. Click Select All because you need to run all the processes (Process ADT_A05,
Scheduler, and HIS).
7. 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.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Getting Started with TIBCO HL7 Message Designer and TIBCO Designer (HL7) 145
|

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

followed by the error message and stack trace.

Troubleshooting
The following troubleshooting items may be useful.

Tutorial is not being triggered


Make sure that the hl7.samples.GetStarted.dir global variable points to the
directory containing ADT_A05.hl7.

All processes are not being started


In Test mode, choose the Load Processes and Start Testing (Shift + F9) option
instead of the Start (F9) option. F1 starts all four processes, but F9 only starts the
process in focus.
If you have any questions, see ”How to Contact TIBCO Customer Support” on
page xi in the preface and include a detailed description of the problem.

TIBCO HL7 Integration Server User’s Guide


146
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Tutorial — HL7 Parser and HL7 Renderer Activities in TIBCO


Designer

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.

TIBCO HL7 Integration Server User’s Guide


Tutorial — HL7 Parser and HL7 Renderer Activities in TIBCO Designer 147
|

Running the Tutorial


To run the tutorial, do the following:
1. For Windows, select Start>Programs>TIBCO>TIBCO Designer>Designer.
2. For UNIX, do the following:
a. 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

b. Enter
designer

3. Click Open Existing Project.


4. Select <HL7_installation_directory>\samples\ParserRenderer\
ParserAndRenderer.dat.
5. Click Edit>Global Variables...
6. Change the hl7.samples.ParserRenderer.dir variable value to be appropriate
for UNIX.
7. Click Set.
8. Click Close.

TIBCO HL7 Integration Server User’s Guide


148
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

9. Select the Process Definition process.

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.

TIBCO HL7 Integration Server User’s Guide


Tutorial — HL7 Parser and HL7 Renderer Activities in TIBCO Designer 149
|

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:

followed by the error message and stack trace.

Troubleshooting
The following troubleshooting items may be useful.

Tutorial is not being triggered


Make sure that the hl7.samples.ParserRenderer.dir variable points to the
directory containing ADT_A05.hl7.

TIBCO HL7 Integration Server User’s Guide


150
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

TIBCO HL7 Integration Server User’s Guide


Tutorial — LLP Request Response and HL7 LLP Receiver with ACK Activities in TIBCO Designer 151
|

Running the Tutorial


To run one aspect of the tutorial, do the following:
1. For Windows, select Start>Programs>TIBCO>TIBCO Designer>Designer.
2. For UNIX, do the following:
a. 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

b. Enter
designer

3. Click Open Existing Project.


4. Select <HL7_installation_directory>\samples\LLP\LLPAutoAck.dat.
5. Click Edit>Global Variables...
6. Change the hl7.samples.LLP.dir variable value to be appropriate for UNIX.
7. Click Set.
8. Click Close.
9. Select Illustrate NE.

10. Run the Illustrate NE and Receive processes in Test mode by selecting
View>Test>Load Processes and Start or by pressing Shift + F9.

TIBCO HL7 Integration Server User’s Guide


152
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

2. Run the Illustrate AL 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 expects an ACK response to the LLP
request.
3. Select the Illustrate AL and Receive processes.
4. Click Start.

TIBCO HL7 Integration Server User’s Guide


Tutorial — LLP Request Response and HL7 LLP Receiver with ACK Activities in TIBCO Designer 153
|

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:

followed by the error message and stack trace.

TIBCO HL7 Integration Server User’s Guide


154
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Troubleshooting
The following troubleshooting items may be useful.

Tutorial is not being triggered


Make sure that the hl7.samples.LLP.dir variable points to the directory
containing ADT_A05AL.hl7 and ADT_A05NE.hl7.

All processes are not being started


In Test mode, verify that you are choosing the Load Processes and Start Testing
(F1) option instead of the Start (F9) option. F1 starts all four processes, but F9 only
starts the process in focus.

JVM Bind Errors


Make sure that the ports specified are not being used by some other application.
If you have any questions, see ”How to Contact TIBCO Customer Support” on
page xi in the preface and include a detailed description of the problem.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Synchronous Messaging in TIBCO Designer (HL7) 155
|

Tutorial — Synchronous Messaging in TIBCO Designer (HL7)

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.

Initiator Application/Main — Interface Engine


This process, along with Initiator Application/Receiver, provides the Interface
Engine implementation.
1. A file is read to obtain the QRY_Q01 message.
2. The message is sent on an LLP Request Response task using the host and port
defined by the hl7.samples.sync-messaging.tcp.responder.host and
hl7.samples.sync-messaging.tcp.responder.port global variables.

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.

Responder Application/Main — Interface Engine


This process, along with process Responder Application/Handler, provides the
HIS system implementation.
1. This process is triggered by an incoming LLP message on the port defined by
the hl7.samples.sync-messaging.tcp.responder.port global variable.
2. The request is logged and the Get Msg Definition process is called to get the
appropriate message definition, based on the current MsgType.

TIBCO HL7 Integration Server User’s Guide


156
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

Responder Application/Handler — Interface Engine


This process, along with process Responder Application/Main, provides the HIS
system implementation.
1. This process is triggered when a notify with a key of Configurations/HL7
Definition|QRY_Q01 is received. If the key in the incoming notify message
does not match the key in the Handle HL7 Message activity, the Responder
Application/Handler process is not triggered.
2. The incoming request information is logged and a synchronous ACK response
is delivered.
Several log tasks are also included to log errors that may occur.

Get Msg Definition


This is a simple process that sets the msgDefinition field based on the Message
Type. To view the Choose statement used, simply click on the input tab of the End
task.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Synchronous Messaging in TIBCO Designer (HL7) 157
|

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.

TIBCO HL7 Integration Server User’s Guide


158
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Running the Tutorial


To run the tutorial, do the following:
1. For Windows, select Start>Programs>TIBCO>TIBCO Designer>Designer.
2. For UNIX, do the following:
a. 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

b. Enter
designer

3. Click Open Existing Project.


4. Select <HL7_installation_directory>\samples\Sync-Messaging\
Sync-Messaging.dat.
5. Click Edit>Global Variables...
6. Change the hl7.samples.Sync-Messaging.dir variable value to be appropriate
for UNIX.
7. Click Set.
8. Click Close.
9. Expand Initiator Application.
10. Select Main.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Synchronous Messaging in TIBCO Designer (HL7) 159
|

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.

TIBCO HL7 Integration Server User’s Guide


160
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

7. The message is logged and a synchronous response of type ADR_A19 is sent


back to the requestor, in this case, the Deliver HL7 Msg Get SyncResponse
activity in the Responder Application/Main process.
8. Control passes back to the Deliver HL7 Msg Get SyncResponse activity in the
Responder Application/Main process. Based on the content of the response
that was received, one of three paths is chosen. As we know, a response was
included in the reply received by the Deliver HL7 Msg Get SyncResponse
activity, the Response Exists transition is taken.
9. A synchronous response is sent back to the Send Request Receive Response
activity in the Initiator Application/Main process. This response is also
logged.
10. With all other processes now complete, the message flow returns to the Send
Request Receive Response in the Initiator Application/Main process. As it has
now received its expected response, it logs some information on the response
and completes.
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 Sync Messaging Sample - ERROR INITIATOR APPLICATION/MAIN:

or
HL7 Sync Messaging Sample - ERROR RESPONDER APPLICATION/MAIN:

or
HL7 Sync Messaging Sample - ERROR RESPONDER APPLICATION/HANDLER:

followed by the error message and stack trace.

Troubleshooting
The following troubleshooting items may be useful.

Tutorial is not being triggered


Make sure that the hl7.samples.sync-messaging.dir global variable points
to the directory containing QRY_Q01.hl7.

All processes are not being started


In Test mode, verify that you are choosing the Load Processes and Start Testing
(F1) option instead of the Start (F9) option. F1 starts all four processes, but F9 only
starts the process in focus.
If you have any questions, see ”How to Contact TIBCO Customer Support” on
page xi in the preface and include a detailed description of the problem.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Asynchronous Messaging in TIBCO Designer (HL7) 161
|

Tutorial — Asynchronous Messaging in TIBCO Designer (HL7)

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.

Initiator Application/Main — Interface Engine


This process, along with Initiator Application/Receiver, provides the Interface
Engine implementation.
1. A file is read to obtain the QRY_Q01 message.
2. The message is sent on an LLP Request Response task using the host and port
defined by the hl7.samples.async-messaging.tcp.responder.host and
hl7.samples.async-messaging.tcp.responder.port global variables.

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.

Initiator Application/Receiver — Interface Engine


This process, along with Initiator Application/Main provides the Interface Engine
implementation.
1. This process is triggered by an incoming LLP message on the port defined by
the hl7.samples.async-messaging.tcp.initiator.port global variable.

TIBCO HL7 Integration Server User’s Guide


162
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

Responder Application/Main — Interface Engine


This process, along with process Responder Application/Handler, provides the
HIS system implementation.
1. This process is triggered by an incoming LLP message on the port defined by
the hl7.samples.async-messaging.tcp.responder.port global variable.
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. 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.

Responder Application/Handler — Interface Engine


This process, along with process Responder Application/Main, provides the HIS
system implementation.
1. This process is triggered when a notify with a key of Configurations/HL7
Definition|QRY_Q01 is received. If the key in the incoming notify message
does not match the key in the Handle HL7 Message activity, the Responder
Application/Handler process is not triggered.
2. The incoming request information is logged and a synchronous ACK response
is delivered.
3. An LLP Request/Response task is used to send a Request containing an
ADR_A19 using the host and port defined by the
hl7.samples.async-messaging.tcp.initiator.host and
hl7.samples.async-messaging.tcp.initiator.port global variables.

4. Once an ACK is received, the ACK information is logged and the process
ends.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Asynchronous Messaging in TIBCO Designer (HL7) 163
|

Several log tasks are also included to log errors that may occur.

Get Msg Definition


This is a simple process that sets the msgDefinition field based on the Message
Type. To view the Choose statement used, simply click on the input tab of the End
task.

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.

TIBCO HL7 Integration Server User’s Guide


164
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Running the Tutorial


To run the tutorial, do the following:
1. For Windows, select Start>Programs>TIBCO>TIBCO Designer>Designer.
2. For UNIX, do the following:
a. 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

b. Enter
designer

3. Click Open Existing Project.


4. Select
<HL7_installation_directory>\samples\Async-Messaging\Async-Messaging.
dat.
5. Click Edit>Global Variables...
6. Change the hl7.samples.Async-Messaging.dir variable value to be
appropriate for UNIX.
7. Click Set.
8. Click Close.
9. Select Get Msg Definition.

10. Run the processes in Test mode by selecting View>Test>Load Processes and
Start or by pressing Shift + F9.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Asynchronous Messaging in TIBCO Designer (HL7) 165
|

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.

TIBCO HL7 Integration Server User’s Guide


166
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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

TIBCO HL7 Integration Server User’s Guide


Tutorial — Asynchronous Messaging in TIBCO Designer (HL7) 167
|
HL7 Async Messaging Sample - ERROR RESPONDER APPLICATION/MAIN:

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.

Tutorial is not being triggered


Make sure that the hl7.samples.async-messaging.dir global variable points
to the directory containing QRY_Q01.hl7.

All processes are not being started


In Test mode, verify that you are choosing the Load Processes and Start Testing
(F1) option instead of the Start (F9) option. F1 starts all the processes, but F9 only
starts the process in focus.
If you have any questions, see ”How to Contact TIBCO Customer Support” on
page xi in the preface and include a detailed description of the problem.

TIBCO HL7 Integration Server User’s Guide


168
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Tutorial — Batch Messages in TIBCO Designer (HL7)

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.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Batch Messages in TIBCO Designer (HL7) 169
|

Running the Tutorial


To run the tutorial, do the following:
1. For Windows, select Start>Programs>TIBCO>TIBCO Designer>Designer.
2. For UNIX, do the following:
a. 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

b. Enter
designer

3. Click Open Existing Project.


4. Select <HL7_installation_directory>\samples\batch\batch.dat.
5. Click Edit>Global Variables...
6. Change the hl7.samples.batch.dir variable value to be appropriate for UNIX.
7. Click Set.
8. Click Close.
9. Select Process Definition.

10. Run the process in Test mode by selecting View>Test>Start> or by pressing


F9.
11. Click Start.

TIBCO HL7 Integration Server User’s Guide


170
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

Tutorial is not being triggered


Make sure that the hl7.samples.batch.dir global variable points to the
directory containing batch.hl7.
If you have any questions, see ”How to Contact TIBCO Customer Support” on
page xi in the preface and include a detailed description of the problem.

TIBCO HL7 Integration Server User’s Guide


Tutorial — HL7 V3 Messaging in TIBCO Designer 171
|

Tutorial — HL7 V3 Messaging in TIBCO Designer

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.

TIBCO HL7 Integration Server User’s Guide


172
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Running the Minimal Tutorial


To run the minimal tutorial, do the following:
1. For Windows, select Start>Programs>TIBCO>TIBCO Designer>Designer.
2. For UNIX, do the following:
a. 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

b. Enter
designer

3. Click Open Existing Project.


4. Select <HL7_installation_directory>\samples\CDA\CDA.dat.
5. Click Edit>Global Variables...
6. Change the hl7.samples.CDA.dir variable value to be appropriate for UNIX.
7. Click Set.
8. Click Close.
9. Select Process CDA Minimal Sample.

TIBCO HL7 Integration Server User’s Guide


Tutorial — HL7 V3 Messaging in TIBCO Designer 173
|

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.

TIBCO HL7 Integration Server User’s Guide


174
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Running the Rich Tutorial


To run the rich tutorial, do the following:
1. For Windows, select Start>Programs>TIBCO>TIBCO Designer>Designer.
2. For UNIX, do the following:
a. 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

b. Enter
designer

3. Click Open Existing Project.


4. Select <HL7_installation_directory>\samples\CDA\CDA.dat.
5. Click Edit>Global Variables...
6. Change the hl7.samples.CDA.dir variable value to be appropriate for UNIX.
7. Click Set.
8. Click Close.
9. Select Process CDA Rich Sample.

10. Run the process in Test mode by selecting View>Test>Load Processes and
Start or by pressing Shift + F9.

TIBCO HL7 Integration Server User’s Guide


Tutorial — HL7 V3 Messaging in TIBCO Designer 175
|

11. Select Process CDA Rich Sample.


12. 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
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

followed by the error message and stack trace.

Troubleshooting
The following troubleshooting item may be useful.

TIBCO HL7 Integration Server User’s Guide


176
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Tutorial is not being triggered


Make sure that the hl7.samples.CDA.dir variable points to the directory
containing CDA_minimal_sample.xml and CDA_rich_sample.xml.
If you have any questions, see ”How to Contact TIBCO Customer Support” on
page xi in the preface and include a detailed description of the problem.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Inbound EDI-X12 HIPAA 275/HL7 Messages in TIBCO Designer 177
|

Tutorial — Inbound EDI-X12 HIPAA 275/HL7 Messages in TIBCO


Designer

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.

TIBCO HL7 Integration Server User’s Guide


178
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

• 275_HL7ex1.xml. EDI message, converted to XML and encoded in Base64.


• 275_HL7ex2.xml. EDI message, converted to XML and encoded in Base64.

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.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Inbound EDI-X12 HIPAA 275/HL7 Messages in TIBCO Designer 179
|

Running the Tutorial


To run one aspect of the tutorial, do the following:
1. For Windows, select Start>Programs>TIBCO>TIBCO Designer>Designer.
2. For UNIX, do the following:
a. 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

b. Enter
designer

3. Click Open Existing Project.


4. Select
<HL7_installation_directory>\samples\HIPAA\ClaimsAttachments.dat.
5. Click Edit>Global Variables...
6. Change the hl7.samples.HIPAA.dir variable value to be appropriate for
UNIX.
7. Click Set.
8. Click Close.
9. Expand the Processes folder.
10. Select Process ex1.

11. To process 275_HL7ex1.xml, run the processes in Test mode by selecting


View>Test>Load Processes and Start or by pressing Shift + F9.
12. Expand the Processes folder.
13. Select Process ex1 and Process 275.

TIBCO HL7 Integration Server User’s Guide


180
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

14. Click Start.


To run another aspect of the tutorial, do the following:
1. Expand the Processes folder.
2. Select Process ex2.

3. To process 275_HL7ex2.xml, run the processes in Test mode by selecting


View>Test>Load Processes and Start or by pressing Shift + F9.
4. Expand the Processes folder.
5. Select Process ex2 and Process 275.
6. 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.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Inbound EDI-X12 HIPAA 275/HL7 Messages in TIBCO Designer 181
|

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

If an ERROR.hl7 file is created in the directory specified in the HL7Dir variable,


then a parsing error has occurred.

Troubleshooting
The following troubleshooting item may be useful.

Tutorial is not being triggered


Make sure that the hl7.samples.HIPAA.dir variable points to the directory
containing 275_HL7ex1.xml and 275_HL7ex2.xml.
If you have any questions, see ”How to Contact TIBCO Customer Support” on
page xi in the preface and include a detailed description of the problem.

TIBCO HL7 Integration Server User’s Guide


182
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Tutorial — Patient Admission in TIBCO Designer (HL7)

The following scenario describes what occurs when a patient is admitted. A


simulated Scheduling System is the initiator, which sends the ADT_A05 request
to the Interface Engine. Other simulated systems include the HIS, Eligibility,
Billing, and Clinical systems.
The tutorial contains the following key components in
<HL7_installation_directory>\samples\Patient_Admission\
Patient-Admission.dat when viewed using TIBCO Designer:

• Shared Configurations, page 183


• Interface Engine, page 184
• Simulated Systems, page 185

TIBCO HL7 Integration Server User’s Guide


Tutorial — Patient Admission in TIBCO Designer (HL7) 183
|

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.

— Header and Ack Definition. This resource specifies HeaderandAck.vmd.


— Query Messages Definition. This resource specifies QueryMessages.vmd.

• Connections. These LLP Connection resources are used in processes to send


and receive message between Interface Engine and the simulated systems.
— Client Connection to IE (Async)
— IE Server Connection

TIBCO HL7 Integration Server User’s Guide


184
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Interface Engine
The Interface Engine folder contains various processes. The Interface Engine
processes exchange and handle documents from the simulated client applications.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Patient Admission in TIBCO Designer (HL7) 185
|

Simulated Systems
The following shows, among other items, the simulated systems.

The following simulated systems are used in this tutorial:


• Scheduling system
• HIS system
• Eligibility system
• Billing system
• Clinical system

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

TIBCO HL7 Integration Server User’s Guide


186
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

Running the Tutorial


To run the tutorial, do the following:
1. For Windows, select Start>Programs>TIBCO>TIBCO Designer>Designer.
2. For UNIX, do the following:
a. 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

b. Enter
designer

3. Click Open Existing Project.


4. Select <HL7_installation_directory>\samples\Patient_Admission\
Patient_Admission.dat.
5. Click Edit>Global Variables...
6. Change the hl7.samples.Patient_Admission.dir variable value to be
appropriate for UNIX.
7. Click Set.
8. Click Close.
9. Select the Simulated Scheduling System/Initiate Patient Admission process.
10. Run the processes in Test mode by selecting View>Test>Load Processes and
Start or by pressing Shift + F9.
11. Expand the Processes folder.
12. Select all the processes.
13. Click Start.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Patient Admission in TIBCO Designer (HL7) 187
|

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.

TIBCO HL7 Integration Server User’s Guide


188
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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

TIBCO HL7 Integration Server User’s Guide


Tutorial — Patient Admission in TIBCO Designer (HL7) 189
|

the ADT_A05 message header and uses the HeaderAndAck.vmd definition to


determine the message type.

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

TIBCO HL7 Integration Server User’s Guide


190
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

corresponding wait or process starter activities in the handle message


processing.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Patient Admission in TIBCO Designer (HL7) 191
|

8. The Interface Engine uses an LLP Request Response activity to send a


QRY_Q01 query message to the Simulated HIS client to see if this patient is
already exists. The lookup is based on Patient ID or Name fields.

TIBCO HL7 Integration Server User’s Guide


192
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Patient Admission in TIBCO Designer (HL7) 193
|

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.

TIBCO HL7 Integration Server User’s Guide


194
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

b. The patient exists. Patient information is then returned in the ADR_A19


query response message. If any of the patient information has been
changed, the Interface Engine creates an ADT_A31 update 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.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Patient Admission in TIBCO Designer (HL7) 195
|

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.

TIBCO HL7 Integration Server User’s Guide


196
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Patient Admission in TIBCO Designer (HL7) 197
|

15. If the patient’s eligibility information needs to be verified, the patient


admission is flagged as pending until a verification is received. The Interface
Engine uses an HL7 Renderer activity to create an ADT_A14 pending admit
message.

TIBCO HL7 Integration Server User’s Guide


198
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Patient Admission in TIBCO Designer (HL7) 199
|

17. The Interface Engine uses an HL7 Renderer activity to create an RQI_I01
eligibility verification request.

TIBCO HL7 Integration Server User’s Guide


200
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Patient Admission in TIBCO Designer (HL7) 201
|

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.

TIBCO HL7 Integration Server User’s Guide


202
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Patient Admission in TIBCO Designer (HL7) 203
|

22. If the eligibility response from the Eligibility system is negative:


a. The Interface Engine cancels the patient admission and uses an HL7
Renderer activity to create an ADT_A11 cancel admit message.

TIBCO HL7 Integration Server User’s Guide


204
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

c. After a negative eligibility response, if a new patient record has been


added to the HIS, the Interface Engine sends an ADT_A29 delete patient
record message to the HIS client and the Scheduling System client.
If the HIS client cannot accept an ADT_A29 delete patient record, the Interface
Engine sends nothing to the HIS client.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Patient Admission in TIBCO Designer (HL7) 205
|

23. If eligibility is confirmed:


a. The patient is admitted and the Interface Engine uses an HL7 Renderer
activity to create an ADT_A04 outpatient registration message.

TIBCO HL7 Integration Server User’s Guide


206
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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.

TIBCO HL7 Integration Server User’s Guide


Tutorial — Patient Admission in TIBCO Designer (HL7) 207
|

Event Flow Diagram


The following diagram shows the event flow.

Scheduling Interface
HIS Eligibility Billing Clinical Sys
Sys tem Engin e
AD T
A05()
QRY
Q01()
AD R
A19()

Exis ting Pa tient: ADT


A31 ()
AC k()

If New Patie nt: AD T


A28()
AC k()
AD T
A14()
AD T
A14 ()
RQI I01()

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()

TIBCO HL7 Integration Server User’s Guide


208
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

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

Sample HL7 Patient Registration Message


The following is a sample patient registration message in HL7 format:
MSH|^~\&|||HBOC||CERNER||ADT^A04|41834979147914197|P|2.2|

TIBCO HL7 Integration Server User’s Guide


Tutorial — Patient Admission in TIBCO Designer (HL7) 209
|
EVN|A01|20001001120212|
PID|||0281755||SMITH^JOHN^FITZGERALD|19451206|M||||||||459832183|2
32-45-4548|
NK1|1|SMITH^LAURA^MARY|12 River Street^Ap. 2^New
York^NY^23214^USA|12434
^SPOUSE^ISO|212-555-7873|
PV1||O|||||523422241^KRISHNASWAMI^PAVAN|999722241^JONES^JENNY|6767
6090^RAMIREZ^PAUL^F|||||OUTPATIENT||||444244329|
PV2|||^Chest Pain|
AL1|1|^Pennicillin||^Severe|

TIBCO HL7 Integration Server User’s Guide


210
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Tips and Tricks

The following tips and tricks may be useful when building a project.

Saving a Complex Mapping for Later Use in TIBCO Designer


If you have invested time in creating a complex mapping, but you need to change
the mapping for testing purposes, you can save the existing mapping and later
put the mapping back into the repository.
1. In the HL7 Parser and Renderer tutorial Process Definition, select the Parse
ADT_A05 activity.
2. Select the Input tab.
3. Select values in the Activity Input side.

TIBCO HL7 Integration Server User’s Guide


Tips and Tricks 211
|

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.

TIBCO HL7 Integration Server User’s Guide


212
| Chapter 6 Tutorials for TIBCO HL7 Integration Server

Starting a Project under the BusinessWorks Engine

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>

TIBCO HL7 Integration Server User’s Guide


| 213

Chapter 7 TIBCO HL7/HIPAA Messaging Solution

This chapter describes HIPAA HL7 messaging and a TIBCO HL7/HIPAA


messaging solution.

Topics

• HIPAA and HL7 Messaging, page 214


• How TIBCO HL7 Integration Server and TIBCO BusinessConnect EDI Protocol
HIPAA Edition Can Work Together, page 215
• Provider and Payor Roles When Sending an EDI-X12 275 HIPAA Message, page 217

TIBCO HL7 Integration Server User’s Guide


214
| Chapter 7 TIBCO HL7/HIPAA Messaging Solution

HIPAA and HL7 Messaging

HL7 messages are typically exchanged between enterprise applications like a


Patient Administration System and a Pathology Laboratory Information system.
However, HL7 messages must sometimes be embedded in certain HIPAA
EDI-X12 transactions between enterprises like hospitals and insurance
companies.
For example, when a hospital sends a claim for payment to another enterprise,
like an insurance company, the hospital and the insurance company exchange
HIPAA EDI-X12 messages. HIPAA EDI-X12 messages may contain an embedded
HL7 message with additional patient information requested from the insurance
company.

TIBCO HL7/HIPAA Solution


To enable the exchange of HIPAA messages with HL7 attachments between
enterprises, TIBCO offers TIBCO HL7 Integration Server and TIBCO
BusinessConnect EDI Protocol HIPAA Edition.
TIBCO HL7 Integration Server is the TIBCO implementation of the HL7 standard.
TIBCO HL7 Integration Server is a software package that provides a framework
for a healthcare provider’s internal HL7 HIPAA messaging.
TIBCO BusinessConnect EDI Protocol HIPAA Edition is the TIBCO
implementation of the EDI standard, and offers specialized functionality for
customers who require HIPAA compliance.
Together, TIBCO HL7 Integration Server and TIBCO BusinessConnect EDI
Protocol HIPAA Edition enable the exchange of HIPAA messages and embedded
HL7 messages between enterprises like hospitals and insurance companies.

TIBCO HL7 Integration Server User’s Guide


How TIBCO HL7 Integration Server and TIBCO BusinessConnect EDI Protocol HIPAA Edition Can Work Together 215
|

How TIBCO HL7 Integration Server and TIBCO BusinessConnect


EDI Protocol HIPAA Edition Can Work Together

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.

The ”Tutorial — Inbound EDI-X12 HIPAA 275/HL7 Messages in TIBCO


Designer” on page 177 is a limited example of how HL7 messaging and EDI-X12
HIPAA message exchange between enterprises can occur.

Sample High-Level Scenario


The following shows how the message exchange can occur.

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)

The following steps may occur:


1. You use TIBCO BusinessConnect EDI Protocol HIPAA Edition to send an
EDI-X12 837 Health Care Claim HIPAA message to an external payor.

TIBCO HL7 Integration Server User’s Guide


216
| Chapter 7 TIBCO HL7/HIPAA Messaging Solution

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.

TIBCO HL7 Integration Server User’s Guide


Provider and Payor Roles When Sending an EDI-X12 275 HIPAA Message 217
|

Provider and Payor Roles When Sending an EDI-X12 275 HIPAA


Message

To submit an EDI-X12 275 HIPAA message, a provider system must do the


following:
• Express patient data as an HL7 ORU message. See ”HL7 ORU Messages” on
page 223 for information on ORU messages.
• Use the appropriate LOINC (Logical Observation Identifier Names and
Codes) modifier code.
• Wrap the HL7 ORU message in the BIN segment of an X12N-compliant 275
claims attachment transaction. X12N is for exchanging insurance, eligibility,
and managed care information.
See ”Tutorial — Inbound EDI-X12 HIPAA 275/HL7 Messages in TIBCO
Designer” on page 177 for an example of the 275 messaging event.

Payor Role When Receiving an EDI-X12 275 HIPAA Message


To process an EDI-X12 275 HIPAA message, a payor system must be able to parse
the HL7 ORU message embedded in the 275. TIBCO HL7 Integration Server can
easily perform this task.

TIBCO HL7 Integration Server User’s Guide


218
| Chapter 7 TIBCO HL7/HIPAA Messaging Solution

TIBCO HL7 Integration Server User’s Guide


| 219

Appendix A HL7 Messages

This appendix describes some aspects of HL7 messages.

Topics

• HL7 Message Components, page 220


• HL7 Sample Message, page 221
• Making HL7 Messages More Readable, page 222
• HL7 ORU Messages, page 223

TIBCO HL7 Integration Server User’s Guide


220
| Appendix A HL7 Messages

HL7 Message Components

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 "|".

HL7 Message Definition Parts


In the TIBCO HL7 Message Designer, each message definition contains the
following parts:
• Segment Grammar. This gives the HL7 format of the message.
• Table Grammar. This gives the internal view of the message as seen by an
enterprise application.
• Identity. This determines how TIBCO HL7 Message Designer recognizes the
message.

TIBCO HL7 Integration Server User’s Guide


HL7 Sample Message 221
|

HL7 Sample Message

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

TIBCO HL7 Integration Server User’s Guide


222
| Appendix A HL7 Messages

Making HL7 Messages More Readable

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.

TIBCO HL7 Integration Server User’s Guide


HL7 ORU Messages 223
|

HL7 ORU Messages

A HIPAA-compliant ORU message contains the following:


• Message header and patient information.
• One or more observation request (OBR) segments defining observation type
and request specifics.
• One or more observation result (OBX) segments defining, quantifying, and
qualifying the results.
• One or more LOINC (Logical Observation Identifier Names and Codes)
modifier codes used in the OBR and/or OBX segments as universal identifiers
for laboratory and other clinical observations.

TIBCO HL7 Integration Server User’s Guide


224
| Appendix A HL7 Messages

TIBCO HL7 Integration Server User’s Guide


| 225

Appendix B HL7 Utilities

This appendix describes the utilities that come with TIBCO HL7 Integration
Server.

Topics

• HL7 Listener and HL7 Simulator Utilities, page 226


• HL7 Diff Utility, page 230

TIBCO HL7 Integration Server User’s Guide


226
| Appendix B HL7 Utilities

HL7 Listener and HL7 Simulator Utilities

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.

TIBCO HL7 Integration Server User’s Guide


HL7 Listener and HL7 Simulator Utilities 227
|

Using the Listener Utility


To use the Listener utility to listen to and, if necessary, capture HL7 messages
from an enterprise application, do the following:

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.

TIBCO HL7 Integration Server User’s Guide


228
| Appendix B HL7 Utilities

Using the HL7 Simulator Utility


To use the Simulator utility, do the following:

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

TIBCO HL7 Integration Server User’s Guide


HL7 Listener and HL7 Simulator Utilities 229
|

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.

TIBCO HL7 Integration Server User’s Guide


230
| Appendix B HL7 Utilities

HL7 Diff Utility

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.

Using the HL7 Diff Utility


To use the HL7 Diff utility, do the following:
1. Copy <HL7_installation_directory>\HL7MessageDesigner\msgdiff.exe to a
temporary folder. This will help you because the utility generates its html files
in its home directory. The <HL7_installation_directory>\HL7MessageDesigner
directory already contains many files, so running a copy of the utility in a new,
empty directory will make it easier to see the utility’s output.
2. Open a DOS window and navigate to
<HL7_installation_directory>\<temp_dir>\.
3. Execute msgdiff.exe as follows:
msgdiff <HL7_message_file_1> <HL7_message_file_2>
<optional_original_HL7_message_file>
where <HL7_message_file_1> is the HL7 file that another vendor’s software HL7
software created, and <HL7_message_file_2> is the HL7 file that TIBCO HL7
Integration Server created. <optional_original_HL7_message_file> may be useful if
you want to compare two different mapping algorithms from files produced by
software from different vendors. In this case, you can add a third message log file.
This is not diffed, but it does appear in the output feed. The "before" messages file
can be used here, as this may provide a better understanding of how the other
messages are generated.

TIBCO HL7 Integration Server User’s Guide


HL7 Diff Utility 231
|

The following shows how this might look before executing msgdiff.exe.

The following shows how this might look after executing msgdiff.exe.

TIBCO HL7 Integration Server User’s Guide


232
| Appendix B HL7 Utilities

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.

TIBCO HL7 Integration Server User’s Guide


| 233

Glossary

A communication between businesses, usually


over the Internet or over a VPN. See also VPN.
ack
A return message in a B2B request/response
transaction indicating that data has been
received correctly. Typically, if the sender of the C
original data does not receive an ack message
back before a predetermined time, or receives a CA
nack, the sender re-sends the original data. See Certificate Authority. See also Certificate
also nack. Authority.
ActiveEnterprise CDATA
One of the three product families within TIBCO Character data. CDATA has two very different
Software Inc. TIBCO ActiveEnterprise focuses on meanings in XML. The first meaning is used
enterprise application integration. The other two within document type declarations, where
product groupings are TIBCO ActivePortal™ CDATA is used within attribute declarations to
and TIBCO ActiveExchange™. See indicate that an attribute should contain
www.tibco.com for details. character content, and that no enumerated set of
values is provided to constrain that content. The
Legacy applications and other applications are
second meaning applies only within documents,
integrated using software from TIBCO into a
where CDATA marked sections (beginning with
communicating and event-driven whole.
<![CDATA[ and ending with ]]>) label text
alert within documents that is purely character data,
A notification to an end-user. For example, this containing no elements or entities that need to be
might include scheduled alerts delivering portal processed. CDATA sections provide an 'escape'
headlines to a chosen device. mechanism supporting documents containing
characters (typically <, >, and &) that would
asynchronous transaction type
interfere with normal processing.
A request/response transaction type in which
the responder sends a response on a channel certificate
other than the sending channel. See also A data string that a Certificate Authority (CA)
synchronous transaction type. creates after the CA verifies the identity of an
entity that has submitted a CSR (Certificate
Signing Request). When a CA signs and issues a
certificate to a user, the CA’s signature on the
B certificate verifies the authenticity of the link
between the user’s public key and the user’s
B2B actual identity. A user can then use its certificate,
Business to Business. Electronic, integrated as contained in its certificates file, to identify
itself during e-commerce. The three key items in

TIBCO HL7 Integration Server User’s Guide


234
| 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™

TIBCO HL7 Integration Server User’s Guide


Glossary 235
|

An XML-based data exchange standard for CSV


buying, selling, and delivering chemicals. Common Separated Values. A message structure
CIDX™ (Chemical Industry Data eXchange) format.
developed ChemXML on a non-profit basis for
use in the chemical industry to conduct
electronic business transactions and exchange
data in company-to-company, D
company-to-marketplace, and
marketplace-to-marketplace transactions. DBMS
Data Base Management System. A complex set of
CIDX™
programs that controls the organization, storage,
See ChemXML. and retrieval of data for many users. Data is
organized in fields, records, and files. A database
ciphertext
management system also controls the security of
Data that has been encrypted.
the database.
cleartext
digital certificate
Data that has not been encrypted.
See certificate.
client
digital signature
In the context of a B2B interaction, the client is
See signature.
the initiating partner. See also server.
document type declaration
CMS
A declaration that provides a document type
Cryptographic Message Syntax. The internal
definition (DTD) for an XML document. The
format of an S/MIME message. See also
document type declaration may refer to an
S/MIME.
external file (the "external subset"), include
container additional declarations (the "internal subset"), or
Containers provide visual separation of combine both. The document type declaration
categories on the portal page, and they provide also gives the root element for the document.
category-level controls such as minimize and
DTD
close. They also provide links as required to
Document Type Definition. A non-XML schema
category related forms for alerts and
file that contains a formal description of the
personalization. Category containers are defined
vocabulary and structure of the elements in an
as HTML templates.
associated XML file. DTDs serve the same
CRM function as XML schema documents. A DTD
Customer Relationship Management. A type of may also provide some content information. The
software that automates a company's sales force, DTD for an XML document is the combination of
marketing efforts, and customer service needs. the internal and external subsets described by
the document type declaration. See also XML.
CSR
Also see www.extensibility.com for information
Certificate Signing Request. The file that you
on TIBCO’s XML Authority, the premier
send to a CA such as Verisign when you request
solution for the creation, conversion, and
a certificate. The CSR contains your email
management of DTDs and XML schemas.
address and certain identifying information.

TIBCO HL7 Integration Server User’s Guide


236
| Glossary

DUNS Number their start tags, other elements, and textual


A number in the Data Universal Numbering content. See also XML.
System from Dun & Bradstreet. TIBCO
e-paymentsPlus
BusinessConnect uses DUNS numbers for
A service offered by SWIFT to its member
RosettaNet and ChemXML.
financial institutions to allow those institutions
to provide internet-based payment initiation
services to their corporate customers engaged in
B2B e-commerce. e-paymentsPlus facilitates
E secure payment transactions between a buyer
and a seller.
EAI
Enterprise Application Integration. Plans, e-paymentsPlus uses TrustAct as a messaging
methods, and tools for modernizing, service. However, unlike TrustAct, which just
consolidating, and coordinating the applications conveys a business message between buyer and
in an enterprise. EAI includes methodologies seller without interpreting its contents,
like object-orientated programming, distributed, e-paymentsPlus defines a set of structured
cross-platform program communication, the messages that convey payment information.
modification of ERP applications to fit new
ERP
objectives, enterprise-wide content and data
Enterprise Resource Planning. An integrated
distribution using common databases and data
information system that serves all departments
standards implemented with XML, middleware,
within an enterprise. An ERP system can include
messaging, and other approaches. See also ERP.
software for manufacturing, order entry,
ebXML accounts receivable and payable, general ledger,
(electronic business XML) is a business protocol purchasing, warehousing, transportation and
that allows buyers, sellers, and intermediaries to human resources.
securely share XML or non-XML business
exception
documents and messages reliably over the
At the software level, anything that has gone
Internet. The ebXML suite of specifications offers
wrong, typically within a lower level code
companies a standard method for exchanging
module. At the business process level, an
business messages, conducting trading
exception is anything that requires special
relationships, communicating data in common
processing to account or adjust for, such as
terms, and defining and registering business
correcting an invalid order.
processes.
EDI
Electronic Data Interchange. A native SAP
message format. EDI is most often used by F
trading partners in the exchange of standardized
documents. EDI uses some variation of the ANSI FTP
X12 standard (USA) or EDIFACT File Transfer Protocol. A client-server protocol
(UN-sponsored global standard). which allows a user on one computer to transfer
files to and from another computer over a
element
TCP/IP network. Also used to refer to the client
The unit forming the basic structure of XML
program the user executes to transfer files. See
documents. Elements may contain attributes in
also TCP/IP.

TIBCO HL7 Integration Server User’s Guide


Glossary 237
|

function and has more features than the more popular


See transform. POP access protocol. See also POP.
GUI
Graphical User Interface.
J
JSSE
H Java™ Secure Socket Extension. A Java standard
that enables SSL. As SSL is not part of Java,
HIPAA
different vendors offer different JSSE
Health Insurance Portability and Accountability
implementations. See also SSL.
Act. Enacted in 1996 to streamline healthcare
transactions across enterprises and to uphold
patients' privacy rights. HIPAA standards have
been established for electronic health care
transactions. K
HL7 key file
Health Level Seven. A messaging standard for See key identity file.
exchanging clinical and administrative data
key identity file
between healthcare applications from various
A file that contains a private key and its
vendors, typically within an enterprise.
certificate chain. It is encrypted with a password
HTTP because it contains a private key. Trading
Hypertext Transfer Protocol. A client-server partners create a key identity for their own
TCP/IP transport protocol used on the web for installations. When setting up an installation for
exchanging documents. By default, HTTP uses e-commerce, the key identity file relates to the
port 80. See also TCP/IP. trading host and certificates file(s) relate to any
trading partner(s) that the host has. TIBCO
HTTPS
ActiveExchange products support Entrust
Hypertext Transfer Protocol, Secure. A variant of
Profile (.epf) (as implemented by Entrust), and
HTTP used for creating secure transactions.
PKCS#12 (.p12 or .pfx) (as implemented by
HTTPS uses SSL to encrypt the HTTP transport.
Netscape and Microsoft and others).
Messages sent over the secure transport are not
themselves encrypted. By default, HTTPS uses key pair
port 443. See also SSL. A private/public key pair.

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

TIBCO HL7 Integration Server User’s Guide


238
| Glossary

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.

TIBCO HL7 Integration Server User’s Guide


Glossary 239
|

A public key is kept in a certificate. server


In the context of a B2B interaction, the server is
public key cryptography
the responding partner. See also client.
A system that offers encryption and digital
signatures. Each user has a public key and a SGML
private key. The public key is made public while Standard Generalized Markup Language. A
the private key remains private. A sender generic language for representing hypertext
encrypts a document using the recipient’s public documents.
key. The recipient decrypts the document using
signature
their private key. Also, a sender signs a
A verifiable transformation made on a piece of
document using their private key. The recipient
data by the private key, which can be verified by
authenticates the sender using the sender’s
using the public key. A digital signature binds a
public key. See also symmetric key cryptography.
document to the possessor of a particular key. A
signature usually also contains the possibly
incomplete certificate chain of the signer. See
also certificate.
R
S/MIME
request/response Secure Multipurpose Internet Mail Extensions. A
A type of message that requires a response from way of adding security to objects that are
the receiver. This can synchronous or packaged with MIME. A messaging format for
asynchronous. exchanging digitally signed and/or encrypted
messages. S/MIME defines a data encapsulation
RosettaNet
format for the provision of a number of security
A business protocol that allows buyers, sellers,
services that include data integrity,
aggregators, and intermediaries to conduct
confidentiality, and authentication. S/MIME is
transactions over the Internet. RosettaNet
designed for messaging clients delivering
transactions involve the exchange of documents,
security services to distributed messaging
most of which correspond to hardcopy
applications. S/MIME (RFC 2311) is based on the
documents traditionally used in business. These
MIME standard (RFC 1521). The following are
documents are simple text files, but they have a
the file types for S/MIME messages when saved
well-defined structure and contents due to the
to disk: p7c, p7m, p7s, p10. See also MIME.
use of RosettaNet PIPs (Partner Interface
Processes). SMTP
Simple Mail Transport Protocol. A host-to-host
RV
mail transport protocol for email. As it is a
TIBCO Rendezvous protocol. A distributed
server-to-server protocol, other protocols such as
TIBCO messaging protocol middleware product.
IMAP, POP, and POP3 are used to retrieve the
email from the host’s mail server. SMTP is the
standard for servers that move email over the
Internet.
S
SOAP
schema Simple Object Access Protocol. An XML-based
See XML schema. business protocol for exchanging information in
a decentralized, distributed environment.

TIBCO HL7 Integration Server User’s Guide


240
| Glossary

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

TIBCO HL7 Integration Server User’s Guide


Glossary 241
|

interoperability among these groups by conversion, and message storing and


providing companies visibility to a wide range forwarding.
of information and resources.
VPN
unparsed Virtual Private Network. A network that is
For XML, an XML document in the form of a configured within a public network. For years,
giant string or byte array. TIBCO common carriers have built VPNs that appear as
IntegrationManager components, unless they private national or international networks to the
have special support for parsing XML, can customer, but physically share backbone trunks
utilize XML only as a string byte array. See also with other customers. VPNs enjoy the security of
parsed. a private network via access control and
encryption, while taking advantage of the
untyped
economies of scale and built-in management
A document that does not use a schema. The
facilities of large public networks.
in-memory representation of 'untyped' data is an
array of name->value pairs. For XML, it is an
array of name->(string or element) pairs, and
character data is represented by some 'special'
name, such as _CDATA. See also type-aware. X
URI XDR
Uniform Resource Identifier. A resource XML Data Reduced. An XML schema language
identifier that describes a location (URL) or from Microsoft. XDR supports data typing and
name (URN) for identifying an abstract or XML namespaces. XDR is part of Microsoft’s
physical resource. BizTalk. ".xdr" is the suffix of an XDR schema
document. An XDR file defines the structure and
URL
elements in a related XML file.
Uniform Resource Locator. A resource identifier
that describes its target by giving a pathway for XML
retrieving it. A URL may include a protocol, a eXtensible Markup Language. A standardized
host computer, and how to find the target document formatting language that provides a
resource on that computer. set of standards for document syntax while
allowing developers, organizations, and
URN
communities to define their own vocabularies.
Uniform Resource Number. A resource identifier
XML is a standard for passing data between
that uses a naming scheme to identify resources.
Internet applications. XML lets users label
information using custom tags that describe the
structure and meaning of a file’s content. XML
documents contain data in the form of tag/value
V pairs. XML gives much more control than HTML
over collecting, searching, combining,
VAN
formatting, and delivering content to different
Value-added network. A communications
audiences for different purposes. XML is a
network in an EDI setting that provides services
standard for passing data between Internet
beyond normal transmission, such as automatic
applications. XML documents contain data in the
error detection and correction, protocol
form of tag/value pairs. See also

TIBCO HL7 Integration Server User’s Guide


242
| Glossary

www.extensibility.com for information on XSL


TIBCO XML products. Extensible Style Language. A stylesheet
language for XML. XSL uses template rules that
XML schema
are written using XML to transform documents
The definition of the content in an XML
into formatting objects, which are then presented
document. Some features include: Data typing
on screen, in print, or in other media.
enables defining data by type (character, integer,
etc.); Schema reuse, or schema inheritance, lets XSLT
tags referenced in one schema be used in other Extensible Stylesheet Language
schemas; Namespaces enables multiple schemas Transformations. A language for transforming
to be combined into one; Global attributes assign XML documents into other XML documents.
properties to all elements; Associating Java XSLT is designed for use as part of XSL. In
classes adds processing to the data; Authoring addition to XSLT, XSL includes an XML
information adds improved documentation for vocabulary for specifying formatting. XSL
schema designers. specifies the styling of an XML document by
using XSLT to describe how the document is
An XML schema is an XML element information
transformed into another XML document that
item which, along with its descendants, satisfies
uses the formatting vocabulary.
all the constraints on schemas in a specification.
An XML schema establishes a set of rules for
constraining the structure and articulating the
information set of XML document instances. See
www.extensibility.com for information on
TIBCO’s XML Authority®, the premier solution
for the creation, conversion, and management of
DTDs and XML schemas.
Unlike a DTD, an XML schema is written in
XML. Although XML schemas are more verbose
than DTDs, they can be created with any XML
tool.
XSD
XML Schema Definition. ".xsd" is the suffix of an
XSD schema document. An XSD file defines the
structure and elements in a related XML file.
XSDL
XML Schema Definition Language. An XML
schema dialect. Expressed in XML document
syntax, XSDL supports an extensible data typing
system, inheritance, and namespaces. See
www.extensibility.com for information on
TIBCO’s XML Authority®, the premier solution
for the creation, conversion, and management of
documents in XML schema dialects, including
XSDL.

TIBCO HL7 Integration Server User’s Guide


TIBCO Software Inc. End User License Agreement 243
|

TIBCO Software Inc. End User License Agreement


READ THIS END USER LICENSE AGREEMENT CAREFULLY. BY resolution during TIBCO's published support hours corresponding to
DOWNLOADING OR INSTALLING THE SOFTWARE, YOU AGREE the level of Support fees paid.
TO BE BOUND BY THIS AGREEMENT. IF YOU DO NOT AGREE TO
THESE TERMS, DO NOT DOWNLOAD OR INSTALL THE Upon notice from a contact of a Software problem which can be
SOFTWARE AND RETURN IT TO THE VENDOR FROM WHICH IT reproduced at a TIBCO support facility or via remote access to
WAS PURCHASED. RETURNS BY THE ORIGINAL PURCHASER Customer's facility, TIBCO shall use reasonable efforts to correct or
WITHIN THIRTY (30) DAYS OF THE PURCHASE DATE WILL circumvent the problem according to its published support objectives.
RECEIVE A FULL REFUND. TIBCO reserves the right to make changes only to the most currently
available version. TIBCO will use reasonable efforts to support the
Upon your acceptance as indicated above, the following shall govern previously released version of the Software for a maximum of six
your use of the Software except to the extent all or any portion of the months.
Software (a) is subject to a separate written agreement, (b) includes a
separate "click-on" license agreement as part of the download or TIBCO shall have no obligation to support the Software (i) for use on
installation process, or (c) is provided by a third party under the terms any computer system running other than the operating system
set forth in an Addenda at the end of this Agreement, in which case software for which the Software is approved (as set forth in the
the terms of such addenda shall control over inconsistent terms with Software documentation) and licensed hereunder, or (ii) if Customer
regard to such portion(s). has modified or authorized a third party to modify the Software.
TIBCO shall have no obligation to modify any version of the Software
License Grant. The Software is the property of TIBCO or its licensors to run with any new versions of any operating system, or any other
and is protected by copyright and other laws. While TIBCO continues third party software or hardware. If Customer purchases Support for
to own the Software, TIBCO hereby grants to Customer a limited, any Software, Customer must purchase the same level of Support for
non-transferable, non-exclusive, license to use the number of all copies of the Software for which it is licensed.
Permitted Instances set forth in the Ordering Document, in
machine-readable, object code form and solely for Customer's internal Support may be extended for one-year periods on the anniversary of
business use. each Purchase Date at the standard amounts set forth in its price list,
for as long as TIBCO offers Support. Customer may reinstate lapsed
Restrictions. Customer agrees not to (a) make more copies than the support for any then currently supported Software by paying all
number of Permitted Instances plus a reasonable number of backups; Support fees in arrears and any applicable reinstatement fee.
(b) provide access to the Software to anyone other than employees, Upgrades, patches, enhancements, bug fixes, new versions and/or
contractors, or consultants of Customer; (c) sublicense, transfer, new releases of the Software provided from time to time under
assign, distribute to any third party, pledge, lease, rent, or Support shall be used only as replacements to existing Permitted
commercially share the Software or any of Customer's rights under Instances, and shall not be deemed to increase that number, and use
this Agreement (for the purposes of the foregoing a change in control thereof shall be governed by the terms of this Agreement, except for
of Licensee is deemed to be an assignment); (d) use the Software for the first paragraph of the Limited Warranty and any right of return or
purposes of providing a service bureau, including, without limitation, refund.
providing third-party hosting, or third-party application integration or
application service provider-type services, or any similar services; (e) Consulting Services. Customer may request additional services
use the Software in connection with ultrahazardous activities, or any ("Services") either in an Ordering Document, or by a separate
activity for which failure of the Software might result in death or serious mutually executed work order, statement of work or other
bodily injury to Customer or a third party; or (f) directly or indirectly, in work-request document incorporating this Agreement (each, a "Work
whole or in part, modify, translate, reverse engineer, decrypt, Order"). Unless otherwise expressly agreed to in a Work Order, all
decompile, disassemble, make error corrections to, create derivative Services and any work product therefrom shall be (a) performed on a
works based on, or otherwise attempt to discover the source code or time and materials basis, plus meals, lodging, travel, and other
underlying ideas or algorithms of the Software. expenses reasonably incurred in connection therewith, (b) deemed
accepted upon delivery, and (c) exclusively owned by TIBCO (except
Beta and Evaluation Licenses. Notwithstanding the foregoing, if the for confidential information of Customer identified to TIBCO in the
Software is being provided for demonstration, beta testing, or Ordering Document), including all right, title and intellectual property
evaluation purposes, then Customer agrees (a) to use the Software or other right or interest therein. Each Work Order is intended to
solely for such purposes, (b) that the Software will not be used or constitute an independent and distinct agreement of the parties,
deployed in a production environment, and (c) that such use shall notwithstanding that each shall be construed to incorporate all
automatically terminate upon the earlier of thirty days from the date applicable provisions of this Agreement. Specific to TIBCO training
Customer receives the right to install the Software, or Customer's services, additional information regarding courses, registration,
receipt of notice of termination from TIBCO. restrictions or limitation can be found at TIBCO's website at
http://www.tibco.com/services/education under Education Programs.
Technical Support. Provided Customer has paid applicable support Fees for Services shall be due and payable in United States dollars
fees (not included with Software fees unless separately listed), TIBCO net 30 from the date of TIBCO's invoice.
shall provide support for generally available TIBCO Software on an
annual basis commencing on the Purchase Date, as follows Limited Warranty. If Customer obtained the Software directly from
("Support"): Customer shall designate at TIBCO's support website TIBCO, then TIBCO warrants that for a period of thirty (30) days from
https://support.tibco.com/eSupport/newuser.html, the number of the Purchase Date: (i) the media on which the Software is furnished
technical support contacts permitted under the level of Support will be free of defects in materials and workmanship under normal
purchased (contacts are changeable upon 48-hours prior written use; and (ii) the Software will substantially conform to its published
notice to TIBCO). Each contact may contact TIBCO for problem specifications. This limited warranty extends only to the original
Customer hereunder. Customer's sole and exclusive remedy and the

TIBCO HL7 Integration Server User’s Guide


244
| TIBCO Software Inc. End User License Agreement
entire liability of TIBCO and its suppliers under this limited warranty Limitation of Liability. EXCEPT AS PROVIDED UNDER
will be, at TIBCO's option, repair, replacement, or refund of the INDEMNITY OR RESULTING FROM A BREACH OF
Software and applicable Support fees, in which event this Agreement CONFIDENTIALITY (THE "EXCLUDED MATTERS"), IN NO EVENT
shall terminate upon payment thereof. WILL EITHER PARTY BE LIABLE FOR ANY LOST DATA, LOST
REVENUE, LOST PROFITS, DAMAGE TO REPUTATION,
This warranty does not apply to any Software which (a) is licensed for BUSINESS INTERRUPTION, OR ANY OTHER INDIRECT,
beta, evaluation, testing or demonstration purposes for which TIBCO INCIDENTAL, CONSEQUENTIAL, SPECIAL, PUNITIVE,
does not receive a license fee, (b) has been altered or modified, EXEMPLARY OR ANY SIMILAR TYPE DAMAGES ARISING OUT OF
except by TIBCO, (c) has not been installed, operated, repaired, or THIS AGREEMENT, THE USE OR THE INABILITY TO USE THE
maintained in accordance with instructions supplied by TIBCO, (d) has SOFTWARE, OR THE PROVISION OF ANY SUPPORT OR
been subjected to abnormal physical or electrical stress, misuse, SERVICES, EVEN IF A PARTY HAS BEEN ADVISED OF THE
negligence, or accident, or (e) is used in violation of any other term of POSSIBILITY OF SUCH DAMAGES. EXCEPT FOR THE EXCLUDED
this Agreement. Customer agrees to pay TIBCO for any Support or MATTERS, IN NO EVENT SHALL A PARTY BE LIABLE TO THE
Services provided by TIBCO related to a breach of the foregoing on a OTHER, WHETHER IN CONTRACT, TORT (INCLUDING ACTIVE OR
time, materials, travel, lodging and other reasonable expenses basis. If PASSIVE NEGLIGENCE), BREACH OF WARRANTY, CLAIMS BY
Customer obtained the Software from a TIBCO reseller or distributor, THIRD PARTIES OR OTHERWISE, EXCEED THE PRICE PAID BY
the terms of any warranty shall be as provided by such reseller or CUSTOMER UNDER THE APPLICABLE ORDERING DOCUMENT.
distributor, and TIBCO provides Customer no warranty with respect to
such Software. THE FOREGOING LIMITATIONS SHALL APPLY EVEN IF THE
ABOVE-STATED REMEDY OR LIMITED WARRANTY FAILS OF ITS
EXCEPT AS SPECIFIED IN THIS LIMITED WARRANTY, THE ESSENTIAL PURPOSE. BECAUSE SOME STATES OR
SOFTWARE, SUPPORT AND SERVICES ARE PROVIDED "AS IS", JURISDICTIONS DO NOT ALLOW LIMITATION OR EXCLUSION OF
ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS, CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE
AND WARRANTIES INCLUDING, WITHOUT LIMITATION, ANY LIMITATION MAY NOT APPLY TO CUSTOMER.
IMPLIED WARRANTY OR CONDITION OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, Confidentiality. "Confidential Information" means the terms of this
SATISFACTORY QUALITY OR ARISING FROM A COURSE OF Agreement; all information marked by the disclosing party as
DEALING, USAGE, OR TRADE PRACTICE, ARE HEREBY proprietary or confidential; any provided software, related
EXCLUDED TO THE EXTENT ALLOWED BY APPLICABLE LAW. NO documentation or related performance test results derived by
WARRANTY IS MADE REGARDING THE RESULTS OF ANY Licensee; and any methods, concepts or processes utilized in
SOFTWARE, SUPPORT OR SERVICES OR THAT THE SOFTWARE provided software or related documentation. Confidential Information
WILL OPERATE WITHOUT ERRORS, PROBLEMS OR shall remain the sole property of the disclosing party and shall not be
INTERRUPTIONS, OR THAT ERRORS OR BUGS IN THE disclosed to any non-Authorized User without the prior written consent
SOFTWARE WILL BE CORRECTED, OR THAT THE SOFTWARE'S of the disclosing party. If Confidential Information is communicated
FUNCTIONALITY OR SERVICES WILL MEET CUSTOMER'S orally, such communication shall be confirmed as "Confidential" in
REQUIREMENTS. NO TIBCO DEALER, DISTRIBUTOR, AGENT OR writing within thirty days of such disclosure. The parties agree to
EMPLOYEE IS AUTHORIZED TO MAKE ANY MODIFICATIONS, protect the Confidential Information of the other in the same manner it
EXTENSIONS OR ADDITIONS TO THIS WARRANTY. protects the confidentiality of similar information and data of its own
(and at all times exercising at least a reasonable degree of care).
Indemnity. If Customer obtained the Software from TIBCO directly, Except with respect to the Software, items will not be deemed
then TIBCO shall indemnify Licensee from and against any final Confidential Information if (i) available to the public other than by a
judgment by a court of competent jurisdiction, including reasonable breach of an agreement with TIBCO, (ii) rightfully received from a third
attorneys' fees, that the unmodified TIBCO Software infringes any party not in breach of any obligation of confidentiality, (iii)
patent issued by the United States, Canada, Australia, Japan, or any independently developed by one party without use of the Confidential
member of the European Union, or any copyright, or any trade secret Information of the other; (iv) known to the recipient at the time of
of a third party; provided that TIBCO is promptly notified in writing of disclosure (other than under a separate confidentiality obligation); or
such claim, TIBCO has the exclusive right to control such defense (v) produced in compliance with applicable law or court order,
and/or settlement, and Licensee shall provide reasonable assistance provided the other party is given reasonable notice of the same. Both
(at TIBCO's expense) in the defense thereof. In no event shall parties agree to indemnify the other for any damages the other may
Licensee settle any claim, action or proceeding without TIBCO's prior sustain resulting from their unauthorized use and/or disclosure of the
written approval. In the event of any such claim, litigation or threat other's Confidential Information. Such damages shall include
thereof, TIBCO, at its sole option and expense, shall (a) procure for reasonable expenses incurred in seeking both legal and equitable
Licensee the right to continue to use the TIBCO Software or (b) remedies. To the extent required by law, at Customer's request,
replace or modify the TIBCO Software with functionally equivalent TIBCO shall provide Customer with the interface information needed
software. If such settlement or modification is not commercially to achieve interoperability between the Software and another
reasonable (in the reasonable opinion of TIBCO), TIBCO may cancel independently created program, on payment of TIBCO's applicable
this Agreement upon sixty days prior written notice to Licensee, and fee. Customer agrees to observe obligations of confidentiality with
refund to Licensee the unamortized portion of the license fees paid to respect to such information.
TIBCO by Licensee based on a five-year straight-line depreciation.
This Section states the entire liability of TIBCO with respect to the Export. Software, including technical data, is subject to U.S. export
infringement of any Intellectual Property rights, and Licensee hereby control laws, including the U.S. Export Administration Act and its
expressly waives any other liabilities or obligations of TIBCO with associated regulations, and may be subject to export or import
respect thereto. The foregoing indemnity shall not apply to the extent regulations in other countries. Customer agrees to comply strictly with
any infringement could have been avoided by use of the then-current all such regulations and agrees to obtain all necessary licenses to
release. export, re-export, or import Software.

TIBCO HL7 Integration Server User’s Guide


TIBCO Software Inc. End User License Agreement 245
|
Government Use. If the Customer is an agency, department, or other "Limited Warranty" all fees paid under or in connection with this
entity of the United States Government ("Government"), the use, Agreement are non-refundable and no right of set-off exists. All
duplication, reproduction, release, modification, disclosure or transfer payments of fees due shall be made in U.S. dollars, net 30 from
of the Software, or any related documentation of any kind, including Purchase Date, or, for any other amounts coming due hereafter, net
technical data or manuals, is restricted in accordance with Federal 30 from TIBCO's invoice. A service charge of one and one-half
Acquisition Regulation ("FAR") 12.212 for civilian agencies and percent per month will be applied to all invoices that are not paid on
Defense Federal Acquisition Regulation Supplement ("DFARS") time. Licensee agrees to pay all sales, use, value-added, withholding,
227.7202 for military agencies. The Software is commercial computer excise and any other similar taxes or government charges, exclusive
software and commercial computer software documentation. Use of of TIBCO's income taxes. No delay in the performance of any
the Software and related documentation by the Government is further obligation by either party, excepting all obligations to make payment,
restricted in accordance with the terms of this Agreement, and any shall constitute a breach of this Agreement to the extent caused by
modification thereto. force majeure. Customer hereby grants TIBCO and its independent
auditors the right to audit Customer's compliance with this Agreement.
Orders. An Ordering Document shall be deemed accepted only by If any portion of this Agreement is found to be void or unenforceable,
issuance of a TIBCO invoice and solely for purposes of administrative the remaining provisions shall remain in full force and effect. This
convenience. None of the terms of the Ordering Document (other than Agreement shall be governed by and construed in accordance with
the Software product name, number of Permitted Instances, level of the laws of the State of California, United States of America, as if
Support, description of Services, and fees due in connection performed wholly within the state and without giving effect to the
therewith) shall apply for any reason or purpose whatsoever, principles of conflict of law. The state and/or federal courts in San
regardless of any statement on any Ordering Document to the Francisco, California, USA, shall have exclusive jurisdiction of any
contrary, unless countersigned by an officer of TIBCO. This action arising out of or relating to this Agreement. The United Nations
Agreement constitutes the entire agreement between the parties with Convention on Contracts for the International Sale of Goods is
respect to the use of the Software, Support and Services, and excluded from application hereto. If any portion hereof is found to be
supersedes all proposals, oral or written, and all other representations, void or unenforceable, the remaining provisions of this Agreement
statements, negotiations and undertakings relating to the subject shall remain in full force and effect.
matter hereof. All orders of Software, Support or Services by
Customer from TIBCO shall be deemed to occur under the terms of Definitions. In connection with this Agreement, the following
this Agreement (with or without reference to this Agreement), unless capitalized terms shall have the following meaning: "Agreement"
expressly superseded by a signed written Agreement between the means this End User License Agreement; "Connection" for the TIBCO
parties. Software shall be delivered electronically (unless physical Software product TIBCO Enterprise for JMS - Full Edition means a
shipment is specifically set forth in an Ordering Document), and such TIBCO Enterprise for JMS client connection to the TIBCO Enterprise
delivery shall occur upon e-mail of download information to Licensee for JMS server for the purpose of sending or receiving messages and
at the email address set forth in the Ordering Document or as for the purposes of the TIBCO Software products TIBCO
otherwise provided by Customer to TIBCO. Physical deliveries (if SmartSockets and TIBCO SmartMQ software products, a Connection
applicable) of Software and documentation which typically means any network protocol link established with such TIBCO
accompanies the Software on delivery shall be on CD-ROM, FOB Software (directly or indirectly) to any other entity, including but not
TIBCO, and delivery shall occur by depositing the CD-ROM with limited to software, firmware or hardware; "Customer" means the
TIBCO's overnight carrier (at no charge to Customer). original purchaser or licensee of the Software and any permitted
successors and assigns; "Developer" means one user/developer of a
Term and Termination. Support or Services may be terminated: (a) TIBCO Software product for use in Development; "Development"
by either party upon a default of the other, such default remaining means used for software development purposes only; "Enterprise"
uncured for fifteen days from written notice from the non-defaulting means an unlimited number of Permitted Instances for a period of one
party; (b) upon the filing for bankruptcy or insolvency of the other year from the Purchase Date (unless otherwise set forth in the
party, (c) by either party upon prior written notice at least sixty days Ordering Document), at which time existing licenses convert to
prior to the end of any annual Maintenance period; or (d) by Licensee perpetual and Customer may not thereafter deploy additional
(for Services), upon ten days prior written notice. Termination of Permitted Instances, and in any event, shall (during the one-year
Support or Services shall not terminate this Agreement. Customer unlimited deployment period) exclude any entity which acquires, is
may terminate this Agreement in its entirety at any time by destroying acquired by, merged into, or otherwise combined with Customer.
all copies of the Software. Upon termination of this Agreement in its Customer hereby agrees to provide TIBCO with notice of the number
entirety, for any reason, Customer must cease using and return or of Permitted Instances deployed at the end of such one-year period
destroy all copies of the Software. Customer's obligation to pay within thirty days thereafter; "Fab" means unlimited use for shop-floor
accrued charges and any fees due as of the date of termination, as manufacturing applications at a Site; "Workstation" shall mean a
well as the sections entitled "Confidentiality", "Limited Warranty" and single end-user computer that is generally intended to be accessed by
"Limitation of Liability" shall survive any such termination. one person at a time; "Ordering Document" means any purchase
order or similar document or agreement requesting Software, Support
Authority. You hereby represent and warrant that you have full power or Services; "Permitted Instance(s)" means the number of copies of
and authority to accept the terms of this Agreement on behalf of Software running on a Server Instance, Workstation, User, or
Customer, and that Customer agrees to be bound by this Agreement. Development basis, on a designated Platform, as set forth in an
Ordering Document, including, without limitation, Enterprise, Site and
General. Fees on the Ordering Document (all to be paid on the latter Fab licensing; "Platform" means the operating system set forth in an
of thirty days from Invoice by TIBCO or the date set forth in the Ordering Document; "Purchase Date" means the date the Ordering
Ordering Document) do not include sales, use, withholding, Document is accepted by TIBCO; "Server Instance" means a
value-added or similar taxes, and Customer agrees to pay the same, computer with 1 CPU (unless otherwise set forth in the Ordering
excluding therefrom taxes related to TIBCO's income and corporate Document) performing common services for multiple machines; "Site"
franchise tax. Customer agrees to pay all reasonable costs incurred means an unlimited number of Permitted Instances at a specific
(including reasonable attorneys' fees) in collecting past due amounts physical address set forth in the Ordering Document (or, in the
under this Agreement. Except as set forth in the Section entitled absence of any address, at Customer's corporate headquarters);

TIBCO HL7 Integration Server User’s Guide


246
| TIBCO Software Inc. End User License Agreement
"Software" means the software products listed in an Ordering
Document (except as provided in the second paragraph hereof), in
whole and in part, along with their associated documentation; "TIBCO"
means TIBCO Software Inc.; and "Named User" means the number of
named users with access to the Software.

Special Product Provisions. TIBCO BusinessPartner: Customer


may sublicense to third parties ("Partners") up to the total Number of
Copies of TIBCO BusinessPartner, provided that for every such
sublicense, the Number of Copies Customer is licensed to use shall
be reduced by the same number, and provided further that prior to
delivery of TIBCO BusinessPartner to a Partner, such Partner agrees
in writing (a) to be bound by terms and conditions at least as
protective of TIBCO as the terms of this Agreement, (b) that TIBCO
BusinessPartner be used solely to communicate with Customer's
implementation of TIBCO BusinessConnect, and (c) for such Partner
to direct all technical support and Maintenance questions directly to
Customer. Customer agrees to keep records of the Partners to which it
distributes TIBCO BusinessPartner, and to provide TIBCO the names
thereof (with an address and contact name) within sixty days of the
end of each quarter. Third Party Software: Use of any other third-party
software identified by its company and/or product name or otherwise
designated in Licensee's Ordering Document (collectively "Third Party
Software") is subject solely to the terms and conditions of the
click-wrap or shrink-wrap license agreement included with the Third
Party Software products, and for which TIBCO shall be an intended
third-party beneficiary of same. TIBCO shall have no obligation
whatsoever in connection with the Third Party Software (including,
without limitation, any obligation to provide maintenance or support)
and the provision of Third Party Software is accomplished solely as an
accommodation and in lieu of Customer purchasing a license to Third
Party Software directly from the third party vendor.
Embedded/Bundled Products: Some TIBCO Software embeds or
bundles other TIBCO Software (e.g., TIBCO InConcert bundles
TIBCO Rendezvous). Use of such embedded or bundled TIBCO
Software is solely to enable the functionality of the TIBCO Software
licensed on the Cover Page, and may not be used or accessed by any
other TIBCO Software, or for any other purpose. Open Source
Software: If Licensee uses Open Source software in conjunction with
the TIBCO Software, Licensee must ensure that its use does not (i)
create, or purport to create, obligations of use with respect to the
TIBCO Software, or (ii) grant, or purport to grant, to any third party any
rights to or immunities under TIBCO's intellectual property or
proprietary rights in the TIBCO Software. You also may not combine
the TIBCO Software with programs licensed under the GNU General
Public License ("GPL") in any manner that could cause, or could be
interpreted or asserted to cause, the TIBCO Software or any
modifications thereto to become subject to the terms of the GPL.

Copyright (c) 1994-2003 TIBCO Software Inc. ALL RIGHTS


RESERVED.

TIBCO HL7 Integration Server User’s Guide


| 247

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

TIBCO HL7 Integration Server User’s Guide


248
| Index

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

TIBCO HL7 Integration Server User’s Guide


Index 249
|
POP, POP3 238 TIBCO Designer
private key 238 custom functions 91
provider and payor roles when sending an EDI-X12 HL7 custom functions 91
275 HIPAA message 217 HL7 Definition resource 53
public key 238 HL7 features 51
public key cryptography 239 LLP Connection resource 55
public key infrastructure cryptography 238 Shared Resources palette 52
TIBCO Designer activities
Deliver HL7 Message Get SyncResponse 83
Deliver Synchronous Response or ACK 89
R Handle HL7 Message 85
HL7 Parser 59
request/response 239 HL7 Renderer 61
RV 239 LLP Receiver with ACK 68
LLP Request Response 65
LLP Response 71
Parse Header and Create ACK 63
S Wait For Async Response 87
TIBCO Designer GUI 48
S/MIME 239 TIBCO HL7 Integration Server 9
schema 239 TIBCO HL7 Integration Server — design-time 22
server 239 TIBCO HL7 Integration Server — run-time 22
setup requirements 14 TIBCO HL7 Integration Server components 22
SGML 239 using 25
signature 239 TIBCO HL7 Message Designer
SMTP 239 additional features 34
SQL 240 TIBCO HL7 Message Designer GUI 28
SSL 240 TIBCO HL7 Message Designer New Project Wizard 29
support, contacting xi TIBCO HL7/HIPAA solutions 9
symmetric key cryptography 240 tips and tricks 210
synchronous transaction type 240 transform/transformation function 240
tutorial
asynchronous messaging in TIBCO Designer 161
batch messages in TIBCO Designer 168
T getting started with TIBCO HL7 Message Designer
and TIBCO Designer 112
TCP/IP 240 HL7 Parser and HL7 Renderer activities in TIBCO
technical support xi Designer 146
template HL7 V3 messaging in TIBCO Designer 171
dispatcher 96 inbound EDI-X12 HIPAA 275/HL7 messages in
TIBCO BusinessConnect EDI Protocol HIPAA TIBCO Designer 177
Edition 10 LLP activities in TIBCO Designer 150
Patient Admission scenario in TIBCO Designer 182
synchronous messaging in TIBCO Designer 155
type-aware 240

TIBCO HL7 Integration Server User’s Guide


250
| Index

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

TIBCO HL7 Integration Server User’s Guide

You might also like