FHIR Tooling Extensions IG
0.2.0-snapshot - Release 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.2.0-snapshot 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

Artifacts Summary

This page provides a list of the FHIR artifacts defined as part of this implementation guide.

Structures: Logical Models

These define data models that represent the domain covered by this implementation guide in more business-friendly terms than the underlying FHIR resources.

CDS Hook Specific Context (Logical Definition)

This structure is defined to allow the FHIR Validator to validate a CDSHooks Request Context. TODO: This content will be moved to the CDS Hooks specification in the future

CDS Hook Specific Context for order-select (Logical Definition)

This structure is defined to allow the FHIR Validator to validate a CDSHooks order-select context. TODO: This content will be moved to the CDS Hooks specification in the future

CDS Hook Specific Context for order-sign (Logical Definition)

This structure is defined to allow the FHIR Validator to validate a CDSHooks Order-Sign context. TODO: This content will be moved to the CDS Hooks specification in the future

CDS Hook Specific Context for patient-view (Logical Definition)

This structure is defined to allow the FHIR Validator to validate a CDSHooks Patient-View context. TODO: This content will be moved to the CDS Hooks specification in the future

CDSHooks Request (Logical Definition)

This structure is defined to allow the FHIR Validator to validate a CDSHooks Request Body. TODO: This content will be moved to the CDS Hooks specification in the future

CDSHooks Response (Logical Definition)

This structure is defined to allow the FHIR Validator to validate a CDSHooks Response body. TODO: This content will be moved to the CDS Hooks specification in the future

CDSHooks Services Base Extensible Element

This structure is defined to allow the FHIR Validator to validate a CDSHooks Services Element with Extensions. TODO: This content will be moved to the CDS Hooks specification in the future

CDSHooks Services Request (Logical Definition)

This structure is defined to allow the FHIR Validator to validate a CDSHooks Services response body. TODO: This content will be moved to the CDS Hooks specification in the future

Structures: Extension Definitions

These define constraints on FHIR data types for systems conforming to this implementation guide.

Actor Example URL

An example URL used to refer to examples associated with this actor. This is used when an IG describes a federated system with multiple servers playing the roles of different actors. Note that this is for example references, and has no impact on the canonical URLs defined by the IG

Actor For Example

Used to associate an example in an IG with a particular actor that provides/serves this example (e.g. on a RESTful API)

Additional Binding Extension

Extension definition for Additional Binding. Additional Bindings are in the R5 Element Definition; this extension is used in prior versions (instead of the R5 cross-version extension)

Binary Resource Format

This extension specifies the format (= mime type) of a binary resource, when the binary resource is provided to the IG publisher as raw content (rather than as a FHIR binary resource with base64 content).

Binary Resource Logical

This extension specifies a logical model to use to validate the binary contents.

Binding Definition

This provides a definition for a binding. There’s really no functional difference between a definition and a description, and this extension will be removed in R6. No tools do anything with the binding definitions (they use binding.description instead).

Date Format String

The date format, as a Java date/time format (todo: extract a common subset from FHIRPath? Java? DotNet? Windows API?)

Date Validation Rules control

A set of colon delimited codes that control the execution of specific valdation rules for date(/time) elements. The code tz-for-time controls whether the rule that there must be a timezone if there’s a time is enforced - in it’s absence, the rule is not enforced. The code year-valid controls whether the year is checked for being in the range 1800 -> now + 80 year - in it’s absence, the rule is not enforced. If the extension is not present, the rules are enforced. This extension has no effect on data types and resources, only in logical models

Defined Uri

A URI defined in the IG that is (or may be) the target of an element with type URI. A typical use is for consent policies.

Extension Style Extension

How the type can be extended. Note that all FHIR types that inherit from Element have extension-style = fhir-extensions

IG Dependency Comment

This extension provides a comment explaining the why an IG depends on another IG.

IG Internal Dependency

