Perfuse

The UK and Europe

A free HL7 and FHIR integration engine for European hospitals

Perfuse connects the hospital's systems (patient administration, laboratory, radiology, PACS, document registries) over HL7 v2, FHIR, DICOM and IHE. It is free under Apache 2.0, runs on your own servers so the data never leaves them, and takes over your Mirth Connect channels.

Also in Deutsch · Français · Nederlands

Why now

Mirth Connect is no longer free. Your interfaces still have to run.

From version 4.6 (March 2025) Mirth Connect is sold under a commercial licence. Many European hospitals run the last open-source release, which no longer gets fixes, or one of its forks. Perfuse is a different engine, not a fork, and it was built to make leaving easy and safe.

Your channels come with you

Perfuse reads channel exports from Mirth 4.5.2, the Open Integration Engine and BridgeLink, runs their JavaScript unchanged, and can export back: each of those servers accepts the channel files Perfuse writes.

Proved on your own traffic

Shadow mode runs a channel beside the live engine on real messages and compares every output, before anything is switched over.

One file, no Java

One program for Linux, Windows or macOS, on Intel or Arm. It holds 45 MB of memory at rest, against Mirth's 383 MB on the same machine.

Free, and stays free

Apache 2.0: use it, change it, run it for others. No licence fee and no paid edition.

Built for Europe

What European sites need, in the engine itself

Data that stays put

It runs inside your network. If you host it in the cloud, -residency eea (or uk, ch) refuses any connector outside the region you allow.

GDPR and UK GDPR

Find everything held about a person in every store, give them a copy, and erase it with a second administrator's approval. Legal holds are respected, and the record of processing (Article 30) is produced from the channels.

37 national patient numbers

The NHS number, CHI, KVNR, BSN, the French INS, codice fiscale, the Nordic personal numbers and more. Each is checked by its check digit, so a mistyped number never links two people.

National code systems

SNOMED CT national editions in the country's language, ICD-10-GM and OPS, CIM-10 FR, the UK's ICD-10 and OPCS-4, WHO ICD-10 and ICD-11.

IHE document sharing

An XDS.b registry and repository, an XCA gateway, MHD, PIXm, PDQm and XDM, tested against the NIST XDS Toolkit. Plus the International Patient Summary.

Twelve languages

The console and the manual in English, German, French, Dutch, Spanish, Italian, Portuguese, Polish, Swedish, Danish, Norwegian and Finnish.

Tested against national profiles

UK Core, FR Core and ISiK, with the results published

Perfuse turned national sample HL7 v2 messages into FHIR, and the official HL7 validator checked every resource against each country's profiles. Each failure has a reason, and the reasons are listed.

GuideMessagesResources passingWhat is left
UK Core STU2 2.0.2NHS Wales' published v2 examples185 of 187A US race code in one sample; one terminology-server error
FR Core 2.2.0ANS's PAM-FR and document examples138 of 156Encounters from messages with no admission date or visit number
ISiK Basismodul 4.0.3Invented German messages18 of 47; 42 of 47 with the hospital's own scriptWhat ISiK requires and v2 does not carry, such as the contact level and the hospital's IKNR, which the hospital adds
Nictiz nl-core (zib 2020)Invented Dutch messages12 of 24; 18 of 24 with the hospital's own scriptCodes the terminology server could not check against Dutch SNOMED CT reference sets
HL7 Europe Hospital Discharge Report 1.0.0The ADT messages among all sets68 of 69A US race code in one Welsh sample
HL7 Europe Laboratory Report 2.1.0The lab results among all three sets106 of 426The guide's report is a document a sender assembles; most sample results name no performer or time

These checks covered the conversion from v2 to FHIR, not a certification. The runs also found and fixed real problems in Perfuse: German code systems, insurance numbers left under their OIDs, practitioners' name types, procedures not converted, Dutch family names sent in parts. What a profile needs and a message cannot say, a hospital adds with a script of its own on the FHIR destination; Perfuse does not guess it. Those fixes are on the main branch and will be in the next release. Every result and how to run it.

Plainly

What is not done yet

  • No hospital runs Perfuse in production yet. If you want to be the first, we would like to hear from you, and shadow mode lets you try it on your own traffic without risk.
  • The translations were made by machine and have not been reviewed by native speakers.
  • Not certified anywhere: no gematik confirmation for ISiK, no national agency approval. The results above are our own runs of the official tools, published so anyone can repeat them.
  • The hosting templates for Frankfurt, Ireland and London have been planned against a real AWS account but never applied. The draft data processing agreement has not been read by a lawyer.
  • Support comes from the BioDream team, through GitHub.

Try it on your own channels

Run perfuse explain on a Mirth export, or open the public test server with invented data.