DHIS 2.23 Overview

DHIS version 2.23 is out with a lot of new features, apps and improvements. Log in with admin/district on the demo system while reading.
Analytics features
Event clustering in GIS
Event clustering in GIS
You can now view clusters of events in the event layer of the GIS app. This dramatically improves the scalability and lets you visualize millions of events in a single map. Try zooming in and see the clusters being updated. The event layer clusters are based on the longitude/latitude of the events which allows for geospatial analysis of disease outbreaks, surveys and more. Filters can be defined per data element, e.g. you can filter age groups and gender in a similar style as you do in event reports. After drilling down to individual events you can click on points to show a dialog with additional information about the event. You can select start and end dates or relative periods for the time dimension. The color and size of the clusters / points can be controlled under options.
[ Demo 1 | 2 ] [ Screenshot 1 | 2 | 3 ] [Docs]
GIS OSM Light basemap
GIS OSM Light basemap
The GIS app features a new OpenStreetMap Light basemap which is great for thematic mapping, as it emphasizes the data layers and provides a clean basemap with high contrast and less color. OpenStreetMap is now the default basemap which renders faster and smoother. You can select basemap from the right-side Layer stack menu.
GIS area measurement
GIS area measurement
The GIS app now lets you measure areas on the map and provides information about the size of the area and perimeter distance. Use the left-side measurement dialog to put area measurements on your map.
[ Screenshot 1 | 2 ] [ Docs ]
Event layer favorites
Event layer favorites
Maps with event layers can now be saved as favorites. You can combine the event layer with any other map layers in the favorite. Event layer maps can also be used on the dashboard. Have a look at the Malaria dashboard on the demo.
[ Screenshot 1 | 2 ] [ Docs ]
New favorite solution in pivot tables
New favorite solution in pivot tables
The solution for managing favorites in the pivot table app has been improved and aligned with traditional file editors, providing a more familiar way of interaction. You can now easily create new, open, save, rename and share the current favorite from the new favorites menu, removing the need for having to search for and find the current favorite. We will roll this solution out to all analysis apps eventually.
[ Demo ] [ Screenshot 1 | 2 ] [ Docs ]
Actual and expected data set reports in analytics
Actual and expected data set reports in analytics
In addition to reporting rate percentages, now actual and expected reports for data set are supported in pivot table. All three metrics can be selected both individually and together.
[ Demo ] [ Screenshot ] [ Docs ]
Usage analytics
Usage analytics
A new app called Usage Analytics is available and lets you visualize statistics on how people (end-users) are utilizing the analytical features of DHIS 2. This includes how many times people have viewed charts, pivots, dashboards; how many favorites of various kinds people have created and how many people are logging in versus total number of users. The system will capture and store daily snapshots of usage statistics automatically which can be visualized through this app.
[ Demo ] [ Screenshot 1 | 2 | 3 ]
Data table
Data table
A new app for easily viewing aggregated data tables is now available in the app store. The data table lets you view indicator data where both the score, numerator and denominator are displayed per row. You can easily drill down in the time dimension (e.g. quarters to months) and organisation unit hierarchy (e.g. province to districts). This app is only available in the app store - you can install it from inside DHIS 2 by going to the App management app, then the App store section from the left-side menu.
Tracker features
Searchable audit log
Searchable audit log
Clicking the audit icon in tracker / event capture will now open a dialog with a searchable log of audits. You can search on either of the columns in the log.
[ Demo ] [ Screenshot 1 | 2 ]
Search by incident date
Search by incident date
Advanced search in tracker capture now allows searching by incident date if the selected program has an incident date.
[ Demo ] [ Docs ] [ Screenshot ]
Include first stage of program in registration
Include first stage of program in registration
Programs can now optionally choose to have the first stage of a program appear on the same page as registration.
Send SMS in tracker dashboard
Send SMS in tracker dashboard
If a person has a phone number attribute, you can now send SMS directly to the person from the tracker dashboard messaging widget.
Capture coordinates
Capture coordinates
A new value type, coordinates has been introduced, allowing you to capture coordinates for attributes and data elements.
Tracked entities instance and event export
Tracked entities instance and event export
In Event Capture and Tracker Capture you can now export your list of tracked entities or events to XML, JSON or CSV format.
Event filter in data entry widget
Event filter in data entry widget
In tracker capture, Events registered to a tracked entity instance are now searchable on any event property in order to locate the event of interest.
Details popup for custom forms
Details popup for custom forms
Popups that shows description and url for data elements and attributes are also available in custom forms in tracker capture and event capture.
Validation of regular expression patterns
Validation of regular expression patterns
Program rules now have support for validating regular expression patterns through the function d2:validatePattern
[ Docs ]
General Features
Organisation unit maintenance UI
Organisation unit maintenance UI
A new maintenance app is available which includes organisation units, data elements and indicators. The organisation units maintenance user interface has been upgraded to the new material design style. The maintenance app supersedes the data elements and indicators app. Note that you now need to use the Maintenance app instead of the old Data elements and Indicators and Organisation units apps.
[ Demo ] [ Screenshot 1 | 2 ]
User setting fallback to system setting
User setting fallback to system setting
User settings now fall back to equivalent system settings if not set. You can define system settings for all user settings, meaning you can define system wide default settings. As an example, you can enable system email notifications system-wide, and then allow individual users to disable it for their own account.
[ Docs ]
Apps as dashboard items
Apps as dashboard items
Apps can now be used as dashboard items. You can define the type of app in the app manifest. This is useful e.g. in order to customize the dashboard and to pull in and embed data from external systems.
[ Docs ]
YouTube video app
YouTube video app
A new dashboard app for YouTube videos is available in the app store. This app lets you display YouTube videos directly on the dashboard. This can be useful for showing instruction videos, promotional videos and more to users. First search for "Social media video" and add the video widget, second enter the URL of your desired YouTube video. You can get the app from the DHIS 2 app store under Web Widgets. Have a look at the Info Videos dashboard on the demo.
Current user in menu
Current user in menu
The "profile" link in the header has now been exchanged for the name of the logged in user.
Metadata attributes for constant and legend set
Metadata attributes for constant and legend set
Constant and legend sets now have support for dynamic metadata attributes.
[ Demo ]
Web API features
Data set metadata exchange
Data sets can now be exported and imported with all related metadata. This is intended to simplify the common task of moving a data set with related associations e.g. from a development instance to a production instance.
[ Docs ]
Program metadata exchange
Programs can now be exported and imported with all related metadata. This is intended to simplify the common task of moving a program with related associations e.g. from a development instance to a production instance.
[ Docs ]
User based data store
In addition to the existing general-purpose data store, a new key-value JSON data store has been introduced. Unlike the general-purpose data store which is shared between all users, the new user-based data store is linked to the currently logged in user. Only the user linked to the data store can add, edit, update or delete data in their store. This is useful for apps which need to store personalized data for a user, for example user-defined settings.
[ Docs ]
Encryption of data store values
Data stored in either the general-purpose data store or the user-based data store can optionally be encrypted upon creation. Existing data and data initially created as unencrypted can only be encrypted by deleting the data and creating it over with encryption enabled. Values will be encrypted when a encrypt=true query parameter is supplied.
[ Docs ]
Data set report
Added data set reports to the web api. The resource can be found at /api/dataSetReport and returns a HTML report based on your input parameters.
[ Docs ]
User setting Web API changes
The user setting web api now allows fetching setting with or without using the fallback to system setting mechanism. That means a user setting will return 'null' if no value has been set for the user setting in question if required, but will return the value of the system setting by default if the user setting has not been assigned a value.
[ Docs ]
Support for identifier schemes in aggregate analysis requests
The analytics web api resource now has support for other identifiers schemes than UID. The resource now accepts a new parameter inputIdScheme which determines how identifiers are handled. Currently both UID and CODE can be used as identifiers.
[ Docs ]
Ordering for event and eventRow endpoints
Added parameter order to /api/events and /api/events/eventRows so result can be ordered on any property, either ascending or descending.
[ Docs ]
Average aggregation in analytics
Analytics web API now supports for an AVERAGE aggregation type.
[ Docs ]
Support for coordinate clustering
Event analytics now has support for coordinate clustering through a new /api/analytics/events/cluster resource.
[ Docs ]
Usage statistics endpoint
Using the new /api/dataStatistics endpoint, you can now create event views and fetch data statistics between two dates and by different intervals.
[ Docs ]
User credentials endpoint
A new endpoint /api/userCredentials has been added. This will enable lookup of users by username through a database-optimized search.
[ Docs ]
CSV import of translations
Translations can be imported in CSV metadata format, both through the Web API and the user interface.
[ Docs ]
Clearing analytics tables
The /api/maintenance resource now supports dropping all analytics tables from the database.
[ Docs ]
Metadata exchange
The metadata import-export resource has been completely rewritten and offers better performance and stability. We are gradually introducing Web API versioning and the new metadata resource can be found at /api/23/metadata. The current metadata resource will be phased out in 2.26. We encourage app developers to upgrade their apps.
[ Docs ]
Release info
Download
You can download Live package, WAR file, sample data and source code here:
https://www.dhis2.org/downloads
Documentation
You will find documentation and Javadocs here:
https://www.dhis2.org/documentation
Upgrade notes
You can read the upgrade notes and find upgrade script here:

https://www.dhis2.org/223-upgrade
Demo
The demo application can be found here:
https://play.dhis2.org/demo
Launchpad
Full list of features can be found at the Launchpad page:
https://launchpad.net/dhis2/+milestone/2.23
Mailing lists
Instructions for signing up for the DHIS 2 mailing lists here:
https://www.dhis2.org/contact