NOTE that this implementation guide is under construction.

Introduction

FHIR is based on "Resources" which are the common building blocks for all exchanges. Resources are an instance-level representation of some kind of healthcare entity.

The FHIR specification describes a set of base resources, frameworks and APIs that are used in many different contexts within healthcare. The FHIR specification is a "platform specification" - it creates a common platform, or foundation, on which a variety of different solutions are implemented. As a consequence, this specification usually requires further adaptation to particular contexts of use. For this reason FHIR includes the possibility to create profiles. A profile is a structure definition with constraints on the resource it represents, i.e. a profile is a description of an implementation of a resource in a specific context.

"Must support" property

The general approach of customizing FHIR resources in this guide has been to mark elements that are used within a resource with the FHIR must support flag rather than excluding elements by cardinality, i.e. 0..0, to facilitate interoperability.

The must-support flag indicates that the element must be supported in an implementation to comply with the profile.

Constraining elements

Elements can be profiled to be constrained in different ways. The following section describes the methods used to constrain elements from the base resources. Each profile defines the constraints relevant for its elements, which are also summarized on each page in this guide in a human readable format.

Note that another type of constraint is binding an element to a value set. See Code systems and value sets Code systems and subsets in FHIR for more information.

Cardinality

FHIR generally supports a cardinality of zero to many in a majority of the elements. This is in order to have a flexible structure to cater for different scenarios.

In the profiles, the cardinalities of the used elements (marked with "must support") is narrowed to support the use cases in which the element is used. This means that the cardinality defined in a profile in some cases is more open than the actual use case allows.

Fixed values

Another way in which an element might be constrained is if it has a fixed value. This means that the fixed value has to be used when submitting data for that element. This applies if the element has a label of "fixed value", "auto value" or "pattern" next to it. Hovering on the element will show the fixed value in question under the same label. A value is usually fixed to give relevant context to other elements, for example the system of an identifier expressing what kind of identifier the value should be to be a qualified type of identifier.

fixed-value-example

Slices

Some profiles might contain different alternatives for certain elements. It can be either mandatory or not to choose one of the alternatives. These alternatives are called slices in FHIR. Slices of an element are always distinguished by a discriminator, for example a value of a subelement, and have names that represent the alternatives. They might be used to express different constraints of the element, for example different cardinalities, invariants, value set bindings, etc, depending on this discriminator.

An example of slicing is found in the Patient profile, which defines slices for the identifier element. The slices express what rules the identifier subelements should follow in order to correctly represent a certain type of identifier, e.g. what value for identifier.system should be used for a personal identity number.

Slices are not expressed in instances of profiles. Slicing is an authoring method to express common use cases for elements and the constraints for those use cases.

slices-example

Identifiers

All resources have a logical identifier. The logical identifier is assigned by the server and is unique on that server. A logical ID SHALL never change after it has been assigned to a resource. Se more information about the ID element in the section references.

Resources can also have a business identifier. A business identifier is a well known inter system identifier like a personal identity number, organization number, HSA ID etc.

Extensions

The HL7 FHIR specification covers the most common resource types and the most common elements within those resources for the healthcare industry. Concepts that are of less common use can be added to the generic resources by adding so called FHIR extensions. See Extensions for more information.