DHIS version 2.36 is released

Dear All,

DHIS2 version 2.36 is out with many new features, improvements and bug fixes. This version is fully compatible with the DHIS2 Android Capture App 2.4.


Scatter plots: The data visualizer app now features scatter plots. This enables users to chart organisational units as points against two variables for a single period with scatter plots.

  • Zoom in by clicking and dragging the cursor over an area you would like to zoom in on. This is often necessary to see more detail in areas where many organisation units are clustered together.
  • Outlier detection can be done using either a standard z-score, modified z-score, or an interquartile range via the options menu. An extreme vertical (y-axis) and horizontal (x-axis) threshold line can also be applied. Endorsed by the WHO, this is a very clear and powerful way to identify outliers that often represent data quality issues. You can identify the outliers that are most likely to throw off national statistics by using the outlier detection in combination with the extreme X and Y threshold lines.

Screenshot 1 | Screenshot 2 | Screenshot 3 | Docs

Bar and column chart legends: The data visualizer app now lets you change the color of a bar or column based upon a predefined legend. This makes it easy to highlight under and over-performance with bar and column charts.

Screenshot 1 | Screenshot 2 | Docs

Universal data item search: The data visualizer app now supports search for data items across all types, making it much easier to find the data items you want across indicators, data elements, data sets, program data elements and program indicators. All you need to do is search for the data item and all matches will be displayed irrespective of data item type. You can still narrow down your search from the type selection.

Screenshot | Docs

Population maps from Google Earth Engine: Many DHIS2 instances suffer from not having accurate population data. This feature allows you to build maps with data from Google Earth Engine including the latest World Pop population estimates. You can apply a boundary layer to visualize the population values, density by hectare and average by hectare for organisational units. You can apply a buffer around a facility to see the population that falls within the buffer. Population dataset are available for age and sex disaggregation. This is useful in areas where census data is incomplete or unreliable, e.g. for planning outreach campaigns and estimating risk of disease transmission.

Screenshot 1 | Screenshot 2 | Screenshot 3 | Docs

Full screen dashboard item presentation mode: In the dashboard app, expand any dashboard item (chart, map, or pivot table) to the size of the entire screen. This is great for presenting data in virtual or in-person meetings directly from the dashboard.

Screenshot | Docs

Mobile-friendly dashboard app: The dashboard web app is now more mobile-friendly and is more usable on mobile devices. This allows you to use the power of dashboards from your mobile device. Now you can take your dashboards with you, check them any time, and share data with anyone you need from the convenience of your phone. The app has adopted several of the principles of Progressive Web Apps (PWA). Offline support to dashboards will come a in future release.


Dashboard filter settings: Dashboard owners can now define which filters to make available for each dashboard. Often a large number of data dimensions exists and not all of them apply to the data in a specific dashboard. This makes it hard to find and select relevant data dimension. By defining exactly which data dimensions become available for a dashboard, the user experience is simplified and made more engaging. Go to Edit > Filter settings to select filters.

Screenshot | Screenshot 2 | Docs

Visualization type for dashboard items: Countries and projects work hard to design dashboards that tell a specific story, where the visualization type (maps, charts or tables) is carefully selected and optimized. In previous versions a user can change the visualization type of each dashboard item to a table, map or chart. In some cases, this may undermine the carefully crafted story the dashboard owner is trying to communicate. New system settings are now available in the Analytics section of the settings app for controlling whether to allow users to switch visualization type, open items in the visualizer app, view interpretations and view in full screen.

Screenshot | Docs


Performance improvements: A huge number of performance improvements got included in 2.36 and there are broad improvements to tracker performance, in particular around database query optimizations. The improvements are leading to lower response times, faster database queries and less memory consumption. Most of these updates have been applied to versions 2.34.4, 2.35.2 and 2.36.0. Large scale DHIS2 implementations are advised to upgrade.

