Skip to main content

Overview

A FHIR CodeableConcept often contains multiple Coding entries for the same clinical idea - for example, both a SNOMED code and an ICD-10-CM code for the same condition. This endpoint resolves every coding in parallel and picks the best match according to OHDSI vocabulary preference:
  1. SNOMED CT - conditions, procedures, observations
  2. RxNorm - drugs
  3. LOINC - measurements
  4. CVX - vaccines
  5. ICD-10 / ICD-10-CM - classification
  6. Other vocabularies
The remaining resolutions are returned in alternatives, and any codings that failed to resolve are reported in unresolved. If no coding resolves and a top-level text is provided, the resolver falls back to semantic search on that text.

Request Body

array
Array of FHIR Coding objects, each with required system and code fields, an optional display, and an optional user_selected boolean. Maximum 20 codings per request. When a coding sets user_selected: true it wins best_match over vocabulary preference (FHIR-to-OMOP IG CodeableConcept pattern, mirroring FHIR Coding.userSelected).
string
Optional top-level CodeableConcept.text. Used as the semantic search fallback when none of the structured codings can be resolved.
string
FHIR resource type carrying the CodeableConcept. Applied to every resolution for domain alignment and semantic search filtering.
boolean
default:"false"
Include Phoebe recommendations on resolved concepts.
integer
default:"5"
Maximum Phoebe recommendations per resolved concept (1–20).
boolean
default:"false"
Include a mapping_quality signal on resolved concepts.
At least one of coding or text must be provided.

Response Fields

boolean
Whether resolution completed.
object
CodeableConcept resolution.
object
Normalized coding, text, and resource_type input.
object | null
Winning input and its resolution.
object
Normalized selected input. Coding-based matches contain the selected Coding; a text-fallback match instead contains the submitted text as display and may have no system or code.
object
Resolved vocabulary, source/standard concepts, mapping method, target table, and alignment.
array
Other successful input/resolution pairs.
object
Alternative coding input.
object
Alternative resolution.
array
Codings that could not be resolved, with errors.
object
Request metadata.
string
Request correlation ID.
string
Response timestamp.
string
Vocabulary release used.

Response Shape

Each successful best_match or alternatives entry uses the same resolution shape as single resolve. When optional quality or recommendation enrichment cannot be produced, that entry remains successful and its resolution.enrichment_status identifies the unavailable enrichment. Check partial and unavailable_enrichments instead of interpreting a missing quality field or an empty recommendation list as an operational failure.

Text fallback

When every structured coding entry fails to resolve and the request includes a non-empty text, the resolver performs a semantic search against text and returns the top match as best_match. The failed structured codings are still reported in unresolved so you can audit why they didn’t resolve.

Errors

Per-coding errors are reported inline in unresolved.

See also