News and announcements

New and interactive dashboard: The dashboard has received a lot of improvements.

- Interactive items: The map items let you zoom in or out and drill down/float up between layers. Click on series in charts to hide or show them. Hover over maps and charts to see data values and details.

- More features: Support for pivots with legend sets, facility map layers and radius for map points.

- Better looks: The dashboard items are rendered using the pivot table, data visualizer and GIS components which give a better visual appearance.

Simpler configuration and loading of apps: Apps are now loaded by default through the Web API without any need for configuration. The benefit is that you can upgrade your DHIS 2 version without affecting already installed apps. The app configuration can be set through the apps Web API resource.

Managed users: A new “managed users” concept for user management has been introduced. This allows you to explicitly define which users are allowed to modify which users. This is done by defining users groups to manage other user groups through the standard user interface. To enable this you should grant users the authority to "Add/update users within managed groups" instead of the normal “Add/update users”.

Replication of users: New feature for creating an identical copy of a user, with a new username and password. Replicating accounts is useful when working with support requests related to access control. Select a user in from the user list, select replicate and enter new credentials.

Tracker enrollment history: In tracker capture dashboard you can now list historical enrollments by clicking on “History” and view captured data for each of them. Notes can be added to historical events.

Easy enrollment for relatives: A program can be configured to present shortcuts for relatives, which now can be easily enrolled into a specified program. As an example, for a “mother and child” program you can now specify that the child should be added into a “immunization” program. This will make the "immunization" pre-selected in relationship dialog.

Favorite names in dialogs: In all analysis apps you can see the name of the current favorite in the header of the favorite and share dialogs. This makes it simpler to see which favorite you are working on e.g. when updating favorites.

CORS support: DHIS 2 now supports Cross-origin resource sharing (CORS), which is a mechanism that allows resources to be requested from another domain. This means most notably that you can make requests to the DHIS 2 Web API from a web page or portal living on another domain than the DHIS 2 instance. The domains which should be allowed access must be defined under system settings > remote access.

See apps authorities: We have added authorities for seeing apps so that you can control per user roles who should be allowed to access which apps from the top menu.

Clear local storage app: A new app has been added for clearing the application storage, which is the area where DHIS 2 stores data locally in the web browser. This is sometimes tricky to clear and web browsers have different menu layout for doing it, so an app is useful e.g. when doing user support.

Attributes for program: Dynamic meta-data attributes can now be defined for programs from data administration > attributes.

Remove expired invitations: A new maintenance function has been added under data administration > maintenance for deleting users which represent user account invitations which now have expired. This is useful when you send out a lot of user invitations and need to clean up after some time.

Infrastructural indicator data in GIS: You can configure an indicator group as “infrastructural” under general system settings, which will subsequently show up with indicator data in a dialog when left-clicking on an area or point in GIS.

Instant validation in event capture: In event capture, you will now get instant feedback if you type values of the wrong type in input fields.

Multiple message “mark for follow-up”: You can now mark multiple messages for follow-up in one go under messages.

Data set sections in context menu: Form sections are now accessed by clicking on data sets to open the context menu. This allows for faster navigation.

--- Web API features

PDF, Excel, CSV support for meta-data: You can now get lists of meta-data as PDF, Excel and CSV files directly from the Web API through the normal “.pdf”, “.xls” and “.csv” URL extensions or through accept headers.

Email: A resource for sending emails for system notifications and testing has been added. This is useful e.g. when you have developed external scripts that need to send email messages to the system administrators. Requires that an email SMTP server has been configured.

PATCH support: You can now do PATCH requests in order to do partial updates of meta-data. You can e.g. update only the name of a user group. This is useful to avoid sending very large payloads just to make a change to a simple property.

Better user query: The user query function has been made more flexible and allows for querying for users that can be managed by the current user, last login, inactivity, self registration, invitation status and more.

Import strategy for tracker data: You can now define whether to only create or create and update entities when importing tracked entity instances, enrollments and events.

DHIS 2 version 2.17 is out. We have a wide range of features and improvements for you. The main focus of this release has been performance, analytics, data exchange and interoperability.

Better performance and scalability: Several parts of the system work faster and smoother, including loading of the organisation unit tree, loading of meta-data in data entry, import and export of data and generation of resource tables. Data entry meta-data now respects the offline hierarchy level setting, making it possible to handle very large org unit trees and number of data sets.

