DHIS version 2.21 is out with a lot of great new features and improvements.
Log in with admin/district on the demo system.
File cloud storage: You can now upload and store large files directly from data entry forms. Data elements can have a file value type and render as file upload widgets in forms. Files can be stored either on the Web server or sent directly to AWS S3 cloud storage, which in practice provides unlimited storage capacity. This capability allows you to use DHIS 2 as a general document repository which can be utilized for project management, documentation, CMS and many other purposes.
File storage currently works for aggregate data entry forms - tracker coming up. Have a look at the “Project management” data set in data entry on the demo:
Settings app: The settings front-end has been re-written as a true app. It features real-time saving, search for settings and a fresh new look.
Data import constraints: Several optional constraints for data import can be enabled to provide stricter control of the data being imported. These include require period to be of same type as data set, data element to be assigned to data set through org units, and more. The import constraints can be enabled in settings app under “data import”.
Functions and variables in program indicators: Program indicators support a range of functions and variables. Functions allows for conditional statements, calculation of number of days between dates and more. Variables allows you to insert e.g. event date, enrollment date and value count into expressions. This is useful for example to calculate “inpatient bed days” and complex scores.
Custom aggregation types: A program indicator now has an aggregation type property with the standard options such as sum, avg, count, std dev min, max. When set to custom, the indicator expression can contain inline aggregation types, allowing for greater control over aggregation.
Program indicators and data elements in GIS: The GIS app lets you analyse program indicators, attributes and data elements on maps.
Program indicators in event reports: The individual event overview supports program indicators, which allows you to display calculations per event directly in the overview.
Download data dump: Pivot table lets you download data in CSV format directly without first rendering the data in the Web browser (which might lead to the browser freezing for large data volumes). This allows you to download much larger batches of data which is useful for later offline analysis.
Complete events only option: All analysis apps provides an option for only including completed events in the aggregation process. This is useful e.g. to exclude partial events in indicator calculations.
Full precision option: Pivot table has an option for “skip rounding” of values, i.e. full precision of values. This is useful for certain data types such as financial data, and when doing calculations in external systems.
Aggregation type for attributes: Tracked entity attributes have an aggregation type property which lets you control how attributes are aggregated in pivot tables, charts and analytics.
Attribute categories in event capture: Data set categories can be enabled for programs without registration and be used in the event capture app. This means that events can be attributed to projects and partners just like it can be for aggregate data sets. You can enable it by setting a category combination for the program. Check it out on the demo for the
Sticky right side widgets: In tracker capture, the right-side widgets can be made “sticky”, meaning that they remain at the top of the screen when scrolling down the page. You can enable this by clicking the “sticky” icon in the top-right corner of the dashboard screen. This is useful for example to display key patient information while entering data.
Program rule warnings and errors: The program rules let you define warning and error messages as actions based on rule evaluation. This is useful e.g. to provide assistance and guidance to health workers based on medical best practises during consultations. It can also be used for data validation purposes, e.g. to provide warnings for values out of range or logical violations between data elements. Program rules are supported in tracker capture dashboard and event capture. Try it out on the demo with the “WHO RMNCH Tracker” program.
Program rules for attributes: Tracked entity attributes can be used for program rules to create dynamic behavior e.g. in tracker dashboard.
Attribute inheritance: Tracked entity attributes can now be defined as “inherited”. In tracker capture, these attributes will be pre-populated when registering new persons in the relationships dialog. This is useful e.g. when registering children in relationship to mothers to avoid having to enter last names / family names.
Hide sections: Program rules let you hide form sections based on evaluation of rules. This provides more flexibility e.g. for surveys where skip-logic is needed.
Immediate unique attribute validation: In person registration forms, unique attributes are validated immediately.
Active programs widget: The dashboard in tracker capture has a new widget for displaying active programs. This is useful to see at a glance which programs this person is enrolled in. You can select which widgets to display on the dashboard from the top-right settings icon. By selecting the “active programs” widget it will be included on the dashboard.
Ethiopian calendar support: The Ethiopian calendar is now fully supported in, including tracker and aggregate data entry and analytics.
Coordinate data element value type: A new data element value type for coordinate is available, which will enforce a valid coordinate to be entered through data entry forms.
Extended attributes: Dynamic meta-data attributes are supported for category options and category option groups.
Cache instruction per object: You can set cache lifetime for individual SQL views and standard reports. This means e.g. that certain SQL views can have no caching whereas other SQL views can be cached for two weeks, depending on the requirement of the SQL view.
WEB API FEATURES
General-purpose data store: A new key-value store for JSON data has been introduced in the Web API. This is useful for apps which need storage for app data or settings. The data store provides a namespace, key and JSON value for each record, with optional security per namespace linked to authorities.
Custom logos: Custom logos for front page and top menu can be uploaded through the new staticContent Web API resource. This allows for easy customization of the UI.
Preheat cache option: All meta-data endpoints support optional preheat of caches, which implies better performance for smaller endpoints.
Enums in data model: Enums are introduced for all properties with predefined sets of valid options in the the data model. This makes it easier to create apps as you can easily discover valid options for properties through the schemas endpoint. Consult the upgrade notes for a list of changes.
Organisation unit hierarchy performance: Everything related to the org unit hierarchy, including loading of trees, assignment of data sets/programs, org unit search and analytics, now performs much better, as org units are now located in the hierarchy using database queries. A lot of performance improvements have been done in general based on profiling and monitoring.
Temporary resource tables: Resource tables are written to temporary tables, then swapped with real tables when completed. This removes the timespan when no resource tables were present, causing trouble for SQL views and queries which depended on them.
Translations: The French UI translation is now complete.
You can download Live package, WAR file, sample data and source code here:
You will find documentation and Javadocs here:
You can read the upgrade notes and find upgrade script here:
The demo application can be found here:
Full list of features can be found at the Launchpad page:
Instructions for signing up for the DHIS 2 mailing lists here:
the DHIS 2 development team