Publish-box (todo)
FHIR Infrastructure Work Group | Maturity Level: N/A | Standards Status: Trial-Use |
The FHIR specification is primarily concerned with valid interfaces of various kinds (APIs, messaging, etc.) and the rules for the content in resource instances exchanged between applications. Implementation guides that describe specific implementation solutions and application roles are also concerned with application behavior - what information must be provided under what conditions, and setting expectations for how particular data elements are handled.
Implementation guides can make rules about the behavior of applications by using the mustSupport
and obligation
features of ElementDefinition in profiles.
Note that since the base specification is only describing the interfaces and resources, not any particular solution, the base application does not specify any applications obligations in the resource definitions.
Any element can be labelled as 'must-support' using the mustSupport
flag on an
Element Definition in an applicable profile. Labeling an
element MustSupport means that implementations that produce or consume resources SHALL
provide "support" for the element in some meaningful way.
The mustSupport
flag itself does not define exactly what "support" for an element
means. When a profile contains an element labelled as "must-support", it SHALL also make clear
exactly what kind of "support" is required, as this could involve expectations around what
a system must store, display, allow data capture of, include in decision logic, pass on to
other data consumers, etc.
Profiles can make the expectations clear by either:
obligation
elementNote that an element that has the property IsModifier is not necessarily a "key" element (e.g. one of the important elements to make use of the resource), nor is it automatically mustSupport - however both of these things are more likely to be true for IsModifier elements than for other elements.
The base FHIR specification is intended to be independent of any particular implementation context,
so no elements are flagged as mustSupport
=true as part of the base specification, and
no obligations are defined for any elements (except for an example profile).
If an element is labelled as "must-support", the element can specify the obligations associated with its use by providing one or more obligations using the Obligation Extension. For further details about how to use the obligation extension, consult the extension documentation.