Dhis2 Datasets

by BLSQ

data

Extract datasets metadata from DHIS2. Use for dataset definitions, data entry forms, or reporting frequencies. Routed via dhis2 skill for general DHIS2 requests.

Skill Details

Repository Files

1 file in this skill directory


name: dhis2-datasets description: Extract datasets metadata from DHIS2. Use for dataset definitions, data entry forms, or reporting frequencies. Routed via dhis2 skill for general DHIS2 requests.

DHIS2 Datasets

Extract dataset metadata from DHIS2 instances.

Prerequisites: Client setup from dhis2 skill (assumes dhis is initialized)

Get Datasets

# Get all datasets
datasets = dhis.meta.datasets()

# With pagination
datasets = dhis.meta.datasets(
    page=1,
    pageSize=100
)

# With filters
datasets = dhis.meta.datasets(
    filters=["name:ilike:monthly"]
)

# Custom fields
datasets = dhis.meta.datasets(
    fields="id,name,shortName,periodType,dataSetElements[dataElement[id,name]]"
)

Custom API Endpoint (Alternative)

For endpoints not covered by toolbox methods:

# Get datasets with full details
response = dhis.api.get(
    "dataSets",
    params={
        "fields": "id,name,shortName,code,periodType,"
                  "dataSetElements[dataElement[id,name]],"
                  "organisationUnits[id,name]",
        "paging": False
    }
)
datasets = response.get("dataSets", [])

Get Dataset by ID

def get_dataset(dhis, dataset_id: str) -> dict:
    """Get single dataset with full details."""
    return dhis.api.get(
        f"dataSets/{dataset_id}",
        params={
            "fields": "*,dataSetElements[*,dataElement[id,name,valueType]],"
                      "organisationUnits[id,name,level],"
                      "sections[id,name,dataElements[id,name]]"
        }
    )

Get Datasets for Org Unit

def get_datasets_for_org_unit(dhis, org_unit_id: str) -> list:
    """Get all datasets assigned to an org unit."""
    response = dhis.api.get(
        "dataSets",
        params={
            "fields": "id,name,periodType",
            "filter": f"organisationUnits.id:eq:{org_unit_id}",
            "paging": False
        }
    )
    return response.get("dataSets", [])

Get Dataset Data Elements

def get_dataset_data_elements(dhis, dataset_id: str) -> list:
    """Get all data elements in a dataset."""
    dataset = dhis.api.get(
        f"dataSets/{dataset_id}",
        params={
            "fields": "dataSetElements[dataElement[id,name,valueType,categoryCombo[id,name]]]"
        }
    )
    return [
        dse["dataElement"]
        for dse in dataset.get("dataSetElements", [])
    ]

Get Dataset Sections

def get_dataset_sections(dhis, dataset_id: str) -> list:
    """Get dataset form sections."""
    dataset = dhis.api.get(
        f"dataSets/{dataset_id}",
        params={
            "fields": "sections[id,name,sortOrder,dataElements[id,name]]"
        }
    )
    return dataset.get("sections", [])

Period Types

Period Type Description Example
Daily Daily reporting 20240115
Weekly ISO week 2024W03
Monthly Monthly 202401
Quarterly Quarter 2024Q1
SixMonthly Half-year 2024S1
Yearly Annual 2024
FinancialApril Fiscal year (Apr) 2024April
FinancialJuly Fiscal year (Jul) 2024July
FinancialOct Fiscal year (Oct) 2024Oct

Common Filters

Filter Description
periodType:eq:Monthly Monthly datasets
name:ilike:malaria Name contains
organisationUnits.id:eq:xyz Assigned to org unit
dataSetElements.dataElement.id:eq:abc Contains data element

Output Fields

Common fields to request:

id,name,shortName,code,
periodType,openFuturePeriods,
expiryDays,timelyDays,
dataSetElements[dataElement[id,name]],
organisationUnits[id,name],
sections[id,name,sortOrder]

Completeness Reporting

Get Dataset Completeness

def get_dataset_completeness(dhis, dataset_id: str, period: str, org_unit_id: str) -> dict:
    """Get completeness stats for a dataset."""
    response = dhis.api.get(
        "completeDataSetRegistrations",
        params={
            "dataSet": dataset_id,
            "period": period,
            "orgUnit": org_unit_id,
            "children": True
        }
    )
    return response

Related Skills

Xlsx

Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas

data

Clickhouse Io

ClickHouse database patterns, query optimization, analytics, and data engineering best practices for high-performance analytical workloads.

datacli

Clickhouse Io

ClickHouse database patterns, query optimization, analytics, and data engineering best practices for high-performance analytical workloads.

datacli

Analyzing Financial Statements

This skill calculates key financial ratios and metrics from financial statement data for investment analysis

data

Data Storytelling

Transform data into compelling narratives using visualization, context, and persuasive structure. Use when presenting analytics to stakeholders, creating data reports, or building executive presentations.

data

Kpi Dashboard Design

Design effective KPI dashboards with metrics selection, visualization best practices, and real-time monitoring patterns. Use when building business dashboards, selecting metrics, or designing data visualization layouts.

designdata

Dbt Transformation Patterns

Master dbt (data build tool) for analytics engineering with model organization, testing, documentation, and incremental strategies. Use when building data transformations, creating data models, or implementing analytics engineering best practices.

testingdocumenttool

Sql Optimization Patterns

Master SQL query optimization, indexing strategies, and EXPLAIN analysis to dramatically improve database performance and eliminate slow queries. Use when debugging slow queries, designing database schemas, or optimizing application performance.

designdata

Anndata

This skill should be used when working with annotated data matrices in Python, particularly for single-cell genomics analysis, managing experimental measurements with metadata, or handling large-scale biological datasets. Use when tasks involve AnnData objects, h5ad files, single-cell RNA-seq data, or integration with scanpy/scverse tools.

arttooldata

Xlsx

Spreadsheet toolkit (.xlsx/.csv). Create/edit with formulas/formatting, analyze data, visualization, recalculate formulas, for spreadsheet processing and analysis.

tooldata

Skill Information

Category:Data
Last Updated:1/30/2026