Skip to content
  • Thursday, 13 August 2026
  • 5:44 am
  • Follow Us
Wattman
  • Intake form
  • Master patient index
  • Dermatology
  • Services
  • EHR software
  • Home
  • Navigating FHIR R4 Resources When You Know DomainResource But Not Much Else
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
  • Open-Source vs Commercial FHIR Intake Form Tools for US Hospitals
  • Cloud-Hosted vs Self-Hosted FHIR Servers for US Healthcare in 2026
  • Deterministic vs Probabilistic MPI: Which Wins for US Hospital Systems
  • SDC Forms vs HTML Intake Forms: Which Wins for Clinical Workflows
  • HAPI FHIR vs Microsoft FHIR Service: Which Wins for Cloud-Native Healthcare
R4 Resource Atlas

Navigating FHIR R4 Resources When You Know DomainResource But Not Much Else

Jasmine Ward Jul 12, 2026 0
Editorial illustration in cyberpunk-neon style depicting a cyberpunk-neon FHIR R4 inheritance tree fanning from Resource and DomainResource into module-scoped resources

A developer who has skimmed the FHIR overview knows two things: there is a base class called Resource, and there is a slightly richer base called DomainResource. That is enough to start navigating R4, and it is where the site's R4 resource atlas begins. Everything else is inheritance, cardinality, and reference. This is a reference-style entry for teams that need the map before the specifics. For the wider setting, the FHIR integration reference has more.

The Inheritance Backbone

Every FHIR R4 resource inherits from DomainResource, which inherits from Resource. Resource carries the identity elements: id, meta, implicitRules, language. DomainResource adds text (a narrative summary), contained (embedded child resources), extension, and modifierExtension.

That gives every R4 resource:

  • A logical id assigned by the server on POST or supplied by the client on PUT
  • Version and last-updated metadata under meta
  • An optional human-readable narrative under text
  • An optional set of embedded resources under contained
  • An open-ended extension mechanism

The list is small on purpose. R4 pushes domain-specific detail into the resource-type-specific elements, not the base. That single design decision is what makes the type tree tractable.

What Sits Under DomainResource

R4 groups resources by module: Foundation, Base, Clinical, Financial, Specialized. Each module holds a small number of resources with tight scoping:

  • Foundation modules cover CapabilityStatement, StructureDefinition, ValueSet, CodeSystem
  • Base modules cover Patient, Practitioner, Encounter, Location, Organization
  • Clinical modules cover Observation, Condition, Procedure, MedicationRequest, DiagnosticReport
  • Financial modules cover Claim, Coverage, ExplanationOfBenefit
  • Specialized modules cover ResearchStudy, MolecularSequence, MedicinalProduct

The atlas surfaces the same grouping. Filter by module first, then narrow to a resource type. That workflow is faster than remembering which module owns a given type.

For the ten resources most teams reach for first, the ten FHIR resources you should learn first enumerates them.

Cardinality Is the Signal That Matters

Every element on every resource has a cardinality: minimum count, maximum count. 0..1 means optional, single. 0.. means optional, repeating. 1..1 means required, single. 1.. means required, repeating.

Reading a resource cold is a matter of scanning the cardinality column. Required elements have to be sent; optional ones can be omitted; repeating ones are always arrays even when they hold a single value. Teams that skim the resource definition without noting cardinality end up with valid-looking payloads that fail validation.

For the deeper pattern of reading a resource definition, reading a FHIR resource definition the way developers read a class covers the mechanic.

Type References Are the Second Signal

Reference elements declare which resource types they can point at. Observation.subject accepts a Reference to Patient, Group, Device, or Location. That declaration is on the resource definition, and clients that ignore it build payloads that reference unsupported types and fail validation.

Reference behavior is a topic on its own. For the deeper split of when to embed vs when to link, reference vs contained: when to embed and when to link is the entry.

Profiles Extend the Base

Profiles are named refinements of a base resource: US Core Patient, International Patient Summary, and so on. They tighten cardinality, add required extensions, or slice a repeating element. For the pattern, profiles and slicing at a glance walks through the model.

What This Buys You

Once the base pattern is clear, every new R4 resource fits into a small mental model: inheritance from DomainResource, cardinality-driven elements, typed references, optional profile refinement. The atlas is the fast lookup; this page is the entry point.

Cyberpunk-neon diagram of the FHIR R4 resource inheritance tree with Resource at the base, DomainResource above it, and module-scoped resources fanning out, drawn with neon cyan accents on a dark grid

Sources

  • HL7 canonical R4 resource index - HL7 canonical R4 resource index, evergreen reference
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 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
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
Medical Forms & FHIR SDC
Open-Source vs Commercial FHIR Intake Form Tools for US Hospitals
Intake form
Open-Source vs Commercial FHIR Intake Form Tools for US Hospitals
Jasmine Ward Aug 9, 2026
Cloud-Hosted vs Self-Hosted FHIR Servers for US Healthcare in 2026
Services
Cloud-Hosted vs Self-Hosted FHIR Servers for US Healthcare in 2026
Jasmine Ward Aug 6, 2026
Deterministic vs Probabilistic MPI: Which Wins for US Hospital Systems
Master patient index
Deterministic vs Probabilistic MPI: Which Wins for US Hospital Systems
Jasmine Ward Aug 2, 2026
SDC Forms vs HTML Intake Forms: Which Wins for Clinical Workflows
Intake form
SDC Forms vs HTML Intake Forms: Which Wins for Clinical Workflows
Jasmine Ward Jul 30, 2026