FHIR Tooling Extensions IG
0.3.0 - Release 0.2.0 International flag

FHIR Tooling Extensions IG, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 0.3.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/FHIR/fhir-tools-ig/ and changes regularly. See the Directory of published versions

Home Page

Official URL: http://hl7.org/fhir/tools/ImplementationGuide/hl7.fhir.uv.tools Version: 0.3.0
Active as of 2025-03-05 Computable Name: FHIRToolExtensionsIG
Other Identifiers: OID:2.16.840.1.113883.4.642.40.1

Introduction

This IG defines extensions and their valuesets + code systems used internally by FHIR tools that support the implementation community. These tools include:

  • Validators
  • Code Generators
  • Profile & Terminology tooling
  • Implementation Guide Authoring Tooling

These extensions are not intended to appear in health systems implementations unless they are concerned with code generation from the FHIR packages.

In addition, there are a few extensions and logical models that are defined in this IG to allow for experimental use; once more experience has been gained, these are intended to move into the main FHIR Extensions package (at which time their URL will change). Those extensions and the supporting terminology resources are clearly labeled.

Extension Summary

Extension Description Usage
Profiling Extensions that define additional useful profiling behavior.
obligation-profile Obligation Profiles change the cardinality, add additional bindings, and additional obligations, without changing the structure StructureDefinition
inherit-obligations Inherit all the obligations from an Obligation Profile. The other profile must be a Obligation Profile StructureDefinition
snapshot-base-version Version of the base when snapshot generated. Indicates when to regenerate snapshots as other packages become available StructureDefinition.snapshot
snapshot-behavior how an extension is treated when generating snapshots - ignore, add, override, defer StructureDefinition
JSON Format Control Extensions that control how Logical Models are represented in JSON (e.g. for CDS hooks, openEHR WebTemplates)
json-empty-behavior Property value for when a repeating element has no items. Can be absent, present, or either ElementDefinition, ElementDefinition.type
json-name The JSON property name for when the JSON name is not a valid element name (or for a type) ElementDefinition
json-nullable If an element is labelled nullable, it can be present as a null value in the json ElementDefinition, ElementDefinition.type
json-primitive-choice Marks an element as a choice of types where the type is implied by the JSON type ElementDefinition, ElementDefinition.type
json-property-key The indicated child element is the json property key for the other child which is the value (on a property with max = *) ElementDefinition, ElementDefinition.type
json-suppress-resourcetype If true, then the JSON format produced from this logical doesn't include a 'resourceType' property ElementDefinition
XML Format Control Extensions that control how Logical Models are represented in XML (e.g. for CDA)
xml-choice-group when element is a choice group that doesn't literally appear in the XML: it groups a set of repeating of elements ElementDefinition
xml-name XML element name for when the XML name is not a valid element name (or for a type) ElementDefinition, StructureDefinition
xml-namespace Use this extension to indicate tha the element has an XML namespace different to http://hl7.org/fhir ElementDefinition, StructureDefinition
xml-no-order Whether elements can come in any order in XML StructureDefinition
General Format Control Controls how content is represented in both JSON and XML
implied-string-prefix A prefix value that is automatically prefixed to the value before it's validated (for e.g. prefixing UUIDs) ElementDefinition
elementdefinition-date-format The date format, as a Java date/time format (e.g. for YYYYMMDDHHNNSS.ZZZ per v2/CDA) ElementDefinition
elementdefinition-date-rules A set of colon delimited codes that control specific validation rules for date(/time) elements ElementDefinition
elementdefinition-binding-style How the data type is bound to vocabulary - styles such as FHIR, CDA, OpenEHR StructureDefinition
extension-style How the type can be extended. (FHIR types inherit from Element and have extension-style = fhir-extensions) StructureDefinition
IG Publisher Control Control how content is managed by the IG Publisher
ig-actor-example-url An example URL used to refer to examples associated with this actor, for describing federated systems ActorDefinition
ig-example-actor Used to associate an example in an IG with a particular actor that provides/serves this example ImplementationGuide.definition.resource
ig-internal-dependency A package that is required to validate the resources in the IG itself but that is not required by the implementers (tooling IG) ImplementationGuide.definition
ig-link-dependency A package (id#ver) that has pages that this IG references, without depending on (for link checking) ImplementationGuide.definition
ig-load-as-resource Treat this content model as a resource when it builds an IG (instead of a binary) StructureDefinition
ig-page-name IG Page Name (for R4 or earlier - added in R5) ImplementationGuide.definition.page
ig-parameter An IG parameter defined by the HL7 IG Publisher. This is used in R4 IGs ImplementationGuide.definition
ig-use-as-resource-id use this element as the resource id when it builds an IG (if there's no .id element) ElementDefinition
igpublisher-bundle load a bundle when loading the source, but to treat all the resources found in the bundle as independent resources ImplementationGuide.definition
implementationguide-dependency-comment provides a comment explaining the why an IG depends on another IG ImplementationGuide.dependsOn
implementationguide-resource-format This extension specifies the format (= mime type) of a binary resource when provided as raw content ImplementationGuide.definition.resource
implementationguide-resource-fragment Defines fragments (/with ellipsed content) to generate from a specified resource for a embedding in Narrative ImplementationGuide.definition.resource
implementationguide-resource-logical A logical model to use to validate the binary contents ImplementationGuide.definition.resource
implementationguide-resource-uri A URI defined in the IG that is (or may be) the target of an element with type URI (for link checking) ImplementationGuide
resource-sort Manage sort order for a resource in the list of artifacts within the IG ImplementationGuide.definition.resource
package-scope Specifies the Npm Package scope for scoped packages (see FHIR Package) ImplementationGuide, ImplementationGuide.dependsOn
Matchetypes Templates that specify allowable resource content for test cases
matchetype Marks that this resource is a matchetype and how to interpret (complete/partial) Resource, ImplementationGuide.definition.resource
matchetype-count Evaluate as a count only Element
matchetype-optional Mark element/properties as optional Element
matchetype-sort define sort order (sort is prior to comparison) Element
Trial Stuff being evaluated here before moving to other IGs or the Extension Pack
additional-binding Extension definition for Additional Binding - due to be removed ElementDefinition.binding, CodeSystem.property
profile-mapping for Mapping between API and Profile CapabilityStatement.rest.resource
Logical Model More Logical Model stuff
logical-container Indicate that a type that can be the container of this definition (helps with FHIRPath expression validation) StructureDefinition
logical-target That this type can be the target of a reference (e.g. can exist with an id) StructureDefinition
type-parameter A type parameter for the type it is on (for use with logical models) StructureDefinition, ElementDefinition.type
type-specifier When the type of content at one location depends on the value of some other element, and the type is otherwise not explicit in the instance ElementDefinition
Miscellaineous Other extensions
id-expectation Specifies whether a particular element or resource is expected to have an id or not ElementDefinition, ElementDefinition.type
binding-definition A definition for a binding (this is legacy: there's really no difference between definition and description) ElementDefinition.binding
no-binding used on elements of type code to indicate that it's deliberate and appropriate that they not have a binding ElementDefinition, ElementDefinition.type
searchparameter-base-type Indicates the base type for a search parameter when the actual base type is not a valid resource (R4 and earlier) SearchParameter.base
select-by-map in addition to the concepts directly selected (either included or excluded) in the include/exclude statement, any source codes that are mapped to target codes that are selected by the nominated ConceptMapare also selected ValueSet.compose.include, ValueSet.compose.exclude
valueset-expansion-parameter A default parameter to use when expanding a value set ValueSet.compose
view-hint Hints to drive Rendering Engine behavior, so profile-based renderers can provide more useful human rendering StructureDefinition, ElementDefinition, ElementDefinition.type
web-source for canonical resources to indicate where a human readable web page describing the resource can be found CanonicalResource

Tooling IG Lifecycle

This IG is not subject to formal balloting. It is maintained by the FHIR-I Working Group on behalf of the tooling providers, and updated regularly to keep in sync with the various tools. Changes are proposed and managed using the standard Jira process (see right link on the footer).

Additional Documentation