← ReferenceStandards

What is a StructureDefinition?

A StructureDefinition is the FHIR resource that defines the structure of other resources, data types, extensions, and profiles. It is both a resource (can be stored on a FHIR server) and a schema (defines what other resources look like).

Key fields

  • url — globally unique canonical identifier for this definition
  • kindresource, complex-type, primitive-type, or logical
  • type — the FHIR type being defined or constrained (e.g. Patient)
  • baseDefinition — the parent StructureDefinition this one derives from
  • derivationspecialization (new type) or constraint (profile on existing type)
  • differential — only the elements that differ from the base — what you write
  • snapshot — complete element list after merging with base — generated by tooling

What uses StructureDefinition

  • Resource definitions — every FHIR resource (Patient, Observation…) is defined by a StructureDefinition in the spec
  • Profiles — constraints on base resources for specific use cases
  • Extensions — definitions of new data elements not in the base spec
  • Data types — HumanName, Address, CodeableConcept, Quantity