HL7Spy Downloads
HL7Spy Downloads
(latest version)
Licensed and Trial Users

Minimum Requirements:
Windows 64-bit OS and .NET 4.8+

Simply the fastest
most full-featured HL7
tool on the market

Simply the fastest
most full-featured HL7
tool on the market

(old version)
Licensed Users Only

Minimum Requirements:
Windows 64-bit OS and .NET 4.5.2+

(very old version)
Licensed Users Only

Minimum Requirements:
Windows 32/64-bit OS, and.NET 4.5+

(Right-Click after downloading and “Unblock” to view)

HL7Spy v20.4.600 Released

September 4, 2022

  • Improvement – Minor Security Vulnerability – Use BouncyCastle directly instead of from MySql.Data to get latest nuget
  • Improvement – Security – Scan all dependencies for known Vulnerabilities
  • Improvement – Sql Loader – Updated Intersystem’s Ensemble template queries. Provided by Jeff D.
  • Improvement – All – Updated all product dependencies to their latest versions
  • Improvement – HL7 Receiver – Allow certificates from Windows StoreLocation.LocalMachine
  • Bug Fix – HL7 Editor – Fix obscure value out of range exception
  • Bug Fix – Hex Editor – Fix “Cancel” button does not stop Find Next
  • Bug Fix – HL7 To XML- Fix Value out of range exception
  • Bug Fix – Field Stats – Unexpected error in CalculateFieldStats. Query=MSH[1]-9.1.1. [Exception] ‘ ‘ Invalid Field Encoding Character|
  • Bug Fix – HL7Parser – Unexpected error: [IndexOutOfRangeException] Index was outside the bounds of the array.
  • Bug Fix – HL7 Transform – Error in Connexion v15: Function ‘coalesce’ not found
  • Bug Fix – HL7 Sender – Message that are separated with \r\n include the \n in the message and are subsequently sent by the HL7 Sender. Reported by Jeff D.
  • Bug Fix – Custom Code – Unexpected exception in CompileInternal: [TargetInvocationException] Exception has been thrown by the target of an invocation.[ArgumentException] An item with the same key has already been added.
  • Bug Fix – HL7 Editor – Fix selection offset issue when the segments end with \r\n
  • Bug Fix – File Explorer – Cannot view the hex contents of a file that was downloaded using the FTP/FTPS/SFTP

HL7Spy v20.4.541 Released

May 31, 2022

  • Improvement – HL7 Transform – HL7 Transform Device – Add function to move a segment within a message
  • Improvement – HL7 Send – Better Retry and detection of broken connections
  • Improvement – HL7 Send – Add option to Close Connection after sending each message – Requested by Robert S @uk.ibm.com
  • Improvement – HL7 Send – Improve sizing of HL7 Send tool so that it takes up less space
  • Improvement – HL7 Editor – Add DragDrop support from Editor to Compare tool
  • Improvement – HL7 Editor – Add support for inserting a Base64 file into a message – Requested by Robert S @uk.ibm.com
  • Bug Fix – HL7 Send – Fix NRE when there is no HL7 Target selected

HL7Spy v20.4.512 Released

April 17, 2022

  • Improvement – HL7 Send – Allow sort by Hostname in the target selector dialog – request by David H. from hcahealthcare.com
  • Improvement – HL7 Send – Add timestamps to HL7Send events shown in UI
  • Improvement – HL7 Send – Improve Logging of HL7 protocol events
  • Improvement – Speed startup time by initializing Sqlite in background thread
  • Improvement – HL7 Transform – Add InsertSegmentBefore, InsertSegmentAfter, ToUpper, ToLower, RegexReplace functions to HL7Transform
  • Bug Fix – HL7 Send – Fix issue where HL7 connection is closed between each message is sent using the “Single” button
  • Bug Fix – HL7 Core – Better handling of escape sequences in HL7 messages
  • Bug Fix – Custom Code – Fix issue where the Plugin folder now includes name and version of HL7Spy where it did not in the past – reported by Richard F. from healthcatalyst.com
  • Bug Fix – Custom Code – Fix issue where newly added, or removed assembly references are not properly handled by the intellisense editor
  • Bug Fix – HL7 Transform – RemoveSegment function not working – reported by Jeff D. from hicgrp.com
  • Bug Fix – [InvalidOperationException] Invoke or BeginInvoke cannot be called on a control until the window handle has been created.
  • Bug Fix – Unexpected exception in setting error indicators (129,{Line=-1,Character=-1}). System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.

