Fonctionnalités génériques¶
Connexion¶
In version 3.3.0 the login screen was redesigned with a modern interface and improved usability in order to support future OAuth-based two-factor authentication (2FA), ensuring the app is ready for upcoming security improvements.
OAuth login and two-factor authentication are available in version 3.5 and later. See Log in with OAuth.
The first step to the login is to enter the server URL. This can be done in two ways:
-
Manual: The user must type the corresponding URL of the server to be used
Note
Take note that login is only possible with servers from version 2.29.
Note
From version 3.5, you can enter the URL without
https://. If the URL has no scheme, the app addshttps://. If you enterhttp://, the app keeps it. -
QR : l'utilisateur peut utiliser un code QR plutôt que de saisir l'URL, mais le nom d'utilisateur et le mot de passe doivent être saisis manuellement.

Note
The second step and the offline login that follows are for accounts that log in with a username and password. For accounts that log in with OAuth, see Log in with OAuth.
The second step is to add the username and password.

Note
- After a succesful login the DHIS2 Android App will keep these values cached (URL and username) and will suggest them for future connections without having to type them.
After a succesful login the user should be able to perform an offline login only (only avaialble for the last combination of URL/Username). Offline usage gives the possiblity of using the application withou any type of connectivity. All data will still be stored and user can perform a synchornization once the connection is restablished or avaialble.
Warning
In DHIS2 versions up to 2.30 if a user attemps an on-line login and their account has been disabled as explained in the DHIS 2 Manual - Disable User all the data will be wiped from the phone. Make sure that before disabling a user all the data has been synced or that you are using this feature to remotely wipe sensitive data in case of a device getting lost.
Due to a change in the login API this feature is not available from 2.31.
Log in with OAuth (New in 3.5)¶
From version 3.5, you can log in with OAuth. With OAuth, you log in on a page of your server that opens in the browser. You do not enter your password in the app. When you enter the server URL, the app checks the server. OAuth login is available when both of these are true:
- The server runs DHIS2 43 or later.
- OAuth is enabled on the server.
If OAuth is not available, you log in with your username and password, as before.
To log in with OAuth:
- Enter the server URL.
- Click Next.
- On the page that opens in the browser, log in with your username and password.
- If your account has two-factor authentication turned on, enter the code from your authenticator app and click Verify and log in.
- If this is the first time that you log in with the account, the app asks you to create an offline CODE. Enter a 4-digit CODE, and then click Create CODE. You cannot close this step. You must create a CODE before you can use the app.

Note
The CODE is not the PIN. The CODE lets you log in to an account when you have no internet connection. The PIN locks the app session.
Offline login with the CODE¶
When you open the app without an internet connection, the app asks for your CODE. Enter the CODE and click Log in.
After 3 wrong CODEs in a row, the app locks the login for 60 seconds. The screen shows the message Too many attempts. Try again in N seconds. N is the number of seconds that are left, and it counts down.

If you forget your CODE, click Forgot your CODE? To set a new CODE, you must log in with your username and password. You need an internet connection for this. To continue, click Login online.

Offline multi-user (Improved in 3.5)¶
The Manage Accounts screen has been redesigned to align with the updated login experience introduced in version 3.3.0. Saved accounts now appear as clearer, more structured cards that display key information retrieved from each DHIS2 instance. Each card now includes:
- Application title (as configured in System Settings → Appearance)
- Server URL
- Nom d'utilisateur
- Country flag, when configured in System Settings
This redesign improves readability, makes it easier to distinguish between multiple saved accounts, and ensures visual consistency with the new authentication flow.
The users will need to have access to the internet for the first login of each account and will be able to switch accounts after without requiring access to the Internet.
The users will be able to manage the user accounts and delete accounts if needed.
From version 3.5, accounts that log in with OAuth also appear on the Manage accounts screen. The screen does not show the type of an account. To log in, choose an account. If the account logs in with OAuth, the app asks for the CODE. If the account logs in with a username and password, the app asks for the password.
Récupération de compte¶
Les utilisateurs pourront restaurer leur propre mot de passe si ce paramètre est activé : Activer la Récupération du compte d'utilisateur.

