Click here to return to Trial Download Information page
2.00-035: Handling of invalid \Xdd\ escape lengths 12/05/2011
Up to this version, HL7Connect has always rejected messages that have an odd length \X escape. As of this version, there is a flag on incoming interfaces to allow HL7Connect to accept odd length \Xd\ escapes by prepending a 0. The parser has been updated to accept odd length escapes throughout the rest of the suite, including in the scripting. There is a new decoding function on IHL7Message called "DecodeOptions" that can be used to reject messages with this kind of invalid escape.
2.00-034: Better tracking of archiving/deletion 19/03/2011
2.00-033: Support for Duplex Connections (Continued) 19/03/2011
Add support for reidentifying messages.
2.00-032: Support for Duplex Connections 16/03/2011
Add support for Duplex TCP/IP Connections.
Fix deadlock in shutdown code.
Fix bug introduced in v2.00-028 which meant that scripting would eventually terminate HL7Connect.
2.00-031: Web services reorganisation 20/02/2011
The web service interfaces (http://[hl7connect]/wsdl) are becoming more important and more widely used in applications. This version reorganises the web service interfaces considerably to make them easier to navigate and administer. Also, this version adds new control on a per user basis over what interfaces particular users can access. Note that it's possible to define users that only have access to the web services.
2.00-030: Fix for handling invalid acknowledgements 17/02/2011
Bug 53 (Invalid ACK causes interface to fail): Invalid ACKs still cause the interface to fail, but the error message is much improved now
2.00-029: Install manages service details + more bug fixes 12/02/2011
Bug 52 (Include MRN option on msg select for delete from queue not working): Fixed.
Bug 48 (Ability to set expiry on message generated via script): New Kernel method NewMessageWithExpiry
2.00-028: More Bug Fixes 01/02/2011
HL7Connect now no longer needs to be exempt from DEP.
Added more checking to HL7 v2 scripting interface to prevent fatal memory corruption when deleting segments, repeats and cell contents
Bug 34 (Ability to use wild cards and tokens to define log path and file name): Can now use $D() to specify date parts as part of log name. See Documentation
2.00-027: Several Bug Fixes 20/12/2010
Bug 50 (Ability to clear error tally without re-starting the interface): New link at the bottom of the interface error list
Bug 49 (Ability to choose different skin/colour scheme): See new settings in Administration..Configuration..General
Bug 31 (Enhancement Request - Database Connection Alert): See new settings in Administration..Configuration..General
Bug 32 (Delete button doesn't work browsing messages): fixed
2.00-026: Minor Bug Fixes and Script Enhancements 20/12/2010
Added Kernel.IsTestSystem and SendMessageToInterface to many more events
Fixed issue where setting the message id in a script was ignored
Fixed underlying parser where "decode" on a field or component would ignore the last character of the decoded content
2.00-025: Add Imaging support to script API 04/10/2010
2.00-024: Support for Internet Explorer 9 25/09/2010
Added support for IE 9
2.00-023: Internal Storage Changes for DICOM 20/08/2010
2.00-022: Add new Interface modes 12/08/2010
Prior to this version, you could run interfaces in one of two modes: store and forward, or pass-through.
- Store And Forward: HL7Connect accepts messages and stores them in the database, then forwards them to other systems as configured. Responses from other systems are ignored unless specified otherwise in scripts
- Pass-Through Mode: HL7Connect passes messages straight through to designated outbound interface, and returns the response directly to the sender. No messages are stored. There must be one and only one route for each message (if no routes are found, the message is simply stored)
This Version adds two new modes:
- Store, Forward, And Dispose: Like Store and Forward mode, but messages are disposed of as soon as they have been delivered to their destinations
- Pass-Through with Store: Like Pass-Through mode, but incoming messages are stored, along with responses if the outbound interface is so configured
2.00-021: Improved Response Tracking, and File Interface bug fix 09/08/2010
You can now configure outgoing interfaces to record response messages in the database. This will mean that they are visible when browsing the messages in the store. Note that usually, with HL7 v2, interesting response messages are passed through HL7Connect without ever being stored, but this will change
Two bugs have been fixed in the file interface code. File interfaces would fail to function if the incoming files were marked as read only, and transactions were used (inappropriately) on network drives
2.00-020: Add script execution time tracking 30/07/2010
2.00-019: Add better tracking of Message/Document turn around 28/07/2010
HL7Connect now tracks the turn around time of messages and documents
2.00-018: Able to specify alternate port SMTP hosts + Bug Fix 26/07/2010
HL7Connect now supports specifying an alternate port to 25 for the global SMTP host, and on email interfaces (both SMTP and POP server)
Fixed a bug where an invalid response message could cause HL7Connect to report a useless and misdirecting error report ("Attempt to access rawContent when complex content exists")
2.00-017: Fix important scripting bug 24/06/2010
Prior to v2.00-008, scripts were loaded and compiled each time. Post v2.00-008, HL7Connect caches the compiled script (for performance reasons). Since that time, the caching has been too aggressive: once loaded, the script is never reloaded. From this version on, the script will be reloaded whenever the interface is started
2.00-016: Content compression + Bug fixes 17/06/2010
Messages and Documents are now compressed before storage. This has no effect on the functionality of the product - only saves storage space, but because a few users use the database directly, it can be turned off through the HL7Connect Configuration page
This version rolls up a number of bug fixes, including the occasionally reported "Catastrophic Error", several test case related errors, bugs restoring messages from the archive or audit trail, and some broken links in the documentation.
2.00-015: Improved Database Schema Checking 16/06/2010
HL7Connect will now check that the database schema is correct prior to starting, and will not start until it is correct. The schema should be correct, but variations in version history may mean it is not. This upgrade includes fixes for known past database issues, but if these fail, you will need to consult HL7Connect.com. As always, we recommend upgrading a restored backup prior to upgrading your production system
2.00-014: File Interface Change 03/06/2010
This version clears up some confusion to do with file interfaces of type "Plain HL7 (1 Msg per File)". The problem is that the definition of the interface says 1 message per file, but there was no way to configure an outgoing interface to actually produce 1 message per file unless every filename is unique. As a consequence, for outgoing file interfaces, existing outgoing file interfaces with file format "Plain HL7 (1 Msg per File)" will be changed to "Serial Messsages (No delimiters)". This will no cause any change in behaviour to existing interfaces.
2.00-013: Fix for interface naming 03/06/2010
Up to this version, interface names have been treated as if they are unique, without ensuring that this is so. As of this version, duplicated interface names will be disambiguated in the logs etc
2.00-012: Daily Stats + Bug Fix 25/05/2010
The most difficult aspect of administering HL7Connect is preventing the database size from growing out of control. HL7Connect now tracks daily usage stats to help make this manageable
The IP Mask/Restriction functionality on the TCP/IP interfaces had somehow become unhooked. This functionality is now restored.
2.00-011: TCP Keep-Alive Support 24/05/2010
There is now a flag on TCP/IP interfaces to use the TCP Keep-alive Socket option to keep interfaces that cross firewalls alive when there is no traffic
2.00-010: UCUM Support 18/05/2010
UCUM support has been added - you can use UCUM to fix units in HL7 OBX segments as well as CDA Observations
2.00-009: Additional Notification 03/05/2010
You can now configure any interface so that notifications are generated when it fails unexpectedly
2.00-008: Cumulative Bug Fix release, and new SDK 29/04/2010
First release of the COM And .Net APIs
HL7Connect will now use the Windows Kernel Transaction Manager for file system transactions (Vista, Windows 7, Windows Server 2008). This applies to the internal configuration files, and also to internal file handling for file-based interfaces
2.00-007: Record all notifications to assist with troubleshooting 19/03/2010
Email notifications are getting increasingly hard to set up due to all the security features of email systems. From now on, HL7Connect logs all notifications to remove any doubt about whether they were sent or not. If you are having trouble sending email notifications from HL7Connect, check this useful discussion: http://www.codinghorror.com/blog/2010/04/so-youd-like-to-send-some-email-through-code.html
2.00-006: Change to file interface processing 13/03/2010
Until this version, when configuring incoming file interfaces, you would need to configure a working directory and an archive directory.Due to the implementation of cluster support, the way HL7Connect uses the file system has been rationalised, and these directories are no longer a configurable item.
They are now found in the HL7Connect Data Storage, which is chosen when installing HL7Connect, at \files\f[i]\*, where i is the primary key for the interface (appears in the urls). There is a flag for whether to archive files or not in place of the directory setting.
Note: if you are upgrading, existing file interfaces will be reorganised to this new set up, and existing archived files will be copied. If you do not have enough space, move the archived files into a different directory before the upgrade continues.
2.00-005: Interface Packaging and transfer 03/03/2010
You can now download an entire configuration for an interface - including scripts - and apply it to some other HL7Connect installation.
2.00-004: Change order of events on incoming interfaces 17/02/2010
Prior to this version, message validation occurred prior to the incoming script executing. As of this version, the script executes first, so that messages or documents may be fixed to become valid.
2.00-003: System OID Identifier 08/02/2010
Define master system OID (globally unique)
2.00-002: XDS Affinity Domain Aspects 06/02/2010
Add Annotations for XDS affinity domain properties
2.00-001: CDA Major Upgrade! 01/02/2010
Important!: This is a major conversion, and includes a rebuild of the main message store. Expect this process to take a long time (maybe many hours!) on large operational databases. In addition, note that this upgrade cannot be run as a single transaction, and therefore a failure does not leave the database in a recoverable state; if the upgrade fails (i.e. running out of transaction log space) you will need to restore from backup and try again.
2.00-000: CDA Preparation 01/02/2010
This version adds CDA/CCD support to the existing support for HL7 v2 messaging. There are changes across the board to reflect the enhanced functionality. Fundamentally, CDA documents are handled like HL7 v2 messages. The most important difference is that the acknowledgement semantics are different, and therefore the transports supported are different.
As part of the CDA work, there has been a substantial overhaul of the scripting documentation for CDA support, with enhancements across the board in the documentation, and the addition of the Kernel.notify routine. The list of events that support KScript and XSLT has been revised, and the KScript support substantially enhanced for use generating CDA documents.
1.06-002: Fix bug in Message Encoding 04/12/2009
A bug in the way OBX-5 is encoded has been fixed. OBX-5 is unique in that the data type for the field is specified in OBX-2. The encoding of the field is performed consistently with the datatype specified in OBX-5. If the second component was valued, and then a data type was chosen which made the second component have sub-components, the component value would be ignored when the message was encoded (say, after scripting). This is now fixed - the component will picked up in place of the sub-component
1.06-001: Response Suppression 19/11/2009
Added support for suppressing some or all responses on a TCP/IP interface. Please read the warnings about this in the TCP/IP settings documentation before using.
1.05-004: WScript Equivalent 04/09/2009
Added a WScript equivalent for scripts (WScript.ScriptFullName etc)
1.05-003: Direct Script Execution 04/09/2009
Added the ability to execute a script directly from the web interface (go to Administration...Utilities)
1.05-002: Routing adjustments for Virtual Queues 04/09/2009
In the past, if you set up multiple routes from the same the incoming interface to the same outgoing interface, HL7Connect would ignore them, and only forward the message once (using the translation parameters for the first encountered one, which may have been set in the OnReceiveMessage event using a script). From now on, it will route the message to the interface multiple times as instructed.
1.05-001: Add Virtual Queues 04/09/2009
There is a new facility called "virtual queues". A message can be put into a virtual queue, where it will wait to be processed. Virtual Queues can be further partitioned by a string value. You can:
- Put a message in a virtual queue by defining an incoming route, using a script command, or doing it manually through the web interface
- Send all or some messages in a virtual queue to an interface using a script command, or doing it manually through the web interface
- Clear all or some messages from the virtual queue using a script command, or doing it manually through the web interface
- Download all of some of the messages in a virtual queue.
This facility is useful for a variety of message flow control purposes. You must define a queue before using it through the web interface (see under Adminstration)
1.04-001: Add Support for Message Annotations 04/09/2009
You can now annotate messages with any number of name=value pairs. You can use any name (up to 250 chars long), and the value can be any length. There can only by one annotation per message per name. You can access the annotations in the following places
- You can see and edit them in the web interface
- You can filter by them in the web interface (only if the value is < 32 characters long)
- You can get and set them in incoming and outgoing scripts
- You can do conditional routing based on them
This facility is useful for a variety of message flow control purposes.
1.03-002: Change to default behaviour of message sending 11/06/2009
In the past, the default behaviour when a message was rejected by the destination system was to accept the rejection and move on, on the basis that rejections are always a problem with the message itself, not a transient issue with the recipient. But this is a little dangerous, because
- Applications sometimes respond with an AR when they cannot process any messages (i.e. database server is down)
- It's easy to overlook the occasional dropped message
- even if the administrator notices and resends the dropped messages, they arrive out of order
For this reason, the default behaviour is now to keep resending messages when they are rejected. Existing interfaces will not be changed.
Note that the HL7 standard is rather vague on these matters.
1.03-001: Message Archive 19/03/2009
Users often like to store messages indefinitely. Databases containing >10 million messages can easily accumulate. However the cumulative effects of this on the performance of the Store|Queue|Tracking tables in the underlying database can be quite a problem. This version introduces a message archive. Messages can be moved into the archive and maintained there indefinitely without any performance issues except for their impact on database backup time. Archived messages can be retrieved back into the main message store by any combination of source, id, and date received. Note that restoring messages is considerably slower than archiving them - they must be reparsed as they are restored
1.02-006: Improved Mobile Support 16/03/2009
Not only does the web interface support mobile browsers (i.e. Safari on iPhone, other webkit based browsers), but there is now a mobile phone client that can administer HL7Connect remotely. For more information, look up 'Mobile Phone' in the HL7Connect documentation. To support the use of remote web services, a specific web services only port can be configured in the manager.
1.02-005: Notification Privacy 12/03/2009
For user convenience, HL7 message information is added to the notification messages. However this is a potential problem with regard to patient privacy. There is now a new flag on the notifications to prevent this source information being added to the notification
1.02-004: Better control over interface stopping to allow for automatic restarting 06/03/2009
This version introduces a new auto-restart feature on interfaces, so that if they fail unexpectedly, they can be automatically restarted. In order to support this, the kernel has tightened up on tracking why an interface is stopped. So there are new mandatory parameters on THL7ConnectInterface.Stop and THL7ConnectInterface.Restart which may affect any existing scripts that stop and restart interfaces
1.02-003: Referential Integrity Check 04/03/2009
Referential Integrity check - Check the internal database; some referential integrity checks are missing on some installs.
Add and document web service interfaces
1.02-002: Scripted Message tracking 04/03/2009
Track actual message sent when script changes outgoing message
1.02-001: Update for new Microsoft Security Policies 02/03/2009
Courtesy of Microsoft, the way HL7Connect uses the registry does not work on Win64 Vista SP1 (security issues). From this version forward, HL7Connect no longer stores configuration information in the registry. Instead, an XML configuration file is used. On WinXP+ it will be found in <Common App Data>\HL7Connect\Configuration. On Win2000 (mostly still supported), the location of the config file is hardcoded to C:\Program Files\HL7Connect\AppData\Configuration (HL7Connect can be installed elsewhere, but the config file will always be found there). Windows 95/98/ME is no longer supported. Note that this means the existing path aliases $script$ and $cert$ will be moved to the application data directory instead of the program files directory.
1.01-019: Null Version for internal upgrades 29/02/2008
1.01-018: Change to RawContent in Scripts (see 1.01-015) 27/02/2008
The change introduced in 1.01-015 had a series of negative consequences for existing implementations. To ease with migrating existing solutions, RawContent will no longer raise an exception if complex content such as escapes is present. Instead, it will return the standard vertical bar representation of the content (i.e. \H\).
1.01-017: More Minor Fixes 08/12/2008
- Support for MS SQLServer 2008
- Support for IE8, Safari, Chrome, and various mobile browsers including iPhone
- Added ability to categorise interfaces into groups for easier management
- Fixes for batch file interface stability
- Add Support for versions 2.5.1 and 2.6
1.01-016: Some Minor Fixes 31/07/2007
- Fixed bug where missing record in database created serious memory leak
- Exposed control over which characters are used for delimiters etc to scripting
- SSL tab no longer wrongly displayed if database is not ok
- Add timeout parameter to FTP to prevent FTP hanging when connection is lost
- Safari supported, but only partially due to a bug in Safari relating to visibility of spans
- Fix bug in scripting where accessing a property (.IsSimple) works, but accessing it using a method (.IsSimple()) fails
- Allow $ in passwords
- Capture email notification errors
- Fix significant leak when cloning message in scripting
- Default Subcomponent delimiter if not present, instead of error
1.01-015: Changes to handling content in HL7 FT fields with escape sequences 04/04/2007
Note: If you have scripts that deal with fields with escape sequences, this change may affect your scripts
The HL7 standard defines an escape syntax. There is 3 common uses for this escape syntax:
- encoding characters such as | when they appear as actual field content using \F\ etc
- defining appearance characteristics of FT fields using \H\, \.br\ etc
- defining sequences of bytes unambiguously using \X sequences
In prior versions of HL7Connect, the underlying library would convert the syntactical escapes to the correct characters so that they were transparent to the application and the scripting environment. the \X sequences would be converted to the equivalent character - but the meaning of this is code page dependent so this wasn't really a perfect solution. For the \H\, \N\, and \.br\ type escape sequences, the \ was replaced with a special character character #1.
In the new model, each cell stores the cell content as a list of parts. There is four different part types:
- Null - this represents a field that has "" in it
- Text - this represents standard text
- binary - this represents a sequence of bytes (a \X escape)
- escape - this represents any other escape
The null part type will always be on its own, otherwise there will be a sequence of either of the other 3 part types.
Scripts get access to these through the Contents and ContentCount properties on the Cell (Field, Component or SubComponent).
The existing script functionality is the same in all but one respect. The simple access properties such as AsString, AsInteger, etc, and RawContent will continue to function as they have in the past, except that they will cause an exception to be thrown if they are used on a field that contains escape sequnces.
You can use the IsSimple property to check whether escape sequences exist.
There is a set of new routines for managing the contents and easily introducing and deleting escape sequences.
1.01-014: Support for IE7 & SQL Server 2005 19/05/2005
Added Support for:
- Internet Explorer 7
- SQL Server 2005
1.01-013: Several Minor fixes 19/05/2005
Fixed:
- File Interface: Exception trying to accept files that are still locked by other processes
- Mesage Browsing: Filter by date fixed; Can browser forwards by default (see general configuration settings)
- Fixed bug browsing big log files
- Fixed message selection (downloading or resending) by Msg ID
1.01-012: Several Changes to the scripting interface 19/04/2005
The HL7 Library used internally throughout HL7Connect has been completely rewritten in order to prepare it for open-source release in java. As a consequence there have been several changes to the HL7 Library in the scripting API. These changes are summarised below. For further details, consult the Development Environment Documentation.Propertiesremoved from existing classes:
- THL7CommonDataCell.Valid
- THL7Component.SubComponentList
- THL7DataElement.Components (use HL7DataElement.Component instead)
- THL7DataElement.RepeatList
- THL7DataElement.ComponentByName
- THL7DataElement.ComponentList
- THL7Segment.FieldList
- THL7Segment.FieldByName
- THL7Message.AppAckRequired
- THL7Message.View
- THL7Message.SegmentList
- THL7Message.EscapeExtendedCharacters - moved to an encoding option
- THL7Message.AddStructName - moved to an encoding option
- THL7DictDataType.Escapable paramater AEscapeMode
- THL7DictStructure.ComponentList
Classes that are no longer defined
- THL7DictEvent,
- THL7Dictionary,
- THL7DictionaryList - these 3 classes were never accessible anyway
THL7Message.Encode and THL7Message.Decode parameters have changed
THL7DictTable properties have been reorganised
THL7DictSegmentGroup replaces THL7SegmentGroup, THL7DictSegmentMapGroup, THL7DictSegmentMapNode and THL7DictSegmentMapSegment
Change 1st parameter type on CheckDOBReal
THL7Batch and THL7File have been changed significantly
1.01-011: Change OpenSSL version 14/04/2005
Two new forms of HTTP based transports have been introduced which are easier to configure and manage
HL7Connect can now generate certificate requests so that it can used certificates signed by some certificate Authority (i.e. Verisign or an in-house trusted server
The OpenSSL version used in HL7Connect was subject to a known flaw. The OpenSSL version used now is openssl-0.9.7e (built using minGW). The openSSL libraries are always used from the directory <install>\ssl but can be replaced with more recent versions of OpenSSL if more recent versions have been released
1.01-010: Fix OnReplyReceived Messages 14/01/2005
There was a bug in the way the Event object was built for when the script event OnReceiveReply was built, which resulted in the "SourceMessage" containing the reply message, and the "ReplyMessage" containing the original source message. This has been fixed, and any scripts running on OnReplyReceived will need to be updated accordingly
1.01-009: Fix leaking database connection 12/01/2005
Several different interface operations could result in leaking database connection. Eventually HL7Connect would run out of connections. This has been fixed
1.01-008: Change to script error handling 06/01/2005
Previously, when a script failed, and the interface was set to shut down on failure, the interface would complete its current message transfer first. This was not appropriate. Now, an error will occur and be reported, as well as shutting the interface down. This should not have any effect on working scripts, just clean up the behaviour when a script fails.
1.01-007: Provisional MySQL Support 05/01/2005
MySQL support has been added, tested against MySQL version 4.1.8. Further field testing is required before MySQL (v4.1.8+) is regarded as fully supported
1.01-006: New Staging Release 12/12/2004
Re-organise folder structure - add Config folder
1.01-005: New Staging Release 29/11/2004
Many small bugs have been fixed, and a new printing system implemented. The development environment will lose its reopen history with this upgrade.
1.01-004: New Element Syntax 15/09/2004
The element syntax used by the THL7Message.element routine in the scripting has been extended. As part of this, an old format SEGn-N:I.O.P is no longer fully supported. The syntax SEG:n-N:I.O.P is supported. This means that if there is any calls to element specifying a segment index, you must add a : at the end of the segment code and before the index.
1.01-003: Minor Release 03/09/2004
Bug Fix - access violations in Pass Through Interfaces
1.01-002: "Serial Messages" file format 19/07/2004
A new file format has been introduced to cater for files consisting of a series of HL7 messages with no delimiters.