HL7Spy v20.4.466 Released

February 20, 2022

  • Improvement – Better support for high res monitors – request by Alexander F. from xsolis.com
  • Improvement – Bulk Compare – Add feature to flag hl7 messages with differing segment orders – request by Jeff D. from hicgrp.com
  • Improvement – Custom Code – Better support for assembly references which have binding redirects
  • Improvement – Update all 3rd Party libraries to incorporate bug fixes and performance improvements made by our partners
  • Bug Fix – HL7 Standard – Fix exception thrown when setting the SplitterDistance to an invalid value
  • Bug Fix – Custom Code – Fix issue where the wrong CustomCode function is selected when a search is performed
  • Bug Fix – Ftp Explorer sometimes becomes unresponsive
  • Bug Fix – Ftp Browser – Fix tab stops in Password Dialog – requested by jeff.drumm@hicgrp.com
  • Bug Fix – Application Settings – Fix issue introduced in v20.4.450 where settings do not get stored correctly
  • Bug Fix – HL7 SQL/Sql Loader – Fix databinding error resulting in ResultsToNewTab not being stored correctly
  • Bug Fix – Cloverleaf Reader – Fix Sqlite password form size in designer
  • Bug Fix – Cloverleaf Reader – Ftp Explorer – Fix [AggregateException] A Task’s exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread.
  • Bug Fix – HL7 Editor – Fix NRE in MessageCollection.Dispose

HL7Spy 20.4.413 Released

November 12, 2021

  • Improvement – Update UI libraries to include new capabilities to Grid and Tree controls
  • Improvement – Update Rebex libraries for improved FTP/FTPS support
  • Improvement – Custom Code – Add function to replace illegal characters in an HL7 message
  • Bug Fix – Application – Fix: [ArgumentException] Form showDialog tried to set an ineligible form as its owner. Forms cannot own themselves or their owners. when closing the SplashScreen
  • Bug Fix – Fix [ArgumentException] Invalid HL7Path ‘[1]-0’ in BuildReportTask
  • Bug Fix – HL7 Send – Fix NRE when there are no destinations selected and the “Connect” button is clicked
  • Bug Fix – HL7 Editor – fix NRE in HL7Editor.SetDocument
  • Bug Fix – HL7 Editor – fix [ArgumentOutOfRangeException] Specified argument was out of the range of valid values.

HL7Spy v20.3.565 Released

