Healthcare

From Standards to Profiles: Naftiko Capabilities and the Path to IHE-Compliant Healthcare Integration

Kin Lane ·April 30, 2026
Table of contents

In our last healthcare post, Modernizing Healthcare Integration with Naftiko: From HL7 v2 to OpenEHR, we showed how a Naftiko Capability turns a pipe-delimited HL7 v2 ADT message into a structured OpenEHR composition. That kind of standard-to-standard translation is where most teams begin. It is also the easy part.

The harder, more valuable layer is what an industry initiative called IHE – Integrating the Healthcare Enterprise – has been doing for over twenty-five years: writing Integration Profiles that constrain the underlying standards into specific, testable, multi-vendor workflows. Profiles are how cross-organizational document sharing, patient-identity-cross-referencing, imaging workflows, and (increasingly) European Health Data Space exchanges actually work in production.

This post walks through how Naftiko Capabilities can be used at both layers. First, the translation patterns across HL7 v2, FHIR, DICOM, and OpenEHR. Then, the implementation patterns that let a capability deliver an actual IHE Integration Profile – as a Connectathon-testable actor, a cross-cutting substrate, or an AI-callable MCP tool that no other implementation in the market exposes.

Part 1: Translation Patterns Across the Healthcare Standards

A Naftiko Capability is a YAML file that declares what it consumes, what it produces, and what it exposes to AI agents and tools. The translation use cases line up cleanly with that shape:

  • HL7 v2 to OpenEHR – Pipe-delimited ADT, ORM, ORU, RDE messages from a hospital integration engine, turned into structured OpenEHR compositions backed by clinically-authored archetypes. We covered this in detail in the previous post.
  • HL7 v2 to FHIR – The same ADT events surfaced as FHIR Encounter, Patient, and Condition resources for modern application stacks.
  • DICOM to FHIR ImagingStudy – DICOMweb QIDO-RS metadata translated into FHIR ImagingStudy resources for cross-system image references.
  • OpenEHR to FHIR – Canonical OpenEHR compositions read out and projected as FHIR bundles for partners who only speak FHIR.
  • FHIR to FHIR – Profile-to-profile transformations between US Core, IPS, EHDS-aligned, and payer profiles.

Each translation is a short capability following the consume-produce-expose pattern. Here is a compact HL7 v2 to FHIR sketch:

naftiko: "1.0.0-alpha1"

info:
  label: HL7 v2 ADT^A01 Patient Admit to FHIR Encounter
  description: >-
    Reads HL7 v2 ADT^A01 messages from a hospital integration engine and
    posts FHIR R4 Encounter, Patient, and Condition resources to a target
    FHIR server. Useful for modernizing downstream consumers without
    touching the upstream interface engine.
  tags: [hl7v2, fhir, adt-a01, healthcare]

capability:
  consumes:
    - namespace: hl7-gateway
      type: http
      baseUri: "https://hl7-gateway.hospital.example/api/v1"
      resources:
        - name: adt-events
          path: "/adt/events"
          operations:
            - name: get-admit-event
              method: GET

    - namespace: fhir-server
      type: http
      baseUri: "https://fhir.hospital.example/r4"
      resources:
        - name: encounters
          path: "/Encounter"
          operations:
            - name: post-encounter
              method: POST

  exposes:
    - type: mcp
      port: 3020
      namespace: hl7-fhir-tools
      tools:
        - name: transform-adt-a01-to-fhir
          description: >-
            Fetches an ADT^A01 message and posts the resulting FHIR R4
            Encounter resource to the configured FHIR server.
          inputParameters:
            - name: messageId
              type: string
              required: true
          steps:
            - name: fetch-admit
              type: call
              call: hl7-gateway.get-admit-event
              with:
                messageId: hl7-fhir-tools.messageId
            - name: post-encounter
              type: call
              call: fhir-server.post-encounter

Same pattern as the OpenEHR post: consume the legacy gateway, produce the modern resource, expose an MCP tool. Multiply across HL7 v2, FHIR, DICOM, and OpenEHR and you have a translation fleet that retains existing investment without locking the future.

This is genuinely useful work. It is also where most healthcare integration platforms stop.

Part 2: From Standards to Profiles

Translating standards moves data between formats. Profiles specify the workflows that data participates in. The distinction matters.

Take cross-enterprise document sharing. FHIR has a DocumentReference resource. HL7 v2 has MDM messages. DICOM has Structured Reports. None of them, on their own, tell you how Hospital A’s EMR shares a discharge summary with Hospital B’s primary care system across an organizational boundary. That is what an IHE Integration Profile does.

