Skip to main content

Resolve a Single FHIR Coding

Translate a FHIR Coding (system URI + code) to an OMOP standard concept and CDM target table:

Resolve a Non-Standard Code (Maps to Traversal)

ICD-10-CM and other classification codes are automatically mapped to their standard equivalents:

Text-Only Resolution (Semantic Search Fallback)

When no structured code is available, pass the display text for semantic search:

Skip URI Resolution with vocabulary_id

If you already know the OMOP vocabulary, bypass the URI lookup:

Include Phoebe Recommendations

Get related concepts for phenotype development alongside the resolution:

Include Mapping Quality Signal

Assess whether a resolution needs manual review:

Batch Resolution

Resolve up to 100 codings in a single call. Failed items are reported inline:
Apply shared options to the entire batch:

CodeableConcept Resolution

Resolve a FHIR CodeableConcept with multiple codings. The resolver picks the best match per OHDSI vocabulary preference (SNOMED > RxNorm > LOINC > CVX > ICD-10):
Falls back to the text field via semantic search when no coding resolves:

Async Usage

All three methods are available on the async client:

Type Interoperability

All resolver methods accept any Coding-like input via duck typing. You can pass a plain dict, an omophub.types.fhir.Coding TypedDict, or any object exposing .system / .code attributes - including fhir.resources.Coding and fhirpy coding instances. fhir.resources is never a required dependency.
Mixed-shape inputs are fine inside a single batch call - dicts, TypedDicts, and fhir.resources objects can coexist:
Explicit system / code kwargs always win if you pass both coding= and explicit kwargs - handy for overriding a single field without rebuilding the object.

Connection Helpers

For users who want to point an external FHIR client library at OMOPHub’s FHIR Terminology Service directly, the SDK exposes two helpers: a URL builder and a pre-wired fhirpy client.

fhirpy (optional extra)

If you want to call FHIR operations directly - outside the SDK’s Concept Resolver envelope - install fhirpy as an optional extra:
Then use the pre-configured client:
get_async_fhirpy_client() is the async counterpart.
Use the Concept Resolver (client.fhir.resolve) when you want OMOP-enriched answers - standard concept ID, CDM target table, mapping quality. Use fhirpy against client.fhir_server_url when you need raw FHIR Parameters / Bundle responses for FHIR-native tooling.

Error Handling

The resolver raises standard SDK errors for API failures:
See the FHIR Resolver API Reference for full response schemas and field descriptions.