NEW - HL7Spy v2020.1 just released!

HL7Spy v2020.1.740 (25 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.2417 (7 day trial, and 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 v3.1.2036 Released

  • Improvement – Add ok button to close HL7TargetSelection popup
  • Improvement – Support for compressed file types: 7z ACE ARC ARJ B1 Cab cfs cpt dar DGCA LHA LZX RAR rzip sit SQX UDA Xar zoo ZIP ZPAQ – Requested by WK from New Mexico Health Information Collaborative
  • Improvement – HL7 Mllp Server performance impromements
  • Bug Fix – Fix name if it is ‘[no name]’ and there is only a single archived item
  • Bug Fix – Fix Don’t create empty file tabs when a bad password is entered
  • Bug Fix – Fix issue with Bulk Difference Report exporting results horizontally instead of vertically. Reported by RP from Cleveland Clinic
  • Bug Fix – Fix issue with Interpret data types not working HL7 SQL – Reported by RP from Cleveland Clinic
  • Bug Fix – Fix ArgumentOutOfRangeException in Export to Excel function
  • Bug Fix – Do not associate .zip/.txt files with HL7Spy because some user don’t know how to change the association

HL7Spy 3.1.2003 Released

  • Bug Fix – Fix issue with pasting/editing hl7 messages not clearing the error indicator
  • Bug Fix – Defect Connexion.Core.HL7 – Setting a repeated field with another repeated field that contains \R\ is not handled correctly. Reported by Len F., eHealth Queensland
  • Bug Fix – Line numbers not showing properly while editing the hl7 message
  • Bug Fix – Fix object disposed exception when closing a tab while a query is executing
  • Improvement – Add ok button to close HL7TargetSelection popup

HL7Spy v3.1.1974 Released

  • Improvement – Improve HL7Spy startup time by lazy loading the content of most ToolView tools
  • Improvement – Add Save Redacted Messages functionality. Requested by Cleveland Clinic


  • Improvement – Show differences between the current and transformed message in Transform Test tool


  • Improvement – Use LaunchExisting option when file is placed on command line without the -lf option. This enables HL7Spy to be set as the default target for any file extension using the Windows “Open With” right-click option

  • Bug Fix – Fix Export so the progress is shown
  • Bug Fix – Fix look and feel of MessageCollectionView when it is popped out of the main window
  • Bug Fix – Fix progress bar in HL7 SQL
  • Bug Fix – Fix NullReferenceException in BindableQueryResults in HL7 SQL and SQL Loader
  • Bug Fix – Fix issue with registering the licensee/licensekey via the installer
  • Bug Fix – Fix NRE in HL7Subcomponent.EscapedValue
  • Bug Fix – Code sign HL7Spy.exe
  • Bug Fix – Fix issue where the name of a Custom Code snippet cannot be renamed.
  • Bug Fix – Fix issue where the watch list is not updated when no messages are loaded
  • Bug Fix – Fix potential NullReferenceException in Watch List
  • Bug Fix – Fix issue with the updating of the description when editing the watch list
  • Bug Fix – Stop button not working in HL7 SQL tool

HL7Spy 3.1.1910 Released

  • Improvement – HL7Spy performance improvements. Application startups are faster, as are loading files
  • Improvement – Improve performance HL7 Standard searches/lookups
  • Improvement – Highlight fields in message that match the search entered in the search textbox

  • Improvement – Support cntrl-i and cntrl-shift-i for navigating text within the HL7 Editor
  • Improvement – Custom Code – Allow source code to be copied in HTML so it displays in emails better
  • Improvement – Improved IPv6 support
  • Improvement – HL7 Receive improved memory usage
  • Improvement – HL7 Send – Close HL7 Target selection popup on double-click
  • Improvement – Allow minimizing the Ribbon when document is dragged out of main window
  • Improvement – Clean-up bug report look and feel
  • Improvement – Custom Code – Add a dropdown list to the toolbar to show available functions/classes
  • Improvement – Better support for High Resolution monitors with .NET 4.7+
  • Bug Fix – With “Application Options/Explorer – Start New HL7Spy Instance” off, double-clicking on an HL7 file does not open existing HL7Spy instance
  • Bug Fix – Fix look and feel of MessageCollectionView when it is popped out of the main window
  • Bug Fix – Clean-up display of HL7 Standard tool
  • Bug Fix – Fix uncommon NullReferenceException in FieldStatistics
  • Bug Fix – Fix unhandled exception when file path is too long in FileSave dialog
  • Bug Fix – Fix Application Unhandled Exception. [EvaluationException] Invalid Expression
  • Bug Fix – Fix [InvalidOperationException] rectangle calculation must happen first
  • Bug Fix – Fix text in Custom Code splash screen
  • Bug Fix – Fix layout of HL7 Receiver configuration
  • Bug Fix – [NullReferenceException] Object reference not set to an instance of an object.
    at HL7Spy.Core.Hl7.HL7Message.UpdateOffsets()
  • Bug Fix – Fix: Error Firing topic SetStatus from HL7Spy.Shell.ShellPresenter. [InvalidOperationException] Sequence contains more than one matching element
  • Bug Fix – Fix sizing and placement of the message navigation control
  • Bug Fix – Custom Code not saved when switching between functions resulting in lost work

HL7Spy v3.0.1690 Released

  • Feature – Add “Exit HL7Spy” menu item – Larry B.
  • Feature – HL7 Send – Add the ability to log the low-level communications protocol. Requested by Philip D.

HL7 Send - Log


  1. None – Turns off all debug information
  2. Debug – Includes information about the protocol exchanged minus the actual data in the transfer
  3. Full – Includes all protocol information and messaging data
  • Feature – Global Custom Code – A Custom Code function that can be used by other Custom Functions. This feature allows users to consolidate commonly used code into a centralized place that can be used across multiple functions.

  • Bug – Fix Error An exception was thrown during handling the topic ‘ShowMessageFramingView’ System.ArgumentException: Input array is longer than the number of columns in this table.
  • Bug – HL7 Send – Issue if the End of Frame markers in the ACK are sent in a separate network packet. Found by Philip D.
  • Bug – HL7 Tree Editor- Fix [InvalidOperationException] Sequence contains no elements


HL7Spy 3.0.1648

  • Feature – HL7 SQL/SQL Loader – Add menu items for Showing/Hiding: Auto Filter Row, Grouping Panel, and Find Panel
  • Feature – HL7 SQL/SQL Loader – Add support for exporting column to quoted list – Albert E.
  • Feature – HL7 SQL/SQL Loader – Add “Selected To Distinct List” to clipboard right-click option and keyboard shortcut


  • Feature – HL7 Send – Improved performance and better memory usage
  • Feature – Add user help button that points to the on line user manual
  • Feature – Custom Code – Add function to Split OBX-5 repeats to and OBX segments with no repeats and back (HL7Message.SplitObx5RepeatToOBX/HL7Message.CombineObxsToObx5Repeats)
  • Feature – HL7 Receiver – Add error dialog when ssl is selected but no certificate is supplied
  • Feature – Allow configuring the Font used in the Compare Tool

  • Bug – Bulk Compare Tool – Escape double quotes and commas in Generate Report – Jeff D.
  • Bug – Sql Loader – Correct Integrated Security connection string value for Oracle
  • Bug – Sql Loader – Add support for Sqlite databases
  • Bug – Fix NRE when clearing the disposed Statistics Tool
  • Bug – Fix file save view error when there are no messages to save
  • Bug – HL7 Editor – Turn off vertical scrollbar when wordwrap is off
  • Bug – Split Tab – Split by file size should be in KB not MB
  • Bug – Fix clear-all/select-all in Open Folder tool
  • Bug – Fix issue where exporting and print preview causing MissingManifestResourceException and not able to display print preview dialog
  • Bug – HL7 Editor – Fix setting Font in editor settings not changing font in editor
  • Bug – Custom Code – HL7 Control Character Escape Sequences not properly handled by ToString()
  • Bug – Fix issue with PartialLoad Dialog not functioning properly when file size is greater than int.MaxValue
  • Bug – Fix extra message present in the tab when using Partial Load Dialog
  • Bug – HL7 Editor – Fix issue where “Unescaped Field To Clipboard” menu item is repeated each time the user right-clicks on a field. Reported by Jeff D.
  • Bug – Bulk Compare Tool – Full Segments not being ignored – Jeff D
  • Bug – Compare Tool – Find Next Change stopping at Ignored fields
  • Bug – Compare Tool – Ignored Segments should be ignored when comparing segment order

HL7Spy v3.0.1549

  • Feature – Improve memory use of the application
  • Feature – Improve performance of HL7 Sender and Receiver
  • Feature – Improved robustness of the HL7 Receiver
  • Feature – Add support for SSL in HL7 Sender and Receiver
  • Feature – SQL Loader/HL7 SQL – Add Enhanced Tools to Options menu
  • Find Panel – Allows the user to perform searches within the current result set
  • Group by Panel – Allows grouping of data by a column by dragging and dropping the column in the indicated area
  • Auto Filter Row – Filter the result set using the expression in the filter textbox. You can use %, or * as a wildcard


  • Feature – Re-implement and improve Watch List tool
  • Feature – Watch List – Add support for displaying watch list highlighted in the message editor


  • Feature – Open Folder Dialog – Redesign
  • Feature – Open Folders Dialog – Improve search performance
  • Feature – Open Folders Dialog – Add support for Regular Expressions in the file name search
  • Feature – Open Folders Dialog – Show status of search to indicate level of completion
  • Feature – Open Folders Dialog – Save user settings across application restarts


  • Bug – Remove annoying ding from SetFieldView
  • Bug – MLLP – Fix argument out of Range exception due to end-frame-bytes being ahead of the start-frame-bytes in customer message
  • Bug – Fix layout of MessageFramingControl so that the Character Encoding is visible
  • Bug – Fix Watch List item’s description not updating properly when editing the HL7 Path
  • Bug – Make the selected field the highest display priority so that it is not hidden by field highlighting
  • Bug – Fix missing status update during Watch List Report generation
  • Bug – Fix sizing of # of Samples in calculate statistics
  • Bug – Fix incorrect use eventhandlers which are preventing objects from being GC’d
  • Bug – Bulk Compare – Key Path field not staying empty when cleared by user – Reported by Jeff D.
  • Bug – Bulk Compare – HL7Spy does not properly launch the default application for CSV files

HL7Spy v3.0.1441 Released

  • Feature – Clean-up Messages in Tab. This feature allows you to find and remove unwanted messages from a tab. For instance, sometimes you want to remove duplicate messages, or remove messages coming from a particular source system. The Clean-up tool provides you with this capability.


  • Bug – Fix ArgumentOutOfRangeException in HL7 Send Tool
  • Bug – HL7 SQL and Sql Loader. Disable “Distinct” button while a query is executing
  • Bug – Fix saving/restoring Quick Access Toolbar
  • Bug – Bulk message compare – Fix segment paths not being excluded when added to ignore list
  • Bug – Set HL7 Field – Fix tab stops so they are ordered more logically

HL7Spy 3.0.1387 Released

  • Feature – BHS/BTS segments should be preserved by the HL7 Receiver
  • Feature – Add progress bar when initial Bulk Compare is calculated
  • Feature -Compare Tool Enhancement – Add to exclusion list by right-clicking on fields in the compare window

  • Bug – StackOverflowException when stopping an HL7 MLLP Transfer
  • Bug – Disable annoying ding when something is search via the navigation control
  • Bug – Total Query Time displayed in Sql Loader, and HL7 SQL are incorrect
  • Bug – HL7 SQL – Field name text is not always shown in the Columns of the result set
  • Bug – Sql Loader – Always show results if there are items returned in the query. Requested by Albert E.
  • Bug – Bulk Compare – An HL7 Segment Paths like OBX, OBX[2], and OBX[*] in the “Path(s) to Ignore” bulk compare settings, does not ignore all OBXs
  • Bug – Compare – Configuration dialog should not shut when enter key is hit

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