Skip to content
  • Thursday, 16 July 2026
  • 11:36 pm
  • Follow Us
Wattman
  • Intake form
  • Master patient index
  • Dermatology
  • Services
  • EHR software
  • Home
  • R4 vs R5: The Resources That Changed Enough to Notice
Reference corner

Reference corner

Whenever a colleague asks which fields a Practitioner resource actually needs, I point them at the R4 resource atlas I maintain here.

FHIR Server & API Solutions
  • Top 4 FHIR Servers for Payer-Provider Data Exchange in 2026
  • Reading a FHIR Resource Definition the Way Developers Read a Class
  • R4 vs R5: The Resources That Changed Enough to Notice
  • Must-Support Elements and What Implementers Actually Do
  • The Extension Model: When a FHIR Resource Is Silent on Your Data
R4 Resource Atlas

R4 vs R5: The Resources That Changed Enough to Notice

Jasmine Ward Jul 15, 2026 0
Editorial illustration in cyberpunk-neon style depicting a cyberpunk-neon R4 vs R5 version comparison strip with Subscription, MedicationRequest, and Bundle highlighted

Editorial illustration in cyberpunk-neon style depicting a cyberpunk-neon R4 vs R5 version comparison strip with Subscription, MedicationRequest, and Bundle highlighted

R5 is the newest FHIR release, and most integrations still run R4. That gap is where teams have to keep both versions in mind, and where knowing what actually changed makes the R4-to-R5 conversation useful instead of theoretical. Most R4 resources carry over with modest updates. A handful changed enough to require thought before assuming the R4 mental model still fits. The site's R4 resource atlas sticks to R4 by design, but flags known R5 divergences. For the wider FHIR framing, additional EHR connectivity walkthroughs has more.

The Big Ones

Subscription — R5 replaces R4's push-only Subscription with the SubscriptionTopic + Subscription pair, a topic-based model that is closer to how event streams actually work. R4 integrations relying on the old REST-hook mechanic will not port cleanly.

MedicationRequest — R5 rearranges the dosage instruction and dispense request elements. Not a rename, but the structure is different enough that a client that reads R4 dosage without a translation layer will mis-parse R5 payloads.

Bundle — R5 tightens Bundle.type semantics and clarifies transaction handling on partial failure. R4 payloads survive, but the receiver's error-handling code path may need work.

CapabilityStatement — R5 adds several optional elements around bulk data and terminology capabilities. R4 clients read R5 statements without failing but do not see the new declarations.

The Rest Are Modest

Patient, Practitioner, Encounter, Observation, Condition, Procedure, DiagnosticReport, AllergyIntolerance, Organization — all carry over with modest edits. Element renames are rare; cardinality relaxations happen at the margins; value-set bindings shift on a few coded elements. A well-written R4 client tolerates most of these without changes.

For the ten resources most integrations touch, the ten FHIR resources you should learn first is the entry, and every one of them is safe to keep in an R4 mental model.

New Resources in R5

R5 adds a handful of resources that R4 does not have. Actor identity resources, more granular subscription topics, richer terminology resources. Whether they matter depends on the workload — most clinical integrations do not touch them yet, but reporting and research integrations often do.

What Not To Do

  • Do not port an R4 client to R5 by version bumping the target and hoping the payloads still parse. Test each resource type explicitly.
  • Do not assume the R5 CapabilityStatement is a superset of R4. It is close, but the coverage of specific features shifted.
  • Do not build a client that pretends the two versions are one. Version negotiation is a first-class concern.

What To Do

  • Read the R4-to-R5 migration notes per resource type at the HL7 site.
  • Test the client against both versions in CI, not just one.
  • Handle the version parameter in the CapabilityStatement and dispatch parsing per version.
  • For resources with real structural differences (Subscription, MedicationRequest), keep the version-specific code paths clearly separated.

The R4 Bet Is Still Reasonable

