DHIS version 2.37 is released

Dear all,

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

Log in with admin / district on the demo server.


Offline dashboards: The dashboard app now allows users to mark a dashboard to be available offline. This will store the dashboard visualizations and data locally in the web browser, both on laptops, desktop and mobile devices. When selected the dashboard will be cached on the device and the user will be able to view that dashboard while offline. Filters and interpretations are not supported offline. This allows users to access and view their dashboards while not being connected to the Internet, e.g. while staying or travelling in rural ares.

Screenshot 1 | Screenshot 2 | Docs | DHIS2-10874

Cascading dashboard sharing: When sharing a dashboard with other users, the sharing can now cascade to items within the dashboard such as visualizations, maps, reports, data elements and indicators. This simplifies the process of sharing dashboards, as previously, the mentioned items had to be shared manually and independently.

Screenshot 1 | Screenshot 2 | Screenshot 3 | Docs | DHIS2-101

Org unit profile: The Maps application now features an org unit profile, which displays key information for each organizational unit on a map. You can view the profile by clicking on a point/facility in a map and selecting Show more info. This capability is intended to make DHIS 2 more suitable as a facility registry.

Screenshot | Docs | DHIS2-11176

Facility map layer: A new facility map layer is available in the Maps app, which is designed to support a facility registry system in DHIS 2. You can indicate which level in the org unit hierarchy represents facilities from Settings > Analytics > Org unit level in facility map layers. This org unit level will be automatically selected when creating a new facility map layer. This feature is useful in combination with the new org unit profile.

Screenshot 1 | Screenshot 2 | DHIS2-11700

Indicator type for single value: Single indicator value visualizations will display a %, per thousand, per ten thousand, or per hundred thousand suffix based upon the indicator factor. This applies both to the visualizer and dashboard apps.

Screenshot | Docs | DHIS2-7420

Dashboard default layout: Dashboards supports default layouts, which will automatically configure a dashboard as more items are added. Users creating or editing a dashboard can now choose from either adding new items to the bottom or top of the dashboard. Users can also choose the number of columns to use for the dashboard layout. This will auto configure the size and shape of all dashboard items according to the number of specified columns.

Screenshot 1 | Screenshot 2 | Screenshot 3 | Docs | DHIS2-3600

Org unit drill down: Bar and column chart allows users to left click on a bar or column and drill down or move up one level in the organisation unit hierarchy. This is only possible if the organisation unit dimension is not specified as a filter.

Screenshot | Docs |DHIS2-11061

Freeze row and column headers: In pivot tables, row and column headers can now be frozen. This allows users to scroll through large pivot tables while not losing the reference to the data labels, as the row and column headers will always be visible. Frozen headers can be enabled from Options > Style > Fix column headers to top of table and Fix row headers to left of table.

Screenshot 1 | Screenshot 2 | DHIS2-11057

Select all dimension options: In the data visualizer app, you can now chose to automatically select all options for a particular dimension. This is useful if you have dimensions that are regularly changing as it will automatically update as new dimensions are added. It also useful when you have dimensions with a very high number of options.

Screenshot | DHIS2-9734

Text wrapping: Pivot tables now support text wrapping which will automatically be applied to long text data values as well as long row and column headers. This makes the visualizer app more suitable for displaying narratives and long text data.

Screenshot 1 | Screenshot 2 | DHIS2-11556

Axis labels for multi-axis charts: Multi-axis charts can now have custom labels for all axis. This applies to bar, column and line charts in the Data Visualizer app.

Screenshot 1 | Screenshot 2 | DHIS2-6672

Last 10 years relative period: A relative period for the last 10 years has been added to the Data Visualizer and Map apps. This is useful to display long trends in your data.

Screenshot | DHIS2-7029

Legend info in dashboard: In dashboards you can now view legend info for a pivot table or chart for which a legend set is applied. In visualizer, the legend info can be enabled from Options > Legend > Show legend key. This is useful to understand the meaning of each legend/color.

Screenshot 1 | Screenshot 2 | Screenshot 3 | DHIS2-6296


Performance improvements: Performance fixes to unique value generation allow IDs to be generated with less performance impact than before. Sequential patterns have seen the biggest improvement, and are the recommended method for ID generation in most cases.

DHIS2-11892 | DHIS2-11305

Working lists across org units: It is now possible to have working lists in the Capture app that span all accessible org units for a user. This can for example be useful when working with malaria case investigations across multiple locations.

Screenshot | Docs | DHIS2-11467

Deduplication: A new API service is built for merging 2 given duplicate records. Duplicates merging is not yet available in the DHIS2 standard user interface, but third party apps may integrate and start using the new service.

Docs | DHIS2-11394

