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ètres de requête d’approbation des données ou « Data approval query parameters »

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ètres renvoyés par l’approbation des données

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.

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
            }
        }
    ]

Les champs renvoyés sont décrits dans le tableau ci-dessous.

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"
            }
        ]
    }

GET https://ministere-sante.mg/api/dataApprovals/approvals?wf=FvzalAKHBxp&pe=201801,201802&ou=tHhNGMv20B3

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": []
}

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.

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 :

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
    }