Skip to main content

List All Domains

Get a list of all available OMOP domains:
# Basic list
result = client.domains.list()
for domain in result["data"]["domains"]:
    print(domain["domain_id"])

# Include concept counts and statistics
result = client.domains.list(include_stats=True)
for domain in result["data"]["domains"]:
    print(f"{domain['domain_id']}: {domain['concept_count']} concepts")

Get Domain Concepts

Retrieve all concepts within a specific domain:
# Basic usage
result = client.domains.concepts("Condition", page_size=100)
for concept in result["data"]["concepts"]:
    print(f"{concept['concept_name']} ({concept['concept_id']})")

# Filter by vocabulary
result = client.domains.concepts(
    "Condition",
    vocabulary_ids=["SNOMED", "ICD10CM"],
    page_size=50
)

# Standard concepts only
result = client.domains.concepts(
    "Drug",
    vocabulary_ids=["RxNorm"],
    standard_only=True,
    page_size=100
)

# Include invalid/deprecated concepts
result = client.domains.concepts(
    "Procedure",
    include_invalid=True,
    page=1,
    page_size=50
)

# Pagination
print(f"Page {result['meta']['pagination']['page']} of {result['meta']['pagination']['total_pages']}")
print(f"Total: {result['meta']['pagination']['total_items']} concepts")

Parameters

ParameterTypeDefaultDescription
domain_idstrrequiredDomain identifier (e.g., “Condition”, “Drug”)
vocabulary_idslist[str]NoneFilter to specific vocabularies
standard_onlyboolFalseReturn only standard concepts
include_invalidboolFalseInclude deprecated concepts
pageint1Page number
page_sizeint50Results per page (max 1000)