HL7 Comm Overview

The most common usages for HL7 Comm are probably to send data from a file into a TCP/IP MLLP server, or to listen on a port and receive data to save in a file. Many more possiblities exist and the sample configuration templates list all the common uses plus some more advanced features. That may be the best place to get some idea how to use HL7 Comm, but we'll discuss some of those modes here.

First, it's good to know the four types of components that are plugged into a running HL7 Comm. These are basically of three general types, but two are similar enough that components can be shared. The three component types are inbound clients, outbound clients and logic agents.

Each running HL7 Comm must have at least one inbound client configured, and one logic agent. It may also have one or more outbound clients configured for data and a special outbound client for handling log messages. Any of the outbound clients can be used for logging, however just about everybody will want log messages to be written to a file as opposed to over a network socket. This table sums up the total options for configuring a typical HL7 Comm.

Component Type Number allowed Examples
Inbound clients Inbound client 1 or more HL7 TCP/IP Listener, File in by directory
Outbound clients Outbound client 0 or more File out by time, HL7 TCP/IP Client
Logic agent Logic agent Exactly 1 Passthrough logic, Beanshell logic
Log client Outbound client 0 or 1 File out by time, File out

As you can see, pretty much any combination of file and network connection is possible with this arrangment. Hopefully I'll get the opportunity to add more protocols in the future, like FTP or JMS.

Now, from the table, you can see that having multple inbound clients is possible as is having multiple outbound clients. Using this feature along with multiple HL7 Comms, really lets you perform just about any common integration task. There are some implications so reading the Multiple Clients document is recommended if you wish to pursue this.