DHIS version 2.37 is released

Dear all,

DHIS2 version 2.37.0 is out with many new features, apps, improvements and bug fixes.

Log in with admin / district on the demo server.


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

Screenshot 1 | Screenshot 2 | Docs | DHIS2-10874

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 | Docs | DHIS2-101

Org unit profile: The Maps application now features an org unit profile, which displays key information for each organizational 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 | DHIS2-11176

Facility map layer: A new facility map layer is available in the Maps app, which is designed to support a facility registry system in DHIS 2. You can indicate which level in the org unit hierarchy represents facilities from Settings > Analytics > Org unit level in facility map layers. This org unit level will be automatically selected when creating a new facility map layer. This feature is useful in combination with the new org unit profile.

Screenshot 1 | Screenshot 2 | DHIS2-11700

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

Screenshot | Docs | DHIS2-7420

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 | DHIS2-3600

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 |DHIS2-11061

Freeze 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 | DHIS2-11057

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 | DHIS2-9734

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 | DHIS2-11556

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

Screenshot 1 | Screenshot 2 | DHIS2-6672

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 | DHIS2-7029

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 | DHIS2-6296


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.

DHIS2-11892 | DHIS2-11305

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 | DHIS2-11467

Deduplication: A new API service is built for merging 2 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 | DHIS2-11394

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 | DHIS2-10802

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 | DHIS2-10885

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 | DHIS2-10831

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 | DHIS2-10682

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 DHIS 2 user experience, making data approval more efficient and user-friendly. The app is built using the new DHIS 2 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 DHIS 2 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 DHIS 2 instance. This made dynamic scaling of cluster nodes complex and inconvenient. Now DHIS 2 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 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 DHIS 2 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 DHIS 2 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 DHIS 2 easier to deploy and more friendly to containerized environments. To build as JAR file you can use the run_api.sh script.


RELEASE INFO

Release Information Link
Download release and sample database Downloads - DHIS2
Documentation https://docs.dhis2.org
Upgrade notes Upgrade notes on GitHub
Full list of features and bugs in this release Release Note
Source code on Github DHIS2 · GitHub
Demo instance DHIS 2 Demo - Sierra Leone
Docker image docker pull dhis2/core:2.37.0
Docker Hub images Docker Hub
Community forum https://community.dhis2.org/
17 Likes

Thank you @phil and the DHIS dev team for this exciting update.

I have a question with regards to the Capture App. The old Tracker Capture app has the Reports feature as shown below.

Would these useful tools also be included at some point in the Capture App?

I also noticed that 2.37 and 2.35.8 include the page option (see below) in the Tracker Reports section

However, this feature is missing in 2.36.4. Is this something that would be coming in a future update?

Thank you.

Ifeanyi

1 Like

Dear @ifeanyiokoye ,

I’ll have to let the @tracker-products team answer your question regarding features in the Capture App roadmap.

Regarding the page option, yes the feature will be coming to 2.36 in the next patch (2.36.5). You can see it already on our 2.36.5 snapshot instance.

Kind regards,
Phil

1 Like

Very excited to see the positive impact of the GIST API! Very interested in learning more about the deduplication possibilities as well. Thanks as always for the work.

4 Likes

Thanks for getting this upgrade early enough, most exiting to me is in the Platform API features, in Merge org units. I have just the right use case for that.

The Freeze row and column headers feature I think is pretty cool to have.

4 Likes

Thanks @phil, but i am having a query regarding 2.37 version about Organisation unit profile. Is there any option to change current variables that are by default displayed on Organisation unit profile. Like currently it display name, code, id, lat,long. i want to display an attribute here as well.

Hey @sybghat,

You can add other attributes to the organization unit profile. In this version, there’s no user interface for org unit profiles, but it can be done through the API. Check this section in the docs. For attributes to be visible in the profile, you need to add them to the attributes array.

You can also check the org unit profile configuration on play for guidance. This is how the profile is displayed in the maps app:

2 Likes

Hi Phil,

Do you know when the version 2.36.5 will be released?

Many thanks,
Delphine

1 Like

Hi @dpastorel ,

We are currently targeting mid-January 2022 for the 2.36.5 release.

Kind regards,
Phil

1 Like