Click here to return to Trial Download Information page
2.00-018: Able to specify alternate port SMTP hosts + Bug Fix 7/26/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 6/24/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 6/17/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 6/16/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 6/3/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 6/3/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 5/25/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 5/24/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 5/18/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 5/3/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 4/29/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 3/19/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 3/13/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 3/3/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 2/17/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 2/8/2010
Define master system OID (globally unique)
2.00-002: XDS Affinity Domain Aspects 2/6/2010
Add Annotations for XDS affinity domain properties
2.00-000: CDA support 2/1/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.
Important!: This is a major conversion, and includes a rebuild of the main message store. Expect this process to take a long time on large operational databases. In addition, note that this upgrade cannot be run as a single transaction; if the upgrade fails (i.e. running out of transaction log space) you will need to restore from backup and try again.
1.06-002: Fix bug in Message Encoding 12/4/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 11/19/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 9/4/2009
Added a WScript equivalent for scripts (WScript.ScriptFullName etc)
1.05-003: Direct Script Execution 9/4/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 9/4/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 9/4/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 9/4/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 6/11/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 3/19/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 3/16/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 3/12/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 3/6/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 3/4/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 3/4/2009
Track actual message sent when script changes outgoing message
1.02-001: Update for new Microsoft Security Policies 3/2/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 2/29/2008
1.01-018: Change to RawContent in Scripts (see 1.01-015) 2/27/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 12/8/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 7/31/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 4/4/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 5/19/2005
Added Support for:
- Internet Explorer 7
- SQL Server 2005
1.01-013: Several Minor fixes 5/19/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 4/19/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 4/14/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 1/14/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 1/12/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 1/6/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 1/5/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 11/29/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 9/15/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 9/3/2004
Bug Fix - access violations in Pass Through Interfaces
1.01-002: "Serial Messages" file format 7/19/2004
A new file format has been introduced to cater for files consisting of a series of HL7 messages with no delimiters.
