HL7 Vendor Definition Files

PreviousNext

File Format Changes in Version 3.0

(c) 2011 Hermetech International Ltd.

Beginning with version 3.0 we have changed the file format of the HL7 vendor definitions (files stored in the VendorPath property and created when you call InstallDefaultVendors) as well as the vendor definitions 'portable' file format (files imported and exported using ImportVendor and ExportVendor).

 

Vendor Definition Files. In prior versions of the EasyHL7 Managed Code objects HL7 Vendor definitions were stored in a series of ".zml" files. There were many of these files as each separate vendor definition required 6 to 8 separate physical files. Now that file format has been replaced by the ".nml" file format which is much more compact in that it requires only 1 physical file per vendor definition and 1 control file. Simply this means that in prior versions when you would call the InstallDefaultVendors method it would create 40-50 physical files on the file system and now (for HL7 versions 2.2 thorugh 2.6) it will only create 7 discrete files.

 

Programming impact. With very few exceptions you should experience no impact to any of your programs as a result of this change. The version 3 code objects have been designed so that when you set the VendorPath property to a folder which only contains HL7 Vendor definitions stored in the old ".zml" format then it will do an automatic "in place" conversion of the old vendor definitions into the new file format. This process is AUTOMATIC but there are still some scenarios which you might consider to determine if your applications need further tweaking. Here are a few of them:

 

If your application does not have adequate user rights to the VendorPath then the automatic conversion will fail and of course all other efforts will fail because the code objects cannot "find" any vendor definitions in the VendorPath.
If you've built an installation or deployment package which creates and installs the old ".zml" files for your application then you should a) Run your application in your own test/lab to let the automatic file upgrade take place and then b) change your installation package and replace the ".zml" files with the new ".nml" files.
You can no longer write applications with both the 32 Bit EasyHL7 ActiveX Objects AND the EasyHL7 ManagedCode Objects which "share" a VendorPath. Once the automatic upgrade has occurred and the ".nml" vendor definitions have been created the EasyHL7 Managed Code Objects will no longer reference the old file format.

 

 

'Portable' Vendor Definitions. In prior versions the file format used when importing or exporting HL7 vendor definitions was our ".ehv" file format. This has been replaced with our ".vDef" file format. This could impact your application development in several ways. Here are some things to consider:

 

If you include one or more ".ehv" files in your program's installation/deployment package and then use the ImportVendor method to create your custom vendor "post installation" then you will need to export (or convert) the vendor definition file(s) again in the new vDef format and change your program and installation/deployment package accordingly.
Vendor definitions exported by applications using the EasyHL7 32 Bit ActiveX objects cannot be imported using the ImportVendor method in applications built using Version 3 of the EasyHL7 Managed Code Objects.
Vendor definitions exported by calling the ExportVendor method (".vDef" files) in applications compiled with version 3 of the EasyHL7 Managed Code Objects CANNOT be imported using the ImportVendor method of applications compiled using either the EasyHL7 32 Bit ActiveX objects OR earlier versions of the EasyHL7 Managed Code Objects.

 

How do I convert my old exported vendor definitions (".ehv" files) to the new format (".vDef" files)?. This is really very simple. You can either use the Vendor Manager using the ShowVendorManager() method (see User Interfaces) or the ExportVendor method to export your file again (remember to save using the new .vDef file extension). You can also open the vendor manager (again see User Interfaces or Chapter 6 of the Example Program) and in the "Tools" menu you will see an option to "Convert EHV files" (see screenshot below.

 

 

 

Why the format change? We had 2 major reasons for changing the file format and both are aimed at making the HL7 development process as painless as possible for you, the HL7 software developer.

 

The first reason was to minimize the physical "footprint" that the vendor definitions leave on the file system. With so many different files it's easier for users to make mistakes when either copying or moving files or when creating their deployment packages. If even 1 file were left out then the entire vendor set was corrupted and application failure could result.

 

The second reason was because the old file format (in order to be backwardly compatible with the EasyHL7 ActiveX objects) used some file streaming features of ADO (Microsoft ActiveX Data Objects) which is an older technology. Also, while it does have a .Net Interop DLL which is always installed with the .Net framework (at least through Framework 4.0) it is NOT true .Net managed code and is not a part of the native .Net framework. Since the first release we have been striving to make sure that ALL processes in the Managed Code objects actually use true .Net Managed Code.

 

Does this mean that version 3 no longer references unmanaged code? Unfortunately no. Version 3 does come extremely close in that the only references to ADO in the current version are the ones related to converting old vendor formats to the new vendor formats. We will be phasing this out completely in future versions.