September 9, 2021

  • Improvement – Segment – Add commonly used operations, such as Field Statistics, when you right-click on node within the segment editor – request by Paul @diridium.com
  • Improvement – Ftp Explorer – Automatically check for new messages when double-click the file, if it is already opened
  • Improvement – Better Layout of all windows and dialogs with scaling set to 300% – requested by Ben @zotecpartners.com
  • Bug Fix – Application – Saving/Restoring current Application Window Layout not working properly in some cases
  • Bug Fix – Application – [InvalidOperationException] Cross-thread operation not valid: Control ‘ShellView’ accessed from a thread other than the thread it was created on.
  • Bug Fix – HL7 Editor – Cntrl-V does not paste into the Find window when it is active and has focus – reported by Jeff D. @hicgrp.com
  • Bug Fix – HL7 Editor – Messages starting with MSH|^~\| rather than MSH|^~\&| do not get loaded properly in HL7Spy without changing the message framing
  • Bug Fix – Field Statistics – If there is an invalid value in a DTM, INT, or DOUBLE type, the sorting stops working
  • Bug Fix – Error initializing SettingsManagerBase. [UnauthorizedAccessException] Access to the registry key ‘HKEY_LOCAL_MACHINE\SOFTWARE\Inner Harbour\SqlLoader’ is denied
  • Bug Fix – FTP Explorer – Tail is not working – Reported By Alfred @musc.edu
  • Big Fix – FTP Explorer – Issue where opening a single compressed file in FTP Explorer does not correctly open – Reported by Alfred @musc.edu
  • Bug Fix – Error in BulkCompareView.RunInternal. [InvalidOperationException] Collection was modified; enumeration operation may not execute.
  • Bug Fix – Statistics View – [NullReferenceException] Object reference not set to an instance of an object.
  • Bug Fix – Custom Code View – Mouse selection issue in the Custom Code Editor with collapsed regions
  • Bug Fix – Custom Code View – Issue where Custom Code tool was not being restored to its saved state

HL7Spy v20.3.494 Released

June 27, 2021

  • Improvement – Updates/Improvements to Core UI Libraries
  • Improvement – Custom Code – Updates/Improvements to .NET C# language libraries and editor
  • Improvement – Add the DynamicClass Identifier to the output window when compiling so that the user knows how to retrieve a backup from the backup folder
  • Improvement – Better handling of invalid characters in HL7 Message
  • Improvement – Better handling of Parser Errors/Warnings in HL7Editor
  • Improvement – Set UseLargeBuffers to true in Rebex Ftp and Sftp for better performance
  • Improvement – Speed up loading of messages
  • Improvement – BulkCompare – Speed up showing of Master/Detail results
  • Improvement – Remove even row appearance in BulkCompare tool because it looks too cluttered
  • Improvement – Sql Loader – Add option to enable/disable Even Row Appearance
  • Improvement – Statistics View – Change row and selection highlighting
  • Improvement – Custom Code – Add method HL7Segment.GetOrCreate to get or create HL7Subcomponents
  • Improvement – Custom Code – Do not create empty repeats/components/subcomponents when setting string.Empty
  • Improvement – Improve implementation of IsNull, Coalesce, == null, etc
  • Improvement – Custom Coe – Add BaseSegment.IsFieldNullOrEmpty
  • Improvement – Everywhere – Take advantage of new Devexpress search in grid column feature
  • Improvement – Bulk Compare – Highlight rows in the summary that have messages with errors
  • Improvement – Ftp Explorer – Update Rebex Libraries to take advantage of new features
  • Improvement – Everywhere – Update Devexpress Libraries to take advantage of new features
  • Bug Fix – HL7 SQL – Closing any tab always cancels the existing query
  • Bug Fix – Fix [ArgumentException] This causes two bindings in the collection to bind to the same property.
  • Bug Fix – Fix Unexpected exception in HighlightActiveField. [IndexOutOfRangeException] Index was outside the bounds of the array.
  • Bug Fix – Custom Code – Fix [NullReferenceException] Object reference not set to an instance of an object.
  • Bug Fix – Fix NRE when Custom Code Tool is hidden at startup then activated
  • Bug Fix – Fix NRE in HL7Spy.Views.MessageCollectionView.MessageEditorView.ShowMessagePropertiesView()>
  • Big Fix – Fix resizing of the FTP/SFTP Server Tree
  • Bug Fix – Fix up ToolStripSpringTextBox just for use in FileBrowser
  • Bug Fix – Fix issue where “Open Message in external editor” attempts to open the file with an empty editor path
  • Bug Fix – Fix NRE in SqlLoader DbConnection form
  • Bug Fix – Export – Fix Export of long file named message collections
  • Bug Fix – Custom Code – Fix issue with Connexion.Core appending new segments to HL7 Message
  • Bug Fix – Fix File in user exception when the Settings backup happens at start-up
  • Bug Fix – Fix ZSH-1 issue where Field is not being encoded properly into a Component
  • Bug Fix – Fix issue with detecting HL7Paths in an HL7Expression
  • Bug Fix – HL7 Message detection fixes – reported by Len F. from health.qld.gov.au
  • Bug Fix – Fix [XmlException] The ‘ ‘ character, hexadecimal value 0x20, cannot be included in a name.
  • Bug Fix – Fix unhandled exception when searching using the Multi-Value search tool
  • Bug Fix – Custom Code – Fix DateTimeOffset is not defaulting to the local DateTimeOffset when parsing HL7DateTime
  • Bug Fix – Fix issue where MSH-3, MSH-4, MSH-5 are not set correctly in the FHS and BHS segments – reported C.H @ tanaq.com
  • Bug Fix – Fix issue where message frame characters are set in each message within a batch. According the standard these should not be set. reported by C.H @ tanaq.com
  • Bug Fix – Fix threading issue with StringBuilder in HL7QueryView: [ArgumentOutOfRangeException] Index was out of range. Must be non-negative and less than the size of the collection.
  • Bug Fix – Fix HexEitorView.Selection [NullReferenceException] Object reference not set to an instance of an object.
  • Bug Fix – Fix: SplitCollectionView – [ParserException] Multiple MSHs found in message buffer at offset 1025
  • Bug Fix – Fix issue where opening files from the Ftp Explorer loads 0 messages when the configure type is a LocalFileSystem – Reported by A. Islam from health.qld.gov.au
  • Bug Fix – Message Editor – Selecting right-click option “Save Unescaped Field to File” does nothing
  • Bug Fix – Bulk Compare – Fix [NullReferenceException] Object reference not set to an instance of an object. in BulkCompare when message has errors in it
  • Bug Fix – Fix [NullReferenceException] Object reference not set to an instance of an object.
    at Be.Windows.Forms.HexEditorControl.Selection(Int64 offset, Int32 size)

