Discover which FHIR terminology content resources support READ and SEARCH interactions. The core options are CodeSystem, ValueSet, and ConceptMap, readable by identity or URL and searchable with standard parameters. Understand why ConformanceResource and CodeSystemVersion aren’t terminology reads.

Multiple Choice

Which resource types are supported by the Terminology Service's READ and SEARCH interactions?

The important idea here is that the Terminology Service's READ and SEARCH operations are designed for the core terminology content resources: CodeSystem, ValueSet, and ConceptMap. You can read a specific CodeSystem, ValueSet, or ConceptMap by its identity or URL, and you can search for these resources using standard parameters (like URL, status, date, etc.) to locate the terminology data you need. ConformanceResource (a descriptor of server capabilities) isn’t a terminology content resource, and CodeSystemVersion isn’t a separate resource in modern FHIR (version is a property of CodeSystem). StructureDefinition is about defining data structures or profiles, not terminology content. So the resources that MAKE SENSE for terminology read/search are CodeSystem, ValueSet, and ConceptMap.

Understanding the Terminology Service in FHIR: What you can read and search

If you’ve ever peeked under the hood of a health information system, you’ve probably run into Terminology inFHIR land. It isn’t the flashiest corner of HL7’s standard, but it’s where words like “CodeSystem,” “ValueSet,” and “ConceptMap” live and breathe. These resources are the backbone of how systems agree on meanings, codes, and the relationships between terms. When you’re building or integrating healthcare applications, knowing what you can read or search through a Terminology Service helps you fetch just what you need, without wading through a swamp of irrelevant data.

Let’s set the stage with a simple picture: you’ve got a server that stores core terminology content. Think of it as a well-organized library, with three main shelves that matter most for terminology work. You want to read a single item, or you want to search for items that match certain criteria. In FHIR, the two most common interactions for retrieving this kind of content are READ and SEARCH. They’re the bread and butter for getting precise terminology data when you know either the identity (the URL or canonical id) or the search parameters (like status, date, or publisher).

The core trio: CodeSystem, ValueSet, ConceptMap

In practice, the resources that are meant to be read or searched through the Terminology Service are the core terminology content resources: CodeSystem, ValueSet, and ConceptMap. When you query a server using READ, you can pull up a particular CodeSystem, a ValueSet, or a ConceptMap by its identity or URL. Similarly, with a SEARCH, you can locate these same resources by standard parameters. This approach keeps terminology retrieval focused on the actual content you’ll use in clinical decision support, data mapping, or data validation.

Why these three, and not others? It helps to tease apart what each of these resources represents and what you’d expect to find when you query them.

  • CodeSystem: This is the repository of codes, code systems, and their structure. It’s the library of terms that a system recognizes for a particular domain—things like SNOMED CT, LOINC, or local coding schemes. Reading a CodeSystem lets you see the codes, their definitions, versioning, and the hierarchy (where it exists). If you need to map a lab result to a standard code, you’ll likely start by looking at the CodeSystem to confirm the exact code, its display, and its properties.

  • ValueSet: This is more like a curated collection of codes drawn from one or more CodeSystems. A ValueSet defines the allowed set of codes that are permissible for a specific use case—such as “diagnoses that can be billed under ICD-10-CM,” or “adult height measurements.” When you read a ValueSet, you’re pulling together the actual codes that are allowed in a given context, along with any expansions or composition rules.

  • ConceptMap: This is the translation mechanism between codes and code systems. If you need to map codes from one system to another (for example, mapping a local code to SNOMED CT or to ICD-10-CM), a ConceptMap expresses those relationships. Reading a ConceptMap reveals the mappings, the targets and sources, and the rules that govern how one code can be related to another.

A practical mental model: reading vs. searching

Reading a CodeSystem, ValueSet, or ConceptMap is like opening a catalog entry. You fetch a precise item and inspect its details: the codes inside the CodeSystem, the exact composition of a ValueSet, or the mapping rules in a ConceptMap. You’re not guessing what’s there; you’re pulling it up and inspecting the content.

Searching, on the other hand, is more exploratory. You’re not looking for a single item but for items that match specific criteria. For example, you might search for all ValueSets that are currently active (status=active) and updated after a particular date, or you might look for CodeSystems that are published by a certain organization. In both cases, the Terminology Service returns a set of resources that meet your filters, and you can then drill into any of them for more detail.

Common search parameters you’ll encounter include:

  • URL or identifier: find a particular resource by its canonical URL.

  • status: whether a resource is active, draft, retired, etc.

  • date: when the resource was last updated or published.

  • publisher or contact: who is responsible for the resource.

  • version: sometimes you’ll want a specific version of a CodeSystem.

These parameters aren’t arbitrary; they’re designed to align with how terminology data is used in real-world workflows. For instance, a clinician-facing app might rely on an up-to-date ValueSet for a decision support rule, while a data integration layer might frequently map between codes using ConceptMaps.