Option codes: Options in option sets now have codes as well as names, where the code cannot be changed. This implies that options are more robust, since the name of the option can be changed and translated into multiple languages without affecting existing data or attribute values. All apps will display the option name in the user interface and use the option code for fetching data from the system. In the list of option sets, click "option management" to view options:

Average aggregation operator: Analytics now support an average aggregation operator where data will averaged in both the time period and organisation unit dimensions. The current average operator has been renamed to "Average (sum in org unit hierarchy)" to better reflect what it is actually doing.

Long text: The system support long text data values and comments. A data value can now store up to 60'000 characters, which is the equivalent of 12 pages of text. This makes the system suitable as a text repository. This is useful e.g. for using to system to store narratives linked to data elements and organisation units. See form "Mortality < 5 Narratives" on demo:

Text in analytics: The analytics engine now support text. This means that you can produce pivot tables and standard reports with textual content. This is useful e.g. to present narratives next to data element values in the same report.

Browser support notification: The front page now shows a notification for people using a browser which is not supported by DHIS 2. From version 2.17, Internet Explorer versions 6, 7 and 8 are no longer supported.

Apps as start page: External apps can now be set as start page from settings > appearance > start page.

Display name in analysis apps: A new user setting lets you define whether to use the name or the short name of meta-data items in all analysis apps, both aggregate and event-based. As an example, it lets you define whether to display the full name or short name of data elements in the pivot table app. You can access user settings from Profile > Settings:

Simpler event analysis UI: The selection of data items in event reports and event visualizer has become simpler to use. You can now easily select and remove items from dynamic drop-downs.

Event analysis option ordering: The order of options in option sets are now respected in event-based pivot tables and charts.

Visualizer meter charts: The visualizer app supports meter charts, using background-color from the assigned legend set of the indicator.

Visualizer sorting: Sorting of categories in charts is supported in visualizer. It lets you sort high-to-low and low-to-high based on the data value of the first chart series.

Total options: Pivot table and event reports now have separate options for including column totals/sub-totals and row totals/sub-totals. Look for "Show column totals" and more under table options.

Pivot table dimension labels: The pivot table app displays the name of the data dimension as a label in the top left corner. This can be controlled through the option called "Hide dimension labels" under table options.

Data entry future periods: When a data set is set to allow future dates, you can now select any year in the future in data entry. Have a look at the "Mortality < 5 years" form on the demo:

Indicators in section forms: In section based forms in data entry you can now include indicators, which will be automatically calculated in the same way as for custom forms. Have a look at the "Reproductive health" form:

Message multi-select: The message inbox support multi-select of messages with accompanying operations for marking messages as read, marking as unread and removal.

Missing value validation strategy: An option is added for defining the strategy for when a validation rule should be ignored during validation related to missing data values. The strategies for ignoring rules are a) never b) when any value is missing for the expression and c) when all values are missing for an expression.

CSV event exchange: Events can be exported and imported using CSV format. This is particularly convenient for import as it allows third-party applications to send events to DHIS 2 in an easily understood format. Look under import-export app > "event import" and "event export", then select "CSV" in the format drop-down.

Dashboard exchange: Dashboards can now be exported and imported, both through the user interface and through the Web API.

Identifier schemes for export: Data export supports identifier schemes for name and code. The identifier scheme for data elements, organisation units and categories can be set independently. This makes it possible to export data records using codes or UIDs, allowing for a third-party system to be authoritative on codes and also receive data from DHIS 2. In import-export > data export, click "more options" at the bottom of the screen:

Category option combo codes: You can now define codes for category option combos through the user interface in the "data elements and indicators" app. When combined with the identifier schemes for export, this means that you can let third-party systems be authoritative on "disaggregations" and exchange option combos using codes.

Data exchange and deletion: Data will now be deleted on import if the data value being exchanged is empty or null. Data import now also handles duplicates properly.

Meta-data import access control: User role authorities are now respected in the meta-data importer. As ax example, a person can only import data elements through the meta-data import if she is granted the privilege for creating data elements. Previously the system had an all-or-nothing authority for meta-data import.

Tracker program summary report: Report that allows you to view a summary of all enrollments for a program and view information for each stage in the program.

Tracker program statistics report: Report which provides information about active vs completed enrollments and timeliness in terms of overdue, on-time, active and completed events per program.

Tracker upcoming events report: Report that provides an overview of future scheduled events for a program, including name, organisation unit stage and due date. This is useful e.g. for community workers in need of schedule.