HL7Spy v20.2.296 Released

November 18, 2020

  • Improvement – Bulk Difference Tool – Add support for Ignoring Extra Fields – Requested by Randall C. from vumc.org
  • Improvement – Add option to change the message framing in the Split Messages Tool – Requested by Mike T. from amwell.com
  • Improvement – Diff Tool – Update DiffView when settings change in BulkCompareView’s ignore fields
  • Improvement – Statistics – Add AverageSize to Message Statistics
  • Improvement – Remember message framing last used in SaveAs – Requested by Jeff D. from hicgrp.com
  • Improvement – HL7 Editor – Add support for changing the size that triggers field collapsing – Requested by Ruslan A. from rochesterregional.org
  • Improvement – HL7 Send – Add Clone functionality to clone an existing HL7 Target configuration – Requested by Jeff D. from hicgrp.com
  • Improvement – Diff Tool – Reduce flashing when comparing 2 messages
  • Improvement – Custom Code – Write out the custom code uid to the output window when compiling so a user can identify the correct backup file if an older version of the code needs to be restored
  • Bug Fix – Custom Code – Fix issue where when adding an assembly reference the code is blanked out – Reported by Charla from nehii.org
  • Bug Fix – HL7 Receive – Update the file name when the port changes – reported by Nick J. from Conevity
  • Bug Fix – Fix issue with formatting of DateTimes and exporting to Excel
  • Bug Fix – OBX-5 CWE not returning correct value for obx.ObservationValue_05.First.CWE_01.Text_02 – reported by Paul M. from BCCancer
  • Bug Fix – Diff Tool Fix jittering in synchronized scrolling
  • Bug Fix – Bulk Compare – Message Counts, File Path, and First Message Date time missing from dropdown
  • Bug Fix – HL7Send – Fix weird positioning of configuration window
  • Bug Fix – HL7Send – Fix up flickering when opening HL7 Send settings popup dialog
  • Bug Fix – HL7 Send – Clear the last error on each Send()
  • Bug Fix – HL7 Send – Fix issue where “Repeat” does not decrement to 0. Reported by Nick J. from Conevity
  • Bug Fix – HL7 Send – Fix issue where TargetSettings not being properly upgraded from v2.x – Reported by Matthew B. from corhio.org
  • Bug Fix – Custom Code Tool – Clone button does not work
  • Bug Fix – Hex Editor – Fix offset/size not shown in Hex Editor
  • Bug Fix – Fix sizing of count column in SqlLoader and HL7Query tool
  • Bug Fix – HL7Parser – Fix [IndexOutOfRangeException] Index was outside the bounds of the array.
  • Bug Fix – HL7Parser – Fix: [ArgumentOutOfRangeException] Index and length must refer to a location within the string.
  • Bug Fix – Ftp Explorer – Fix InvalidOperationException “Cannot send command to the server because the response for previous one was not received.” is sometimes thrown by FTP library
  • Bug Fix – Ftp Explorer – Fix issue were MessageFraming cannot be changed when files retrieved using the FTP Explorer – Reported by Brian G. from utmb.edu
  • Bug Fix – HL7 SQL – Execute Button is not restored if the tab being queried is closed

