In Connexion v14, some work has gone into the Connexion.Core library to make the interface easier to use. This has resulted in some required changes to devices that make use of this library. This document list the changes that were made.
The primary reason for the change is to make the programming model easier to use when dealing with HL7 field repeats, components, and subcomponents.
In v13 of Connexion a field has a list of HL7Subcomponents, in v14 the hierarchy has been expanded so that it represents the hierarchy inherent in HL7: fields have a list repeats, repeats have list of components, and components have a list of subcomponents.
We believe that the new programming model is easier to understand, and use, however; the down-side is that some devices will need to have some minor changes made to them to have them run in v14. For the most part, unless you are shuffling repeats, components, and subcomponents around, your code will not be impacted by the changes. For example, in the Poiesis.Device, which is a fairly complex device, only required us to replace 3 occurrences of Segment with HL7Segment.
The other change that will cause v13 to v14 device compatibility issues is that we make extensive use of the async functions available in the .NET 4.5 framework. Therefore, new devices in v14 will need to be compiled against the .NET 4.0 framework.
Connexion v13 | Connexion v14 |
---|---|
32-bit only | 64-bit only |
Connexion.Core version 1.0.0.0 | Connexion.Core version 14.0.0.0 |
Compiled against .NET 4.0 | Compiled against .NET 4.5 |
class Segment | class HL7Segment |
class Field | class HL7Field |
class FieldList<T> | class HL7FieldCollection<T> |
n/a | class HL7Repeat |
n/a | class HL7RepeatCollection<T> |
n/a | class HL7Component |
n/a | class HL7ComponentCollection<T> |
n/a | class HL7SubcomponentCollection<T> |
Iterating through nodes in the 1st repeat of the 7th field var field= segment.Fields[7]; | Iterating through nodes in the 1st repeat of the 7th field var field= segment.Fields[7]; foreach(HL7Component comp in repeat.Components) }
|
Field.RepeatCount | HL7Field.Repeats.Count |
.Value | In v14, only the subcomponent has the .Value method, use .Set if you want to set the value of an entire field, or component. |
interface IMessageChannel IMessageContext PostMessageOnChannel(object message);
| Instead use these 2 calls:
|