Configurer la fonctionnalité de rapport¶
Sources de données pour les rapports¶
Types de données et agrégation¶
Dans la terminologie générale du SIS, toutes les données du DHIS2 sont généralement appelées agrégées puisqu'il s'agit d'agrégats (par exemple, des résumés mensuels) de dossiers médicaux ou d'une sorte de registres de services déclarés par les établissements de santé. L'agrégation dans DHIS2, dont il est question ici, concerne toutefois la manière dont les données brutes saisies dans le DHIS2 (par saisie ou importation de données) sont ensuite agrégées au fil du temps (par exemple, des valeurs mensuelles aux valeurs trimestrielles) ou en remontant dans la hiérarchie organisationnelle (par exemple, des valeurs des établissements aux valeurs des districts).
Terminologie¶
-
Les données brutes font référence aux données enregistrées dans DHIS2, soit par saisie, soit par importation, et qui n'ont pas été manipulées par le processus d'agrégation du DHIS2. Toutes ces données sont stockées dans la table (ou l'objet Java si vous préférez) appelée Valeur de données.
-
Les données agrégées font référence aux données qui ont été agrégées par DHIS2, ce qui signifie qu'il ne s'agit plus de données brutes, mais d'une sorte d'agrégat des données brutes.
-
Les valeurs indicatrices peuvent également être considérées comme des données agrégées, mais elles ont la particularité d'être calculées sur la base de formules définies par l'utilisateur (facteur * numérateur/dénominateur). Les valeurs d'indicateur sont donc des données traitées et non des données brutes, et se trouvent dans le tableau/objet des valeurs d'indicateur agrégées. Les indicateurs sont calculés à n'importe quel niveau de la hiérarchie organisationnelle et ces calculs sont ensuite basés sur les valeurs des données agrégées disponibles à chaque niveau. Un attribut de niveau dans le tableau des valeurs de données agrégées fait référence au niveau organisationnel de l'unité pour laquelle la valeur a été calculée.
-
La période et le type de période sont utilisés pour spécifier la dimension temporelle des valeurs brutes ou agrégées, et les données peuvent être agrégées d'un type de période à un autre, par exemple d'une période mensuelle à une période trimestrielle, ou d'une période quotidienne à une période mensuelle. Chaque valeur de données a une période et cette période a un type de période. Par exemple, les valeurs de données pour les périodes de janvier, février et mars 2009, toutes de type mensuel, peuvent être agrégées pour former une valeur de données agrégée avec la période Q1 2009 et le type de période Trimestriel.
Règles d'agrégation de base¶
Les données agrégées ensemble¶
Les données (brutes) peuvent être enregistrées à n'importe quel niveau d'organisation, par exemple dans l'hôpital national au niveau 2, dans un établissement de santé au niveau 5 ou dans un SSP plus important au niveau 4. Cela varie d'un pays à l'autre, mais le DHIS2 est flexible en matière de saisie ou d'importation de données à n'importe quel niveau. Cela signifie que les organisations ayant elles-mêmes d'unités enfants peuvent enregistrer des données, parfois les mêmes éléments de données que leurs unités enfants. La règle de base de l'agrégation dans le DHIS2 stipule que toutes les données brutes soient agrégées ensemble, ce qui signifie que les données enregistrées dans un établissement au niveau 5 sont ajoutées aux données enregistrées pour un SSP au niveau 4.
Il appartient à l'utilisateur/administrateur système/concepteur de s'assurer qu'il n'y a pas de double saisie et que, par exemple, les données saisies au niveau 4 ne concernent pas les mêmes services/visites que ceux déclarés par les enfants de l'orgunit au niveau 5.
N.B.
Dans certains cas où vous souhaitez avoir une double saisie dans le système, faites-le de manière contrôlée. Exemple : lorsque vous avez deux sources de données différentes pour les estimations de population, à la fois les données démographiques des bassins versants de niveau 5 et une autre source de données démographiques pour le niveau 4 basée sur les données de recensement (car la somme des bassins versants de niveau 5 n'est pas toujours la même que les données de recensement de niveau 4). Vous pouvez ensuite spécifier, à l'aide des paramètres d'agrégation avancés (voir plus bas), que le système ne doit pas, par exemple, ajouter les données démographiques de niveau 5 aux données démographiques de niveau 4, et que les agrégats de données démographiques de niveau 3,2,1 sont uniquement basés sur les données de niveau 4 et n'incluent pas les données de niveau 5.
Comment agréger les données ensemble¶
La manière dont les données sont agrégées dépend de la dimension de l'agrégation (voir plus bas).
Au niveau de l'orgunit, les données sont toujours résumées, c'est-à-dire simplement additionnées. Notez que les données brutes ne sont jamais des pourcentages, et peuvent donc être additionnées. Les valeurs d'indicateurs qui peuvent être des pourcentages sont traitées différemment (recalculées à chaque niveau, mais jamais additionnées).
Dans la dimension temporelle, il existe plusieurs possibilités, les deux façons les plus courantes d'agréger les données sont la somme et la moyenne. L'utilisateur peut spécifier pour chaque élément de données la méthode à utiliser en définissant l'opérateur d'agrégation (voir plus bas). Les données mensuelles relatives aux services sont normalement additionnées dans le temps, par exemple le nombre de vaccins administrés dans une année est la somme des vaccins administrés pour chaque mois de cette année. Pour la population, l'équipement, le personnel et d'autres types de données dites semi-permanentes, on doit souvent utiliser la méthode de la moyenne, car, par exemple, le "nombre d'infirmières" travaillant dans un établissement au cours d'une année ne serait pas la somme des deux chiffres indiqués dans le rapport semestriel sur la dotation en personnel, mais plutôt la moyenne des deux chiffres. Pour plus de détails, voir la rubrique 'opérateurs d'agrégation'.
Dimensions d'agrégation¶
Unités et niveaux d'organisation¶
On utilise les unités d'organisation pour représenter la dimension "où" associée aux valeurs des données. Dans le DHIS2, les unités d'organisation sont disposées selon une hiérarchie correspondant généralement à la nature hiérarchique de l'organisation ou du pays. Les niveaux d'unité d'organisation correspondent aux niveaux distincts de la hiérarchie. Par exemple, un pays peut être organisé en provinces, puis en districts, puis en établissements, puis en sous-centres. Cette hiérarchie organisationnelle comporterait alors cinq niveaux. À l'intérieur de chaque niveau, il existerait un certain nombre d'unités d'organisation. Au cours du processus d'agrégation, les données sont agrégées des niveaux inférieurs de l'unité d'organisation aux niveaux supérieurs. Selon l'opérateur d'agrégation, les données peuvent être "additionnées" ou "calculées en moyenne" à un niveau d'unité d'organisation donné, pour obtenir le total agrégé de toutes les unités d'organisation contenues dans un niveau d'unité d'organisation supérieur. Par exemple, si une province compte dix districts et que l'opérateur d'agrégation pour un élément de données particulier a été défini comme "SOMME", le total agrégé pour la province sera calculé comme étant la somme des valeurs des dix districts individuels de cette province.
Période¶
Les périodes sont utilisées pour représenter la dimension "quand" associée aux valeurs de données. Les données peuvent facilement être agrégées de semaines à mois, de mois à trimestres et de trimestres à années. DHIS2 utilise des règles connues sur comment ces différents intervalles sont contenus dans d'autres intervalles (par exemple, le premier trimestre 2010 est connu pour contenir janvier 2010, février 2010 et mars 2010) afin d'agréger des données provenant d'intervalles de temps plus petits, par exemple des semaines, en intervalles de temps plus longs, par exemple des mois.
Éléments de données et Catégories¶
La dimension de l'élément de données spécifie "ce qui" est enregistré par une valeur de données particulière. Les catégories d'éléments de données sont en fait des dimensions dégénérées de la dimension d'élément de données, et sont utilisées pour désagréger la dimension d'élément de données en catégories plus fines. Les catégories d'éléments de données, telles que "âge" et "sexe", sont utilisées pour enregistrer un élément de données particulier, généralement pour différents groupes de population. Ces catégories peuvent ensuite être utilisées pour calculer le total global de la catégorie et le total de toutes les catégories.
Opérateurs d'agrégation, méthodes d'agrégation¶
Somme¶
L'opérateur 'somme' calcule simplement la somme de toutes les valeurs de données contenues dans une matrice d'agrégation particulière. Par exemple, si les données sont enregistrées sur une base mensuelle au niveau du district et sont agrégées n totaux trimestriels provinciaux, toutes les données de tous les districts pour une province donnée et toutes les semaines pour le trimestre donné seront alors additionnées pour obtenir le total agrégé.
Moyenne¶
Lorsque l'opérateur d'agrégation moyenne est sélectionné, la moyenne non pondérée de toutes les valeurs des données dans une matrice d'agrégation donnée sont calculées.
Il est important de comprendre comment le DHIS2 traite les valeurs nulles dans le contexte de l'opérateur Moyenne. Il est assez courant que certaines unités d'organisation ne soumettent pas de données pour certains éléments de données. Dans le contexte de l'opérateur Moyenne, la moyenne résulte du nombre d'éléments de données effectivement présents (donc NON NUL) dans une matrice d'agrégation donnée. S'il y a 12 districts dans une province donnée, mais que seuls 10 d'entre eux ont soumis des données, le total moyen résultera alors de ces dix valeurs effectivement présentes dans la base de données, et ne tiendra donc pas compte des valeurs manquantes.
Paramètres d'agrégation avancés (niveaux d'agrégation)¶
Niveaux d'agrégation¶
La règle normale du système consiste à agréger toutes les données brutes lorsqu'on monte dans la hiérarchie organisationnelle, et le système ne prévoit pas la saisie des mêmes services fournis aux mêmes clients au niveau des deux établissements ainsi que la saisie d'un nombre "agrégé" (somme de tous les établissements) à un niveau supérieur. Cela permet de faciliter l'agrégation lorsque les mêmes services sont fournis mais à des clients/groupes de population différents dans les établissements au niveau 5 et dans un CSP (le parent des mêmes établissements) au niveau 4. De cette façon, un établissement au niveau 5 et un CSP au niveau 4 peuvent partager les mêmes éléments de données et simplement additionner leurs nombres pour fournir le total des services fournis dans la zone géographique.
Parfois, une telle agrégation n'est pas souhaitable, simplement parce qu'elle impliquerait une duplication des données relatives à une même population. C'est le cas lorsque vous avez deux sources de données différentes pour deux niveaux d'orgunit différents. Par exemple, la population du bassin versant des établissements peut provenir d'une source différente de celle des districts et, par conséquent, la somme des populations du bassin versant des établissements ne correspond pas à la population du district fournie par les données démographiques, par exemple. Si tel est le cas, nous souhaiterions en fait disposer de données dupliquées dans le système afin que chaque niveau puisse avoir des chiffres aussi précis que possible, mais nous ne voulons PAS regrouper ces sources de données.
Dans la section Élément de donnée, vous pouvez modifier les éléments de données et, pour chacun d'entre eux, préciser comment l'agrégation est effectuée pour chaque niveau. Dans le cas décrit ci-dessus, nous devons indiquer au système de NE PAS inclure les données relatives à la population des établissements dans les agrégations au-dessus de ce niveau, comme le niveau ci-dessus. Au cas où les districts ont enregistré leur population directement en tant que données brutes, les données sur la population des districts doivent alors être utilisées à tous les niveaux supérieurs, y compris celui des districts, tandis que les données sur les établissements doivent être utilisées au niveau des établissements.
Comment modifier l'agrégation des éléments de données¶
Cette activité est contrôlée par ce qu'on appelle les Niveaux d'agrégation. À la fin de l'écran de modification des éléments de données, vous verrez une case à cocher appelée Niveaux d'agrégation. Si vous cochez cette case, vous verrez une liste des niveaux d'agrégation, disponibles et sélectionnés. Par défaut, aucun niveau d'agrégation n'est défini, et toutes les données brutes de la hiérarchie seront alors additionnées. Pour spécifier la règle décrite ci-dessus, et étant donné une hiérarchie de Pays, Province, District, Etablissement : sélectionnez Etablissement et District comme vos niveaux d'agrégation. Fondamentalement, vous sélectionnez l'endroit où vous avez des données. En sélectionnant Etablissement, cela signifie que les Etablissements utiliseront des données provenant des établissements (indiqués étant donné qu'il s'agit du niveau le plus bas). La sélection de District signifie que les données brutes au niveau du district seront utilisées lors de l'agrégation des données pour le niveau du district (donc aucune agrégation n'aura lieu à ce niveau), et les données des établissements ne feront pas partie des valeurs agrégées du district. Lors de l'agrégation des données au niveau de la province, les données brutes au niveau du district seront utilisées car il s'agit du niveau d'agrégation le plus élevé disponible qui a été sélectionné. Les données brutes du district seront également utilisées pour les agrégats au niveau du pays. Pour rappel, si nous n'avions pas spécifié que le niveau du district était un niveau d'agrégation, les données des établissements et les données des districts auraient été additionnées, ce qui aurait entraîné une duplication (double) des données démographiques pour les districts ainsi que tous les niveaux supérieurs.
Tableaux des ressources¶
Les tableaux de ressources fournissent des informations supplémentaires sur les dimensions des données dans un format qui convient bien aux outils externes pour les combiner avec le tableau des valeurs de données. En associant le tableau des valeurs de données à ces tableaux de ressources, il est donc facile d'agréger les dimensions des catégories d'éléments de données ou les dimensions des groupes d'éléments de données/indicateurs/unités d'organisation. Par exemple, en marquant toutes les valeurs de données avec l'option de catégorie homme ou femme et en les indiquant dans une colonne séparée 'genre', on peut alors obtenir des sous-totaux d'hommes et de femmes basés sur les valeurs de données collectées pour des combinaisons d'options de catégorie telles que (homme, \<5) et (homme,>5). Voir la section Tableaux croisés dynamiques pour plus d'exemples de leur utilisation. L'orgunitstructure est un autre tableau important de la base de données qui permet de fournir des données à la hiérarchie des unités. En joignant le tableau orgunitstructure au tableau des valeurs de données, vous pouvez obtenir des lignes de valeurs de données avec la hiérarchie complète, par exemple sur le formulaire : OU1, OU2, OU3, OU4, Elément de données, Période, Valeur (Sierra Leone, Bo, Badija, Ngelehun CHC, BCG \<1, Jan-10, 32). Ce format facilite grandement la tâche des tableaux croisés dynamiques ou d'autres outils OLAPqui permettent, par exemple, d'agréger les données de manière ascendante dans la hiérarchie.
Les tableaux de rapport¶
Les tableaux de rapport sont des rapports définis et croisés pouvant servir de base pour d'autres rapports, tels que les tableaux croisés dynamiques Excel ou être simplement téléchargés sous forme de feuille Excel. Les tableaux de rapport sont destinés à fournir une vue spécifique des données requises, telles que les "Indicateurs nationaux mensuels de CPN". Ce tableau de rapport peut fournir tous les indicateurs de CPN pour un pays, agrégés par mois pour l'ensemble du pays. Ces données peuvent bien sûr être extraites du principal magasin de données, mais les tableaux de rapport sont généralement plus rapides et présentent aux utilisateurs des vues bien définies des données.
Comment créer des tableaux de rapports¶
Pour créer un nouveau tableau de rapport, allez dans la section Tableaux de rapport du module Rapports (Rapports -> Tableau de rapport). Au-dessus de la liste des rapports standard, utilisez les boutons "Ajouter un tableau de rapports" ou "Ajouter un tableau de dimensions d'éléments de données". Un tableau de rapport standard peut être utilisé pour conserver les informations sur les éléments de données, les indicateurs ou l'exhaustivité des ensembles de données, tandis que les tableaux de dimension des éléments de données sont utilisés pour inclure des catégories d'éléments de données dans les tableaux de rapport. La création des tableaux se fait de la même manière, la seule exception étant toutefois le choix des données.
Pour créer un tableau de rapport, vous devez commencez par opérer quelques choix généraux pour le tableau, dont le plus important est la dimension croisée. Ensuite, vous choisissez les éléments de données, les indicateurs, les ensembles de données ou les dimensions des éléments de données à inclure. Enfin, vous sélectionnez les unités d'organisation et les périodes de temps à utiliser dans le tableau du rapport. Chacune de ces étapes est décrite en détail ci-dessous.
Options générales¶

Recoupement des dimensions
Vous pouvez croiser une ou plusieurs des dimensions suivantes : élément de donnée/indicateur, orgunit et période, ce qui signifie que les colonnes seront créées sur la base des valeurs des dimensions choisies. Par exemple, si des indicateurs sont sélectionnés, vous obtiendrez dans le tableau des noms de colonnes reflétant les noms des indicateurs sélectionnés.
Par exemple, si vous faites des recoupements entre les indicateurs et les périodes, les en-têtes de colonne indiqueront "\<indicator title> \<period>". Les unités d'organisation seront énumérées sous forme de lignes. Voir la capture d'écran pour plus de précisions :

Si vous faites des recoupements sur les indicateurs et les unités d'organisation, les en-têtes de colonne du tableau indiqueront "\<indicator title> \<organisation unit>". Les périodes seront désormais répertoriées sous forme de lignes. Voir la capture d'écran pour plus de précisions :

Notez que les options faites ici concernant le recoupement des dimensions peuvent avoir des conséquences sur les options disponibles lors de l'utilisation ultérieure du tableau de rapport comme source de données, par exemple pour les rapports standard.
Ordre de tri
Affecte la colonne la plus à droite du tableau, vous permet de choisir de la trier de bas en haut ou de haut en bas.
Limite maximale
La limite maximale vous permet de fixer un nombre maximum de lignes que vous souhaitez inclure dans le tableau du rapport.
Inclure la régression
Cette option ajoute des colonnes supplémentaires avec des valeurs de régression pouvant être incluses dans la conception du rapport, par exemple dans les graphiques linéaires.
Sélection des données¶

Indicateurs/Éléments de données
Vous sélectionnez ici les éléments de données/indicateurs que vous souhaitez inclure dans le rapport. Utilisez le filtre de groupes pour trouver plus facilement ce que vous cherchez et double-cliquez sur les éléments que vous voulez inclure, ou utilisez les boutons pour ajouter/supprimer des éléments. Vous pouvez avoir à la fois des éléments de données et des indicateurs dans le même rapport.
Les ensembles de données
Vous sélectionnez ici les ensembles de données que vous souhaitez inclure dans le rapport. L'inclusion d'un ensemble de données vous donnera des informations sur l'exhaustivité des données de l'ensemble donné, et non des informations sur ses éléments. Double-cliquez sur les éléments que vous souhaitez inclure, ou utilisez les boutons.
Sélection des paramètres du rapport¶

Il existe deux façons de sélectionner à la fois les unités d'organisation et les périodes (relatives ou fixes) à inclure dans un rapport. Les unités d'organisation et/ou les périodes fixes signifient que vous sélectionnez les unités/périodes à inclure dans le tableau du rapport lorsque vous créez le tableau du rapport. En utilisant des périodes relatives, vous pouvez sélectionner le temps et/ou les unités comme paramètres lorsque le tableau du rapport est rempli, par exemple lors de l'exécution d'un rapport standard ou de la création d'un graphique. Une combinaison est également possible, par exemple pour ajouter certaines unités d'organisation dans le rapport de manière permanente tout en laissant les utilisateurs choisir des unités supplémentaires. Les paramètres de rapport sont abordés plus loin. En général, l'utilisation d'unités dorganisation et/ou de périodes fixes constitue une restriction inutile.
Unités d'organisation fixes
Pour ajouter des unités d'organisation fixes, cliquez sur "Basculer les unités d'organisation fixes". Un panneau apparaîtra dans lequel vous pourrez choisir les unités d'organisation à inclure dans le rapport. Si vous le laissez vide, les utilisateurs choisissent les unités d'organisation lors de l'exécution du rapport grâce à l'utilisation des paramètres de rapport. Utilisez le menu déroulant pour filtrer les unités d'organisation par niveau, double-cliquez ou utilisez les boutons ajouter/supprimer.
Périodes fixes
Pour ajouter des périodes fixes, cliquez sur "Basculer les unités d'organisation fixes". Un panneau apparaîtra dans lequel vous pourrez choisir des périodes à inclure dans le rapport. Si vous le laissez vide, les utilisateurs sélectionnent les périodes lors de l'exécution du rapport grâce à l'utilisation des paramètres de rapport. Utilisez le menu déroulant pour choisir le type de période (semaine, mois, etc.), les boutons Précédent et Suivant pour choisir l'année, et double-cliquez ou utilisez les boutons ajouter/supprimer.
Périodes relatives
Au lieu d'utiliser des périodes fixes/statiques comme 'Jan-2010' ou 'Q1-2010', vous pouvez utiliser des périodes plus génériques pour créer des tableaux de rapport réutilisables. Par exemple, pour les rapports mensuels, la période 'Mois de déclaration' choisira simplement le mois de déclaration actuel sélectionné par l'utilisateur lors de l'exécution du rapport. Notez que toutes les périodes relatives sont relatives à un 'mois de déclaration'. Le mois de déclaratio est soit sélectionné par les utilisateurs, soit le mois en ours est utilisé. Voici une description des périodes relatives possibles :
-
Mois du rapport :
A utiliser pour les rapports mensuels. Le mois sélectionné dans le paramètre "mois de rapport" sera utilisé dans le rapport.
-
Mois/trimestres de cette année:
Il s'agit d'une valeur par mois ou par trimestre de l'année. Cette méthode convient parfaitement aux rapports mensuels ou trimestriels standard dans lesquels tous les mois/trimestres doivent être énumérés. Les périodes qui n'ont pas encore de données seront vides, mais conserveront toujours le même nom de colonne.
-
Cette année :
Il s'agit du cumul à ce jour de l'année, qui regroupe les périodes allant du début de l'année jusqu'au mois de déclaration sélectionné.
-
Mois/trimestres de l'année précédente :
Cela permet d'obtenir une valeur par mois ou par trimestre de l'année dernière, par rapport au mois de déclaration. Cette méthode convient parfaitement aux rapports mensuels ou trimestriels standard pour lesquels tous les mois/trimestres doivent être énumérés. Les périodes qui n'ont pas encore de données seront vides, mais conserveront toujours l e même nom de colonne.
-
L'année précédente :
Il s'agit du cumul de l'année précédente, par rapport au mois de déclaration, regroupe toutes les périodes de l'année précédente.
Exemple - périodes relatives
Supposons que nous avons choisi trois indicateurs : A, B et C, et nous avons également choisi d'utiliser les périodes relatives 'Mois de déclaration' et 'Cette année' lorsque nous avons créé le tableau de rapport. Si le mois de déclaration (sélectionné automatiquement ou par l'utilisateur) est, par exemple, mai 2010, le tableau de rapport calculera les valeurs des trois indicateurs sélectionnés pour mai 2010 (= le 'mois de déclaration') et les valeurs cumulées des trois indicateurs sélectionnés jusqu'à présent en 2010 (= jusqu'à présent 'cette année').
Ainsi, nous obtiendrons six valeurs pour chacune des unités d'organisation : "Indicateur A mai 2010", "Indicateur B mai 2010", "Indicateur C mai 2010", "Indicateur A jusqu'à présent en 2010", "Indicateur B jusqu'à présent en 2010" et "Indicateur C jusqu'à présent en 2010".
Paramètres du rapport
Les paramètres des rapports rendent les rapports plus génériques et réutilisables au fil du temps et pour différentes unités d'organisation. Ces paramètres s'afficheront lors de la production du tableau de rapport ou de l'exécution d'un rapport basé sur le tableau de rapport. Les utilisateurs sélectionneront ce qu'ils veulent voir dans le rapport. Il existe quatre paramètres de rapport possibles, et vous pouvez en sélectionner aucun, tous ou une combinaison quelconque.
-
Mois du rapport :
Cette case permet de déterminer le mois qui sera utilisé lorsque le système choisira les périodes relatives. Si la case n'est pas cochée, l'utilisateur ne sera pas invité à indiquer le mois de déclaration lors de la génération du rapport - le mois en cours sera alors utilisé.
-
Unité d'organisation grand-parent :
Sélectionnez le grand parent de tous les enfants et petits-enfants de l'unité d'organisation que vous souhaitez voir figurer dans le rapport. Par exemple, une région sélectionnée déclenchera l'utilisation de la région elle-même, de tous ses districts et de tous leurs sous-districts.
-
Unité d'organisation parent :
Sélectionnez le parent de tous les enfants de l'unité d'organisation que vous souhaitez voir figurer dans le rapport. Par exemple, un district sélectionné déclenchera l'utilisation du district lui-même et de tous ses enfants/sous-districts.
-
Unité d’organisation:
Cette option déclenche l'utilisation de cette orgunit dans le rapport. Aucune unité enfant n'est répertorié.
Exemple - paramètres de rapport
Pour poursuivre avec l'exemple des périodes relatives juste au-dessus, supposons qu'en plus du "mois de déclaration", nous avons choisi "Unité de l'organisation parent" comme paramètre de rapport lors de la création du tableau de rapport. Lors de l'exécution du tableau de rapport, il nous sera demandé de sélectionner une unité d'organisation. Supposons maintenant que nous choisissions "Région R" comme unité d'organisation. La "Région R" a alors les enfants "District X" et "District Y".
Lorsque le rapport est exécuté, le système agrège les données pour le "District X" et le "District Y". Les données seront agrégées à partir du niveau le plus bas où elles ont été collectées. Les valeurs des districts seront agrégées davantage pour donner une valeur agrégée pour la "Région R".
Ainsi, le tableau du rapport générera les six valeurs présentées dans l'exemple précédent, pour "District X", "District Y" et "Région R".
Tableaux de dimensions des éléments de données¶
Ces tableaux permettent d'utiliser des catégories d'élément de donnée dans les tableaux de rapports. Il y a deux différences par rapport aux tableaux de rapports habituels. La première est qu'il n'est pas possible de sélectionner les dimensions des tableaux croisés, car les colonnes seront toujours les désagrégations des combinaisons de catégories. L'autre est le choix effectif des données. Une seule combinaison de catégories peut être ajoutée par rapport, et seuls les éléments de données de la même combinaison de catégories peuvent être sélectionnés.
Les sous-totaux et le total seront également inclus dans le tableau. Par exemple, une combinaison de catégorie sexe (homme, femme) + âge PEV(\<1, >1) donnerait les colonnes suivantes : homme+\<1, homme+>1, femme+\<1, femme+>1, homme, femme,\<1, >1, total.
Sélection des données

