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 is built upon and extends the Apache Camel routing and mediation engine. It comes with comprehensive support for message processing and connecting systems in the eHealth domain. IPF provides domain-specific languages (DSLs) for implementing Enterprise Integration Patterns in general-purpose as well as healthcare-specific integration solutions.
License
IPF code is Open Source and licensed under Apache license.
Development
Contribute by reporting issues, suggesting new features, or forking the Git repository on GitHub and provide some good pull requests!
What’s New
The current version of IPF is 6.0.0. It moves IPF to Jakarta EE 11, Spring Framework 7 and Spring Boot 4.1, and removes functionality that has been deprecated in the IPF 5.x releases. The most prominent changes are:
- Platform upgrade: Spring Boot 4.1, Apache Camel 4.22, Apache CXF 4.2, Jackson 3 and HAPI FHIR 8.12. Java 17 remains the minimum; IPF 6.0 is also tested with Java 21 and 25.
- Reimplemented mapping service: a typed
MappingsAPI and declarative, validated mapping formats (IPF XML, IPF YAML and FHIR ConceptMap R4). The previousMappingServiceand the Groovy.mapformat are deprecated. See Defining and Loading Mappings. - Simplified extension mechanism: custom mappings, HL7v2 model classes, DSL extensions and route builders
are collected by their holders themselves, so the
ConfigurerSPI and theSpringConfigurationPostProcessorare no longer needed. See Dynamic registration of IPF features. - Tracing with Camel telemetry: IPF’s own HL7v2 tracing support is replaced by span decorators for Apache
Camel’s telemetry SPI, e.g. with
camel-opentelemetry2. See Tracing with Camel telemetry. - New and updated transactions: PIXm Patient Identity Feed ITI-104, MHD 4.2.4 including the Target Communities Option, and FHIR Binary streaming uploads for large documents with ITI-65 and ITI-105.
- ATNA auditing follows the latest DICOM CPs, and the audit transports deprecated in IPF 5.0 were removed. See Audit Transmission Protocols.
- Hardened XML processing against XXE and SSRF attacks.
- FHIR STU3 support has been removed; use the FHIR R4 modules instead.
See the list of fixed Github issues for an overview:
- Fixes for 6.0.0
- Fixes for 5.3.0
- Fixes for 5.2.0
- Fixes for 5.1.0
- Fixes for 5.0.0
- Fixes for 4.8.0
- Fixes for 4.7.0
- Fixes for 4.6.0
- Fixes for 4.5.0
- Fixes for 4.4.0
- Fixes for 4.3.2
- Fixes for 4.3.1
- Fixes for 4.3.0
- Fixes for 4.2.0
- Fixes for 4.1.0
- Fixes for 4.0.0
- Fixes for 3.7.2
- Fixes for 3.7.1
- Fixes for 3.7.0
The IPF 6.x release supports Java 17 and up, Spring Boot 4.x, Camel 4.x and Jakarta EE 11. Major new features will be developed primarily for IPF 6.
IPF 5.x supports Java 17 and up, Spring Boot 3.x, Camel 4.x and Jakarta EE 10. Applications that cannot move to Spring Boot 4 yet can stay on IPF 5.3, but we recommend upgrading to IPF 6.
IPF 4.x supports Java 11 and up, Spring Boot 2.x as well as Camel 3.x.
IPF 3.7.x was the last release supporting Java 8 and Camel 2.x. The support for this branch has already ended and we highly recommend the upgrade to a recent JDK and new IPF releases.
Update Instructions
If you are using previous versions of IPF and want to update:
- IPF 6.0 is not backwards-compatible with IPF 5.x, primarily because it is now based on Jakarta EE 11, Spring Boot 4
and Jackson 3. It also reimplements the mapping service, deprecates the
ConfigurerSPI, replaces the tracing support and removes FHIR STU3. See 6.0 Update Instructions for details. - IPF 5.3 completes FHIR-based (BALP) ATNA auditing, renaming and deprecating a few audit classes, and deprecates all FHIR STU3 support. See 5.3 Update Instructions for details.
- IPF 5.2 is backwards-compatible with IPF 5.1, but brings stricter validation for some FHIR transactions and major Camel and Groovy updates. See 5.2 Update Instructions for details.
- IPF 5.1 consists primarily of bugfixes and dependency updates. See 5.1 Update Instructions for details.
- IPF 5.0 is not backwards-compatible with IPF 4.x, primarily because it is now based on Jakarta EE 10. See 5.0 Update Instructions for details.
- IPF 4.8 introduce some changes that are mention in 4.8 Update Instructions.
- IPF 4.4 has reimplemented IHE MLLP component. Read the 4.4 Update Instructions for how to update from earlier versions
- IPF 4.x is not backwards-compatible with IPF 3.x. However, there is most likely not much to be changed, and this is mostly due to the JDK and Camel upgrades. Read the 4.0 Update Instructions for how to update from IPF 3.7.x
- IPF 3.7.x comes with a few minor changes. Read the 3.7 Update Instructions for how to update from IPF 3.6.x
When doing a upgrade to newer IPF version, we recommend to sync minor versions of Spring Boot and Apache camel within your application, with the versions used in the corresponding IPF release. Please see the dependency management of IPF releases to see which version you should consider.
Issue Tracking
Issue tracking is done in github. For current issues check https://github.com/oehf/ipf/issues. Questions? Please direct your issues to the IPF User Google Group.
Javadocs
The javadocs can be obtained here.