Skip to content
oehfPublic

About

Open eHealth Integration Platform

Topics

Resources

Stars

194 stars

Watchers

32 watching

Forks

Repository files navigation

Open eHealth Integration Platform (IPF)

Build Maven Central License

IPF is an extension of the Apache Camel routing and mediation engine that provides ready-to-use building blocks for integrating information systems in healthcare. It implements a broad range of IHE transactions as Camel components, and offers domain-specific languages for creating, parsing, validating, navigating and transforming HL7v2, HL7v3/CDA and FHIR messages.

IPF is open source under the Apache License 2.0.

Features

  • IHE transactions as Camel endpoints – act as client (producer) or server (consumer) of an IHE actor simply by using an endpoint URI such as xds-iti18://... or pdqm-iti78:.... IPF takes care of the transport (SOAP/MTOM, MLLP, REST/FHIR), message model, validation and ATNA auditing.
  • ATNA auditing – automatic audit record generation for all supported transactions, serialized as DICOM/RFC 3881 or FHIR AuditEvent, sent via UDP, TLS or FHIR REST.
  • HL7v2 DSL – Groovy and Kotlin DSLs on top of HAPI HL7v2 for navigating and modifying messages, plus mapping services for code translations.
  • HL7v3 / CDA support – parsing, rendering, validation and builders for CDA documents and HL7v3 messages.
  • FHIR – integration of HAPI FHIR (R4) for the IHE mobile profiles (MHD, PIXm, PDQm, …).
  • Spring Boot starters – auto-configuration for all major feature areas.
  • Validation – schema, schematron and profile-based validation of messages at the route level.

Supported IHE profiles (selection)

Area Profiles / transactions
Document sharing (SOAP) XDS.b (ITI-18, 41, 42, 43, 57, 61, 62 …), XDS-I.b (RAD-69), XCA (ITI-38, 39), XCA-I (RAD-75), XCDR, XCF, RMU, RMD
Document sharing (FHIR) MHD (ITI-65, 66, 67, 68, 105)
Patient identity (HL7v2) PIX (ITI-8, 9, 10), PDQ (ITI-21, 22), PAM (ITI-30, 31)
Patient identity (HL7v3) PIXv3 (ITI-44, 45, 46), PDQv3 (ITI-47), XCPD (ITI-55, 56)
Patient identity (FHIR) PIXm (ITI-83, 104), PDQm (ITI-78, 119)
Audit ATNA (incl. RESTful ATNA ITI-81), Basic Audit Log Patterns
Other HPD (ITI-58, 59), SVS (ITI-48), XPID (ITI-64), SeR (ITI-79), XACML 2.0 / PPQ, QED/QEDm, PCD-01, CMPD (PHARM-1, 5)
Swiss national extensions CH:PPQ, CH:ADR, CH:CIQ, CH:PIDD, CH:CIDD, eCH-0213/0214

See the documentation for the complete list and the endpoint URI parameters of each transaction.

Getting started

IPF artifacts are published to Maven Central under the group ID org.openehealth.ipf. Import the IPF BOM to get consistent versions of IPF and all its third-party dependencies:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.openehealth.ipf</groupId>
            <artifactId>ipf-dependencies</artifactId>
            <version>${ipf-version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Then add the Spring Boot starter for the feature area you need, e.g.:

<dependency>
    <groupId>org.openehealth.ipf.boot</groupId>
    <artifactId>ipf-xds-spring-boot-starter</artifactId>
</dependency>

A minimal route acting as an XDS Document Registry for Registry Stored Query (ITI-18):

from("xds-iti18:xds-iti18")
    .process(iti18RequestValidator())
    .process(exchange -> {
        // query your registry here and set the QueryResponse as body
    })
    .process(iti18ResponseValidator());

Runnable examples for HL7v2, XDS, FHIR and IHE clients can be found in the tutorials directory.

Version compatibility

IPF Java Apache Camel Spring Boot HAPI FHIR
6.x 17+ 4.x 4.x 8.x
5.x 17+ 4.x 3.x 7.x
4.x 11+ 3.x 2.x 5.x / 6.x

Release notes and migration hints are available in the changes report and the migration guide.

Project structure

Directory Contents
dependencies Bill of materials (BOM) defining all IPF and third-party dependency versions
commons Camel-independent libraries: IHE message models, validation, ATNA auditing, mapping, XML
modules Standalone DSLs usable without Camel: HL7v2 (Groovy and Kotlin), CDA
platform-camel Camel components and DSL extensions wrapping the commons libraries
boot Spring Boot starters and auto-configuration
tutorials Runnable example applications

Building from source

Requirements: JDK 17 or later and Maven 3.9+. The build is continuously tested on Java 17, 21 and 25.

git clone https://github.com/oehf/ipf.git
cd ipf
mvn clean install                      # full build including tests
mvn clean install -DskipTests          # quick build
mvn install -pl platform-camel/ihe/xds -am   # build a single module and its dependencies

Documentation

Contributing and support

  • Report bugs and request features via GitHub Issues.
  • Contributions are welcome as pull requests against master. Please reference the related issue, follow the existing code style, add tests, and add an entry to src/site/changes.xml for user-visible changes.
  • Questions can also be asked on the ipf-user mailing list.

License

IPF is licensed under the Apache License, Version 2.0. See NOTICE.txt for third-party attributions.

About

Open eHealth Integration Platform

Topics

Resources

Stars

194 stars

Watchers

32 watching

Forks

Releases

Used by

Contributors

Languages