View raw Markdown
type: resourceresource: 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.

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. 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:

An application's Capability Statement 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.

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 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.

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 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:

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:

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 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 property:

"fhirVersion" : ["4.0", "5.0"],

StructureDefinition

Elements (Simplified)

Mappings

Implementation Guide

implementationguide-ImplementationGuide-core.xml

<?xml version="1.0" encoding="UTF-8"?>

<ImplementationGuide xmlns="http://hl7.org/fhir">
  <id value="ImplementationGuide-core"/>
  <name value="FHIRCoreImplementationGuideProfile"/>
  <title value="FHIR Core Implementation Guide Profile"/>
  <status value="draft"/>
  <date value="2014-12-07T00:00:00.000"/>
  <publisher value="Health Level Seven, Inc. - FHIR WG"/>
  <description value="This profile holds core ImplementationGuide extensions"/>
</ImplementationGuide>

Resource Packs

list-ImplementationGuide-packs.xml

<?xml version="1.0" encoding="UTF-8"?>

<List xmlns="http://hl7.org/fhir">
  <id value="ImplementationGuide-packs"/>
  <status value="current"/>
  <mode value="working"/>
  <entry>
    <item>
      <reference value="ImplementationGuide/ImplementationGuide-core"/>
    </item>
  </entry>
</List>

Search Parameters

Full Search Parameters

Examples

Full Examples

Mapping Exceptions

implementationguide-fivews-mapping-exceptions.xml

Unmapped Elements