DHIS2 Android Capture App version 2.2 is released

Dear all,

DHIS2 Android Capture App version 2.2 is out with many new features, apps, improvements and bug fixes. The primary new features in this release are the support of validation rules for data sets, new filters and sorting for events and TEI lists, many new visualizations in maps, and the possibility to encrypt the database of the device, together with many small interface changes that result in a better user experience.

Important Update Information
The evaluation parser used by the rule engine of DHIS2 has been updated and some of your program rules might stop working in the Android App. The web interface might incorporate this changes at a different pace hence behaviour in web and Android might differ. PLEASE read carefuly the documentation and the information on THIS post before updating your App to the new version in production environment.

This version is fully compatible with the DHIS2 version 2.34 .
You can find the detailed new features and fixes below.


Validations Rules: The App supports Validations Rules. The validation step has been integrated in the save and complete flow and the app supports both when the validation rules are configured as mandatory and when they are optional. The app will display a new card with the errors helping the user identify which values are incorrect.

Jira | Jira 2 | Jira 3 | Jira 4 | Screenshots


Sorting of lists of Events and TEIs: The app now supports sorting of lists of Events and TEIs. Sorting is integrated with the filters menu and users will be allowed to sort the list by one chosen parameter either in ascending or descending order. Sorting is applicable by date and organization unit, and by enrollment date and status when applicable. The screens that allow sorting are:

  • Single event listing
  • TEI Search screen list (When a TEI has multiple events, the app will order based on the most recent event)
  • TEI Dashboard event list

Jira | Screenshot

New Filter - Enrollment Status: In the Program Search screen, the user is able to filter the TEI list by Enrollment Status. This filter does not allow multiselection. Users are not able to filter by more than one enrollment status at a time.

Jira | Screenshot

New Filter - Enrollment Date: In the Program Search screen, the user is able to filter the TEI list by Enrollment Date (in addition to event date, which was already available). The filter will use the lable of the enrollment date when available.

Jira | Screenshot

Changes in Filter names: The previous “Period” filter has been renamed as follows:

  • Date in Home Screen and Event program screen.
  • Event Date in Tracker program screen.
  • Remains as Period for Datasets.


Satellite view in map layers: The user will be able to change the map background to satellite view. Satellite view is available as an option in the map layer dialog. When selected, it will replace the default background image.

Jira | Screenshot

Event layer in TEI program maps: When opening the map view in tracker programs, the program stages with coordinates will be available as layers. When the program stage layer is selected, the events of that stage with coordinates will be displayed in the map in combination with the other layers selected.

Jira | Screenshot

Display TEI Relationships in map view: When opening the map view in tracker programs, the Relationships between TEIs with coordinates will be available as layers. When the Relationship layer is selected, the TEIs with coordinates which are part of that relationship will be displayed in the map in combination with the other layers selected. The direction of the relationships will be represted with an arrow pointing in the corresponding direction. Bi-directional relationshiops will have arrows in both ends.

Users will be able to switch between list and map view from the TEI Dashboard relationships tab.

Jira | Jira 2 | Jira 3 | Jira 4 | Screenshots

Carrousel for navigating Events, TEIs & Relationships in map view: A carousel with TEIs, Events or Relationships cards has been added to the map view. The carousel and the map will respond to the user selection in both directions. If the user selects an object on the map, the carousel will position the corresponding card on the screen. If the user selects a card on the carousel, the map will be centered to the corresponding object in the map and the icon for any selected object in the map will be remarked with a slightly bigger size.

Jira | Jira 2 | Screenshot


Pre select the previous organisation unit when entering events: When creating a new event, either in Tracker or Event Programs, if the user has more than one Organization Unit assigned for data capture, the app will pre-select the Organization Unit that was selected by the user the last time.


Disable grammar spelling in predefined options fields: Grammar spelling is disabled for fields that use option sets or categories. Even if the options have spelling mistakes, the app will not show a warning. This warning is removed because for predefined options the user cannot correct the error even if the app points it out.


Change the color of the long text fields in the forms: Long text value type fields had a darker background. It has been changed to white to align it to other value types.
Jira | Screenshot

Make category options searchable: When creating events in programs or compelting Data Sets with category, having to scroll through long lists without the option to search made data entry slower. The app now will have a search box when there are more than 15 options in the category. This is implemented in the following screens:

  • Event listing category option combo filter
  • Event initial category option selectors
  • Data set listing category option combo filter
  • Data set initial category option selectors
  • TEI dashboard for autogenerated events

Jira | Screenshot


Inherit values when creating TEI for new relationship: When creating a new TEI as part of a relationship, the TEI will inherit any program attribute marked with the Inherit parameter in the tracked entity attribute configuration.



