What does HL7Spy do, and why do you need it?

HL7Spy is a tool for interface developers and maintainers. It will substantially reduce the time it takes you to create and debug HL7 2.x interfaces by providing you with a statistical analysis of the segments, fields, component, and sub-components within a set of HL7 2.x transactions (using 1,000,000 messages for analysis not uncommon). HL7Spy will provide you with critical information about the the message exchange and help you find values that fall outside a given interface specification. Here some examples of the types of questions HL7Spy can answer about a set of HL7 2.x transactions:

  • “What are the values being transmitted for Order Status (ORC-5), and what are the distributions for each value?”
  • “How large is the largest message in the stream?”
  • “Are there any ORM messages where ORC-3 is null?”
  • “How often is patient sex (PID-8) filled in ADT^A08 messages?”
  • “What are the maximum and minimum lengths of the patient identifier (PID-3.1)?”
  • “Are there any patient encounters where the report status (OBR-25) incorrectly transitioned from ‘Final’ to ‘Preliminary’?”

HL7Spy is not just an analysis tool. It can also edit, send, receive, query, transform, pull messages from a database, an SFTP, or FTPS server, compare 2 messages, bulk-compare 2 very large message streams, graph message throughput, and it even lets you write custom C# functions that let you achieve almost any goal you could have with HL7 message data. And its fast. Really fast!

Watch HL7Spy find the distribution of all values for MSH-9 for 100,000 messages in only 0.8 secs!

Click here to see more HL7Spy capabilities

New! – HL7Spy v24.1 Beta just released. Download your trial copy here



HL7Spy is the fastest, most full-featured HL7 tool on the market.

If you really want to get a taste for it, we recommend grabbing the trial version and taking it for a test drive. However, if you just want an idea of what it can do, here is a sampling of some of the major features:

  • Load – quickly load files, from 1KB to 100MB and more. HL7Spy will load 100,000 messages in less than a couple of seconds! Additionally, HL7Spy will auto detect most file types, and allow you to specify the format of particularly unusual files. Zipped files can also be opened directly.
  • View – see messages in an easy-to-read layout, with field names and values decoded according to the HL7 standard. There are also many additional viewing features, such as normalizing encoding characters for better readability, highlighting fields by name, and viewing only relevant fields for each message.
  • Edit – edit message directly, or use the Segment Editor to deal with field locations and escape characters automatically. The editor includes all the features you’ve come to expect, such as full Undo and Redo.
  • Hex Editor – view/edit the raw HL7 message bytes. Search for invalid characters within the message stream.
  • Search – build complex queries against whole messages or particular fields.
  • Sort – sort large message collections based on the fields important to you.
  • Analyze – generate statistics showing the unique values in each field, and quickly drill down to the messages with interesting content.
  • Report – generate, save and print reports on large groups of messages.
  • Send – send messages over the network using MLLP. View ACKs and/or NACKs, change message character encoding, and message framing bytes.
  • Receive – receive messages on an unlimited number of ports. Search, view, and analyze messages as they are being received.
  • Save – save all or some of the messages out to new files, with whichever file format and encoding you need. Advanced save functions include the ability to merge files.
  • Detect Character Encoding – character encodings are detected automatically, and multi-byte encodings (such as Japanese) are fully supported.
  • Search HL7 Standard – search the HL7 standard, viewing segment, field and component names, and see any tables associated with a field.
  • Validation – use C# to write sophisticated validation routines, well beyond the simple table validation available in other tools. For example, validate the proper exam states transitions, or verify patient names are not modified during an ORM, or ORU update. Anything is possible!
  • Transformations – modify messages using HL7 defined classes and full intellisense. For example: pid.PatientName_05=”SMITH^JOHN^D” sets PID-5 within the message to SMITH^JOHN^D.
  • Bulk Compare – transitioning to a new integration engine and need to compare the outputs of 2 different engines? HL7Spy makes it easy to identify differences between messages produced by 2 different engines.




Purchase HL7Spy v24 Online

  • Professional
  • $425
  • Single User Hardware License Key *
  • Tied to the user’s computer **
  • Add To Cart
  • Enterprise
  • $179 /user /year
  • Windows NT Domain License Key ***
  • Minimum of 10 licenses
  • Contact us at support@HL7Spy.com

* HL7Spy is licensed on a per user / per machine basis. The total number of licenses required is the greater number of: (1) the number of users accessing the software, and (2) the number of machines (physical, or virtual) HL7Spy is installed on.

** Professional licenses are tied to the user’s email address and the Hardware ID of the computer. Licenses are NOT user transferable unless the transfer is initiated within 1 year of the license activation date. A single Professional license must not be shared between multiple users.

*** Enterprise licenses are tied to the customer’s Window NT Domain. Users must be physically located in the same country (email us if you require a license for multiple countries). This in not a concurrent license. The total number of license required is based on the total number of users that have access to the product in a 30 period.