This page is part of the FHIR Specification (v0.0.82: DSTU 1). The current version which supercedes this version is 5.0.0 . For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2

6.17 Resource StructureDefinition - Content

This resource maintained by the FHIR Management Group Work Group

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.

6.17.1 Scope and Usage

The StructureDefinition resource describes a structure - a set of data element definitions, and their associated rules of usage. These structure definitions are used to describe both the content defined in the FHIR specification itself - Resources, data types, the underlying infrastructural types, and also are used to describe how these structures are used in implementations. This allows the definitions of the structures to be shared and published through repositories of structure definitions, compared with each other, and used as the basis for code, report and UI generation.

Note that as part of the specification itself, a full set of structure definitions for all resources and data types is published.

6.17.2 Boundaries and Relationships

6.17.3 Background and Context

Implementers should be familiar with with the background and concepts described in Profiling FHIR before working with this resource.

6.17.3.1 Metadata

The StructureDefinition resource has a set of metadata that is mostly shared with the Value Set , Conformance and other infrastructure resources. The metadata describes the structure, and helps find the structure when registered in profile repositories.

url The identifier that is used to identify this structure when it is referenced in a specification, model, design or an instance. This URL is where the structure can be accessed
identifier Other identifiers that are used to identify this structure
version

The identifier that is used to identify this version of the structure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure author manually and the value should be a timestamp.

Note that there may be multiple resource versions of the structure that have this same identifier. The resource will have updates that create new versions for technical reasons, whereas the stated version number needs to be under the author's control

name A free text natural language name identifying the structure
publisher Details of the individual or organization who accepts responsibility for publishing the structure. This helps establish the "authority/credibility" of the structure.
telecom Contact details to assist a user in finding and communicating with the publisher
description A free text natural language description of the structure and its use
requirements The Scope and Usage that this structure was created to meet
code A set of terms from external terminologies that may be used to assist with indexing and searching of profiles
status The status of the structure allows filtering of profiles that are appropriate for use vs. not. See the Status Codes
experimental This structure was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage
date The date that this version of the structure was published
fhirVersion The version of the FHIR specification on which this structure is based. It is not necessary to specify the version, as most profiles are valid across multiple versions, and the validity of a structure against a particular version of FHIR can easily be checked by tooling.
type todo
contextType todo
context todo

Notes:

This resource is referenced by ConceptMap , Conformance and OperationDefinition

6.17.4 Resource Content

Structure

Name Flags Card. Type Description & Constraints doco
. . StructureDefinition I DomainResource Structural Definition
If the type is 'extension' then the structure must have context information
A structure must have a base unless it’s type is 'abstract'
If the type is Resource or Type, the url has to start with "http://hl7.org/fhir/StructureDefinition/" and the tail must match the name
A structure must have either a differential, or a snapshot (or both)
In any snapshot or differential, all the elements except the first have to have a path that starts with the path of the first + "."
. . . url Σ 1..1 uri Literal URL used to reference this StructureDefinition
. . . identifier Σ 0..* Identifier Other identifiers for the StructureDefinition
. . . version Σ 0..1 string Logical id for this version of the StructureDefinition
. . . name Σ 1..1 string Informal name for this StructureDefinition
. . . useContext Σ 0..* CodeableConcept Content intends to support these contexts
ConformanceUseContext ( Extensible )
. . . display Σ 0..1 string Use this name when displaying the value
. . . publisher Σ 0..1 string Name of the publisher (Organization or individual)
. . . contact Σ 0..* Element Contact details of the publisher
. . . . name Σ 0..1 string Name of a individual to contact
. . . . telecom Σ 0..* ContactPoint Contact details for individual or publisher
. . . description Σ 0..1 string Natural language description of the StructureDefinition
. . . requirements 0..1 string Scope and Usage this structure definition is for
. . . copyright 0..1 string Use and/or Publishing restrictions
. . . code Σ 0..* Coding Assist with indexing and finding
. . . status ?! Σ 1..1 code draft | active | retired
ConformanceResourceStatus ( Required )
. . . experimental Σ 0..1 boolean If for testing purposes, not real usage
. . . date Σ 0..1 dateTime Date for this version of the StructureDefinition
. . . fhirVersion Σ 0..1 id FHIR Version this StructureDefinition targets
. . . mapping I 0..* Element External specification that the content is mapped to
Must have at a name or a uri (or both)
. . . . identity 1..1 id Internal id when this mapping is used
. . . . uri I 0..1 uri Identifies what this mapping refers to
. . . . name I 0..1 string Names what this mapping refers to
. . . . comments 0..1 string Versions, Issues, Scope limitations etc
. . . type Σ 1..1 code type | resource | constraint | extension
StructureDefinitionType ( Required )
. . . abstract Σ 1..1 boolean Whether the structure is abstract
. . . contextType Σ I 0..1 code resource | datatype | mapping | extension
ExtensionContext ( Required )
. . . context Σ I 0..* string Where the extension can be used in instances
. . . base Σ I 0..1 uri Structure that this set of constraints applies to
. . . snapshot I 0..1 Element Snapshot view of the structure
Element paths must be unique - or not (LM)
If a structure is a snapshot, then each element definition must have a formal definition, and cardinalities
. . . . element I 1..* ElementDefinition Definition of elements in the resource (if no StructureDefinition)
. . . differential I 0..1 Element Differential view of the structure
. . . . element 1..* ElementDefinition Definition of elements in the resource (if no StructureDefinition)

