FHIR Resources Explained: A Complete Guide

Published

June 26, 2026

Last Updated

June 26, 2026

Reading Time

8 min

Author

Laksh Patel
LP

Laksh Patel, Founder, HealthInterops

Laksh Patel is the Founder of HealthInterops and creator of HL7ToolBox. With more than 17 years of software engineering experience and over 5 years specializing in healthcare interoperability, he has designed and delivered more than 3,000 healthcare interfaces across hospitals, laboratories, and enterprise healthcare systems.

17+ Years Software Development5+ Years Healthcare Integration3,000+ Healthcare Interfaces Delivered

This article is reviewed and maintained by the HL7ToolBox Team.

TL;DR

FHIR (Fast Healthcare Interoperability Resources) organizes healthcare information into reusable building blocks called Resources. Each resource represents a specific healthcare concept—such as a patient, appointment, observation, medication, or encounter—and can be exchanged using REST APIs and JSON.

Understanding the most common FHIR resources is essential for developers, integration engineers, healthcare analysts, and anyone building modern healthcare applications.

What Are FHIR Resources?

FHIR Resources are standardized data models defined by the HL7 FHIR specification. Each resource represents a single healthcare concept and can be independently created, updated, searched, or deleted using standard REST APIs.

Examples include:

  • Patient
  • Observation
  • Practitioner
  • Organization
  • Appointment
  • Encounter
  • Medication
  • DiagnosticReport

Unlike HL7 v2 messages, which bundle many types of information into delimited text messages, FHIR separates healthcare information into structured resources that are linked together through references.

Why FHIR Resources Matter

FHIR Resources provide several advantages:

  • Standardized healthcare data
  • Easy-to-use REST APIs
  • JSON and XML support
  • Cloud-native architecture
  • Mobile-friendly applications
  • AI-ready structured data
  • Better interoperability between healthcare systems

Modern EHRs, patient portals, telemedicine platforms, and healthcare mobile apps increasingly rely on FHIR Resources.

Most Common FHIR Resources

ResourcePurpose
PatientPatient demographics
PractitionerHealthcare provider
OrganizationHospital or clinic
EncounterPatient visit
AppointmentScheduled visit
ObservationLaboratory and clinical results
DiagnosticReportComplete diagnostic reports
ConditionDiagnoses
MedicationMedication information
MedicationRequestMedication prescriptions
AllergyIntoleranceAllergies
ProcedureClinical procedures
ImmunizationVaccinations
CoverageInsurance information
BundleCollection of resources

Patient Resource

The Patient resource stores demographic information about an individual receiving healthcare.

  • Name
  • Gender
  • Date of Birth
  • Address
  • Phone Number
  • Identifiers
{
  "resourceType": "Patient",
  "id": "10001",
  "identifier": [
    {
      "system": "https://hospital.example.org/mrn",
      "value": "MRN10001"
    }
  ],
  "name": [
    {
      "family": "Smith",
      "given": ["John"]
    }
  ],
  "gender": "male",
  "birthDate": "1988-06-15"
}

Common REST API:

GET /Patient/10001

Practitioner Resource

Represents healthcare professionals such as Physicians, Nurses, Pharmacists, or Therapists.

{
  "resourceType": "Practitioner",
  "id": "2001",
  "name": [
    {
      "family": "Johnson",
      "given": ["Emily"]
    }
  ]
}

Common uses include linking providers to encounters, orders, and procedures.

Organization

Represents Hospitals, Laboratories, Clinics, Imaging Centers, or Insurance Companies.

{
  "resourceType": "Organization",
  "id": "hospital-1",
  "name": "City General Hospital"
}

Encounter

Represents an interaction (Emergency, Outpatient, Admission, Telehealth).

{
  "resourceType": "Encounter",
  "status": "finished",
  "subject": {
    "reference": "Patient/10001"
  }
}
HL7 Equivalent: PV1

Appointment

Used for scheduling healthcare appointments.

{
  "resourceType": "Appointment",
  "status": "booked",
  "description": "Cardiology Consultation"
}

Observation Resource

Stores laboratory results, vital signs, and clinical measurements (e.g. Blood Pressure, Glucose, WBC, Temperature, Pulse, Oxygen Saturation).

Example

{
  "resourceType": "Observation",
  "status": "final",
  "code": {
    "text": "White Blood Cell Count"
  },
  "valueQuantity": {
    "value": 7.8,
    "unit": "10^9/L"
  }
}

HL7 Equivalent: OBX

DiagnosticReport Resource

Groups multiple observations into a complete report (e.g. CBC, Pathology, Radiology, MRI, CT Scan).

