For developers · CLI-first · Open Source · MPL-2.0

Open Source Healthcare Integration Framework
HL7, FHIR & X12 — as Code.

Stop fighting legacy GUI-based engines. Build, version, and deploy healthcare integration pipelines with YAML and TypeScript. Git-native, AI-friendly, CLI-first.

$ npm install -g intu-dev
intu npm package version badge intu npm monthly downloads badge intu GitHub repository stars badge intu GitHub repository forks badge intu MPL-2.0 open source license badge intu continuous integration build passing badge intu Go test coverage badge intu unit and contract test status badge

What is Healthcare Integration as Code?

Every other part of your stack is defined as code—infrastructure, CI/CD, containers. Why are healthcare pipelines still configured in GUIs and stored in databases?

Legacy Approach

  • Pipelines configured in a GUI, stored in a database
  • No version control, no diffs, no code review
  • Legacy JavaScript (ES5 / Rhino) with no type safety
  • Heavy JVM runtime, manual heap tuning
  • AI cannot generate or modify pipeline definitions

Integration as Code

  • YAML config + TypeScript logic, in a Git repo
  • Branch, PR, diff, review, merge—standard dev workflow
  • Full TypeScript with npm, type safety, IDE autocomplete
  • Lightweight Go binary + Node.js. No JVM.
  • AI-friendly: structured YAML + typed TS are ideal for LLM generation

Three files. One HL7 & FHIR pipeline.

A channel is a folder with a YAML config, a TypeScript transformer, and an optional validator. Everything lives in your Git repo.

src/channels/fhir-to-adt/channel.yaml config
id: fhir-to-adt
enabled: true

listener:
  type: fhir
  fhir:
    port: 8082
    base_path: /fhir/r4
    version: R4
    resources: [Patient]

transformer:
  runtime: node
  entrypoint: transformer.ts

destinations:
  - hl7-file-output

Declarative YAML: what connects to what, which protocol, which port.

src/channels/fhir-to-adt/transformer.ts logic
import type { Patient } from "fhir/r4";
import { Message } from "node-hl7-client";

export function transform(
  msg: IntuMessage,
  ctx: IntuContext
): IntuMessage {
  const p = msg.body as Patient;
  const hl7 = new Message({
    messageHeader: {
      msh_9_1: "ADT",
      msh_9_2: "A08",
      msh_11_1: "P",
    },
  });

  hl7.addSegment("PID");
  hl7.set("PID.5.1", p.name?.[0]?.family);
  hl7.set("PID.5.2", p.name?.[0]?.given?.join(" "));

  return { body: hl7.toString() };
}

Pure TypeScript: full npm ecosystem, type safety, IDE support.

1
intu init my-project

Scaffold a project with sample channels, npm deps, and Docker config.

2
intu c my-channel

Add channels. Each one is a folder with YAML + TypeScript.

3
npm run dev

Run the engine. Auto-compiles TypeScript. Hot-reloads on changes.

Production-ready HL7, FHIR & X12 integration.

A production-grade engine with enterprise features—all open source.

Git-Native Workflow

Every pipeline is plain text files. Branch, diff, review, and merge your integration logic the same way you ship application code.

AI-Friendly by Design

Structured YAML + typed TypeScript are the formats LLMs generate best. Use AI assistants to create, modify, and debug your pipelines.

Sub-Millisecond Transforms

Go binary runtime with a pre-loaded Node.js worker pool. Modules are cached in V8 at startup. Transform execution is measured in microseconds.

Persistent Storage

Memory, Postgres, MySQL, SQL Server, SQLite, or S3 backends. Store messages at each pipeline stage for audit and replay. Configurable per-channel.

Retry & Dead-Letter Queue

Configurable retry with fixed, linear, or exponential backoff per destination. Failed messages route to a DLQ for inspection.

Full Pipeline Stages

Preprocessor, Validator, Source Filter, Transformer, per-destination Filter & Transformer, Response Transformer, Postprocessor.

Observability

OpenTelemetry traces and metrics, Prometheus endpoint, and log transports for CloudWatch, Datadog, Sumo Logic, Elasticsearch.

Clustering & HA

