Learn R Programming

OMOPHub R SDK

R client for the OMOPHub API, providing access to OHDSI ATHENA standardized medical vocabularies.

Installation

You can install the development version of omophub from GitHub:

# install.packages("pak")
pak::pak("omopHub/omophub-R")

Authentication

Set your API key using one of these methods:

# Option 1: Environment variable (recommended)
Sys.setenv(OMOPHUB_API_KEY = "your_api_key")

# Option 2: Use the helper function
library(omophub)
set_api_key("your_api_key")

# Option 3: Store securely in system keyring
set_api_key("your_api_key", store = "keyring")

Quick Start

library(omophub)

# Create a client
client <- OMOPHubClient$new()

# Search for concepts
results <- client$search$basic("diabetes")
results$data

# Get a specific concept
concept <- client$concepts$get(201826)
concept$concept_name
# [1] "Type 2 diabetes mellitus"

# Get concept by vocabulary code
concept <- client$concepts$get_by_code("SNOMED", "44054006")

# Batch lookup multiple concepts
batch <- client$concepts$batch(c(201826, 320128, 4329847))

# Get concept ancestors (hierarchy)
ancestors <- client$hierarchy$ancestors(201826)

# Get concept mappings to another vocabulary
mappings <- client$mappings$get(201826, target_vocabularies = "ICD10CM")

Resources

The client provides access to these resources:

ResourceDescription
conceptsConcept lookup, batch operations, suggestions
searchBasic and advanced concept search
vocabulariesVocabulary listing and details
domainsDomain listing and concept filtering
hierarchyAncestor and descendant navigation
relationshipsConcept relationships
mappingsConcept mappings between vocabularies

Pagination

For large result sets, use automatic pagination:

# Fetch all results automatically
all_results <- client$search$basic_all("diabetes", page_size = 100)

# Or paginate manually
page1 <- client$search$basic("diabetes", page = 1, page_size = 20)
page2 <- client$search$basic("diabetes", page = 2, page_size = 20)

Vocabulary Versioning

Specify a vocabulary version when creating the client:

client <- OMOPHubClient$new(vocab_version = "2025.2")

Error Handling

The package uses structured error classes:

tryCatch(
  {
    result <- client$concepts$get(999999999)
  },
  omophub_api_error = function(e) {
    message("API error: ", conditionMessage(e))
  },
  omophub_auth_error = function(e) {
    message("Authentication failed")
  }
)

Examples

The package includes comprehensive examples in inst/examples/:

ExampleDescription
basic_usage.RGetting started - client setup, concept lookup, search
search_concepts.RSearch capabilities - filters, autocomplete, pagination
navigate_hierarchy.RHierarchy navigation - ancestors, descendants, relationships
map_between_vocabularies.RVocabulary mapping - ICD-10, SNOMED, batch mapping
error_handling.RError handling patterns - tryCatch, retry logic

Run an example:

# After installing the package
example_path <- system.file("examples", "basic_usage.R", package = "omophub")
source(example_path)

Documentation

License

MIT License - see LICENSE for details.

Support

Copy Link

Version

Install

install.packages('omophub')

Version

1.1.0

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Alex Chen

Last Published

December 17th, 2025

Functions in omophub (1.1.0)

ConceptsResource

Concepts Resource
OMOPHubClient

OMOPHub API Client
abort_auth_error

Abort with Authentication Error
DomainsResource

Domains Resource
abort_api_error

Abort with OMOPHub API Error
RelationshipsResource

Relationships Resource
HierarchyResource

Hierarchy Resource
MappingsResource

Mappings Resource
bool_to_str

Convert Boolean to API String
get_api_key

Get OMOPHub API Key
has_api_key

Check if API Key is Available
build_request

Build Base OMOPHub Request
extract_error_message

Extract Error Message from API Response
.onAttach

Package Attach Hook
extract_pagination

Extract Pagination Metadata
abort_rate_limit

Abort with Rate Limit Error
is_transient_error

Check if Error is Transient (Retryable)
paginate_all

Fetch All Paginated Results
.onLoad

Package Load Hook
join_params

Join List Elements for Query Parameter
validate_pagination

Validate Page Parameters
new_omophub_vocabularies

Create OMOPHub Vocabularies Result
omophub-package

omophub: R Client for the OMOPHub Medical Vocabulary API
paginate_lazy

Create Lazy Pagination Iterator
set_api_key

Set OMOPHub API Key
abort_validation

Abort with Validation Error
perform_post

Perform POST Request
new_omophub_relationships

Create OMOPHub Relationships Result
new_omophub_mappings

Create OMOPHub Mappings Result
new_omophub_hierarchy

Create OMOPHub Hierarchy Result
new_omophub_concepts

Create OMOPHub Concepts Result
perform_get

Perform GET Request
validate_concept_id

Validate Concept ID
SearchResource

Search Resource
VocabulariesResource

Vocabularies Resource