Let’s look at Terminology Bindings, and how they tell us when we have to use a particular code system and when we can be creative and choose our own.
On each resource definition page in the FHIR documentation, you’ll find a Terminology Bindings section. When an element is populated by a Code, Coding or CodeableConcept, you should check this section before using it.
Here are the bindings for Observation:
http://hl7.org/fhir/R4/observation.html#tx
The first column identifies the element and the second defines it. The important column is the third column that identifies the Type of binding.
There are four binding types:
– Required — you MUST use the specified codes or code system. No exceptions.
– Extensible — you MUST use the specified codes. BUT, if they don’t apply you can choose not to.
– Preferred — you SHOULD use the specified codes but with a good reason can choose not to.
– Example — you’re free to choose your own codes or code system.
The first and last are clear. It’s the vagueness of Extensible and Preferred that causes difficulty. In these cases, try and try again to use the specified codes!
More about Terminology Bindings: http://hl7.org/fhir/R4/terminologies.html#required

---