Data Comparison Module

Primary mentor

Daniel Kayiwa

Backup mentor

Suranga Kasthurirathne

Assigned to

Bhashitha Wijewardhane

Abstract

There is a need for a new module, which will allow the user to compare for example an old and a modified concept. The module should accept two objects and display views of them next to each other highlighting differences in fields. It will be used by the Metadata Sharing Module to compare existing with incoming metadata and produce nice import reports (what actually changed). It could be also used to compare patients when resolving duplicate entries.

Project Champions

Objectives

  1. Create a new module following Creating Modules (improve the documentation if needed)
  2. Apply for a repository at https://github.com/openmrs and a JIRA project
  3. Create tickets in JIRA for tasks to be completed during GSoC
  4. Create UI mockups of the comparison view
  5. Prepare a simple comparison view of basic fields like String, Data, Boolean, etc.
  6. Expand the view to include related objects e.g. comparing Concepts we need to be able to compare related ConceptClass or ConceptDatatype (it can be a tree like view developed with the use of javascript)
  7. Expand the view to inlclude collections of related objects e.g. comparing Concepts we need to be able to compare related ConceptNames (same names will need to be displayed next to each other)
  8. Embed the comparison view in the Metadata Sharing Module assessment page 
  9. Create a wiki page for the module

Extra Credit

  1. Load related objects only when requested with AJAX
  2. Create an import report page for the Metadata Sharing Module, which uses the comparison view

Resources

  1. Metadata Sharing Module

 

UI Mockups

Following mockups shows the suggested UI for the metadata object comparison view. The objects used for the mockups are only for the demonstration purpose and may not the real metadata objects.

 

1. Simple object comparison view for similar objects.

 

2. Comparison view of different objects which have object as propertises, collections, and null properties

 

3. Comparison view of different objects which have collection of objects