SKILL.md
DHIS2 Data Values
Prerequisites: Client setup from dhis2 skill + dhis2-query-optimization for large queries
Dataframe API
from datetime import datetime
from openhexa.toolbox.dhis2 import dataframe
extract_dataset
| Parameter |
Type |
Required |
Notes |
| dhis2 |
DHIS2 |
Yes |
|
| dataset |
str |
Yes |
Dataset UID |
| start_date |
datetime \ |
None |
No |
Use with end_date OR use periods |
| end_date |
datetime \ |
None |
No |
Use with start_date OR use periods |
| periods |
list[str] \ |
None |
No |
e.g., ["202101", "202102"] |
| org_units |
list[str] \ |
None |
No |
Use orgunits OR orgunit_groups |
| orgunitgroups |
list[str] \ |
None |
No |
Use orgunits OR orgunit_groups |
| include_children |
bool |
No |
Default: False |
| last_updated |
datetime \ |
None |
No |
Filter by last updated |
extractdataelement_groups
| Parameter |
Type |
Required |
| dhis2 |
DHIS2 |
Yes |
| dataelementgroups |
list[str] |
Yes |
| (other params same as extract_dataset) |
|
|
extractdataelements
| Parameter |
Type |
Required |
| dhis2 |
DHIS2 |
Yes |
| data_elements |
list[str] |
Yes |
| (other params same as extract_dataset) |
|
|
All extract functions return pl.DataFrame:
| Column |
Type |
| dataelementid |
str |
| period |
str |
| organisationunitid |
str |
| categoryoptioncombo_id |
str |
| attributeoptioncombo_id |
str |
| value |
str |
| created |
datetime[ms, UTC] |
| last_updated |
datetime[ms, UTC] |
importdatavalues
| Parameter |
Type |
Required |
Notes |
| dhis2 |
DHIS2 |
Yes |
|
| data |
pl.DataFrame |
Yes |
See required columns below |
| orgunitsmapping |
dict \ |
None |
No |
{olduid: newuid} |
| dataelementsmapping |
dict \ |
None |
No |
{olduid: newuid} |
| categoryoptioncombos_mapping |
dict \ |
None |
No |
{olduid: newuid} |
| attributeoptioncombos_mapping |
dict \ |
None |
No |
{olduid: newuid} |
| import_strategy |
Literal["CREATE", "UPDATE", "CREATEANDUPDATE", "DELETE"] |
No |
Default: "CREATE" |
| dry_run |
bool |
No |
Default: True |
Required input DataFrame columns (all str):
- dataelementid
- period
- organisationunitid
- categoryoptioncombo_id
- attributeoptioncombo_id
- value
Returns dict: {"imported": N, "updated": N, "ignored": N, "deleted": N}
JSON API
data = dhis.data_value_sets.get(
datasets=["uid"],
org_units=["uid"],
start_date="2024-01-01",
end_date="2024-03-31"
) # Returns list[dict]