UML Diagram

StructureDefinition ( DomainResource ) An absolute URL at which this StructureDefinition is (or will be) published, and which is used to reference this StructureDefinition in extension urls and tag values in operational FHIR systems url : uri 1..1 Formal identifier that is used to identify this StructureDefinition when it is represented in other formats, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI) identifier : Identifier 0..* The identifier that is used to identify this version of the StructureDefinition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the StructureDefinition author manually version : string 0..1 A free text natural language name identifying the StructureDefinition name : string 1..1 The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of structure definitions useContext : CodeableConcept 0..* « Indicates the countries, regions, disciplines and other aspects of use this artifact is targeted for use within ConformanceUseContext + » Defined so that applications can use this name when displaying the value of the extension to the user display : string 0..1 The name of the individual or organization that published the structure definition publisher : string 0..1 A free text natural language description of the StructureDefinition and its use description : string 0..1 Explains why this structure definition is needed and why it's been constrained as it has requirements : string 0..1 A copyright statement relating to the structure definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the details of the constraints and mappings copyright : string 0..1 A set of terms from external terminologies that may be used to assist with indexing and searching of templates code : Coding 0..* The status of the StructureDefinition (this element modifies the meaning of other elements) status : code 1..1 « The lifecycle status of a Value Set or Concept Map ConformanceResourceStatus » This StructureDefinition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage experimental : boolean 0..1 The date that this version of the StructureDefinition was published date : dateTime 0..1 The version of the FHIR specification on which this StructureDefinition is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 0.4.0 for this version fhirVersion : id 0..1 Defines the type of structure that this definition is describing type : code 1..1 « Defines the type of structure that a definition is describing StructureDefinitionType » Whether structure this definition describes is abstract or not - that is, whether an actual exchanged item can ever be of this type abstract : boolean 1..1 If this is an extension, Identifies the context within FHIR resources where the extension can be used contextType : code 0..1 « How an extension context is interpreted ExtensionContext » Identifies the types of resource or data type elements to which the extension can be applied context : string 0..* An absolute URI that is the base structure from which this set of constraints is derived base : uri 0..1 Contact The name of an individual to contact regarding the structure definition name : string 0..1 Contact details for individual (if a name was provided) or the publisher telecom : ContactPoint 0..* Mapping An Internal id that is used to identify this mapping set when specific mappings are made identity : id 1..1 An absolute URI that identifies the specification that this mapping is expressed to uri : uri 0..1 A name for the specification that is being mapped to name : string 0..1 Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage comments : string 0..1 Snapshot Captures constraints on each element within the resource element : ElementDefinition 1..* Differential Captures constraints on each element within the resource element : ElementDefinition 1..* Contacts to assist a user in finding and communicating with the publisher contact 0..* An external specification that the content is mapped to mapping 0..* A snapshot view is expressed in a stand alone form that can be used and interpreted without considering the base StructureDefinition snapshot 0..1 A differential view is expressed relative to the base StructureDefinition - a statement of differences that it applies differential 0..1

