Go to the main page

DHIS 2.39 Overview

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

Feature Demo Videos

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

Analytics Features

Legend sets for line lists

The Line Listing app you can now apply a legend to data items. Legends can be predefined or automatically generated. This allows you to make your data more easily interpretable by applying a color coding to indicate performance, status or severity.

Video | Screenshot | Jira

Scheduled date in line lists

Scheduled date is made available as a time dimension in the Line Listing app. You can now present or filter data by scheduled date.

Video | Screenshot | Jira

Earth Engine population data import

In the Import/Export app you can now import data sets from Google Earth Engine. DHIS2 already allows visualizing Earth Engine layers in the Maps app. The new importer takes this further by allowing for dynamic calculation of population data sets based on org unit geometries, and subsequent import of the population data as raw data in DHIS2. This will allow implementations to use the population data from Earth Engine in DHIS2 visualizations and combine it with other data sets as part of indicator expressions.

Video | Screenshot | Jira

Tracker and Event Features

Continuously released Capture App

The Capture app was released shortly after the 2.38 release on the App Hub, and is now continuously released in 2.38 and 2.39. If you are running any of these versions you will be able to continuously upgrade to the latest version of the Capture app and receive the following features and fixes. The following Tracker features are all available in both the 2.38 and 2.39 versions though the App Hub.

Video | Screenshot

Enroll TEI in multiple programs

A tracked entity instance (TEI) can now be enrolled in multiple programs in the Capture app.

Video | Screenshot | Docs | Jira

Open data entry after enrollment

When enrolling a TEI into a program where one of the program stages is marked to be opened after enrollment, the user is taken directly to the form for adding that program stage to the enrollment. This is useful for reducing the amount of clicks and speeding up the data entry process.

Docs | Jira

Display front page lists

The front page list view can now be disabled in the Capture app. After selecting the program and org unit, the user can be taken directly to the search screen instead of displaying the list of tracked entity instances enrolled in the org unit. This will improve the user experience when users are expected to primarily search and find tracked entity instances. Avoiding unnecessary loading of the front page list also has performance benefits.

Video | Docs | Jira

Working lists in search screen

In the Capture app, the search screen will now show working lists for the selected program. This is helpful when the user either wants to search for a tracked entity instance or in some cases use a targeted working list. This works well in combination with disabling the front page list and instead directing a user to the search page, but also for allowing one-click access to working lists.

Screenshot | Docs | Jira

See previous selected org unit

In the Capture app, a user that just deselected an org unit in the context selector will see the previously selected org unit highlighted. This is useful when working systematically through many org units.

Video | Screenshot | Jira

Preserve filters on navigation

When filtering and sorting a working list in the Capture app, the filter selections will now persist through context switches. This is useful when a user needs to apply a filter across different org units as the org unit can be changed without losing the current filter and list settings. This works both with saved working lists and with unsaved filters.

Video | Jira

Improved search in all programs

When searching for a tracked entity instance in a specific program, the search might not yield any result in the context of the program. In this case the user can expand the search to look for a tracked entity instance in all programs. The expanded search happens without the user changing the context, and the possible expanded search results is displayed below the original program results. This allows the user to easily revise the search criteria and continue working in the context they started in, potentially expanding the search again if no results is found in the program.

Video | Screenshot | Docs | Jira

Platform Features

New Data Entry app

A new aggregate Data Entry app is now available. The new app is built on the modern technology stack and brings a number of usability improvements. The data set, org unit and period selection is always visible, making it easy to see the current selections. The org unit tree makes it easy to see which org units are open for data entry for the currently selected data set. The details of a data value, including metadata info, comments, min and max limits, data value history and audit log are available in a sidebar and can remain visible while doing data entry. Data validation rules will open and can be easily triggered in a sidebar as well. Data which is captured offline will be automatically synchronized with the server. The new Data Entry app supports custom HTML forms but lacks Javascript/CSS support, which may be added later. The current data entry module will be phased out and removed in version 2.41.

Video | Screenshot 1 | Scr 2 | Scr 3 | Scr 4 | Demo | Docs

