Data Integrity Workflow Module

Primary mentor

Jeremy Keiper

Backup mentor

Ada Yeung

Assigned to

Harsha Kumara


The Data Integrity Module allows users to run integrity checks against the database and identify problems for review. Each integrity check has several records with a status of New, Ignored or Voided. Users browse through the records, look up paper forms and verify the data. The only way to remove a record from the listing is to mark it as Ignored or re-run the integrity check after fixing the problem (at which point the record is voided because it is no longer an error). It's very hard to manage and fix large number of integrity checks with having thousands of record for each check.Data Integrity Workflow Module allow users to efficiently and collaboratively manage data integrity checks.This module enable manager to assign records in a particular integrity check to users(can be a analytic people) for analyse the issue with the record and fix it.


  • Allow a manager to assign individual results or entire groups of results to another user for follow-up
    One of the major feature of this module is to assign  single or group of records of each integrity check to users(can be analytic people) for follow up and fix the errors in the records.Data Integrity Module not having a option to assign  records.Because of this only few privilege people can be access and fix the errors in each a integrity check by going through all the records.This is not feasible approach for OpenMRS instances which having large data capacities.There may be thousands of records results in a integrity check which having numerous errors.One of main objective of this module is to collaboratively solve the errors in a database by dividing task to responsible people.

  • Allow a user to log in and see just his or her assigned results
    After manager assign records to a users,it's required users to view their assigned checks for further investigation for fix errors.User will receive a table of assigned records.Through this web interface user will select preferred reports to work on.

  • Allow a record to move through workflow stages, such as In Progress, Waiting on Information, Verified, etc. (this workflow can be provided by implementer community members)
    Managers need to keep track of the stages of the records which are assigned to follow up users. User can be change the status of a record to a another stage to indicate the he/she progressing on that record.
  • Allow managers and follow up users to comment on records
    Sometimes managers or the follow up users required to comment the details about a particular record. Follow up users will have lot's of issues in the process of solving integrity problems in a database which are can be express through the comments.May be managers also want to highlight some description about a record through a comment.

  • Provide summaries for seeing workflow stages and progress over time.
    It's very useful to have summaries and reports about a record. These summaries and reports will include assigner changes,stage changes and other required details. 

Module functionality

Data integrity workflow module enable very flexible environment for manage the integrity records within openmrs databases. When someone use data integrity module which is the parent module of this project, he may experience with large number of integrity checks followed by number of integrity check records per each check. Within very few administrative people, it's very hard to manage all the integrity workflow records spread within all the integrity records of the system. So this module enable managers or administrative people to assign people for each records to follow on and fix particular records. Record assign capability and privilege will only be granted for managerial persons in the system. Followers can change the working status and comment on particular records for get further clarifications on the process of fixing the particular integrity record.

      System Privileges

    • Manage Record Assignees //for managers privilege
    • View Record Assignments //for followers privilegSystem functions

    System Functions

    • Managerial level user can view integrity records and assign results of records to low level users to follow up and fix integrity violations associated with each records.
    • Managerial level user can remove assginees from assigned records
    • Managerial level user can comment on particular record and can change the current working stage of a particular record
    • Managerial level user can view record wise summary and also whole check wise summary
    • Managerial level user can add and edit workflow stages and keys associated with integrity checks
    • Follow up user can view set of assigned records to him
    • Follow up user can comment on a particular record and change the current workflow stage of a record

System Views

Module is consist of several views to achieve the required functions mention in above, In following sections will contains the set of functions associate with each view and how it can be use for achieve the required functionalists.

Administrative links for manager

  • In this view managerial level person views set of links to goto different views.In Manage Records link, it allow managerial users to see the available integrity checks in the system

  • Change Check Key link will direct to page which shows the available checks with keys to change keys of selected checks.
  • View records link allows to view the assigned checks for logged user
  • Add Workflow Stage link allows to users to add new workflow stages

Low level user links

  • Low level user will only see the View Records view which allow them to see the assigned records for them