XML Template

<StructureDefinition xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <url value="[uri]"/><!-- 1..1 Literal URL used to reference this StructureDefinition -->
 <identifier><!-- 0..* Identifier Other identifiers for the StructureDefinition --></identifier>
 <version value="[string]"/><!-- 0..1 Logical id for this version of the StructureDefinition -->
 <name value="[string]"/><!-- 1..1 Informal name for this StructureDefinition -->
 <useContext><!-- 0..* CodeableConcept Content intends to support these contexts --></useContext>
 <display value="[string]"/><!-- 0..1 Use this name when displaying the value -->
 <publisher value="[string]"/><!-- 0..1 Name of the publisher (Organization or individual) -->
 <contact>  <!-- 0..* Contact details of the publisher -->
  <name value="[string]"/><!-- 0..1 Name of a individual to contact -->
  <telecom><!-- 0..* ContactPoint Contact details for individual or publisher --></telecom>
 </contact>
 <description value="[string]"/><!-- 0..1 Natural language description of the StructureDefinition -->
 <requirements value="[string]"/><!-- 0..1 Scope and Usage this structure definition is for -->
 <copyright value="[string]"/><!-- 0..1 Use and/or Publishing restrictions -->
 <code><!-- 0..* Coding Assist with indexing and finding --></code>
 <status value="[code]"/><!-- 1..1 draft | active | retired -->
 <experimental value="[boolean]"/><!-- 0..1 If for testing purposes, not real usage -->
 <date value="[dateTime]"/><!-- 0..1 Date for this version of the StructureDefinition -->
 <fhirVersion value="[id]"/><!-- 0..1 FHIR Version this StructureDefinition targets -->
 <mapping>  <!-- 0..* External specification that the content is mapped to -->
  <identity value="[id]"/><!-- 1..1 Internal id when this mapping is used -->
  <uri value="[uri]"/><!-- ?? 0..1 Identifies what this mapping refers to -->
  <name value="[string]"/><!-- ?? 0..1 Names what this mapping refers to -->
  <comments value="[string]"/><!-- 0..1 Versions, Issues, Scope limitations etc -->
 </mapping>
 <type value="[code]"/><!-- 1..1 type | resource | constraint | extension -->
 <abstract value="[boolean]"/><!-- 1..1 Whether the structure is abstract -->
 <contextType value="[code]"/><!-- ?? 0..1 resource | datatype | mapping | extension -->
 <context value="[string]"/><!-- ?? 0..* Where the extension can be used in instances -->
 <base value="[uri]"/><!-- ?? 0..1 Structure that this set of constraints applies to -->
 <snapshot>  <!-- ?? 0..1 Snapshot view of the structure -->
  <element><!-- ?? 1..* ElementDefinition 
      Definition of elements in the resource (if no StructureDefinition) --></element>
 </snapshot>
 <differential>  <!-- ?? 0..1 Differential view of the structure -->
  <element><!-- 1..* ElementDefinition 
      Definition of elements in the resource (if no StructureDefinition) --></element>
 </differential>
</StructureDefinition>

JSON Template

