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:

Tibble Output for Batch

Pass as_tibble = TRUE to resolve_batch() to get a flat tibble with one row per input coding - ready to pipe into dplyr / tidyr:
The tibble columns are: source_system, source_code, source_concept_id, source_concept_name, standard_concept_id, standard_concept_name, standard_vocabulary_id, domain_id, target_table, mapping_type, similarity_score, status, and status_detail. Failed rows are kept in-place with status = "failed" and the API error text in status_detail - do not silently drop them:
The batch summary (total / resolved / failed) is attached as an attribute:
The default as_tibble = FALSE still returns the list-shaped list(results, summary) - existing code keeps working unchanged.

Standalone Wrappers

The R6 interface is always available:
For pipe-friendly use, three standalone wrappers forward to the same R6 methods and take the client as their first argument:
Pick whichever form reads better for the surrounding code - both are fully supported.

FHIR Client Interop

omophub_fhir_url() returns the OMOPHub FHIR Terminology Service base URL for a given FHIR version ("r4" default, plus "r4b", "r5", "r6"). Use it with httr2 or fhircrackr when you want raw FHIR Parameters / Bundle responses instead of OMOPHub’s Concept Resolver envelope.
R5/R6 endpoints work the same way:
Use client$fhir$resolve() (or fhir_resolve()) when you want OMOP-enriched answers - standard concept, CDM target table, mapping quality. Use omophub_fhir_url() + httr2 when you need raw FHIR responses for FHIR-native tooling.

Error Handling

The resolver signals errors using standard R conditions:
See the FHIR Resolver API Reference for full response schemas and field descriptions.