The Everest Framework is designed to ease the creation, formatting, and transmission of HL7v3 and CDA structures with remote systems.
C# Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
FormatterUtil Fixed broken files. Jun 3, 2013
MARC.Everest.Connectors.File Updated copyright notice on all files. Jul 31, 2013
MARC.Everest.Connectors.MSMQ Updated copyright notice on all files. Jul 31, 2013
MARC.Everest.Connectors.WCF Fixed rendering of class content Mar 3, 2014
MARC.Everest.Formatters.XML.Datatypes.R1 Fixed formatting of GTS type not emitting xsi:type Mar 7, 2014
MARC.Everest.Formatters.XML.Datatypes.R2 Rollback previous namespacing issue commit Feb 17, 2014
MARC.Everest.Formatters.XML.ITS1 Merged from /branches/1.2 Mar 7, 2014
MARC.Everest.Installer Added ordering to the Java renderer Feb 7, 2014
MARC.Everest.Test.Generator Initial Checkin Apr 5, 2012
MARC.Everest.Test Fixed formatting of GTS type not emitting xsi:type Mar 7, 2014
MARC.Everest.VisualStudio.Wizards Fixed rendering of class content Mar 3, 2014
MARC.Everest Merged from /branches/1.2 Mar 7, 2014
MohawkCollege.EHR.gpmr.Pipeline.Triggers.CorDelta Updated copyright notice on all files. Jul 31, 2013
Samples EV-1096 #complete Fixed the CDA representation="" emit Jul 12, 2013
Solution Items Removed HL7 and CHI IP Jun 23, 2015
gpmr Merged from /branches/1.2 Mar 7, 2014
.gitignore Added gitignore file Jun 25, 2015
EverestApache.licenseheader Fixed rendering of class content Mar 3, 2014
GPMR readme.txt Initial Checkin Apr 5, 2012 Create Apr 15, 2017
License.rtf Updated ENXP formatting to better handle qualifiers Jun 6, 2013
LocalTestRun.testrunconfig Localization implementation Jun 1, 2013 created Apr 8, 2017 Merged from /branches/1.1 Nov 9, 2012
api.sln Merged from /branches/1.0 May 30, 2013
api.vsmdi Fixed corrupt api.vsmdi file Mar 13, 2014
everest.sln Updated Everest solution (wasn't building full installer) Jul 22, 2013


In short, the Everest Framework is designed to ease the creation, formatting, and transmission of HL7v3 structures with remote systems. 

The "framework" provides a series of consistent, well documented components that, when used together, provide a flexible mechanism for supporting HL7v3 standards within application. Through a combination of automatically generated code and carefully constructed handwritten modules, Everest has the ability to serialize, validate, and transmit structures. Everest comes bundled with basic serialization capabilities for:

  • HL7 Clinical Document Architecture r2
  • HL7v3 Messaging
  • Normative Edition 2008
  • Normative Edition 2010
  • pan-Canadian Messaging Specifications
  • R02.04.01
  • R02.04.02
  • R02.04.03

The serialization assemblies bundled with Everest represent the structures contained within the MIF files bundled with documentation (where license permits), functionality (validation, casting, etc.) and structure meta-data. Additional standards or documentation for the bundled DLLs can be generated by processing Model Interchange Format (MIF) files (version 2.1.2, 2.1.3, 2.1.4, 2.1.5 and 2.1.6) using either the GPMR or GPMR Wizard tools bundled with the framework. The following (additional) standards are known to work with Everest but are not included:

  • pan-Canadian CeRX 4.3 messaging
  • Universal Normative Edition 2009

Everest currently supports serializing structures to/from the following formats:

  • XML ITS 1.0
  • HL7v3 XML Data Types R1 (UV and CA extensions)
  • HL7v3 XML Data Types R2
  • Binary format

Everest currently supports transporting structures to/from other systems using the following connectors:

  • Windows Communication Foundation (Server/Client mode) (basicHttpBinding, wsHttpBinding, ws2007HttpBinding, netTcpBinding)
  • File Systems (Server/Client)
  • Msmq (Publish only)

The pillars of Everest are:

  • Intuitiveness: All components within Everest are designed to be intuitive to developers. Great care has been taken to reduce the complexity of the Framework and allow developers to focus on HL7v3 messaging
  • Standards Compliance: Being a standards-based framework, one of the foundational pieces is standards compliance. The Everest framework is more than just a serialization engine; it will generate messages, transport them, and validate instances in a standards-compliant manner.
  • Quality: Everest code is held to the highest standard of quality in terms of regression testing and documentation. All changes made to the framework are reviewed for their quality and are subject to over 8,000 tests.
  • Performance: Everest has been designed with long-term performance in mind. Many of the methods within Everest (especially formatting) have the ability to "learn" and become faster the more they are used.
  • Flexibility: Everest has been designed to be flexible in the manner that allows it to support new HL7v3 standards.

The MARC-HI Everest Framework is modeled using a very loosely coupled architecture. This design allows application developers to program against one set of HL7v3 models, and serialize/de-serialize to many different Implementable Technology Specification (ITS) formats. The MARC-HI Everest Framework also allows applications to consume or produce these models using a wide array of transport mechanisms.

This flexible architecture ensures that the internal canonical data of your application is safely insulated from changes in the HL7v3 ITS, or transport specifications.

framework diagram

Continuous Integration Status:

You can view the CI build results of Everest here: