DHIS version 2.23 is out with a lot of new features, apps and improvements.

Log in with admin/district on the demo system.

ANALYTICS FEATURES

---

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: 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.

Demo | Screenshot

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: 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: 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: 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: 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 loaded 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: 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.

Demo | Screenshot 1 | 2 | 3 | App management | App store

TRACKER FEATURES

---

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: 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: Programs can now optionally choose to have the first stage of a program appear on the same page as registration.

Screenshot | Demo

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.

Screenshot | Demo

Capture coordinates: A new value type, coordinates has been introduced, allowing you to capture coordinates for attributes and data elements.

Screenshot | Demo

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.

Screenshot | Demo

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.

Screenshot | Demo

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.

Screenshot | Demo

Cross-event program rules: Program rules can now reference values from events other than the active event for single event without registration (event capture).

Docs | API docs

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: 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 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 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: 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.

Demo | Screenshot 1 | 2 | App store

Current user in menu: The “profile” link in the header has now been exchanged for the name of the logged in user.

Demo | Screenshot

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

Added 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