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

What this module does

The Data Integrity Module provides a way to create, manage and review data quality 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 data quality issues.

Some potential integrity checks are:

  • Patients with no preferred identifier
  • Patients with more than one preferred identifier
  • Patients with no name
  • Patient Identifiers with an incorrect check-digit
  • Unused Concepts in the Concept Dictionary
  • Unused Field Objects for Forms
  • 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)

See the Sample Integrity Checks page for these and more.


Version 2.x

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

Version 1.x

  • OpenMRS 1.6.2+
  • SQL skills (for integrity check authors)

Documentation / How-To

File a ticket for a new feature or bug at the Data Integrity Module JIRA project.

Version 2.x:


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 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