Integrity Check View

  • Managerial person only can view this page by clicking Manage Record link
  • This window shows available integrity checks in the system with associate key for each key which will be default key at initially
  • By clicking one of check,user can view the associate checks for a particular check

View records for a check

  • In this view managerial user can view the available records for a selected check
  • This view allows managerial user to assign set of records for a user by simply tick the check boxes and then clicking assign button in the page.It will popup a dialog which users can enter the name assignee to assign the selected or all the records within a check
  • As same way managerial person can remove users from record by tick the check boxes and hit unassigned button in the page
  • By clicking a the username link,managerial person can view the set of records assign for user for a currently viewed check
  • history link allows users to see the set of actions perform within a record from the beginning

Assign User View

  • After managerial level person hit the assign button, pop up dialog will appear to enter the username of a user need to associted with selected records
  • Another option is in the popup dialog which allows to managerail person to choose assign selected or all records for user

Check Summary View

  • This is the second tab in the integrity check records view which enables several functions for managerial level person
  • In this view managerial level person can view summaries of a check by assignee, stage or record status. 
  • Managerial level person can identify which records assign to users,how many records in each workflow stage and status of the records.
  • Managerial level person can simply click links and navigate to pages which  shows the records associated with each category in summary view
  • In later custom query view enable managerial level person to filter out set of a records within user specified constraints.For eg: if managerial level person want to list the set of fixed records within specific time duration by a particular user, it can be done through this query view.

Record History View

  • This window is the page which user navigate after clicking a particular record's history link
  • Managerial level person can view set of operations perform upon a integrity record from the beginning

Integrity Record View

  • Simply clicking the record id of integrity record will be naviagated to this view
  • This view is enable managerial user to normal low level user to discuss and change the status and stages of records
  • For managerial level person, module will be given privileges to reassign user to particular check.This function is can be achieved by change button next to the username in the view.But low level user will NOT have this button enabled for change the assignee of a record.
  • Low level user can comment and change the status and working stage of the record
  • Managerial level person also can be done above mentioned operations and addition operation which allows to change the user.

Change Check Key  View

  • Managerial level person can simply click upon the key particular record and change the check key in the navigated page.

Add Workflow Stage

  • This view allows managerial level person to add a custom workflow stage to the system

Low Level User View 

  • For normal integrity record follow up user will be see this view, after follow up user click the View Records link,user will be directed to this view which shows the all assigned records for the user
  • Follow up user can click the record id to enter into full integrity record view

These are the set of views in the module which provide the required functionality specified in the module.

Final evaluation demonstration



Initial version of the module will be compatible with OpenMRS 1.8.x

Use Cases

UI Mockups

  • Manager Views
  • Analytic user's view

E-R Diagram


Project Plan

Project Timeline

May 27-Jun17

  • Discuss about the final project deliverables with the mentors and update the project requirements documents according to it.
  • Improve the user interfaces for manager and user while researching about possible approaches.
  • Getting more familiar with hibernate and Spring framework.

Jun 17-Jun 25

  • Finalize the user interfaces in the project
  • Designing and creating necessary table schemas
  • Explore more about writing module in openMRS

Jun 25-Jul 29 

Implement the first phase of the project

Goal-Finishing manager view implementations

  • Creating the table structures through liquibase 
  • Creating backend services with use of the dependent data integrity module
  • Implement the manager view
  • Creating pages for view report summaries
  • Finalise the manager view implementations
  • Get a initial start of implementing user view
  • Partially implementing the user views

Jul 29 -Aug 2 

  • Mid evaluations 

Aug 2- Sep 9

Implement the second phase of the project

Goal-Finishing user view implementations and finalise the project

  • Polishing first phase implementations according to feedbacks
  • Implement the user view front end pages
  • Perform necessary changes at the backend
  • Finishing user view implementations
  • Writing test cases and test the project for verify its’ functionality
  • Creating wiki pages for the module


  • Extra week for finishing and wrap up project work


  • Final evaluation

Extra Credit


Data Integrity Module