New infrastructure for systematically benchmarking DHIS2 performance across versions, enabling data-driven release QA. Preliminary v43 results show major import/export gains vs v42/v41. Follow the Roadmap Idea link for full methodology and details.
DHIS2 supports Apache Doris and Clickhouse as dedicated analytics database to improve query performance and analytics table updates. Modernizes backend code with better structure and testing. Available for aggregate data in v42 and individual data in v43.
The Data Import process has been fundamentally rewritten to improve performance. Instead of processing data values one-by-one through a Java middleware layer, the system now sends bulk SQL operations directly to the database, greatly improving efficiency.
Configure search operators for tracked entity attributes to improve performance. Web and Android Capture use recommended operators, restrict inefficient ones, avoid LIKE by default, and support min character limits and trigram indexing for faster searches.
Improves metadata synchronization by adding new frequency options (6 and 12 hours) and enhancing how sync settings are automatically updated and applied.
Improves sync performance by downloading tracked entity instances based on configured working lists, reducing the amount of data synced to the device.
Improved Capture app performance by optimizing Tracker API usage, removing redundant requests in certain workflows, and resolving slow data entry in large forms.
The Metadata Management App replaces and improves the Maintenance app, the primary tool for system administrators to configure metadata such as data elements, data sets, programs, and organisation units.
Custom colors can now be applied to parts of the DHIS2 UI. This option can be configured in the System Settings app, and it applies to the header bar on web and to the theme on mobile.
Custom translations or terminology overrides can now be applied to any text in a selection of apps by using the datastore. This can be used for both improving localization and using context-specific terminology in apps.
This feature introduces a new plugin in the Data Entry App that restores JavaScript support in custom forms.
Excludes tracked entity attributes from analytics using a “Skip in Analytics” option, improving performance and preventing sensitive data from being included in analytics processing.
Introduces priority for program rule actions, allowing control over the order in which actions are applied and displayed.
Enhances program rule feedback with Markdown formatting and legend-based styling, enabling richer content and clearer visual interpretation.
Extends working list filtering by adding support for additional value types, enabling more flexible and accurate data filtering.
Period types for analytics can be enabled/disabled in System Settings, simplifying the analytics app interface by showing only relevant periods. Disabled periods are excluded from analytics table generation, improving performance and reducing processing time.
Configure the start day for weekly relative period in System Settings, enabling analysis for periods like “this week”, “last week” with other start days than Monday. Financial year now also supports February, August, and September as start months.
Dashboard slideshows now support autoplay. When play is clicked it will advance based on the timing setting, with a countdown on the play/pause button. The slideshow loops continuously, and a warning appears if it has been 24 hours since it started.
The Maps app now includes new climate layers including precipitation, temperature, vegetation indices, humidity, and heat stress to align with layers available in the DHIS2 Climate app and enrich geographical analysis alongside other data.
Multiple thematic layers can now be added as timeline or split map, enabling side-by-side comparison of several data items (data elements, indicators etc.) over time, with periods syncing automatically across layers where those map types are enabled.
The Maps app now uses the same data item selector as Data Visualizer, replacing the previous selector with a unified experience across analytics apps. Improvements include search, filtering, data item definitions, and the ability to create custom calculations directly in the Maps app.
Updates the PIN creation screen in the login flow with a new full screen design, replacing the previous component while preserving the existing behavior.
Improves sync compatibility between Web and Android by aligning event synchronization and ordering. For LMIS it ensures more consistent stock calculations across platforms.
Session expiration is now gracefully handled in DHIS2 applications: a notification appears when a user’s session is soon to expire, and when the session has expired, a dialog appears with an option to log in again in a new tab.
The app menu/Command Palette now offers fuzzy search for matching results similar to the user’s search, shortcuts for more core apps, and results for an app’s shortcuts when searching for that app.
The aggregate data exchange has been updated to send the full scope of all possible data values specified in the exchange request. The full scope is then deleted before the new values are imported, removing the possibility of stale values persisting.
Migrated Capture app to DHIS2 standards by adopting TypeScript, React 18, and App Platform (Vite), while upgrading core libraries. Improves maintainability, performance, and alignment with the DHIS2 frontend ecosystem.
Single events and tracker events are now separated into distinct database tables and object models, improving validation, access control, performance, and enabling more efficient rule execution and data export.
Upgrades the DHIS2 backend from Hibernate 5 to Hibernate 6, addressing deprecations and ensuring compatibility with modern Java persistence standards.
The Data Visualizer chart library has been upgraded to Highcharts v12. Chart exports to PDF and PNG now happen client-side rather than on the server, giving faster and more reliable exports, including full support for non-latin characters in PDF exports.
The support for Enrollment Attribute Option Combos (AOCs) in Tracker programs has been implemented in the backend. Next steps will be to implement the required configuration functionality in the Metadata Management and the support in capture and analytics apps. These changes will be added in future releases of the app via the App Hub.
This functionality, when completed, will enable more granular attribution, sharing, and analytics at the enrollment level, only available at event level at the moment.
The backend and API support for merging Categories and Categories Combinations has been implemented in v43. Next steps will be to integrate in the Metadata Management to enable its use through the User Interface. These changes will be added in future releases of the app via the App Hub.