Skip to main content
FHIR ValueSet search for OMOP concept sets

Overview

Search-type query on ValueSet. FHIR clients - notably HAPI FHIR’s RemoteTerminologyServiceValidationSupport and EHRbase’s FhirTerminologyValidation - call this endpoint as a preflight check: “does this server support the ValueSet I’m about to query?”. If the returned searchset Bundle contains a matching entry, the client proceeds to expand](/api−reference/fhir−terminology/expand)or[ValueSet/expand](/api-reference/fhir-terminology/expand) or [ValueSet/validate-code. If the Bundle is empty, the client skips OMOPHub entirely for that ValueSet. OMOPHub recognizes the same implicit ValueSet URL patterns that $expand handles - no stored ValueSet definitions required.

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
Implicit ValueSet URL. Omit it to return an empty search Bundle.

Request

Parameters

Supported URL patterns

Where {system} is any of the supported FHIR system URIs, and {code} is a code within that system.

Response (supported)

Response Fields

string
Always Bundle.
string
Always searchset.
integer
Zero or one.
array
Matching implicit ValueSet stub.
string
Absolute ValueSet URL.
object
ValueSet with resourceType, id, url, status, experimental, name, and description.
The returned resource is a metadata stub. It does not include the expansion - callers must invoke $expand to enumerate members.

Response (unknown URL)

An empty Bundle (not a 404) is the FHIR convention for “no matches”.

Double percent-encoding tolerance

Spring-based clients (HAPI, EHRbase) sometimes encode the url parameter twice - once for the template or code (terminology://fhir.hl7.org/ValueSet?url=http%3A%2F%2F...) and again when building the outbound HTTP request. OMOPHub detects the second encoding layer automatically and decodes it before parsing the implicit URL. Single-encoded URLs work too.

Errors

Only malformed requests return errors - unknown URLs are handled via the empty-Bundle response.

See Also