A profile defines:

  • Actors – the system roles that participate, e.g., Document Source, Document Repository, Document Registry, Document Consumer.
  • Transactions – the specific exchanges between those actors, grounded in a base standard (FHIR REST call, HL7 v2 message, DICOM operation).
  • Content modules – which CDA template, which FHIR profile, which DICOM SOP class is required.
  • Conformance options – mandatory versus optional behaviors that products declare at IHE Connectathons.
  • Cross-cutting actors – ATNA (audit), CT (consistent time), XUA (cross-enterprise user assertion). Almost every IHE profile depends on these.

A Naftiko Capability is operation-shaped: one consumes operation, one exposes tool, one MCP entry. An IHE profile is workflow-shaped. The interesting design work is mapping one onto the other cleanly. Here is how.

Pattern 1: One Capability per IHE Actor

The default. Each actor in a profile becomes its own Naftiko Capability. For XDS.b cross-enterprise document sharing, that means a xds-document-source.naftiko.yml, a xds-document-repository.naftiko.yml, a xds-document-registry.naftiko.yml, and a xds-document-consumer.naftiko.yml. Each is independently deployable and Connectathon-claimable.

naftiko: "1.0.0-alpha1"

info:
  label: IHE XDS Document Source
  description: >-
    IHE ITI Document Source actor (XDS.b). Submits a SubmissionSet of
    clinical documents to a configured Document Repository in an XDS
    Affinity Domain via transaction ITI-41. Emits an ATNA audit event
    per ITI Technical Framework Volume 2 requirements.
  ihe:
    profile: XDS.b
    actor: Document Source
    transactions: [ITI-41]
  tags: [ihe, xds, iti-41, healthcare]

capability:
  consumes:
    - namespace: repo
      type: http
      baseUri: "{{XDS_REPOSITORY_BASE_URI}}"
      resources:
        - name: provide-and-register
          path: "/Repository/services/xdsrepositoryb"
          operations:
            - name: submit-document-set
              method: POST

    - namespace: audit
      type: capability
      ref: ihe-atna-audit-record-repository

  exposes:
    - type: mcp
      port: 3030
      namespace: xds-document-source
      tools:
        - name: submit-document-set
          description: >-
            Submit a SubmissionSet of clinical documents to the XDS
            Affinity Domain Document Repository (transaction ITI-41).
          inputParameters:
            - name: patientId
              type: string
              required: true
              description: "CX-formatted patient identifier with assigning authority OID"
            - name: documents
              type: array
              required: true
            - name: submissionSetMetadata
              type: object
              required: true
          steps:
            - name: submit
              type: call
              call: repo.submit-document-set
            - name: audit
              type: call
              call: audit.record-event

Two things to notice. First, the info.ihe block carries the profile, actor, and transaction codes – structured metadata that a Connectathon test harness or registry can introspect. Second, the capability composes another Naftiko capability – the audit record repository – via the second consumes entry. That is Pattern 2.

Pattern 2: Cross-Cutting Capabilities for the IHE Substrate

ATNA, CT, and XUA are not workflow profiles. They are substrate. Build them once and depend on them everywhere.

naftiko: "1.0.0-alpha1"

info:
  label: IHE ATNA Audit Record Repository
  description: >-
    IHE Audit Record Repository actor. Receives ATNA-conformant audit
    events emitted by other IHE actor capabilities and persists them
    for compliance and forensic review.
  ihe:
    profile: ATNA
    actor: Audit Record Repository
    transactions: [ITI-20]
  tags: [ihe, atna, audit, security]

Every other IHE-profile-implementing capability adds audit to its consumes list. The fleet now has a single auditable trace of every cross-enterprise transaction, and conformance to ATNA’s audit requirements is composed in rather than re-implemented per profile.

The same pattern applies to a consistent-time.naftiko.yml for CT and an xua-assertion.naftiko.yml for cross-enterprise user identity.

Pattern 3: FHIR-Native Profiles Are the Cleanest Fit

The newer IHE profiles – the ones the European Health Data Space and US TEFCA initiatives are building on – are FHIR-based. Patient Identity Cross-Reference for Mobile (PIXm, transaction ITI-83) is a one-page capability:

naftiko: "1.0.0-alpha1"

info:
  label: IHE PIXm Patient Identifier Cross-Reference Consumer
  description: >-
    Resolves a patient's identifiers across systems within an Affinity
    Domain using IHE PIX-on-FHIR (ITI-83). Built on FHIR R4 Patient
    $ihe-pix operation.
  ihe:
    profile: PIXm
    actor: Patient Identifier Cross-Reference Consumer
    transactions: [ITI-83]
  tags: [ihe, pixm, fhir, iti-83]

capability:
  consumes:
    - namespace: pix
      type: http
      baseUri: "{{PIX_MANAGER_BASE_URI}}/fhir"
      resources:
        - name: patient-identifier-xref
          path: "/Patient/$ihe-pix"
          operations:
            - name: cross-reference
              method: GET

  exposes:
    - type: mcp
      port: 3031
      namespace: pixm-consumer
      tools:
        - name: cross-reference-patient-id
          description: >-
            Resolve a patient's identifiers across systems within an
            Affinity Domain using IHE PIX-on-FHIR.
          inputParameters:
            - name: sourceIdentifier
              type: string
              required: true
              description: "Token search param: system|value"
            - name: targetSystem
              type: string
          call: pix.cross-reference

