Child pages
  • Generic Tagging Mechanism Project
Skip to end of metadata
Go to start of metadata

Primary mentor

Wyclif Luyima

Backup mentor

TBD

Assigned to

TBD


Project Champions

Abstract

OpenMRS has always lacked a mechanism that allows users to annotate domain objects with simple text labels/tags, these labels can be useful in various ways e.g to group data and generating work queues. Take an example where a doctor sees some patients on a given day and wishes to make a follow up on some of the findings about 5 of them at a later time, he or she could quickly tag these patients during their respective sessions with a 'Follow Up' label and would quickly look them up later by the tag. The goal of this project is to provide a tagging mechanism in OpenMRS that cuts across all domain objects.

Objectives

  • Introduce a Tagging API i.e  a new service along with the DAO, this would require adding a new tables to the database to store the tagging information, it would be nice to use lucene for the search mechanism i.e to find objects with a given tag.
  • Implement a reusable fragment for the UI framework that can be included on a create/edit page of any domain object to allow a user to manage its tags, it would also be nice if the fragment can let the developer decide the orientation of the list of tags i.e vertical vs horizontal.
  • Implement a feature such that when a user clicks on a tag in the UI, they are shown a page that lists all domain objects with that tag, this listing page should be able to let them filter results by type for instance, to view only concept with a given tag.
  • The tagging service and UI components should require users to have the appropriate privilege(s) in order to manage tags.
  • Ability to disable tagging application wide

Skills Needed

  • Decent Java coding skills
  • Ability to work with minimal supervision

Extra Credit

  • Implement a reusable component similar to the UI framework fragment above which is intended for use in the legacy UI to allow users to add and remove tags to and from a domain object.

Resources

Related Issue: TRUNK-2284