Redis-based coordination with channel partitioning, message deduplication, and persistent destination queues.

Secrets & Auth

HashiCorp Vault, AWS Secrets Manager, GCP Secret Manager. LDAP and OIDC for dashboard authentication. RBAC and audit logging.

25 connectors for HL7, FHIR, DICOM & more.

Sources define where messages come from. Destinations define where they go. Mix and match across protocols.

Healthcare Data Types

HL7v2 FHIR R4 X12 EDI CDA / CCDA DICOM JSON XML CSV

Full HL7 & FHIR processing pipeline.

Every stage is optional except the transformer. Per-destination filters and transformers let you customize payloads for each output independently.

Source
Pre
Validate
Filter
Transform
D.Filter
D.Xform
Send
Response
Post

Profile layering for every environment.

Base config in intu.yaml. Override per environment with intu.dev.yaml or intu.prod.yaml. Environment variables expand with ${VAR} syntax.

Storage mode, log transports, secrets provider, cluster config, and connector settings all vary by profile. One codebase, every environment.

# intu.prod.yaml
runtime:
  mode: cluster

message_storage:
  driver: postgres
  mode: full

logging:
  transports:
    - type: datadog
      datadog:
        api_key: ${DD_API_KEY}

Healthcare integration use cases.

Real-world healthcare integration scenarios intu was built for — from hospital EHR feeds to FHIR API gateways and DICOM imaging pipelines.

Compare intu to Mirth, Rhapsody & Intely.

We believe transparency builds trust. Read how intu stacks up—including where others still win.

Migrating from Mirth Connect?

Move from legacy GUI-based engines to a modern, Git-native workflow. Go binary + Node.js worker pool, sub-millisecond transforms, and hot-reload out of the box.

$ intu import mirth channel.xml

Import your existing Mirth channel XML exports directly. Generates channel.yaml + transformer.ts automatically.

Feature parity where it matters

Same pipeline stages, same connector types, same healthcare protocols. Modern TypeScript instead of Rhino JS. Git instead of a database.

25
Connectors
8
Data types
0
License fees

Architecture decisions: Go, YAML & licensing.

Architecture Decision Records explain the reasoning behind every major technical choice.

Healthcare integration FAQ

Common questions about licensing, deployment, formats, and migrating from Mirth Connect.

Is intu free and open source?

Yes. intu is 100% free and open source under the Mozilla Public License 2.0 (MPL-2.0). You can use it commercially, self-host it, and modify the source code. The core engine and all connectors are open source with no paid tiers.

What is the difference between intu and Mirth Connect?

intu is a code-first, Git-native healthcare integration framework. Unlike Mirth Connect's GUI-based channel builder, intu lets you define pipelines as YAML files with TypeScript transformers — fully version-controllable and AI-friendly. intu uses a modern Go + Node.js runtime versus Mirth's Java/Rhino stack.

Does intu support HIPAA-compliant deployments?

intu is infrastructure software — it does not store PHI by default. You can deploy intu in a HIPAA-compliant environment by running it on your own infrastructure (on-prem or private cloud), enabling TLS on all connectors, and following standard HIPAA operational controls. intu does not provide a BAA directly, but your cloud provider can.

What healthcare data formats does intu support?

intu supports HL7 v2.x (all message types), FHIR R4, DICOM, X12 EDI (837, 835, 270/271), CDA/CCDA, and plain JSON/XML/CSV. It includes 12 source connectors (HTTP, TCP/MLLP, FHIR, Kafka, database, SFTP, email, DICOM, SOAP, IHE, file, channel) and 13 destination connectors.

How do I migrate from Mirth Connect to intu?

intu provides a built-in Mirth channel importer via the CLI. Run intu import mirth <path-to-export.xml> against your Mirth channel XML export to generate intu YAML and TypeScript. For a full comparison and migration guidance, see intu vs Mirth Connect.

What is Integration as Code in healthcare?

Integration as Code means defining your healthcare integration pipelines as text files (YAML configuration + TypeScript transformers) that live in your Git repository alongside your application code. This enables code review, CI/CD deployment, automated testing, and AI-assisted development of HL7 and FHIR pipelines.