CameleeringCameleer

Cameleering / Cameleer / Packs / Healthcare

Healthcare integration ยท the health pack

An open-source healthcare integration engine: HL7, FHIR and DICOM in one binary

Receive HL7 v2 over MLLP and acknowledge after delivery, talk to FHIR servers, route medical images over DIMSE and DICOMweb, and de-identify them with the PS3.15 profile. Every interface is an Apache Camel YAML route kept in Git and tested in CI, run by one native binary that fits on a hospital gateway. Apache-2.0, no licence fees, no lock-in.

10/10live tests against DCMTK 3.6.7, Orthanc 1.12.2, python-hl7 and HAPI FHIR
3standards in one engine: HL7 v2 (MLLP), FHIR, DICOM (DIMSE and DICOMweb)
+2 MBwhat the pack adds to the binary9.1 MB with the core alone
PS3.15DICOM de-identification, deterministic under a key, with audit records

Status: the health pack is released in 0.6.0 (2026-11-12), as the image cameleering/cameleer:health (or :0.6.0-health) and the cargo feature health. HL7, MLLP and FHIR were in the default image up to 0.5.1; DICOM is new. What it does not do yet.

What is in the pack

standardcomponents, formats and languageswhat you do with it
HL7 v2mllp, the hl7 data format, the hl7terser languagereceive and send ADT, ORM, ORU and other messages over MLLP with automatic AA, AE or AR acknowledgements; read fields by path (PID-3-1); parse ER7 into a structured value and back; TLS
FHIRfhir, the fhirJson and fhirXml data formatscreate, read, update, delete, search, history, transactions and operations on a FHIR server (R4, R4B, R5, DSTU3); convert resources between JSON and XML
DICOMdicom, dicomweb, the dicom and dicomJson formats, the dicom language and ${dicom.*}C-ECHO, C-STORE, C-FIND, C-MOVE and C-GET as SCU and SCP; STOW-RS, QIDO-RS and WADO-RS as client and server; route and edit on tags; DICOM JSON for indexing
De-identificationdicomDeidentifythe PS3.15 Annex E basic profile and its options except the pixel options; replacement UIDs, pseudonyms and date shifts under one key; an audit record per instance

Plus everything else in Cameleer: Kafka, AMQP, databases, files and SFTP, HTTP and REST, cloud services, Apache Camel's routing and error-handling patterns, and MCP tools for AI agents. The DICOM Conformance Statement (PS3.2 form) lists every DICOM service and policy.

Get it

Docker

docker run --rm -p 2575:2575 -v "$PWD:/routes:ro" \
  cameleering/cameleer:health run /routes/adt.camel.yaml

The :health image is also tagged :0.6.0-health and :0.6-health and is also published as ghcr.io/cameleering/cameleer:health, for linux/amd64 and linux/arm64.

Cargo, or your own Rust program

cargo install cameleer-main --features health

A Rust program depends on cameleer-health and calls ctx.add_pack(&cameleer_health::HEALTH). From the next release, release archives come with SHA-256 sums, a CycloneDX SBOM and a Sigstore signature (how to verify); 0.6.0 ships as the image and the crates.

- route:
    id: adt-to-fhir
    from:
      uri: "mllp://0.0.0.0:{{env:MLLP_PORT:2575}}"
      steps:
        - setHeader:
            name: PatientId
            hl7terser: PID-3-1
        - log: "ADT ${header.CamelMllpTriggerEvent} for patient ${header.PatientId}"
        - to: "log:adt"

Tested against the tools hospitals use

againstwhat was checked
DCMTK 3.6.7DIMSE as SCU and SCP, with and without TLS
Orthanc 1.12.2as a PACS; its DICOMweb plugin 1.16 as server and as client
python-hl7 0.4.5MLLP in both directions, AA and AR acknowledgements
HAPI FHIR 8.12.0create, read (JSON and XML), update, search, history, delete
33 pydicom test filesread and written back byte for byte

Live tier of 2026-11-11 (CAMEL_HEALTH_INTEROP=1, 10 of 10), plus the hermetic suite that runs on every change. How each test works: INTEROP.

Coming from Mirth Connect or another interface engine?

The full comparison, with the open-source forks, the commercial engines and sources for every fact: Mirth Connect alternatives.

Why teams look at Cameleer

  • Apache-2.0 open source. Mirth Connect moved to a commercial licence from version 4.6.
  • Interfaces as code: YAML routes in Git, reviewed and tested in CI with cameleer validate and cameleer test.
  • One small native binary instead of a JVM and a database: starts in milliseconds and runs on a gateway.
  • HL7, FHIR and DICOM in the same engine as Kafka, databases, cloud services and AI tools.

What it does not have

  • No visual channel editor and no message browser.
  • No importer for Mirth channels, and Mirth's JavaScript transformers do not run; transformations are Camel steps (Simple, jq, terser paths).
  • Not tested against dcm4che or real modalities yet.

What it does not do yet

  • Not a PACS, a viewer or an EHR. It moves, transforms and de-identifies data between them.
  • Cloud healthcare services not tested yet: Azure Health Data Services, the Google Cloud Healthcare API, AWS HealthImaging (which also needs SigV4 signing).
  • DICOM not supported yet: Storage Commitment, MPPS, UPS-RS, WADO frames and rendered images, transcoding compressed pixel data and the pixel de-identification options.
  • Audit format: hash-chained records, not yet IHE ATNA messages.
  • No throughput numbers yet against Mirth, dcm4che, DCMTK or Orthanc.
  • Compliance: Cameleer provides controls (TLS, de-identification, audit, attestation); it is not HIPAA certified or FDA cleared.

Need something that is not here? We will build it with you.

The health pack grows from what people running real hospital, lab and imaging interfaces ask for. If a message type, a FHIR operation, a DICOM service, a cloud store or a profile stands between you and a working interface, open an issue with your workflow, the systems involved and what you use today. We read every request, reply on the issue, and work on it with you until it ships.

Please never attach data that identifies a patient.

Common questions

Is there an open-source healthcare integration engine for HL7, FHIR and DICOM?

Cameleer's health pack is one, under the Apache-2.0 licence: HL7 v2 over MLLP with acknowledgements, the hl7 data format and terser paths, the fhir component and FHIR JSON and XML, DICOM over DIMSE and DICOMweb, and PS3.15 de-identification. Integrations are Apache Camel YAML routes run by one native binary.

Is Cameleer an alternative to Mirth Connect?

For teams that keep integrations as code, yes: channels become routes in YAML files kept in Git, tested in CI, with Apache Camel's error handling and routing patterns, under the Apache-2.0 licence. It has no visual channel editor, no message browser and no importer for Mirth channels, and it does not run Mirth's JavaScript transformers.

Which image or build has the healthcare components?

The health pack, since 0.6.0: the image cameleering/cameleer:health, or cargo install cameleer-main --features health. The default image and the full build do not include it. Up to 0.5.1, mllp, hl7 and fhir were in the default image; DICOM is new in the pack.

How was it tested?

The health pack's live tests pass 10 of 10 against DCMTK 3.6.7, Orthanc 1.12.2 with its DICOMweb plugin, python-hl7 0.4.5 (MLLP both ways, AA and AR acknowledgements) and the HAPI FHIR 8.12.0 server (create, read, update, search, history, delete, JSON and XML). 33 public pydicom test files are read and written back byte for byte.

Is Cameleer HIPAA compliant?

Compliance belongs to a deployment, not to a library. Cameleer gives you controls: TLS and mutual TLS on MLLP, DIMSE and HTTP, PS3.15 de-identification with audit records, a hash-chained audit log, and, since 0.6.0, attestation in a confidential VM. It is not certified, cleared or audited for HIPAA or by the FDA.

Can I ask for a feature the health pack does not have?

Yes. Open a feature request on GitHub with your workflow, the systems involved and what you use today. Requests are read and answered on the issue, and worked on with the person who asked.