FHIR CodeSystem search and URI resolution
const options = {method: 'GET'};
fetch('https://fhir.omophub.com/fhir/{version}/CodeSystem', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request GET \
--url https://fhir.omophub.com/fhir/{version}/CodeSystemimport requests
url = "https://fhir.omophub.com/fhir/{version}/CodeSystem"
response = requests.get(url)
print(response.text){
"resourceType": "Bundle",
"type": "searchset",
"total": 1,
"entry": [
{
"fullUrl": "https://fhir.omophub.com/fhir/r4/CodeSystem/loinc",
"resource": {
"resourceType": "CodeSystem",
"id": "loinc",
"url": "http://loinc.org",
"name": "LOINC",
"title": "Logical Observation Identifiers Names and Codes",
"status": "active",
"experimental": false,
"publisher": "Regenstrief Institute",
"description": "Logical Observation Identifiers Names and Codes - served by OMOPHub. Use $lookup and $validate-code operations to query concepts; the full concept list is not served inline (content: not-present).",
"content": "not-present"
}
}
]
}
FHIR CodeSystem search and URI resolution
Discover which FHIR CodeSystems OMOPHub serves and resolve canonical system URIs to instance IDs for SNOMED, LOINC, RxNorm, and ICD-10.
FHIR CodeSystem search and URI resolution
const options = {method: 'GET'};
fetch('https://fhir.omophub.com/fhir/{version}/CodeSystem', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request GET \
--url https://fhir.omophub.com/fhir/{version}/CodeSystemimport requests
url = "https://fhir.omophub.com/fhir/{version}/CodeSystem"
response = requests.get(url)
print(response.text){
"resourceType": "Bundle",
"type": "searchset",
"total": 1,
"entry": [
{
"fullUrl": "https://fhir.omophub.com/fhir/r4/CodeSystem/loinc",
"resource": {
"resourceType": "CodeSystem",
"id": "loinc",
"url": "http://loinc.org",
"name": "LOINC",
"title": "Logical Observation Identifiers Names and Codes",
"status": "active",
"experimental": false,
"publisher": "Regenstrief Institute",
"description": "Logical Observation Identifiers Names and Codes - served by OMOPHub. Use $lookup and $validate-code operations to query concepts; the full concept list is not served inline (content: not-present).",
"content": "not-present"
}
}
]
}
Overview
Search-type query onCodeSystem. 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
Canonical code-system URI. Omit it to list every supported CodeSystem.
Modes
1. Search by canonical system URI
curl "https://fhir.omophub.com/fhir/r4/CodeSystem?url=http://loinc.org" \
-H "Authorization: Bearer YOUR_API_KEY"
searchset Bundle with one entry - the LOINC stub.
2. Search by the unified OMOP URL
curl "https://fhir.omophub.com/fhir/r4/CodeSystem?\
url=https://fhir-terminology.ohdsi.org" \
-H "Authorization: Bearer YOUR_API_KEY"
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
curl "https://fhir.omophub.com/fhir/r4/CodeSystem" \
-H "Authorization: Bearer YOUR_API_KEY"
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
curl "https://fhir.omophub.com/fhir/r4/CodeSystem?url=http://example.com/unknown" \
-H "Authorization: Bearer YOUR_API_KEY"
total: 0), not a 404. This is the FHIR search convention - “no matches found”, not “endpoint not found”.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
url | uri | No | Canonical system URI to resolve. Omit to list all supported CodeSystems. |
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.{
"resourceType": "Bundle",
"type": "searchset",
"total": 1,
"entry": [
{
"fullUrl": "https://fhir.omophub.com/fhir/r4/CodeSystem/loinc",
"resource": {
"resourceType": "CodeSystem",
"id": "loinc",
"url": "http://loinc.org",
"name": "LOINC",
"title": "Logical Observation Identifiers Names and Codes",
"status": "active",
"experimental": false,
"publisher": "Regenstrief Institute",
"description": "Logical Observation Identifiers Names and Codes - served by OMOPHub. Use $lookup and $validate-code operations to query concepts; the full concept list is not served inline (content: not-present).",
"content": "not-present"
}
}
]
}
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),[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 distinctid (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 ofid ↔ url pairs.
Errors
| HTTP | Issue Code | Cause |
|---|---|---|
| 401 | login | Missing or invalid API key |
See Also
- CodeSystem instance read -
GET /CodeSystem/{id}for follow-up reads after discovery - $lookup - fetch concept details for a code in a discovered system
- HAPI FHIR Integration - how HAPI’s validator uses this endpoint
Was this page helpful?