NEW - HL7Spy v2020.2 just released!

HL7Spy v2020.2.220 (15 day trial, and v2020 licensed users)

Customers with an Enterprise subscription receive a free upgrade

Platform Requirements: Windows 64-bit Platforms that support .NET 4.8 or higher

HL7Spy 4.x User's Manual             End User License Agreement

HL7Spy v3.1.2424 (3.x licensed users)

Platform Requirements: Windows 2008R2/2012/8.1/7/10 - 64-bit, requires .NET 4.5.2, or higher

HL7Spy 3.x User's Manual             End User License Agreement

HL7Spy v2.3.586 (2.x licensed users only)

Platform Requirements: Windows 2008R2/2012/8.1/7 - 32/64-bit, requires .NET 4.5, or higher

HL7Spy 2.3 User's Manual             End User License Agreement

HL7Spy.Core C# class level documentation

  (Right-Click after downloading and "Unblock" to view)

HL7Spy 3.0 Released!

Inner Harbour Software is please to announce HL7Spy 3.0, its latest release of its flagship product. HL7Spy 3.0 comes with a completely new user interface that makes HL7Spy more efficient and easier to use. HL7Spy 3.0 also comes packed with new features, enhancements, and performance improvements. A sampling of these can be found below.

New User Interface

The new user interface provides for a much richer user experience.  The new Ribbon Bar makes navigating HL7Spy’s functionality faster and easier. The tool buttons are larger and include text identifies the functionality being provided. Context sensitive help appears when hovering over a button. These new UI will make using HL7Spy more efficient for both beginners and existing HL7Spy pros alike.




Additional User Interface Enhancements

  • Ribbon Bar can be shown/hidden with Cntr-F1 allowing the user to maximize message display area
  • HL7Spy skin, back shadowing, and Aero Glass can be changed allowing the user to optimize the look and feel of the UI


  • Short-cuts can be added to the application title bar for quick access to frequently used tools


  • The Ribbon tabs, menus, and buttons can be access via the keyboard using the Alt key followed by the short-code displayed after the Alt key is pressed.





NEW HL7 Timeline Tool

The new HL7 Timeline Tool provides an over-view of the message volume over time for the currently displayed tab. This tool is useful when you are navigating a very large message stream and you want to see the messaging rate over time, or you want to quickly navigate to a particular date/time. In the example below, the message stream contains 100,000 messages. Note the spike in message throughput just before midnight every day.


HL7 Timeline Tool Features

  • Can handle hundreds of thousands of messages
  • Clicking on the timeline navigates the editor to that date/time
  • Zoom In/Out using Shift-Click operations with the mouse
  • Right-Click to export graph to png image file
  • Right-Click to export raw data to Excel

New HL7 Transform Tool

The new HL7 Transform Tool allows users to make bulk modifications to messages within the current tab. While message transformation functionality has been available in HL7Spy since version 1.x, it has required users to write c# code snippets in the Custom Code tool. Now non-programmers can make bulk transformations to HL7 messages without having to write code.


HL7 Transform Tool Features

  • Set fields to constant values. Eg, MSH-4=’FIXEDVALUE’ – sets MSH-4 to FIXEDVALUE
  • Copy fields from one part of the message to another. Eg, MSH-5=MSH-4 – sets MSH-5 to the value in MSH-4
  • Use a table to map one field to another. Eg PV1-2 = Table(PV1-2,’ER’ -> ‘E’, ‘OP’ -> ‘O’, ‘IP’ -> ‘I’) – maps ER to E, OP to O, and IP to I
  • Use conditions to control when a transformation is triggered. Eg, MSH-4=MSH-4+’-INPATIENT’  when  PV1-2=’I’ – appends ‘-INPATIENT’ to MSH-4 if PV1-2 is set to ‘I’
  • Test button runs the transform on the message currently displayed in the editor to test the results of the transform

