Please enable JavaScript to view this site.


The CORE HL7 Simulator


Click to Zoom

CORE HL7 Simulator

Verify a HL7 Listener is Running!

Just click Ping the HL7 Listener


Stress Test Your HL7 TCP/IP Listener!

Deliver up to 250,000 messages per simulation at high speed to a waiting HL7 Listener


You've downloaded and installed your CORE HL7 TCP/IP Listener (see getting started). You've created some listeners (see listener profiles) and they appear to be working correctly, but how will you know unless you can get a HL7 client application to send some HL7 data to your listener?


For this we provide you the FREE CORE HL7 Sender Simulator, a fantastic little utility for testing any HL7 compliant TCP/IP Listener software.



Click to Enlarge

Send to Remote Computer

Click to Enlarge

Send to This Computer


Section 1. Listener Connection Information

In section 1 you begin to set up your simulation by telling the software the destination you want to send HL7 to. Check This Computer if the HL7 Listener is running on the same computer / server as the simulator OR check A Remote Computer if you'll be sending HL7 messages out over a network connection.


Enter the Port # the target listener software is listening on. The Port # can be any whole integer value between 1 and 65,535.


If you've checked A Remote Computer enter the TCP/IP Address (IPV4) of that remote system.


Wait for the HL7 Acknowledgement tells the simulation how long it should wait after delivering a HL7 message for the listener to return a valid HL7 ACK.


Checking Optimize HL7 Messages When Sending causes the Simulator to do some basic HL7 Standard optimizations (if needed) on the HL7 messages being sent. One example of an optimization is trimming empty trailing fields from each segment in the HL7 message if they exist. Uncheck the box and the simulator will deliver the "Raw" HL7 message exactly as it is loaded from the HL7 File (see Section 4 below).


If you've entered valid information in Section 1 you can click Ping the HL7 Listener to verify that the destination HL7 listener is online and waiting.


Section 2. TCP/IP Message Envelope


When exchanging HL7 messages over TCP/IP the data is encapsulated in the TCP/IP "Envelope" characters which you will define in this section. When the program loads these values are set to their ANSI HL7 default values and are displayed in Hexadecimal notation (as they are unprintable characters). The "Envelope" consists of the BOM (Beginning of Message), the EOM (End of Message) and the SOM (HL7 Segment Delimiter).


If you change these values from their ANSI default values (click to select different characters) you can reset them back to their default values by clicking Reset Envelope to ANSI Default Values which becomes enabled if these values are changed.

Click to Enlarge

Special Instructions Section

Click to Enlarge


Section 3. Simulation Special Instructions


How HL7 Messages Are Sent. According to the world HL7 governing bodies ( the "correct" way for any HL7 compliant TCP/IP sending software to deliver HL7 messages is to:

1.Open a TCP/IP Connection to the waiting Listener.

2.Deliver the HL7 message.

3.IF an Acknowledgement is expected, wait an appropriate amount of time for the Listener to return an ACK.

4.Close the TCP/IP Connection.

5.Lather, Rinse, and Repeat. IE, iterate through steps 1-4 as needed to deliver your messages.

OR alternatively if you have a known batch of HL7 messages to send you would:

1.Open a TCP/IP Connection to the waiting Listener.

2.Deliver a HL7 Message.

3.Wait for the ACK (if expected).

4.Repeat steps 2 and 3 until you have delivered every HL7 messages in your batch.

5.Close the TCP/IP connection.


You can check or uncheck Keep the Connection Open While Sending to implement either of these 2 sending methods.


Choosing a Delay between each message value will cause the simulator to implement a wait after delivering each message (and receiving back the ACK) before delivery of the next message.


Repeat how many times. Use this selection to stress test your HL7 Listener. You can instruct the Simulator to repeat itself up to 500 times. This means that if you load a HL7 File (see Section 4) with 500 HL7 messages the Simulator would effectively perform 250,000 complete HL7 send operations!

Launching Your Simulation

Launching Your Simulation

Section 4. Run the Simulation


First you'll need some HL7 messages to send. Click  to open a HL7 data file. There is an example data file (Anonymous.hl7) in the installation folder of the CORE HL7 Simulator you can use if you like.


NOTE: If you open a very large HL7 File be aware that the CORE HL7 Simulator will only load the top 500 HL7 messages in the file for your simulation.


Click Save to save your simulator settings for reuse later.

Click Close to exit the simulator.


And Finally...Click Start to open the Run Simulation window and execute your simulation!


Click for Full Image

The Run Simulation Window


Running Your Simulation


Click Start to Execute.

Click Stop to halt. (Stop is only enabled while running).

Click Close to return to the main window.


The Results At a Glance


While executing the Live Scroll Port will display rolling events as they happen and in the Summary Area you will see the counters updating in real time as well. The simulation shown in the screenshot above is this: A HL7 File is loaded containing 102 HL7 messages to be delivered to a HL7 Listener on the same computer which is listening on port #3000. The simulation is configured to repeat 5 times so there will be a total of 510 individual HL7 send operations performed. So now let's look at the results in the Summary Area.


Messages Sent: 510. These messages were successfully delivered to the listener.

Failed: 0. No send operation failed.

Pass: 5of5. The current (or final if the simulation fully completed) pass (repeat) being executed.

Connect Errors: 0. During the simulation there were no errors opening a TCP/IP connection to the listener.

ACKS Rcvd: 510. All 510 messages delivered received a POSITIVE HL7 Acknowledgement (Type AA or CA).

NAKS: 0. There were no NEGATIVE Acknowledgements returned (Type <> AA or CA).

No ACK: 0. There was no message delivered which did not receive some type of ACK from the listener.

Send To: Port#3000 on this computer. Indicates the destination connection information.

Started: 19:44:06.014. A time-stamp down to the millisecond of when the Start button was clicked to execute the simulation.

Duration: 8.73 seconds. How long it took the entire simulation to run it's course. Simple math will tell you that in the simulation shown above more than 58 messages per second were delivered and acknowledged.







Keyboard Navigation

F7 for caret browsing
Hold ALT and press letter

This Info: ALT+q
Nav Header: ALT+n
Page Header: ALT+h
Topic Header: ALT+t
Topic Body: ALT+b
Exit Menu/Up: ESC