A package (id#ver) that this IG has an internal dependency on. A internal dependency is a package that is required to validate the resources in the IG itself but that is not required by the implementers of the IG

IG Link Dependency

A package (id#ver) that has pages that this IG references, without depending on. The sole purpose of defining these IGs is to inform the publisher link checker that links to this IG are valid

IG Page Name

IG Page Name (for R4 or earlier - part of R5)

IG Parameter

An implementation guide parameter defined by the HL7 IG Publisher. This is used in R4 IGs where the binding to paramater name prevented the use of additional parameters

IG Publisher Bundle

Instructs the IG publisher to load a bundle when loading the source, but to treat all the resources found in the bundle as independent resources in the IG (e.g. not a bundle). Use this for bundles of examples

Id Expectation Extension

Specifies whether a particular element or resource is expected to have an id or not. Note that this can be done in a profile on the element, but it is sometimes useful to say this e.g. on an abstract element in a logical model

Implied String Prefix

A prefix value that is automatically prefixed to the value before it’s validated (for use in logical models)

Inherit Obligations

Inherit all the obligations from an Obligation Profile

Json Empty Behavior Extension

empty-behaviour: what should be in JSON when a repeating elements has no items? Can be absent, present, or either

Json Nullable Extension

If an element is labelled nullable, it can be present as a null value in the json. If this extension does not appear, a null value is treated as an error

Json Primitive Choice Extension

Marks an element as a choice of types where the type is implied by the JSON type. The only valid types at string, integer, decimal, and boolean

Json Property Key Extension

If true, indicates that in a JSON representation, the indicated child element is the json property key for the value. Implies that this is a property with max = * that has two children, one of which is the key and the other is the value

Json Property Name Extension

Provides the JSON property name for when the JSON name is not a valid element name, or on the root of a type to give the type itself an element name

Logical Container

This extension is used in logical models to indicate that the type that can be the container of this definition. This can be a reference to an abstract definition, or a particular concrete definition. This is the (base) class encountered when %resource and %rootResource is found in FHIRPath constraint expressions.

Logical Target

This extension is used logical models to indicate that this type can be the target of a reference. This indicates that there is a persistence identity and maintenance lifecycle for the type, though there are no requirements for how those are defined.

Namespace

Use this extension to indicate tha the element has an XML namespace different to http://hl7.org/fhir. The special value noNamespace indicates that there is no assigned XML namespace.

No Binding Extension

This extension is used on elements of type code to indicate that it’s deliberate and appropriate that they not have a binding. Typically, this is because they are contained by another type that does have a binding, but there are other reasons. This is provided to assist with QA processes that can use this to be informed where bindings are not necessary or appropriate.

Obligation Profile Flag

Profiles marked to be ‘Obligation Profiles’ cannot introduce new structural elements or slicing, but they can add additional bindings, and additional obligations on the elements that are already defined

Package Scope

Specifies the Npm Package scope for scoped packages. See how FHIR Packages are scoped for further information

Profile Mapping Extension

Extension definition for Mapping between API and Profile. CapabilityStatement.rest.resource.profile has two different profile statements:

  • profile - the overall system profile for a resource
  • supportedProfile 0..* - a particular profile that the system supports

What is missing from this picture is defining which resources conform to which profile. Sometimes, of course, it’s impossible to define this, but quite often, there’s an algorithmic relationship that a server or client could use to know that resources with a particular set of values will or should conform to a given profile.

This extension defines a relationship between a search string and a profile. Any resource that meets a given search string will be expected to conform to the particular profile. If more than one profile is nominated for a search string, resources SHALL conform to all the listed profiles. The last extension can be without a search matches and remaining resources

This extension repeats, and order is important - once a match is found, this profile is the one that applies. Todo: If this extension is useful, it will be moved to the core extensions pack

Resource Fragment

Defines fragments, possibly with ellipsed content, to generate from a specified resource for a embedding as part of resource pages.

Resource Sort Extension

Allows assertion of a sort order for a resource in the list of artifacts within the IG

Search Parameter Base Type

Indicates the base type for a search parameter when the actual base type is not a valid resource (e.g. custom resource etc)

Select By Map

This extension indicates that 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. The filter property can be used to restrict which types of relationships are included. Todo: If this is useful, it will be moved to the core extensions pack

Terminology Binding Style Extension

How the data type is bound to vocabulary

Type Specifier Extension

In some logical models, 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. In such cases, the type of the element is assigned an abstract ancestor type, and this extension specifies how to determine what type is actually used

ValueSet Expansion Parameter

A default parameter to use when expanding this value set. A client may also pass a parameter with the same parameter name; servers should either overwrite this default parameter, or add to the list of identically named parameters, depending on which parameter is named

Web Source

This extension is for canonical resources to indicate where a human readable web page describing the resource can be found, if it’s at a different location to the canonical URL itself. Todo: This might be considered for moving to the core extensions pack

XML Choice Group

If true, marks that this element is a choice group that doesn’t literally appear in the XML; it only exists to group a set of repeating of elements

Xml Element Name Extension

Provides the XML element name for when the XML name is not a valid element name, or on the root of a type to give the type itself an element name

Terminology: Value Sets

These define sets of codes used by systems conforming to this implementation guide.

Additional Binding Purpose ValueSet

Additional Binding Purpose

CDSActionType Codes ValueSet

CDSActionType Codes

CDSIndicator Codes ValueSet

CDSIndicator Codes

CDSLinkType Codes ValueSet

CDSLinkType Codes

CDSSelectionBehavior Codes ValueSet

CDSSelectionBehavior Codes

Extension Style ValueSet

How the type can be extended. Note that all FHIR types that inherit from Element have extension-style = fhir-extensions

Id Expectation Set

Specifies whether a particular element or resource is expected to have an id or not

Json Empty Behavior Codes Value Set

empty-behaviour: what should be in JSON when a repeating elements has no items? Can be absent, present, or either

SelectByMap Filter Codes (VS)

select-by-map filter Codes - from either R4 (or previous) or R5

Vocab Binding Style ValueSet

How the data type is bound to vocabulary

ig-parameters Codes ValueSet

ig-parameters Codes

Terminology: Code Systems

These define new code systems used by systems conforming to this implementation guide.

Additional Binding Purpose Codes

Additional Binding Purpose

CDSActionType Codes

Codes that describe application CDSActionTypes

CDSIndicator Codes

Codes that describe application CDSIndicators

CDSLinkType Codes

Codes that describe application CDSLinkTypes

CDSSelectionBehavior Codes

Codes that describe application CDSSelectionBehaviors

ConceptMapEquivalence

The degree of equivalence between concepts (R4).

Extension Style Codes

How the type can be extended. Note that all FHIR types that inherit from Element have extension-style = fhir-extensions

IG Parameter Codes

Ig Parameter Codes Defined by the FHIR Tooling. These parameter codes go in ImplementationGuide.definition.parameter.code

Id Expectation Codes

Specifies whether a particular element or resource is expected to have an id or not

Json Empty Behavior Codes

empty-behaviour: what should be in JSON when a repeating elements has no items. Can be absent, present, or either

Terminology Issue Type

Codes that the type of an issue in the response to a $validate-code operation. The validator will handle some types of issues differently. In the absence of an issue type, issues are passed to the user without processing, and this may be confusing to users

Vocab Binding Style Codes

How the data type is bound to vocabulary

Other

These are resources that are used within this implementation guide that do not fit into one of the other categories.

CDSHookServices Example

An example a CDS Hooks Service Request