New Other HL7Spy 3.0 Features/Improvements

  • Cloverleaf Smatdb files can now be opened with HL7Spy
  • Improved Bulk Message Compare tool
  • Improved Custom Code Selection UI
  • Improved Database Connection Selection and Configuration UI


  • Improved HL7 Send Destination Selection and Configuration UI


  • Support for decoding and opening large escaped HL7 fields including Base64 encoded data
  • Better, faster displays for displaying large amounts of data in Sql Loader, HL7 SQL, and Statistics tools


  • Better Exporting tools


  • Improved HL7 Receive Tool with support for receiving batch transfers


  • Improved HL7 Send Tool with support for sending HL7 batch messages


  • Improved Split Messages  in Tab Tool with support for creating HL7 Batch messages


HL7Spy v2.3.555 Released

  • Improvement – Do not show the popup when pasting text into the HL7 Editor.
  • Improvement – Add a new right-click menu option to paste and replace text from the clipboard to the HL7 Editor
  • Improvement – Better logic for saving application size and location with multiple monitors

  • Bug Fix – Mask HL7: Fix issue where hitting the “Enter” key in mask fields dialog causes the dialog to exit.
  • Bug Fix – Sql Loader: Fix issue where error messages are not being cleared between queries
  • Bug Fix – Split Messages – Fix issue with a file being locked when exporting
  • Bug Fix – Split Messages – Fix issue with splitting messages by index range misses the last message in the index
  • Bug Fix – Split Messages – Fixed issue with splitting messages by file size not working correctly

HL7Spy 2.3.534 Released

  • Improvement – Better appication startup window positioning – Requested by Len F.

  • Bug Fix – Custom Code: HL7Message InsertAfter throws unexpected exception.
  • Bug Fix – HL7DocumentationProviderFactory.GetOrCreateProvider1 [ArgumentException] An item with the same key has already been added.
  • Bug Fix – Could not save configuration for HL7QueryViewSettings.
  • Bug Fix – Update help web links to point to new web location
  • Bug Fix – Fix missing tooltip issue when navigation bar is set to top – Report by Scott H.
  • Bug Fix – Fix a problem where the last char could be 0x1c or 0x0b and was included as part of the message
  • Bug Fix – Custom Code: Fix up code documentation so it properly shows the parameter information in the code editor

HL7Spy v2.2.501 Released

  • Improvement – Update Custom Code tool to support for C# 5.0 syntax
  • Improvement – Support REGEXP in addition to REGEX – Requested by Albert E
  • Improvement – Add menu option to reset application registry and folder permissions
  • Improvement – Message Editor should track WatchView path when WatchView is navigated with the keyboard
  • Improvement – Make HL7 text comparison case insensitive
  • Improvement – Add clear Watch functionality
  • Improvement – Select All/Clear all in the DISTINCT tool
  • Improvement – Print out duplicate keys as part of the Bulk Compare Report
  • Improvement – When generating a Bulk Diff Compare, print out indexes of messages with duplicate keys
  • Improvement – Turn high res mode on in app.config. Requires .NET 4.5 or above

  • Bug Fix – Do not use Courier New. Some systems in India do not seem to have this font.
  • Bug Fix – When I use the dropdown to select the ‘MySQL’ Database type, it doesn’t get selected and remains ‘SqlServer’. – Mike S
  • Bug Fix – Fix issue where buttons in Custom Code Device are being hidden.
  • Bug Fix – Fixed issue where \r\n in password prevented the FTP explorer from working
  • Bug Fix – Fix issue where the word “select” in region generates an error message
  • Bug Fix – Fix NRE when launching the Sql Loader when it has never been configured
  • Bug Fix – HL7Spy does NOT display message in file with MSH-18 equal “UNICODE UTF-8”

