---
type: "resource"
title: "ImplementationGuide"
resource: "ImplementationGuide"
---
# ImplementationGuide
## Introduction
## Scope and Usage
An implementation guide (IG) is a set of rules about how FHIR resources are used (or should be used) to solve a particular problem, with associated documentation to support and clarify the usage. Classically, FHIR implementation guides are published on the web after they are generated using the [FHIR Implementation Guide Publisher](https://confluence.hl7.org/display/FHIR/IG+Publisher+Documentation).
The `ImplementationGuide` resource is a single resource that defines the content of the IG, along with the important entry pages into the publication, as a single logical package, so that the contents of the IG are computable for purposes of publication, validation, registry look-up, and other uses.
In particular, validators are able to use the ImplementationGuide resource to validate content against the implementation guide as a whole. The significant conformance expectation introduced by the ImplementationGuide resource is the idea of [Default Profiles](#default). Implementations may conform to multiple implementation guides at once, but this requires that the implementation guides are compatible.
## Boundaries and Relationships
Implementation Guides contain two different types of resource references:
- Contents: A set of logical statements which implementations must conform to. These are almost always [conformance resources](conformance-module)
- Examples: Examples that illustrate the intent of the profiles defined in the implementation guide. These can be any kind of resource
An application's [Capability Statement](capabilitystatement) may identify one or more implementation guides that an application conforms to.
## Notes
### Distributing Implementation Guides
Implementation Guides are published through the FHIR Package distribution system. For further details, see the [FHIR NPM Packages](packages).
Choices around the types and volume of resources included in a single implementation guide can impact the size of the packages resulting from the publication of the implementation guide. When deciding on how to organize content and making decisions about what content to include, please consider the package guidance provided in the [FHIR Package Composition](packages#composition) section.
Choices around the types and volume of resources included in a single implementation guide can impact the size of the packages resulting from the publication of the implementation guide. When deciding on how to organize content and making decisions about what content to include, please consider the package guidance provided [here](packages#package-composition).
### Authoring Implementation Guides
Implementation Guides can be produced using any tooling that produces a human readable output and a package that includes an ImplementationGuide along with all the supporting resources it refers to, and their dependencies. Note that dependencies included in other packages that the Implementation guide identifies as dependencies are not included in the package.
See [Confluence](https://confluence.hl7.org/display/FHIR/Authoring+FHIR+Implementation+Guides+-+Introduction) for a list of tools that can assist with authoring implementation guides. HL7 publishes a [Guidance Implementation Guide]([%ig guidance%]) that provides specific guidance on best practices around IG creation as well as information about some of the tooling extensions and capabilities relevant to creation and publication of implementation guides. Note that this documentation mixes general documentation about the design of implementation guides with tooling specific advice based on one particular tool.
### Roles of Implementation Guides
Implementation Guides are packages of both computer processible content (resources) and human readable documentation (html). The resources typically specify some combination of:
- Terminology: [Code Systems](codesystem), [ValueSet](valueset) and [concept maps](conceptmap)
- Content rules: [Profiles and Extensions](structuredefinition) and [Mappings to other content](structuremap)
- API Details: [Capability Statement](capabilitystatement), [operation definitions](operationdefinition) and additional [search parameters](searchparameter)
- Clinical Logic: [Questionnaires](questionnaire), [logic libraries](library) and [measure definitions](measure)
- Test Information: Test Scripts
- Supporting Examples
Note that any kinds of resources can be included; these are just the common uses.
In addition, in the human readable portions, implementation guides often:
- Describe security arrangements in place for the relevent data exchanges, along with consent and access control requirements
- Detail additional rules about the user of the narrative in the resources
- Specify other conformance expectations that aren't testable directly
- Outline the business arrangements and expectations under which the data is exchanged
### Multi-Version Implementation Guides
Most implementation guides target a single version of FHIR - that is, they describe how to use a particular version, and all the profiles, value sets and examples they contain etc. are valid for that particular version.
In other cases, however, implementation of an implementation guide is not confined to a single version. Typically, the requirement to support multiple versions arises as implementation matures and different implementation communities are stuck at different versions by regulation or market dynamics. Applications may be stuck at different versions of the specification. See [Managing Multiple Versions](versioning) for further information about cross-version support.
For this reason, implementation guides might describe how to use multiple different versions of FHIR for the same purpose. The different versions might have different profiles, extensions, and examples, while sharing common value set definitions, for example. For some reasons, profiles and examples could be common across all versions. And an implementation guide will generally have a lot of common narrative describing the problem, security approaches, and other deployment information irrespective of specific FHIR versions.
An implementation guide specifies which versions of FHIR it describes in the [ImplementationGuide.fhirVersion](implementationguide-definitions#ImplementationGuide.fhirVersion) property:
"fhirVersion" : \["4.0", "5.0"\],
## StructureDefinition
### Elements (Simplified)
- **[ImplementationGuide](/implementationguide-definitions#ImplementationGuide)** [0..*]: - A set of rules about how FHIR is used
- **[ImplementationGuide.url](/implementationguide-definitions#ImplementationGuide.url)** [1..1]: [uri](/uri) Canonical identifier for this implementation guide, represented as a URI (globally unique)
- **[ImplementationGuide.identifier](/implementationguide-definitions#ImplementationGuide.identifier)** [0..*]: [Identifier](/Identifier) Additional identifier for the implementation guide (business identifier)
- **[ImplementationGuide.version](/implementationguide-definitions#ImplementationGuide.version)** [0..1]: [string](/string) Business version of the implementation guide
- **[ImplementationGuide.versionAlgorithm[x]](/implementationguide-definitions#ImplementationGuide.versionAlgorithm%5Bx%5D)** [0..1]: [string](/string), [Coding](/Coding) extensible:[version-algorithm](/valueset-version-algorithm) How to compare versions
- **[ImplementationGuide.name](/implementationguide-definitions#ImplementationGuide.name)** [1..1]: [string](/string) Name for this implementation guide (computer friendly)
- **[ImplementationGuide.title](/implementationguide-definitions#ImplementationGuide.title)** [0..1]: [string](/string) Name for this implementation guide (human friendly)
- **[ImplementationGuide.status](/implementationguide-definitions#ImplementationGuide.status)** [1..1]: [code](/code) required:[publication-status](/valueset-publication-status) draft | active | retired | unknown
- **[ImplementationGuide.experimental](/implementationguide-definitions#ImplementationGuide.experimental)** [0..1]: [boolean](/boolean) For testing only - never for real usage
- **[ImplementationGuide.date](/implementationguide-definitions#ImplementationGuide.date)** [0..1]: [dateTime](/dateTime) Date last changed
- **[ImplementationGuide.publisher](/implementationguide-definitions#ImplementationGuide.publisher)** [0..1]: [string](/string) Name of the publisher/steward (organization or individual)
- **[ImplementationGuide.contact](/implementationguide-definitions#ImplementationGuide.contact)** [0..*]: [ContactDetail](/ContactDetail) Contact details for the publisher
- **[ImplementationGuide.description](/implementationguide-definitions#ImplementationGuide.description)** [0..1]: [markdown](/markdown) Natural language description of the implementation guide
- **[ImplementationGuide.useContext](/implementationguide-definitions#ImplementationGuide.useContext)** [0..*]: [UsageContext](/UsageContext) The context that the content is intended to support
- **[ImplementationGuide.jurisdiction](/implementationguide-definitions#ImplementationGuide.jurisdiction)** [0..*]: [CodeableConcept](/CodeableConcept) extensible:[jurisdiction](/valueset-jurisdiction) Jurisdiction of the authority that maintains the implementation guide (if applicable)
- **[ImplementationGuide.purpose](/implementationguide-definitions#ImplementationGuide.purpose)** [0..1]: [markdown](/markdown) Why this implementation guide is defined
- **[ImplementationGuide.copyright](/implementationguide-definitions#ImplementationGuide.copyright)** [0..1]: [markdown](/markdown) Notice about intellectual property ownership, can include restrictions on use
- **[ImplementationGuide.copyrightLabel](/implementationguide-definitions#ImplementationGuide.copyrightLabel)** [0..1]: [string](/string) Copyright holder and year(s)
- **[ImplementationGuide.packageId](/implementationguide-definitions#ImplementationGuide.packageId)** [1..1]: [id](/id) NPM Package name for IG
- **[ImplementationGuide.license](/implementationguide-definitions#ImplementationGuide.license)** [0..1]: [code](/code) required:[spdx-license](/valueset-spdx-license) SPDX license code for this IG (or not-open-source)
- **[ImplementationGuide.fhirVersion](/implementationguide-definitions#ImplementationGuide.fhirVersion)** [1..*]: [code](/code) required:[FHIR-version](/valueset-FHIR-version) FHIR Version(s) this Implementation Guide targets
- **[ImplementationGuide.dependsOn](/implementationguide-definitions#ImplementationGuide.dependsOn)** [0..*]: [BackboneElement](/BackboneElement) Another Implementation guide this depends on
- **[ImplementationGuide.dependsOn.uri](/implementationguide-definitions#ImplementationGuide.dependsOn.uri)** [1..1]: [canonical](/canonical) Identity of the IG that this depends on
- **[ImplementationGuide.dependsOn.packageId](/implementationguide-definitions#ImplementationGuide.dependsOn.packageId)** [0..1]: [id](/id) NPM Package name for IG this depends on
- **[ImplementationGuide.dependsOn.version](/implementationguide-definitions#ImplementationGuide.dependsOn.version)** [0..1]: [string](/string) Version of the IG
- **[ImplementationGuide.dependsOn.reason](/implementationguide-definitions#ImplementationGuide.dependsOn.reason)** [0..1]: [markdown](/markdown) Why dependency exists
- **[ImplementationGuide.global](/implementationguide-definitions#ImplementationGuide.global)** [0..*]: [BackboneElement](/BackboneElement) Profiles that apply globally
- **[ImplementationGuide.global.type](/implementationguide-definitions#ImplementationGuide.global.type)** [1..1]: [code](/code) required:[resource-types](/valueset-resource-types) Type this profile applies to
- **[ImplementationGuide.global.profile](/implementationguide-definitions#ImplementationGuide.global.profile)** [1..1]: [canonical](/canonical) Profile that all resources must conform to
- **[ImplementationGuide.definition](/implementationguide-definitions#ImplementationGuide.definition)** [0..1]: [BackboneElement](/BackboneElement) Information needed to build the IG
- **[ImplementationGuide.definition.grouping](/implementationguide-definitions#ImplementationGuide.definition.grouping)** [0..*]: [BackboneElement](/BackboneElement) Grouping used to present related resources in the IG
- **[ImplementationGuide.definition.grouping.name](/implementationguide-definitions#ImplementationGuide.definition.grouping.name)** [1..1]: [string](/string) Descriptive name for the package
- **[ImplementationGuide.definition.grouping.description](/implementationguide-definitions#ImplementationGuide.definition.grouping.description)** [0..1]: [markdown](/markdown) Human readable text describing the package
- **[ImplementationGuide.definition.resource](/implementationguide-definitions#ImplementationGuide.definition.resource)** [0..*]: [BackboneElement](/BackboneElement) Resource in the implementation guide
- **[ImplementationGuide.definition.resource.reference](/implementationguide-definitions#ImplementationGuide.definition.resource.reference)** [1..1]: Reference([Resource](/Resource)) Location of the resource
- **[ImplementationGuide.definition.resource.fhirVersion](/implementationguide-definitions#ImplementationGuide.definition.resource.fhirVersion)** [0..*]: [code](/code) required:[FHIR-version](/valueset-FHIR-version) Versions this applies to (if different to IG)
- **[ImplementationGuide.definition.resource.name](/implementationguide-definitions#ImplementationGuide.definition.resource.name)** [0..1]: [string](/string) Human readable name for the resource
- **[ImplementationGuide.definition.resource.description](/implementationguide-definitions#ImplementationGuide.definition.resource.description)** [0..1]: [markdown](/markdown) Reason why included in guide
- **[ImplementationGuide.definition.resource.isExample](/implementationguide-definitions#ImplementationGuide.definition.resource.isExample)** [0..1]: [boolean](/boolean) Is this an example
- **[ImplementationGuide.definition.resource.profile](/implementationguide-definitions#ImplementationGuide.definition.resource.profile)** [0..*]: [canonical](/canonical) Profile(s) this resource is valid against
- **[ImplementationGuide.definition.resource.groupingId](/implementationguide-definitions#ImplementationGuide.definition.resource.groupingId)** [0..1]: [id](/id) Grouping this is part of
- **[ImplementationGuide.definition.page](/implementationguide-definitions#ImplementationGuide.definition.page)** [0..1]: [BackboneElement](/BackboneElement) Page/Section in the Guide
- **[ImplementationGuide.definition.page.source[x]](/implementationguide-definitions#ImplementationGuide.definition.page.source%5Bx%5D)** [0..1]: [url](/url), [string](/string), [markdown](/markdown) Source for page
- **[ImplementationGuide.definition.page.name](/implementationguide-definitions#ImplementationGuide.definition.page.name)** [1..1]: [url](/url) Name of the page when published
- **[ImplementationGuide.definition.page.title](/implementationguide-definitions#ImplementationGuide.definition.page.title)** [1..1]: [string](/string) Short title shown for navigational assistance
- **[ImplementationGuide.definition.page.generation](/implementationguide-definitions#ImplementationGuide.definition.page.generation)** [1..1]: [code](/code) required:[guide-page-generation](/valueset-guide-page-generation) html | markdown | xml | generated
- **[ImplementationGuide.definition.page.page](/implementationguide-definitions#ImplementationGuide.definition.page.page)** [0..*]: - Nested Pages / Sections
- **[ImplementationGuide.definition.parameter](/implementationguide-definitions#ImplementationGuide.definition.parameter)** [0..*]: [BackboneElement](/BackboneElement) Defines how IG is built by tools
- **[ImplementationGuide.definition.parameter.code](/implementationguide-definitions#ImplementationGuide.definition.parameter.code)** [1..1]: [Coding](/Coding) extensible:[guide-parameter-code](/valueset-guide-parameter-code) Code that identifies parameter
- **[ImplementationGuide.definition.parameter.value](/implementationguide-definitions#ImplementationGuide.definition.parameter.value)** [1..1]: [string](/string) Value for named type
- **[ImplementationGuide.definition.template](/implementationguide-definitions#ImplementationGuide.definition.template)** [0..*]: [BackboneElement](/BackboneElement) A template for building resources
- **[ImplementationGuide.definition.template.code](/implementationguide-definitions#ImplementationGuide.definition.template.code)** [1..1]: [code](/code) Type of template specified
- **[ImplementationGuide.definition.template.source](/implementationguide-definitions#ImplementationGuide.definition.template.source)** [1..1]: [string](/string) The source location for the template
- **[ImplementationGuide.definition.template.scope](/implementationguide-definitions#ImplementationGuide.definition.template.scope)** [0..1]: [string](/string) The scope in which the template applies
- **[ImplementationGuide.manifest](/implementationguide-definitions#ImplementationGuide.manifest)** [0..1]: [BackboneElement](/BackboneElement) Information about an assembled IG
- **[ImplementationGuide.manifest.rendering](/implementationguide-definitions#ImplementationGuide.manifest.rendering)** [0..1]: [url](/url) Location of rendered implementation guide
- **[ImplementationGuide.manifest.resource](/implementationguide-definitions#ImplementationGuide.manifest.resource)** [1..*]: [BackboneElement](/BackboneElement) Resource in the implementation guide
- **[ImplementationGuide.manifest.resource.reference](/implementationguide-definitions#ImplementationGuide.manifest.resource.reference)** [1..1]: Reference([Resource](/Resource)) Location of the resource
- **[ImplementationGuide.manifest.resource.isExample](/implementationguide-definitions#ImplementationGuide.manifest.resource.isExample)** [0..1]: [boolean](/boolean) Is this an example
- **[ImplementationGuide.manifest.resource.profile](/implementationguide-definitions#ImplementationGuide.manifest.resource.profile)** [0..*]: [canonical](/canonical) Profile(s) this is an example of
- **[ImplementationGuide.manifest.resource.relativePath](/implementationguide-definitions#ImplementationGuide.manifest.resource.relativePath)** [0..1]: [url](/url) Relative path for page in IG
- **[ImplementationGuide.manifest.page](/implementationguide-definitions#ImplementationGuide.manifest.page)** [0..*]: [BackboneElement](/BackboneElement) HTML page within the parent IG
- **[ImplementationGuide.manifest.page.name](/implementationguide-definitions#ImplementationGuide.manifest.page.name)** [1..1]: [string](/string) HTML page name
- **[ImplementationGuide.manifest.page.title](/implementationguide-definitions#ImplementationGuide.manifest.page.title)** [0..1]: [string](/string) Title of the page, for references
- **[ImplementationGuide.manifest.page.anchor](/implementationguide-definitions#ImplementationGuide.manifest.page.anchor)** [0..*]: [string](/string) Anchor available on the page
- **[ImplementationGuide.manifest.image](/implementationguide-definitions#ImplementationGuide.manifest.image)** [0..*]: [string](/string) Image within the IG
- **[ImplementationGuide.manifest.other](/implementationguide-definitions#ImplementationGuide.manifest.other)** [0..*]: [string](/string) Additional linkable file in IG
## Mappings
- [ImplementationGuide Mappings](/implementationguide-mappings) — 12 mapping entries
## Implementation Guide
### implementationguide-ImplementationGuide-core.xml
```xml
```
## Resource Packs
### list-ImplementationGuide-packs.xml
```xml
-
```
## Search Parameters
- [context](/implementationguide-search#context) — **token** — A use context assigned to the implementation guide — `(ImplementationGuide.useContext.value.ofType(CodeableConcept))`
- [context-quantity](/implementationguide-search#context-quantity) — **quantity** — A quantity- or range-valued use context assigned to the implementation guide — `(ImplementationGuide.useContext.value.ofType(Quantity)) | (ImplementationGuide.useContext.value.ofType(Range))`
- [context-type](/implementationguide-search#context-type) — **token** — A type of use context assigned to the implementation guide — `ImplementationGuide.useContext.code`
- [context-type-quantity](/implementationguide-search#context-type-quantity) — **composite** — A use context type and quantity- or range-based value assigned to the implementation guide — `ImplementationGuide.useContext`
- [context-type-value](/implementationguide-search#context-type-value) — **composite** — A use context type and value assigned to the implementation guide — `ImplementationGuide.useContext`
- [date](/implementationguide-search#date) — **date** — The implementation guide publication date — `ImplementationGuide.date`
- [depends-on](/implementationguide-search#depends-on) — **reference** — Identity of the IG that this depends on — `ImplementationGuide.dependsOn.uri`
- [description](/implementationguide-search#description) — **string** — The description of the implementation guide — `ImplementationGuide.description`
- [experimental](/implementationguide-search#experimental) — **token** — For testing only - never for real usage — `ImplementationGuide.experimental`
- [global](/implementationguide-search#global) — **reference** — Profile that all resources must conform to — `ImplementationGuide.global.profile`
- [identifier](/implementationguide-search#identifier) — **token** — External identifier for the implementation guide — `ImplementationGuide.identifier`
- [identifier](/implementationguide-search#identifier) — **token** — External identifier for the implementation guide — `ImplementationGuide.identifier`
- [jurisdiction](/implementationguide-search#jurisdiction) — **token** — Jurisdiction of the authority that maintains the the implementation guide — `ImplementationGuide.jurisdiction`
- [name](/implementationguide-search#name) — **string** — Computationally friendly name of the implementation guide — `ImplementationGuide.name`
- [publisher](/implementationguide-search#publisher) — **string** — Name of the publisher of the implementation guide — `ImplementationGuide.publisher`
- [resource](/implementationguide-search#resource) — **reference** — Location of the resource — `ImplementationGuide.definition.resource.reference`
- [status](/implementationguide-search#status) — **token** — The current status of the implementation guide — `ImplementationGuide.status`
- [title](/implementationguide-search#title) — **string** — The human-friendly name of the implementation guide — `ImplementationGuide.title`
- [url](/implementationguide-search#url) — **uri** — The uri that identifies the implementation guide — `ImplementationGuide.url`
- [version](/implementationguide-search#version) — **token** — The business version of the implementation guide — `ImplementationGuide.version`
[Full Search Parameters](/implementationguide-search)
## Examples
- [example](/implementationguide-example-example) — implementationguide-example — Example of implementationguide
- [implementationguide-example](/implementationguide-example-implementationguide-example) — implementationguide-example
- [implementationguide-examples-header](/implementationguide-example-implementationguide-examples-header) — implementationguide-examples-header
[Full Examples](/implementationguide-examples)
## Mapping Exceptions
### implementationguide-fivews-mapping-exceptions.xml
### Unmapped Elements
- **FiveWs.what** — Not relevant for this resource
- **FiveWs.author** — Not relevant for this resource
- **FiveWs.actor** — Not relevant for this resource
- **FiveWs.cause** — Not relevant for this resource
- **FiveWs.where** — Not relevant for this resource
- **FiveWs.context** — Unknown
- **FiveWs.init** — Not relevant for this resource
- **FiveWs.source** — Not relevant for this resource
- **FiveWs.who** — Not relevant for this resource
- **FiveWs.grade** — Not relevant for this resource
- **FiveWs.planned** — Not relevant for this resource
- **FiveWs.done** — Not relevant for this resource
- **FiveWs.subject** — Not relevant for this resource