This project has moved. For the latest updates, please go here.
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.
Architecture

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:

 <project>
     ...
         <repositories>
             <repository>
                 <id>marc-te-main</id>
                 <url>http://te.marc-hi.ca/mvn</url>
             </repository>
         </repositories>
     ...
 </project>         

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

Last edited Jul 14, 2015 at 12:28 PM by jf03cg, version 2