http://hl7.org/fhir/StructureDefinition/StructureDefinition|4.0.1

A definition of a FHIR structure. This resource is used to describe the underlying resources, data types defined in FHIR, and also for describing extensions and constraints on resources and data types.
description: A definition of a FHIR structure. This resource is used to describe the underlying resources, data types defined in FHIR, and also for describing extensions and constraints on resources and data types.
derivation: specialization
name: StructureDefinition
type: StructureDefinition
elements:
  description: {short: Natural language description of the structure definition, index: 10}
  date: {short: Date last changed, isSummary: true, index: 7}
  derivation:
    short: specialization | constraint - How relates to base definition
    binding: {strength: required, valueSet: 'http://hl7.org/fhir/ValueSet/type-derivation-rule|4.0.1'}
    isSummary: true
    index: 30
  publisher: {short: Name of the publisher (organization or individual), isSummary: true, index: 8}
  contextInvariant: {short: FHIRPath invariants - when the extension can be used, array: true, isSummary: true, index: 27}
  fhirVersion:
    short: FHIR Version this StructureDefinition targets
    binding: {strength: required, valueSet: 'http://hl7.org/fhir/ValueSet/FHIR-version|4.0.1'}
    isSummary: true
    index: 16
  jurisdiction:
    short: Intended jurisdiction for structure definition (if applicable)
    array: true
    binding: {strength: extensible, valueSet: 'http://hl7.org/fhir/ValueSet/jurisdiction'}
    isSummary: true
    index: 12
  purpose: {short: Why this structure definition is defined, index: 13}
  name: {short: Name for this structure definition (computer friendly), isSummary: true, index: 3}
  mapping:
    constraint:
      sdf-2: {human: Must have at least a name or a uri (or both), severity: error, expression: name.exists() or uri.exists()}
    short: External specification that the content is mapped to
    array: true
    index: 17
    elements:
      identity: {short: Internal id when this mapping is used, index: 18}
      uri: {short: Identifies what this mapping refers to, index: 19}
      name: {short: Names what this mapping refers to, index: 20}
      comment: {short: 'Versions, Issues, Scope limitations etc.', index: 21}
    required: [identity]
  useContext: {short: The context that the content is intended to support, array: true, isSummary: true, index: 11}
  abstract: {short: Whether the structure is abstract, isSummary: true, index: 23}
  copyright: {short: Use and/or publishing restrictions, index: 14}
  type:
    short: Type defined or constrained by this structure
    binding: {strength: extensible, valueSet: 'http://hl7.org/fhir/ValueSet/defined-types'}
    isSummary: true
    index: 28
  experimental: {short: 'For testing purposes, not real usage', isSummary: true, index: 6}
  title: {short: Name for this structure definition (human friendly), isSummary: true, index: 4}
  snapshot:
    constraint:
      sdf-8: {human: 'All snapshot elements must start with the StructureDefinition''s specified type for non-logical models, or with the same type name for logical models', severity: error, expression: (%resource.kind = 'logical' or element.first().path = %resource.type) and element.tail().all(path.startsWith(%resource.snapshot.element.first().path&'.'))}
      sdf-3: {human: Each element definition in a snapshot must have a formal definition and cardinalities, severity: error, expression: element.all(definition.exists() and min.exists() and max.exists())}
      sdf-8b: {human: All snapshot elements must have a base definition, severity: error, expression: element.all(base.exists())}
    short: Snapshot view of the structure
    index: 31
    elements:
      element:
        constraint:
          sdf-10: {human: provide either a binding reference or a description (or both), severity: error, expression: binding.empty() or binding.valueSet.exists() or binding.description.exists(), requirements: binding is required}
        min: 1
        short: Definition of elements in the resource (if no StructureDefinition)
        array: true
        index: 32
    required: [element]
  keyword:
    short: Assist with indexing and finding
    array: true
    binding: {strength: extensible, valueSet: 'http://hl7.org/fhir/ValueSet/definition-use'}
    isSummary: true
    index: 15
  status:
    isModifier: true
    short: draft | active | retired | unknown
    binding: {strength: required, valueSet: 'http://hl7.org/fhir/ValueSet/publication-status|4.0.1'}
    isModifierReason: This is labeled as \"Is Modifier\" because applications should not use a retired {{title}} without due consideration
    isSummary: true
    index: 5
  kind:
    short: primitive-type | complex-type | resource | logical
    binding: {strength: required, valueSet: 'http://hl7.org/fhir/ValueSet/structure-definition-kind|4.0.1'}
    isSummary: true
    index: 22
  url: {short: 'Canonical identifier for this structure definition, represented as a URI (globally unique)', isSummary: true, index: 0}
  identifier: {short: Additional identifier for the structure definition, array: true, isSummary: true, index: 1}
  context:
    short: If an extension, where it can be used in instances
    array: true
    isSummary: true
    index: 24
    elements:
      type:
        short: fhirpath | element | extension
        binding: {strength: required, valueSet: 'http://hl7.org/fhir/ValueSet/extension-context-type|4.0.1'}
        isSummary: true
        index: 25
      expression: {short: Where the extension can be used in instances, isSummary: true, index: 26}
    required: [expression, type]
  version: {short: Business version of the structure definition, isSummary: true, index: 2}
  differential:
    constraint:
      sdf-20: {human: No slicing on the root element, severity: error, expression: element.where(path.contains('.').not()).slicing.empty(), requirements: no slicing on root}
      sdf-8a: {human: 'In any differential, all the elements must start with the StructureDefinition''s specified type for non-logical models, or with the same type name for logical models', severity: error, expression: '(%resource.kind = ''logical'' or element.first().path.startsWith(%resource.type)) and (element.tail().empty() or element.tail().all(path.startsWith(%resource.differential.element.first().path.replaceMatches(''\\..*'','''')&''.'')))'}
    short: Differential view of the structure
    index: 33
    elements:
      element: {min: 1, short: Definition of elements in the resource (if no StructureDefinition), array: true, index: 34}
    required: [element]
  contact: {short: Contact details for the publisher, array: true, isSummary: true, index: 9}
  baseDefinition: {short: Definition that this type is constrained/specialized from, isSummary: true, index: 29}
class: resource
kind: resource
url: http://hl7.org/fhir/StructureDefinition/StructureDefinition
base: http://hl7.org/fhir/StructureDefinition/DomainResource
version: 4.0.1
required: [abstract, url, name, status, kind, type]