← Training Hub

Introduction to HL7 FHIR

What it is · How it works · Why it matters for health interoperability

FHIR R4HL7InteroperabilityBeginner Friendly
Intro

What is FHIR?

FHIR (Fast Healthcare Interoperability Resources, pronounced "fire") is a standard developed by HL7 International for exchanging health information electronically. It defines how health data should be structured and shared between different systems — hospitals, labs, health apps, and national health platforms.

Fast

Built on modern web standards — RESTful APIs, JSON, XML. Easy to implement with standard developer tools.

🏥

Healthcare-focused

Every concept maps to a real clinical entity: patients, observations, medications, appointments.

🔗

Interoperable

Designed so systems from different vendors and countries can share data without custom connectors.

Current version: FHIR R4 (Release 4) is the most widely adopted version and the one used in most national digital health programmes today, including those aligned with WHO SMART Guidelines.

01

Why Does Interoperability Matter?

In most health systems, data lives in silos. A lab system cannot automatically send results to the hospital EMR. The national HMIS cannot pull from facility-level databases. Clinicians re-enter the same patient data into multiple systems. FHIR solves this.

Without Interoperability

  • Manual data re-entry between systems
  • Duplicate patient records across facilities
  • Delayed lab results reaching clinicians
  • Fragmented patient history — no single view
  • National reporting requires manual aggregation

With FHIR

  • Lab results flow automatically to the EMR
  • One patient identity across all systems
  • Real-time data available at point of care
  • Complete longitudinal patient record
  • National dashboards fed automatically
02

FHIR Resources — The Building Blocks

In FHIR, a Resource is the basic unit of data — it represents a single clinical or administrative concept. Everything in FHIR is a resource. There are 150+ resource types in FHIR R4.

👤

Patient

Demographics, identifiers, contact details of a person receiving care.

📋

Observation

A measurement or result — lab test, vital sign, clinical finding.

💊

MedicationRequest

A prescription or order for a medication to be dispensed.

📅

Encounter

An interaction between a patient and a care provider — a visit, admission.

🏥

Organization

A health facility, ministry, lab, or other formal group.

🔬

DiagnosticReport

The result and findings of a diagnostic service (e.g. GeneXpert TB test).

Key idea: A FHIR resource is just a structured data object — like a JSON file — that represents one piece of health information. Systems exchange these objects over the web.

02

What a FHIR Resource Looks Like

FHIR resources are exchanged as JSON (most common) or XML. Here is a simplified example of a Patient resource:

{
  "resourceType": "Patient",
  "id": "patient-001",
  "name": [
    {
      "family": "Shrestha",
      "given": ["Ram"]
    }
  ],
  "gender": "male",
  "birthDate": "1985-06-12",
  "identifier": [
    {
      "system": "https://hmis.gov.np/patient-id",
      "value": "NP-84721"
    }
  ]
}
resourceType

Always present — tells the receiver what kind of data this is.

id

Unique identifier for this specific resource on the server.

identifier

Real-world IDs (e.g. national health ID) with a system URL as namespace.

03

The FHIR RESTful API

FHIR uses standard HTTP methods — the same ones your browser uses every day. A FHIR server exposes a base URL, and resources are accessed by type and ID.

HTTP MethodFHIR OperationExample URLWhat it does
GETRead/Patient/patient-001Retrieve a specific patient by ID
GETSearch/Patient?name=ShresthaSearch patients by name
POSTCreate/PatientAdd a new patient record
PUTUpdate/Patient/patient-001Replace an existing patient record
DELETEDelete/Patient/patient-001Remove a patient record

Base URL example: A FHIR server might be at https://fhir.hmis.gov.np/. A full request to get a patient would be GET https://fhir.hmis.gov.np/Patient/patient-001.

03

Bundles — Sending Multiple Resources Together

A Bundle is a container that holds multiple FHIR resources in a single HTTP request. This is used when you need to send related data together — for example, a patient record plus their lab results in one transaction.

transaction

All-or-nothing: all resources succeed or the whole bundle fails. Used for atomic operations.

batch

Each resource is processed independently. Some may succeed, some may fail.

searchset

Returned by FHIR servers as the result of a search query — a list of matching resources.

04

FHIR in Practice — Real Use Cases

🔬
Lab Results to EMRDiagnostics

A GeneXpert machine generates a TB test result. Using FHIR DiagnosticReport, the result is automatically sent to the patient's EMR and flagged for the clinician — no manual entry needed.

🆔
Patient Identity MatchingIdentity

A patient visits a district hospital and a national lab. Using FHIR Patient resources with a shared national health ID, both systems recognise it is the same person and merge their records.

📊
Reporting to National HMISReporting

A facility's EMR bundles monthly TB notifications as FHIR MeasureReport resources and posts them to the national HMIS endpoint — replacing manual aggregate data entry.

📱
Mobile AppsMobile

A community health worker app built on FHIR can post new patient registrations and observations directly to the national FHIR server, which are then visible in facility dashboards.

05

FHIR, DHIS2 & OpenHIM — How They Work Together

FHIR, DHIS2, and OpenHIM play different but complementary roles in a national health architecture. Understanding how they fit together is key for anyone working in health informatics.

🔗
FHIR
The language

Defines how data is structured and exchanged. A standard, not a system. Any system can speak FHIR.

⚙️
OpenHIM
The post office

Routes, audits, and transforms messages between systems. Translates FHIR messages to formats DHIS2 understands.

📊
DHIS2
The database & dashboard

Stores aggregate and tracker data. Receives transformed data via OpenHIM mediators. Powers reports and dashboards.

Typical data flow: EMR / Lab System → FHIR message → OpenHIM (route + transform) → DHIS2 (store + visualise) → National Dashboard

Key Concepts Summary

FHIRHL7 standard for exchanging health data using web APIs. Current version is R4.
ResourceA single data object (Patient, Observation, DiagnosticReport). The basic unit in FHIR.
RESTful APIStandard HTTP methods (GET, POST, PUT, DELETE) used to read, create, update, and delete resources.
BundleA collection of resources sent together in a single HTTP request.
IdentifierA real-world ID (national health ID) used to link records across systems.
InteroperabilityThe ability of different systems to exchange and use each other's data without custom integration.

Resources & Further Reading

Slide 22

📖

FHIR R4 Specification

The official FHIR R4 specification — resource definitions, API reference, and implementation guides.

hl7.org/fhir
🎓

Firely FHIR School

Free self-paced FHIR courses from Firely — covering FHIR basics, profiling, and implementation guides.

fire.ly/fhir-school
🔬

FHIR Test Server

HAPI FHIR — a free public FHIR test server to try API calls and explore the standard hands-on.

hapi.fhir.org
← Back to Training Hub

Hello World Nepal · Health Informatics Training Series