R4 will keep serving the majority of production interoperability workloads for years. Committing to R5 for a greenfield project is defensible, but retrofitting an R4 integration to R5 is rarely the highest-leverage work. For the base pattern that survives both versions, navigating FHIR R4 resources when you know DomainResource but not much else is the entry.

The Short Version

Handful of resources changed enough to notice. Most carry over. Test per resource, dispatch per version, do not assume the mental model transfers whole. For reading resource definitions in either version, reading a FHIR resource definition the way developers read a class covers the pattern.

Cyberpunk-neon diagram of a version comparison strip with R4 resources on the left and R5 resources on the right, with Subscription, MedicationRequest, and Bundle highlighted as changed, drawn with neon cyan accents on a dark grid

Sources

  • HL7 canonical R5 versions chapter documenting major changes - HL7 canonical R5 versions chapter documenting major changes from R4
FHIR Validator & Compliance
Editorial illustration in cyberpunk-neon style depicting a cyberpunk-neon FHIR resource definition rendered as a class layout with identity, domain, extension, and reference sections
R4 Resource Atlas
Reading a FHIR Resource Definition the Way Developers Read a Class
Jasmine Ward Jul 15, 2026
Editorial illustration in cyberpunk-neon style depicting a cyberpunk-neon Must-Support flag routing to a sender (populate) and receiver (must handle)
R4 Resource Atlas
Must-Support Elements and What Implementers Actually Do
Jasmine Ward Jul 14, 2026
Editorial illustration in cyberpunk-neon style depicting a cyberpunk-neon FHIR resource with regular and modifier extensions tagged by canonical URL
R4 Resource Atlas
The Extension Model: When a FHIR Resource Is Silent on Your Data
Jasmine Ward Jul 14, 2026
Editorial illustration in cyberpunk-neon style depicting a cyberpunk-neon base Patient resource with US Core profile applied and sliced identifiers
R4 Resource Atlas
Profiles and Slicing at a Glance
Jasmine Ward Jul 13, 2026
Editorial illustration in cyberpunk-neon style depicting a cyberpunk-neon side-by-side of Reference between resources vs a contained child resource
R4 Resource Atlas
Reference vs Contained: When to Embed and When to Link
Jasmine Ward Jul 13, 2026
Editorial illustration in cyberpunk-neon style depicting a cyberpunk-neon ten-tile grid of the most common R4 resource types with cyan neon strokes
R4 Resource Atlas
The Ten FHIR Resources You Should Learn First
Jasmine Ward Jul 12, 2026
Editorial illustration in cyberpunk-neon style depicting a cyberpunk-neon FHIR R4 inheritance tree fanning from Resource and DomainResource into module-scoped resources
R4 Resource Atlas
Navigating FHIR R4 Resources When You Know DomainResource But Not Much Else
Jasmine Ward Jul 12, 2026
Medical Forms & FHIR SDC
Top 4 FHIR Servers for Payer-Provider Data Exchange in 2026
Services
Top 4 FHIR Servers for Payer-Provider Data Exchange in 2026
Jasmine Ward Jul 16, 2026
Editorial illustration in cyberpunk-neon style depicting a cyberpunk-neon FHIR resource definition rendered as a class layout with identity, domain, extension, and reference sections
R4 Resource Atlas
Reading a FHIR Resource Definition the Way Developers Read a Class
Jasmine Ward Jul 15, 2026
Editorial illustration in cyberpunk-neon style depicting a cyberpunk-neon R4 vs R5 version comparison strip with Subscription, MedicationRequest, and Bundle highlighted
R4 Resource Atlas
R4 vs R5: The Resources That Changed Enough to Notice
Jasmine Ward Jul 15, 2026
Editorial illustration in cyberpunk-neon style depicting a cyberpunk-neon Must-Support flag routing to a sender (populate) and receiver (must handle)
R4 Resource Atlas
Must-Support Elements and What Implementers Actually Do
Jasmine Ward Jul 14, 2026