How FHIR Terminology Services Revolutionize Digital Healthcare
Ehr development

FHIR Terminology Services: 6 Operations Every Team Uses

FHIR Terminology Services: 6 Operations Every Team Uses

FHIR terminology services expose a specific set of operations via the terminology module. Six operations cover essentially all production use cases.

1. $expand — Expand a ValueSet into its constituent codes. Use for populating choice lists at form load time.

2. $validate-code — Verify a code is valid in a ValueSet. Use at write time to reject invalid codes.

3. $translate — Translate a code from one system to another via ConceptMap. Use for ICD-10 to SNOMED, RxNorm to NDC.

4. $lookup — Fetch metadata about a code (display, definition, properties, designations). Use for rendering current display strings.

5. $subsumes — Test if one code subsumes another in a hierarchy. Use for coding hierarchy queries ("is this respiratory infection?").

6. $closure — Maintain a hierarchical closure (all descendants of a concept). Use for building materialized hierarchies for query performance.

Operation invocation examples

`` POST /ValueSet/{id}/$expand GET /CodeSystem/$validate-code?url=...&code=X&system=Y POST /ConceptMap/{id}/$translate?code=X&source=... GET /CodeSystem/$lookup?system=X&code=Y ``

Vendor coverage (mid-2026)

Server $expand $validate-code $translate $lookup $subsumes $closure
Ontoserver Full Full Full Full Full Full
HAPI terminology Full Full Full Full Full Partial
Aidbox terminology Full Full Full Full Full Partial
MITRE reference Basic Basic Basic Basic Basic Basic

Common terminology operations mistakes

1. Runtime $expand at query time → slow response. 2. Missing $validate-code in write path → bad codes land. 3. Hardcoded translations instead of $translate → drift. 4. Cached $lookup too long → stale displays. 5. Missing terminology server → all operations unavailable.

Caching strategy

Operation Cache TTL
$expand (stable ValueSet) 1 hour to 1 day
$validate-code (positive result) Session
$translate (stable ConceptMap) 1 day
$lookup (stable codes) 1 week

FHIR terminology services are production infrastructure. Wire them into pipelines correctly and terminology drift becomes a non-issue.