Tracker overdue event report: Report that gives you an overview of events that have passed their due date, including name, organisation unit stage and due date. This is useful e.g. for health workers in order to follow up on persons that have not come to a clinic for a scheduled checkup.

Follow-up analysis by org unit: The data follow-up analysis in data quality app now lists data values by organisation unit, making it possible for lower-level managers to follow up on data issues.

Security and hashing: User passwords are now hashed using BCrypt. This is a far superior algorithm compared the previously used MD5, which is now considered insecure. Bcrypt can also be configured to be more expensive to compute which provides better protection against brute-force attack going forward.

Configurable no of cores for database servers: The number of CPU cores of your database server can be configured as a system setting. This allows the system to perform optimally when the database is hosted on a different server than the application server, as the analytics engine scales linearly on the number of available cores. Look for system setttings app > general settings > "Number of database server CPUs".

System notifications: A system setting for a system email address has been added. Notifications about failures in processes such as analytics table generation will be sent here. This is useful for application monitoring. Look for system setttings app > general settings > "System notifications email address".

Custom forms scripting: The system now provides a rich set of callback methods for scripting in custom forms. This makes it possible to create scripts that react on user loading a form, saving a value, clicking complete and so on. Have a look at the "EPI stock form" on demo:

Calendar: All analysis and tracker apps now support all seven calendars in the new calendar solution in DHIS 2, including Nepali.

- Web API Features -

GeoJSON support: The organisation unit resource now supports GeoJSON meaning you can easily export geographical information. GeoJSON is a format for encoding a variety of geographic data structures.

User invites: You can now crate a batch of invitations through the invite resource. This is feasible for creating scripts for bootstrapping a system by inviting a large number of users.

CSV data exchange: Data import and export using CSV is fully supported in the Web API.

Completeness: Complete data set registrations can now be exchanged in the Web API.

Collections modifications: A new resource has been added for adding and removing items of collections inside objects without having to submit the entire object. As an example, you can easily add a data element to a data element group just by sending the identifiers of the data element group and and the data element you would like to add.

Field filtering: A new "persisted" preset for getting persisted properties only has been added to the field filter, as well as an "owner" preset for getting assocations owned by the object.

- Tracker capture app: We have a completely new app for tracking persons and other entities. This app lets you register and search persons. It features a dashboard which gives you the complete overview of the person. It is customizable and designed around widgets, making it easy to place the information you need where you need it. It currently features widgets for enrollment, profile, data capture through stages, summary report, relationships, notes and current selections. This app will eventually replace the individual records module. Check it out by selecting org units at the lowest level in the hierarchy and the TB program on the demo.

- Event visualizer app: A new app for creating charts based on events. Works similarly to event reports. It lets you create aggregated event data visualizations based on flexible queries on attributes and data elements. It lets you analyze events based on time periods, organisation units and group sets, and place any dimension as chart series, category and filters. It supports a range of options for controlling the range and domain axis, target and base lines, labels and chart title. You can save your charts as favorites and share them with others. Charts can be downloaded as PNG images and PDF documents. Check out the favorites on the demo.

- Event charts in dashboard: The charts created in event visualizer can easily be included in the dashboard, as a separate dashboard or together with "aggregate" analysis. Simply search from the dashboard search field and look under "event charts", then click add next to each chart. Click on "Inpatient Morbidity Mortality" dashboard on demo.

- Org unit group sets in event analysis: The event reports and visualizer apps now enables analysis of organisation unit group set based dimensions. This means that you can easily create analysis of events across e.g. facility types and ownership without going through aggregation queries.

- Multiple calendars for data capture: The system now supports a range of calendars for data capture, including Ethiopian, Gregorian, Islamic, ISO 8601, Julian, Nepali, Thai. You can set which calendar to use under Settings > Calendar.

- Data synchronization: You can synchronize data collected in a local instance of DHIS 2 with another, remote instance of DHIS 2. This is useful e.g. in a scenario where you have multiple DHIS 2 instances deployed partly offline in the field and want them to automatically submit data to a central, online instance of DHIS 2. To enable sync first go Settings > Synchronization and enter the URL, username and password of the remote server. Second, go to Data administration > Data synchronization and set strategy to enabled. The system will attempt a synchronization request every minute.

- Data value audit trail: Audit trail, i.e. the history of modifications happened to a data value, is now supported. This is useful in order to keep track of changes and manage changes in cases where multiple people are working on the same data. Check it out in data entry by editing a field a few times, clicking in the input cell to open the history dialog and click on Audit trail.

