Terminology and FHIR
Terminology is critical for interoperability between clinical systems, representing “concepts in an unambiguous manner between a sender and receiver of information” (2017).
Terminology in health informatics consists of mappings between concepts and codes that are defined within a code system.
- Concept
-
A mental representation of a real or abstract thing.
For example, a disease state (like “type 2 diabetes”) or medical procedure (like “bilateral hip replacement”) are both concepts.
- Code
-
A series of letters, numbers, or symbols assigned to a concept for identification or classification.
Codes are machine-readable, allowing systems to unambiguously identify the related concept.
For example, the ICD-11 code
EJ40
refers to the concept “Sunburn”. - Code system
-
A predefined, limited list of concepts and their corresponding codes. Code systems often include metadata like relationships between concepts and detailed human-readable descriptions.
ICD-11 is an example of a code system.
Other names for code systems include “coding systems” or “controlled vocabularies”.
The same concept may appear in multiple code systems. Implementers create mappings to relate concepts that exist in different code systems.1
1 Terminology’s importance for research
Using standard terminologies allows researchers to access, exchange, organize, and utilize health data in a consistent and reliable way.
For example, using a standard terminology for conditions in a problem list lets systems build cohorts based on the presence or absence of a specific set of conditions.
Standard terminology also lets applications combine data from multiple systems and institutions, though implementers must still ensure concept meanings are used consistently.2
FHIR supports defining code systems, mapping between them, and “binding” a FHIR data element to a specific subset of concepts from selected code systems.
3 Terminology in FHIR
There are three key FHIR resources for terminology:
- CodeSystem resource: Describes a code system, its concepts, and the codes identifying the concepts. E.g., the LOINC code system.
- ValueSet resource: Specifies a specific set of codes from code system(s). E.g., LOINC concepts identifying types of cancer staging systems.
- ConceptMap resource: Identifies relationships between sets of concepts. E.g., Mapping from SNOMED CT to ICD-10
We review these resources in detail below.
3.1 CodeSystem resource details
The CodeSystem FHIR resource defines an organized, managed collection of concepts that belong to a given terminology system. The CodeSystem resource represents properties of standard terminologies (like LOINC and ICD-10) in a computable format. These properties include:
The canonical identifier for the code system (typically a URL like
http://loinc.org
for LOINC, or an OID like2.16.840.1.113883.6.1
(which also represents LOINC)Version
The concepts defined by the code system
Publication metadata like a human-readable description, copyright information, and publication date
Properties of the code system, such as concept permanence, case-sensitivity, and if it defines a compositional grammar.
Here’s an example of a CodeSystem FHIR resource:
{
"resourceType" : "CodeSystem",
"id" : "example",
"meta" : {
"profile" : ["http://hl7.org/fhir/StructureDefinition/shareablecodesystem"]
},
"text" : {
"status" : "additional",
"div" : "..."
},
"url" : "http://hl7.org/fhir/CodeSystem/example",
"identifier" : [{
"system" : "urn:ietf:rfc:3986",
"value" : "urn:oid:2.16.840.1.113883.4.642.4.1827"
},
{
"system" : "http://acme.com/identifiers/codesystems",
"value" : "internal-cholesterol-inl"
}],
"version" : "5.0.0-cibuild",
"name" : "ACMECholCodesBlood",
"title" : "ACME Codes for Cholesterol in Serum/Plasma",
"status" : "draft",
"experimental" : true,
"date" : "2016-01-28",
"publisher" : "Acme Co",
"contact" : [{
"name" : "FHIR project team",
"telecom" : [{
"system" : "url",
"value" : "http://hl7.org/fhir"
}]
}],
"description" : "This is an example code system that includes all the ACME codes for serum/plasma cholesterol from v2.36.",
"caseSensitive" : true,
"content" : "complete",
"filter" : [{
"code" : "acme-plasma",
"description" : "An internal filter used to select codes that are only used with plasma",
"operator" : ["="],
"value" : "the value of this filter is either 'true' or 'false'"
}],
"concept" : [{
"code" : "chol-mmol",
"display" : "SChol (mmol/L)",
"definition" : "Serum Cholesterol, in mmol/L",
"designation" : [{
"use" : {
"system" : "http://acme.com/config/fhir/codesystems/internal",
"code" : "internal-label"
},
"value" : "From ACME POC Testing"
}]
},
{
"code" : "chol-mass",
"display" : "SChol (mg/L)",
"definition" : "Serum Cholesterol, in mg/L",
"designation" : [{
"use" : {
"system" : "http://acme.com/config/fhir/codesystems/internal",
"code" : "internal-label"
},
"value" : "From Paragon Labs"
}]
},
{
"code" : "chol",
"display" : "SChol",
"definition" : "Serum Cholesterol",
"designation" : [{
"use" : {
"system" : "http://acme.com/config/fhir/codesystems/internal",
"code" : "internal-label"
},
"value" : "Obdurate Labs uses this with both kinds of units..."
}]
}]
}
Research applications
Potential research applications include:
- Identifying which code system a given code comes from.
- Looking up the concept definition or other metadata associated with a given code.
- Using concept relationship metadata to reason about or filter data.
3.2 ValueSet resource details
The ValueSet FHIR resource “specifies a set of codes drawn from one or more code systems, intended for use in a particular context.” ValueSets don’t refer directly to CodeSystems; rather, they identify the relevant CodeSystem by its URI.
Here’s an example of a ValueSet FHIR resource:
{
"resourceType" : "ValueSet",
"id" : "example-cpt-all",
"text" : {
"status" : "generated",
"div" : "..."
},
"url" : "http://hl7.org/fhir/ValueSet/example-cpt-all",
"identifier" : [{
"system" : "urn:ietf:rfc:3986",
"value" : "urn:oid:2.16.840.1.113883.4.642.3.3138"
}],
"version" : "5.0.0-cibuild",
"name" : "AllCPTCodes",
"title" : "All CPT codes",
"status" : "active",
"experimental" : true,
"date" : "2015-03-12",
"publisher" : "Health Level Seven International (Vocabulary)",
"description" : "A value set that includes all CPT codes",
"useContext" : [{
"code" : {
"system" : "http://example.org/fhir/CodeSystem/use-contexts",
"code" : "species"
},
"valueCodeableConcept" : {
"coding" : [{
"system" : "http://snomed.info/sct",
"code" : "337915000",
"display" : "Homo sapiens (organism)"
}]
}
}],
"jurisdiction" : [{
"coding" : [{
"system" : "urn:iso:std:iso:3166",
"code" : "US"
}]
}],
"copyright" : "CPT Copyright © 2014 American Medical Association. All rights reserved.",
"compose" : {
"include" : [{
"system" : "http://www.ama-assn.org/go/cpt"
}]
}
}
Research applications
Potential research applications include:
- Curating a list of concepts for use in a particular context.
- Identifying a specific set of concepts from specific code systems allowed in a data element.
- Validating that FHIR-formatted data have only the expected codes.
3.3 ConceptMap
The ConceptMap FHIR resource maps a set of concepts to other concepts. The example below maps SNOMED CT to ICD-10 using an instance of the ConceptMap resource:
{
"resourceType" : "ConceptMap",
"id" : "103",
"text" : {
"status" : "extensions",
"div" : "..."
},
"url" : "http://hl7.org/fhir/ConceptMap/103",
"identifier" : [{
"system" : "urn:ietf:rfc:3986",
"value" : "urn:oid:2.16.840.1.113883.4.642.14.7"
},
{
"system" : "urn:ietf:rfc:3986",
"value" : "urn:uuid:53cd62ee-033e-414c-9f58-3ca97b5ffc3b"
}],
"version" : "5.0.0-cibuild",
"name" : "SNOMEDCTToICD10CMMappingsForFractureOfUlna",
"title" : "SNOMED CT to ICD-10-CM mappings for fracture of ulna",
"status" : "draft",
"experimental" : true,
"date" : "2012-06-13",
"publisher" : "HL7, Inc",
"contact" : [{
"name" : "FHIR project team (example)",
"telecom" : [{
"system" : "url",
"value" : "http://hl7.org/fhir"
}]
}],
"description" : "Example rule-based mappings between SNOMED CT to ICD-10-CM for fracture of ulna",
"jurisdiction" : [{
"coding" : [{
"system" : "http://unstats.un.org/unsd/methods/m49/m49.htm",
"code" : "840",
"display" : "United States of America"
}]
}],
"purpose" : "Show example rule based mappings",
"copyright" : "Creative Commons 0",
"sourceScopeCanonical" : "http://snomed.info/sct?fhir_vs",
"group" : [{
"source" : "http://snomed.info/sct",
"target" : "http://hl7.org/fhir/sid/icd-10-cm",
"element" : [{
"code" : "263204007",
"target" : [{
"code" : "S52.209A",
"relationship" : "source-is-broader-than-target",
"comment" : "The target mapping to ICD-10-CM is 'source-is-broader-than-target', since additional patient data on the encounter (initial vs. subsequent) and fracture type is required for a valid ICD-10-CM mapping."
}]
},
{
"code" : "263204007",
"target" : [{
"code" : "S52.209D",
"relationship" : "source-is-broader-than-target",
"comment" : "The target mapping to ICD-10-CM is 'source-is-broader-than-target', since additional patient data on the encounter (initial vs. subsequent), fracture type and healing (for subsequent encounter) is required for a valid ICD-10-CM mapping."
}]
}]
}]
}
Research applications
Potential research applications include:
- Creating mappings between two different code systems (e.g., mapping ICD-9 codes in historical records to ICD-10).
- Mapping a custom code system (e.g., custom diagnosis codes for a hospital) to a standardized code system for multi-hospital data aggregation.
References
Footnotes
The ConceptMap FHIR resource supports mapping concepts across code systems. See below for details.↩︎
Semantic interoperability is the term used by informaticists to describe systems that can exchange data with “unambiguous, shared meaning.”↩︎
SNOMED CT relationship types are defined by SNOMED concepts. In this case, “Component” is represented by the SNOMED CT code
246093002
.↩︎Adapted from SNOMED CT - Georgia Tech - Health Informatics in the Cloud (YouTube).↩︎