From version 3.5, if the server allows account recovery, the Recover account button also appears for accounts that log in with OAuth.
Blocking session (PIN) (Improved in 3.5)¶
User is able to lock the session using a 4 digit PIN. This allows to move to other apps in your phone without deleting the local data.
From version 3.4.0, the screen to create the PIN has a full-screen design.

If the user forgets the PIN number, log in by entering the credentials is also available. After 3 invalid attempts, the app will ask the user to login using the password.

From version 3.5, if the account logs in with OAuth, the app asks for the CODE instead of the password.
Biometrics login¶
User is able to use the fingerprint scanner or face id if the feature is activated in the device. This will only be available if there is only one account (not supported for multple accounts)
- Lorsque le lecteur d'empreintes digitales est activé et non le code PIN, la session est verrouillée à chaque fois que l'application se ferme, passe en arrière-plan ou que l'appareil est bloqué. Lorsque l'application est à nouveau ouverte, l'utilisateur doit appuyer sur l'icône de l'empreinte digitale pour activer le scanner.
- Si le code PIN et l'empreinte digitale sont définis, lorsque la session est verrouillée et que l'utilisateur ouvre à nouveau l'application, le code PIN lui est demandé.

If the biomtric authentication fails, the user will be asked to enter password to finish the login process.

From version 3.5, biometrics also work with accounts that log in with OAuth. As before, biometrics are available only when the app has a single account. With an OAuth account, you can use your fingerprint or face instead of entering the CODE.
If the biometric authentication fails for an OAuth account, the app asks for the CODE.
Boutons d'instructions/informations¶
A contextual guide is available in TEI dashboard screen.