HL7Spy 20.2.2 Released

May 2, 2020

  • Improvement – HL7 Sender Tool – Support for SSH Tunnel. Create a secure SSH tunnel to a remote HL7 Server – Requested by Paul C. from diridium.com
  • Improvement – Editor – Support for opening and drag-drop encrypted Cloverleaf smatdb files – requested by Keith M. from thechristhospital.com
  • Improvement – Sql Loader – Support for opening and drag-drop encrypted Cloverleaf smatdb files – requested by Keith M. from thechristhospital.com
  • Improvement – HL7 Editor – Better handling of large HL7 fields within a segment (OBX-5). Large fields are now collapsed to improve message readability. The size of the field is displayed in brackets. Do see the full field, double click on the collapsed region.
  • Improvement – HL7 Editor – Larger HL7 keyboard tooltips. They can be turned on/of (Ctrl+k,Ctrl+k). Hold down the Control key and move the mouse to a field with in the message also displays the tooltip.
  • Improvement – Segment Editor  – Support for OBX-5 variable data types
  • Improvement – Better sizing of columns in the SegmentEditor and HL7  Code table grids
  • Impvovement – HL7 Editor – Support for decoding a multi-part embedded OBX-5 field, for example an embedded pdf document split across multiple OBX segments
  • Improvement – HL7Standard Tool – Show Components/Subcomponents for search results
  • Improvement – HL7 Editor – Track temp files that were opened from OBX-5 encapsulated fields and delete them when HL7Spy exits
  • Improvement – Bulk Compare Tool – Sort field differences by Message Index, then HL7Path – request by Gavin M. from health.telstra.com
  • Improvement – Bulk Compare Tool – Save Ignore Paths when right-clicking and selecting “Ignore” in the Diff tool editor – requested by Gavin M. from health.telstra.com
  • Improvement – Diff Tool – Update DiffView when settings change in BulkCompareView’s ignore fields
  • Improvement – Speed up application startup
  • Improvement – Better handing of Windows Domain licenses for Enterprise customers
  • Improvement – Add support for per user settings for Enterprise customers
  • Improvement – Better display of Z-Segments in Segment Editor
  • Improvement – HL7 Transform Tool – Add more transform functions like Upper, Lower, Insert/Add Segment – requested by Len.F. health.qld.gov.au
  • Improvement – HL7 Transform Tool – Add a drop-down of available functions
  • Improvement – Custom Code Tool – Add right-click copy rows from Events table – requested by Len F. from health.qld.gov.au
  • Improvement – Rework the HL7 Send dialog for better space utilization
  • Bug Fix – File Save – Cannot set the Frame End setting to change the message end-of-frame character – reported by Mike T. from amwell.com
  • Bug Fix – Fix Batch Send View so that the FHS and BHS configurations can be modified
  • Bug Fix – HL7Sender Tool – Fix issue where SSL Validation in UI not happening at the correct time
  • Bug Fix – Show better error to user when Excel Export fails
  • Bug Fix – Advanced Statistics in v2020 do not report the same values as v3.1. Reported by Iris C. from cdph.ca.gov
  • Bug Fix – Highlight Field Tool- Fix exception when Segment Path is selected as a Highlight Path Support wildcard paths
  • Bug Fix – Bulk Compare Tool – Clear out Diff view when selecting a row in the Summary Grid row
  • Bug Fix – Ftp Explorer Tool – Fix issue with resetting the Master password
  • Bug Fix – Custom Code Tool – Fix [ArgumentOutOfRangeException] Specified argument was out of the range of valid values.
  • Bug Fix – HL7 Parser – Exception including entire contents of a large binary file with no messages
  • Bug Fix – HL7Spy not opening up a file when double-clicking it from Windows Explorer – reported by Jared R. from Queens University
  • Bug Fix – Fix spelling of Familiy name in v2.1 and v2.2 of the HL7 Standard

