Published using Google Docs
DHIS Version 2.31 Release Notes
Updated automatically every 5 minutes

DHIS2 version 2.31 is out with many new features, apps and improvements.



New data visualizer app: A completely new version of the Data Visualizer app introduces a more intuitive, user friendly experience for building charts in DHIS2. You will find a new and simpler selection process for periods, organizational units, data, and layout. The right interpretations panel has also been reworked to help you communicate with your colleagues directly around the data. This beta release will serve as the app for all further development and improvements in data visualizer, but the old data visualizer app will continue to be supported for the next few releases to assist organizations and ministries in transitioning to the new app.

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

Year over year chart: A new chart type is available: year over year. With year over year charts you can make a line or bar chart where both categories and series represent a time dimension. A typical chart will display the last years as series and the last 12 months (within those years respectively) as categories.

Screenshot | Demo | Jira

Event layer style by data element: Points in Event layers in Maps app can now be colored based on their event attributes and data elements. E.g. you can display different colors for points for gender, age groups and status. 

Screenshot | Demo | Jira

Maps image download: You can now download an image of your maps directly from the maps app. These images are in PNG format and can be included into your presentations, text documents and reports. You can download to image from the “Download” link in the top menu.

Screenshot 1 | 2 | Demo | Jira

Map layer data download: You can now download your maps from DHIS2 in GeoJSON format to be used in other GIS software for more advanced analysis. Click on the context menu for the map layer of interest, then click “Download data”.

Screenshot | Demo | Jira

Event aggregation in time by data item: In event reports and visualizer, you can now aggregate events in time based on a data element or attribute in the program of value type date which. As an example, you can aggregate inpatient cases based on the admission date of visits as opposed to event date. Click on “Layout” and select a time type data element from the “Time field” drop-down.

Screenshot | Demo

Rich text for interpretations and comments on dashboards: You can now use basic formatting such as bold, italics and emoticons in interpretations and comments on dashboard items.

Screenshot | Demo | Jira



New logo: A fresh new logo is introduced throughout the system. You can find material for the new DHIS 2 identity here.

Screenshot | Demo | Identity repository | Jira

Maintenance search: In maintenance app you can now search for objects using tokens (words) within the name of the object. The search is also now performed across the the name, short name, code and identifier of the objects.

Screenshot 1 | 2 | Demo | Jira

Configurable columns in maintenance: You can now freely select and arrange which columns to display in lists of objects in the maintenance app.

Screenshot 1 | 2 | Demo | Jira

Import-export conflict summary: Conflicts generated while performing a data import are now reported in a summary table as well as a list of individual conflicts. In addition the logging has been made more readable, and an option has been added to include deleted records in import.

Screenshot | Demo | Jira

Last login per user: The user management app now displays the last login date for each user in the list of users:

Screenshot  | Demo | Jira

Extended user profile: It is now possible to include a profile picture in the user profiles as well as allowing user to have WhatsApp, Facebook Messenger, Skype, Telegram and Twitter identifiers added to their settings. International dial code is validated for phone numbers. Phone numbers are unique per user. 

Screenshot | Demo | Jira

User profile picture: A profile picture can be added under user profiles.

Screenshot | Demo | Jira

Icons and colors for data sets: You can now assign colors and icons to data sets. The Android App will render the icons and colour in the home screen and data entry form.

Screenshot | Demo | Jira



New event capture app: The new version of Event Capture is out, and is now named “Capture”. This app allows capturing and viewing single event programs. The new app features a modern look and feel, based on modern ui design standards. A new workflow is introduced with more options for navigating between organisation units or programs with the quick selector. An optional compact row-mode is introduced when adding events, and events can be added in batches/sessions that is useful for self-checking after a session. The app features colors and icons defined in program metadata, giving the user more visual context. Functionality for working offline or in intermittent connectivity is more solid than ever, and is designed to work well in every aspect of the app. In coming releases this app will also be expanded with functionality cover Tracker Capture and Data Capture functionality.

Screenshot | Demo | Docs | Jira

Default table mode for data entry: Program stages can now be configured to render as tables by default for data entry purposes. The selected entry mode is saved per program stage for each user, and an administrator might save and possibly lock a default for all users. This is useful when different program stages is naturally viewed in different modes - for example listing all previous pregnancies in a list, while at the same time showing the antenatal care visits in normal mode.

Screenshot | Demo | Docs | Jira

Customized look and feel: You can now make use of colors, icons and other customization options to optimize the look and feel of your programs in Tracker Capture and Capture app.

Screenshot 1 | 2 | Demo

Event validation strategy: Required field validation is now done in the API as well as the clients. For single event programs it is possible to define whether an event would have to be valid before it is saved, or if it is enough that the event is valid when marking it as complete. For legacy reasons will tracker programs always be validated when events are completed. Also note that a new authority is introduced to circumvent the chosen validation strategy.


New rendering options: For data elements and attributes of value type text, you can now enable or disable auto-complete option for Android clients.

Screenshot | Jira

Capture area geometry for tracked entity instances and enrollments: You can now capture an area linked to a tracked entity instance or enrollment. You can configure in the maintenance app whether a point (location) or polygon (area) should be captured (or whether to capture no geometry at all). The underlying data storage is changed to geometry to allow for both points and areas to be stored.

Demo | Screenshot 1 | 2 | Docs | Jira

New program indicator functions: Functions for counting number of relationships a record has, and for counting occurrences of data values for repeating events. The functions can be used to make a program indicator that does not only look at the latest data value within an enrollment, but check for any value with a certain criteria. An example could be to count the number of visits where one patient has had a low hemoglobin value, over the course of many visits(events) in one enrollment. Traditional enrollment program indicators only examined the latest data value within an enrollment.

Demo | Docs | Jira



Database migration: The Flyway framework is introduced for upgrading databases between DHIS 2 versions. This means that the upgrade process is much faster as the upgrade is only done exactly once. It implies greater control over database schema changes which should lead to less issues with upgrades.



Batch approvals endpoint: You can now get data approval information from /dataApprovals/multiple with lists of workflows, periods, and organisation units. You can also use startDate and endDate for periods.




Release Information


Download release and sample database

Documentation and Javadocs

Upgrade notes

Upgrade notes for 2.31 on GitHub

Details about each feature on JIRA (requires login)

Overview of bugs on JIRA (requires login)

Additional fixes for patch release 2.31.1

Source code on Github

Demo instance

DHIS 2 community