Tracker functionality in Capture app: The capture app now has more support for tracker programs than before. Users will now be able to list and interact with tracked entity instances much in the same way as events, and will have access to searching and registering/enrolling tracked entity instances in the Capture app itself. Further interaction with enrollments and events in enrollments will in 2.36 still take place in the Tracker Capture app, but navigation between the apps will happen seamlessly. This will allow data entry user to access tracker and event data in the same place, and have a more integrated workflow.

Screenshot 1 | 2 | 3 | 4

New endpoint for importing tracker data: A new API for tracker data is now released side by side with the existing API. The new API is redesigned and reimplemented from the bottom up with a new architecture. The new implementation is more maintainable and yields a bigger potential for performance enhancements than it was possible to achieve in the old code base. The new API will run a full program rule execution, and allows server side field assignment and payload validation in addition to the existing functionality for sending messages. The new API is going to take the place of the existing one in later versions of DHIS2, but is released side by side at this time to allow app developers to start integration processes.

Docs | Jira

New endpoint for retrieving tracker data: A new API for retrieving tracker data is now released with the new endpoint for importing tracker data. This new API allows downloading tracker data on the same format as the new endpoint for importing data uses, making it easier to integrate with this new set of services.

Docs | Jira

New program indicator functionality: It is now possible to build program indicator expressions and filters based on the event status, using the V{event_status} variable.

Docs | Jira

Full name shown in notes In tracker capture, the full name is now shown for the user that entered a note/comment. Previously, only the username was shown. The full name is useful in cases where the username is not readable.

Screenshot | Jira

Keyboard-only data entry: In tracker capture, data can now be entered without the use of a mouse. It is now possible to search and select options in option sets and boolean fields using the keyboard.



Outlier detection: A new and improved outlier detection is available in the data quality app. Outlier values are now ranked and the most significant outlier are returned first, making it lot easier to find and correct the outlier values which most significantly affect your data analysis. Previously, outliers were returned without any order. Outliers are ranked by absolute distance from mean. The z-score of the value, as well as mean, std dev, min and max are available in the response. The new solution is more scalable, allowing you to search across a larger data set.

Screenshot 1 | Screenshot 2 | User docs |API docs

OpenID Connect: The OpenID Connect (OIDC) support is greatly improved. A generic solution is now available which will work with most OIDC providers. Specific providers for Azure and WSO2 are also added. Providers which have been tested and verified to work are Google, Microsoft/Azure, Okta, Keykloak and WSO2. OIDC allows for Single Sign-On across multiple systems while managing identities in a central location. OIDC is useful for Single Sign-On across multiple systems.


Translations: Dynamic metadata translations have been extended to cover many more entities and properties and allows you to translate most of the DHIS2 application in any number of languages. This is helpful for multi-language DHIS2 instances.

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

User account expiration: User accounts can now be set to expire on a particular date. This is useful for creating temporary accounts, e.g. when inviting partners through guest accounts.

Screenshot | Docs | Jira

Disable inactive users: A new system job is available for automatically disable users which have been inactive (not logged in) for a given number of months. This is useful from a security perspective to prevent inactive user accounts from being compromised.

Screenshot | Docs

Data read sharing for SQL views: Data read sharing is now required to read the output of an SQL view. This allows implementers to grant users access to read the output of SQL views without giving access to add or edit the views.


Data integrity checks performance: The performance of the data integrity checks (in the data administration app) has been improved and completes a lot faster.

Screenshot | Docs

Disable program rule execution: A new configuration property is available in dhis.conf for disabling/enabling server-side program rule execution.


Core application modernization: The majority of core applications bundled with this release have been upgraded to leverage the latest DHIS2 application platform and suite of tools. This ensures that modernized apps have identical header bar, improved translation coverage and more standardized user interface elements.



Cluster leader node: In a cluster setup, the ID of the leader node is available in the new /api/cluster/leader endpoint. This is useful to sysadmins to understand which node in the cluster is acting as the leader and is running scheduled jobs.