User group management

The user group management in the user app now supports adding and removing users for databases which contain a large number of users. Users can be added and removed individually and the modifications will take effect when the user group is saved.

Screenshot | Demo | Docs

Multiple org unit geometries

DHIS2 can now store and visualize multiple geometries for org units. This is supported through a new metadata attribute GeoJSON value type. GeoJSON data can be imported through the metadata importer and stored using the new value type. This allows for example for displaying both the location (as a point) and the catchment area (as a polygon) for org units.

Video | Screenshot | Demo

GeoJSON geometry import

A new import service supporting the industry standard GeoJSON format for geospatial data is now available. The importer allows for importing GeoJSON geometry and associate it with org units, using the org unit primary geometry field or custom metadata attributes of value type GeoJSON. The GeoJSON format is supported by most geospatial tools and services and enables integration with external systems. The new importer makes importing geometries and setting up maps a lot easier compared to the previous GML format.

Screenshot | Demo | Docs | geojson.org

Aggregate data exchange

A new service for aggregate data exchange allows for exchanging data from one DHIS2 instance to another, as well as within a single instance of DHIS2. The service will aggregate data in the source instance using the analytics engine, and import the data as aggregate data values in the target instance. Data exchanges can be triggered from the API, from the data exchange web app or run as a scheduled job. This is useful for transferring data from an HMIS instance to a DHIS2 data portal instance, to import aggregated numbers into a DHIS2 HMIS instance based on individual records in a DHIS2 Tracker instance, and to pre-compute aggregate numbers based on individual tracker records using program indicators. A new web app named Data exchange will be made available from the App Hub shortly.

VideoScreenshot 1 | Scr 2 | Scr 3 | API docs | Jira | Web app coming soon

Redis for cluster management

When running DHIS2 in a cluster (using multiple servers/nodes for a single instance), Redis can now be used for dynamic invalidation of caches across instances. This is an improvement over the Debezium-based approach introduced in 2.38 as it is more reliable and works on other database engines beyond standard PostgreSQL such as AWS RDS. The new cluster management solution allows for adding and removing nodes dynamically without any updates to the DHIS2 configuration files of the existing nodes. The new solution requires Redis to be available, though Redis is already required for cluster configurations.

VideoDocs

RapidPro integration

The DHIS2-RapidPro integration is generally available. It allows for synchronization of RapidPro contacts with DHIS2 users, transfer of aggregate data reports from RapidPro to DHIS2 and reminders to RapidPro contacts when aggregate reports are overdue. Read more at the GitHub repository and contact the DHIS2 integration team for assistance if you are interested in configuring the integration for your country or organization.

Video 1 | Video 2 | GitHub

Platform API Features

Shorthand fields notation for attributes

A new shorthand notation is supported for attributes and values in the metadata endpoints, and attribute values can now be conveniently referred to using the metadata attribute identifier: filter={attribute-id}:eq:{value}. The same applies to object filtering, where the attribute identifier can be used in filters: filter={attribute-id}:eq:{value}.

Docs 1 | Docs 2 | Jira 1 | Jira 2

Data entry endpoints

A collection of API endpoints optimized for the new Data Entry app is made available. These endpoints are also useful for custom data entry web apps. These include retrieving metadata for accessible data sets, retrieving custom data entry forms, retrieving data values for a form, retrieving context for a form, saving min-max limits and completing a form.

Docs

API improvements

Several incremental API improvements have been made available.

  • CSV data value import supports a data set parameter, allowing for completing the data set. Docs | Jira
  • In the user data store API, an admin can modify data store values for other users through a username query parameter. Docs | Jira
  • The data value importer only creates an audit record if the data value was actually modified (identical values are ignored). Jira
  • The tracked entity audit endpoints support org unit, start and end date and program stage query parameters. Docs | Jira
  • All geometry data for org units can be removed in a single API call, which is useful for integration. Docs | Jira
  • Metadata attribute values are now properly validated based on the value type of the associated data element. Jira
  • Deletion of data elements is significantly faster. Jira

Android Compatibility

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

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