Because FHIR transactions are already RESTful, the consumes-exposes mapping is one-to-one. PIXm, PDQm, MHD, and IUA all collapse into capabilities of similar size. This is why the FHIR-based IHE profile track at the recent IHE-Europe Connectathon in Brussels is the fastest-growing one.

Pattern 4: Profile Bundle as a Workflow Tool

For consumers who do not want to wire up four actor capabilities, ship a meta-capability – xds-affinity-domain-workflow.naftiko.yml – that internally consumes the actor capabilities and exposes a single high-level tool: “share clinical document across affinity domain.” The underlying actors remain the unit of conformance. The bundle is sugar for AI agents that prefer one verb over five.

This is the most AI-friendly shape. An LLM agent can call share-clinical-document once and the capability orchestrates the IHE-conformant transactions underneath – including the audit emission and identity assertion that a hand-written agent would forget.

Pattern 5: Auto-Generating Capabilities from IHE Implementation Guides

This is the force-multiplier. IHE publishes its FHIR-based profiles as FHIR Implementation Guides – bundles of StructureDefinition, CapabilityStatement, and OperationDefinition resources. That is the same structured input a Naftiko capability YAML wants to consume.

A Naftiko skill could read an IHE FHIR IG, walk every Actor declared in its CapabilityStatement, and emit one capability YAML per actor with consumes, exposes, parameter schemas, and the info.ihe metadata block pre-populated. IHE has hundreds of profiles. This is the kind of artifact that one engineer can drive but that no one engineer can hand-write.

Pattern 6: Connectathon-Validated Capabilities

A Naftiko capability deployed via the fleet has a network surface. It implements transactions. It can be peer-tested at an IHE Connectathon – the multi-day events where vendors prove interoperability against each other in real time. The North America Connectathon Week is in Arlington, Virginia, in October 2026; the IHE-Europe Connectathon returns to Brussels in spring 2027.

A capability registered as a system-under-test in Gazelle, with its info.ihe metadata declaring the actor and transactions claimed, becomes Connectathon-eligible. Pass results post on connectathon-results.ihe.net – the same enterprise credibility signal that Epic, Cerner, and InterSystems lean on.

Pattern 7: AI Agents Calling IHE Profiles via MCP

This is the pattern that no other IHE actor implementation in the market offers. Every existing implementation – Epic, IBM, InterSystems, b·well, Forcare – exposes profile transactions over HL7 v2, SOAP, or FHIR. None of them expose those transactions as MCP tools.

Naftiko’s exposes: type: mcp block changes that. A profile-implementing capability automatically becomes an AI-callable tool. An LLM agent can:

  • Cross-reference a patient identifier (PIXm, ITI-83) before calling a downstream FHIR API.
  • Fetch a clinical document set (XDS-I or MHD) as context for a clinical reasoning task.
  • Submit a structured audit event (ATNA, ITI-20) when an AI agent acts on a patient’s record.

That is the most concrete way to deliver on what the IHE community is increasingly saying out loud: leveraging standards in healthcare will make AI solutions better. Profiles are how standards become usable. Naftiko Capabilities are how profiles become AI-callable.

What This Means for European and US Healthcare Programs

These patterns map to the regulatory weather healthcare is operating in right now. The European Health Data Space (EHDS) regulation is in force, with mandatory cross-border patient summary and ePrescription exchange coming online in 2029, and medical images, lab results, and discharge reports following in 2031. Every EU EHR vendor has to certify. Every cross-border exchange needs a working profile implementation.

IHE-Europe runs the practical testing rails for that work, and IHE recently launched the PRISM accelerator – a program that takes a market need (the first cohort is EHDS), runs it through an accelerated profiling cycle, and produces a Connectathon-validated specification. The pattern is the same in the US, where the North America Connectathon anchors profile testing for TEFCA-aligned exchange.

A Naftiko Capability is not a replacement for this work. It is the AI-callable, governed, declaratively-versioned delivery vehicle for it.

Looking for Healthcare Design Partners

We are actively looking for healthcare design partners who want to modernize and integrate their existing patient data securely and confidently into AI workflows – and who care about doing it in a way that holds up against IHE profiles, EHDS certification, and cross-border exchange requirements.

The Naftiko Framework and the Capabilities specification are released under the Apache 2.0 license. If you are working with HL7 v2, FHIR, DICOM, OpenEHR, or any combination of these standards – and you want to explore how governed, AI-callable capabilities can carry that work forward into IHE-conformant integration profiles – we want to hear from you.