- Totals in validation rules: You can now insert data element category option totals directly in validation rules. This should make the validation rule expression less verbose and more manageable. Click on "edit left side" on the demo.

- Top menu search: The top menu now has a search field which you can use to more quickly find the apps you are searching for. Hover the apps link on the demo.

- Test email settings: Under Settings > Email there is now a link for testing your email settings by having the system send a test email to the email associated with your account. This will make it more easy to verify your settings and discover issues with the SMTP setup.

- Data visualizer layout: The layout dialog in visualizer now has the same design as pivot table and event reports app, with three screens for series, category and filter. This is done to harmonize all analysis apps and make it simper to set multiple filters. Click "layout" on the demo.

- Color-coded boundaries: The boundary layer in GIS now features color-coded boundaries. This means that when combining multiple org unit levels in the same boundary map, each layer will have its own color, making it simple to distinguish them.

- Labels in map favorites: The label setting is now included in favorites in GIS. The label setting has been moved into the various map layer dialogs, look for the "options" tab. The label font size can also be controlled by using the font selector next to the label option.

- Better pivot table dimension selection: The layout dialog in pivot table app now only shows the dimensions for which you have selected any options instead of just all dimensions. This should make it simpler to see which dimensions have selections when creating pivots.

- Hierarchy download as separate dimensions: The download function in pivot table app now supports downloading the organisation unit hierarchy levels as separate dimensions. This is useful when you want to create local excel pivot tables and have the org unit levels as separate dimensions. Make sure you check "show hierarchy" under Options, then go to Download and look for "plain data source /w hierarchy".

- Column and row totals: The pivot table app now has separate options for column totals and row totals, meaning you can specify only column totals, only row totals or both for a pivot. Click on options in top menu on the demo.

- Min and max aggregation operators: There are two new aggregation operators for max and min value. These can be defined per data element and will be used automatically in pivots. Aggregation operators can also be defined in pivot table under options in order to override for the current pivot table by going to options > aggregation type. Min and max operators are useful to identify extreme values.

- Analytics maintenance mode: Analytics can now be put in maintenance mode. This implies that all requests will simply return 503 service unavailable, and is useful in the cases where you need to perform maintenance on a live server, such as rebuilding analytics indexes. It can be enabled under Settings > General.

- Percentage data element number type: Data elements now have a new number type called "percentage", which implies that you can only enter discrete numbers between 0 and 100 in data entry.

- Data approval: Approval can now be done for a longer period type than the reporting period type for the data set. This makes it simpler to approve multiple form submissions at the time.

- Myanmar font support: There is now a new style called "Myanmar" which features the Padauk font designed for the Myanmar character set. Style can be defined for the system under Settings > Appearance, and per user under Profile > Settings.

Various technical stuff: The custom data entry form editor is upgraded and is easier to use. Data entry has much more capacity for storing data entry forms offline. Data value table has a "lastupdated" column. Attribute option combos are supported in data value import. The category option object is associated with organisation units and start/end dates.

The Web API as received a range of improvements (this part is mainly for developers / technical people):

- Tracker meta-data support: The tracker-related entities, such as /program and /programStages, are now supported in the Web API with CRUD operations. This means that you can develop clients that can read and create tracker meta-data.

- JSON data value sets: The data value set generator now supports JSON response format, making it simple to create templates used for data import.

- User account invites: The user account invitation feature has now been exposed in the API. This makes it possible to create scripts that can automate sending out invitations to a large number of users e.g. off an excel sheet - useful when bootstrapping systems.

- Custom script and style: You can now upload custom Javascript and CSS files through the API. These will be rendered through the application and allows you to customize the look and feel of the custom data entry forms, HTML reports and the system in general. The advantage is that you avoid changing the system source code or custom deployments, as the customization will be stored in the database.

- Event charts: The event charts (from event visualizer) can be rendered in PNG image format from the /eventCharts resource.

DHIS version 2.15 is out. We have a great set of new features for you:

- Event reports app: We have a completely new "event reports" app for analysis of events. This app lets you do aggregated analysis of events directly without building aggregation queries and create pivot-style tables, where you can use data elements as individual dimensions together with periods and org units. All dimensions can be placed on columns, rows and filters. The app also lets you query on events using filters on all data elements, org units or periods. It lets you save tables as favorites and share them with others. You can also download your favorites to many popular formats. This app replaces the old tabular reports. You can check it out on the demo by browsing through all of the favorites.