Redesign of Event and TEI cards: The event and TEI cards have been improved and made more intuitive and informative. The cards display now the name of the attribute or data element next to the value for the first three marked to be displayed. It is also possible to expand the card to display the rest of the attributes or data elements, which are shown following the same format. The new cards are available in Tracker programs for the TEI list, the events of the TEI Dashboard and the cards in the maps carousel.

Jira | Screenshot

Improve Data Sets Screen: The Data Set screen has been redesigned, the header information has been simplified and the a tab with the details of the Data Set (Status, Period, Org. Unit) has been aded in the data entry section. The data set will always open in the Data Entry tab.

Jira | Screenshot

Disable horizontal swipe for tabs in Data sets: Horizontal swipe will navigate the user inside the dataset table, but will not navigate the different tabs. User experience was sometimes confusing and resulting in non-voluntary changes of section. Changing sections requires the user to explicitely click on the specific tab in the secion header menu.


Updated Event Status Icons to new design: The new design simplifies the Icons and aligns the aesthetics with the app’s User Interface. All icons are identifible by their shape. Color differentiation is no longer used to add information.

Jira | Screenshot

Updated Sync Icons to new design: The new design removes icons that were only differentiated by color. All icons are identifible by their shape. When an object is already synchronized there is no sync icon displayed.
Jira | Screenshot

Improved Settings Section for Sync parameters from Android settings DHIS2 Webapp: The sync settings sections has been redesigned and expanded to accomodate the settings from the new Android Settings DHIS2 web app. The new Android Settings web app allows you to configure the sync settings for all devices in your implementation. When settings are configured centrally, they will overwrite the settings at device level.

Jira | Web App Announcement | Web App Documentation


Encrypt DB:: The database in the android devices can now be encrtypted to increase the protection of your sensitive information. This is an action that will affect the local database of all android devices synchronizing with your server (it will not encrypt the DHIS2 server database).

By default the android app database is not encrypted, but an admin can check the Encrypt device database in the new Android Settings DHIS2 Webapp to encrypt the data and metadata stored in every device. Encrypting the database will have an impact on the database volume and performance of the android app. Selecting or unselecting this option causes no data loss (even if it hasn’t been previously synchronized with the server).

Jira | Jira SDK| Web App Announcement | Web App Documentation

Extended Error Log: The error log in the app has been expanded to include all errors captured during the use of the app. The error log is available in the Settings Screen and can be share via the default options of any Android smartphone (email, instant messaging applications, SMS, copying text…).

Other Qualit and Performance Improvements

[Maps] Unify map data manager Jira

[Maps] Unify Geometry Utils Jira

[Maps] Library and map view initialization (I) - Library init and structure Jira

[Maps] Library and map view initialization (II) - Map view initialization Jira

[Bitrise][CI] Create a PR reminder that is launch twice a day Jira

[Functional Test][Sync] Datasets Jira

[Functional Test][Sync] Event Jira

[Functional Test][Tei Dashboard] Enrollment Jira

[Functional Test][Sync] Tei Jira

[Performance] Improve home performance Jira


Release Information Link
Download app from Google Play or Github https://www.dhis2.org/install
Documentation and Javadocs https://www.dhis2.org/android-documentation
Details about each feature on JIRA (requires login) 2.2 Features
Overview of bugs fixed on JIRA (requires login) 2.2 Bugs Fixed
Source code on Github https://github.com/dhis2/dhis2-android-capture-app
Demo instance (user/password) https://play.dhis2.org/2.34/ android / Android123
DHIS 2 community https://community.dhis2.org Mobile Community
Source code of SDK on Github SDK 1.2.0
Source code of RuleEngine on Github SDK 2.0.6

Hey Android community,

Can I ask you to test this version (2.2) against your current set up to detect and fix any possible bug as soon as possible?

Thanks a lot for your time!

Thanks Marta.

Is there any plan for a DHIS2 Dashboard App? We are in a hurry to develop one for COVID19. In absence of this app there are several low quality dashboard apps developed locally.

Best regards


1 Like

Hi @jaime.bosque,
some issues :

  • when open “About” “Settings” or other Menu tab and then press the Back phone button nothing happens. When I press it for a second time, it exit from the App. When using the Back button from inside of the Programs, it work properly.
  • when I try to send a Jira Issue (user and pass accepted) and press the Send button - It appears “Error sending issue”.

One question to @marta and the App management: Why the screenshot is disable (as also in the previous versions). There is no security or privacy issue, because you can make an easy photo with another phone… I know that there is a training version, but they are 2 different Apps. For example the normal app I updated from the Google Play Store gave me an error when opened for the first time and it starts functioning correctly only after I cleared not only the cache, but also all data saved from the App. This don’t happens with the training app I downloaded and installed from the GitHub.

Disabling the screenshots it is even more inconvenient for the users when they have to report some problems of the App functioning or some case clarification question from the centers.
Please, reevaluate the possibility to enable the screenshots.

Best regards,

1 Like

Thanks a lot @antonia well noted your feedback regarding the issues.

Regarding the Screenshot: