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
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 |
This IG defines extensions and their valuesets + code systems used internally by FHIR tools that support the implementation community. These tools include:
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 | 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 |
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).