Example

{
  "resourceType": "DiagnosticReport",
  "status": "final",
  "code": {
    "text": "Complete Blood Count"
  }
}

HL7 Equivalent: OBR + OBX

More Common Resources

Condition

Patient diagnoses (Diabetes, Hypertension).

HL7 = DG1

Medication

Medication details (e.g. Amoxicillin 500 mg).

MedicationRequest

Prescriptions written by providers.

HL7 = ORM

AllergyIntolerance

Patient allergy info.

HL7 = AL1

Procedure

Surgery, Colonoscopy, Endoscopy, etc.

Immunization

Vaccination records.

Coverage

Insurance information.

HL7 = IN1

Bundle Resource

The Bundle resource groups multiple FHIR resources into a single request or response.

Common Bundle Types:

  • transaction
  • batch
  • collection
  • document
  • message
  • searchset
{
  "resourceType": "Bundle",
  "type": "collection",
  "entry": [
    {
      "resource": {
        "resourceType": "Patient"
      }
    },
    {
      "resource": {
        "resourceType": "Observation"
      }
    }
  ]
}

Common Uses: Patient summaries, Bulk data exchange, Search results, FHIR messaging

Relationships Between FHIR Resources

A patient visit may involve many connected resources:

Patient
Encounter
Practitioner
MedicationRequest
Observation
DiagnosticReport

FHIR uses references to connect resources rather than embedding all information into a single message.

REST Operations

Every FHIR resource supports standard HTTP methods.

MethodOperation
GETRead resource
POSTCreate resource
PUTUpdate resource
PATCHPartial update
DELETERemove resource
SEARCHQuery resources
GET /Patient/10001
GET /Observation?patient=10001
POST /Patient
PUT /Patient/10001

Best Practices

  • Use resource references instead of duplicating information.
  • Validate resources against FHIR profiles.
  • Use standard terminologies (SNOMED CT, LOINC, ICD-10) where appropriate.
  • Support pagination for large search results.
  • Implement OAuth 2.0 and SMART on FHIR for secure access.
  • Version your APIs and profiles as requirements evolve.

Common Mistakes

  • Embedding unrelated information in a single resource.
  • Ignoring required elements.
  • Using custom extensions when standard fields exist.
  • Failing to validate JSON payloads.
  • Not handling resource references correctly.

Conclusion

FHIR Resources are the foundation of modern healthcare interoperability. By breaking healthcare information into standardized, reusable building blocks, FHIR makes it easier to build secure, scalable, and interoperable applications.

Whether you're creating a patient portal, integrating an EHR, building a laboratory interface, or developing AI-powered healthcare solutions, understanding resources such as Patient, Observation, Encounter, Appointment, Medication, and Bundle is essential.

As healthcare organizations continue adopting FHIR, mastering these resources will help developers and integration professionals build future-ready healthcare applications.

Frequently Asked Questions

What is a FHIR Resource?

A FHIR Resource is a standardized data structure that represents a specific healthcare concept, such as a patient, appointment, observation, or medication.

Which FHIR Resource stores patient demographics?

The Patient resource contains demographic information, identifiers, contact details, and other patient-specific data.

What is the difference between Observation and DiagnosticReport?

An Observation represents a single clinical measurement or result, while a DiagnosticReport groups multiple observations into a complete report.

What is a Bundle in FHIR?

A Bundle is a container that groups multiple FHIR resources into a single request or response. Common bundle types include `transaction`, `batch`, `collection`, `document`, and `searchset`.

How are FHIR Resources connected?

Resources are linked using references. For example, an Encounter resource references a Patient resource, and an Observation resource can reference both the Patient and the Encounter.

How do FHIR Resources differ from HL7 v2 messages?

HL7 v2 exchanges delimited text messages that contain multiple segments, while FHIR represents healthcare data as individual resources exchanged through REST APIs using JSON or XML.

Try HL7Toolbox

Explore and validate healthcare data using:

  • FHIR Viewer – Visualize FHIR JSON in an easy-to-read format.
  • FHIR Validator – Validate FHIR resources against the specification.
  • HL7 Parser – Parse HL7 v2 messages and compare them with FHIR resources.
  • HL7 Compare Tool – Compare different HL7 messages during migration projects.

References

  • HL7 International FHIR resource model
  • FHIR API implementation and healthcare application patterns
  • Patient, Observation, Encounter, DiagnosticReport, and Bundle workflow examples

Editorial Review

HL7ToolBox content is written and reviewed by healthcare integration professionals with hands-on experience in HL7 v2.x, FHIR, healthcare APIs, and enterprise healthcare interfaces.