HL7Spy 2.1.448 Released

  • Improvement – HL7 SQL – Expand repeated fields when “*” is specified for the repeat – Requested by Albert E.
  • Improvement – Sql Loader – Improved DB connection dialog. Better cancel support. – Requested by Albert E.
  • Improvement – Add new Find Duplicates functionality. Finds messages in a tab that have duplicated MSH-10 (message Control ID). This new function can be found under the “Tools/Find Duplicate Messages” menu item.
  • Improvement – Add new Remove Duplicates functionality. Remove messages in a tab that have duplicated MSH-10 (message Control ID). This new function can be found in the toolbar and under the “Tools/Remove Duplicate Messages” menu item – Requested by Lonny K.
  • Improvement – Add new Set HL7 Field Value Function (see Set HL7 Field Value for details). This new feature can be found in the toolbar, and under the “Tools/Set HL7 Field Value…” menu option – Requested by Joseph Z.


  • Bug Fix – Issue where very large subcomponents are not shown in the Segment Editor – Reported by Paul C
  • Bug Fix – Ack message received should not contain the framing characters
  • Bug Fix – Statistics at the *** message level are not always accurate. Reported by Adam F.
  • Bug Fix – Fix issue where progress bar not show during generation of Compare Report.

HL7Spy 2.1.411 Released

  • Improvement – FTP Explorer – Add a folder search feature – Requested by Holly B.
  • Improvement – Message Tab – Add support for editing tab names – Requested by Justin N.
  • Improvement – Remove annoying ding when enter key is pressed
  • Improvement – Core – Change HL7Parser such that it if receives a second MSH, that it will create a parser error and stop parsing
  • Improvement – Custom Code – Add ClearFields and KeepFields function
  • Improvement – MLLP Maximum Message Size not being honored – Reported by Paul C.
  • Improvement – Changes to the HL7 MLLP feature to do 2 things when the configured Maximum Message Size has been exceeded:
    1) Stop the MLLP listener and display an error
    2) Append an ERR segment to the truncated message
  • Improvement – HL7 MLLP – Display a link that when clicked opens the debug log location
  • Improvement – HL7 MLLP – Add a button to clear the  debug logging output

  • Bug Fix – Search Dialog – Cannot edit the HL7Path. Reported by Jon S.
  • Bug Fix – HL7 Spy Version 2.x: Pasting Messages Problem
  • Bug Fix – Fix up resizing of the Message Properties Window
  • Bug Fix – Fix up Fonts in Message Properties Window and Hex Editor
  • Bug Fix – Clean up HexBox. Display was ugly because of how the characters were being aligned.
  • Bug Fix – Not properly identifying 4 character Z segments
  • Bug Fix – Version 2.x Issue – Highlighting of Fields and Pop-Up Field Counters not working properly. Thijs
  • Bug Fix – Wix installer should require only .NET 3.5 to run
  • Bug Fix – Compare tool not fully initialized when called from HL7 Sql, or other tool
  • Bug Fix – Custom Code Make sure the buttons are always re-enabled when switching between functions
  • Bug Fix – Cosmetic: Better alignment of FTP Explorer login settings
  • Bug Fix – Save FTP settings when a folder is created, or moved
  • Bug Fix – FTP Explorer – Modify Password Dialog so the login error is displayed
  • Bug Fix – MLLP Maximum Message Size not being honored – Reported by Paul C.

HL7Spy 2.1.334 Released

  • Improvement – Custom Code – Expose the collection of output MessageCollections in the Custom Code base class
  • Improvement – Bulk Compare – Add Ignore Case option in the Message Diff, and Bulk Message Diff functionality. Requested by Prasad K
  • Improvement – HL7 Editor – Change error messages for 4 letter Z-Segments to a warning
  • Improvement – HL7 Editor – Make the wrap text option more accessible by placing it in the toolbar
  • Improvement – Trim off any control characters at the start of an HL7Message
  • Improvement – Add auto-sizing option for the HL7 Statistics Grid
  • Improvement – Update to latest MySql nuget package v6.9.6
  • Improvement – Update to the latest postgres library
  • Improvement – FTP Explorer – Add Filtering cability. Requested by Justin N
  • Improvement – FTP Explorer – Add Home button. Requested by Justin N
  • Improvement – FTP Explorer – Auto-resize the Remote Directory Textbox to use all available space
  • Improvement – FTP Explorer – Support for AIX servers
  • Bug Fix – Highlight Field feature does not work
  • Bug Fix – Fixes to HL7 Message Statistics. Reported by Elizabeth S
  • Bug Fix – Show in HL7 Standard from Field Statistics right-click
  • Bug Fix – Segment Editor – Next/Prev segment button does not work. Reported by David G.
  • Bug Fix – Bulk Compare – Message differ report does not honor case-insensitivity. Found by Prasad K
  • Bug Fix – HL7 Editor – Issue where empty file creates a situation where the index is set to 0/0 and copy/paste fails to function properly. Reported by Cameron N

