The eHealth Framework: A Healthcare Technology Platform
Dr. Matthias Laux, Marie Oetzel and Alexander DudaThe eHealth Framework (eHF) is a platform built on open source technologies for developing applications and solutions as well as for data exchange and integration scenarios in the eHealth sector. It makes consistent use of principles such as modularization and model-driven software development for high robustness and security and to achieve semantic interoperability.
In the healthcare market there are different actors and interest groups, doctors, hospitals, pharmacies, health insurers, medical associations, hospital associations and medical care centers - and, of course, the insured person or patient who uses medical services. The aim of both the health care reform plan as well as companies in the healthcare industry is to place the patient or customer at the center of the communication between the actors.
Requirements from the health sector
To ensure such an offer of care to patients, it is necessary that the data can be exchanged smoothly and with maximum security between the actors involved in the healthcare sector. Patients today want to take a more active role in their healthcare and have direct access to their own health data. This can be achieved with a personal health record that allows patients to manage their health data over their entire life as well supporting the interaction with other actors.
This networking can only really work smoothly if the semantic interoperability of the data ex-changed is guaranteed. This is achieved through the use of controlled vocabularies, such as ICD10 as specified by the World Health Organization (WHO). Another aspect of networking is the use of standardized data exchange methods such as, for exam-ple, those specified in the context of Health Level 7 (HL7) and Integrating the Healthcare Enterprise (IHE). Here, existing and established technical data formats and protocols for exchange scenarios are combined, which in turn meet the technical requirements for healthcare.
Ensuring data security during processing and exchange is of prime importance, because health data is characterized by its extreme sensitivity. Therefore, a technology platform must be able to offer very versatile and particularly sophisticated functionalities in all security-related areas like for ex-ample authentication, authorization, and auditing. Moreover, it is imperative that these functions are constantly evolving to counter new attack scenarios.
How can these requirements be addressed?
To meet these extensive requirements, ICW has developed a technology platform - the eHealth Framework (eHF) - which constitutes the basis for of ICW’s products. The eHF is now also available to other companies that are active in the healthcare market, or are interested in becoming involved. To that end two parallel strategies are being pursued. One being that parts of eHF will be open sourced the other is cooperation with partners will be intensified.
A gradual strategy was chosen for going open source. This process was initiated by the creation of the Open eHealth Foundation (OeHF) [1] and in the long term it will be driven by them. The founding members of OeHF were Sun Microsystems, Agfa Healthcare und ICW. For the Open eHealth Foundation the Apache Software License (ASL) 2.0 is used meaning that artifacts from the Foundation can be used in Open Source as well as in proprietary products.
As an introduction to the eHF, the eHF Partner Guide is available. It offers a comprehensive collection of resources and services around the Framework. The Partner Guide DVD is available as a free download from the ICW Developer Network (IDN) [3]. As well as software the DVD contains documentation, tutorials and descriptions of available services. The eHF Partner Guide addresses developers, architects plus product managers and decision makers who are concerned about business models.
Fig. 1 The eHF Partner Guide concept
What does the eHealth Framework offer?
The eHealth Framework is a tried and tested in practice, holistic infrastructure for the development and integration of software systems. It covers the entire software lifecycle, from the design phase through to implementation to upgrade to a newer version. The eHF is far more than a straightforward application library. Behind the framework is a dedicated process model for the agile and modular development of robust and reusable software components.
Semantic interoperability and security are the decisive factors in favor of the eHF. It is based on open standards and builds on the conceptual principles of modularization, model-driven software development (MDSD) and the Product Line Engineering (PLE). These concepts are supported by the functionality provided by the eHF. A multi-stage build process, encapsulated in several Maven plugins, as well as a Source-Code-Generator is part of this functionality. These form the core of the eHF Development Environment.
The eHF also offers, grouped under the term Solution Platform - first, a collection of reusable modules (Application Platform) and, secondly, an Integration Platform based on Apache Camel (Integration Platform).
Fig. 2 eHealth Framework Overview
The goal of the eHF is to enable architects and developers to focus on their problem domain and the associated technical complexity, through the use of eHF functionality and to thereby significantly reduce the effort of developing robust and architecturally homogeneous applications.
Modularization
In the eHF functionality is always realized in the form of a module. Thereby, a module covers a dedicated problem domain. Each eHF module defines a stable, versioned, public interface (public API) and hides the details of the internal implementation. In this way, loose coupling and reusability of modules is achieved with all the advantages as mentioned in the literature.
Fig. 3 - eHF Meta-Model
Different modules can be assembled into applications. Individual modules can be used within a variety of applications. A good example is the eHF Authentication module, the authentication component of eHF. This module provides various ServletFilters for authentication, such as HTTP Basic, X.509 certificates or SAML token. These filters can be used by any servlet-based Web application.
Model-Driven Software Development
The eHF relies on Model-Driven Software Development (MDSD) in order to achieve a higher quality of the software through rigorous enforcement of conventions and elimination of redundancies. Experience shows that the speed of development increases and that the roll out of changes to core aspects of the architecture is greatly simplified.
The domain centric model is formulated in a domain-specific language (DSL) and abstracts from the actual technical implementation. Thus, a separation of concerns is achieved because the domain-specific knowledge is encapsulated in technology-neutral models. The technical expertise, in contrast is found in the Generator-Templates.
Product Line Engineering describes a method to produce in the same way a number of similar software systems. They have a well-defined variability and a common base in respect to the platform.
The eHF Generator produces a variablized software architecture as a basis for such software system families. These can be instantiated by the eHF Customization Module and the installation process for specific applications is used for localization and branding.
The eHF Solution Platform
The Solution Platform consists of two parts; the Application Platform and Integration Platform. These are based throughout on open technical (for example, Java EE, JAAS) and functional standards (for example HL7) as well as on Open Source software.
Application Platform
The Application Platform is the toolbox which developers can use when developing new systems. It offers a range of different functionality that is encapsulated into loosely coupled modules. All modules follow a homogeneous multi-layer architecture. The eHF strictly enforces a Public API, which defines the contract for each of these modules.
The technical backbone of an eHF module is made up of the Spring Framework and the Hibernate O/R mapper. Each module has its own autonomous module context and, in the case of persistent modules, a separate database schema. SOAP Web Services, if provided by the module, are exposed using Apache Axis. For the treatment of Crosscutting Concerns such as authorization or input validation, the eHF makes heavy use of AOP with AspectJ and Spring AOP.
The Application Platform now offers over two dozen modules in the areas of Security, Infrastructure, Core and Application:
Figure 4 - eHF Application Platform
The security modules include, among other things functionality for authentication, authorization, auditing, user management and pseudonymization. The infrastructure modules include, for example, the management and retrieval of code systems and standardized vocabularies. The Core defines data types and interfaces. The Application area contains eHealth specific modules for managing structured (eHF Record) and unstructured (eHF Document) medical data and documents.
eHF modules can be assembled into applications; this applies to both the modules of the Application Platform as well as for modules that are developed based on the eHF. Since all modules have high cohesion, but there is a low coherence between the modules, the necessary integration effort is limited to the configuration of shared resources, for example, a HibernateSessionFactory or a transaction manager.
Integration Platform
For the integration of several independent systems, the eHF relies on the Open eHealth integration platform. This is an extension of the Apache Camel routing and mediation engine. The Integration Platform provides extensive support for message-based communication between systems and im-plements a range of Enterprise Integration Patterns. It uses a Java-based DSL (domain-specific lan-guage) for Apache Camel as well as a Groovy-based DSL for defining routes. The Integration Plat-form offers services, such as transformations between different medical data formats or interfaces, or IHE (Integrating the Healthcare Enterprise) specified actors. You will find more on the Open eHealth Integration Platform in [1] and [2].
Functionality for the Healthcare Sector
The eHF addresses the healthcare domain. Most modules are used generically, such as the extensive functionalities in the area of security. Some of the key features that provide added value for applica-tions in healthcare will be briefly presented:
- Health Record: eHF Record allows the storage and management of structured data such as medical diagnoses, findings, vaccinations and the like. The data model is based on the HL7 Reference Information Model (RIM) [4].
- Document: eHF Document allows the storage and management of documents such as images (X-ray, CT, MRI ...) and other unstructured (PDF, DOC ...) and structured (XML) documents. This includes versioning and relations between documents. Because much of the information available in the health sector is in this form an administrative function is of great practical relevance.
- Terminology Services: Terminology management is absolutely essential for semantic interoperability between healthcare systems. Therefore, with the Terminology Services the eHF provides these capabilities for the validation and resolution of codes from various healthcare terminologies.
- Transformations: In addition to data format specifications HL7 also includes standards for message formats. With the help of the Integration Platform, it is possible to perform conversions for the communication between connected systems. A relevant practical use case is the transformation between HL7 Version 2 and Version 3.
The eHF Development Environment
The Development Environment is used to create concrete eHF-based modules and complete applications based on them. The centerpiece is the eHF Generator. Based on openArchitectureWare and an extensive collection of Xpand templates, it generates Java source code and Spring configuration files for eHF modules.
The eHF Generator uses a meta-model formulated in EMF. UML2 is used for the model definition. Here, the extension mechanisms of UML are used to support eHF-specific concepts. If a model element is identified, for example, with the eHF domain object stereotype, the generator produces a persistent Java Bean from it. The eHF-DomainObject stereotype still has a range of tags. Based on this the model can be used to control whether the underlying domain object is exposed, for example, as a transfer object or whether it should create a dedicated CRUD service stack.
Around the Generator the eHF has a Build process based on Apache Maven. The technical details are encapsulated by a number of Maven plug-ins. To build an agile development environment a continuous integration environment (Hudson) with Subversion integration is provided. The continuous integration and generation of documentation using DITA artifacts is also supported.
As an integrated development environment (IDE) the eHF offers a preconfigured and extended version of Eclipse. It includes many plug-ins that support eHF development.
The Runtime Environment used is based on Java 6. The deployed runtime environment includes a preconfigured combination of Apache Tomcat as the web container and Apache httpd as the SSL endpoint. As a development database, the eHF includes the lightweight Java database Hypersonic SQL.
The build process produces several Java archives for different purposes, for example, a public API and a runtime artifact.
eHF in Action
The eHF is already being used for the realization of various applications. The main area is currently in the various e-health products of ICW AG.. This includes applications for both providers of healthcare services, as well as applications for end customers. For example, LifeSensor [5], a personal health record, is aimed at the latter group. LifeSensor makes full use of the eHF Development Environment and the Application Platform and uses all the components offered by the eHF as well as developing its own modules based on eHF.
Another successfully implemented application external to ICW is the DFB-performer. This is an application that was developed together with DFB media for the German national football team. It allows the coaches of the German Football Association access to any information at any time such as players’ performance data, which they can analyze. In this scenario the eHF scored highly with its security and integration components.
Summary
The increased networking of stakeholders in the healthcare market, the trend toward patient-centered healthcare and the healthcare reform plans in the United States show good prospects for the industry as a whole.
With the eHF you have a Framework built on Open Source technologies for developing applications and solutions as well as for integration and data exchange scenarios in the eHealth area that is available now. It makes consistent use of principles such as modularization and model-driven software for high robustness and security and to achieve semantic interoperability.
The eHF will be gradually transferred to the open source community and handed over to the Open eHealth Foundation. The eHF is already available for those who are interested in it. Through the eHF Partner Guide extensive documentation and services are available around the eHF. The Partner Guide DVD can be obtained free of charge via the ICW Developer Network.
Links & Literature
[1] Open eHealth Foundation: www.openehealth.org
[2] Article on the Open eHealth Integration Platform:
architects.dzone.com/articles/introduction-open-ehealth
[3] ICW Developer Network: idn.icw-global.com
[4] HL7 Home Page: www.hl7.org
[5] LifeSensor Home Page: www.lifesensor.com
[6] This article originally appeared in the German language publication Java Magazin issue 10.2009 published by Software & Support Verlag, Frankfurt am Main, Germany. Republished here with their permission.
