Profiles, Binding, and Validation

FHIR profiles, terminology bindings, binding strengths, and how validation engines use terminology servers

FHIR Profiles define implementation-specific constraints on base FHIR resources, specifying exactly what data elements are required, optional, or prohibited for particular use cases. When a healthcare organization implements FHIR, they create profiles that reflect their specific workflows, data requirements, and regulatory constraints.

Terminology bindings are a key component of profiles, connecting data elements to specific ValueSets to ensure consistent coded data. A profile might specify that Observation.code must use codes from a particular laboratory test ValueSet, or that Patient.maritalStatus should prefer standard FHIR codes but allow local extensions when needed.

FHIR validation engines use these profiles to verify that incoming data meets the specified constraints. The terminology server plays a crucial role by validating that coded values conform to the bound ValueSets, ensuring data quality and interoperability across systems.

Binding Concept

To specify what codes can be assigned to specific elements, FHIR uses the concept of binding - linking element definitions to ValueSets. A binding defines which ValueSet constrains the possible values for a coded element.

Bindings can have different strengths:

  • Required - The element must have a value from the specified ValueSet

  • Extensible - The element should have a value from the specified ValueSet, but other codes are allowed if the ValueSet doesn't contain an appropriate code

  • Preferred - The element should have a value from the specified ValueSet if possible

  • Example - The ValueSet provides examples of codes that might be used

For example, the Observation.code element is bound to a ValueSet that includes LOINC codes, ensuring that laboratory observations use standardized terminology for test identification.

#TODO: add a screenshot of FHIR Specification with binding for Observation.code

See also: Validation Tutorials

Last updated

Was this helpful?