
FHIR R4 lists around one hundred forty resource types. A working knowledge of ten of them covers the vast majority of integration work. This is the shortlist teams pick up first, and the site's R4 resource atlas surfaces each with its most-used elements one click away. For the wider REST context, more on FHIR server architecture collects supporting material.
The Base Ten
- Patient — the identity anchor. Names, identifiers, birth date, gender, contact, addresses. Every clinical record ultimately references a Patient.
- Practitioner — the clinician identity. Names, qualifications, telecom. Paired with PractitionerRole for context.
- Encounter — a healthcare event with a start, end, participants, and clinical scope. Threads together everything that happened during a visit.
- Observation — the workhorse of clinical measurements. Blood pressure, lab results, assessment scores, social determinants. Reads the code and value; branches on category.
- Condition — a clinical concern, diagnosis, or problem-list entry. Time-bounded via onset and abatement, scoped to a Patient.
- Procedure — a clinical action performed on a Patient. Codes what happened, when, and by whom.
- MedicationRequest — a prescription order. Carries dosage instructions, dispense request, and links to Medication or a codeable concept.
- DiagnosticReport — a curated result narrative. Aggregates Observations and adds a signed conclusion.
- AllergyIntolerance — allergy or intolerance to a substance. Carries reactions with severity and manifestations.
- Organization — the corporate entity behind Practitioners, Locations, and Encounters. Anchors the reporting hierarchy.
Learn these ten and you can read most of the R4 payloads that a clinical stack emits. The rest of R4 becomes look-it-up territory.
What They Share
Each of the ten inherits from DomainResource, so the base pattern from navigating FHIR R4 resources when you know DomainResource but not much else applies uniformly. Each carries an identifier list, a subject reference where applicable, and a set of narrower elements specific to the clinical domain.
The similarities matter more than the differences at the beginner stage. Once you know the base shape, the specifics become vocabulary.
What They Differ On
Cardinality patterns differ per resource. Observation is loose on many elements to support a wide range of measurements. Encounter is tight on participants and locations. MedicationRequest has extensive dosage detail. Reading each resource's cardinality column before writing against it is worth the ten minutes.
Value-set binding strength also differs. Some elements have required bindings — the value has to come from the declared value set. Others are preferred or example. Ignoring binding strength produces payloads that validate loosely in dev and strictly in prod.
What About References?
Every one of the ten holds references to at least one other resource. Observation references Patient, Encounter, Practitioner. MedicationRequest references Patient, Practitioner, MedicationCodeableConcept or Medication. The reference model — when to embed vs when to link — is a topic on its own. Reference vs contained: when to embed and when to link covers the pattern.
Reading Them Fast
The trick to reading a FHIR resource definition quickly is the same as reading a class in an unfamiliar language: identifier fields, then structural fields, then the domain-specific fields. For the pattern, reading a FHIR resource definition the way developers read a class is the deep dive.
The Short Version
Ten resources cover eighty percent of real integration work. Learn them by name, learn their required elements, and learn one reference each. The atlas lets you filter to any of them fast. The rest of R4 falls into place from there.

Sources
- HL7 US Core Implementation Guide STU7 covering the ten most - HL7 US Core Implementation Guide STU7 covering the ten most common resources



