Getting Terminology Right in FHIR

The CodeableConcept is THE most important FHIR data type.

If you’re new to healthcare data or to FHIR, it can be one of the trickiest to understand. Here’s a quick refresher.

CodeableConcept is the FHIR data type used to store and share terminology. In the healthcare context terminology means words or phrases with precise meaning.

Here are examples of terminology:

  • Fracture of bone (disorder)
  • Hydrocortisone 10 MG/ML Topical Cream
  • Surgical procedure

Each one of these terms is taken from a public code system, and each one has a corresponding identifier unique to that code system.

“Fracture of bone (disorder)” comes from the SNOMED CT code system, and has a unique identifier of 125605004.

“Hydrocortisone 10 MG/ML Topical Cream” comes from the RxNorm code system and has a unique identifier of 106258.

Common code systems in use around the world include LOINC, SNOMED CT and ICD10. Each of these contain hundreds of thousands of terms.

Individual organizations and companies can define their own code systems and fill them with terms and unique identifiers of their own. But in order to share data in a meaningful way their code system should be public.

Use of public code systems makes it easy for other organizations to understand the meaning of your data.

A CodeableConcept contains one or more Codings with the following attributes:

  • A system URI that identifies the code system
  • A unique code value such as 125605004 above
  • A display value such as “Fracture of bone (disorder)”

It also contains an optional text value that represents the closest meaning of the term as understood by the user.

None of these elements and attributes are mandatory, though you should endeavour to populate as many as possible to make the meaning of your CodeableConcept as clear as possible.

When all else fails it is acceptable — but not desirable — to only store a “text” value with no coding.

A few points worth singling out.

  • While there may be more than one coding in a CodeableConcept, the “concept” or meaning of them all should be the same.
  • A common use case for multiple codings is to store the same value taken from more than one code system (SNOMED CT and LOINC, for example)
  • Another common use case is to store a value from a local code system (MyCompany), alongside a corresponding code from a system such as SNOMED CT.
  • If you’re using the Codings list in a CodeableConcept to store values that have different meanings, you’re doing it wrong.
  • Very, very wrong

As always with FHIR, there’s a bit more to it than that.

More about CodeableConcepts: http://hl7.org/fhir/R4/datatypes.html#CodeableConcept

SNOMED CT: https://www.snomed.org/
LOINC: https://loinc.org/
ICD10: https://icd.who.int/browse10/2019/en

---

Ways to Work With Me

Discover more from Darren Devitt

Subscribe now to keep reading and get access to the full archive.

Continue reading