{doco
  "resourceType" : "StructureDefinition",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "url" : "<uri>", // R!  Literal URL used to reference this StructureDefinition
  "identifier" : [{ Identifier }], // Other identifiers for the StructureDefinition
  "version" : "<string>", // Logical id for this version of the StructureDefinition
  "name" : "<string>", // R!  Informal name for this StructureDefinition
  "useContext" : [{ CodeableConcept }], // Content intends to support these contexts
  "display" : "<string>", // Use this name when displaying the value
  "publisher" : "<string>", // Name of the publisher (Organization or individual)
  "contact" : [{ // Contact details of the publisher
    "name" : "<string>", // Name of a individual to contact
    "telecom" : [{ ContactPoint }] // Contact details for individual or publisher
  }],
  "description" : "<string>", // Natural language description of the StructureDefinition
  "requirements" : "<string>", // Scope and Usage this structure definition is for
  "copyright" : "<string>", // Use and/or Publishing restrictions
  "code" : [{ Coding }], // Assist with indexing and finding
  "status" : "<code>", // R!  draft | active | retired
  "experimental" : <boolean>, // If for testing purposes, not real usage
  "date" : "<dateTime>", // Date for this version of the StructureDefinition
  "fhirVersion" : "<id>", // FHIR Version this StructureDefinition targets
  "mapping" : [{ // External specification that the content is mapped to
    "identity" : "<id>", // R!  Internal id when this mapping is used
    "uri" : "<uri>", // C? Identifies what this mapping refers to
    "name" : "<string>", // C? Names what this mapping refers to
    "comments" : "<string>" // Versions, Issues, Scope limitations etc
  }],
  "type" : "<code>", // R!  type | resource | constraint | extension
  "abstract" : <boolean>, // R!  Whether the structure is abstract
  "contextType" : "<code>", // C? resource | datatype | mapping | extension
  "context" : ["<string>"], // C? Where the extension can be used in instances
  "base" : "<uri>", // C? Structure that this set of constraints applies to
  "snapshot" : { // C? Snapshot view of the structure
    "element" : [{ ElementDefinition }] // C? R!  
      Definition of elements in the resource (if no StructureDefinition)
  },
  "differential" : { // C? Differential view of the structure
    "element" : [{ ElementDefinition }] // R!  
      Definition of elements in the resource (if no StructureDefinition)
  }
}

Structure

Name Flags Card. Type Description & Constraints doco
. . StructureDefinition I DomainResource Structural Definition
If the type is 'extension' then the structure must have context information
A structure must have a base unless it’s type is 'abstract'
If the type is Resource or Type, the url has to start with "http://hl7.org/fhir/StructureDefinition/" and the tail must match the name
A structure must have either a differential, or a snapshot (or both)
In any snapshot or differential, all the elements except the first have to have a path that starts with the path of the first + "."
. . . url Σ 1..1 uri Literal URL used to reference this StructureDefinition
. . . identifier Σ 0..* Identifier Other identifiers for the StructureDefinition
. . . version Σ 0..1 string Logical id for this version of the StructureDefinition
. . . name Σ 1..1 string Informal name for this StructureDefinition
. . . useContext Σ 0..* CodeableConcept Content intends to support these contexts
ConformanceUseContext ( Extensible )
. . . display Σ 0..1 string Use this name when displaying the value
. . . publisher Σ 0..1 string Name of the publisher (Organization or individual)
. . . contact Σ 0..* Element Contact details of the publisher
. . . . name Σ 0..1 string Name of a individual to contact
. . . . telecom Σ 0..* ContactPoint Contact details for individual or publisher
. . . description Σ 0..1 string Natural language description of the StructureDefinition
. . . requirements 0..1 string Scope and Usage this structure definition is for
. . . copyright 0..1 string Use and/or Publishing restrictions
. . . code Σ 0..* Coding Assist with indexing and finding
. . . status ?! Σ 1..1 code draft | active | retired
ConformanceResourceStatus ( Required )
. . . experimental Σ 0..1 boolean If for testing purposes, not real usage
. . . date Σ 0..1 dateTime Date for this version of the StructureDefinition
. . . fhirVersion Σ 0..1 id FHIR Version this StructureDefinition targets
. . . mapping I 0..* Element External specification that the content is mapped to
Must have at a name or a uri (or both)
. . . . identity 1..1 id Internal id when this mapping is used
. . . . uri I 0..1 uri Identifies what this mapping refers to
. . . . name I 0..1 string Names what this mapping refers to
. . . . comments 0..1 string Versions, Issues, Scope limitations etc
. . . type Σ 1..1 code type | resource | constraint | extension
StructureDefinitionType ( Required )
. . . abstract Σ 1..1 boolean Whether the structure is abstract
. . . contextType Σ I 0..1 code resource | datatype | mapping | extension
ExtensionContext ( Required )
. . . context Σ I 0..* string Where the extension can be used in instances
. . . base Σ I 0..1 uri Structure that this set of constraints applies to
. . . snapshot I 0..1 Element Snapshot view of the structure
Element paths must be unique - or not (LM)
If a structure is a snapshot, then each element definition must have a formal definition, and cardinalities
. . . . element I 1..* ElementDefinition Definition of elements in the resource (if no StructureDefinition)
. . . differential I 0..1 Element Differential view of the structure
. . . . element 1..* ElementDefinition Definition of elements in the resource (if no StructureDefinition)

