Skip to main content

List All Vocabularies

Get a paginated list of all available medical vocabularies:
# Basic list
result = client.vocabularies.list()
for vocab in result["data"]["vocabularies"]:
    print(f"{vocab['vocabulary_id']}: {vocab['vocabulary_name']}")

# Include statistics
result = client.vocabularies.list(include_stats=True)
for vocab in result["data"]["vocabularies"]:
    print(f"{vocab['vocabulary_id']}: {vocab.get('concept_count', 'N/A')} concepts")

# Custom sorting and pagination
result = client.vocabularies.list(
    sort_by="name",
    sort_order="asc",
    page=1,
    page_size=50
)

Parameters

ParameterTypeDefaultDescription
include_statsboolFalseInclude vocabulary statistics
include_inactiveboolFalseInclude inactive vocabularies
sort_bystr”name”Sort field (“name”, “priority”, “updated”)
sort_orderstr”asc”Sort order (“asc”, “desc”)
pageint1Page number
page_sizeint20Results per page (max 1000)

Get Vocabulary Details

Get detailed information about a specific vocabulary:
vocab = client.vocabularies.get("SNOMED")
print(f"Name: {vocab['data']['vocabulary_name']}")
print(f"Version: {vocab['data']['vocabulary_version']}")
print(f"Reference: {vocab['data']['vocabulary_reference']}")

Parameters

ParameterTypeDefaultDescription
vocabulary_idstrrequiredVocabulary identifier (e.g., “SNOMED”, “ICD10CM”)

Response Fields

Returns vocabulary_id, vocabulary_name, vocabulary_reference, vocabulary_version, vocabulary_concept_id. For detailed statistics, use client.vocabularies.stats(vocabulary_id).

Get Vocabulary Statistics

Get statistical information about a vocabulary:
stats = client.vocabularies.stats("SNOMED")
print(f"Total concepts: {stats['total_concepts']}")
print(f"Standard concepts: {stats['standard_concepts']}")

Get Domain Statistics

Get statistics for a specific domain within a vocabulary:
result = client.vocabularies.domain_stats("SNOMED", "Condition")
print(f"Total concepts: {result['data']['total_concepts']}")
print(f"Standard concepts: {result['data']['standard_concepts']}")

# View concept class breakdown
for cls in result["data"]["concept_classes"]:
    print(f"{cls['concept_class_id']}: {cls['concept_count']} concepts")

Parameters

ParameterTypeDefaultDescription
vocabulary_idstrrequiredVocabulary identifier (e.g., “SNOMED”, “ICD10CM”)
domain_idstrrequiredDomain identifier (e.g., “Condition”, “Drug”, “Procedure”)

Get Vocabulary Domains

Get all standard OHDSI domains:
result = client.vocabularies.domains()
for domain in result["data"]["domains"]:
    print(f"{domain['domain_id']}: {domain['domain_name']}")
Returns all available domains with domain_id, domain_name, and description.

Get Concept Classes

Get all available concept classes:
result = client.vocabularies.concept_classes()
for cls in result["data"]:
    print(f"{cls['concept_class_id']}: {cls['concept_class_name']}")
Returns concept classes with concept_class_id, concept_class_name, and concept_class_concept_id.

Get Vocabulary Concepts

Retrieve concepts within a specific vocabulary with filtering and pagination:
# Basic usage
result = client.vocabularies.concepts("SNOMED", page_size=100)
for concept in result["data"]["concepts"]:
    print(f"{concept['concept_name']} ({concept['concept_id']})")

# Search within vocabulary
result = client.vocabularies.concepts(
    "SNOMED",
    search="diabetes",
    standard_concept="S",
    page_size=50
)

# Include additional data
result = client.vocabularies.concepts(
    "SNOMED",
    search="hypertension",
    include_relationships=True,
    include_synonyms=True
)

# With sorting
result = client.vocabularies.concepts(
    "RxNorm",
    sort_by="concept_id",
    sort_order="desc",
    page_size=100
)

# Include invalid/deprecated concepts
result = client.vocabularies.concepts(
    "ICD10CM",
    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
vocabulary_idstrrequiredVocabulary identifier (e.g., “SNOMED”, “ICD10CM”)
searchstrNoneSearch term to filter concepts by name or code
standard_conceptstr”all”Filter by standard concept status (“S”, “C”, “all”)
include_invalidboolFalseInclude invalid or deprecated concepts
include_relationshipsboolFalseInclude concept relationships in response
include_synonymsboolFalseInclude concept synonyms in response
sort_bystr”name”Sort field (“name”, “concept_id”, “concept_code”)
sort_orderstr”asc”Sort order (“asc”, “desc”)
pageint1Page number
page_sizeint20Results per page (max 1000)