Wiki Spaces


Get Help from Others

Q&A: Ask OpenMRS
Discussion: OpenMRS Talk
Real-Time: IRC Chat | Slack


Page tree
Skip to end of metadata
Go to start of metadata

What Is the Data Integrity Module?

The Data Integrity Module provides a way to create, manage and review the quality of data audits. Users can view or download the results of an integrity check, ignore certain known results that should not be included in the total count, see a chart representing the history of an integrity check's findings and link directly to encounters, patients, observations and more from the results. It is meant to provide a common place for finding and dealing with multiple common data quality issues.

Some potential integrity checks are:

  • Patients with no  or more than one preferred identifier
  • Patients with no name
  • Patient Identifiers with an incorrect check-digit
  • Unused Concepts in the Concept Dictionary
  • Unused or duplicate Field Objects for Forms
  • Unused Locations
  • Encounters having no Observations
  • Pregnant male patients
  • Patients who have a wrong encounter type (e.g.: A pediatric patient with an adult encounter type or form)
  • Patients with inconsistent data

See the Sample Integrity Checks page for these and more.


  • SQL skills (for integrity check authors)

For versions 4.2.0+

For versions 4.3.0+

  • OpenMRS 1.5.0+
  • SQL skills (for integrity check authors)
  • OpenMRS 1.8.x
  • SQL skills (for integrity check authors)
  • OpenMRS 1.6.2+
  • SQL skills (for integrity check authors)

Installation Instructions

Install and run OpenMRS

Download Data Integrity Module

Install Module: From the OpenMRS home screen, select System Administration → Manage Modules → Add/Upgrade Modules. Here you should upload the .omod data integrity file. The Data Integrity module should now appear and be accessible from the home screen if the module installation was successful.

Note: If you do not have the necessary prerequisite modules for the version of Data Integrity Module that you have downloaded you will also need to install those prior to running Data Integrity Module.


Data Integrity Module JIRA project.

Additional pages for versions up to 1.1.3:


Data Integrity Module in the OpenMRS Module Repository


Version 2.x

Version 1.x

The Future

The future is here! See Data Integrity Module - 2.0 Design Overhaul for the design concerns behind the latest UI developments. More innovations await, such as:

  • adding the ability to use other languages for integrity checks, like Groovy, Javascript or Python!
  • sparklines and other small but effective visualizations
  • deeper introspection and analysis over result sets and history statistics
  • formatted downloads and possible PDF rendering

Release Notes

Version 4.4.0

  • DINT-73 - Improve filtering of results of results from running the rules
  • DINT-77 - Dashboard Widget - Should show the note for the result by default, then the names of the rule if there is no note
  • DINT-76 - Add capability to export rule violations to CSV and/or Excel
  • DINT-80 - Externalize all labels, messages, and errors into the module

Version 4.3.0

  • RA-1304 (Pull #14) - Data Integrity Violations Widget
    • Added REST endpoint for Data Integrity Results
  • Updated documentation to match class refactoring
  • Excluded duplicate classes in omod
  • Corrected the developerConnection in the scm tag which was causing bamboo failures

Version 4.2.0

  • DINT-68 - Add a UI to enable manual runs for the rules and to display the results of violations
  • Refactored classes and packages to match the layout of other modules
  • Added ability to run a single rule through the DataIntegrityService

Version 4.1.0

  • Pull #7 - Provided support for writing rules for Patient violations
  • Pull #8 - Added support for Groovy based data integrity rules

Version 4.0

  • Move bahmni data integrity module as version 4.0 snapshot
  • Changed name of module parent so that it is consistent with other modules

Version 3.0

  • DINT-62 - Remove JS charting with Highcharts library
  • Pull #5 - Removing Highcharts JS Library
    • Fixed mapping files in config.xml
    • Updated editCheck.jsp to fix an exception
    • Moved Activator to api sub-module
    • Removed Highcharts library and its usage

Version 2.1

  • DINT-59 - The omod does not include the classes from the API submodule
  • DINT-60 - Module cannot be loaded because the ${omodHbmConfig} resource could not be found
  • DINT-56 - Build failure at omod in latest master branch

Version 2.0

  •  DINT-20 - Need more than one repair directive link
  •  DINT-37 - Ensure smooth migration of existing checks from 1.x to 2.0
  •  DINT-34 - Use in UID setting not saved
  •  DINT-40 - ActionServerUrl no longer used in links
  •  DINT-30 - Add methods and UI for un-ignoring a result
  •  DINT-18 - Cannot delete an integrity check with results
  •  DINT-31 - Column definitions compromised when integrity check code changes
  •  DINT-33 - Data Integrity module won't run in Openmrs 1.9
  •  DINT-28 - Test and fix emailed summaries (if needed)
  •  DINT-27 - Test and fix scheduled checks (if needed)
  •  DINT-9 - Add hyperlinks on List of Failed Records Page
  •  DINT-23 - Convert results storage to explicit JSON
  •  DINT-17 - Downloadable Summary Sheet for Requesting Paper Patient Medical Records/Charts
  •  DINT-38 - Improve management page UI
  •  DINT-41 - Loading message when testing code does not look right
  •  DINT-6 - Need to add information on creator, date_created, changed_by, and last_changed
  •  DINT-3 - Option of marking that patient record not to show up on next data integrity run
  •  DINT-25 - Remove Transfer Check functionality
  •  DINT-24 - Validate integrity check form before submit
  •  DINT-29 - Add metadata information to check edit and view pages
  •  DINT-26 - Allow for duplicating an integrity check
Version 1.1.2
  •  DINT-5 - Have a separate query +/- template for returning results for a data integrity check
  •  DINT-14 - Add scheduled tasks to run one or more integrity checks
Version 1.1
  •  DINT-1 - Need to have previous integrity check results shown along with downloadable links
  •  DINT-2 - Patient Record URL pointing to different server
  •  DINT-13 - Need new privileges for accessing Data Integrity Module
  •  DINT-12 - Repair Failed Records" does not work on fresh integrity check run

About / Contributors

Data Integrity Module is selected for Google Summer of Code 2017 and has been developed by Shivang Nagaria under the mentorship of Stephen Senkomago Musoke . More details can be found here . This module was initially developed by Nimantha Baranasuriya for Google Summer of Code 2009 and has continued development by Jeremy KeiperStephen Senkomago Musoke and AMPATH developers.

Here is the growing list of contributors to Data Integrity Module:

Project Documents