Utilisez le menu déroulant pour choisir les combinaisons de catégories. Les éléments de données utilisant cette combinaison de catégories seront énumérés. Double-cliquez pour ajouter au rapport, ou utilisez les boutons.
Tableau des rapports - meilleures pratiques¶
Vous pouvez paramétrer les tableaux de rapport pour qu'ils soient réutilisables dans le temps et entre les orgunits. Quatre types de paramètres sont autorisés : orgunit, orgunit parent (pour la liste des orgunits dans une zone), orgunit grand parent et mois de déclaration. Il convient de noter que nous envisageons d'étendre cette possibilité pour inclure le trimestre et l'année de déclaration, ou de rendre ce paramètre de période plus générique en ce qui concerne le type de période d'une certaine manière. La possibilité d'utiliser la période comme paramètre rend le tableau de rapport réutilisable dans le temps et, par conséquent, il s'adapte bien aux besoins de rapports tels que les rapports mensuels, trimestriels ou annuels. Lorsqu'un rapport est exécuté par l'utilisateur dans DHIS2, celui-ci doit spécifier les valeurs des tableaux de rapport liés au rapport. Le tableau de rapport est d'abord généré à nouveau (supprimé et recréé avec des données mises à jour), puis le rapport est exécuté (en arrière-plan, dans le moteur de rapport Jasper).
Les tableaux de rapport peuvent être constitués de valeurs relatives à des éléments de données, à des indicateurs ou à l'exhaustivité des données, qui est à sont tour liée à l'exhaustivité des rapports des orgunits pour un mois donné. Les rapports d'exhaustivité seront abordé dans une autre section.
Un tableau de rapport comporte trois dimensions permettant d'identifier les données : les indicateurs ou éléments de données, les orgunits et les périodes. Pour chacune de ces dimensions, l'utilisateur peut sélectionner les valeurs de métadonnées à inclure dans le rapport. L'utilisateur doit sélectionner un ou plusieurs éléments de données ou indicateurs à faire figurer dans le rapport. La sélection de l'orgunit peut être remplacée par un paramètre, soit une orgunit spécifique, soit une orgunit mère (se faisant apparaître dans le rapport avec tous ses enfants). Si une ou plusieurs orgunits sont sélectionnées et qu'aucun paramètre d'orgunit n'est utilisé, le rapport est statique en ce qui concerne les orgunits à inclure, ce qui, dans la plupart des cas, constitue une restriction inutile à un rapport.
Utilisation des périodes relatives
La sélection de la période est plus avancée car elle peut, en plus de périodes spécifiques comme Jan-09, Q1-08, 2007, contenir ce qu'on appelle des périodes relatives. Etant donné que le rapport est généralement exécuté de manière routinière dans le temps, une période spécifique comme Jan-09 n'est pas très utile dans un rapport. Si vous voulez plutôt concevoir un rapport mensuel, vous devez alors utiliser la période relative appelée "mois de référence". Ensuite, vous devez également inclure le mois de référence comme l'un de vos paramètres de rapport afin de faire savoir au système quel est exactement le mois de référence au moment de la production du rapport. Il existe de nombreuses autres périodes relatives disponibles, et elles sont toutes liées au paramètre de rapport "Mois de référence". Par exemple, la période relative intitulée "Jusqu'à présent cette année" se réfère à la valeur cumulée pour l'année, y compris le mois de référence. Si vous souhaitez un rapport d'évolution avec plusieurs périodes au lieu d'une seule période agrégée, vous pouvez sélectionner par exemple "Mois de cette année", ce qui vous donnera les valeurs de chaque mois jusqu'à présent dans l'année. Vous pouvez faire un rapport similaire avec des trimestres. L'idée est de prendre en charge autant de types de rapports génériques que possible en utilisant des périodes relatives ; donc si vous avez d'autres besoins en matière de rapports, veuillez suggérer de nouvelles périodes relatives sur la liste de diffusion, et elles pourraient être ajoutées aux options du tableau des rapports.
Recoupement des dimensions
La tabulation recoupée est une fonctionnalité très puissante dans la conception de rapports, car le tableau de données DHIS2 typique, en ce qui concerne la période, l'élément de donnée/indicateur et l'orgunit, rend très difficile la conception de rapports plus avancés, puisque vous ne pouvez pas mettre par exemple des indicateurs, des périodes ou des orgunits spécifiques sur des colonnes spécifiques. Par exemple, en recoupant la tabulation sur la dimension de l'indicateur dans un tableau de rapport d'indicateurs, vous obtiendrez les noms des indicateurs dans les en-têtes de colonne de votre rapport, en plus d'une colonne faisant référence à l'orgunit et d'une autre colonne faisant référence à la période. Avec une telle conception de tableau, vous pouvez glisser et déposer les noms des indicateurs dans des colonnes ou des positions de graphique spécifiques dans le logiciel iReport. De même, vous pouvez faire des recoupements entre les orgunits ou les périodes afin de rendre leurs noms spécifiquement disponibles pour la conception du rapport. Par exemple, en recoupant les périodes et en sélectionnant les deux périodes relatives 'Mois de référence' et 'Cette année', vous pouvez concevoir des rapports avec le dernier mois et la valeur annuelle cumulée pour un mois donné, puisqu'ils seront disponibles en tant qu'en-têtes de colonne dans votre tableau de rapport. Il est également possible de combiner deux dimensions dans le cadre d'un recoupement, par exemple la période et l'indicateur, ce qui permet par exemple d'examiner trois indicateurs sélectionnés pour deux périodes relatives spécifiques. Cela permettrait par exemple de faire un rapport basé sur un tableau ou un graphique avec une couverture BCG, DTC3 et Rougeole, à la fois pour le dernier mois et la couverture cumulée jusqu'à présent dans l'année.
Dans l'ensemble, la combinaison les fonctionnalités de recoupement, de périodes relatives et de paramètres de tableaux de rapports, requiert un outil permettant de prendre en charge la plupart des scénarios de rapports. Si tel n'est pas le cas, nous serions très heureux de recevoir des suggestions permettant d'améliorer encore les tableaux de rapport. Comme nous l'avons déjà mentionné, nous avons commencé à examiner des paramètres plus précis concernant la dimension Période, car le 'Mois de déclaration' ne couvre pas suffisamment, ou du moins n'est pas assez intuitif, en ce qui concerne par exemple les rapports trimestriels.
Résultat du tableau de rapport¶
Lorsque le tableau du rapport est exécuté, le système calcule les valeurs pour des indicateurs, des éléments de données, des ensembles de données, des organisations et des périodes spécifiques. Les données seront présentées dans le système DHIS2 sous forme de tableau. Les en-têtes de colonne correspondront à la dimension de tableau croisé que vous avez sélectionnée. Un exemple de tableau de rapport montrant la couverture des soins prénatals pour un district en Gambie, est présenté ci-dessous. Ici, l'indicateur et les périodes sont croisés, comme on peut le voir dans les en-têtes de colonne.

