This page is part of the FHIR Specification (v1.2.0: STU 3 Draft). 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
FHIR Infrastructure Work Group | Maturity Level: 0 | Compartments: Not linked to any defined compartments |
A set of rules or how FHIR is used to solve a particular problem. This resource is used to gather all the parts of an implementation guide into a logical whole, and to publish a computable definition of all the parts.
An "implementation guide" defines a particular scope of usage for FHIR, and sets a bounded set of expectations for implementations to comply to.
The significant conformance expectation introduced by the ImplementationGuide resource is the idea of Default Profiles. Implementations may conform to multiple implementation guides at once, but this requires that the implementation guides are compatible (see below).
Implementation Guides contain two different types of resource references: .
An applications Conformance Statement may identify one or more implementation guides that an application conforms to.
The ImplementationGuide resource is defined for two principle reasons:
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ImplementationGuide | DomainResource | A set of rules about how FHIR is used | ||
url | Σ | 1..1 | uri | Absolute URL used to reference this Implementation Guide |
version | Σ | 0..1 | string | Logical id for this version of the Implementation Guide |
name | Σ | 1..1 | string | Informal name for this Implementation Guide |
status | ?! Σ | 1..1 | code | draft | active | retired ConformanceResourceStatus (Required) |
experimental | Σ | 0..1 | boolean | If for testing purposes, not real usage |
publisher | Σ | 0..1 | string | Name of the publisher (Organization or individual) |
contact | Σ | 0..* | BackboneElement | Contact details of the publisher |
name | Σ | 0..1 | string | Name of a individual to contact |
telecom | Σ | 0..* | ContactPoint | Contact details for individual or publisher |
date | Σ | 0..1 | dateTime | Date for this version of the Implementation Guide |
description | Σ | 0..1 | string | Natural language description of the Implementation Guide |
useContext | Σ | 0..* | CodeableConcept | The implementation guide is intended to support these contexts Context of Use ValueSet (Extensible) |
copyright | 0..1 | string | Use and/or publishing restrictions | |
fhirVersion | Σ | 0..1 | id | FHIR Version this Implementation Guide targets |
dependency | Σ | 0..* | BackboneElement | Another Implementation guide this depends on |
type | Σ | 1..1 | code | reference | inclusion GuideDependencyType (Required) |
uri | Σ | 1..1 | uri | Where to find dependency |
package | Σ | 1..* | BackboneElement | Group of resources as used in .page.package |
name | Σ | 1..1 | string | Name used .page.package |
description | 0..1 | string | Human readable text describing the package | |
resource | Σ | 1..* | BackboneElement | Resource in the implementation guide |
purpose | Σ | 1..1 | code | example | terminology | profile | extension | dictionary | logical GuideResourcePurpose (Required) |
name | Σ | 0..1 | string | Human Name for the resource |
description | 0..1 | string | Reason why included in guide | |
acronym | 0..1 | string | Short code to identify the resource | |
source[x] | Σ | 1..1 | Location of the resource | |
sourceUri | uri | |||
sourceReference | Reference(Any) | |||
exampleFor | 0..1 | Reference(StructureDefinition) | Resource this is an example of (if applicable) | |
global | Σ | 0..* | BackboneElement | Profiles that apply globally |
type | Σ | 1..1 | code | Type this profiles applies to ResourceType (Required) |
profile | Σ | 1..1 | Reference(StructureDefinition) | Profile that all resources must conform to |
binary | 0..* | uri | Image, css, script, etc. | |
page | Σ | 1..1 | BackboneElement | Page/Section in the Guide |
source | Σ | 1..1 | uri | Where to find that page |
name | Σ | 1..1 | string | Short name shown for navigational assistance |
kind | Σ | 1..1 | code | page | example | list | include | directory | dictionary | toc | resource GuidePageKind (Required) |
type | 0..* | code | Kind of resource to include in the list ResourceType (Required) | |
package | 0..* | string | Name of package to include | |
format | 0..1 | code | Format of the page (e.g. html, markdown, etc.) MimeType (Required) | |
page | 0..* | see page | Nested Pages / Sections | |
Documentation for this format |
UML Diagram
XML Template
<ImplementationGuide xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <url value="[uri]"/><!-- 1..1 Absolute URL used to reference this Implementation Guide --> <version value="[string]"/><!-- 0..1 Logical id for this version of the Implementation Guide --> <name value="[string]"/><!-- 1..1 Informal name for this Implementation Guide --> <status value="[code]"/><!-- 1..1 draft | active | retired --> <experimental value="[boolean]"/><!-- 0..1 If for testing purposes, not real usage --> <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> <date value="[dateTime]"/><!-- 0..1 Date for this version of the Implementation Guide --> <description value="[string]"/><!-- 0..1 Natural language description of the Implementation Guide --> <useContext><!-- 0..* CodeableConcept The implementation guide is intended to support these contexts --></useContext> <copyright value="[string]"/><!-- 0..1 Use and/or publishing restrictions --> <fhirVersion value="[id]"/><!-- 0..1 FHIR Version this Implementation Guide targets --> <dependency> <!-- 0..* Another Implementation guide this depends on --> <type value="[code]"/><!-- 1..1 reference | inclusion --> <uri value="[uri]"/><!-- 1..1 Where to find dependency --> </dependency> <package> <!-- 1..* Group of resources as used in .page.package --> <name value="[string]"/><!-- 1..1 Name used .page.package --> <description value="[string]"/><!-- 0..1 Human readable text describing the package --> <resource> <!-- 1..* Resource in the implementation guide --> <purpose value="[code]"/><!-- 1..1 example | terminology | profile | extension | dictionary | logical --> <name value="[string]"/><!-- 0..1 Human Name for the resource --> <description value="[string]"/><!-- 0..1 Reason why included in guide --> <acronym value="[string]"/><!-- 0..1 Short code to identify the resource --> <source[x]><!-- 1..1 uri|Reference(Any) Location of the resource --></source[x]> <exampleFor><!-- 0..1 Reference(StructureDefinition) Resource this is an example of (if applicable) --></exampleFor> </resource> </package> <global> <!-- 0..* Profiles that apply globally --> <type value="[code]"/><!-- 1..1 Type this profiles applies to --> <profile><!-- 1..1 Reference(StructureDefinition) Profile that all resources must conform to --></profile> </global> <binary value="[uri]"/><!-- 0..* Image, css, script, etc. --> <page> <!-- 1..1 Page/Section in the Guide --> <source value="[uri]"/><!-- 1..1 Where to find that page --> <name value="[string]"/><!-- 1..1 Short name shown for navigational assistance --> <kind value="[code]"/><!-- 1..1 page | example | list | include | directory | dictionary | toc | resource --> <type value="[code]"/><!-- 0..* Kind of resource to include in the list --> <package value="[string]"/><!-- 0..* Name of package to include --> <format value="[code]"/><!-- 0..1 Format of the page (e.g. html, markdown, etc.) --> <page><!-- 0..* Content as for ImplementationGuide.page Nested Pages / Sections --></page> </page> </ImplementationGuide>
JSON Template
{ "resourceType" : "ImplementationGuide", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "url" : "<uri>", // R! Absolute URL used to reference this Implementation Guide "version" : "<string>", // Logical id for this version of the Implementation Guide "name" : "<string>", // R! Informal name for this Implementation Guide "status" : "<code>", // R! draft | active | retired "experimental" : <boolean>, // If for testing purposes, not real usage "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 }], "date" : "<dateTime>", // Date for this version of the Implementation Guide "description" : "<string>", // Natural language description of the Implementation Guide "useContext" : [{ CodeableConcept }], // The implementation guide is intended to support these contexts "copyright" : "<string>", // Use and/or publishing restrictions "fhirVersion" : "<id>", // FHIR Version this Implementation Guide targets "dependency" : [{ // Another Implementation guide this depends on "type" : "<code>", // R! reference | inclusion "uri" : "<uri>" // R! Where to find dependency }], "package" : [{ // R! Group of resources as used in .page.package "name" : "<string>", // R! Name used .page.package "description" : "<string>", // Human readable text describing the package "resource" : [{ // R! Resource in the implementation guide "purpose" : "<code>", // R! example | terminology | profile | extension | dictionary | logical "name" : "<string>", // Human Name for the resource "description" : "<string>", // Reason why included in guide "acronym" : "<string>", // Short code to identify the resource // source[x]: Location of the resource. One of these 2: "sourceUri" : "<uri>", "sourceReference" : { Reference(Any) }, "exampleFor" : { Reference(StructureDefinition) } // Resource this is an example of (if applicable) }] }], "global" : [{ // Profiles that apply globally "type" : "<code>", // R! Type this profiles applies to "profile" : { Reference(StructureDefinition) } // R! Profile that all resources must conform to }], "binary" : ["<uri>"], // Image, css, script, etc. "page" : { // R! Page/Section in the Guide "source" : "<uri>", // R! Where to find that page "name" : "<string>", // R! Short name shown for navigational assistance "kind" : "<code>", // R! page | example | list | include | directory | dictionary | toc | resource "type" : ["<code>"], // Kind of resource to include in the list "package" : ["<string>"], // Name of package to include "format" : "<code>", // Format of the page (e.g. html, markdown, etc.) "page" : [{ Content as for ImplementationGuide.page }] // Nested Pages / Sections } }
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ImplementationGuide | DomainResource | A set of rules about how FHIR is used | ||
url | Σ | 1..1 | uri | Absolute URL used to reference this Implementation Guide |
version | Σ | 0..1 | string | Logical id for this version of the Implementation Guide |
name | Σ | 1..1 | string | Informal name for this Implementation Guide |
status | ?! Σ | 1..1 | code | draft | active | retired ConformanceResourceStatus (Required) |
experimental | Σ | 0..1 | boolean | If for testing purposes, not real usage |
publisher | Σ | 0..1 | string | Name of the publisher (Organization or individual) |
contact | Σ | 0..* | BackboneElement | Contact details of the publisher |
name | Σ | 0..1 | string | Name of a individual to contact |
telecom | Σ | 0..* | ContactPoint | Contact details for individual or publisher |
date | Σ | 0..1 | dateTime | Date for this version of the Implementation Guide |
description | Σ | 0..1 | string | Natural language description of the Implementation Guide |
useContext | Σ | 0..* | CodeableConcept | The implementation guide is intended to support these contexts Context of Use ValueSet (Extensible) |
copyright | 0..1 | string | Use and/or publishing restrictions | |
fhirVersion | Σ | 0..1 | id | FHIR Version this Implementation Guide targets |
dependency | Σ | 0..* | BackboneElement | Another Implementation guide this depends on |
type | Σ | 1..1 | code | reference | inclusion GuideDependencyType (Required) |
uri | Σ | 1..1 | uri | Where to find dependency |
package | Σ | 1..* | BackboneElement | Group of resources as used in .page.package |
name | Σ | 1..1 | string | Name used .page.package |
description | 0..1 | string | Human readable text describing the package | |
resource | Σ | 1..* | BackboneElement | Resource in the implementation guide |
purpose | Σ | 1..1 | code | example | terminology | profile | extension | dictionary | logical GuideResourcePurpose (Required) |
name | Σ | 0..1 | string | Human Name for the resource |
description | 0..1 | string | Reason why included in guide | |
acronym | 0..1 | string | Short code to identify the resource | |
source[x] | Σ | 1..1 | Location of the resource | |
sourceUri | uri | |||
sourceReference | Reference(Any) | |||
exampleFor | 0..1 | Reference(StructureDefinition) | Resource this is an example of (if applicable) | |
global | Σ | 0..* | BackboneElement | Profiles that apply globally |
type | Σ | 1..1 | code | Type this profiles applies to ResourceType (Required) |
profile | Σ | 1..1 | Reference(StructureDefinition) | Profile that all resources must conform to |
binary | 0..* | uri | Image, css, script, etc. | |
page | Σ | 1..1 | BackboneElement | Page/Section in the Guide |
source | Σ | 1..1 | uri | Where to find that page |
name | Σ | 1..1 | string | Short name shown for navigational assistance |
kind | Σ | 1..1 | code | page | example | list | include | directory | dictionary | toc | resource GuidePageKind (Required) |
type | 0..* | code | Kind of resource to include in the list ResourceType (Required) | |
package | 0..* | string | Name of package to include | |
format | 0..1 | code | Format of the page (e.g. html, markdown, etc.) MimeType (Required) | |
page | 0..* | see page | Nested Pages / Sections | |
Documentation for this format |
XML Template
<ImplementationGuide xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <url value="[uri]"/><!-- 1..1 Absolute URL used to reference this Implementation Guide --> <version value="[string]"/><!-- 0..1 Logical id for this version of the Implementation Guide --> <name value="[string]"/><!-- 1..1 Informal name for this Implementation Guide --> <status value="[code]"/><!-- 1..1 draft | active | retired --> <experimental value="[boolean]"/><!-- 0..1 If for testing purposes, not real usage --> <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> <date value="[dateTime]"/><!-- 0..1 Date for this version of the Implementation Guide --> <description value="[string]"/><!-- 0..1 Natural language description of the Implementation Guide --> <useContext><!-- 0..* CodeableConcept The implementation guide is intended to support these contexts --></useContext> <copyright value="[string]"/><!-- 0..1 Use and/or publishing restrictions --> <fhirVersion value="[id]"/><!-- 0..1 FHIR Version this Implementation Guide targets --> <dependency> <!-- 0..* Another Implementation guide this depends on --> <type value="[code]"/><!-- 1..1 reference | inclusion --> <uri value="[uri]"/><!-- 1..1 Where to find dependency --> </dependency> <package> <!-- 1..* Group of resources as used in .page.package --> <name value="[string]"/><!-- 1..1 Name used .page.package --> <description value="[string]"/><!-- 0..1 Human readable text describing the package --> <resource> <!-- 1..* Resource in the implementation guide --> <purpose value="[code]"/><!-- 1..1 example | terminology | profile | extension | dictionary | logical --> <name value="[string]"/><!-- 0..1 Human Name for the resource --> <description value="[string]"/><!-- 0..1 Reason why included in guide --> <acronym value="[string]"/><!-- 0..1 Short code to identify the resource --> <source[x]><!-- 1..1 uri|Reference(Any) Location of the resource --></source[x]> <exampleFor><!-- 0..1 Reference(StructureDefinition) Resource this is an example of (if applicable) --></exampleFor> </resource> </package> <global> <!-- 0..* Profiles that apply globally --> <type value="[code]"/><!-- 1..1 Type this profiles applies to --> <profile><!-- 1..1 Reference(StructureDefinition) Profile that all resources must conform to --></profile> </global> <binary value="[uri]"/><!-- 0..* Image, css, script, etc. --> <page> <!-- 1..1 Page/Section in the Guide --> <source value="[uri]"/><!-- 1..1 Where to find that page --> <name value="[string]"/><!-- 1..1 Short name shown for navigational assistance --> <kind value="[code]"/><!-- 1..1 page | example | list | include | directory | dictionary | toc | resource --> <type value="[code]"/><!-- 0..* Kind of resource to include in the list --> <package value="[string]"/><!-- 0..* Name of package to include --> <format value="[code]"/><!-- 0..1 Format of the page (e.g. html, markdown, etc.) --> <page><!-- 0..* Content as for ImplementationGuide.page Nested Pages / Sections --></page> </page> </ImplementationGuide>
JSON Template
{ "resourceType" : "ImplementationGuide", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "url" : "<uri>", // R! Absolute URL used to reference this Implementation Guide "version" : "<string>", // Logical id for this version of the Implementation Guide "name" : "<string>", // R! Informal name for this Implementation Guide "status" : "<code>", // R! draft | active | retired "experimental" : <boolean>, // If for testing purposes, not real usage "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 }], "date" : "<dateTime>", // Date for this version of the Implementation Guide "description" : "<string>", // Natural language description of the Implementation Guide "useContext" : [{ CodeableConcept }], // The implementation guide is intended to support these contexts "copyright" : "<string>", // Use and/or publishing restrictions "fhirVersion" : "<id>", // FHIR Version this Implementation Guide targets "dependency" : [{ // Another Implementation guide this depends on "type" : "<code>", // R! reference | inclusion "uri" : "<uri>" // R! Where to find dependency }], "package" : [{ // R! Group of resources as used in .page.package "name" : "<string>", // R! Name used .page.package "description" : "<string>", // Human readable text describing the package "resource" : [{ // R! Resource in the implementation guide "purpose" : "<code>", // R! example | terminology | profile | extension | dictionary | logical "name" : "<string>", // Human Name for the resource "description" : "<string>", // Reason why included in guide "acronym" : "<string>", // Short code to identify the resource // source[x]: Location of the resource. One of these 2: "sourceUri" : "<uri>", "sourceReference" : { Reference(Any) }, "exampleFor" : { Reference(StructureDefinition) } // Resource this is an example of (if applicable) }] }], "global" : [{ // Profiles that apply globally "type" : "<code>", // R! Type this profiles applies to "profile" : { Reference(StructureDefinition) } // R! Profile that all resources must conform to }], "binary" : ["<uri>"], // Image, css, script, etc. "page" : { // R! Page/Section in the Guide "source" : "<uri>", // R! Where to find that page "name" : "<string>", // R! Short name shown for navigational assistance "kind" : "<code>", // R! page | example | list | include | directory | dictionary | toc | resource "type" : ["<code>"], // Kind of resource to include in the list "package" : ["<string>"], // Name of package to include "format" : "<code>", // Format of the page (e.g. html, markdown, etc.) "page" : [{ Content as for ImplementationGuide.page }] // Nested Pages / Sections } }
Alternate definitions: Schema/Schematron, Resource Profile (XML, JSON), Questionnaire
Path | Definition | Type | Reference |
---|---|---|---|
ImplementationGuide.status | The lifecycle status of a Value Set or Concept Map. | Required | ConformanceResourceStatus |
ImplementationGuide.useContext | Indicates the countries, regions, disciplines and other aspects of use within which this artifact is targeted for use. | Extensible | Context of Use ValueSet |
ImplementationGuide.dependency.type | How a dependency is represented when the guide is published. | Required | GuideDependencyType |
ImplementationGuide.package.resource.purpose | Why a resource is included in the guide. | Required | GuideResourcePurpose |
ImplementationGuide.global.type ImplementationGuide.page.type | One of the resource types defined as part of FHIR. | Required | http://hl7.org/fhir/valueset/resource-typesResourceType |
ImplementationGuide.page.kind | The kind of an included page. | Required | GuidePageKind |
ImplementationGuide.page.format | The mime type of an attachment. Any valid mime type is allowed. | Required | BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) |
An implementation guide can define default profiles - these are profiles that apply to any resource that does not otherwise have an explicit profile assigned by the implementation guide. Default profiles are always references to profiles (StructureDefinition resources) that are also contained in the resources. By defining default profiles, an implementation guide can save itself from exhaustively defining profiles on every resource type just to profile every reference to a particular resource type.
Note that a resource can conform to the default profile by conforming to any profile derived from it.
This table declares the compatibility between the various resources as determined by the Implementation Guide comparison tool:
Yet to be done
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 |
context | token | A use context assigned to the structure | ImplementationGuide.useContext |
date | date | The implementation guide publication date | ImplementationGuide.date |
dependency | uri | Where to find dependency | ImplementationGuide.dependency.uri |
description | string | Text search in the description of the implementation guide | ImplementationGuide.description |
experimental | token | If for testing purposes, not real usage | ImplementationGuide.experimental |
name | string | Name of the implementation guide | ImplementationGuide.name |
publisher | string | Name of the publisher of the implementation guide | ImplementationGuide.publisher |
status | token | The current status of the implementation guide | ImplementationGuide.status |
url | uri | Absolute URL used to reference this Implementation Guide | ImplementationGuide.url |
version | token | The version identifier of the implementation guide | ImplementationGuide.version |