Get DHIS2 system information including version, database details, and server configuration. Use for version checks or server capabilities. Routed via dhis2 skill for general DHIS2 requests.
Get DHIS2 system information including version, database details, and server configuration. Use for version checks or server capabilities. Routed via dhis2 skill for general DHIS2 requests.
DHIS2 System Info
Get system information, version details, and server configuration from DHIS2.
Prerequisites: Client setup from dhis2 skill (assumes dhis is initialized)
defcheck_version(dhis, min_version: str = "2.38") -> bool:
"""Check if DHIS2 version meets minimum requirement."""
info = dhis.api.get("system/info")
version = info.get("version", "0.0.0")
# Parse version (handle formats like "2.40.2" or "2.40.2-SNAPSHOT")
version_parts = version.split("-")[0].split(".")
min_parts = min_version.split(".")
for i inrange(min(len(version_parts), len(min_parts))):
v = int(version_parts[i])
m = int(min_parts[i])
if v > m:
returnTrueelif v < m:
returnFalsereturnTrue# Usageif check_version(dhis, "2.40"):
print("DHIS2 version is 2.40 or higher")
# Use newer API featureselse:
print("DHIS2 version is below 2.40")
# Use legacy API endpoints
Get System Settings
defget_system_settings(dhis, keys: list = None) -> dict:
"""Get system settings."""if keys:
params = {"key": keys}
return dhis.api.get("systemSettings", params=params)
return dhis.api.get("systemSettings")
# Get all settings
settings = get_system_settings(dhis)
# Get specific settings
settings = get_system_settings(dhis, keys=[
"keyAnalyticsMaxLimit",
"keyDatabaseServerCpus",
"keySystemNotificationsEmail"
])
Common System Settings
Key
Description
keyAnalyticsMaxLimit
Max rows in analytics queries
keyDatabaseServerCpus
Number of CPUs for analytics
keyIgnoreAnalyticsApprovalYearThreshold
Approval threshold
keyGoogleAnalyticsUA
Google Analytics ID
keyStyle
System UI style
keyFlag
Country flag
keyApplicationTitle
Application title
keyEmailHostName
SMTP host
Get Server Capabilities
defget_server_capabilities(dhis) -> dict:
"""Analyze server capabilities based on system info."""
info = dhis.api.get("system/info")
return {
"version": info.get("version"),
"is_v40_plus": check_version(dhis, "2.40"),
"is_v38_plus": check_version(dhis, "2.38"),
"has_tracker_api": check_version(dhis, "2.38"), # New tracker API"has_spatial": info.get("databaseInfo", {}).get("spatialSupport", False),
"calendar": info.get("calendar"),
"date_format": info.get("dateFormat"),
"system_id": info.get("systemId")
}
# Usage
caps = get_server_capabilities(dhis)
if caps["has_tracker_api"]:
# Use /api/tracker endpointspasselse:
# Use legacy /api/trackedEntityInstances endpointspass
defget_server_time(dhis) -> str:
"""Get current server date/time."""
info = dhis.api.get("system/info")
return info.get("serverDate")
# Useful for scheduling and time-based queries
server_time = get_server_time(dhis)