Making assumptions about data flowing in and out of a FHIR server is dangerous

Data comes in from multiple different sources. It goes out to different consumers — sometimes many different consumers.

You can’t be certain that the data you’re receiving is exactly what you expect.

Which is why FHIR’s Is-Modifier property is so important. Here are some examples of what checking Is-Modifier elements can highlight.

– Deceased Patients
– Resolved as opposed to active Conditions
– ServiceRequests documenting procedures or scans that are NOT to be performed
– Resources that are no longer active
– An Immunization vaccine where the dosage does NOT protect the patient
– Patient records that are inactive or potentially incomplete

I’ve put together a “cheat sheet” that lists all the Is-Modifier elements in FHIR R4 alongside their resources.


Check this list against the resource types you use and ensure that your code is handling every one that is applicable.

And don’t forget the ‘status’ element that most resources contain! A status of ‘entered-in-error’ means you probably shouldn’t be doing anything with that resource.

The cheat sheet:



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