What’s new in HL7Spy 20.1?

February 7, 2020


  • We have made HL7Spy faster. We improved the performance of loading the application, loading messages, query messages, performing statistics calculations on a field, and many other aspects of the application.
  • HL7Spy can handle more data. We have improved HL7Spy’s already unique ability to load 100’s of thousands of messages. In HL7Spy 2020.1 we have improved many features to handle the increased size of HL7 data streams. We have some customers that are loading 42,000,000 messages and running queries to generate reports. That’s a lot of messages!

Here is what its like to load 1.1 million messages from a 7-zip archive containing 10 files on a standard laptop.

Watch how fast it is when used to calculate the statistics on the MSH-9 field.

  • We went through the entire product and improved every window and dialog in the application. We asked ourselves how we can make them better, and we did. Check it out for yourself.
  • We added more options for saving the application layout, font sizing, opening behavior, saving/restoring application settings, and more.
  • We added the ability to set the font size of the editor and most data grids within the application. This is great if your eyes are getting older like mine.
  • We have updated all data grids, and tree grids in the application. Where useful, they now support searching, sorting, and data grouping.
  • The HL7 Editor has been revamped. In v2020 it is snappier, renders text more precisely,  handles large HL7 messages better, supports configurable field highlighting, and has a cool new search tool (shown below).
  • The Custom Code Tool – This tool is for power-users! It is amazing what you can do if you know a little C#. In v2020 this tool has been completely redone. It now supports the .NET 4.8 run-time, and C# 7.x language specification.
  • One of the great new features in HL7Spy v2020 is built for users who are migrating to a new HL7 Integration Engine, (like Rhapsody, or Corepoint –product plug intended). The Bulk Compare tool allows users to compare the output from their old integration engine with the output of their new one, to ensure that the outputs are equivalent before flipping the switch. The Bulk Compare Tool generates results that allow you to see exactly which messages and fields are different between two message streams. Statistics by message type and field are created. These results can be exported to PDF and Excel for reporting purposes.The Bulk Compare tool is fast, so fast. It can compare 100,000 messages in under 15 seconds. See it in action below.
  • HL7 Sender/Receiver – Improved SSL/TLS support.
  • Sql Loader tool – This tool has been updated for v2020.1 . We have also included  for InterSystems Caché/IRIS. (Thank you to Jeff Drumm for his help us get this feature into v2020!). Please see his article on how to set this up in your environment: https://community.intersystems.com/post/load-ensemble-messages-hl7-spy-v20201