Tip
User is able to re-open the instructions by clicking on the three dots at the top right corner of the screen.
Filtre¶
Un filtre peut être appliqué dans tous les écrans de liste (accueil, liste d'événements, recherche tei et ensembles de données), ce qui réduit les données affichées. Les filtres disponibles sont les suivants : période, unité d'organisation, état de synchronisation, statut de l'événement, combinaison d'options de catégorie et " affecté à moi ".

Les filtres s'adapteront aux différents programmes et ensembles de données.
- Programme sans enregistrement : Date, Unité d'Organisation, État de Synchronisation, État de l'Événement et Combinaison de Catégories.
- Programme avec inscription : Date de l'événement, Date de l'inscription, Unité d'org. , Synchronisation, Statut de l'inscription, Statut de l'événement et Affecté à moi. L'icône de filtre ne s'affichera que si une liste d'événements est disponible (affichage de la fonction de liste de la page d'accueil ou recherche).
- Ensembles de données : Période, Unité d'Org. , et État de synchronisation.
Affecté à moi{ #capture_app_generic_filter_assigned }¶
Il est possible de filtrer les événements en fonction de leur affectation à l'utilisateur actuel. Le filtre " Affecté à moi " a été ajouté à la liste des programmes d'événements individuels, à la liste des TEI, au tableau de bord des TEI et aux vues cartographiques. Il ne s'affiche que lorsque le programme actif est configuré pour attribuer des événements à des utilisateurs.
Note The Android app can only filter and display events by their existing assignment. Assigning or reassigning a user to an event must be done from the web Capture app or Tracker Capture app — this is not currently supported within the Android app itself.
Date de l'événement/Date/Période¶
Filtrez les événements, les TEI (sur la base de leurs événements) et les ensembles de données, les périodes suivantes sont disponibles : - Aujourd'hui - Cette semaine - Ce mois - Hier - Semaine dernière - Mois dernier - Demain - Semaine prochaine - Mois prochain - De - à - Autre (ouvre un sélecteur de date) - À tout moment
Unité d'Organisation¶
Permet à l'utilisateur de saisir la recherche ou de sélectionner une unité d'organisation dans l'arborescence. Le filtre ne sera pas visible si l'utilisateur n'a configuré qu'une seule unité d'organisation.
Syncronisation¶
Filtrer par : - Synchronisés (Événements, TEI, Ensembles de données) - Non synchronisé - Erreur de synchronisation - SMS Synchronisé
Status de l'Evenement¶
Filtrer les événements en fonction de : - Ouvrir - Horaire - Retard - Terminée - Ignoré
La sélection de plusieurs statuts est autorisée. Lorsque vous ouvrez un TEI, le filtre est conservé dans le tableau de bord et n'affiche que les événements ayant l'état sélectionné.
Les événements affichés ont jusqu'à 5 ans d'âge.
Date d'inscription¶
La " Date d'inscription " s'applique à la date d'inscription du TEI dans le programme. S'il y a plusieurs dates d'inscription, les résultats seront triés en fonction de la date la plus récente. L'étiquette de ce filtre s'affichera lorsqu'elle sera disponible.
Statut de l'inscription¶
The filter 'Enrollment status' offers three options: Active, Completed, Cancelled. Only one option can be selected at time. If you filter by "completed" and the TEI has more than one enrollment, the app will open the "active" enrollment. To see the completed one, select the three dot menu at the top right corner of the dashboard and select "program enrollments".
Follow-Up¶
Le filtre "Suivi" permet à l'utilisateur de filtrer les TEI qui ont été marqués comme "Suivi". Les TEI peuvent être marqués comme devant faire l'objet d'un suivi dans le tableau de bord des TEI.
Filtrage ajouté dans le tableau de bord TEI :¶
Des filtres ont été ajoutés au tableau de bord du TEI. Il est possible de filtrer les événements d'une inscription d'entité suivie par période, par unité d'organisation, par statut de synchronisation, par statut d'événement et par affectation d'utilisateur.

Triage¶
Le tri a été intégré dans le menu filtre.
Le bouton de tri se trouve sur les barres de filtre et se présente de la manière suivante : - Un seul tri s'applique à la fois. Si l'utilisateur clique sur un autre tri, le précédent se désactive. - The icon for applied sorting shows it is active, the others are inactive.
- Des clics répétés modifient l'ordre en l'inversant.

Dates (période, date, date d'événement ou date d'inscription)¶
- La date de l'événement précède la date d'échéance, n'utilisez la date d'échéance que lorsqu'il n'y a pas de date d'événement.
- L'ordre va du plus récent au moins récent. Les événements à venir (date d'échéance) sont placés en premier.
Unité d'Organisation¶
- La liste sera triée par ordre alphabétique du nom de l'unité d'organisation.
Statut de l'inscription¶
- La liste sera triée par ordre alphabétique du nom du statut.

Informations sur la synchronisation¶
Login Sync¶
Pendant le téléchargement des métadonnées, l'application demeure dans l'écran de démarrage et ouvre l'écran d'accueil une fois que les métadonnées sont dans l'appareil.
Sur l'écran d'accueil, l'application informe du téléchargement des données à l'aide d'un indicateur de chargement sur chaque programme. Une fois le processus de synchronisation terminé, l'application affichera l'une des deux icônes possibles :
- A green checkmark if the program downloads data successfully and without errors (the icon will disappear after three seconds) or,
- Une flèche grise s'il y a une erreur pendant le processus de synchronisation et que les données entières ou partielles ne sont pas téléchargées.
L'utilisateur pourra voir combien de programmes sont en train de télécharger des données ou ont terminé, ce qui rendra le processus d'attente plus transparent et plus informatif quant à sa progression.

REMARQUE: Tous les programmes et ensembles de données seront bloqués jusqu'à ce que le processus de synchronisation soit entièrement terminé.
Subsequent logins¶
L'application lancera un processus de synchronisation des données et des métadonnées uniquement lors de la première connexion de l'utilisateur. Afin de faciliter le travail dans les cas les plus difficiles, le processus de synchronisation a été supprimé pour les connexions subséquentes. Cela signifie que lorsque l'utilisateur ouvre l'application, celle-ci s'ouvrira sans effectuer une synchronisation complète, même si l'utilisateur se déconnecte du compte.
Si l'utilisateur supprime le compte, la prochaine connexion lancera le processus de synchronisation.
En outre, les utilisateurs ont la possibilité de se synchroniser avec le serveur à l'aide du bouton Actualiser lorsqu'ils le souhaitent.
Statut de la synchronisation¶
Une icône s'affiche devant chaque programme ou ensemble de données pour permettre à l'utilisateur de vérifier les informations relatives à la synchronisation. Les enregistrements synchronisés n'affichent aucune icône. Les icônes de non-synchronisation (flèches grises), d'erreur (flèches rouges), d'avertissement (orange) ou de SMS (bleu avec le mot SMS à l'intérieur) s'affichent en fonction du statut.

Synchronisation granulaire¶
Les utilisateurs peuvent cliquer sur les flèches grises (qui désignent les enregistrements stockés en ligne dans l'appareil) pour effectuer une synchronisation. Ces options sont disponibles au niveau supérieur (programmes/ensembles de données) ou individuellement (TEI, événements, valeurs de données).

Synchronisation des SMS¶
When there is no Internet conection (either via WiFi or Mobile Data) but there is still mobile conectivity, users can synchronize via SMS if the gateway has been previously established in the app and properly configured at server level.
Si l'application a été téléchargée à partir de Google Play, les utilisateurs devront envoyer manuellement le SMS à partir de leur application SMS par défaut (leur application SMS par défaut s'ouvrira avec le message rédigé). Les utilisateurs doivent envoyer le message sans le modifier, puis revenir à l'application DHIS2 pour confirmer l'envoi du message.

Cependant, si l'application a été téléchargée depuis Github (ou si la version de démonstration est utilisée), l'application demandera simplement une confirmation pour envoyer un ou plusieurs messages (SMS) et les enverra en arrière-plan (sans ouvrir l'application SMS par défaut).

Tip
Edit parameters related to SMS gateway in the SMS Settings (Settings Menu) or set this globally via the #capture_app_android_settings_webapp_general

Note
Note that in order to user the SMS sync capabilities the SMS services needs to be enabled in the server side as described in the https://docs.dhis2.org/master/en/dhis2_user_manual_en/mobile.html#sms-service. You can also find more information on how to use different gateways in the https://docs.dhis2.org/master/en/dhis2_android_implementation_guideline/about-this-guide.html
Erreur de synchronisation des meta-données¶
En cas d'erreur dans le processus de synchronisation, un message s'affiche dans le menu des paramètres (section "Synchroniser des données" ou "Synchroniser la configuration"). De plus, une icône de synchronisation rouge s'affiche à côté du programme sur l'écran d'accueil. Le journal des erreurs de synchronisation fournit des détails sur l'erreur et peut être partagé avec les administrateurs.

Vous pouvez également ouvrir le journal des erreurs de synchronisation en cliquant sur Paramètres :

Actualiser les données¶
Les utilisateurs peuvent désormais récupérer les données les plus récentes du serveur avant d'introduire de nouvelles données. Un bouton d'actualisation permet désormais de déclencher une synchronisation granulaire dans les écrans suivants :
- Accueil
- Recherche
- Tableau de bord des TEI
- Liste des programmes d'événement
- Détails sur l'événement
- Liste des ensembles de données
- Détails de l'ensemble des données

Org unit (Improved in 3.5)¶
The organisation unit selector lists the organisation units that you can use. To choose a unit, choose its checkbox, and then click Done. The app shows the name of each unit that you choose in bold. The number of units that you can choose depends on where you open the selector:
- In a filter, you can choose several units. The name of each parent of a chosen unit is also bold. Next to the name of a parent, the number in brackets shows how many of its units are selected. These marks show you where your selection is.
- In data entry, you can choose only one unit at a time. When you choose a unit, the app clears the checkbox of the previous one.
The selector does not show organisation units that are not available for data entry. It also does not show the parents of these units.

Search for an organisation unit¶
To search for an organisation unit:
- In the selector, click the Search field.
- Enter at least two characters of the name. The list shows the units that match.
- Choose the checkbox of the unit that you want.
- Click Done.
To remove all selected units, click Clear all.
Identify units that have the same name (New in 3.5)¶
Two organisation units can have the same name. From version 3.5, when the same name appears more than once in the list, the app adds a tag next to the name. The tag shows the name of a higher unit in the hierarchy. Use the tag to identify each unit.

The app adds the tag only when both of these are true:
- The same name appears more than once in the list.
- The parent of the unit is not in the list. This is common in search results.
When you browse the full hierarchy, if the parent of each unit is in the list, the app does not add a tag.
If the parents of the units also have the same name, the tag shows the name of the first higher unit that is not the same for all the units in the list. The app starts from the top of the hierarchy.
When a name is long, the tag appears below the name. When there is room, the tag appears next to the name. To read a long name, scroll the list horizontally.
Caution
Mobile users are not expected to access the org. unit hierarchy of a whole country. Maximum number of org units is difficult to set, as the App does not set the limit, but the resources on the device (memory, processor). We could say below 250 org units should be safe, but still believe that is a very big number for a mobile use case.
Ensembles de données¶
L'utilisateur peut maintenant saisir des données agrégées pour une unité d'organisation, une période et un ensemble d'éléments de données et les envoyer au serveur.

Home¶
The home screen of the DHIS2 Android App shows the list of programs and data sets available for the user. The first thing the user does when collecting data in this case is to select the program or data set to work with.
In 3.1.0, a new dynamic home screen that adapts to the number of programs (up to 4 programs) available has been implemented. This update replaces the old static list that didn’t adjust to the screen, providing a more responsive and user-friendly interface.The responsive design makes better use of screen real estate, providing a more engaging and functional home screen layout.

Tip
An easy way to differentiate them is by looking at the word at the bottom left corner. The word 'Event' will always be in event programs. In tracker will appear the name of the tracked entity type (person, patient, building, etc.). For data sets, the word 'DataSets' will be shown next to the number of records.
For those implementations where the users have access to only one program or dataset, the App will skip the home and will open directly the program or datasaset screen with the event, TEI or dataset list to reduce the number of clicks and streamline the process of data entry.

Partage de données¶
Users can share TEI via QR codes. This allows transferring/sharing information between devices without the need of transferring via the server (useful when connecitivity might be missing). To do this users should open any TEI and click on the SHARE button.

Coordonnées de saisie¶
Coordonnées TEI{ #capture_app_generic_capture_coord_tei }¶
Capture the TEI coordinates in the registration form. Enable this feature in the TET feature type.

Polygones¶
L'application prend désormais en charge le format geoJSON et l'utilisateur peut saisir des polygones.

Images¶
L'image ValueType peut être utilisée dans Android pour saisir des données et aussi, selon la configuration du programme, pour être affichée dans le tableau de bord TEI. Lorsque ce type de valeur est le premier élément de données/attribut marqué comme affiché dans la configuration du programme, il sera utilisé comme image de profil TEI.

Ouvrez l'image du profil TEI en cliquant dessus.

Image quality (New in 3.5)¶
When you take or choose a picture for an image field, the app prepares the picture before it sends it to the server. Before version 3.5, the app reduced pictures to 512 pixels on the longest side. From version 3.5, the app changes a picture only in these cases: the file is larger than 600 KiB (614,400 bytes), or the server does not accept the format of the picture, such as WebP. The app then saves the picture as a JPEG with quality 85, or as a PNG if the picture has transparency. If the file is still larger than 600 KiB, the app reduces the resolution until the file fits. The app does not reduce the longest side below 256 pixels, so a very large picture can stay above the limit. If the new file is not smaller than the original and the server accepts the original format, the app keeps the original.
The admin can ask for the original quality for some image fields. For these fields, the app sends the picture as it is. It does not make the file smaller, and it does not convert it. To ask for the original quality, in the Android Settings Web App:
- Open Synchronization > Programs, or Synchronization > Data sets.
- Add the specific setting of the program or the data set, or open the existing one.
- In Maximum quality images, click the list. The list shows only the items of type image.
- Choose each data element or attribute whose pictures the app must send at full quality.
- Cliquez sur Sauvegarder.
The other image fields use the default quality. For more details, see Maximum quality images.

Pictures that are not downloaded¶
A field can have a value even when the app did not download the picture. For example, this happens when the picture is larger than the file size limit that the admin sets in the Android Settings Web App. From version 3.5, the field then shows an image icon with a line across it, so you can see that the field is not empty.
You can still delete the image and upload a new one.

Afficher les événements et les TEI sur des cartes¶
Lorsqu'une étape du programme ou un type d'entité suivi possède un type de caractéristique (et pour les programmes avec enregistrement, l'option "affichage de la liste de la page d'accueil" est activée), les listes peuvent être modifiées afin d'afficher les informations sur une carte. Pour ce faire, cliquez sur l'icône de la carte dans le panneau de navigation.

Si le TEI dispose d'une image de profil, la carte l'affichera.

Vue personnalisé du calendrier{ #capture_app_personalized_calendar }¶
Dans l'application de Android Capture du DHIS2, les utilisateurs peuvent passer de la sélection de la date à l'affichage du calendrier. Dans cette version, l'application se souviendra de la dernière visualisation sélectionnée par l'utilisateur et l'utilisera la prochaine fois que l'utilisateur devra sélectionner une date.

Raison pour laquelle les données ne sont pas modifiables{ #capture_app_reason_non_editable }¶
Les données peuvent être bloquées dans le DHIS2 pour de nombreuses raisons, notamment en raison de restrictions d'accès ou d'expiration. Lorsqu'un événement, une TEI ou un ensemble de données n'est pas modifiable, l'utilisateur pourra trouver la raison dans la section "Détails".
La liste suivante contient toutes les raisons possibles :
- Fin de l'événement
- Fin de l'inscription
- Événement expiré
- Unité d'organisation fermée
- Unité d'organisation hors du champ de la saisie
- Aucun accès à la saisie des données dans le programme ou l'ensemble de données
- Aucun accès à une option de catégorie dans le programme ou l'ensemble de données

Résolution des problèmes de configuration¶
The Configuration Troubleshooting feature is available only in the DHIS2 Android Training App. It is not included in the production version of the Capture App.
This tool is intended for administrators and implementers who need to test and troubleshoot program rules or translations during setup or training. It does not require a special user role or authority.
You can download the latest version of the DHIS2 Android Training App (APK) from the DHIS2 Training App on GitHub (look for the APK labeled Training).

- Langue: l'utilisateur pourra changer la langue de l'interface utilisateur de l'application afin d'identifier les étiquettes, les boutons ou les invites avec des erreurs ou sans traduction.

- Validation des règles du programme: ce validateur vérifie les règles du programme dans l'appareil et affiche les incohérences de configuration.

Error Navigation¶
The Android App has improved the navigation of sync errors on the user interface. The app will display the sync errors in a simple and clean manner allowing the user to navigate from the home screen to the exact field that is causing the error inside the event or data set.

User must tap on any of the errors listed and the app will move to the correspondent screen. Once the error is located and fixed, the user can synced by tapping on the "Refresh" button.

LMIS Module¶
The new module for real stock monitoring use case enables users to manage and monitor their stock levels in real-time. Integrating a module implies that the app will open a completely new and different user interface and experience to respond to a different data entry flow. To use this modules the program will need to be configured using the new web app for program use case configuration.

Event upload behavior¶
The Android app will upload events with status COMPLETED by default. If the program configuration prevents the event from being completed on the server (for example, due to mandatory data elements or “error on complete” program rules), the app will upload the event with status ACTIVE instead. This prevents failed uploads caused by server side misconfiguration while still ensuring that data is sent.
Event ordering alignment across platforms¶
From version 3.4.0, event ordering is aligned across web, Android, and API sources. As a result, events are processed in the correct sequence during synchronization. This improves data consistency and makes calculations more reliable across the system.