Docs | Jira

Data value follow-up: A new endpoint is available for marking data values for follow-up.

Docs | Jira

Server timezone: The server timezone information is added to the /api/system/info endpoint.

Docs | Jira

Delete validation results: A new endpoint is available for deleting validation results.

Docs | Jira


Release Information Link
Download release and sample database Downloads - DHIS2
Documentation https://docs.dhis2.org
Upgrade notes Upgrade notes on GitHub
Full list of features and bugs in this release Patch Release Note
Source code on Github DHIS2 · GitHub
Demo instance https://play.dhis2.org/2.36/
Docker docker pull dhis2/core:2.36.0
See dockerhub for all available images

Hello @phil ,

Thank you for your great job. Currently I am trying to upgrade my 2.34 to 2.36. Have installed java 11.011, as it was suggested before.
Could you provide requirements and settings for the 2.36 upgrade from 2.34? It seems there are some Postgres SQLSTATE[42601] error. I have uploaded Tomcat log.Tomcat_error_log_file.docx (20.5 KB)

Environment: Windows 10 pro, PostgreSQL 13, Tomcat 9.0.45, JDK 11.0.11

Thank you.

Hi @Ulanbek ,

The team are looking into a potential edge-case issue affecting your upgrade, and we will get back to you!

Kind regards,

Dear all,

In case it is of use to others, @Ulanbek’s issue was due to program rules with identical names. In such cases renaming or removing the duplicates should allow the upgrade to run successfully.

Kind regards,

For a detailed presentation on the features and improvements in this software release and Android v2.4, you can watch the recording of our webinar on the DHIS2 YouTube channel: Webinar on DHIS 2.36 & Android App 2.4 Software Releases - YouTube

1 Like

DHIS 2.36 Features Playlist

27 videos
Live demonstrations of new features and improvements in DHIS2 version 2.36.

Learn more: https://dhis2.org/overview/version-236/


A post was split to a new topic: Limited number of downloaded records from Event Reports

Hi AL-Gassim,

Nice for the sharing. It highly impressive and very important


1 Like

A post was split to a new topic: Maps app goes blank

Hi Richard @Ritongo123 ! You’re welcome!

Thanks @Gassim @phil
I have a question regarding the Event Reports. I see the improvements being made to improve data capture using the Capture or Tracker capture app. I also see the improvements with the data visualizer app.
Please, what enhancements are being made to the event reports app? Is there a plan for this app in terms of making it keep pace with the improvements to data capture?

1 Like

A post was split to a new topic: Organisation units hierarchy embed

Hi @ifeanyiokoye ,

The Event Reports is a key area that the Analytics team are working on as part of our roadmap. Related development tasks are ongoing, and we currently hope to release the first version of the Event Reports “replacement” in 2.38.

Kind regards,

Thanks @phil for the response.
We had reported that users at the sites could no longer access the tracker programs after upgrade to 2.36.0. We also tried with 2.36.1 and the same issue. We have had to go back to 2.33.8.
We have reported this issue on JIRA and yet to receive any response on here or on JIRA.
Thank you for your help with this.


Hi @ifeanyiokoye

I’m sorry about that. Regression bugs (things that worked before and are broken in a newer release) are one of the highest priority types that we aim to deal with.

Please note that our recent releases have been a bit unusual. 2.36.1 and 2.36.2 were both “hot fixes”; that it to say they were not normal maintenance releases, but rather patches dealing with very specific critical issues. What would have normally been 2.36.1 will now be 2.36.3 and that is due in the next days.

2.36.3 is a normal maintenance patch (the first since 2.36.0) and closes more than 130 issues! I will follow up the Jira issue with the team and find out the status and outlook.

Kind regards,

1 Like

Thank you @phil. This is fantastic news. We will wait for the 2.36.3 patch and see how that goes

1 Like