EU Health Data API
1.0.0-ballot - ballot 150

This page is part of the EU Health Data API (v1.0.0-ballot: STU1 Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Capability Discovery

Overview

Systems discover capabilities via FHIR CapabilityStatement (GET /metadata). Consumers inspect a provider's functionality before attempting transactions.

Transaction

Capability discovery uses the standard FHIR capabilities interaction:

GET [base]/metadata

The server returns a CapabilityStatement resource that declares:

  • Supported FHIR version
  • Supported resource types and profiles
  • Supported interactions (read, search, create, etc.)
  • Supported search parameters
  • Actor conformance and priority category support (see below)

Provider Actors

Different provider actors advertise different capabilities:

  • Document Access Provider: Advertises document exchange capabilities (MHD ITI-67, ITI-68 transactions; ITI-105 with Document Submission Option)
  • Resource Access Provider: Advertises resource query capabilities (IPA patterns)

A system may implement one or both.

Actor Conformance via instantiates

Servers declare actor conformance using CapabilityStatement.instantiates, referencing the normative CapabilityStatements in this IG:

Consumers inspect instantiates to determine which actor roles and exchange patterns a server supports.

Priority Category Support

The EHDS ANNEX II priority categories are:

  • European Patient Summary (EPS)
  • Medication Prescription & Dispense (MPD)
  • Laboratory Results
  • Hospital Discharge Reports (HDR)
  • Imaging Reports
  • Imaging Manifests

Servers declare which priority categories they support by listing content IG canonical URLs in CapabilityStatement.implementationGuide. Consumers inspect implementationGuide to discover supported categories, then query by DocumentReference.type (LOINC) for specific document types. See Document Exchange for the type codes per priority category.

Profile Declarations

The normative CapabilityStatements in this IG declare supportedProfile on:

These tell consumers which resource profiles to expect.

Example Capability Discovery Flow

sequenceDiagram
    participant Consumer
    participant Provider

    Consumer ->> Provider: GET [base]/metadata
    Provider -->> Consumer: CapabilityStatement

    Note over Consumer: Consumer inspects:<br/>- instantiates (actor conformance)<br/>- implementationGuide (content IGs)<br/>- rest.resource.supportedProfile (profiles)<br/>- rest.resource (supported resources)

Example: Server Supporting Multiple Priority Categories

See the example CapabilityStatement for a Document Access Provider serving Patient Summaries and Laboratory Reports.

The key elements a consumer looks for:

{
  "instantiates": [
    "...CapabilityStatement/EEHRxF-DocumentAccessProvider"
  ],
  "implementationGuide": [
    "http://hl7.eu/fhir/eps",
    "http://hl7.eu/fhir/laboratory"
  ],
  "rest": [{
    "resource": [{
      "type": "DocumentReference",
      "supportedProfile": [
        "...EehrxfMhdDocumentReference",
        "...IHE.MHD.Minimal.DocumentReference"
      ]
    }, {
      "type": "Patient",
      "supportedProfile": [
        "...patient-eu-core"
      ]
    }]
  }]
}

See Also