UML Diagram

StructureDefinition ( DomainResource ) An absolute URL at which this StructureDefinition is (or will be) published, and which is used to reference this StructureDefinition in extension urls and tag values in operational FHIR systems url : uri 1..1 Formal identifier that is used to identify this StructureDefinition when it is represented in other formats, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI) identifier : Identifier 0..* The identifier that is used to identify this version of the StructureDefinition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the StructureDefinition author manually version : string 0..1 A free text natural language name identifying the StructureDefinition name : string 1..1 The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of structure definitions useContext : CodeableConcept 0..* « Indicates the countries, regions, disciplines and other aspects of use this artifact is targeted for use within ConformanceUseContext + » Defined so that applications can use this name when displaying the value of the extension to the user display : string 0..1 The name of the individual or organization that published the structure definition publisher : string 0..1 A free text natural language description of the StructureDefinition and its use description : string 0..1 Explains why this structure definition is needed and why it's been constrained as it has requirements : string 0..1 A copyright statement relating to the structure definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the details of the constraints and mappings copyright : string 0..1 A set of terms from external terminologies that may be used to assist with indexing and searching of templates code : Coding 0..* The status of the StructureDefinition (this element modifies the meaning of other elements) status : code 1..1 « The lifecycle status of a Value Set or Concept Map ConformanceResourceStatus » This StructureDefinition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage experimental : boolean 0..1 The date that this version of the StructureDefinition was published date : dateTime 0..1 The version of the FHIR specification on which this StructureDefinition is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 0.4.0 for this version fhirVersion : id 0..1 Defines the type of structure that this definition is describing type : code 1..1 « Defines the type of structure that a definition is describing StructureDefinitionType » Whether structure this definition describes is abstract or not - that is, whether an actual exchanged item can ever be of this type abstract : boolean 1..1 If this is an extension, Identifies the context within FHIR resources where the extension can be used contextType : code 0..1 « How an extension context is interpreted ExtensionContext » Identifies the types of resource or data type elements to which the extension can be applied context : string 0..* An absolute URI that is the base structure from which this set of constraints is derived base : uri 0..1 Contact The name of an individual to contact regarding the structure definition name : string 0..1 Contact details for individual (if a name was provided) or the publisher telecom : ContactPoint 0..* Mapping An Internal id that is used to identify this mapping set when specific mappings are made identity : id 1..1 An absolute URI that identifies the specification that this mapping is expressed to uri : uri 0..1 A name for the specification that is being mapped to name : string 0..1 Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage comments : string 0..1 Snapshot Captures constraints on each element within the resource element : ElementDefinition 1..* Differential Captures constraints on each element within the resource element : ElementDefinition 1..* Contacts to assist a user in finding and communicating with the publisher contact 0..* An external specification that the content is mapped to mapping 0..* A snapshot view is expressed in a stand alone form that can be used and interpreted without considering the base StructureDefinition snapshot 0..1 A differential view is expressed relative to the base StructureDefinition - a statement of differences that it applies differential 0..1

XML Template

