Data¶
Data Approval¶
Cette section explique comment approuver, annuler l’approbation et vérifier le statut d’approbation à l’aide de la ressource “dataApprovals” . L’approbation est effectuée par “workflow” d’approbation des données, période, unité d’organisation et combinaison d’options d’attribut.
Pour obtenir des informations d’approbation pour un ensemble de données, vous pouvez émettre une requête GET :
Exemple:
status |
Time |
Size |
200 OK |
3.15 s |
570 B |
{ "mayApprove": false, "mayUnapprove": false, "mayAccept": false, "mayUnaccept": false, "mayReadData": true, "state": "UNAPPROVED_ABOVE" }
paramètre de requête |
Requis |
Description |
---|---|---|
wf |
Yes |
Identifiant de data approval workflow |
pe |
Yes |
Identifiant de period |
ou |
Yes |
Identifiant d’organisation unit |
aoc |
No |
Identifiant d’attribute option combination |
paramètre de retour |
Description |
---|---|
mayApprove |
Indique si l’utilisateur actuel peut approuver cette sélection de données. |
mayUnapprove |
Indique si l’utilisateur actuel peut désapprouver cette sélection de données. |
mayAccept |
Indique si l’utilisateur actuel peut accepter cette sélection de données. |
mayUnaccept |
Indique si l’utilisateur actuel peut refuser cette sélection de données. |
state |
L’un des états d’approbation des données du tableau ci-dessous. |
États d’approbation des données
État |
La description |
---|---|
NON APPROUVABLE |
L’approbation des données ne s’applique pas à cette sélection. (Les données ne sont ni approuvées ni non approuvées.) |
UNAPPROVED_WAITING |
Les données pourraient être approuvées pour cette sélection, mais attendent une approbation de niveau inférieur avant d’être prêtes à être approuvées. |
UNAPPROVED_ELSEWHERE |
Les données ne sont pas approuvées et sont en attente d’approbation ailleurs (non approuvables ici.) |
NON APPROUVÉ_PRÊT |
Les données ne sont pas approuvées et sont prêtes à être approuvées pour cette sélection. |
APPROUVÉ_ICI |
Les données sont approuvées et ont été approuvées ici (elles pourraient donc ne pas être approuvées ici.) |
APPROVED_ELSEWHERE |
Les données sont approuvées, mais n’ont pas été approuvées ici (elles ne peuvent donc pas être non approuvées ici.) Cela couvre les cas suivants : |
|
|
|
|
|
|
Dans les deux premiers cas, il existe un seul objet d’approbation de données qui couvre la sélection. Dans le troisième cas, il n’y en a pas. |
|
ACCEPTÉ_ICI |
Les données sont approuvées et acceptées ici (elles pourraient donc ne pas être approuvées ici.) |
ACCEPTED_ELSEWHERE |
Les données sont approuvées et acceptées, mais ailleurs. |
Pour les ensembles de données associés à une combinaison de catégories, vous pouvez extraire des enregistrements d’approbation de données pour des combinaisons d’options d’attributs individuels à partir de la ressource suivante avec une requête GET :
status |
Time |
Size |
200 OK |
4.79 s |
852 B |
[ { "level": {}, "ou": "xxxxxxxxxxx", "permissions": { "mayApprove": false, "mayUnapprove": false, "mayAccept": false, "mayUnaccept": false, "mayReadData": true }, "accepted": false, "id": "xxxxxxxxxxx", "ouName": "Kelilalina" } ]
Obtenir en masse le statut d’approbation
Pour obtenir une liste de plusieurs statuts d’approbation, vous pouvez émettre une requête GET semblable à celle-ci :
status |
Time |
Size |
200 OK |
1246 ms |
757 B |
[ { "wf": "xxxxxxxxxxx", "pe": "201801", "ou": "xxxxxxxxxxx", "aoc": "xxxxxxxxxxx", "state": "UNAPPROVED_ABOVE", "permissions": { "mayApprove": false, "mayUnapprove": false, "mayAccept": false, "mayUnaccept": false, "mayReadData": true } } ]
Champ |
Description |
---|---|
aoc |
Identificateur de combinaison d’options d’attribut |
pe |
Period identifiant |
ou |
Organisation Unit identifiant |
permissions |
Les autorisations : “mayApprove”, “mayUnapprove”, “mayAccept”, “mayUnaccept” et “mayReadData” (mêmes définitions que pour obtenir le statut d’approbation unique). |
State |
L’un des états d’approbation des données (identique à l’obtention d’un statut d’approbation unique.) |
wf |
Identifiant du workflow d’approbation des données |
1- Data Approval workflow¶
Un workflow de validation des données est associé à plusieurs entités :
Un type de période qui définit la fréquence d’approbation
Une combinaison de catégories facultative
Un ou plusieurs niveaux d’approbation des données faisant partie du workflow
Un ou plusieurs ensembles de données utilisés pour la collecte de données
Pour récupérer les workflows d’approbation des données et leurs niveaux d’approbation des données, vous pouvez effectuer une requête GET semblable à celle-ci :
status |
Time |
Size |
200 OK |
3.40 s |
729 B |
{ "dataApprovalWorkflows": [ { "id": "xxxxxxxxxxx", "displayName": "RMA Suivi" }, { "id": "xxxxxxxxxxx", "displayName": "TB Suivi" } ] }
Obtenir les niveaux d’approbation des données
Pour récupérer les workflows d’approbation des données et leurs niveaux d’approbation des données, vous pouvez effectuer une requête GET semblable à celle-ci :
status |
Time |
Size |
200 OK |
679 ms |
1.03 KB |
{ "dataApprovalWorkflows": [ { "name": "RMA Suivi", "periodType": "Monthly", "dataApprovalLevels": [ { "name": "District", "id": "xxxxxxxxxxx", "level": 2, "orgUnitLevel": 3 }, { "name": "Région", "id": "xxxxxxxxxxx", "level": 1, "orgUnitLevel": 2 }, { "name": "FS", "id": "xxxxxxxxxxx", "level": 3, "orgUnitLevel": 5 } ] } ] }
2- Data Approval Levels¶
Donne les niveaux d’approbation des données ou « Data approval levels » qui sont pertinents pour l’utilisateur actuel :
La réponse sera semblable à celle-ci :
status |
Time |
Size |
200 OK |
383 ms |
667 B |
{ "dataApprovalLevels": [ { "id": "xxxxxxxxxxx", "displayName": "District" }, { "id": "xxxxxxxxxxx", "displayName": "FS" }, { "id": "xxxxxxxxxxx", "displayName": "Région" } ] }
status |
Time |
Size |
200 OK |
4.79 s |
852 B |
[ { "level": {}, "ou": "xxxxxxxxxxx", "permissions": { "mayApprove": false, "mayUnapprove": false, "mayAccept": false, "mayUnaccept": false, "mayReadData": true }, "accepted": false, "id": "xxxxxxxxxxx", "ouName": "Kelilalina" } ]
Les champs renvoyés sont décrits dans le tableau ci-dessous.
Champ
Description
aoc
Identificateur de combinaison d’options d’attribut
pe
Period identifier
ou
Organisation Unit identifier
permissions
Les autorisations : “mayApprove”, “mayUnapprove”, “mayAccept”, “mayUnaccept” et “mayReadData” (mêmes définitions que pour obtenir le statut d’approbation unique).
State
L’un des états d’approbation des données (identique à l’obtention d’un statut d’approbation unique.)
wf
Identifiant du workflow d’approbation des données
Data Element¶
1- Data Element Group Sets¶
status |
Time |
Size |
200 OK |
2.13 s |
873 B |
{ "dataElementGroupSets": [ { "id": "xxxxxxxxxxx", "displayName": "Cadre de performance" }, { "id": "xxxxxxxxxxx", "displayName": "Partenaires" }, { "id": "xxxxxxxxxxx", "displayName": "PROGRAMMATION" }, { "id": "xxxxxxxxxxx", "displayName": "RMA CSB" } ] }
2- Data Element Groups¶
status |
Time |
Size |
200 OK |
532 ms |
4.48 KB |
{ "dataElementGroups": [ { "id": "xxxxxxxxxxx", "displayName": "COM Tab10 - Gestion financière" }, { "id": "xxxxxxxxxxx", "displayName": "COM Tab11 - Surveillance" }, { "id": "xxxxxxxxxxx", "displayName": "RMA CHRD T16 ACTIVITÉS DE LABORATOIRE" } ] }
3- Data Element Operands¶
status |
Time |
Size |
200 OK |
3.90 s |
39.43 KB |
{ "dataElementOperands": [ { "id": "xxxxxxxxxxx", "name": "Alarmes Negatifs au cours du mois", "shortName": "Alarmes Negatifs au cours du mois", "aggregationType": "SUM", "displayName": "Alarmes Negatifs au cours du mois", "displayShortName": "Alarmes Negatifs au cours du mois", "externalAccess": false, "periodOffset": 0, "dimensionItem": "xxxxxxxxxxx.xxxxxxxxxxx", "displayFormName": "Alarmes Negatifs au cours du mois", "favorite": false, "dimensionItemType": "DATA_ELEMENT_OPERAND", "access": { "read": true, "update": true, "externalize": false, "delete": true, "write": true, "manage": true }, "categoryOptionCombo": { "id": "xxxxxxxxxxx" }, "dataElement": { "id": "xxxxxxxxxxx" }, "favorites": [], "translations": [], "userGroupAccesses": [], "attributeValues": [], "userAccesses": [], "legendSets": [] } ] }
4- Data Elements¶
status |
Time |
Size |
200 OK |
639 ms |
4.94 KB |
{ "dataElements": [ { "id": "xxxxxxxxxxx", "displayName": "Alarmes Negatifs au cours du mois" }, { "id": "xxxxxxxxxxx", "displayName": "Alarmes Positifs au cours du mois" }, { "id": "xxxxxxxxxxx", "displayName": "ANH_Nombre des hopitaux disposant de support des informations pour les accompagnants" } ] }
Vous pouvez rechercher des éléments sur la propriété name au lieu de renvoyer une liste complète d’éléments à l’aide de la variable de requête query. Dans cet exemple, nous recherchons tous les éléments de données dont le nom contient le mot « menstruel » :
status |
Time |
Size |
200 OK |
2.52 s |
666 B |
{ "dataElements": [ { "id": "xxxxxxxxxxx", "displayName": "HOSP-T5-3.1-Trouble menstruel" }, { "id": "xxxxxxxxxxx", "displayName": "HOSP-T8-III.1-Trouble menstruel" } ] }
5- Min Max data element¶
La ressource d’éléments de données min-max vous permet de définir des plages de valeurs minimales et maximales pour les éléments de données. Il est unique par la combinaison de l’unité d’organisation, de l’élément de données et de la combinaison d’options de catégorie.
status |
Time |
Size |
200 OK |
702 ms |
1.82 KB |
{ "minMaxDataElements": [ { "min": 1, "generated": false, "max": 70000, "dataElement": { "id": "xxxxxxxxxxx" }, "source": { "id": "xxxxxxxxxxx" }, "optionCombo": { "id": "xxxxxxxxxxx" } } ] }
Data Entry Forms¶
En ce qui concerne les formulaires de saisie de données personnalisés, cette ressource permet également de créer de tels formulaires directement pour un ensemble de données.
status |
Time |
Size |
200 OK |
1879 ms |
2.82 KB |
{ "dataEntryForms": [ { "id": "xxxxxxxxxxx", "displayName": "Ancien RMA COM" }, { "id": "xxxxxxxxxxx", "displayName": "CHANNEL/FANOME Situation intrant au niveau SDSP" }, { "id": "xxxxxxxxxxx", "displayName": "Test Somme Tab 4 et 6" } ] }
Data Set¶
La ressource dataSets suit les conventions standard comme les autres ressources de métadonnées dans DHIS2. Cette ressource prend en charge certains paramètres de requête supplémentaires.
1- Data sets¶
Pour récupérer L’ensemble de données, vous pouvez émettre une requête GET :
status |
Time |
Size |
200 OK |
2.06 s |
1.78 KB |
{ "dataSets": [ { "id": "xxxxxxxxxxx", "displayName": "Ancien RMA COM" }, { "id": "xxxxxxxxxxx", "displayName": "CSB/RMA 1_Consultation externe (Tableau 3, 4 et 5)" }, { "id": "xxxxxxxxxxx", "displayName": "CSB/RMA 2_Depistage et prise en charge ( Tableau 6 et 7)" }, { "id": "xxxxxxxxxxx", "displayName": "CSB/RMA 3_Surveillance Nutritionnelle des enfants de < 5 ans (Tableau 8)" }, { "id": "xxxxxxxxxxx", "displayName": "CSB/RMA 4_Sante maternelle et infantile (Tableau 9, 10, 11 et 12)" } ] }
Pour récupérer la version d’un ensemble de données, vous pouvez émettre une requête GET :
Exemple:
status |
Time |
Size |
200 OK |
1944 ms |
411 B |
{
"version":1
}
2- Data Set Notification Templates¶
Data Set Notification Templates suit les conventions standard comme les autres ressources de métadonnées dans DHIS2.
Un exemple de charge utile JSON est donné ci-dessous :
status |
Time |
Size |
200 OK |
704 ms |
546 B |
{
"dataSetNotificationTemplates": []
}
Pour récupérer le modèle de notification d’ensemble de données, vous pouvez émettre une requête GET :
3- Data set report¶
Les rapports sur les ensembles de données peuvent être générés via l’API Web à l’aide de la /dataSetReportressource. Cette ressource génère des rapports sur l’ensemble de données et renvoie le résultat sous la forme d’un tableau HTML.
Paramètres de requête de rapport d’ensemble de données
Paramètre |
La description |
Taper |
Obligatoire |
---|---|---|---|
ds |
Ensemble de données à partir duquel créer le rapport. |
UID de l’ensemble de données |
Oui |
pe |
Période à partir de laquelle créer le rapport. |
Chaîne ISO |
Oui |
ou |
Unité d’organisation à partir de laquelle créer le rapport. |
UID de l’unité d’organisation |
Oui |
filter |
Filtres à utiliser comme filtres pour le rapport. Peut être répété n’importe quel nombre de fois. Suit la syntaxe de l’API d’analyse. |
Un ou plusieurs UID |
Non |
selectedUnitOnly |
S’il faut utiliser uniquement des données capturées ou des données agrégées. |
booléen |
Non |
Data values¶
Cette section concerne l’envoi et la lecture de valeurs de données.
Envoi de valeurs de données¶
Pour envoyer des valeurs de données, vous pouvez envoyer une requête POST à la ressource suivante.
Lecture des valeurs de données¶
Pour lire des valeurs de données, vous pouvez envoyer une requête GET à la ressource suivante.
Les valeurs de données peuvent être récupérées au format XML , JSON , CSV et ADX . Puisque nous voulons lire des données, nous utiliserons le verbe GET HTTP. Nous préciserons également que nous nous intéressons à la représentation des ressources XML en incluant un Accepten-tête HTTP avec notre requête. Les paramètres de requête suivants sont acceptés :
Paramètres de requête d’ensemble de valeurs de données
Paramètre |
La description |
---|---|
dataSet |
Identifiant de l’ensemble de données. Peut être répété n’importe quel nombre de fois. |
dataElementGroup |
Identificateur de groupe d’éléments de données. Peut être répété un certain nombre de fois (non pris en charge pour ADX). |
period |
Identifiant de période au format ISO. Peut être répété n’importe quel nombre de fois. |
startDate |
Date de début de la période des valeurs à exporter. |
endDate |
Date de fin de la période des valeurs à exporter. |
orgUnit |
Identifiant de l’unité d’organisation. Peut être répété n’importe quel nombre de fois. |
children |
S’il faut inclure les enfants dans la hiérarchie des unités d’organisation. |
orgUnitGroup |
Identifiant du groupe d’unités d’organisation. Peut être répété n’importe quel nombre de fois. |
attributOptionCombo |
Identificateur de combinaison d’options d’attribut. Peut être répété n’importe quel nombre de fois. |
includeDeleted |
S’il faut inclure les valeurs de données supprimées. |
lastUpdated |
N’incluez que les valeurs de données mises à jour depuis l’horodatage donné. |
lastUpdatedDuration |
N’incluez que les valeurs de données qui sont mises à jour pendant la durée donnée. Le format est <value><time-unit>, où les unités de temps prises en charge sont « d » (jours), « h » (heures), « m » (minutes) et « s » (secondes). |
limit |
Le nombre maximum de résultats dans la réponse. |
dataElementIdScheme |
Propriété de l’objet d’élément de données à utiliser pour les valeurs de données en réponse. |
orgUnitIdScheme |
Propriété de l’objet d’unité organisationnelle à utiliser pour les valeurs de données en réponse. |
categoryOptionComboIdScheme |
Propriété de la combinaison d’options de catégorie à utiliser pour les valeurs de données en réponse. |
attributOptionComboIdScheme |
Propriété des objets combinés d’options d’attribut à utiliser pour les valeurs de données en réponse. |
dataSetIdScheme |
Propriété de l’objet d’ensemble de données à utiliser dans la réponse. |
categoryIdScheme |
Propriété de l’objet catégorie à utiliser dans la réponse (ADX uniquement). |
categoryOptionIdScheme |
Propriété de l’objet d’option de catégorie à utiliser dans la réponse (ADX uniquement). |
idScheme |
Propriété de l’un des objets ci-dessus s’ils ne sont pas spécifiés, à utiliser dans la réponse. S’il n’est pas spécifié, l’idScheme par défaut pour ADX est code, et pour tous les autres formats est uid. |
inputOrgUnitIdScheme |
Propriété d’identification utilisée pour les orgUnit valeurs de paramètre fournies |
inputDataSetIdScheme |
Propriété d’identification utilisée pour les dataSet valeurs de paramètre fournies |
inputDataElementGroupIdScheme |
Propriété d’identification utilisée pour les dataElementGroupvaleurs de paramètre fournies |
inputIdScheme |
Propriété d’identification utilisée pour l’une des valeurs de paramètre fournies , sauf si dataSet l’un des trois schémas ci-dessus remplace explicitement cette entrée par défaut |
Pour récupérer des valeurs de données qui ont été créées ou mises à jour au cours des 10 derniers jours, vous pouvez faire une requête comme celle-ci :
Vous pouvez demander les données au format JSON, CSV comme ceci :
Data stores¶
À l’aide de la ressource dataStore, les développeurs peuvent stocker des données arbitraires pour leurs applications. L’accès à la clé d’une banque de données est basé sur ses paramètres de partage. Par défaut, toutes les clés créées sont accessibles publiquement (lecture et écriture). De plus, l’accès à l’espace de noms d’un magasin de données est limité à l’accès de l’utilisateur à l’application correspondante, si l’application a réservé l’espace de noms. Par exemple, un utilisateur ayant accès à l’application « sampleApp » pourra également utiliser l’espace de noms sampleApp dans le magasin de données. Si un espace de noms n’est pas réservé, aucun accès spécifique n’est requis pour l’utiliser.
status |
Time |
Size |
200 OK |
2.02 s |
650 B |
[ "taskr", "epiApp", "dashboard-settings", "malariaSoreCardTest", "bridge", "malariaSoreCard", "qualitydashboard", "bna-intervention", "HMIS_Dictionary", "data-filter-groups", "scorecards", "dataQualityTool", "legendSets" ]
Pour une liste de toutes les clés d’un espace de noms :
status |
Time |
Size |
200 OK |
1799 ms |
455 B |
[
"xxxxxxxxxxx"
]
Pour récupérer une valeur pour une clé existante à partir d’un espace de noms :
status |
Time |
Size |
200 OK |
2.23 s |
720 B |
{ "id": "xxxxxxxxxxx", "code": "\n// press crtl-r to run\nconst api = await dhis2.api();\nconst ou = await api.get(\"organisationUnits\", {\nfields: \"id,name,coordinates\",\npaging: false\n});\nreturn ou.organisationUnits\n", "name": "New - ", "report": "", "editable": true }