Go to the main page

DHIS2 Version 40 Overview

DHIS2 version 40 is out with many new features, improvements and bug fixes. On this page you can find information on this software version, including feature descriptions, links to technical documentation, and more

Jump to a section on this page

    Feature Demo Videos

    Discover some highlights of new features in this DHIS2 release with feature demonstrations by DHIS2 experts.

    Analytics Features

    On-the-fly custom calculations in Data Visualizer

    Now it’s even easier to explore your data within DHIS2! With this feature, you can create your own custom calculations directly in the Data Visualizer application for pivot tables. This means you no longer need to have admin access or create new indicators to play around with your own personal data expressions. Plus, the custom calculation is automatically saved to the pivot table in which it was created, without cluttering up your configuration with additional saved indicators. This feature is perfect for things like exploring coverage calculations with various population denominators or making quick and simple sums.

    Video | Jira

    Enhance single value charts with legend colors

    Now, legend colors can be applied to the background of a single value chart, making the performance of the value more obvious and visually engaging. This feature helps users quickly understand the significance of the value and its relation to the legend colors.


    Legend for stacked column charts

    Spice up your data visualizations with a new feature that allows legends to be applied to column charts! This makes it easier to see how indicators are performing at a glance.


    Indicator icons for single value charts

    Want to add some personality to your data? Now, icons can be shown in single value charts to represent the indicator being used. For example, if you’re tracking total malaria cases, you can choose a mosquito icon to visually communicate what the value represents. This feature will also be added for data elements in the near future.


    Linelists on dashboards

    Keep track of all your data in one place with line lists now available on dashboards! This feature has also been added to the latest releases of 2.39 and 2.38.

    Video | Jira

    Multiple event coordinate types in maps

    Visualize geographical data in new ways with multiple event coordinate types now available for use in maps. Choose to view location by event coordinate, enrollment coordinate, tracked entity coordinate, program stage data elements of type coordinates, or program tracked entity attributes of type coordinate. For example, easily see the household location for women who delivered last week at the health facility for outreach services.


    Display values in thematic layers

    Make your maps even more informative with the option to show values directly on the map in thematic layers. This addition complements the legend and provides a more complete picture of the data being presented.


    Improved maps download

    Get all of the key information you need when you download a map. In version 40 you can now show the map title, description, legend(s), north arrow, and overview map all in one easy to use image when you download a map.


    Tracker and Event Features

    Breaking the glass

    Programs with access level “protected” are now supported in the Capture app. For protected programs, when searching for a tracked entity instance that is found in another org unit, the user is asked to provide a reason for why they need access. This access level is useful when clinicians in one clinic should be able to access their own records, but only on exception accesses records from other clinics. This functionality was supported in the old Tracker Capture and have now been reimplemented in Capture in an improved form. Supported in DHIS version 2.38 or higher, with capture version 100.27.0 or higher.


    Saved program stage working lists for tracker programs

    Program stage filters have been partially supported in the Capture app since 2.39, allowing filtering and ordering of lists based on event data in tracker programs. In version 40 these filters can also be stored and shared as working lists. The program stage working lists can be utilized for many different purposes. Some examples are creating followup lists of specific tasks, following up defaulters or systematically reviewing data. Supported in DHIS2 version 40 or higher, with capture version 100.31.0 or higher.


    Header bar improvements

    The header bar in Capture app has been updated to match other apps in the system. While the functionality remains the same, the header now takes up less space, and popovers are used to avoid situations where the bar expands and pushes other content down from the user’s field of view. This update is supported in DHIS version 2.38 or higher with Capture version 100.26.0 or higher.

    Screenshot | jira

    Ask user to create new event when stage is complete

    Capture app now includes functionality for asking users to create a new event after completing a stage. If the flag for asking the user to create a new stage is checked, users will be prompted to create a new event immediately upon completing the stage. This feature can improve data entry efficiency and reduce human errors. It was previously supported in the old Tracker Capture app and has now been re-implemented in Capture in an improved form. This feature is supported in DHIS version 2.38 or higher with Capture version 100.21.0 or higher.


    Create a new TEI when no results match

    After searching for a tracked entity instance in the Capture app and finding no results, users are now given the option to carry over the search criteria and create a new tracked entity instance. This feature was supported in the old Tracker Capture app and has now been re-implemented in Capture in an improved form. It is supported in DHIS version 2.38 or higher with Capture version 100.20.0 or higher.


    Hide due date

    The Capture app now supports hiding the scheduled date for individual program stages. This feature allows program stages that do not require scheduling or a scheduled date to have those fields hidden, resulting in a cleaner and more streamlined user interface. This feature is supported in DHIS2 version 2.38 or higher with Capture version 100.19.0 or higher.


    Attribute option combination for tracker programs

    Capture app now supports attribute action combination for tracker programs. This feature was already supported in the tracker capture app, but has now been redesigned an implemented in the Capture app. It is supported in DHIS2 version 2.38 or above, with Capture version 100.30.0 or higher.


    Usability improvements

    Several non-functional usability updates have been implemented in the Capture app to provide a better user experience and a smoother look in certain situations. While each change is small, together they provide a better user experience. These changes are all supported in DHIS2 version 2.38 and above and Capture version 100.29.0 and above includes all these changes.

    Video | Jira 1 | Jira 2 | Jira 3 | Jira 4 | Jira 5 | Jira 6

    API for downloading files uploaded as tracked entity attributes

    A new API has been created in DHIS2 to allow accessing the file resources that are uploaded as tracked entity attribute values. This feature enables users to use files as tracked entity attributes, such as uploading a birth certificate for a child.


    API support for downloading tracked entities as CSV from /tracker

    DHIS2’s /tracker endpoint now supports the functionality to download a tracked entity instance directly into a comma-separated value list. This feature is useful for exporting data to other systems that accept CSV.


    Platform Features

    Multi-select option sets for aggregate data entry

    Users can now configure MULTI_TEXT data elements, which allows users to select multiple options for an option set. This feature is currently only available for aggregate data entry.

    Video | Jira

    Aggregate Data Exchange App

    The aggregate data exchange app is now available for running the Data Exchange Service.

    Video | Jira | Docs

    Improvements to Data Integrity

    The Data Integrity API has been improved to handle the growing number of checks. To avoid exceeding the maximum URL length, the following changes have been implemented:

    • POST endpoints now accept the list of checks as a request body
    • Identifiers have been shortened
    • Slow tests have been excluded from wildcard name expansion
    • 25 new integrity checks
    • Integrity checks for Organisation Units with same name and parent
    • Integrity checks for Data Elements belonging to data sets with different periods types

    Video | Jira 1 | Jira 2 | Jira 3 | Jira 4

    New job for refreshing Materialized view SQL views

    SQL views of type “Materialized view” now has a new Job which can be scheduled to refresh the contents of the SQL view.

    Jira (Backend) | Jira (Frontend) | Docs

    Jobs can now be grouped to run in sequence

    Scheduled jobs can now be grouped to run in sequence, making it easier to define dependencies between jobs and also clarify which jobs can be run in parallel. The feature will also soon be available in the Scheduler app.

    Jira | Docs

    Maximum/Minimum (sum org unit) aggregation

    Defines two new aggregation types that allow the maximum, or minimum, value of a data element within each organisation unit, summed across organisation units.


    New predictor functions for computing probability 

    In supply chain applications, knowing the probability of a stock out is crucial. With the new predictor functions for normDistCum and normDistDen, you can compute the probability of a stock out for normally distributed stock consumption. These functions provide the equivalent of Excel NORM.DIST() and LibreOffice NORMDIST() and allow you to calculate the probability density function (PDF) and cumulative distribution function (CDF) for a given mean and standard deviation.

    Jira | Docs

    Efficiently create multiple predictors with data element groups

    Streamline your work with predictors by applying them to data element groups. This time-saving feature allows you to make multiple predictors, based on the data elements in a group, from a single definition. For instance, if you’re tracking data for multiple commodities in supply chain, simply apply the predictor to the data element group for each commodity to produce the necessary values.

    Jira | Docs

    Predictions by Disaggregation

    A single predictor can be used to independently predict every disaggregation of an output data element based on the same disaggregations of data in the predictor generator expression.

    Jira | Docs

    Platform API Features

    Embedded OpenAPI 3 Specification

    From version 40 onwards, working with the DHIS2 API just got a whole lot easier. The server can now provide a comprehensive OpenAPI document that covers all endpoints, allowing users to quickly and easily understand the capabilities of the API. Both JSON and YAML formats are supported, so you can choose the one that works best for you. And if you want to generate a document for a specific endpoint or a selection of root paths and tags, it’s as simple as making a request to the right endpoint. So whether you’re a developer, analyst, or data manager, the OpenAPI feature will help you get the most out of DHIS2.

    Video | Docs

    New dedicated ping endpoint

    A new endpoint for pinging the server has been added. The new endpoint does not require authentication, extend the user session and uses a low amount of resources.


    System info added to dataSummary endpoint

    The dataSummary endpoint now returns information about the current system, including version, revision, build time and system ID.


    DataStore now returns sharing information

    DataStore keys can be shared in the same way Metadata is shared. With this change, sharing information is now available in the DataStore API: /api/dataStore/<namespace>/<key>/metaData


    (Preview) Event Hooks

    The event hook API is a powerful tool that can help you automate your workflows and keep your systems in sync with each other by allowing users to subscribe to two types of events that occur within the DHIS2: metadata events and scheduler events.
    To use the event hook API, you will need to enable it in your DHIS2 configuration file, and then configure the source and target of your event hook, such as webhooks, JMS, and Kafka; you can receive the events and take action in real-time. For example, you could set up an event hook that listens for changes to data elements in your metadata, and then sends a webhook to another system to update their records accordingly.

    Video | Jira | Docs

    (Preview) API Routes

    We are introducing a new feature called the Route API, which enables seamless communication with external HTTP gateways or proxies. This feature allows users to extend the functionality of their apps by easily performing GET and POST requests to external services. Users can create routes, execute them, and pass query parameters and request bodies. The Route API supports authentication methods such as HTTP Basic and API Token, and also allows for custom authorities for route execution. This feature provides a simple and effective way to integrate external services into DHIS2 apps.

    Video | Jira | Docs

    (Preview) User impersonation

    Users with the appropriate authority can now impersonate other users. This is primarily used internally in DHIS2 for generating reports at the current time, but will be enhanced in the future to support more usecases. User impersonation is by default disabled in the system.


    Android Compatibility

    This version of the DHIS2 core software is fully compatible with the DHIS2 Android Capture App version 2.8.

    Release Information

    Click on the links in the table below for more information about this software release and to access an interactive demo. You can also add comments or ask questions about this release on the DHIS2 Community of Practice.

    To find more details about...Follow this link:
    Download release and sample databaseDownloads
    Documentation and JavadocsDocumentation
    Upgrade notesUpgrade notes on Github
    Full list of features and bugsRelease Note
    Source code on GithubDHIS2 source code
    Demo instanceDemos
    Docker hub imagesDocker repository
    DHIS2 communityDHIS2 Community of Practice