Documentation Index
Fetch the complete documentation index at: https://docs.omophub.com/llms.txt
Use this file to discover all available pages before exploring further.
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
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.The code value from the FHIR
Coding. Required when system or
vocabulary_id is provided.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.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.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.Include Phoebe-recommended related concepts in the response.
Maximum Phoebe recommendations to return (1–20).
Include a
mapping_quality signal (high, medium, low, or
manual_review) on the resolution.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
| Field | Type | Description |
|---|---|---|
vocabulary_id | string | null | OMOP vocabulary the source concept came from |
source_concept | object | The concept resolved from the input code |
standard_concept | object | The standard concept (after any Maps to traversal) |
value_as_concept | object | Present only for composite concepts decomposed via Maps to value (e.g. “Allergy to penicillin” → standard “Allergy to drug” + value “Penicillin G”). HL7 FHIR-to-OMOP IG Value-as-Concept pattern. |
value_target_field | string | OMOP field the value concept populates (e.g. value_as_concept_id). Present with value_as_concept. |
mapping_type | string | direct, mapped, semantic_match, or unmapped |
relationship_id | string | Maps to for non-standard traversal, or the IG ConceptMap relationship for administrative codes |
similarity_score | number | Only for semantic_match - cosine similarity (0–1) |
target_table | string | null | OMOP CDM target table (e.g. condition_occurrence, or person for demographic domains — the specific column is given by the concept’s domain_id) |
domain_resource_alignment | string | aligned, misaligned, or not_checked |
alignment_note | string | Human-readable explanation when misaligned |
mapping_quality | string | Only when include_quality=true: high, medium, low, or manual_review |
quality_note | string | Advisory note, e.g. for semantic matches |
alternative_standard_concepts | array | Additional Maps to targets when the source maps to several standard concepts |
recommendations | array | Phoebe recommendations when include_recommendations=true |
concept_map_id | string | Set when an administrative code resolved via an IG ConceptMap (e.g. GenderClass). See Administrative ConceptMaps. |
mapping_note | string | Advisory note for ConceptMap resolution (broader/narrower relationship, cross-map ambiguity, or IG-declared unmapped code) |
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
| HTTP | error.code | Cause |
|---|---|---|
| 400 | unknown_system | Unknown FHIR code system URI. Response includes a suggestion when a close match exists. |
| 400 | missing_input | None of (system + code), (vocabulary_id + code), or display was provided. |
| 400 | invalid_resource_type | resource_type is not a supported FHIR resource type. |
| 403 | vocabulary_restricted | The code system maps to a restricted vocabulary. |
| 404 | concept_not_found | No concept was found via direct lookup and no semantic fallback candidate met the 0.70 threshold. Pass on_unmapped=sentinel to receive a concept_id 0 record instead of this error. |
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