HL7Spy 2.1.268 Released

  • Improvement – New and improved Field/Component/Sub Component Statistics Feature.
    • Very fast navigation of messages with matching fields.
    • Ability to select multiple items in the Statistics Grid, and navigate to matching messages. For example, below selecting ‘O’ and ‘OP’ in the Statistics Grid and then clicking the Next/Previous Arrow buttons navigates to messages in the tab that have either a PV1-2 field equal to ‘O’ or ‘P’.
    • Ability to select multiple items in the Statistics Grid and have messages meeting the criteria placed into separate tabs. For example, clicking the “All” button in the case below would create 2 tabs: one with messages where PV1-2 = ‘O’ and the other where PV1-2 = ‘OP’. Holding the Control Key down and clicking the “All” button will place messages with either PV1-2=’O’, or PV1-2=’OP’ into a single tab. – Requested by Cleveland Clinic

New Field, Component, Sub Component statistics tool

  • Improvement – Added option to increase log verbosity.
  • Bug Fix – Don’t launch HL7Spy from installer when in silent mode
  • Bug Fix – Fix case sensitivity issue with most recently used file list
  • Bug Fix – Progress bar not showing when downloading files in file explorer if the system has been running for a long time. Environment.TickCount returns a negative value.
  • Bug Fix: HL7DocumentationProviderFactory.GetOrCreateProvider Illegal characters in path exception.
  • Bug Fix: Field Statistics Performance issue introduced in v2.1.167

HL7Spy 2.1.219 Released

  • Improvement – Install Enterprise licenses using arguments on the installer. See: Automating HL7Spy’s Installation
  • Improvement – Additional Command Line Options Added. See: Command Line Options
  • Improvement – Custom Code: HL7Message class ToString() performance improvements
  • Improvement – Add native Oracle driver ODP.NET
  • Bug Fix – Fix issue with installing HL7Spy on Windows XP
  • Bug Fix – Fix sending command line arguments between instances of HL7Spy
  • Bug Fix -Fix issue where installing the licensee and license key via the command line fails. Reported by Michael S. from Cleveland Clinic
  • Bug Fix – Fix Unhandled Exception Error
  • Bug Fix – Segment Editor Exception: System.ArgumentOutOfRangeException: capacity was less than the current size. Reported by Biju K.
  • Bug Fix – Make the email verification dialog case insensitive. Reported by Michael S. from Cleveland Clinic
  • Bug Fix – Remove registry key when uninstalling
  • Bug Fix – Improve error detection of an invalid HL7Path

HL7Spy 2.1.165 Released

    • Improvement – A Cloverleaf New Line message framing option. Requested by Ron B.
    • Improvement – Allow enterprise licenses to be registered using the command-line
    • Improvement – Use Code Sign to sign the installer to avoid warnings during install
    • Improvement – Update to latest MySql and Postgres client library
    • Bug Fix – Custom Code – Setting a Field/Component/Subcomponent to null should leave the existing value untouched.
    • Bug Fix – HL7 Editor – NRE and duplicate settings key error.
    • Bug Fix – HL7 Editor – issue where no tool tips are provided for pasted in messages
    • New Feature – Mask Protected Health Information (PHI)

, or Control-M – Turn on/off whether or not the fields specified in “Options/Mask PHI Fields Settings…” are used to hide fields within the HL7 Editor.

“Fields to Mask” – Identify specific fields that will be masked in the HL7 message.
“Fields to NOT Mask” – All fields in the HL7 segment that are not identified here will be masked
“Fields to Mask” – Fields identified here will have PHI found in the “Fields to Mask” and “Fields to NOT Mask” sections masked.
“Mask Character” – Specify the character that will be used to “mask” the PHI.