Dhis2 End User Manual
Dhis2 End User Manual
What is DHIS2?
DHIS2 Background
Key features and purpose of DHIS2
Use of DHIS2 in HIS: data collection, processing, interpretation, and analysis. Technical background
Difference between Aggregated and Patient data in a HIS
Free and Open Source Software (FOSS): benefits and challenges
Data Entry apps
Routine data Entry app
About the routine Data Entry app
Enter data in a routine data entry form
Mark a data value for follow-up
Edit data values in a completed routine data entry form Display a data value's history
Display a data value's audit trail
Create minimum maximum value range manually Enter data offline
Diseases registration app
About diseases registration app
Enter data in diseases registration app
Plan setting app
About plan setting app
Data entry using plan setting app
Reporting functionality in the report apps
Using standard reports
Using dataset reports
Using reporting rate summary
Using resources
Using organization unit distribution reports
Analyze data in pivot tables
About the PivotTable app
Create a pivot table
Change the display of your pivot table
Manage favorites
Download data from a pivot table
Embed a pivot table in an external web page Visualize pivot table data as a chart or a map
Using the Data Visualizer app
Creating and editing visualizations
Change the display of your visualization
Adding Assigned Categories
Adding more axes
Using multiple visualization types
Data drilling
Manage saved visualizations
Visualization interpretations
Share a visualization
Download
See visualization as map
Using the Maps app
Using the Maps app
About the Maps app
Create a new map
Manage thematic layers
Manage event layers
Manage tracked entity layers
Manage facility layers
Manage boundary layers
Manage Earth Engine layer
Add external map layers
File menu
Map interpretations
Save a map as an image
Search for a location
Measure distances and areas in a map
Get the latitude and longitude at any location
Managing dashboards
About dashboards
Dashboard and control bar
Creating a dashboard
Editing an existing dashboard
Deleting a dashboard
Viewing a dashboard
Dashboard items with charts, pivot tables or maps
Show interpretations and details
Sharing a dashboard
Chapter 1: Introduction to DHIS2
What is DHIS2?
● What is DHIS2 and what purpose does it serve with respect to health information systems (HIS)?
● What are the major technological considerations when it comes to deploying DHIS2, and what are
the options for extending DHIS2 with new modules?
DHIS2 Background
DHIS2 is a tool for collection, validation, analysis, and presentation of aggregate and patient-based
statistical data, tailored (but not limited) to integrated health information management activities. It is a
generic tool rather than a pre-configured database application, with an open meta-data model and a flexible
user interface that allows the user to design the contents of a specific information system without the need
for programming. DHIS2 is a modular web-based software package built with free and open source Java
frameworks.
DHIS2 is open source software released under the BSD license and can be obtained at no cost. It runs on
any platform with a Java Runtime Environment (JRE 7 or higher) installed.
DHIS2 is developed by the Health Information Systems Programme (HISP) as an open and globally
distributed process with developers currently in India, Vietnam, Tanzania, Ireland, and Norway. The
development is coordinated by the University of Oslo with support from NORAD and other donors.
● Provide a comprehensive data management solution based on data warehousing principles and a
modular structure which can easily be customized to the different requirements of a management
information system, supporting analysis at different levels of the organizational hierarchy.
● Customization and local adaptation through the user interface. No programming required to start
using DHIS2 in a new setting (country, region, district etc.).
● Provide data entry tools which can either be in the form of standard lists or tables, or can be
customized to replicate paper forms.
● Provide different kinds of tools for data validation and improvement of data quality.
● Provide easy to use - one-click reports with charts and tables for selected indicators or summary
reports using the design of the data collection tools. Allow for integration with popular external
report design tools (e.g. Jasper Reports) to add more custom or advanced reports.
● Flexible and dynamic (on-the-fly) data analysis in the analytics modules (i.e. GIS, Pivot Tables,
Data Visualizer, Event reports, etc.).
● A user-specific dashboard for quick access to the relevant monitoring and evaluation tools including
indicator charts and links to favorite reports, maps and other key resources in the system.
● Easy to use user-interfaces for metadata management e.g. for adding/editing datasets or health
facilities. No programming needed to set up the system in a new setting.
● Functionality to design and modify calculated indicator formulas.
● User management module for passwords, security, and fine-grained access control (user roles).
● Messages can be sent to system users for feedback and notifications. Messages can also be delivered
to email and SMS.
● Users can share and discuss their data in charts and reports using Interpretations, enabling an active
information-driven user community.
● Functionalities of export-import of data and metadata, supporting synchronization of offline
installations as well as interoperability with other applications.
● Using the DHIS2 Web-API, allows for integration with external software and extension of the core
platform through the use of custom apps.
● Further modules can be developed and integrated as per user needs, either as part of the DHIS2
portal user interface or a more loosely-coupled external application interacting through the DHIS2
Web -API.
In summary, DHIS2 provides a comprehensive HIS solution for the reporting and analysis needs of health
information users at any level.
The wider context of HIS can be comprehensively described through the information cycle presented in
Figure 1.1 below. The information cycle pictorially depicts the different components, stages and processes
through which the data is collected, checked for quality, processed, analysed and used.
● Collecting data.
● Running quality checks.
● Data access at multiple levels.
● Reporting.
● Making graphs and maps and other forms of analysis.
● Enabling comparison across time (for example, previous months) and space (for example, across
facilities and districts).
● See trends (displaying data in time series to see their min and max levels).
As a first step, DHIS2 serves as a data collection, recording and compilation tool, and all data (be it in
numbers or text form) can be entered into it. Data entry can be done in lists of data elements or in
customized user defined forms which can be developed to mimic paper based forms in order to ease the
process of data entry.
As a next step, DHIS2 can be used to increase data quality. First, at the point of data entry, a check can be
made to see if data falls within acceptable range levels of minimum and maximum values for any particular
data element. Such checking, for example, can help to identify typing errors at the time of data entry.
Further, users can define various validation rules, and DHIS2 can run the data through the validation rules
to identify violations. These types of checks help to ensure that data entered into the system is of good
quality from the start, and can be improved by the people who are most familiar with it.
When data has been entered and verified, DHIS2 can help to make different kinds of reports. The first kind
are the routine reports that can be predefined, so that all those reports that need to be routine generated can
be done on a click of a button. Further, DHIS2 can help in the generation of analytical reports through
comparisons of for example indicators across facilities or over time. Graphs, maps, reports and health
profiles are among the outputs that DHIS2 can produce, and these should routinely be produced, analyzed,
and acted upon by health managers.
Technical background
DHIS2 as a platform
DHIS2 can be perceived as a platform on several levels. First, the application database is designed ground-
up with flexibility in mind. Data structures such as data elements, organization units, forms and user roles
can be defined completely freely through the application user interface. This makes it possible for the
system to be adapted to a multitude of locale contexts and use-cases. We have seen that DHIS2 supports
most major requirements for routine data capture and analysis emerging in country implementations. It also
makes it possible for DHIS2 to serve as a management system for domains such as logistics, labs and
finance.
Second, due to the modular design of DHIS2 it can be extended with additional software modules or
through custom apps. These software modules/apps can live side by side with the core modules of DHIS2
and can be integrated into the DHIS2 portal and menu system. This is a powerful feature as it makes it
possible to extend the system with extra functionality when needed, typically for country specific
requirements as earlier pointed out.
The downside of the software module extensibility is that it puts several constraints on the development
process. The developers creating the extra functionality are limited to the DHIS2 technology in terms of
programming language and software frameworks, in addition to the constraints put on the design of
modules by the DHIS2 portal solution. Also, these modules must be included in the DHIS2 software when
the software is built and deployed on the web server, not dynamically during run-time.
In order to overcome these limitations and achieve a looser coupling between the DHIS2 service layer and
additional software artifacts, a REST-based API has been developed as part of DHIS2. This Web API
complies with the rules of the REST architectural style. This implies that:
● The Web API provides a navigable and machine-readable interface to the complete DHIS2 data
model. For instance, one can access the full list of data elements, then navigate using the provided
URL to a particular data element of interest, then navigate using the provided URL to the list of
datasets which the data element is a member of.
● (Meta) Data is accessed through a uniform interface (URLs) using plain HTTP requests. There are
no fancy transport formats or protocols involved - just the well-tested, well-understood HTTP
protocol which is the main building block of the Web today. This implies that third-party developers
can develop software using the DHIS2 data model and data without knowing the DHIS2 2 specific
technology or complying with the DHIS2 design constraints.
● All data including meta-data, reports, maps and charts, known as resources in REST terminology,
can be retrieved in most of the popular representation formats of the Web of today, such as XML,
JSON, PDF and PNG. These formats are widely supported in applications and programming
languages and gives third-party developers a wide range of implementation options.
All computers have an Operating System (OS) to manage it and the programs running it. The operating
system serves as the middle layer between the software application, such as DHIS2, and the hardware, such
as the CPU and RAM. DHIS2 runs on the Java Virtual Machine, and can therefore run on any operating
system which supports Java. Platform independence implies that the software application can run on ANY
OS - Windows, Linux, Macintosh etc. DHIS2 is platform independent and thus can be used in many
different contexts depending on the exact requirements of the operating system to be used.
Additionally, DHIS2 supports three major database management systems (DBMS). DHIS2 uses the
Hibernate database abstraction framework and is compatible with the following database systems:
PostgreSQL, MySQL and H2. PostgreSQL and MySQL are high-quality production ready databases, while
H2 is a useful in-memory database for small-scale applications or development activities.
Lastly, and perhaps most importantly, since DHIS2 is a browser-based application, the only real
requirement to interact with the system is with a web browser. DHIS2 supports most web browsers,
although currently either Google Chrome, Mozilla Firefox or Opera are recommended.
DHIS2 is a network enabled application and can be accessed over the Internet, a local intranet as well as a
locally installed system. The deployment alternatives for DHIS2 are in this chapter defined as i) offline
deployment ii) online deployment and iii) hybrid deployment. The meaning and differences will be
discussed in the following sections.
Offline Deployment
An off-line deployment implies that multiple standalone off-line instances are installed for end users,
typically at the district level. The system is maintained primarily by the end users/district health officers
who enter data and generate reports from the system running on their local server. The system will also
typically be maintained by a national super-user team who pay regular visits to the district deployments.
Data is moved upwards in the hierarchy by the end users producing data exchange files which are sent
electronically by email or physically by mail or personal travel. (Note that the brief Internet connectivity
required for sending emails does not qualify for being defined as on-line). This style of deployment has the
obvious benefit that it works when appropriate Internet connectivity is not available. On the other side there
are significant challenges with this style which are described in the following section.
● Hardware: Running stand-alone systems requires advanced hardware in terms of servers and
reliable power supply to be installed, usually at district level, all over the country. This requires
appropriate funding for procurement and plan for long-term maintenance.
● Software platform: Local installs implies a significant need for maintenance. From experience,
the biggest challenge is viruses and other malware which tend to infect local installations in the
long-run. The main reason is that end users utilize memory sticks for transporting data exchange
files and documents between private computers, other workstations and the system running the
application. Keeping anti-virus software and operating system patches up to date in an off-line
environment are challenging and bad practices in terms of security are often adopted by end users.
The preferred way to overcome this issue is to run a dedicated server for the application where no
memory sticks are allowed and use an Linux based operating system which is not as prone for virus
infections as MS Windows.
● Software application: Being able to distribute new functionality and bug-fixes to the health
information software to users are essential for maintenance and improvement of the system. Relying
on the end users to perform software upgrades requires extensive training and a high level of
competence on their side as upgrading software applications might be a technically challenging
task. Relying on a national super-user team to maintain the software implies a lot of traveling.
● **Database maintenance: **A prerequisite for an efficient system is that all users enter data with a
standardized meta-data set (data elements, forms etc). As with the previous point about software
upgrades, distribution of changes to the meta-data set to numerous off-line installations requires
end user competence if the updates are sent electronically or a well-organized super-user team.
Failure to keep the meta-data set synchronized will lead to loss of ability to move data from the
districts and/or an inconsistent national database since the data entered for instance at the district
level will not be compatible with the data at the national level.
Online deployment
An on-line deployment implies that a single instance of the application is set up on a server connected to
the Internet. All users (clients) connect to the on-line central server over the Internet using a web browser.
This style of deployment is increasingly possible due to increased availability in (mobile) Internet coverage
globally, as well as readily available and cheap cloud-computing resources. These developments make it
possible to access on-line servers in even the most rural areas using mobile Internet modems (also referred
to as dongles).
This on-line deployment style has huge positive implications for the implementation process and
application maintenance compared to the traditional off-line standalone style:
● Hardware: Hardware requirements on the end-user side are limited to a reasonably modern
computer/laptop and Internet connectivity through a fixed line or a mobile modem. There is no need
for a specialized server for each user, any Internet enabled computer will be sufficient. A server
will be required for on-line deployments, but since there is only one (or several) servers which need
to be procured and maintained, this is significantly simpler (and cheaper) than maintaining many
separate servers in disparate locations. Given that cloud-computing resources continue to steadily
decrease in price while increasing in computational power, setting up a powerful server in the cloud
is far cheaper than procuring hardware.
● Software platform: The end users only need a web browser to connect to the on-line server. All
popular operating systems today are shipped with a web browser and there is no special requirement
on what type or version. This means that if severe problems such as virus infections or software
corruption occur one can always resort to re-formatting and installing the computer operating
system or obtain a new computer/laptop. The user can continue with data entry where it was left
and no data will be lost.
● Software application: The central server deployment style means that the application can be
upgraded and maintained in a centralized fashion. When new versions of the applications are
released with new features and bug-fixes it can be deployed to the single on-line server. All changes
will then be reflected on the client side the next time end users connect over the Internet. This
obviously has a huge positive impact for the process of improving the system as new features can
be distributed to users immediately, all users will be accessing the same application version, and
bugs and issues can be sorted out and deployed on-the-fly.
● **Database maintenance: **Similar to the previous point, changes to the meta-data can be done
on the on-line server in a centralized fashion and will automatically propagate to all clients next
time they connect to the server. This effectively removes the vast issues related to maintaining an
upgraded and standardized meta-data set related to the traditional off-line deployment style. It is
extremely convenient for instance during the initial database development phase and during the
annual database revision processes as end users will be accessing a consistent and standardized
database even when changes occur frequently.
This approach might be problematic in cases where Internet connectivity is volatile or missing in long
periods of time. DHIS2 however has certain features which require Internet connectivity to be available
only part of the time for the system to work properly, such as offline data entry. In general, however, DHIS2
does require Internet connectivity of some sort, but this is increasingly an easy problem to solve even in
remote locations.
Hybrid deployment
From the discussion so far, one realizes that the on-line deployment style is favorable over the off-line style
but requires decent Internet connectivity where it will be used. It is important to notice that the mentioned
styles can co-exist in a common deployment. It is perfectly possible to have on-line as well as off-line
deployments within a single country. The general rule would be that districts and facilities should access
the system on-line over the Internet where sufficient Internet connectivity exists, and off-line systems
should be deployed to districts where this is not the case.
Defining decent Internet connectivity precisely is hard but as a rule of thumb the download speed should
be minimum 10 Kbyte/second for the client and at least 1 Mbit/sec (dedicated) bandwidth for the server.
In this regard mobile Internet modems which can be connected to a computer or laptop and access the
mobile network is an extremely capable and feasible solution. Mobile Internet coverage is increasing
rapidly all over the world, often providing excellent connectivity at low prices and is a great alternative to
local networks and poorly maintained fixed Internet lines. Getting in contact with national mobile network
companies regarding post-paid subscriptions and potential large-order benefits can be a worthwhile effort.
The network coverage for each network operator in the relevant country should be investigated when
deciding which deployment approach to opt for as it might differ and cover different parts of the country.
Server hosting
The on-line deployment approach raises the question of where and how to host the server which will run
the DHIS2 application. Typically, there are several options:
The main reason for choosing the first option is often political motivation for having “physical ownership”
of the database. This is perceived as important by many in order to “own” and control the data. There is
also a wish to build local capacity for server administration related to sustainability of the project. This is
often a donor-driven initiative as it is perceived as a concrete and helpful mission.
Regarding the second option, some places a government data center is constructed with a view to promoting
and improving the use and accessibility of public data. Another reason is that a proliferation of internal
server environments is very resource demanding and it is more effective to establish centralized
infrastructure and capacity.
Regarding external hosting there is lately a move towards outsourcing the operation and administration of
computer resources to an external provider, where those resources are accessed over the network, popularly
referred to as “cloud computing” or “software as a service”. Those resources are typically accessed over
the Internet using a web browser.
The primary goal for an on-line server deployment is provide long-term stable and high-performance
accessibility to the intended services. When deciding which option to choose for server environment there
are many aspects to consider:
1. Human capacity for server administration and operation. There must be human resources with
general skills in server administration and in the specific technologies used for the application
providing the services. Examples of such technologies are web servers and database management
platforms.
2. Reliable solutions for automated backups, including local off-server and remote backup.
3. Stable connectivity and high network bandwidth for traffic to and from the server.
4. Stable power supply including a backup solution.
5. Secure environment for the physical server regarding issues such as access, theft and fire.
6. Presence of a disaster recovery plan. This plan must contain a realistic strategy for making sure that
the service will be only suffering short down-times in the event of hardware failures, network
downtime and more.
7. Feasible, powerful and robust hardware.
All of these aspects must be covered in order to create an appropriate hosting environment. The hardware
requirement is deliberately put last since there is a clear tendency to give it too much attention.
Looking back at the three main hosting options, experience from implementation missions in developing
countries suggests that all of the hosting aspects are rarely present in option one and two at a feasible level.
Reaching an acceptable level in all these aspects is challenging in terms of both human resources and
money, especially when compared to the cost of option three. It has the benefit that it accommodates the
mentioned political aspects and builds local capacity for server administration, on the other hand can this
be provided for in alternative ways.
Option three - external hosting - has the benefit that it supports all of the mentioned hosting aspects at a
very affordable price. Several hosting providers - of virtual servers or software as a service - offer reliable
services for running most kinds of applications. Example of such providers are Linode and Amazon Web
Services. Administration of such servers happens over a network connection, which most often anyway is
the case with local server administration. The physical location of the server in this case becomes irrelevant
as such providers offer services in most parts of the world. This solution is increasingly becoming the
standard solution for hosting of application services. The aspect of building local capacity for server
administration is compatible with this option since a local ICT team can be tasked with maintaining the
externally hosted server, but without being burdened with worrying about power supply and bandwidth
constraints which usually exist outside of major data centers.
An approach for combining the benefits of external hosting with the need for local hosting and physical
ownership is to use an external hosting provider for the primary transactional system, while mirroring this
server to a locally hosted non-critical server which is used for read-only purposes such as data analysis and
accessed over the intranet.
Patient data is data relating to a single patient, such as his/her diagnosis, name, age, earlier medical history
etc. This data is typically based on a single patient-health care worker interaction. For instance, when a
patient visits a health care clinic, a variety of details may be recorded, such as the patient's temperature,
their weight, and various blood tests. Should this patient be diagnosed as having "Vitamin B 12 deficiency
anemia, unspecified" corresponding to ICD-10 code D51.9, this particular interaction might eventually get
recorded as an instance of "Anemia" in an aggregate based system. Patient based data is important when
you want to track longitudinally the progress of a patient over time. For example, if we want to track how
a patient is adhering to and responding to the process of TB treatment (typically taking place over 6-9
months), we would need patient based data.
Aggregated data is the consolidation of data relating to multiple patients, and therefore cannot be traced
back to a specific patient. They are merely counts, such as incidences of Malaria, TB, or other diseases.
Typically, the routine data that a health facility deals with is this kind of aggregated statistics, and is used
for the generation of routine reports and indicators, and most importantly, strategic planning within the
health system. Aggregate data cannot provide the type of detailed information which patient level data can,
but is crucial for planning and guidance of the performance of health systems.
In between the two you have case-based data, or anonymous "patient" data. A lot of details can be collected
about a specific health event without necessarily having to identify the patient it involved. Inpatient or
outpatient visits, a new case of cholera, a maternal death etc. are common use-cases where one would like
to collect a lot more detail than just adding to the total count of cases, or visits. This data is often collected
in line-listing type of forms, or in more detailed audit forms. It is different from aggregate data in the sense
that it contains many details about a specific event, whereas the aggregate data would count how many
events of a certain type, e.g. how many outpatient visits with principal diagnosis "Malaria", or how many
maternal deaths where the deceased did not attend ANC, or how many cholera outbreaks for children under
5 years. In DHIS2 this data is collected through programs of the type single event without registration.
Patient data is highly confidential and therefore must be protected so that no one other than doctors can get
it. When on paper, it must be properly stored in a secure place. For computers, patient data needs secure
systems with passwords, restrained access and audit logs.
Security concerns for aggregated data are not as crucial as for patient data, as it is usually impossible to
identify a particular person to an aggregate statistic. However, data can still be misused and misinterpreted
by others, and should not be distributed without adequate data dissemination policies in place.
Software carries the instructions that tell a computer how to operate. The human authored and human
readable form of those instructions is called source code. Before the computer can actually execute the
instructions, the source code must be translated into a machine readable (binary) format, called the object
code. All distributed software includes the object code, but FOSS makes the source code available as well.
Proprietary software owners license their copyrighted object code to a user, which allows the user to run
the program. FOSS programs, on the other hand, license both the object and the source code, permitting
the user to run, modify and possibly redistribute the programs. With access to the source code, the users
have the freedom to run the program for any purpose, redistribute, probe, adapt, learn from, customize the
software to suit their needs, and release improvements to the public for the good of the community. Hence,
some FOSS is also known as free software, where “free” refers, first and foremost, to the above freedoms
rather than in the monetary sense of the word.
Within the public health sector, FOSS can potentially have a range of benefits, including:
● Lower costs as it does not involve paying for prohibitive license costs.
● Given the information needs for the health sector are constantly changing and evolving, there is a
need for the user to have the freedom to make the changes as per the user requirements. This is
often limited in proprietary systems.
● Access to source code to enable integration and interoperability. In the health sector interoperability
between different software applications is becoming increasingly important, meaning enabling two
or more systems to communicate metadata and data. This work is a lot easier, and sometimes
dependent on the source code being available to the developers that create the integration. This
availability is often not possible in the case of proprietary software. And when it is, it comes at a
high cost and contractual obligations.
● FOSS applications like DHIS2 typically are supported by a global network of developers, and thus
have access to cutting edge research and development knowledge.
4. Select a Period.
The available periods are controlled by the period type of the data set (reporting frequency). You can
jump a year back or forward by clicking Prev year or Next year.
Note: Depending on how you've configured the data entry form, you might have to enter additional
information before you can open the date entry form. This can for example be a project derived from a
category combination.
5. Enter data in the data entry form.
● A green field means that the system has saved the value.
● A gray field means that the field is disabled and you can't enter a value. The cursor
will automatically jump to the next open field.
● To move to the next field, press the Tab key or the Down Arrow key.
● To move back to the previous field, press Shift + Tab or the Up Arrow key.
● If you type in an invalid value, for example a character in a field that only accepts
numeric values, you'll get a pop-up that explains the problem and the field will be
colored yellow (not saved) until you have corrected the value.
● If you have defined a minimum maximum value range for the field and you enter a
value that is outside this range, you'll get a pop-up message that says the value is out
of range. The value remains unsaved until you've changed the value or updated the
value range and then re-entered the value.
6. Validations check: If there are no violations of the validation rules, you'll see a message
saying the data entry screen successfully passed validation. If there are validation
violations, they will be presented as a popup message.
If you for example have a suspicious value that you need to investigate further, you can keep it the system,
but mark it for follow-up. In the Data Quality app you can then run a follow-up analysis to view and correct
all marked values.
The audit trail allows you to view other data values which have been entered prior to the current value. The
audit trail also shows when the data value was altered and which user who made the changes.
If values don't fall within the new value range the next time you enter data, the data entry cell will
appear with an orange background.
5. (Optional) Type a comment to explain the reason for the discrepancy, for example an event at a
facility which may have generated a large number of clients.
6. (Optional) Click Save comment.
Tip
Click the star icon to mark the value for further follow-up.
Note
To use this functionality, you must login to the server while you've an Internet connection.
● When you're connected to the Internet, the app displays this message at the top of the data entry
form:
● If your Internet connection breaks during data entry, the app detects it and displays this message:
Now your data will be stored locally. You can continue to enter data as normal.
● Once you have entered all necessary data and the app detects that the Internet connection is back,
you'll see this message:
● When the data has successfully synchronized with the server, you'll see this confirmation message:
Diseases registration app
4. Select a Period.
The available periods are controlled by the period type of the data set (reporting frequency). You can
jump a year back or forward by clicking Prev year or Next year.
5. Select a Department.
Select a department for the data entered (OPD and IPD)
6. Select the outcome
Select the outcome (Morbidity or mortality) we entered data
Plan setting app
4. Select a Period.
The available periods are controlled by the period type of the data set (reporting frequency). You can
jump a year back or forward by clicking Prev year or Next year.
Chapter 3: Reporting
Reporting functionality in the reports app
The reports app allows for canned, standard reports, data set reports, resources and org unit distribution
reports and custom data set reports.
Standard reports
You access the available reports by navigating to Apps->Reports. In the report menu in the left bar, click
standard report. A list of all predefined reports will appear in the main window.
You run/view a report by clicking on the triple-dot icon of the report and then selecting "Create" from the
contextual menu. If there are any predefined parameters, you will see a report parameter window where
you must fill in the values needed for org unit and/or reporting month, depending on what has been defined
in the underlying report table(s). Click on "Generate Report" when you are ready. The report will either
appear directly in your browser or be available as a PDF file for download, depending on your browser
settings for handling PDF files. You can save the file and keep it locally on your computer for later use.
Dataset reports
Dataset reports are printer friendly views of the data entry screen filled with either raw or aggregated data.
You can access data set reports from Apps->Reports.
A Criteria window will appear where you fill in the details for your report: You can select the Orgunit you
want to see => select the data set you want to generate=> period=> get report so the report will be displayed.
❑ Dataset: The data set you want to display which is found in the thematic area. In our context there
are 24 data sets for service, 5 for hospital & health center quality and reform, and 1 for disease data
sets.
Note: By clicking the option found at the bottom of the window navigated, you can filter out either by
facility type, ownership, location, settlement which helps to see the report of a facilities
properties/classification.
Report period: The actual period you want data for. This can be aggregated as well as raw periods. This
means that you can ask for a quarterly or annual report even though the data set is collected monthly. A
data set's period type (collection frequency) is defined in data set maintenance. First select the period type
(Monthly, Quarterly, Yearly, etc.) in the drop down next to Prev and Next buttons for our country context
we use financial year period (Bi annually, Six monthly, Six monthly April, Six monthly November,
financial, financial April, Financial July, Financial October, financial November etc.) and then select one
of the available periods from the dropdown list below. Use Prev and Next to jump one year back or forward.
Use data for selected units only: Use this option if you want a report for an org unit that has children, but
only want the data collected directly for this unit and not the data collected by its children. If you want a
typical aggregated report for an org unit you do not want to tick this option.
Report Organization unit: Here you select the orgunit you want the report for. This can be at any level
in the hierarchy as the data will be aggregated up to this level automatically (if you do not tick the option
above). When you are done filling in the report criteria you click on "Get Report". The report will appear
as HTML in a printer-friendly format. Use the print and save as functions in the browser to print or save
(as HTML) the report. You can also export the data set report in Excel and PDF formats.
Reporting rate summary
Access the reporting rate summary from the Apps->Reports menu. Reporting rate summaries will show
how many datasets (forms) that have been submitted by organization unit and period.
The reporting rate calculation is based on complete data set registrations. A complete data set registration
refers to a user marking a data entry form as complete, typically by clicking the complete button in the data
entry screen, hereby indicating to the system that it considers the form to be complete. This is i.e. a
subjective approach to calculating completeness.
The reporting rate summary will for each row show a range of measures:
Actual reports: Indicates the number of data entry complete registrations for the relevant data set.
Expected reports: Indicates how many data entry complete registrations are expected. This number is based
on the number of organization units the relevant data set has been assigned to (enable for data entry).
Reporting rate: The percentage of reports registered as complete based on the number expected.
Reports on time: Same as actual reports, only reports registered as complete within the maximum number
of days after the end of the reporting period. This number of days after the reporting period can be defined
per data set in the data set management.
Reporting rate on time: Same as percentage, only reports registered as complete on time used as
numerator.
To run the report you can follow these steps:
Select an org unit from the tree=> select a data set=> select a period type and a period from the list of
available periods for that period type.
The report will then be rendered. Change any of the parameters above and click "Get report" again to see
the corresponding results.
Reporting functionality in the reports app
Using resources
The resource tool allows you to upload both files from your local computer to the DHIS2 server and to add
links to other resources on the Internet through URLs. If cloud storage is configured for your system,
resources will be saved there.
To create a new resource:
Open the Reports app => Resource=>Add new=> Enter a Name, then
Select a Type: Upload file or External URL.
Click Save.
Organization unit distribution reports
You can access the orgunit Distribution reports from the left side menu in the Apps->Reports.
Orgunit distribution reports are reports that show how the org units are distributed on various properties
like type and ownership and by geographical areas.
The result can be presented in a table-based report or in a chart.
Running a report:
To run a report first select an org unit in the upper left side orgunit tree. The report will be based on org
units located under the selected orgunit. Select the orgunit group set that you want to use, typically these
are Type, Ownership, Rural/Urban, but can be any user-defined orgunit group set. Then you can click on
either Get Report to get the table-based presentation or Get chart to get the same result in a chart. You can
also download the table-based report as Excel or CSV
Custom data set report: Dataset reports are printer friendly views of the data entry screen filled with
aggregated data which is customized based on Ethiopian report context which is as a customized data set
& sectioned with thematic area feature. So, you can generate all the section feathers in a single form or in
a specified single form.
You can access data set reports from Apps->Custom Data Set Report.
Custom data set reports help you to generate reports in the form data entry report form with a specified
data set, reporting period, and reporting column with our interest of report attributes.
Apps=> data set=> period type=> reporting column (period is default selection but, based on your interest
you can select organization units if the data to be presented by facility/org unit is displayed on the column).
Disease report is generated by using this custom data set report app.
Chapter 4 : Data Analytics
Pivot table
About the Pivot Table app
With the Pivot Table app, you can create pivot tables based on all available data dimensions in DHIS2.
A pivot table is a dynamic tool for data analysis which lets you summarize and arrange data according
to its dimensions. Examples of data dimensions in DHIS2 are:
● Data dimension itself (for example data elements, indicators and events)
● Periods (representing the time period for the data)
● Organization hierarchy (representing the geographical location of the data)
From these dimensions you can freely select dimension items to include in the pivot table. You can
create additional dimensions in DHIS2 with the group set functionality. This allows for different
aggregation pathways, such as aggregation by "Ownership" or facility type.
A pivot table can arrange data dimensions on columns, rows, and as filters. When you place a data
dimension on columns, the pivot table will display one column per dimension item. If you place
multiple data dimensions on columns, the pivot table displays one column for all combinations of the
items in the selected dimensions. When you place a data dimension on rows, the pivot table displays
one row per dimension item in a similar fashion. The dimensions you select as filters will not be
included in the pivot table, but will aggregate and filter the table data based on the selected filter items.
Create a pivot table
In the menu to the left, select the dimension items you want to analyze, for example data elements or
indicators.
Click Layout and arrange the data dimensions as columns, rows and filters
Click Update.
Click Update.
You can combine these dimensions to display for example aggregate data with reporting rates, or event
data items together with program indicators, all in the same pivot tables. For the "data element" data
dimension, you are also able to select "Totals" and "Details", which will allow you to view different
category combination options together on the same pivot table.
For the period dimension you can choose between using fixed periods or relative periods. An example
of a fixed period is "Last Financial year". To select fixed periods start by selecting a period type from
the period type list. You can then select periods from the list of available periods.
Relative periods are periods relative to the current date. Examples of relative periods are "Last month",
"Last 12 months", "Last 5 years". Relative periods can be selected by ticking the check-boxes next to
each period. The main advantage of using relative periods is that when you save a pivot table favorite,
it will stay updated with the latest data as time goes by without the need for constantly updating it.
For the organization unit dimension you can select any number of organization units from the hierarchy.
To select all organization units below a specific parent organization unit, right click and click "Select
all children". To manually select multiple organizational units, click and hold the Ctrl key while
clicking on organization units. You can tick "User org unit", "User sub-units" or "User sub-x2-units"
in order to dynamically insert the organization unit or units associated with your user account. This is
useful when you save a pivot table favorite and want to share it with other users, as the organization
units linked with the other user's account will be used when viewing the favorite.
Tip
Dynamic dimensions can consist of organization unit group sets, data element group sets, or category
option group sets which have been configured with the type of "Disaggregation". Once the group sets
have been configured, they will become available in the pivot tables, and can be used as additional
analysis dimensions, for instance to analyze aggregate data by Type of organization unit or Facility
type. Dynamic dimensions work the same as fixed dimension
Modify pivot table layout
After selecting data dimensions it is time to arrange your pivot table. Click "Layout" in the top menu
to open the layout screen. In this screen you can position your data dimensions as table columns, rows
or filters by clicking and dragging the dimensions from the dimensions list to the respective column,
row and filter lists. You can set any number of dimensions in any of the lists. For instance, you can
click on "Organization units" and drag it to the row list in order to position the organization unit
dimension as table rows. Note that indicators, data elements and data set reporting rates are part of the
common "Data" dimension and will be displayed together in the pivot table. For instance, after selecting
indicators and data elements in the left menu, you can drag "Organisation Unit" from the available
dimensions list to the row dimension list in order to arrange them as rows in the pivot table.
After you have set up your pivot table you can click "Update" to render your pivot table, or click "Hide"
to hide the layout screen without any changes taking effect. Since we in our example have
selected both the period and organization unit dimension as rows, the pivot table will generate all
combinations of the items in these dimensions and produce a table like this:
Change the display of your pivot table
Open the Pivot Table app.
Create a new pivot table or open a favorite.
Click Options.
Set the options as required.
Click Update.
Pivot table options
Option Description
Data Show column totals Show Displays total values in the table
row totals for each row and column, as well
as a total for all values in the table.
Parameters
(for standard
reports only) Note
You create standard reports in the Reports app.
In the Pivot Table app you set which parameters the system should
prompt the user for.
Manage favorites
Saving your charts or pivot tables as favorites makes it easy to find them later. You can also choose to
share them with other users as an interpretation or display them on the dashboard.
You view the details and interpretations of your favorites in the Pivot Table, Data Visualizer, Event
Visualizer, Event Reports apps. Use the Favorites menu to manage your favorite
Open a favorite
Click Favorites > Open.
Enter the name of a favorite in the search field, or click Prev and Next to display favorites.
Click the name of the favorite you want to open.
Save a favorite
Click Favorites > Save as.
Enter a Name and a Description for your favorite. The description field supports a rich text format, see
the interpretations section for more details.
Click Save.
Rename a favorite
Click Favorites > Rename.
Enter the new name for your favorite.
Click Update.
Write an interpretation for a favorite
An interpretation is a link to a resource with a description of the data at a given period. This information
is visible in the Dashboard app. To create an interpretation, you first need to create a favorite. If you've
shared your favorite with other people, the interpretation you write is visible to those people.
Click Favorites > Write interpretation.
In the text field, type a comment, question or interpretation. You can also mention other users with
'@username'. Start by typing '@' plus the first letters of the username or real name and a mentioning
bar will display the available users. Mentioned users will receive an internal DHIS2 message with the
interpretation or comment. You can see the interpretation in the Dashboard app.
It is possible to format the text with bold, italic by using the Markdown style markers * and _ for
bold and italic respectively. Keyboard shortcuts are also available: Ctrl/Cmd + B and Ctrl/Cmd +
A limited set of smilies is supported and can be used by typing one of the following character
combinations: :) :-) :( :-( :+1 :-1. URLs are automatically detected and converted into a clickable link.
Search for a user group that you want to share your favorite with, then click the + icon.
Change sharing settings for the user groups you want to modify.
Can edit and view: Everyone can view and edit the object.
Can view only: Everyone can view the object.
None: The public won't have access to the object. This setting is only applicable to Public access.
ClickShare.
Subscribe to a favorite
When you are subscribed to a favorite, you receive internal messages whenever another user likes/
creates/updates an interpretation or creates/update an interpretation comment of this favorite.
Open a favorite.
Click >>> in the top right of the workspace.
Click on the upper-right bell icon to subscribe to this favorite.
Create a link to a favorite
Click Favorites > Get link.
Select one of the following:
Open in this app: You get a URL for the favorite which you can share with other users by email or
chat.
Open in web api: You get a URL of the API resource. By default this is an HTML resource, but you
can change the file extension to ".json" or ".csv".
Delete a favorite
Click Favorites > Delete.
Click OK.
View interpretations based on relative periods
To view interpretations for relative periods, such as a year ago:
Open a favorite with interpretations.
Click >>> in the top right of the workspace.
Click an interpretation. Your chart displays the data and the date based on when the interpretation was
created. To view other interpretations, click them.
Download data from a pivot table
Download table layout data format
To download the data in the current pivot table:
Click Download.
Under Table layout, click the format you want to download: Microsoft Excel, CSV or HTML. The data
table will have one column per dimension and contain names of the dimension items.
Tip
Raw data Put the cursor on Provides the actual SQL statement
SQL Advanced used to generate the pivot table. You
and click Raw data SQL can use it as a data source in a Jasper
report, or as the basis for an SQL view.
Download a CSV format without rendering data in the web browser
You can download data in CSV format directly without rendering the data in the web browser. This
helps to reduce any constraints in the system settings that has been set with regards to the maximum
number of analytic records. This lets you download much larger batches of data that you can use for
later offline analysis.
To download data in CSV format without first rendering data in the web browser:
To verify the selection, hold the cursor over Open selection as a chart. The highlighted dimension
headers in the table indicate what data will be visualized as a chart.
Click Open selection as a chart.
Open a pivot table as a map
1. Click Chart > Open this table as map
Your current pivot table opens as a map.
Open a pivot table selection as a map
In the pivot table, click a value.
A menu displays.
Click Open selection as map.
Your selection opens as a m
Using the Data Visualizer app
Select dimensions
From the dimensions menu on the left you can select the dimensions you want to show in your
visualization, including data, period, organization units and dynamic dimensions. These can be added
by clicking on a dimension, by dragging and dropping a dimension to the layout area or by hovering
over a dimension and using on its context menu (three dots
Just like in the dimensions menu, in the layout area you can also change the selections by clicking on
a dimension, dragging and dropping a dimension or by using a dimension's context menu (three dots).
Series: A series is a set of continuous, related elements (for example periods or data elements) that you
want to visualize in order to emphasize trends or relations in its data. Also known as Columns for Pivot
table visualizations.
Categories: A category is a set of elements (for example indicators or organization units) for which you
want to compare its data. Also known as Rows for Pivot table visualizations.
Filter: The filter selection will filter the data displayed in the visualization. Note that if you use the data
dimension as filter, you can only specify a single indicator or data set as filter item, whereas with other
dimension types you can select any number of items.
Select dimension items
A dimension refers to the elements that describe the data values in the system. There are three main
dimensions in the system:
Data: Includes data elements, indicators and datasets (reporting rates), describing the phenomena or
event of the data.
Periods: Describes when the event took place.
Organization units: Describes where the event took place.
Data Visualizer is highly flexible in terms of allowing you to use these dimensions as series, categories
and filters.
To select items for a dimension, open the dimension modal window by clicking on a dimension. This
window will also be opened automatically when adding a dimension without selected items to the
layout. Select which items to add to the visualization by double-clicking an item or by selecting an item
with a single click and using the arrows in the middle. The order of appearance will be the same as the
order in which they are selected. Selected items can be reordered by dragging and dropping them in
the selected section.
Select data items
When selecting data items, there are different ways to filter the displayed items. By using the search
field at the top, a global search by item name is performed across the currently selected Data Type. By
selecting a Data Type from the dropdown, items can be filtered by type and subtype, where the subtype
available depends on the selected data type. The name search and the type/subtype filtering can be
combined as well for a more detailed filter. The type of each displayed item is indicated by a
corresponding icon on the item. By hovering over an item, the name of the type can be viewed as well.
Select periods
When selecting a Period you have the option to choose between fixed periods and relative periods.
These can also be combined. Overlapping periods are filtered so that they only appear once. For relative
periods the names are relative to the current date, e.g. if the current month is March and Last month is
selected, the month of February is shown in the visualization
Select organization units
The organization units dialog is flexible, offering essentially three ways of selecting organization units:
Explicit selection: Use the tree to explicitly select the organization units you want to appear in the
visualization. If you right-click on an organization unit you can easily choose to select all org units
below it.
Levels and groups: The Level and Group dropdowns are a convenient way to select all units in one or
more org unit groups or at specific levels. Example: select Zone (level 3) to get all org units at that
level.
Please note that as soon as at least one level or group has been selected the org unit tree now acts as
the boundary for the levels/groups. Example: if you select Zone (level 3) and Region (at level 2) in the
tree you get all zone units inside the selected Region.
User organization unit: This is a way to dynamically select the org units that the logged in user is
associated with.
User sub-x2-units: Selects the unit two levels below the user organization unit.
Two category charts
Most chart visualization types can show two categories. Switching from Pivot Table to Column, Bar,
Area (and their stacked versions) and Line is keeping the first two dimensions in Category, any
additional dimension is moved to Filter. The labels for the first dimension in Category are shown at the
top of the chart, and the ones for the second dimension at the bottom. The resulting visualization is
composed of separate charts, one for each item in the first dimension.
Change the display of your visualization
The display of visualization can be changed by enabling/disabling and configuring several options.
Each visualization type can have a different set of available options. The options are organized in tabs
in the Options dialog and in sections within each tab.
Option Description
Data tab
Option Description
Aggregation type Defines how the data elements or indicators
will be aggregated within the visualization.
Some of the aggregation types are By data
element, Count, Min and Max.
Base line Displays a horizontal line at the given
domain value. Useful for example when you
want to visualize how your performance has
evolved since the beginning of a process.
Column subtotals Displays sub-totals in a Pivot table for each
dimension.
If you only select one dimension, sub-totals
will be
hidden for those columns. This is because
the values will be equal to the subtotals.
Column totals Displays total values in a Pivot table for
each column, as well as a total for all values
in the table.
Cumulative values Displays cumulative values in Column,
Stacked column, Bar, Stacked bar, Line and
Area visualizations
Custom sort order Controls the sort order of the values.
Dimension labels Shows the dimension names as part of a
Pivot table.
Hide empty categories Hides the category items with no data from
the visualization.
Before first: hides missing values only
before the first value
After last: hides missing values only after
the last value
Before first and after last: hides missing
values only before the first value and after
the last value All: hides all missing values
This is useful for example when you create
Column
and Bar visualizations.
Hide empty columns Hides empty columns from a Pivot table.
This is useful when you look at large tables
where a large portion of the dimension items
don't have data in order to keep the table
more readable.
Hide empty rows Hides empty rows from a Pivot table. This
is useful when you look at large tables where
a large portion of the dimension items don't
have data in order to keep the table more
readable.
Number type Sets the type of value you want to display in
a Pivot table: Value, Percentage of row or
Percentage of column.
The options Percentage of row and
Percentage of column mean that you'll
display values as percentages of row total or
percentage of column total instead of the
aggregated value. This is useful when you
want to see the contribution of data
elements, categories or organization units to
the total
value.
Option Description
Only include completed events Includes only completed events in the
aggregation process. This is useful for
example to exclude partial events in
indicator calculations.
Row subtotals Displays sub-totals in a Pivot table for each
dimension.
If you only select one dimension, sub-totals
will be
hidden for those rows. This is because the
values will be equal to the subtotals.
Row totals Displays total values in a Pivot table for
each row, as well as a total for all values in
the table.
Skip rounding Skips the rounding of data values, offering
the full precision of data values. Can be
useful for finance data where the full dollar
amount is required.
Stacked values add up to 100% Displays 100 % stacked values in Stacked
column and Stacked bar visualizations.
Target line Displays a horizontal line at the given
domain value. Useful for example when you
want to compare your performance to the
current target.
Trend line Displays the trend line that visualizes how
your data evolves over time. For example if
performance is improving or deteriorating.
Useful when periods are selected as
categories.
Value labels Shows the values above the series in the
visualization.
Axes tab
Axis range Defines the maximum and minimum value
that will be visible on the range axis.
Axis title Type a title here to display a label next to the
x or y axis. Useful when you want to give
context information to the visualization, for
example about the unit of measure.
Decimals Defines the number of decimals that will be
used for range axis values.
Steps Defines the number of ticks that will be
visible on the range axis.
Legend tab
Display legend Applies a legend to the values, which means
that you can apply a color to the values. You
configure legends in the Maintenance app.
Legend type Controls which legend is applied.
Use pre-defined legend per data item applies
a legend to each data element or indicator
individually, based on the legend assigned
to each one in the Maintenance app.
Select a single legend for entire
visualization applies a single legend to all
data items, chosen in a drop-down list of
available
legends.
Option Description
Legend style Controls where the color from the legend is
applied, either to the text or the background.
You can use this option for scorecards to
identify high and low values at a glance. Not
applicable for Single Value, Column or Bar
visualizations.
Series tab
Options for adding more axes and changing
how different series are displayed are set in
this tab. Please see a detailed description of
how this works in the corresponding
sections below.
Style tab
Digit group separator Controls which character to use to separate
groups of digits or "thousands". You can set
it to Comma, Space or None.
Display density Controls the size of the cells in a Pivot table.
You can set it to Comfortable, Normal or
Compact.
Compact is useful when you want to fit large
tables
into the browser screen.
Display organization unit hierarchy Shows the name of all ancestors for
organization units, for example "Federal
Ministry of Health / Addis Ababa regional
health bureau/ Arada sub city / Afnchober
health center" for "Afinchober health
center".
The organization units are then sorted
alphabetically which will order the
organization units according to the
hierarchy.
When you download a pivot table with
organization units as rows and you've
selected Display organizational unit
hierarchy, each organization unit level is
rendered as a separate column. This is useful
for example when you create Excel pivot
tables on a
local computer.
Font size Controls the size of a Pivot table text font.
You can set it to Large, Normal or Small.
Chart/Table title Controls the title that appears above the
visualization.
Auto generated uses the default title
generated from the visualization's
dimensions/filters.
None removes the title.
The Custom option allows you to type a
custom title.
Chart/Table subtitle Controls the subtitle that appears above the
visualization.
Auto generated uses the default subtitle
generated from the visualization's
dimensions/filters.
None removes the subtitle.
The Custom option allows you to type a
custom subtitle.
Show legend key Toggles the legend on and off leaving more
room for the visualization itself.
Option Description
No space between bars/columns Removes the space between the columns or
bars in the visualization. Useful for
displaying the visualization as an EPI curve.
Value labels Shows the values above the series in the
visualization.
Chart/Table title Controls the title that appears above the
visualization.
Auto generated uses the default title
generated from the visualization's
dimensions/filters.
None removes the title.
The Custom option allows you to type a
custom title.
Color set Controls the colors used in the chart. A list
of available color sets is shown with a
preview of the colors. There is also a "Mono
patterns" option which uses colored patterns
instead of solid colors.
Limit values tab
Limit minimum/maximum values Allows for the data to be filtered on the
server side. You can instruct the system to
return only records where the aggregated
data value is equal, greater than, greater or
equal, less than or less or equal to certain
values.
If both parts of the filter are used, it's
possible to filter
out a range of data records.
Parameters tab
Custom sort order Controls the sort order of the values.
Include cumulative Includes a column with cumulative
values to a Pivot table.
Include regression Includes a column with regression values
to a Pivot table.
Organization unit Controls whether to ask users to enter an
organization unit when creating a
standard report in Reports app.
Parent organization unit Controls whether to ask users to enter a
parent organization unit when creating a
standard report in Reports app.
Reporting period Controls whether to ask users to enter a
report period when creating a standard
report in Reports app.
Top limit Controls the maximum number of rows to
include in a Pivot table.
Outliers tab
Option Description
Outlier detection method Outlier analysis is a process that involves
identifying anomalous observations in a
dataset. In Data Visualizer outliers are
detected by first normalizing the data into
a linear regression line and then analyzing
each point's distance from the regression
line. Currently three methods are
supported. Interquartile Range (IQR) is
based on dividing a dataset into quartiles
while Modified z-score is based on the
Median Absolute Deviation (MAD). IQR
and MAD are considered the two most
common robust measures of scale.
Standard z-score is based on standard
deviation and is therefore considered less
robust as it is greatly influenced by
outliers.
Threshold factor The number that the outlier thresholds are
multiplied by. Controls the sensitivity of
the threshold range.
Default factors are 1.5 for IQR and 3 for
z-scores.
The following options can be customized using the text styling tool: Chart title, Chart subtitle, Show
legend key, Target line, Base line, Axis title and Labels for both horizontal and vertical axes. The text
styling tool allows choosing a font size, color and italic/bold variants. It's also possible to choose the
position of the text.
Assigned Categories is a composite dimension that represents associated category option combinations
to the selected data element's category combination. This can be added by dragging the Assigned
Categories dimension from the left side dimensions menu and into the visualization layout:
Another way of adding assigned categories is by accessing the Add Assigned Categories option from
the Data dimension's context menu (not available for Gauge, Year over year or Single value).
Adding more axes
When combining data with different measurement scales you will get a more meaningful visualization
by having more than a single axis. For Column, Bar, Area and Line you can do so by clicking the Series
tab in the Options dialog. If the option is disabled, make sure that the Data dimension is on the Series
axis and that at least two items have been added.
Four axes are available, two on the left side (axis 1 and 3) of the chart and two on the right side (axis 2
and 4). Each axis has a different color and the chart items are going to be colored accordingly.
Note: When multiple axes are in use, some options like Lines, Vertical (y) axis and Color set in the
other option tabs will be disabled.
It's possible to combine a Column chart with Line items and vice versa. This is done by clicking the
Series tab in the Options dialog and changing the Visualization type. This can also be combined with
using multiple axes (as described in the section above
This results in a chart that combines the Column and Line types.
Data drilling
This feature is enabled for the Pivot Table visualization type and allows drilling in the data by clicking
on a value cell in the table. A contextual menu opens with various options.
You can drill the data by organization unit, meaning navigating up and down the org unit tree. The data
drill affects the current dimension selection in the layout area.
Manage saved visualizations
Saving your visualizations makes it easy to find them later. You can also choose to share them with
other users or display them on a dashboard.
Open visualization
Enter the name of visualization in the search field, or click the < and > arrows to navigate between
different pages. The result can also be filtered by type and owner by using the corresponding menus in
the top right corner.
Click Save.
Rename a visualization
Click Rename.
Delete visualization
Click Delete.
Visualization interpretations
When viewing a saved visualization, you can expand the interpretations on the right side by clicking
on the Interpretations button in the upper right corner. The visualization description will also be shown.
The description supports rich text format.
New interpretations can be added by typing in the text field in the bottom right corner. Other users can
be mentioned with @username. Start by typing @ plus the first letters of the username or real name
and a list of matching users will be displayed. Mentioned users will receive an internal DHIS2 message
with the interpretation or comment. Interpretations can also be seen in the Dashboard app.
It is possible to format the text with bold, italic by using the Markdown style markers * and _ for bold
and italic respectively (keyboard shortcuts are also available: Ctrl/Cmd + B and Ctrl/Cmd + I). A
limited set of emojis is supported and can be used by typing one of the following character
combinations: :) :-) :( :-( :+1 :-1. URLs are automatically detected and converted into a clickable link.
To view the visualization according to the date of a particular interpretation, click on the interpretation
or its View button. This will regenerate the visualization with the relevant date, which is indicated next
to the visualization title. Clicking on Back to all interpretations will regenerate the visualization with
the current date.
To subscribe to the saved visualization, click the bell icon in the upper right corner. You will then
receive internal messages whenever another user likes/creates/updates an interpretation in this saved
visualization.
Share a visualization
Sharing settings can be accessed by clicking File > Share. Change sharing settings for the user groups
you want to modify, the available settings are:
Can edit and view: Can view and edit the visualization.
No access: Won't have access to the visualization. This setting is only applicable to Public access and
External access.
New users can be added by searching for them by name under Add users and user groups
Download
Visualizations can be downloaded using the Download menu. All visualization types support Graphics
and Plain data source downloads, except for the Pivot table type, which can be downloaded as Table
layout and Plain data source.
Graphics download
Downloads an image (.png) or a PDF (.pdf) file to your computer.
Table layout download
Downloads an Excel (.xls), CSV (.csv) or HTML (.html) file to your computer.
Available Format
Format Action Description
JSON Click JSON Downloads JSON format
based on the ID, Code or
Name property.
XML Click XML Downloads XML format
based on the ID, Code or
Name property.
Microsoft Excel Click Microsoft Excel Downloads Microsoft
Excel format based on the
ID, Code or Name property.
CSV Click CSV Downloads CSV format
based on the ID, Code or
Name property.
XML data value set Click Advanced > XML Downloads the raw data
values as XML, as opposed
to data which has been
aggregated along various
dimensions.
JSON data value set Click Advanced > JSON Downloads the raw data
values as JSON, as opposed
to data which has been
aggregated along various
dimensions.
JRXML Click Advanced > JRXML Produces a template of a
Jasper Report which can be
further customized based on
your exact needs and used
as the basis for a standard
report in DHIS 2.
Raw data SQL Click Advanced > Raw data Provides the actual SQL
SQL statement used to generate
the data visualization. You
can use it as a data source in
a Jasper report, or as the
basis for a SQL view.
To see how visualization would look on map, select the Open as Map Visualization type after you're
finished building your visualization.
Using the Maps app
About the Maps app
The Maps App was introduced in release 2.29 and serves as a replacement of the GIS App offering a
more intuitive and user-friendly interface. The mapping engine from version 2.34 is based on WebGL
technology, capable of showing thousands of features on a map simultaneously.
With the Maps app you can overlay multiple layers and choose among different base maps. You can
create thematic maps of areas and points, view facilities based on classifications, and visualize
catchment areas for each facility. You can add labels to areas and points, and search and filter using
various criteria. You can move points and set locations on the fly. Maps can be saved as favorites and
shared with other users and groups, or downloaded as an image.
The layer panel on the left side of the workspace shows an overview of the layers for the current map:
As layers are added, using the (+) Add layer button, they are arranged and managed in this panel.
The base map is always shown in the panel. The default base map is OSM Light and is selected by
default. OpenStreetMap Detailed contains more map features and place names. There are 4 base maps
from Bing Maps, replacing Google Maps provided in previous versions. Bing Road and Bing Dark
shows roads, borders and places. Use the dark version if the colors on your map layers are bright. Bing
Aerial and Bing Aerial Labels shows satellite and detailed aerial imagery. Switch between them by
selecting the desired image.
The small arrow button to the right of the layer panel, at the top, allows the panel to be hidden or shown.
The File button near the top left allows you to open and save maps:
New
will clear any existing map layers to create a new map.
Open
will display a dialog box with a list of existing maps where they can be opened, renamed, shared and
deleted. The title of the current map is displayed in the header bar above the File button.
Save
will save any changes to the current map.
Save as
will save the current map with a new name.
Rename
allows you to change the name and/or description of the current map.
Translate
allows you to translate the name and/or description of the current map.
Share
will open a dialog where the current map can be shared with everyone or a group of users.
Get link
will provide a direct link to the current map.
Delete
deletes the current map.
The Download button next to the File button allows you to download the current map as a PNG image.
The Interpretations button at top right opens an interpretations panel on the right side of the workspace.
The button is only clickable if the map is saved.
Map details shows information about the current map.
Interpretations allows you to view, add, edit and share interpretations about the current map.
The + and - buttons on the map allow you to zoom in and out of the map respectively. The mouse scroll
wheel zoom is continuous, allowing us to fit the map perfectly to your content.
The rotate map button (triangle arrows) allows you to rotate and tilt the map to enhance the view of
your data. Press the button (or the Control key on your keyboard) while moving your mouse to change
the map view. Click the button again to reset the view.
Fullscreen (four arrows) allows you to view the map in full screen. To exit full screen, click the button
again or the escape key on your keyboard.
Zoom to content (bounded magnifying glass symbol) automatically adjusts the zoom level and map
center position to put the data on your map in focus.
Search (magnifying glass symbol) allows searching for and jumping to a location on the map.
The ruler button allows you to measure distances and areas on the map.
Right-click on the map to display the longitude and latitude of that location.
Basemaps
Basemap layers are represented by layer cards in the layer panel such as:
Along the top of the basemap card from left to right are:
The title of the selected basemap
An arrow symbol to collapse and expand the basemap card
In the middle of the basemap card is the list of available basemaps. The current basemap is highlighted.
Along the bottom of the basemap card is:
An eye symbol for toggling the visibility of the layer
A slider for modifying the layer transparency
Thematic layers are represented by layer cards in the layer panel such as:
Along the top of the thematic card from left to right are:
A grab field to allow dragging and reordering layers with the mouse
The title and period associated with the layer
An arrow symbol to collapse and expand the thematic card
In the middle of the thematic card is a legend indicating the value ranges displayed on the layer.
Along the bottom of the thematic card from left to right are:
An edit (pencil) button to open the layer configuration dialog
An eye symbol for toggling the visibility of the layer
A slider for modifying the layer transparency
A more actions (three dots) button with additional options:
A data table toggle button to show or hide the data table associated with the layer
Download data allows you to download the data for this layer in GeoJSON format for use in other
mapping software
Edit layer is the same as edit button above
Remove layer will remove this layer from the current map.
Create a thematic layer
To create an event layer, choose Thematic on the Add layer selection. This opens the Events layer
configuration dialog.
In the DATA tab:
Select a data type and then select respectively the group and the target element. The available fields
depend on the type of item selected.
Select a value from the Aggregation type field for the data values to be shown on the map. By default,
"By data element" is selected. Alternative values are: Count; Average; Sum; Standard deviation;
Variance; Min; Max. See also Aggregation operators.
In the PERIOD tab
select the time span over which the thematic data is mapped. You can select either a relative or a fixed
period.
Relative period
In the Period type field select Relative, then select one of the relative periods, for example Last
year or Last 12 months, in the Period field.
A default relative period for analysis can be set in the Systems Settings app.
If you select a relative period covering multiple years/months/weeks/days the layer can be displayed
as
Single (aggregate)
Show aggregate values for the relative period selected (default).
Timeline
Includes a timeline allowing you to step through the periods. Only one timeline layer can be added to
the same map.
Split map views
Show multiple maps allowing you to compare different periods side by side. Supported for relative
periods with 12 items or below. Cannot be combined with other layer types.
Fixed period
In the Period type field select period length, then select the target in the Period field.
Start/end dates
In the Period type field select Start/end dates and fill in a start date and an end date.
In the ORG UNITS tab:
Select the organization units you want to include in the layer. It is possible to select either
One or more specific organization units, organization unit levels in the hierarchy, organization unit
groups, or
A relative level in the organization unit hierarchy, with respect to the user. By selecting a User
organization unit the map data will appear differently for users at different levels in the organization
unit hierarchy.
In the FILTER tab:
Click ADD FILTER and select an available data item to add a new filter to the data set.
Select a data dimension from the drop down box. You can reduce the number of dimensions shown by
using the search field. Click on the name to select a dimension.
When a dimension is selected you get a second drop down with dimension items. Check the items you
want to include in the filter.
Multiple filters may be added. Click the trash button on the right of the filter to remove it.
In the STYLE tab:
Select either Choropleth or Bubble maps.
Choropleth will assign a color to each org unit shape according to the data value. This is the
recommended technique if the data is normalized (per capita).
Bubble map will show data values as proportional circles. Use this technique if the data is not
normalized (absolute numbers). The circles are placed in the center of each org unit.
Set the Low radius and High radius for the proportional circles or the point facilities. The circles will
be scaled between low and high radius according to the data value. The radius needs to be between 0
and 50 px.
Show labels: Allows org unit names to be shown on the layer. Font size, weight, style and color can be
modified here.
Show no data: By default, org units with missing data values will not show on the map. Check this box
if you want to show them with a color. Click the color to change it.
Select the legend type:
Automatic color legend: the application will create a legend for you based on what classification
method, number of classes and the color scale you select. Set Classification to either:
Equal intervals
The range of each interval will be (highest data value - lowest data value / number of classes)
Equal counts
The legend creator will try to distribute the organization units evenly.
Predefined color legend: Select between the predefined legends.
Single color legend: Select the color of the bubbles or circles. Only available for bubble maps.
Click ADD LAYER.
Modify a thematic layer
In the layer panel, click the edit (pencil) icon on the thematic layer card.
Modify the setting on any of the tabs as desired.
Click UPDATE LAYER.
Filter values in a thematic layer
Thematic layers have a data table option that can be toggled on or off from the thematic layer card.
The data table displays the data forming the thematic layer.
Clicking on a title will sort the table based on that column; toggling between ascending and descending.
Entering text or expressions into the filter fields below the titles will apply those filters to the data, and
the display will adjust according to the filter. The filters are applied as follows:
NAME
Filter by name containing the given text
VALUE
Filter values by given numbers and/or ranges, for example: 2,>3&\<8
LEGEND
Filter by legend containing the given text
RANGE
Filter by ranges containing the given text
LEVEL
Filter level by numbers and/or ranges, for example: 2,>3&\<8
PARENT
Filter by parent names containing the given text
ID
Filter by IDs containing the given text
TYPE
Filter by GIS display types containing the given text
COLOR
Filter by color names containing the given text
Note: Data table filters are temporary and are not saved with the map layers as part of the favorite.
Search for an organization unit
The NAME filter field in the data table provides an effective way of searching for individual
organization units.
Navigate between organization hierarchies
When there are visible organization units on the map, you can easily navigate up and down in the
hierarchy without using the level/parent user interface.
Right-click one of the organization units.
Select Drill up one level or Drill down one level.
The drill down option is disabled if you are on the lowest level or if there are no coordinates available
on the level below. Likewise, the drill up option is disabled from the highest level.
Remove thematic layer
To clear all data in a thematic layer:
In the layer card to the left, click the more actions (three dots) icon and then on Remove layer.
The layer is removed from the current map.
Chapter 5: Managing dashboards
About dashboards
Dashboards are intended to provide quick access to different analytical objects (maps, charts, reports,
tables, etc) to an individual user. Dashboards can be shared with user groups. Dashboards can also be
printed.
A user or administrator could create a dashboard called "MCH" which might contain all relevant
information on antenatal care. This dashboard could then be shared with the user group called "MCH
control", which might consist of all users of the MCH control program. All users within this group
would then be able to view the same dashboard.
Dashboard and control bar
Dashboards have a title, description, and any number of dashboard items. The dashboard items can be
of many different types, including charts, maps, reports, tables, resources, messages, and text items.
Above the dashboard is the control bar, which shows all your available dashboards, including a
dashboard search field, and a + button for creating a new dashboard.
The dashboard has two modes: view and edit/create. When you first log in to DHIS2, your most
recently used dashboard will be displayed in view mode, if you are on the same computer as you were
previously. If you are using a different computer, then the first starred dashboard will be displayed. If
there are no starred dashboards, then the first dashboard (alphabetically) will be displayed. Starred
dashboards always show first in the dashboard list.
The screenshot below shows a dashboard called "Antenatal Care", which has been populated with
charts and maps.
Responsive view on small screens
When viewing dashboards on small screens (for instance, mobile phone in portrait orientation), the
dashboard will adapt to the screen and show all items in a single column. Some options, including
editing, filtering and sharing, will not be available.
Searching in the list of dashboards
You can search for a specific dashboard using the search field in the upper left of the control bar entitled
“Search for a dashboard”. The search is case insensitive, and as you type, the list of dashboards will
filter down to those that match your search text.
Customizing the height of the control bar
You can set a specific height for the dashboards control bar by down-clicking and dragging the bottom
edge of the control bar. When you finish dragging, the new height will be set. Clicking on Show more
will expand the control bar to its maximum height (10 "rows"). Clicking on Show less will reset the
height to your customized height.
Creating a dashboard
To create a new dashboard, click the green + button in the left corner of the control bar to go into create
mode. Add a title in the title field, and optionally a description in the description field. If you do not
add a title, the dashboard will automatically be titled "Untitled dashboard".
Create mode:
Add items to the dashboard by searching from the item selector in the upper right part of the dashboard
area. Available items include:
Visualizations
Maps
Event reports
Event charts
Report
Resource
Apps
Email
Text boxes
Space
The list of items in the drop-down initially displays 10 visualizations (charts and tables), and 5 from
each of the other categories, based on the search text you enter. Email, text boxes and spacer items are
also found in the drop-down. To view more items, click on Show more, and the list for that type will
be extended to 25 items. If you still do not find the item you want, try typing a more specific search
text.
Once you select an item, it will be added to the top left position of the dashboard. The added items can
be moved using the mouse by down-clicking on the item and dragging it to the desired position. It can
also be resized with the mouse by down-clicking on the drag handle in the lower right corner of the
item and dragging to the desired size.
Spacer items
The dashboard is configured with the "anti-gravity" setting for positioning items. This means that items
will "rise" upwards until they run into another item. In order to force empty vertical space between
items (like an empty row), you can add spacer items to the dashboard. They are only visible in edit/
create mode. In view mode, they are not displayed, but take up the defined space.
Remove items by clicking on the red trash can at the upper right of the item. Be aware that because of
the "anti-gravity" setting in the dashboard, when you remove an item, the items that are positioned
below the removed item will "rise" upwards.
Print preview
Click on the Print preview button to view how the dashboard would look in dashboard layout print.
Note that some items may be moved down in order to avoid page breaks. Items may also be shortened
to fit on one page. Items that are shortened show an info icon in the upper right corner in preview. This
icon is removed in the actual print.
By default, users will be able to filter dashboard items by any dimension defined in your system.
Dashboard filter settings can be edited for a given dashboard by clicking on Filter settings.
To restrict available filters, you can click Only allow filtering by selected dimensions and select the
filters which you wish to allow on the dashboard. When the dashboard is in view mode, users will only
be able to choose from among the filters selected. Period and Organisation Unit will be selected by
default but can be removed if desired.
In order to save updates to filter settings, you need to first click Confirm to close the filter settings and
then click save changes to save the dashboard changes.
Saving the dashboard
When creating or editing a dashboard, changes are only saved when you click save changes button in
the dashboard edit bar at the top of the page. If you don't want to save your changes, click the Exit
without saving button to the upper right. You will then be returned to view mode with the dashboard
you were previously viewing.
Editing an existing dashboard
If you have access rights to edit the currently active dashboard, there will be an Edit button to the right
of the dashboard title in view mode. Click on this button to enter edit mode.
Refer to the above section about creating dashboards for information on adding and removing items to
the dashboard.
Translating dashboard title and description
You can add translations for dashboard title and description while in edit mode. The dialog provides a
list of languages to translate to, and shows the original dashboard title underneath the name input field.
Deleting a dashboard
If you have access to delete the dashboard, then there will be a Delete button located above the
dashboard, when in edit mode. A confirmation dialog will first be displayed to confirm that you want
to delete the dashboard.
Viewing a dashboard
From view mode, you can toggle showing the description, star a dashboard, apply filters, print the
dashboard, and share the dashboard with other users and groups.
Show description
To toggle the description, click on the ...More button and choose Show description (or Hide
description). This setting will be remembered for all dashboards that you open. This setting applies to
you, not other users.
Starred dashboards
Your starred dashboards are listed first in the list of dashboards. To star a dashboard, click on the star
button to the right of the title. You can also toggle the star from the ...More menu. When the star is
“filled”, that means the dashboard is starred. Starring a dashboard only applies to you, not other users.
Filtering a dashboard
Multiple filters can be applied to a dashboard for changing the data displayed in the various dashboard
items. The filters are applied to each dashboard item in the same way: each added filter overrides the
original value for that dimension in the original chart, table or map (visualization). It is possible to filter
on Organisation Units, Periods and other dynamic dimensions depending on the DHIS2 instance.
To add a filter, click on the Add Filter button and choose the dimension:
Adding a filter
Filters are not stored, so when switching to a different dashboard they are lost. Filter badges appear
above the dashboard items to indicate that what is shown in the dashboard items is not the original
visualization, but a manipulated one where the filters override the stored dimensions' values.
Filter badges can be clicked for opening the filter selection dialogs thus allowing for filter editing. A
filter can be removed by clicking on the Remove button in the badge. Whenever a filter is added, edited
or removed, the dashboard items reload to show the updated data. Filter badges are always visible at
the top of the page when scrolling the dashboard content.
By default, users are able to filter dashboard items by any dimension defined in your system. To limit
available filters, see Restricting dashboard filters.
Printing a dashboard
From the ...More menu you can print the active dashboard. There are two styles of dashboard print:
dashboard layout and one item per page. For both styles, a title page is added that shows the dashboard
title, description (if the Show description setting is on), and any applied dashboard filters.
This style of print will print each dashboard item on a separate page, maximizing the use of the paper.
Click on the Print button in the upper right to trigger the browser print functionality.
Dashboard items with charts, pivot tables or maps
Dashboard items with charts, pivot table or maps may have a context menu button in the upper right
corner of the item with additional viewing options, depending on the system settings that have been
configured for the instance. If all the relevant system settings have been disabled, then there will not
be a context menu button. Here are the possible menu options:
Dashboard items showing charts, pivot tables and maps can be toggled between these visualizations.
Click on the item context menu button and choose the desired view (e.g., View as Table, View as Map,
View as Chart):
View item in fullscreen
To view the chart, table or map in fullscreen, click on the View fullscreen option. To exit fullscreen,
you can either press esc key or click the exit button in the upper right corner of the fullscreen view.
Open in app
To open the visualization in its relevant app (e.g., Data Visualizer, Maps) click on the Open in [app
name] app option.
Show interpretations and details
You can write interpretations for the chart, pivot table, map, event report, and event chart items by
clicking on Show interpretations and details:
Note
The item will be expanded vertically underneath to show the description, interpretations and replies.
You can like an interpretation, reply to an interpretation, and add your own interpretation. You can
edit, share or delete your own interpretations and replies, and if you have moderator access, you can
delete others’ interpretations.
It is possible to format the description field, and interpretations with bold, italic by using the Markdown
style markers * and _ for bold and italic respectively. The text field for writing new interpretations has
a toolbar for adding rich text. Keyboard shortcuts are also available: Ctrl/Cmd + B and Ctrl/Cmd + I.
A limited set of smilies is supported and can be used by typing one of the following character
combinations: :) :-) :( :-( :+1 :-1. URLs are automatically detected and converted into a clickable link.
Interpretations are sorted in descending order by date, with the most recent shown on top. Interpretation
replies are sorted in ascending order by date, with the oldest shown on top.
Sharing a dashboard
In order to share a dashboard with user groups, click on the SHARE button to the right of the dashboard
title to display the dashboard sharing settings options. To share the dashboard with specific users or
user groups, type in the name in the input field to add them to the dashboard sharing settings
All dashboards have two sharing groups set by default.
This option, when selected, provides access to the dashboard as an external resource through the API.
This is useful for when you are creating an external web portal but would like to call information from
a dashboard you have made internally within DHIS2. By default, this option is not selected. For more
information, see Viewing analytical resource representations in the developer guide.
This option allows the selected dashboard to be pushed to all users within your DHIS2 instance. This
can also be hidden from public view by selecting the "None" option, which is the default option for
new dashboards.
User groups that have been added manually can be assigned two types of permissions within the
dashboard
Can view
Provides the user group with view only rights to the dashboard.