GSOC 2017 - Generic Tagging Mechanism | Final Presentation

Generic Tagging Mechanism

Primary mentor : @wyclif Backup mentor : @burke Student : @jtatia Project wiki : Link To Wiki

Overview 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. The goal of this project was to provide a tagging mechanism in OpenMRS that cuts across all domain objects.


  • To create a generic robust Api which will interact with the database and can be used for tagging OpenMRS Objects.
  • To create a Rest Resource to expose the module and to be able to make Rest Calls to obtain tagging related data.
  • To create a UI fragment extension to the second Column Fragment of the clinician facing patient dashboard, for performing simple functions such as adding, removing and viewing tags.
  • To add a feature where-in clicking on a tag redirects to a page where all Patients having that tag are listed.

Implementation The following pages cover the implementation details, including rest calls and the user interface.

Final Video Presentation

Major Code Contributions

Other Resources Project Documentation: Talk DIscussion: Rest API for generic tagging Blogs:


It was one of the most amazing and fruitful experiences. :smile: I had joined the OpenMRS community way back in December 2016, and since then I haven’t looked back. By working on the GSOC project I have gained a better understanding of the OpenMRS architecture. I was able to develop several technical skills, from using Hibernate for ORM, to Angular for UI. A really big thanks to my mentor @wyclif who made this experience all the more worth it. I specially liked how he did not tell me the solutions directly, and made me search for them, leading me to explore more things. He was there to guide me every step along the way. I also got a chance to interact with all the other GSOC’ers @Openmrs. it was fun working along with them for the same organisation (even though we were working on different projects :smile: ) Thanks to @dkayiwa as well, who was always there to resolve any immediate technical difficulties that we faced.

How can the Program be improved ?

Getting started with Open Source is probably the hardest part about it, that and build errors :sweat_smile: . I have noticed how people keep on asking the same question on talk regarding installation. Maybe we can add an FAQ section or some kind of aggregator which collects all posts regarding errors under a particular tag, or maybe better categorizes them. That way people can try resolving the errors by themselves.


Thank you for your contributions @jtatia :). Keep up your good work.