Au-dessus de la table, il y a six boutons ; cinq boutons de téléchargement et un bouton Retour. En cliquant sur le bouton Retour, vous revenez simplement à l'écran précédent. Les fonctions des cinq boutons de téléchargement sont présentées sous la capture d'écran :

Les cinq boutons de téléchargement
-
Télécharger au format Excel:
Télécharge un fichier Excel généré que vous pouvez ouvrir dans Excel.
-
Télécharger au format CSV:
Télécharge un fichier .csv généré. CSV signifie **C**omma **S**eparated **V**alues (valeurs séparées par des virgules). Il s'agit d'un fichier texte dont l'extension est .csv. Chaque ligne du fichier correspond à une ligne du tableau, tandis que les colonnes sont séparées par des points-virgules ( ;). Le fichier peut être ouvert dans un éditeur de texte ainsi que dans un programme de feuille de calcul (tel que Excel).
-
Télécharger au format PDF:
Télécharge un fichier PDF généré. Les données seront présentées dans une disposition similaire à celle du tableau généré que vous visualisez déjà dans DHIS2.
-
Télécharger comme rapport:
Télécharge un fichier PDF "stylé". En plus de présenter les données sous forme de tableau, ce fichier présente également un graphique, montrant les données agrégées de toutes les périodes choisies et de l'unité d'organisation mère choisie pour le tableau du rapport. Le rapport est généré à l'aide du moteur de rapport Jasper.
-
Télécharger au format JRXML:
Télécharge le fichier de conception du rapport généré décrit au point précédent. Le fichier de conception (avec l'extension .jrxml) peut être ouvert dans le logiciel Jasper iReport Designer. Si vous prévoyez de concevoir des rapports standard, c'est le point de départ.
**SIG:**Le SIG intégré à DHIS 2 permet de présenter et d'analyser vos¶
données à l'aide de cartes géographiques à thèmes. Vous pouvez y visualiser aussi bien les éléments de données que les indicateurs ; et en supposant que vous disposiez des coordonnées de toutes vos unités d’organisation, vous pouvez parcourir votre hiérarchie organisationnelle et faire apparaitre des cartes pour tous les niveaux à l’aide de polygones ou de points. Toutes les informations affichées sur les cartes sont générées par DHIS 2 ; tout ce que vous devez faire est de procéder à l’enregistrement des coordonnées de vos unités d'organisation pour que les cartes deviennent disponibles. Voir le chapitre spécifique qui traite du SIG pour obtenir plus de détails. { #reporting_standard_reports }
Qu'est-ce qu'un rapport standard ?¶
Un rapport standard est un rapport conçu manuellement qui présente les données dans une mise en page spécifiée manuellement. Les rapports standard peuvent être basés soit sur des tableaux de rapport, soit sur des requêtes SQL. Les deux approches sont décrites dans les sections suivantes. Le principal avantage de l'utilisation des tableaux de rapport est la simplicité - aucune compétence particulière de développement n'est requise. Si vous avez des exigences particulières ou si vous devez utiliser des parties supplémentaires de la base de données DHIS2, vous pouvez utiliser un rapport standard basé sur SQL. Dans tous les cas, vous pourrez utiliser des paramètres de rapport afin de créer des rapports dynamiques. Le guide suivant utilisera l'approche par tableau de rapport, tandis que l'approche SQL est abordée vers la fin.
Conception de rapports standard dans iReport¶
Jasper iReport Designer est un outil permettant de créer des rapports pouvant être utilisés comme rapports standard dans le système DHIS2. L'outil permet de créer des modèles de rapports standard qui peuvent être facilement exportés du DHIS2 avec des données actualisées. Le processus de création de rapports comprend quatre principales étapes :
-
Un tableau de rapport doit être créé dans DHIS2 avec les indicateurs/éléments de données/ensembles de données à utiliser dans le rapport.
-
Vous devez exécuter le tableau du rapport et télécharger le fichier de conception (Cliquez sur le bouton "Télécharger au format JRXML").
-
Ouvrez le fichier .jrxml téléchargé à l'aide du logiciel gratuit Jasper iReport Designer pour modifier la mise en page du rapport.
-
Le rapport édité peut ensuite être téléchargé dans le DHIS2 pour être utilisé comme un rapport standard.
Si vous voulez prévisualiser votre rapport pendant la conception dans iReport, vous evez en fait télécharger votre fichier dans DHIS2 pour voir à quoi il ressemble.
Ces quatre étapes seront décrites en détail dans les sections suivantes. En général, lorsque vous établissez des rapports standard, vous devez avoir une idée précise de leur aspect avant même de créer le tableau du rapport, car la manière dont le tableau du rapport est conçu a des implications sur la façon dont le rapport peut être formaté dans iReport. Par exemple, la sélection des dimensions des tableaux croisés dans le tableau du rapport a des conséquences sur les tableaux croisés disponibles pour le rapport standard, et sur les types de graphiques que vous pouvez réaliser.
Télécharger et ouvrir le fichier de conception¶
N.B.
Si vous n'avez pas encore créé de tableau de rapport, vous devez le faire. Pour ce faire, voir la section "Comment créer des tableaux de rapport".*
Localisez le tableau de rapport souhaité et lancez-le en cliquant sur le cercle vert avec une flèche blanche à l'intérieur. Lorsque le rapport est affiché, cliquez sur le bouton "Télécharger au format JRXML" pour télécharger le fichier de conception. Ouvrez ensuite ce fichier dans le logiciel Jasper iReport Designer.
Édition du rapport¶
Vous pouvez maintenant modifier la mise en page du rapport. La fenêtre principale d'iReport se compose d'un "Report Inspector" à gauche, du document de rapport au milieu, d'une zone "Palette" en haut à droite et d'une zone "Propriétés" en bas à droite. Le "Report Inspector" est utilisé pour sélectionner et examiner les différentes propriétés du rapport, et lors de la sélection d'un élément dans Inspector, le panneau "Propriétés" change pour afficher les propriétés relatives à la sélection. La "Palette" est utilisée pour ajouter divers éléments, par exemple des zones de texte, des images et des graphiques au document.

N.B
Si la barre latérale de la palette ou des propriétés n'est pas visible, vous pouvez alors l'activer à partir de l'élément de menu "Fenêtre" dans la barre du menu.
Le document iReport est divisé en sept bandes principales, elles-mêmes divisées par des séparateurs de présentation (les lignes bleues). Ces lignes sont utilisées pour décider de la taille de chacune des zones du rapport.
Ces zones ont toutes des objectifs différents :
-
Titre - zone pour le titre du rapport
-
En-tête de page - zone pour l'en-tête de la page
-
En-tête de colonne - zone pour les en-têtes de colonne (pour le tableau)
-
Détail 1 - zone où seront placées les données du rapport proprement dit
-
Pied de page de la colonne - zone pour créer le pied de page du tableau
-
Bas de page - zone pour le bas de page
-
Résumé - les éléments dans cette zone seront placés à la fin du rapport
Par défaut, vous verrez que seules les bandes Titre, En-tête de colonne et Détail 1 ont des données. Pour la plupart des rapports, cela ne pose pas de problème. La bande Titre convient pour un titre et, par exemple, un graphique. Les champs de données saisis dans la zone Détail 1 seront répétés pour créer un tableau. Par exemple, si un champ appelé "nom d'élément de donnée" est placé dans la bande Détail 1, tous les éléments de données du tableau du rapport seront répertoriés ici. Nous reviendrons un peu plus loin sur la gestion des champs de données.
Les bandes non utilisées dans le rapport sont contractées pour ajouter de l'espace supplémentaire aux données de votre rapport. Vous pouvez toutefois augmenter ou réduire la hauteur de la bande comme vous le souhaitez. Il y a deux façons de le faire. La première consiste simplement à faire glisser la ligne bleue de la bande comme indiqué ci-dessous.

L'autre façon d'ajuster la hauteur de la bande est de sélectionner une bande dans le "Report Inspector", puis d'ajuster la valeur "Hauteur de la bande" dans la zone "Détail 1 - propriétés" dans le coin inférieur droit.

Etant donné que les champs sont déjà présents sur le rapport, vous ne voulez probablement rien faire d'autre que de corriger la mise en page et de faire glisser les champs. Vous pouvez également redimensionner les champs en faisant glisser les lignes latérales, supérieures ou inférieures. Si vous souhaitez modifier le texte des en-têtes de colonne, il vous suffit de double-cliquer sur le champ et de modifier le texte.
Pour ajouter un champ au tableau, il suffit de le faire glisser vers la bande Détail 1 depuis le "Report Inspector". L'en-tête de la colonne sera ajouté automatiquement.
En double-cliquant sur la case, le texte peut alors être édité. Le format du texte, tel que la taille, la police et l'alignement, peut être ajusté avec les outils situés au-dessus du document.

REMARQUE
Les champs commençant par "$F" présentent des valeurs qui sont extraites de la base de données à chaque fois que le rapport est exécuté. Les valeurs varient, ne modifiez donc pas ces champs à moins que vous ne souhaitiez avoir une valeur statique !
Texte¶
Le logiciel iReportIl dispose de deux types de texte : Les "étiquettes de texte" et les "champs de texte" (champs de données). Ces types de texte fonctionnent différemment et doivent être utilisés à des fins différentes. Ce qu'il faut retenir est que les champs de texte sont juste des espaces réservés qui seront remplis avec le texte correct du tableau de rapport lorsque celui-ci sera exécuté, tandis que les étiquettes de texte resteront telles quelles lorsque le rapport sera exécuté.
Texte statique¶
Les textes statiques sont des étiquettes en texte clair qui peuvent être éditées normalement. Il existe deux façons de modifier les étiquettes de texte :
-
En double-cliquant dans la zone de saisie
-
En utilisant les propriétés du texte statique dans le panneau Propriétés

Champs de texte¶
Les champs de texte sont des formules qui seront complétées à partir du tableau de rapport lorsque celui-ci sera exécuté. Contrairement au texte statique, ils ne peuvent pas être modifiés normalement. Toutefois, ils peuvent être manipulés de différentes manières pour garantir que le résultat souhaité. Il existe trois façons de modifier les champs de texte :
-
En faisant un clic droit sur la zone de texte et en sélectionnant Modifier l'expression
-
En double-cliquant sur le champ de texte (non recommandé, car cela ne fera pas apparaître l'éditeur d'expression)
-
En utilisant les propriétés du champ Texte dans le panneau Propriétés


Les champs de texte peuvent représenter soit des chiffres, soit du texte, de sorte qu'ils peuvent être utilisés à la fois pour indiquer par exemple les noms de districts ou pour la saisie des valeurs numériques. Il est donc important que la classe Expression, dans les propriétés du champ de texte, corresponde à l'expression du champ de texte. Aucun problème ne se pose en ce qui concerne les champs de texte par défaut dans le fichier .jrxml téléchargé depuis DHIS2, mais cette correspondance est importante lors de la création de nouveaux champs de texte. Les deux classes d'expression les plus importantes sont java.lang.Double pour les nombres et java.lang.String pour le texte.
Exemple¶
Supposons par exemple que vous avez un rapport trimestriel et que vous souhaitez ajouter une nouvelle colonne du total annuel. Vous ajoutez donc un nouveau champ de texte statique à la bande d'en-tête de la colonne, et un champ de texte à la bande de détails. Par défaut, les nouveaux champs de Texte sont définis sur java.lang.String (texte). Cependant, la colonne du total annuel sera remplie de chiffres. Nous devons donc changer la classe d'expression en java.lang.Double pour le nouveau champ de texte :


Lorsque nous modifions l'expression du champ de texte, la fenêtre de l'éditeur d'Expression s'affiche avec toutes les colonnes disponibles du tableau du rapport. Nous pouvons alors constater ici que chacune d'entre elles est marquée avec son type - texte ou nombre. Nous devons donc nous assurer que la classe d'expression que nous choisissons pour le champ de texte correspond à l'expression réelle.

Filtrage des lignes du tableau¶
Dans le tableau par défaut exporté depuis DHIS2, il y a certaines lignes qu'il serait préférable de laisser en dehors du tableau, et d'autres qu'il serait préférable d'avoir à la fin. Par exemple, lors de la création d'un tableau basé sur un tableau de rapport avec le paramètre "unité d'organisation mère", le tableau par défaut peut comporter une ligne entre toutes les régions pour le niveau national. Dans le logiciel iReport, cela peut être modifié de manière à ce que l'"unité organisationnelle mère" apparaisse en bas du tableau. Cela implique deux étapes qui seront expliquées ci-dessous. Notez que cela ne fonctionnera pas lorsqu'il n'y a qu'une seule unité organisationnelle, et que c'est donc plus utile lorsque vous utilisez les paramètres "unité d'organisation mère" ou "unité d'organisation grand-mère" dans le tableau du rapport.
Masquer « Le paramètre unité d'organisation » du tableau¶
Nous supprimons du tableau l'"Unité d'organisation des paramètres" en utilisant une propriété dans la bande de détails appelée "Imprimer si expression" (Print when expression). Pour définir une propriété Imprimer si expression, commencez par sélectionner la bande Détails dans Report inspector, puis modifiez la propriété Imprimer si expression dans le panneau des propriétés.


La fenêtre de l'éditeur d'expression devrait maintenant s'afficher. Ce qu'il faut faire, c'est créer une expression qui vérifie si la ligne générée est celle dont l'unité d'organisation est donnée en paramètre. Le tableau de rapport contient une colonne que nous pouvons utiliser pour cette unité d'organisation appelée organisation_unit_is_parent. Pour exclure la ligne contenant le paramètre Unité d'organisation, double-cliquez sur organisation_unit_is_parent dans la liste pour la copier dans la zone d'expression, puis ajoutez .equals("No") à la fin pour que le code soit :
$F{organisation_unit_is_parent}.equals("No")
Cela indique au moteur de rapport de n'imprimer que les lignes du tableau où l'unité d'organisation n'est pas l'unité d'organisation mère.

Placer « Le paramètre unité d'organisation » au bas du tableau¶
Au lieu de supprimer complètement le "paramètre Unité d'organisation" de la table, il est également possible de la placer en bas (ou en haut) de la table. Pour ce faire, il faut utiliser la fonctionnalité de tri expliquée dans la section suivante, et choisir de trier d'abord par "organisation_unit_is_parent". D'autres options de tri peuvent être ajoutées en plus de celle-ci, par exemple pour dresser une liste dans laquelle le paramètre unité d'organisation est en bas du tableau, avec les autres unités d'organisation listées par ordre alphabétique au-dessus.
Masquer les autres rangées¶
En utilisant l'éditeur d'expressions (expression editor), il est également possible d'exclure d'autres lignes du tableau, en plus de l'unité d'organisation mère comme expliqué ci-dessus. Au Ghana, par exemple, toutes les régions ont un "faux district" qui est le nom de la région entre crochets. Il est également possible de l'exclure du tableau en utilisant la propriété Imprimer si expression que nous avons abordée plus haut. Pour ce faire, suivez donc les instructions ci-dessus pour faire apparaître la fenêtre Expression editor. Ensuite, nous utilisons des expressions Java pour vérifier si la ligne doit être masquée ou non.
Exemple - suppression des lignes dont les unités d'organisation commencent par [.¶
Exemple - suppression des lignes dont les unités d'organisation commencent par [.
($F{organisationunitname}.charAt( 0 ) != '[')
Cela crée une situation dans laquelle le rapport saute toutes les lignes où le premier caractère du nom de l'unité d'organisation est [.
Il est également possible de combiner plusieurs de ces expressions. Pour ce faire, nous mettons les expressions entre parenthèses avec les deux caractères && entre les deux. Par exemple, pour produire un tableau laissant les deux unités d'organisation dont le nom commence par [ et l'unité d'organisation parent, nous pouvons utiliser l'expression suivante :
($F{organisationunitname}.charAt( 0 ) != '[')&&$F{organisation_unit_is_parent}.equals("No")

Tri¶
Très souvent, vous établirez des rapports dont la première colonne contient les noms des unités d'organisation. Cependant, il peut être problématique que la liste des unités d'organisation ne soit pas classée par ordre alphabétique. Ce problème peut être résolu dans iReport en quelques étapes simples.
Dans Report Inspector, faites un clic droit sur le nom du rapport (par défaut, il s'agit de dpt) et sélectionnez Modifier la requête.

Une fenêtre de requête de rapport s'ouvre. Cliquez sur le bouton "Options de tri".

Une fenêtre de tri apparaîtra comme indiqué ci-dessous. Ici, nous pouvons ajouter nos options de tri. Cliquez sur le bouton Ajouter un champ. Une autre petite fenêtre apparaîtra, avec un menu déroulant où vous pouvez choisir Trier par nom d'unité d'organisation pour que le tableau soit trié par ordre alphabétique de nom.


Cliquez sur OK - Fermer - OK pour fermer les trois fenêtres. Le tableau doit maintenant être trié.
Modifier les noms d'indicateurs/d'éléments de données¶
Par défaut, les rapports du DHIS2 utilisent les noms abrégés des indicateurs et des éléments de données des rapports et des graphiques. Dans certains cas, ceux-ci ne sont pas toujours très significatifs pour les tiers, mais avec un peu de travail, ils peuvent avoir des noms personnalisés via iReport. Ceci est utile par exemple si vous produisez un rapport avec des indicateurs sous forme de lignes et des périodes sous forme de colonnes, ou pour des graphiques avec des indicateurs.

Pour modifier les noms d'un indicateur ou d'un élément de donnée, nous devons modifier son "expression" ou sa formule, par exemple en faisant un clic sur la zone de texte et en choisissant Modifier l'expression pour afficher l'Editeur d'expression.

Nous devons ensuite insérer un code Java. Dans l'exemple suivant, nous allons remplacer le nom abrégé de trois indicateurs par leur nom propre. Le code recherche le nom abrégé, puis le remplace par un nom propre.

($F{indicatorname}.equals("Bed Util All")) ? "Bed Utilisation - All Wards"
:
($F{indicatorname}.equals("Bed Util Mat")) ? "Bed Utilisation - Maternity"
:
($F{indicatorname}.equals("Bed Util Ped")) ? "Bed Utilisation - Paediatric"
:
$F{indicatorname}
On peut en déduire un modèle réutilisable pour des cas plus généraux.
-
Pour chaque indicateur ou élément de données dont nous voulons changer le nom, nous avons besoin d'une ligne
-
Chaque ligne est séparée par deux points :
-
Nous terminons l'expression par une ligne « régulière »
Chaque ligne a le même format, où le texte rouge représente le nom abrégé, le texte bleu est ce que nous voulons insérer à la place.

Les mêmes expressions peuvent être utilisées, par exemple, lorsque les noms des indicateurs se trouvent le long de l'axe des catégories d'un graphique.
Addition des totaux horizontaux¶
En utilisant l'éditeur d'expressions, il est possible d'ajouter une colonne au tableau avec des totaux pour chaque ligne. Dans l'exemple suivant, nous allons faire un tableau en prenant trois mois comme colonnes ainsi qu'une colonne contenant les totaux pour les trois mois.
Nous commençons par faire glisser une étiquette de texte dans l'en-tête du tableau et changer son texte en "Total", et faire glisser un champ de texte dans la ligne de détails.
Comme nous l'avons vu dans la section "Champ de texte", nous devons modifier les propriétés du nouveau champ de texte afin qu'il puisse afficher des chiffres. Pour ce faire, changez la "Classe d'expressions" dans le panneau des propriétés en "java.lang.Double".
Faites un clic droit sur le champ de texte et choisissez "Modifier l'expression". L'éditeur d'expressions apparaîtra. Comme expression, nous voulons résumer toutes les colonnes. Dans ce cas, nous avons trois expressions de valeur que nous voulons résumer : "Septembre", "Octobre 2010", "Novembre 2010". Le nom de ces champs variera en fonction de la dimension de tableau croisé que vous avez choisie dans le tableau du rapport. Dans notre cas, l'expression que nous construisons est
$f{September}+$f{October 2010}+$f{November 2010}
Groupes de tableaux¶
Dans certains cas, il peut être utile d'avoir plusieurs tableaux dans un seul rapport. Cela peut être fait en utilisant les groupes de rapports. En utilisant cette fonctionnalité, on peut par exemple créer un rapport avec un tableau pour chaque indicateur, ou un tableau pour chaque unité d'organisation. Dans la suite, nous allons passer en revue les étapes nécessaires pour faire un rapport avec trois indicateurs, chacun représenté dans un tableau. Il est important que le tableau du rapport ne comporte pas de tableaux croisés sur les indicateurs lorsque nous voulons faire des groupes de tableaux basés sur les indicateurs.
Dans notre exemple, le fichier .jrxml téléchargé du DHIS2 aura par défaut une colonne pour l'unité d'organisation et une autre pour les indicateurs (en supposant que nous ayons choisi des périodes comme seule dimension croisée). Nous commençons par supprimer la colonne des indicateurs, puisque cela n'est pas nécessaire dans notre cas, et nous réalignons les autres champs pour qu'ils correspondent au rapport.

Ensuite, nous créons notre groupe de rapport. Allez dans Report Inspector, faites un clic droit sur le nom du rapport (dpt est la valeur par défaut) et choisissez Ajouter un groupe de rapports.

Une fenêtre s'affiche, avec un assistant de groupe de rapports. Sélectionnez un nom pour le groupe ; dans notre cas nous choisissons "Indicateur". Dans le menu déroulant, nous pouvons sélectionner les colonnes du tableau de rapport sur lesquelles nous voulons que les groupes soient basés. Ainsi, si nous voulions un tableau pour chaque unité d'organisation, nous choisirions le nom de l'unité d'organisation comme objet de rapport à regrouper. Cependant, étant donné que nous regroupons par indicateurs dans cet exemple, nous choisissons le nom de l'indicateur. Cliquez ensuite sur suivant.

L'étape suivante consiste à choisir si nous voulons ou non un en-tête et un pied de page de groupe séparés pour chaque groupe de rapports. Dans ce cas, nous choisissons d'inclure les deux. Cliquez sur Terminer, et les bandes de groupe devraient apparaître dans le rapport.

Si vous téléchargez et exécutez le rapport, il créera désormais un tableau pour chaque indicateur. Cependant, cela ne sera pas très joli puisqu'il n'y aura pas de ligne d'en-tête au-dessus de chaque tableau - un seul en-tête en haut de chaque page. De plus, il n'y a aucune indication quant à quel tableau montre quel indicateur. Dans ce qui suit, nous allons remédier à ce problème.
Au lieu d'avoir la ligne de titre dans l'en-tête de la colonne, nous pouvons la déplacer vers l'en-tête du groupe. Ainsi, le titre apparaîtra au-dessus de chaque tableau individuel. En outre, nous pouvons ajouter un titre à chaque tableau avec le nom de l'indicateur.
Déplacez les en-têtes de colonne de la bande d'en-tête de colonne à la bande d'en-tête du groupe d'indicateurs.

Ensuite, ajoutez un champ de texte à la bande d'en-tête du groupe Indicateur, et modifiez son expression pour afficher le nom de l'indicateur.


Le rapport devrait maintenant comporter trois tableaux, un pour chaque indicateur. Chaque tableau aura un titre avec le nom de l'indicateur, ainsi qu'une ligne d'en-tête de tableau.

Triage et regroupement¶
Lorsqu'on utilise le groupage, certaines précautions doivent être prises en ce qui concerne le tri. Notamment, lors de l'ajout de paramètres de tri, le paramètre utilisé comme base du groupage doit être prioritaire. Ainsi, si vous groupez le rapport par indicateur et que vous souhaitez trier les unités d'organisation par ordre alphabétique, vous devez choisir de trier d'abord par indicateur, puis par nom d'unité d'organisation comme indiqué ci-dessous. Pour savoir comment ajouter un tri, voir la section sur le tri ci-dessus.

Graphiques¶
Par défaut, un diagramme à barres 3D est inclus dans le fichier .jrxml téléchargé depuis DHIS 2, qui est configuré de manière à ce que seules les données de l'"unité d'organisation des paramètres" (souvent le parent ou le grand-parent) soient utilisées. C'est généralement une bonne solution. Etant donnée qu'il s'agit de la valeur par défaut, nous commencerons par examiner les diagrammes en barres, avant d'examiner les graphiques linéaires.
Graphiques à barres¶

Les diagrammes en barres sont le type de diagramme par défaut dans le DHIS2. Dans cette section, nous allons voir comment réaliser un diagramme en barres comme celui ci-dessus, en comparant la valeur d'un indicateur dans plusieurs districts. Pour modifier le graphique par défaut dans iReport, cliquez avec le bouton droit de la souris et choisissez Données du graphique.

Une fenêtre s'affiche. Par défaut, la zone de texte de l'expression Filtre est remplie de manière à ce que seules les données de l'unité d'organisation parent soient affichées. Si, pour une raison quelconque, vous ne le souhaitez pas, il vous suffit de supprimer le texte dans la zone de texte. Dans ce cas, nous ne voulons PAS du filtre, car nous faisons un graphique montrant une comparaison entre les districts. Pour continuer, cliquez sur l'onglet Détails.

Sous Détails, vous voyez la liste des séries pour le tableau. Par défaut, une série est créée par colonne de tableau croisé. Dans ce cas, nous examinons les données d'un indicateur pour toute l'année 2010, pour un certain nombre de districts. L'indicateur se trouve dans la dimension du tableau croisé.

Pour apporter des modifications à une série, sélectionnez-la et cliquez sur modifier. Une autre fenêtre s'affiche, dans laquelle il y a quatre zones qui peuvent être modifiées. Les trois premières sont obligatoires, mais il suffit d'ajouter une citation vide («») dans l'une des deux premières.

La première case est un champ de texte dans lequel le nom de la série peut être inséré ou modifié. C'est ce champ qui sera utilisé pour saisir le texte dans la case de légende (voir ci-dessous).

Toutefois, si vous souhaitez que le nom de chaque barre soit placé le long de l'axe des x du graphique au lieu d'utiliser la légende, vous pouvez le faire en ajoutant le texte que vous souhaitez présenter dans le champ Expression de catégorie, ou en insérant une expression pour qu'il soit rempli automatiquement lors de l'exécution du rapport. Dans ce cas, nous voulons avoir une barre pour chaque unité d'organisation. Nous pouvons donc éditer l'expression de catégorie en cliquant sur le bouton à droite.

Comme expression, nous avons choisi nom d'unité d'organisation, comme indiqué ci-dessous.

Lorsque nous aurons terminé, l'Éditeur de séries devrait ressembler à ce qui suit. Cliquez sur OK, puis sur Fermer pour fermer la fenêtre Détails du graphique.

Si vous ajoutez une bonne description dans la zone d'expression de la catégorie, vous pouvez omettre la case de la légende. Cela se fait dans le panneau des propriétés du rapport d'iReport, où vous pouvez également modifier de nombreux autres détails du graphique.

Nous pouvons également ajouter un titre au tableau, par exemple le nom de l'indicateur. Cela se fait également dans le panneau des propriétés du graphique, sous Expression du titre.

La fenêtre Editeur d'expression s'ouvre, et vous pourrez donc saisir le titre. Notez que le titre doit être entre guillemets, comme indiqué ci-dessous.

Le graphique est maintenant prêt.
Graphiques linéaires¶
Les graphiques linéaires peuvent être utiles dans de nombreuses circonstances. Toutefois, pour réaliser des graphiques linéaires, les données du rapport (tableau de rapport) doivent être adaptées à celui-ci. Ainsi, si vous voulez faire un graphique linéaire, il est important que le tableau de rapport ne comporte pas de périodes dans le recoupement de dimensions. Cela est utile par exemple si vous faites un rapport pour une seule unité d'organisation avec un ou plusieurs indicateurs, ou si vous faites un rapport avec un indicateur et une ou plusieurs unités d'organisation.
Ci-dessous, nous allons passer en revue les étapes nécessaires à la production d'un rapport avec un graphique linéaire montrant l'évolution de trois indicateurs sur un an, pour une unité d'organisation. Nous commençons par générer un tableau de rapport à partir des options indiquées ci-dessous :


Lorsque nous ouvrons le fichier .jrxml- obtenu dans iReport, le graphique linéaire par défaut est inclus. Du moment où nous voulons créer un graphique linéaire, nous supprimons ce graphique et faisons glisser un nouvel élément de graphique dans le rapport à partir du Panneau de la palette.


Dès que nous faisons glisser l'élément Graphique dans le rapport, une fenêtre apparaît. Nous choisissons le graphique linéaire, comme indiqué ci-dessous.

Un assistant graphique s'affiche. Cliquez sur Suivant dans la première étape, puis sur Terminer dans la suivante - nous ajouterons les données plus tard.


Ensuite, ajustez la taille et la position du graphique dans votre rapport. Ensuite, nous ajouterons une série de données pour chacun de nos trois indicateurs. Faites un clic droit sur le graphique et choisissez Données du graphique. Si vous créez un graphique avec un indicateur et plusieurs unités d'organisation, vous souhaitez probablement créer une expression filtre afin que seules les données de l'unité d'organisation mère/de paramètre soient utilisées dans le graphique. Pour ce faire, ajoutez cette ligne à la zone Expression filtre :
$F{organisation_unit_is_parent}.equals("Yes")
Ce n'est donc pas nécessaire dans notre exemple, puisque nous n'avons qu'une unité d'organisation. Ensuite, cliquez sur l'onglet "Détails" pour visualiser la liste des séries dans le tableau. Pour l'instant, cette liste est vide, mais nous allons ajouter une série pour chacun de nos trois indicateurs. Pour ajouter une série, cliquez sur le bouton Ajouter.


Dans la fenêtre qui s'affiche, entrez le nom du premier des indicateurs dans la fenêtre d'expression de la série. N'oubliez pas de mettre le nom entre guillemets. Dans l'expression de catégorie (sur l'axe des x), nous voulons les mois ; nous utilisons donc le bouton à côté du champ pour ouvrir l'éditeur d'expression et ajouter le nom de la période.


Dans l'expression des valeurs, nous ajoutons les valeurs réelles des données pour notre premier indicateur. Pour ce faire, utilisez à nouveau l'éditeur d'expression. Lorsque nous avons terminé, la fenêtre doit ressembler à celle ci-dessous, mais avec des noms différents selon l'indicateur.

Vous pouvez ensuite cliquer sur OK pour fermer la fenêtre. Suivez les mêmes étapes pour ajouter une série pour les autres indicateurs.

Fermez la fenêtre, et les données du graphique linéaire devraient être prêtes. Cependant, quelques ajustements supplémentaires peuvent être nécessaires - la plupart d'entre eux peuvent être trouvés dans le panneau des propriétés du graphique linéaire. Par exemple, lors de la création d'un graphique mois par mois, comme nous l'avons fait dans l'exemple, il n'y a souvent pas assez d'espace pour les noms des mois le long de l'axe des catégories. Ce problème peut être résolu en faisant pivoter les étiquettes de -40 degrés par exemple, en utilisant la propriété Rotation des étiquettes de l'axe des catégories.

De nombreuses autres options sont disponibles pour donner au tableau l'aspect souhaité.

Ajout de rapport au DHIS2¶
Nous pouvons maintenant passer au système DHIS2 et importer notre rapport. Allez dans le Module de rapport de DHIS2, et sélectionnez "Rapport standard". Dans l'écran "Rapport standard", cliquez sur "Ajouter nouveau", ou modifiez un rapport existant.
Dans l'écran suivant, il y a plusieurs actions que nous devons effectuer. Premièrement, entrez un nom pour le nouveau "Rapport standard". Ensuite, pour la conception, cliquez sur "Choisir un fichier" et trouvez le fichier .jrxml- que vous avez édité dans iReport. Sélectionnons ensuite le tableau de rapport que nous avons utilisé comme base pour le rapport dans iReport. Cliquez sur "Ajouter", et il devrait se retrouver dans la zone "Tableaux de rapport sélectionnés". Enfin, cliquez sur Enregistrer.

Le rapport est désormais disponible sous forme de "Rapport standard" dans le système DHIS2 :

Quelques orientations finales¶
-
Utilisez la même version d'iReport et la version de DHIS2 des rapports Jasper. Voir la page À propos de DHIS2 pour connaître la version de Jasper utilisée.
-
Utilisez des tableaux de rapports avec des dimensions de tableaux croisés comme source de données pour la conception de vos rapports. Il sera ainsi beaucoup plus facile de concevoir des rapports dans lesquels vous devez placer des indicateurs, des périodes ou des unités d'organisation spécifiques dans les colonnes.
-
Apprenez des autres, il existe de nombreux modèles de rapports DHIS2 pour Jasper sur launchpad, voir http://bazaar.launchpad.net/~DHIS2-devs-core/DHIS2/trunk/files/head:/resources/
Conception de rapports standard basés sur SQL¶
Un rapport standard peut être basé sur des requêtes SQL. Cela est utile lorsque vous devez accéder à plusieurs tables dans la base de données DHIS2 et faire des sélections et des jointures personnalisées.
- Cette étape est facultative, mais pratique lorsque vous devez déboguer vos rapports et que vous avez un accès direct à la base de données que vous souhaitez utiliser. Cliquez sur le bouton "sources de données des rapports", "Nouveau", "Connexion à la base de données JDBC" et cliquez sur "Suivant". Dans cette fenêtre, vous pouvez donner un nom à votre connexion et sélectionner le pilote JDBC. PostgreSQL et MySQL devraient être inclus dans votre iReport. Saisissez ensuite l'URL de la connexion JDBC, le nom d'utilisateur et le mot de passe. Les trois derniers font référence à votre base de données et peuvent être récupérés dans votre fichier de configuration DHIS2 (hibernate.properties). Cliquez sur "enregistrer". Vous avez maintenant connecté iReport à votre base de données.
- Allez à Rapports standard et cliquez sur "ajouter nouveau", puis "obtenir un modèle de rapport". Ouvrez ce modèle dans iReport. Ce modèle contient une série de paramètres de rapport qui peuvent être utilisés pour créer des instructions SQL dynamiques. Ces paramètres seront substitués en fonction des paramètres de rapport que nous sélectionnerons et inclurons plus tard dans le rapport standard. Ces paramètres sont les suivants :
-
périodes - chaîne constituée d'identifiants séparés par des virgules des périodes relatives
-
nom_de période - nom de la période de déclaration
-
unitésd'organisation - identifiant des unités d'organisation sélectionnées
-
nom_d'unité d'organisation - nom de l'unité d'organisation déclarante
-
niveau_d'unité d'organisation - niveau de l'unité d'organisation déclarante
-
niveau_d'unité d'organisation_colonne - nom de la colonne correspondante dans la table de ressources _structure d'unité d'organisation
Ces paramètres peuvent être inclus dans des instructions SQL en utilisant la syntaxe $P\!{périodes}, où "périodes" représente le paramètre.
- Pour créer une requête SQL dans iReport, cliquez sur le bouton "requête de rapport". Ecrivez ou collez votre requête dans la zone de texte. Voici donc un exemple de requête SQL utilisant des paramètres qui permettront de créer un rapport affichant des valeurs de données brutes au quatrième niveau de la hiérarchie des unités d'organisation :
select district.name as district, chiefdom.name as chiefdom, ou.name as facility,
bcg.value as bcg, yellowfever.value as yellowfever, measles.value as measles
from organisationunit ou
left outer join _orgunitstructure ous
on (ou.organisationunitid=ous.organisationunitid)
left outer join organisationunit district
on (ous.idlevel2=district.organisationunitid)
left outer join organisationunit chiefdom
on (ous.idlevel3=chiefdom.organisationunitid)
left outer join (
select sourceid, sum(cast(value as double precision)) as value
from datavalue
where dataelementid=359706
and periodid=$P!{periods}
group by sourceid) as bcg on bcg.sourceid=ou.organisationunitid
left outer join (
select sourceid, sum(cast(value as double precision)) as value
from datavalue
where dataelementid=35
and periodid=$P!{periods}
group by sourceid) as yellowfever on yellowfever.sourceid=ou.organisationunitid
where ous.level=4
and ous.$P!{organisationunit_level_column}=$P!{organisationunits}
order by district.name, chiefdom.name, ou.name;
- Enfin, de retour dans l'écran d'ajout de nouveau rapport, nous cliquons sur "Utiliser la source de données JDBC". Cela vous permet de sélectionner n'importe quelle période relative et les paramètres de votre rapport. Les périodes relatives sont relatives à la date du jour. Les paramètres du rapport provoquent une invite lors de la création du rapport et permettent de sélectionner dynamiquement les unités d'organisation et les périodes à utiliser pour votre rapport pendant l'exécution. Pour l'exemple ci-dessus, nous devons sélectionner "mois de référence" sous les périodes relatives et à la fois "mois de référence" et "unité d'organisation" sous les paramètres du rapport. Cliquez sur "Sauvegarder". Vous serez alors redirigé vers la liste des rapports, où vous pourrez cliquer sur l'icône verte "créer" à côté de votre rapport pour le rendre.
Conception de rapports standard basés sur HTML¶
Un rapport standard peut être conçu en utilisant uniquement HTML et JavaScript. Cela nécessite un peu d'expérience en matière de développement dans les domaines mentionnés. L'avantage des rapports standard basés sur HTML est qu'ils offrent un maximum de flexibilité. En utilisant HTML, vous pouvez concevoir exactement le rapport que vous souhaitez, en positionnant les tableaux, les logos et les valeurs sur la page selon vos besoins de conception. Vous pouvez écrire et enregistrer votre rapport standard dans un fichier texte ordinaire. Pour télécharger votre rapport standard HTML dans le système DHIS2, procédez comme suit :
-
Naviguez jusqu'aux rapports standard et cliquez sur "Ajouter nouveau".
-
Donnez un nom au rapport.
-
Sélectionnez "Rapport HTML" comme type.
-
Si vous le souhaitez, vous pouvez télécharger un modèle de rapport en cliquant sur "Obtenir le modèle de rapport HTML".
-
Sélectionnez les périodes relatives souhaitées - elles seront disponibles en JavaScript dans votre rapport.
-
Sélectionnez les paramètres du rapport - ils seront disponibles en JavaScript dans votre rapport.
Le modèle de rapport, que vous pouvez télécharger après avoir sélectionné le type de rapport, constitue un point de départ utile pour l'élaboration de rapports standard basés sur HTML. Il vous donne la structure de base et vous suggère comment utiliser JavaScript et CSS dans le rapport. JavaScript et CSS peuvent facilement être inclus en utilisant des balises de script et de style standard.
Si vous avez sélectionné des périodes relatives lors de la création du rapport standard, vous pouvez y accéder en JavaScript sous cette forme :
var périodes = dhis2.report.periods; // Un tableau contenant des identificateurs de périodes
var période = périodes[0];
Si vous avez sélectionné le paramètre de rapport d'unité d'organisation lors de la création du rapport standard, vous pouvez accéder à l'unité d'organisation sélectionnée en JavaScript comme ceci :
var orgUnit = dhis2.report.organisationUnit; // Un objet
var id = id.orgUnit ;
var nom = nom.orgUnit ;
var code = code.orgUnit ;
Lors de la conception de ces rapports, vous pouvez utiliser la ressource Web API d'analyse afin de récupérer des données agrégées en JavaScript. Consultez le chapitre sur l'API Web de ce guide pour une description plus détaillée. A titre d'exemple, vous pouvez récupérer des données analytiques après le chargement du rapport et utiliser ces données pour définir le texte interne d'un élément HTML comme celui-ci :
<script type="text/javascript">
$( document ).ready( function() {
$.get( "../api/analytics?dimension=dx:FnYCr2EAzWS;eTDtyyaSA7f&dimension=pe:THIS_YEAR&filter=ou:ImspTQPwCqd", function( json ) {
$( "#bcg" ).html( json.rows[0][2] );
$( "#fic" ).html( json.rows[1][2] );
} );
} );
</script>
<div>Couverture par le BGG : <span id="bcg"></span></div>
<div>Couverture vaccinale : <span id="fic"></span></div>
Quelques conseils supplémentaires : Pour inclure des graphiques, vous pouvez convertir une image au format SVG et intégrer ce contenu SVG directement dans le rapport - DHIS2 est basé sur HTML 5 où les balises SVG sont un balisage valide. Pour inclure des graphiques et des cartes dans votre rapport, vous pouvez utiliser les ressources graphiques et cartographiques de l'API Web. Vous pouvez utiliser toutes les possibilités de l'API Web à partir de JavaScript dans votre rapport - il serait important de lire le chapitre sur l'API Web pour avoir un aperçu de toutes les ressources disponibles.