Program rule validation: Program rule validation has been implemented for program rule actions, and any invalid program rule action data expressions are flagged to the user while working with the rule in the maintenance app. This can for example be useful when writing expressions for data to assign to a program rule variable, to avoid syntax errors in that assignment expression.

Screenshot | Docs | DHIS2-10802

Enhancements in new tracker exporter: The new tracker endpoint /tracker now has createdBy and updatedBy fields for all object types. This property is always system generated and reflects the user that created or made the last change to the object.

Docs | DHIS2-10885

Event dates in program stage notification template: When configuring program stage notification templates, it is now possible to include the event date in the notification. This can be useful when sending a message to a person, referring to a past event that the person took part in.

Docs | DHIS2-10831

Notifications used in integration scenarios: Notifications can now be sent to an external http address, in addition to the previous options of being sent as an email or SMS. The notifications sent to an external http service can be useful in system to system integration scenarios.

Docs | DHIS2-10682

Tracker features in Capture App: Enrollment and tracker events functionality is now released for closed beta testing in the new Capture app. We plan to open for beta testing for a wider audience throughout the lifetime of 2.37, and plan to release this functionality to everyone in 2.38.



Data Approval app: A new data approval app is available, supporting multiple, parallel data approval workflows. After selecting a workflow, period and org unit, it allows the user to view data from all data sets associated with the workflow. The app features the new and modern DHIS 2 user experience, making data approval more efficient and user-friendly. The app is built using the new DHIS 2 front-end technology stack.

Screenshot 1 | Screenshot 2 | Docs

Org unit image: An image can be uploaded and associated with an organisation unit. This is useful e.g. for facility assessments and surveys, where an image should be taken of the facility and be part of the assessment.

Screenshot | User docs | API docs

Org unit profile: You can now design a profile for organisation units, which allows you to include an image and specify metadata attributes, org unit group sets/groups and data for data elements and indicators to display. The org unit profile must currently be configured through the API. User interface support is coming in the next release.

User docs | Maps docs | API docs

Icon Library: The DHIS2 Icon library has been integrated into the healthicons project and been redesigned by its team of volunteer in collaboration with our design team. More information about the project can be found at their website healthicons.org.


Modified Z-score: Outlier detection based on the modified Z-score statistical method is now available in the data quality app. The modified Z-score method is based on a value’s distance from the median, and not the mean like the regular Z-score. This algorithm is more resilient towards the impact of outliers in a dataset.

Screenshot | User docs | API docs

Personal access tokens: You can now create personal API access tokens for your account. API access tokens are useful for authentication of software API clients such as integration services and web portals. When authenticating with an access token, a client will only get access to the API and not the user interface. Tokens can be restricted to specific HTTP methods (e.g. GET, POST) and IP addresses. There are to types of tokens, one for server-side clients and one for web browser-based clients. To create a token, navigate to the profile menu > Edit profile > Personal access tokens.

Screenshot | User docs | API docs

Automatic cluster cache management: When running DHIS 2 as a Tomcat cluster (many Tomcat servers), previously, the IP address of all Tomcat nodes (servers) in the cluster had to be defined in the configuration file of every DHIS 2 instance. This made dynamic scaling of cluster nodes complex and inconvenient. Now DHIS 2 will handle the cache management automatically and the cluster cache configuration is no longer needed. This makes dynamic scaling much more practical, as new nodes can be added without other nodes being made aware.


User password email reset: You can now reset the password for a user account by having the system send an email. The person owning the user account will be able to follow the instructions send to her by email to reset the password. Email reset requires that an SMTP server is set up and that the user account has a valid email address.

Screenshot | Docs

New authorities: New authorities have been introduced. Generating min-max data element values requires the “Generate min-max values” authority. Creating data approval levels requires the “Add/Update Data Approval Level” authority. Creating data approval workflows requires the “Add/Update Data Approval Workflow” authority.


Faster data statistics: The data statistics overview in data administration app is order of magnitude faster. The statistics are now generated based on approximate counts, which offers good enough precision and usually completes in a few seconds even for the largest databases.


Faster data value import: For data value imports, when a data value is an exact match of an existing data value, update and audit operations are no longer happening. This significantly improves performance in particular for a data value sync scenario, where identical data is often imported multiple times.


App Hub improvements: The App Hub has received a fresh new design and an improved user interface for managing and navigating between applications. Organizations now supports multiple developers, and you can now log in to the App Hub with a GitHub account in addition to a Google account. Read about all improvements in the changelog.

Screenshot | Changelog | App Hub

App Management app design: The app management app has a new design which builds on the DHIS2 design principles and UI components. It now supports in-app notifications when there is a newer version of a compatible DHIS 2 web application available on the App Hub. Apps can now updated with a single click. Read about all improvements in the changelog.

Screenshot | Changelog


Split org unit: The new /organisationUnits/split endpoint allows for splitting an organisation unit into multiple organisation units. All associated metadata and tracker data will be transferred to the target organisation units. This is useful e.g. when a district splits into multiple, new districts.


Merge org units: The new /organisationUnits/merge endpoint allows for merging multiple organisation units into one. All associated metadata, data values and tracker data will be merged and transferred to the target organisation unit. This is useful e.g. when multiple districts merge into one district.


Gist API: The new Gist API is a new metadata API which is optimized for scalability and performance. It renders a flat version of objects without nested associations to allow for efficiently rendering large payloads. The Gist API response can be accessed by appending /gist to the regular metadata object API paths. Collection properties, like /userGroups/<id>/users/gist, can be browsed in the same way as object collections, like /userGroups/gist. The API supports most parameters of the regular metadata API and offers some additional features.


Patch API: A new patch API is available, allowing for partial updates of metadata. Add, remove and replace operations can be performed with a single patch request.


User max org unit level data output: A new field for defining the max org unit level for data output is introduced for users. This controls how far down in the org unit hierarchy a user can view data in analytics apps. This is useful for web portals and public access where data should be made available but only down to e.g. the district level. User interface support is coming in 2.37.1.



App Platform: The app platform has received several new features.

  • The d2-app-scripts has received a new command, publish, which can be used to publish a new version of an application to the App Hub. This is useful in both local command line environments and in continuous integration pipelines. Refer to the changelog for details.
  • The app platform now has a built-in proxy server to make it easier to work against DHIS2 instances that are on a different domain. More information is available on the DHIS2 developer blog.
  • Support for Progressive Web Applications (PWA) is now built into the app platform. Make sure to read the article to learn about what a PWA is and what it enables for DHIS2 applications.


App Runtime: To promote best practices when communicating with the API, the application runtime will now warn in development mode when a query does not use paging, or when fields are not explicitly added. Client-side caching and request deduplication is also available. Refer to the changelog for details.


DHIS2 UI: The UI library has introduced several enhancements useful for building high quality DHIS2 Applications. These include the new DataTable react components, accessibility enhancements, and bug fixes. Refer to the changelog for details.


Jar packaging: The DHIS 2 backend API can now be packaged as a JAR file. The JAR build contains only the web API and no web modules. The build provides an embedded Jetty web server, and is self-contained and executable, meaning it can be started directly from the command line without an external Tomcat instance. This is a step in the direction of making DHIS 2 easier to deploy and more friendly to containerized environments. To build as JAR file you can use the run_api.sh script.


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 Release Note
Source code on Github DHIS2 · GitHub
Demo instance DHIS 2 Demo - Sierra Leone
Docker image docker pull dhis2/core:2.37.0
Docker Hub images Docker
Community forum https://community.dhis2.org/

2 posts were split to a new topic: Will Capture app have the Reports feature?

Very excited to see the positive impact of the GIST API! Very interested in learning more about the deduplication possibilities as well. Thanks as always for the work.


Thanks for getting this upgrade early enough, most exiting to me is in the Platform API features, in Merge org units. I have just the right use case for that.

The Freeze row and column headers feature I think is pretty cool to have.


2 posts were split to a new topic: Adding other attributes to the organization unit profile

2 posts were split to a new topic: When will 2.36.5 be released?

3 posts were split to a new topic: Authenticate an integration service in earlier versions of DHIS2

5 posts were split to a new topic: When will the 2.37 version of COVID contact tracing and surveillance be available?

13 posts were split to a new topic: Error requesting /resources.json apiEngpoint in JSON format (v. 2.37.6)

Hi @phil @Gassim When do we plan for the release of 2.37.3 ?

Eagerly looking forward for fix of analytics issue DHIS2-12277

And Thank you so much


Hi @jthomas
It has just been released ‘at the developers level’ on the jira.dhis2.org platform
release-dhis2-2.37.3 jira.dhis2.org
so it should be very soon for the official public #announcement.

I will ask to see if there are any updates to this and get back to you. :pray: Thanks! :slight_smile:

NOTE: releases in the jira platform are part of the developers workflow but don’t necessarily mean a public release.


Thank you so much @Gassim :raised_hands:

1 Like

Hi @jthomas ,

Just to add to what @Gassim said, 2.37.3 is in the final stages of regression testing and we hope to release it publicly within the next couple of days.

Kind regards,


Thank you so much @phil Looking forward to it

A post was merged into an existing topic: What will happen to old reports based on reporttable on v2.37

Hi @phil any update on the release date for 2.37.3?


Hi @rithvik

The release was delayed a little by some issues we found, but hopefully will be ready in a day or two now.

I know I said that last week, but that is the nature of testing :wink:

Kind regards,


A post was split to a new topic: V(orgunit_code) and d2:inOrgUnitGroup() does not work

2.37.3 is now available!


3 posts were split to a new topic: Where did Pivot Table app go in 2.37?