<StructureDefinition xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <url value="[uri]"/><!-- 1..1 Literal URL used to reference this StructureDefinition -->
 <identifier><!-- 0..* Identifier Other identifiers for the StructureDefinition --></identifier>
 <version value="[string]"/><!-- 0..1 Logical id for this version of the StructureDefinition -->
 <name value="[string]"/><!-- 1..1 Informal name for this StructureDefinition -->
 <useContext><!-- 0..* CodeableConcept Content intends to support these contexts --></useContext>
 <display value="[string]"/><!-- 0..1 Use this name when displaying the value -->
 <publisher value="[string]"/><!-- 0..1 Name of the publisher (Organization or individual) -->
 <contact>  <!-- 0..* Contact details of the publisher -->
  <name value="[string]"/><!-- 0..1 Name of a individual to contact -->
  <telecom><!-- 0..* ContactPoint Contact details for individual or publisher --></telecom>
 </contact>
 <description value="[string]"/><!-- 0..1 Natural language description of the StructureDefinition -->
 <requirements value="[string]"/><!-- 0..1 Scope and Usage this structure definition is for -->
 <copyright value="[string]"/><!-- 0..1 Use and/or Publishing restrictions -->
 <code><!-- 0..* Coding Assist with indexing and finding --></code>
 <status value="[code]"/><!-- 1..1 draft | active | retired -->
 <experimental value="[boolean]"/><!-- 0..1 If for testing purposes, not real usage -->
 <date value="[dateTime]"/><!-- 0..1 Date for this version of the StructureDefinition -->
 <fhirVersion value="[id]"/><!-- 0..1 FHIR Version this StructureDefinition targets -->
 <mapping>  <!-- 0..* External specification that the content is mapped to -->
  <identity value="[id]"/><!-- 1..1 Internal id when this mapping is used -->
  <uri value="[uri]"/><!-- ?? 0..1 Identifies what this mapping refers to -->
  <name value="[string]"/><!-- ?? 0..1 Names what this mapping refers to -->
  <comments value="[string]"/><!-- 0..1 Versions, Issues, Scope limitations etc -->
 </mapping>
 <type value="[code]"/><!-- 1..1 type | resource | constraint | extension -->
 <abstract value="[boolean]"/><!-- 1..1 Whether the structure is abstract -->
 <contextType value="[code]"/><!-- ?? 0..1 resource | datatype | mapping | extension -->
 <context value="[string]"/><!-- ?? 0..* Where the extension can be used in instances -->
 <base value="[uri]"/><!-- ?? 0..1 Structure that this set of constraints applies to -->
 <snapshot>  <!-- ?? 0..1 Snapshot view of the structure -->
  <element><!-- ?? 1..* ElementDefinition 
      Definition of elements in the resource (if no StructureDefinition) --></element>
 </snapshot>
 <differential>  <!-- ?? 0..1 Differential view of the structure -->
  <element><!-- 1..* ElementDefinition 
      Definition of elements in the resource (if no StructureDefinition) --></element>
 </differential>
</StructureDefinition>

JSON Template

{doco
  "resourceType" : "StructureDefinition",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "url" : "<uri>", // R!  Literal URL used to reference this StructureDefinition
  "identifier" : [{ Identifier }], // Other identifiers for the StructureDefinition
  "version" : "<string>", // Logical id for this version of the StructureDefinition
  "name" : "<string>", // R!  Informal name for this StructureDefinition
  "useContext" : [{ CodeableConcept }], // Content intends to support these contexts
  "display" : "<string>", // Use this name when displaying the value
  "publisher" : "<string>", // Name of the publisher (Organization or individual)
  "contact" : [{ // Contact details of the publisher
    "name" : "<string>", // Name of a individual to contact
    "telecom" : [{ ContactPoint }] // Contact details for individual or publisher
  }],
  "description" : "<string>", // Natural language description of the StructureDefinition
  "requirements" : "<string>", // Scope and Usage this structure definition is for
  "copyright" : "<string>", // Use and/or Publishing restrictions
  "code" : [{ Coding }], // Assist with indexing and finding
  "status" : "<code>", // R!  draft | active | retired
  "experimental" : <boolean>, // If for testing purposes, not real usage
  "date" : "<dateTime>", // Date for this version of the StructureDefinition
  "fhirVersion" : "<id>", // FHIR Version this StructureDefinition targets
  "mapping" : [{ // External specification that the content is mapped to
    "identity" : "<id>", // R!  Internal id when this mapping is used
    "uri" : "<uri>", // C? Identifies what this mapping refers to
    "name" : "<string>", // C? Names what this mapping refers to
    "comments" : "<string>" // Versions, Issues, Scope limitations etc
  }],
  "type" : "<code>", // R!  type | resource | constraint | extension
  "abstract" : <boolean>, // R!  Whether the structure is abstract
  "contextType" : "<code>", // C? resource | datatype | mapping | extension
  "context" : ["<string>"], // C? Where the extension can be used in instances
  "base" : "<uri>", // C? Structure that this set of constraints applies to
  "snapshot" : { // C? Snapshot view of the structure
    "element" : [{ ElementDefinition }] // C? R!  
      Definition of elements in the resource (if no StructureDefinition)
  },
  "differential" : { // C? Differential view of the structure
    "element" : [{ ElementDefinition }] // R!  
      Definition of elements in the resource (if no StructureDefinition)
  }
}

 

