Current Release

Name 1.0.9
Date Thu Feb 6 2014 at 00:00
Status Stable
Download Releases

Project Activity

ActivityUp this month
Total Issues24
Open Issues1

Recent Comments

0 Dislike0 Like
0 Total Comments


LibraryTech Exchange Projects

Team Members

Project Moved:

This project has moved to CodePlex here: The Maven repository will remain at TE's maven repository until December 2015 after which time it will be moved. All new updates to the framework will be provided on CodePlex.

What is the MARC-HI Everest Framework Java Edition?

In short, the Everest Framework is designed to ease the creation, formatting, and transmission of HL7v3 structures with remote systems. The Java Edition of Everest represents a complete port of the Everest Framework .NET into Java. The port maintains much of the functionality of the original Everest Framework but has been adapted to Java paradigms and patterns.

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
Everest currently supports serializing structures to/from the following formats:

  • XML ITS 1.0
  • HL7v3 XML Data Types R1 (UV and CA extensions)
Everest currently supports transporting structures to/from other systems using the following connectors:

  • Spring Framework Connector (Client 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 

Maven Repository

The Java version of Everest is distributed on our hosted maven repository, details for your POM file are below:


GroupID for all Everest projects is org.marc.everest, ArtifactIds are as follows:

  • everest-core - Everest core modules
  • everest-connectors-spring - Everest Spring Connector
  • everest-formatters-xml-its1 - Everest XML ITS1 Formatter
  • everest-formatters-xml-dt-r1 - Everest XML Datatypes R1 Formatter
  • everest-rmim-{ca|uv}-{version} - RMIM Assemblies

SVN Access

Everest source code is now available via SVN. Everest source code can be retrieved using the following commands:

Java Everest Trunk

Contains the most recent copy of the Java Everest development source. This branch is experimental and may change frequently.

svn co --username=guest