Skip to main content

Overview

OMOPHub exposes its vocabulary data through a standards-compliant FHIR Terminology Service at /fhir/{r4,r5,r6}/. Any FHIR-compatible client (HAPI FHIR, Firely, etc.) can query OMOP concepts using standard FHIR operations. This is NOT a full FHIR server - it serves terminology resources only (CodeSystem, ConceptMap, ValueSet). For clinical resources, continue using your FHIR server and point it at OMOPHub for terminology resolution.

Endpoints

OperationPathDescription
MetadataGET /fhir/{version}/metadataCapabilityStatement or TerminologyCapabilities
List CodeSystemsGET /fhir/{version}/CodeSystemAvailable CodeSystem resources
Read CodeSystemGET /fhir/{version}/CodeSystem/{id}Single CodeSystem by ID
$lookupGET|POST /fhir/{version}/CodeSystem/$lookupConcept details by code
$validate-codeGET|POST /fhir/{version}/CodeSystem/$validate-codeCheck if a code is valid
$translateGET|POST /fhir/{version}/ConceptMap/$translateTranslate between vocabularies
$expandGET|POST /fhir/{version}/ValueSet/$expandExpand a ValueSet to list matching codes
ValueSet $validate-codeGET|POST /fhir/{version}/ValueSet/$validate-codeCheck if a code is in a ValueSet
$subsumesGET|POST /fhir/{version}/CodeSystem/$subsumesTest subsumption between concepts
$find-matchesGET|POST /fhir/{version}/CodeSystem/$find-matchesFind concepts by property criteria
$closurePOST /fhir/{version}/ConceptMap/$closureCompute subsumption closure for a concept set
BatchPOST /fhir/{version}/Execute multiple GET operations in one request

OMOPHub Extensions

These operations are OMOPHub-specific and not part of the FHIR Terminology Service specification.
OperationPathDescription
$diffGET|POST /fhir/{version}/CodeSystem/$diffCompare concepts between vocabulary versions

FHIR Versions

All four FHIR versions are supported from the same endpoint:
  • /fhir/r4/ - FHIR R4 (4.0.1) - US Cures Act, EHDS mandate
  • /fhir/r4b/ - FHIR R4B (4.3.0)
  • /fhir/r5/ - FHIR R5 (5.0.0)
  • /fhir/r6/ - FHIR R6 (6.0.0)
  • /fhir/ - Defaults to R4

Authentication

Same as the REST API: Authorization: Bearer oh_xxx header. FHIR operations share the same API key, rate limits, and metering.

Content Type

All responses use Content-Type: application/fhir+json. Errors are returned as FHIR OperationOutcome resources.

CodeSystem URL

OMOP concepts are identified by the OHDSI community canonical URL:
https://fhir-terminology.ohdsi.org
Codes resolved via OMOPHub are interchangeable with codes from any other server serving OMOP vocabularies.

Supported Vocabularies

Query the TerminologyCapabilities endpoint (GET /fhir/r4/metadata?mode=terminology) for the live list. Currently supported code systems:
FHIR System URIOMOP vocabulary_idDescription
https://fhir-terminology.ohdsi.org(unified)All OMOP concepts by concept_id
http://snomed.info/sctSNOMED CTClinical terms
http://loinc.orgLOINCLab tests, measurements
http://www.nlm.nih.gov/research/umls/rxnormRxNormDrugs (US)
http://hl7.org/fhir/sid/icd-10ICD10ICD-10 (WHO)
http://hl7.org/fhir/sid/icd-10-cmICD10CMICD-10-CM (US)
http://hl7.org/fhir/sid/icd-10-cnICD10CNICD-10 Chinese Edition
http://hl7.org/fhir/sid/icd-10-gmICD10GMICD-10 German Edition
http://hl7.org/fhir/sid/icd-10-pcsICD10PCSICD-10 Procedure Coding
http://hl7.org/fhir/sid/icd-9-cmICD9CMICD-9-CM (legacy)
http://hl7.org/fhir/sid/icd-9ICD9ProcICD-9 Procedures
http://hl7.org/fhir/sid/icd-9-cnICD9ProcCNICD-9 Chinese Edition
http://hl7.org/fhir/sid/cvxCVXVaccines
http://hl7.org/fhir/sid/ndcNDCDrug products (US)
http://unitsofmeasure.orgUCUMUnits of measure
urn:iso:std:iso:11073:10101MDCMedical Device Codes
http://www.whocc.no/atcATCDrug classification (WHO)
http://www.nlm.nih.gov/research/umls/hcpcsHCPCSProcedures (US outpatient)
http://hl7.org/fhir/sid/icd-o-3ICDO3Oncology morphology
http://fdasis.nlm.nih.govUNIISubstance identifiers
http://va.gov/terminology/medrtMED-RTMedication reference
CPT4 (http://www.ama-assn.org/go/cpt) is excluded due to AMA licensing restrictions. Queries for CPT4 codes return a 403 OperationOutcome.

Two Access Patterns

1. By concept_id:
GET /fhir/r4/CodeSystem/$lookup?system=https://fhir-terminology.ohdsi.org&code=201826
2. By vocabulary-specific code (OMOPHub-exclusive):
GET /fhir/r4/CodeSystem/$lookup?system=http://snomed.info/sct&code=44054006
Pattern 2 is what ETL developers need - they have FHIR codes from source systems, not OMOP concept IDs.

Designations (Synonyms)

$lookup responses include designation entries for concept synonyms. Each designation has a language code and a value string. These are the alternate names from the OMOP concept_synonym table.

Property Naming

Standard OMOP properties use kebab-case names for interoperability. Relationship properties use their OMOP relationship names (e.g., Maps to, Is a).

Standard OMOP properties

PropertyTypeDescription
concept-idintegerOMOP concept_id
source-concept-codeCodingOriginal source code as FHIR Coding (system URI + code)
concept-namestringOMOP concept_name
domain-idcodeOMOP domain (Condition, Drug, Measurement, etc.)
vocabulary-idcodeOMOP vocabulary_id (SNOMED, ICD10CM, LOINC, etc.)
concept-class-idcodeOMOP concept_class_id (Clinical Finding, Disorder, etc.)
standard-conceptcodeS=Standard, C=Classification, NS=Non-standard
inactivebooleanWhether concept is inactive
valid-start-datedateDate concept became valid
valid-end-datedateDate concept becomes invalid
invalid-reasoncodeD=Deleted, U=Updated (omitted if valid)

Relationship properties

PropertyTypeDescription
Maps toCodingStandard concept mapping
Mapped fromCodingInverse of Maps to
Is aCodingParent/supertype
SubsumesCodingChild/subtype
Use the property query parameter on $lookup to request specific properties (e.g. property=concept-id&property=domain-id). When omitted, all standard properties are returned.

Metering

Each FHIR operation counts as 1 API call against your plan quota (shared with REST API calls).

See Also