Skip to main content
FHIR CodeSystem search and URI resolution

Overview

Search-type query on CodeSystem. This is the discovery call every FHIR client makes before invoking operations against a specific code system. HAPI FHIR’s RemoteTerminologyServiceValidationSupport.fetchCodeSystem() runs GET /CodeSystem?url=http://loinc.org to decide whether to route code validation through OMOPHub - if the response Bundle is non-empty, HAPI proceeds; if it’s empty, HAPI skips OMOPHub for that system. OMOPHub exposes per-vocabulary CodeSystem stubs with content: "not-present". The stubs are metadata-only; concept data is served via the $lookup, $validate-code, $expand, and $translate operations.

Contract Parameters

string
default:"r4"
string
OMOP vocabulary release; defaults to the active release.
string
Header alternative to vocab_release; the header takes precedence.
FHIR wire version (r4, r4b, r5, or r6).
string
Canonical code-system URI. Omit it to list every supported CodeSystem.

Modes

1. Search by canonical system URI

Returns a searchset Bundle with one entry - the LOINC stub.

2. Search by the unified OMOP URL

Returns a searchset Bundle with one entry - the full OMOP omnibus CodeSystem (with all property definitions and the current vocabulary release metadata).

3. List all supported CodeSystems

Returns a searchset Bundle with 21 entries - 20 per-vocabulary stubs plus the unified OMOP CodeSystem. Useful for building UI pickers and for one-shot capability discovery.

4. Search by unknown URI

Returns an empty Bundle (total: 0), not a 404. This is the FHIR search convention - “no matches found”, not “endpoint not found”.

Parameters

Response (per-vocabulary stub)

Response Fields

string
Always Bundle.
string
Always searchset.
integer
Number of matching CodeSystems.
array
Matching CodeSystem resources with fullUrl and resource fields.
string
Absolute resource URL.
object
CodeSystem resource carrying resourceType, id, url, name, title, status, experimental, publisher, description, and content.
The stub carries metadata only. content: "not-present" is the standard FHIR value for terminology servers that expose concepts via operations rather than inline enumeration. Clients should follow up with lookup](/api−reference/fhir−terminology/lookup),[lookup](/api-reference/fhir-terminology/lookup), [validate-code, or $subsumes using the same canonical URI (http://loinc.org) - the operation handlers dispatch on the FHIR system URI and route to the underlying OMOP vocabulary.

Response (list-all mode)

Same Bundle shape as above, with 21 entries. Each stub has a distinct id (the short slug - loinc, snomed, rxnorm, etc.) and url (the canonical FHIR system URI). The final entry is the unified OMOP CodeSystem (https://fhir-terminology.ohdsi.org) with the release-specific id (e.g. omop-v20250827) and full property definitions.

Stub-to-URI map

See the Supported Vocabularies table in the overview for the authoritative list of id ↔ url pairs.

Errors

Unknown URIs return an empty Bundle, not an error.

See Also