Overview
Translate a single FHIRCoding (system URI + code) into a fully resolved
OMOP concept chain: source concept, standard concept, target CDM table,
optional mapping quality signal, and optional Phoebe recommendations.
The resolver chains existing OMOPHub primitives - get_concept_by_code,
mappings, semantic_search, validate, and recommended - behind a
single composite call. If the structured code lookup fails (or only
display text is provided), the resolver falls back to semantic search.
Use this endpoint when you are building a FHIR-to-OMOP ETL pipeline and
need to determine which OMOP CDM table a FHIR resource should land in
based on its coded fields.
Resolution follows the HL7 FHIR-to-OMOP Implementation
Guide (Informative 1, v1.0.0):
the OMOP concept’s
domain_id determines the target table (resource type is
advisory), non-standard codes are standardized via Maps to, and FHIR
administrative codes (gender, encounter class, condition status, …) resolve
through the IG’s administrative
ConceptMaps.Request Body
string
FHIR code system URI, e.g.
http://snomed.info/sct, http://loinc.org, or
http://hl7.org/fhir/sid/icd-10-cm. Required unless vocabulary_id or
display is provided.string
The code value from the FHIR
Coding. Required when system or
vocabulary_id is provided.string
Optional human-readable display text from the FHIR
Coding. Used as the
semantic search fallback when structured lookup fails, or as the primary input
for text-only CodeableConcept resolution.string
Direct OMOP
vocabulary_id (e.g. SNOMED, ICD10CM). Alternative to
system for callers who already know the OMOP vocabulary and want to skip URI
resolution.string
FHIR resource type that carried this coding (e.g.
Condition, Observation,
MedicationStatement). Used to validate domain alignment and to filter the
semantic search fallback. Supported values: Condition, Observation,
MedicationStatement, MedicationRequest, MedicationAdministration,
Immunization, Procedure, AllergyIntolerance, DiagnosticReport.boolean
default:"false"
Include Phoebe-recommended related concepts in the response.
integer
default:"5"
Maximum Phoebe recommendations to return (1–20).
boolean
default:"false"
Include a
mapping_quality signal (high, medium, low, or
manual_review) on the resolution.string
default:"error"
Behavior when no concept can be located at all.
error (default) returns a
404 concept_not_found. sentinel instead returns a resolution with the OMOP
concept_id 0 sentinel so ETL pipelines always get a writable row. (A concept
that resolves but has no standard Maps to target always returns
standard_concept.concept_id = 0 regardless of this flag.)system + code), (vocabulary_id + code), or
display must be provided.
Response Fields
resolution
Mapping types
direct- The source code was found by exact lookup and is itself a standard concept.mapped- The source code was found but is non-standard; the response contains the standard target reached viaMaps to.semantic_match- The resolver fell back to semantic search (code miss or text-only input). Similarity score ≥ 0.70 is required for a match; ≥ 0.85 is flagged ashighquality, 0.70–0.84 asmedium.unmapped- The source concept was found but has no standard target viaMaps to(or nothing resolved at all andon_unmapped=sentinel). Per OMOP / the FHIR-to-OMOP IG,standard_concept.concept_idis the0sentinel (“No matching concept”) andtarget_tableisnull; the real source concept (when one was found) is preserved insource_concept. Review recommended.
Errors
See also
- Batch resolve - up to 100 codings per request
- CodeableConcept resolve - pick the best match across multiple codings
- FHIR Integration Guide - end-to-end ETL patterns