Alternate definitions: Schema / Schematron , Resource Profile ( XML , JSON ), Questionnaire

6.17.4.1 Terminology Bindings

Path Definition Type Reference
StructureDefinition.useContext Indicates the countries, regions, disciplines and other aspects of use this artifact is targeted for use within Extensible http://hl7.org/fhir/vs/use-context
StructureDefinition.status The lifecycle status of a Value Set or Concept Map Required http://hl7.org/fhir/conformance-resource-status
StructureDefinition.type Defines the type of structure that a definition is describing Required http://hl7.org/fhir/structure-definition-type
StructureDefinition.contextType How an extension context is interpreted Required http://hl7.org/fhir/extension-context

6.17.4.2 Constraints

6.17.5 Interpretation Notes:

6.17.5.1 Different types of Structure

StructureDefinition.type indicates what kind of structure is being defined. There are 5 kinds of structures:

  1. abstract : "Abstract type" - one of the underlying base types defined as part of the specification (e.g. Resource )
  2. type : "Data Type" - a primitive or complex structure that defines a set of data elements, most of which are defined in the Data Types section
  3. resource : "Resource" - A resource defined by the FHIR specification (see the resource list )
  4. constraint : "Constrained Type" - A set of constraints on a resource or data type that describe how it is used for a particular use
  5. extension : "Extension Definition" - A definition of an extension that can be used in a FHIR resource (or a set of constraints on an exsting extension)

The first 3 types can only be defined by the FHIR specification. Types 4 and 5 are used in profiles and implementation guides, and may be published by any implementer of the specification.

6.17.5.2 Rules for Constrained Types

When the type of a structure definition is either a "constraint" or an "extension", then the following rules apply:

6.17.5.3 Common Mapping Targets

Structures are able to map elements to concepts in other definition systems. Generally these are used to map the elements to local implementation models, data paths, and concepts. However they are also used to map to other standards and published terminologies. These are the standard URIs used for common targets of the mapping:

http://loinc.org LOINC code for the element
http://snomed.info SNOMED CT code for the element
http://hl7.org/v3 RIM mapping
http://hl7.org/v2 v2 mapping
http://nema.org/dicom DICOM tag mapping
http://w3.org/vcard vCard equivalent field
http://ihe.net/xds XDS metadata equivalent

6.17.6 Search Parameters

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

Name Type Description Paths
abstract token Whether the structure is abstract StructureDefinition.abstract
base uri Structure that this set of constraints applies to StructureDefinition.base
code token A code for the profile StructureDefinition.code
context token A use context assigned to the structure StructureDefinition.useContext
context-type token resource | datatype | mapping | extension StructureDefinition.contextType
date date The profile publication date StructureDefinition.date
description string Text search in the description of the profile StructureDefinition.description
display string Use this name when displaying the value StructureDefinition.display
experimental token If for testing purposes, not real usage StructureDefinition.experimental
ext-context string Where the extension can be used in instances StructureDefinition.context
identifier token The identifier of the profile StructureDefinition.identifier
name string Name of the profile StructureDefinition.name
path token A path that is constrained in the profile StructureDefinition.snapshot.element.path, StructureDefinition.differential.element.path
publisher string Name of the publisher of the profile StructureDefinition.publisher
status token The current status of the profile StructureDefinition.status
type token type | resource | constraint | extension StructureDefinition.type
url uri Literal URL used to reference this StructureDefinition StructureDefinition.url
valueset reference A vocabulary binding reference StructureDefinition.snapshot.element.binding.valueSet[x]
( ValueSet )
version token The version identifier of the profile StructureDefinition.version