- Event capture app: A new app for capture of events. This app makes it easy to capture events efficiently, view the list of events capture so far and update existing events. It lets you configure and select the columns to show in the list of events. The app works offline, meaning that you can continue to enter events even if connectivity drops during your working session.

- Tracked entities: In tracker you can now define any number of tracked entities, representing things you want to track. Tracked entities can be commodities, lab samples, buildings, wells, drug batches and persons, or anything you want. This makes the system more flexible and applicable for tracking most stuff beyond just persons. A program is associated with one tracked entity. We hope that you will be creative and take advantage of this new level of abstraction. You can define tracked entities from persons and programs > tracked entity.

- Data approval levels: You can now configure the levels for where approval of data should take place. For instance, you can require that data must be approved at the facility and provincial org unit hierarchy levels, omitting approval at the district levels. An approval level requires that the data must be approval by some user linked to the specific level for it to be considered valid and be available in data analysis. Approval levels are configured under settings > approval.

- Data approval in analytics: Data approval now takes place in reports module > data approval. Approval of data is now respected in data analytics tools such as pivot table and visualizer, meaning that data which has not been approved will not be part of the aggregated values displayed in reports. This implies that data can be hidden until it has been approved by the appropriate persons. In other words, the aggregated data in analysis apps will be based on approved data only.

- Data access control in org unit hierarchy: User's access to data can now be controlled in the organisation unit hierarchy. This is done by assigning data view root organisation units per user. The existing association between users and org units represent access to doing data capture. The new association for data view organisation units controls for which organisation units a user can view analytical data in the analysis modules such as pivot table and visualizer.

- Category option groups and group sets: Category options can now be further classified by assigning them to category option groups and group sets. An example where this is useful is when representing various projects as category options and there is a need to classify these projects by funding agencies/donors. The group sets are available as dimensions in all data analysis modules. You set these up from data elements and indicators > category option groups / group sets.

- Top menu: We have added a new, more flexible top menu. This menu displays all apps that is available to the current user, including both standard apps and installed, external apps. It works well on touch-based devices due to the large icons. You can organize your apps by clicking on "more apps" link and drag-and-drop your apps into the order you would like. Note that your first nine apps will be displayed in the drop-down menu. You can scroll down in the top drop-down menu to view all apps, too. Check it out on the demo by hovering the "apps" icon in the top menu.

- User account invites: A new feature for inviting new users to the system has been added. An invite is similar to an account, except that instead of specifying username and password, an email is sent to the invited user, who can pick username and password herself before logging into the system. This is useful to avoid insecure password generation such as standard or simplistic passwords, or passwords being known by other than the user herself. Check it out in the add new user screen by selecting "email invitation to create account" from the top drop-down menu.

- Std dev and variance aggregation operators: Data elements can now have new aggregation operators which includes count, standard deviation and variance. These aggregation operators can also be specified directly in analytics web api queries. This allows for more advanced reports and aggregations.

- Org unit group counts in indicators: In indicator formulas you can now include the number of org units in a specific group. This count of org units intersects with the org unit hierarchy based on the org unit requested for aggregation. As an example, this lets you use the number of public facilities in a specific district in indicators. This is useful e.g. when creating facility infrastructure surveys and reports. Check out the

- Custom range axis in visualizer: In data visualizer you can now specify a new set of options for the range (y) axis, namely the max and min value, the number of ticks to use, and the number of decimals for the axis values. This is useful when e.g. you want to "zoom in" on the upper part of a bar chart in order to highlight differences between org units. Check out the demo chart which shows immunization coverage between 70% and 110%.

- OpenID authentication: The system can now be configured to authenticate users through OpenID. This is useful to avoid forcing users to create yet another username and password. OpenID is an open standard that allows users to be authenticated through identify providers, such as Google and Yahoo. The OpenID provider can be specified from settings > access.

- More dynamic attributes: You can now assign dynamic attributes to data sets and organisation unit group sets. This is useful when you need to capture additional meta-data information beyond what is offered as fixed attributes on these objects.

- Unit intervals: Data elements now have a new numeric value type called unit interval, which is a continuous number between 0 and 1. This is useful e.g. when you require users to enter a percentage in data entry without having to specify validation rules for each data element.

- Standard comments: Data elements can now define option sets for data value comments. This means that you can use an option set to define a standard, common set of comments to data values, and let users choose an option by clicking inside the data entry cells and using the regular comment field. You can check it out on the demo for the "facility assessment" form for the "facility infrastructure" data elements.