Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Updated project status documentation



Electronic medical records (EMR) systems are critical to evaluating and providing feedback to clinical programs, to monitoring the evolution and overall success of medical programs, and ensuring that patient data and operational reports are easily accessed. Thousands of programs use an open-source medical records system called OpenMRS throughout the world to help advance the quality of care provided. Like all electronic medical records systems, the ability to use OpenMRS is limited by the quality of data entered into the EMR. OpenMRS deployments have used a variety of external data checks to ensure that data from the EMR system is reliable relative to paper systems, but there has been no consistent tool and this data is not always retained in a systematic way.

This Google Summer of Code Project develops a Encounter Audit Module for OpenMRS that can be used both by the broader OpenMRS community. The basic module is meant to extract encounter information based on user-selected criteria (e.g. for a specific form, date range, etc.) and prompt the user to re-enter the information. Once the user enters the data, differences between the original record are highlighted and the user is prompted to confirm the differences and will have the option of providing notes about the inconsistencies.

Project Champions



  •  Allow users to sample records based on user identified criteria
    • Sample based on encounter type, original enterer, location, and date range 
  • Prompt user to re-enter encounter information 
    • Highlight data that is inconsistent between the original and updated record 
    • Store this data for reporting purposes 
    • Allow user to provide information about inconsistencies (e.g. bad handwriting, missing data, updated data, etc.)

Extra Credit


  • Mark records as “evaluated,” “not done,” or “not evaluated” 
  • Save list so it can be revisited in multiple sessions 


Module Status

Encounter Audit Module is an open source module for OpenMRS that is meant to assess the quality of encounters entered into OpenMRS. The module relies on having a copy of the encounter that can be re-entered into the EMR. The module will then store the original record and the new audit record for comparison. This comparison is then used to determine the data quality of various encounters in OpenMRS.

This module is still be developed for release, but here is a summary of the current status.

  • Ability to sample encounters by parameters including creator, date range, encounter type, and location
  • Functionality to specify the number of encounters to audit
  • Saving projects by project name, description, and recording project parameters
  • Organization of audit encounters into a sortable table
  • Selecting an audit record brings up an htmlform specific to the type of encounter
  • Ability to re-enter the encounter (based off original paper record)
  • Built in comparison of existing encounter and the audit encounter
    • Differences highlighted and brought to the user's attention
    • User can view differences and either cancel the audit, update the audit or submit the audit
  • Capability to save and recall previously sampled encounters (from saved project information)
  • Capability to store the original encounter observations and the audited encounter observations
  • Ability to correct original observations/encounters based on audit information
  • Capability to classify differences (e.g. missing, value mismatch, not on paper, etc.)
  • Classifying and flagging audit project and encounter statuses
    • Ability to automatically sample based on project type (e.g. to select an appropriate random population for a given confidence interval or to produce a lot quality assurance assessment)
    Generate reports
  • Capability to add/delete encounters from projects
  • Ability to generate projects based on given data quality projectproject type
  • Basic reporting capabilities
    • Quality of data by user
    • Types of errors (e.g. user left record blank, user filled in data missing from paper record, user entered in a value with insufficient precision, paper record was difficult to read or changed, impossible to represent accurately in EMR, etc.)
    • Quality of data based on location
    • Quality of data for a user defined project, program, or encounter type
    • Quality of data based on observation
    • Statistical calculations for confidence intervals, sensitivity, LQAS, etc.


The module repository is stored at: https://github.




The module wiki is located at: