DHIS version 2.32 is released

Hi all,

DHIS2 version 2.32 is out with many new features, apps, improvements and bug fixes.

Log in with admin / district on the demo server. Right-click on the links to open in new tab.


Dashboard filter: The dashboard app now provides filters which apply to entire dashboards. You can filter the dashboard content by most available dimensions. This is powerful as it combines the usefulness of filters with the ability of dashboards to see all of your most important metrics at a glance. You can click “Add filter” above the dashboard to open the list of filters. If the selected filter exists as a dimension in a dashboard item, the dimension will be replaced; otherwise the filter will be added to the dashboard item as a new filter. Try it out in the demo e.g. by selecting “Facility type” as filter.

Demo | Screenshot 1 | 2 | 3 | Docs

Dual-axis charts: You can now build a chart with two axes. This is useful for creating charts which combine percentage indicators, like coverage rates or data set reporting rates, and data element numbers, like total number of visits.

Demo | Screenshot 1 | 2 | Docs | Jira

Tracked entity instance relationships in maps: Now tracked entity instances and their relationships can be shown in the maps application. This is a useful feature, for example, to display relationships between an index case of malaria and the corresponding introduced cases.

Screenshot 1 | 2 | 3 | Docs | Jira

Event polygons in maps: The maps application can now show event polygons or shapes. Buffers can also be applied to the event polygons. This is very useful with defining a focus or investigation area and associating it with other tracked entity instances such as Malaria cases, for example.

Screenshot 1 | 2 | Docs | Jira

Optimized layout for pie and gauge charts: The gauge and pie chart layout now offer only series and filter available for selection. Category has been removed because it was not applicable in order to build these charts.

Demo | Screenshot | Jira

Multiple filters in maps: The maps app now allows you to specify any number of filters. This allows for a more focused analysis and makes the maps app equally flexible as the visualizer and pivot apps in this regard.

Demo | Screenshot 1 | 2 | Docs

Progressive dashboard loading: This version offers a dramatic performance improvement for users that have dashboards with many items through progressive dashboard loading. This means the items which are visible in the viewport are loaded first, and then other items are loaded progressively as the user scrolls down the dashboard page.

Demo | Jira

Rich text in text dashboard items: Good dashboards tell a story, and one of the best ways to communicate on a dashboard are through text items. We have now included rich text in the dashboard text item so users can use bold and italics to catch the readers’ attention.

Demo | Screenshot | Jira

Events sorted in descending date order: In event reports now all events are listed in descending order starting with the most recent at the top.

Demo | Screenshot | Jira

Rich text in interpretation panels: The interpretation panels across all apps now support rich text (emoticons, bold, and italics) in the interpretations drop down in the dashboard application and the interpretations right panel in the other analytics applications. This will help improve the effectiveness of the communication between users about their data. In the new analytics applications (dashboards and data visualizer) there are new rich text buttons.

Demo | Screenshot 1 | 2 | Jira

Reporting rate aggregation across multiple filter periods: Previously when viewing reporting rates across multiple filter periods, the number of expected reports would not aggregate properly. This would often produce a reporting rate that was incorrectly high. This has been corrected so that the expected reports aggregates across filter periods and the corresponding reporting rate is calculated properly.

Demo | Screenshot | Jira

Server-side analytics cache: To improve performance of analytics request while at the same time ensuring security, a server-side cache for analytics requests have been added. This is helpful as the cached results are served behind the authentication and security layer of DHIS 2. You can enable it and specify the cache expiration time in seconds by adding a analytics.cache.expiration property to dhis.conf.

Docs | Jira

Stability: 18 bugs and issues related to analytics have been fixed in this release. This includes proper totals in pivot tables, proper aggregation of financial year data over time, no restriction on the number of options when searching for options in event reports, “open chart as map” in data visualizer, better performance when suggesting users to mentions in pivot tables.

Jira 1 | Jira 2 | Jira 3 | Jira 4


FHIR adapter: The DHIS2 FHIR Adaptor was created to enable the import and export of clinical data using a rule engine that transforms patient-related clinical data from questionnaire-like structures (i.e. DHIS2 Tracker Programs and their Program Stages). It is optimized for national FHIR profiles that are based on standard coding systems like LOINC, SNOMED CT, CVX or even national coding systems.

Screenshot | Demo | Docs

User assignment for events: Program Stages can be configured to allow assignment to users, meaning that an event can be assigned to an individual. The assigned user will appear in the form in Tracker Capture.

Screenshot | Docs | Jira

Bidirectional relationships: It is now possible to designate a relationship to be bidirectional, allowing the relationship to be visible from both related entities and displayed in a widget. Descriptive names explaining the relation from both sides can be applied.

Screenshot | Demo | Docs | Jira

Event relationships from Capture app: It is now possible to add relationships between events and tracked entity instances. When adding or editing event it is possible to link to existing tracked entity instances, or create new ones to link to. This is useful when event programs is used to capture data that somehow is related to tracker data. For example when adding single events that will later be linked to a tracked entity instance.

