Go to the main page

DHIS 2.37 Overview

DHIS2 version 2.37 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

    Analytics Features

    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 traveling in rural ares.

    Screenshot 1 | Screenshot 2 | Docs | Jira

    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 | DocsJira

    Org unit profile

    The Maps application now features an org unit profile, which displays key information for each organisation 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 | Jira

    Indicator type for single value

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

    Screenshot | Docs | Jira

    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 | Jira

    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 | Jira

    Freeze for 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 | Jira

    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 | Jira

    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 | Jira

    Axis labels for multi-axis charts

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

    Screenshot 1 | Screenshot 2 | Jira

    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 | Jira

    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 | Jira

    Tracker and Event Features

    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.

    Jira 1 | Jira 2

    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 | Jira

    Deduplication

    A new API service is built for merging two 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 | Jira

    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 | Jira

    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 | Jira

    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 | Jira

    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 | Jira

    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.

    Screenshot

    Platform Features

    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 DHIS2 user experience, making data approval more efficient and user-friendly. The app is built using the new DHIS2 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.

    Screenshot

    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 DHIS2 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 DHIS2 instance. This made dynamic scaling of cluster nodes complex and inconvenient. Now DHIS2 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.

    Docs

    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.

    Docs

    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.

    Screenshot

    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.

    Docs

    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 as 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 DHIS2 web application available on the App Hub. Apps can now updated with a single click. Read about all improvements in the changelog.

    Screenshot | Changelog

    Platform API Features

    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.

    Docs

    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.

    Docs

    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.

    Docs

    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.

    Docs

    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.

    Docs

    Platform Developer Features

    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.

    Changelog

    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.

    Changelog

    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.

    Changelog

    Jar packaging

    The DHIS2 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 DHIS2 easier to deploy and more friendly to containerized environments. To build as JAR file you can use the run_api.sh script.

    Android Compatibility

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

    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