What about ConformanceResource, CodeSystemVersion, or StructureDefinition?

You might wonder why the Terminology Service doesn’t use every terminology-related resource for read/search. The answer is rooted in the nature of what these resources represent.

  • ConformanceResource isn’t a terminology content resource. It’s a descriptor of server capabilities. You’d use it to understand what the server can do, which operations it supports, and how to interact with it, rather than to pull terminology data itself.

  • CodeSystemVersion isn’t a separate resource in modern FHIR. Versioning is a property of the CodeSystem resource. When you read a CodeSystem, you can see its version and related metadata. If you need historical perspectives, you’d look at the appropriate version metadata within the CodeSystem itself.

  • StructureDefinition is about defining data structures or profiles, not terminology content. It’s more about the shape of data and constraints on data representations. While important for interoperability, it sits outside the core terminology content that Terminology Service READ and SEARCH target.

This distinction is helpful when you’re designing an integration. If your goal is to retrieve the core terms that clinicians and systems actually use to code observations, you’ll stick to CodeSystem, ValueSet, and ConceptMap. If you’re trying to understand what a server can do in terms of operations or capabilities, you’ll be looking at ConformanceResource and related capability statements.

The real-world vibe: how teams actually use these reads and searches

In practice, teams leverage these interactions to power a lot of day-to-day interoperability tasks. Let me walk you through a few grounded scenarios that show the patterns without getting too technical.

  • Reading a core code definition: Suppose your application needs to display the favored display name for a lab test code. You’d read the relevant CodeSystem to confirm the exact code and its display, and perhaps cross-check with a ValueSet to ensure the code is part of the current approved set for that lab panel. The read gives you the canonical spelling, synonyms, and the code’s status.

  • Building a patient-facing checklist: You might pull a ValueSet that defines the allowable codes for a problem list or allergy section. A read fetches the ValueSet’s included codes, and a search can help you locate all ValueSets published for a given domain or jurisdiction, so you can compare what different systems accept.

  • Mapping between codes: Imagine you’re integrating data from a source that uses a local vocabulary into a system that standardizes on SNOMED CT. A ConceptMap is your bridge. You read the mappings to understand how a local code translates into SNOMED, which can then drive downstream decision support or data normalization.

  • Governance and curation: In a healthcare organization, terminology governance involves monitoring which ValueSets are active, who publishes them, and how they’re updated. You can search for ValueSets by status and date to keep an eye on evolving clinical standards, making sure your applications aren’t referencing obsolete terms.

A gentle note on practicalities

If you’re building or configuring a Terminology Service, a few practical tips can smooth things out:

  • Maintain clear versioning: since CodeSystem versioning lives inside the CodeSystem resource, make sure your tooling surfaces version information clearly. This avoids mismatches when you compare terms across systems.

  • Prefer stable URLs for ValueSets: when you reference ValueSets in profiles or rules, stable URLs help avoid “broken link” scenarios when terminology content is updated.

  • Plan for expansion: as new medical knowledge emerges, terminology data grows. Your READ and SEARCH queries should be efficient enough to handle larger result sets, and pagination becomes essential when dealing with big ValueSets or expansive ConceptMaps.

  • Test with realistic data: simulate typical queries (e.g., search by status, date, publisher) against a test Terminology Service to ensure your app handles both dense and lean result sets gracefully.

A touch of analogy to keep it human

Think of the Terminology Service like a well-organized encyclopedia shelf in a hospital library. CodeSystems are the catalog sections—every code is a brick in a known place. ValueSets are curated curated lists, like “approved codes for a particular clinical program,” assembled from those bricks. ConceptMaps are the crosswalks—maps that tell you, in plain terms, how a term from one shelf relates to a term on another shelf. READ is you pulling a single volume to read its precise entries. SEARCH is you browsing the shelf, pulling several volumes that match the criteria you care about.

Wrapping up: the essential trio

To answer the core question plainly: the resource types supported by the Terminology Service’s READ and SEARCH interactions are CodeSystem, ValueSet, and ConceptMap. That trio is the heart of terminology work in modern FHIR, designed to be practical for retrieving terminology content. ConformanceResource sits outside that focus, serving as a guide to what the server can do, while CodeSystemVersion and StructureDefinition occupy their own corners of the broader interoperability landscape.

If you’re designing or integrating systems that need solid, reliable terminology access, keeping this trio in mind helps you stay focused on the content that actually matters for clinical data, coding, and mapping. It also keeps the door open for smoother collaboration across teams—developers, clinicians, data stewards, and IT folks who all rely on the same vocabulary to speak the patient’s story accurately.

And because real-world work loves a good mental image, here’s a closing thought: when you need to align terms across sources, you don’t need a dozen different tools or a hundred ad-hoc scripts. You reach for the CodeSystem, ValueSet, and ConceptMap, read what’s essential, and search for exactly what you’re after. The rest follows—curation, governance, and the ongoing dance of interoperable health data.