Screenshots 1 | 2 | 3 | 4 | Demo | Docs | Jira

Program indicators for counting org units: It is now possible to create program indicators that counts organisation units. The indicators will be based on the presence of one or more enrollments or events that matches the filter criteria in that org unit. As an example, it is now possible to count the number of facilities that delivered a certain service.

Demo | Docs | Jira

Tracked entity attribute form name: You can now assign a form name to tracked entity attributes. The form name, similar to data elements, will be visualized in your data entry form in tracker capture, the new Capture App, and the Android App.

Screenshot | Docs | Jira

Z-score calculation: Using program rules, it is now possible to calculate z-score based on data provided by WHO weight-for-age indicators, using the function d2:zScoreWFA. The zScore can be automatically assigned to a field in the form or shown for reference with a program rule action that displays information to the user. The z-Score calculation is supported on all clients and for server side program rules.

Screenshot | Docs | Jira

Program rule health analysis: Integrity checks now identify program rules with faulty configurations, and summarizes any problems localized in the report. The integrity checks can be found under Apps > Data administration > Integrity checks.

Screenshot | Docs | Jira

Stability and performance: 21 tracker-related bugs and performance issues were addressed in this release. This includes significant improvements to API calls; program indicators and rules; relationship handling; and messaging.

Jira issues


New Reports app: A new reports app has been created with modern web technologies to improve the user experience. This app is in beta. A new approval app is planned for 2.33 which will replace the current approval UI found in the previous reports app. As this app is in Beta, it exists alongside the existing app. If you wish to try it out, be sure to include the new app Reports app (Beta) in the list of apps accessible for the users/roles. You can remove access to the old Report app, but you will need to keep access if you need to make use of the data approval feature.

Docs | JIRA | Screenshot

New Usage Analytics app: The usage analytics app has had a make-over to bring it inline with the modern application style of DHIS 2.

Docs | JIRA | Screenshot

Icons and colors for program indicators & indicators: You now have the ability to associate icons and colours to Indicators and program indicators. They will be used in future versions of DHIS2 to display Feedback area of the Tracked Entity Dashboard or Event data capture in both web and Android.

Screenshot 1 | 2 | Jira | Docs

Download metadata in maintenance: The maintenance app now lets you download the current selection of object lists as JSON, XML and CSV. You can decide to download the content compressed or uncompressed, and with or without metadata sharing info. Click on the “gear” icon in the top-right corner of the maintenance object list page and select “Download” to try it out.

Demo | Screenshot | Jira

Skip zeros in analytics tables: A new system setting “Skip zero data values in analytics tables” is available under the “analytics” section in the settings app. This setting will dramatically improve performance of both analytics table generation and analytics queries if the database contains a lot of zero data values.

Docs | Screenshot

Edit legend set: Several issues with the “edit legend set” screen in the maintenance app have been fixed, and legend items are now sorted ascending by start and end value, the auto-generate legend items work properly and legends can be saved successfully.

Demo | Screenshot

Skip sharing in metadata dependency export: In the “metadata dependency export” section in the import-export app there is now an option for skipping sharing information as part of the export payload.

Demo | Screenshot


API for line-listing of enrollments: A new API is added for line listing enrollments at /analytics/enrollments/query. The new endpoint makes it possible to retrieve data from several program stages for each enrollment, and produces one line per enrollment. This is useful when exporting enrollment data for use in other software, or when producing reports that span more than one program stage. When line-listing an enrollment that contains repeatable program stages, the event with the latest event date is used.

Docs | Jira

Org unit analytics API: A new endpoint for org unit analytics is now available. This endpoint provides statistics on org units classified by org unit group sets, i.e. counts of org units per org unit group within org unit group sets.

Docs | Jira

Skip audit in data value import: A new setting for the data value set import API is available for skipping the generation of audit values is now available. This is useful for very large imports and for data integration jobs where greater performance and reduced database size is a good trade-off for auditability. Enable it by specifying the skipAudit=true query parameter.

Docs | Jira


Release Information Link
Download release and sample database https://www.dhis2.org/downloads
Documentation and Javadocs https://www.dhis2.org/documentation
Upgrade notes Upgrade notes for 2.32 on GitHub
Details about each feature on JIRA (requires login) https://jira.dhis2.org/issues/?filter=11153
Overview of bugs fixed on JIRA (requires login) https://jira.dhis2.org/issues/?filter=11159
Source code on Github https://github.com/dhis2
Demo instance https://play.dhis2.org/2.32/
DHIS 2 community https://community.dhis2.org/

Merci infiniment pour cette bonne nouvelle


Thank you all for the hard work and great new features, especially those in the Tracker - The Bi-directional relationships is something that we have requested previously and it is fantastic that this is now possible!

Thanks again to the team!


Love the server side analytics cache idea. Potentially can solve many issues with large aggregate systems. :heart::heart::heart:

Also kudos for all the tracker fixes.


3 posts were split to a new topic: Failed to load metadata Error

Many thanks for the great work that’s gone into this version, really appreciated.

One quick question: is the apps button/search bar on the Dashboard app a new format that’s going to be rolled out across all apps? Just as feedback, I find this new format much less user-friendly than the existing search bar (which is still used in the Maintenance app etc):

  1. The Dashboard screen no longer shows a search bar - we have to now click on the button to make it appear (an extra step).
  2. When the icon menu appears, the new bar at the top make it looks more cluttered and (I feel) less professional than the original icon menu.
  3. We now can’t search for Maintenance sub-apps, so we have to first select Maintenance, wait for the screen to load, and then click on the app we want (an extra step).

The simple process of opening one of the Maintenance apps (something I might do over a hundred times a day when I’m testing etc) has now gone from a single step to three steps, which I’m finding quite time-consuming…

This is obviously just my own experience - perhaps other users prefer this new apps menu? It would be great to hear feedback from others.


Hello @Terence_Scott,
Please how does the bi-directional relationship function in the Tracker in DHIS2?
Thank you


Hi @ifeanyiokoye

Unfortunately, we are still working in v2.30 and therefore have not yet used the new bi-directional relationship feature. However, I am sure that the information will be available in the user manual for 2.32 (the links are available in the original post from Phil.


How can this upgrade influence our DHIS2 administrators in Uganda.
We are still using version 2.26 in Uganda and the new upgrade (2.32) has a lot of good features.

Walter Tobina
+256 783 445418, +256 701 445414


Dear @waltoby

I feel you frustration as a fellow Uganda and always advocating for new functionality in dhis2. The situation of Uganda is being challenged by the ongoing review HMIS2 tools. These same revised tools are being customized using the the latest version of dhis2 2.32 as we talk now. So be assured that you will soon be enjoying the latest features in this release.



Thanks prosper

Walter Tobina
+256 783 445418, +256 701 445414


Hi @SamuelJohnson,

Thanks for the feedback, it is appreciated. Regarding point number 1: clicking the apps icon should open the apps menu and automatically focus in the search field. You can then immediately start typing to search for an app. Therefore it is still only one click to search for an app: click apps menu icon, start typing.
Is this functionality working for you?



Hi Joe,

Many thanks for such a prompt response. :slightly_smiling_face: Yes, that does work (I hadn’t noticed a second click isn’t needed). But I normally don’t bother clicking anyway - in earlier versions I can tab (or shift-tab) straight into that box and start typing (ie I don’t need to leave the keyboard), whereas I don’t think that seems to work any more.

The other thing is that I can no longer just type the name of the app. In earlier versions, I could just quickly type ‘mai’ and hit enter - this would take me to the first app in the search (Maintenance app). Now if I do that, nothing seems to happen - I have to leave the keyboard, grab my mouse and click on the app icon.

Is it at all possible to tweak the interface to preserve these shortcuts, so a frequent user doesn’t need to leave the keyboard?


Hi Prosper. Bear in mind that the upgrade from 2.26 is not just about enjoying new features. You should always endeavour to remain within 3 releases of the current release to be sure that all known security patches are applied. Its like being on a treadmill … got to keep moving forward :slight_smile:


Hi @SamuelJohnson,

I understand how losing that feature is slowing you down. As a workaround, it is possible to use ‘tab’ to the first app in the menu (e.g. open app menu, type ‘mai’, tab once, hit enter. This will open maintenance app as long as it is the first result). I will follow up whether it is possible to have this auto-selected so you can just hit enter rather than needing to tab first.

Regarding the lack of sub-apps, Programs and Indicators etc., I believe that is a technical limitation of the new app menu we’ve implemented, but I will also follow this up as it’s certainly useful if you use those items a lot. I will also investigate tabbing to/from the app menu itself.

Thanks again for taking the time to contribute feedback.



That tabbing unfortunately doesn’t work - even once I’ve typed ‘mai’, the cursor seems to remain on the list of dashboards, so tabbing just moves me (invisibly) through that list.

But many thanks for listening to my feedback, and for your follow-up on this - really appreciated. :slight_smile:


That sounds like a bug! We certainly want to get that fixed. May I ask what operating system and browser you are using?


Hi Joe, I’m using the Play Demo site (https://play.dhis2.org/2.32.0/dhis-web-dashboard/#/) and Chrome version 74.0.3729.131 (Official Build) (64-bit).


Am Stephen and I would like to install DHIS2 on my laptop.I have followed instruction in manual but I have the error’HTTP Status 404 – Not Found’


@SamuelJohnson Thanks! This is a bug. I’ve logged this in our internal bug tracking system here: DHIS2-6944. Once this is fixed you should be able to tab from the search field to an app :slight_smile: