FHIR maturity levels — how exposed are you?

We don’t often think about supporting and working with future versions of FHIR — not unless we’re building developer tools or FHIR servers.

It’s worth thinking about.

Regulations change. Expectations change. Today’s R4 will give way to R6 in a few years.

A resource’s maturity level is a good measure of how exposed it is to change or possible deletion in the future.

Maturity levels range from 0-5.

“The higher the maturity level, the more controls are enforced to restrict breaking changes to the resource”


Examples of level 5 resources in FHIR R4:

– Patient
– Observation
– Bundle

You can be reasonably confident there won’t be breaking changes to these resources.

Examples of level 0 resources:

– SubstanceProtein
– Linkage
– DeviceDefinition

Relying heavily on any of these resources runs the risk of exposing you down the road.

To data migration issues if your FHIR server is ‘out-of-the-box’ such as Azure or GCP. To extensive API rewrites if you’ve rolled your own.

Many level 0 resources in R4 have already been removed in R5.

Expect this to happen with R6 as well.

This doesn’t mean you shouldn’t use resources with a low maturity level. I used DeviceDefinition a few months ago.

It means you need to be aware of the possible price to pay later.

R4 Resources: https://vanyalabs.com/files/fhir-resources-maturity-R4.png
R5 Resources: https://vanyalabs.com/files/fhir-resources-maturity-R5.png



Sign up to “The Tuesday FHIR Sessions” and receive an email every Tuesday where I go deep on a single FHIR topic.