eHealth standards on steroids
The Open eHealth Integration Platform (IPF) provides interfaces for health-care related integration solutions. An prominent example of an healthcare-related use case of IPF is the implementation of interfaces for transactions specified in Integrating the Healthcare Enterprise (IHE) profiles.
IPF can be easily embedded into any Java application and additionally supports deployments inside OSGi environments.
IPF is built upon and extends theApache Camel routing and mediation engine. It has an application programming layer based on theGroovy programming language and comes with comprehensive support for message processing and connecting systems in the eHealth domain. IPF provides domain-specific languages (DSLs) for implementingEnterprise Integration Patterns in general-purpose as well as healthcare-specific integration solutions.
Seethe list of fixed Github issues for an overview. We also have some more detailedRelease Notes.
IPF usesMaven as build tool. Depending on your project needs you might want to define dependencies to various IPF artifacts. For example, the following statements will include all dependencies needed to work with IPF interfaces for MLLP-based HL7v2IHE transactions:
<dependency> <groupId>org.openehealth.ipf.platform-camel</groupId> <artifactId>ipf-platform-camel-ihe-mllp</artifactId> <version>3.5.1</version></dependency>
Even better, you can import the IPF bom in the dependency management section. Then you don’t have to provide version numbers for the major dependencies anymore.
<dependencyManagement> <dependency> <groupId>org.openehealth.ipf</groupId> <artifactId>ipf-dependencies</artifactId> <version>3.5.1</version> <type>pom</type> <scope>import</scope> </dependency> ...<dependencyManagement><dependencies> <dependency> <groupId>org.openehealth.ipf.platform-camel</groupId> <artifactId>ipf-platform-camel-ihe-mllp</artifactId> </dependency> ...</dependencies>
Now you can expose or consume IHE-compliant MLLP-based transaction endpoints, e.g. receiving and validating PIX Feed requests:
import static org.openehealth.ipf.platform.camel.ihe.mllp.PixPdqCamelValidators.*; import org.apache.camel.builder.RouteBuilder; from("pix-iti8://0.0.0.0:8777?audit=true&secure=true") .process(itiValidator()) // validate incoming request .process(myProcessor); // process the incoming request and create a response
The following table summarizes the IPF features related to the eHealth domain:
Feature | Description |
---|---|
Support for eHealth integration profiles | A set of components for creating actor interfaces as specified in IHE and Continua integration profiles. IPF currently supports creation of actor interfaces for the IHE profiles XDS.a, XDS.b, PIX, PDQ, PIXv3, PDQv3, PIXm, PDQm, MHD, QED, XCPD, XCA, XCA-I, XCF, XPID, PCD, as well as for Continua profiles HRN and WAN. |
HL7 Message processing | Basis for HL7 message processing is the HL7v2 DSL. These provides the basis for implementingHL7 Message processing Camel routes. |
HL7 Message translation | Translation utilities for translating between HL7v3 and HL7v2 messages for corresponding IHE transactions |
CDA Support | Wrapping a number of CDA-related libraries, providing the basis for implementingCDA processing Camel routes. |
FHIR Support | FHIR® – Fast Healthcare Interoperability Resources (hl7.org/fhir) – is a next generation standards framework created by HL7 leveraging the latest web standards and applying a tight focus on implementability. |
DICOM Audit Support | Support for constructing, serializing and sending DICOM audit messages |
Other IPF features provide part of the underlying foundation or supporting functionality:
Feature | Description |
---|---|
Core Features | Domain-neutral message processors and DSL extensions usable for general-purpose message processing. |
Code System Mapping | A simplistic mechanism for mapping code values between code systems |
Dynamic Feature Registration | Aids in building up modular integration solutions where each module contributes routes, services etc. to the overall application |
IPF comes with someSpring Boot Starters that support running eHealth applications in the Spring Boot runtime environment.
IPF 3.5.1 added the modules listed below:
IPF 3.5.1 deprecates the following modules:
These modules will be removed as soon as FHIR r4 support has been included.
The javadocs can be obtainedhere.
Tutorial | Description |
---|---|
HL7 Support tutorial | How to integration HL7 message processing into Camel |
XDS tutorial | A Groovy based implementation of an XDS repository |
Dynamic extension tutorial | How to have IPF-based application modules contributing to an application |
IHE Client Example | Some examples how to use IPF producer endpoints |
If you are using previous versions of IPF and want to update:
Contribute by reporting issues, suggesting new features, or forking the Git repository onGitHub and provide some good pull requests!
IPF code is Open Source and licensed underApache license.
Copyright ©2018Open eHealth Foundation. All Rights Reserved.
Version: 3.6-SNAPSHOT.Last Published: 2018-06-15.