Have you implemented OpenMRS? Please participate in the Implementation Site Survey. If you already have, thank you!
Child pages
  • Blocking Algorithm for Patient Registration
Skip to end of metadata
Go to start of metadata

Primary mentor


Backup mentor


Assigned to

Kesha Shah


OpenMRS is increasingly used for multiple data collection points across several systems. There are different models of using openMRS in health care for example where a user registers a patient at the point of encounter and subsequently enters all their details into the system, and in other cases a clinician writes patient details on a paper chart, that is later transferred to the openMRS system by data clerks. Moreover , a program may involve a mobile tool that registers patients while out in the field , and sends this data into the main system to create new patients. These data are combined into one record, and depending on the available data elements are appended to an existing patient or used to create a new patient.

Unfortunately , most of the registration work for patients in openMRS remains a data collection exercise. We wish to transform this by developing and implementing a data blocking algorithm that quickly uses the data elements entered during this registration to determine if the patient is existing or new to the system , or is in the 'grey zone ' that requires processing by the patient matching module implemented in openMRS. We aim to improve patient identification and matching , and build a framework to allow for incorporation of additional data elements like biometric data , latitude and longitude to improve patient registration

Project Champions

  • Judy Gichoya
  • TBA


  1. To develop and integrate a blocking algorithm on server side of OpenMRS to capture demographic data details, compute possible blocking approaches and compare results for high return
  2. To implement an algorithm to clean data on registration details for example name misspellings and unexpected characters to improve data blocking and patient matching results
  3. To develop a generic blocking prototype that integrates mobile patient registration connected to server registration that is light weight and responsive in low connectivity areas
  4. To implement an algorithm that corrects for various name variations that occur in various geographic areas e.g. name transposition that affect record linkage and patient matching
  5. To optimise the speed of blocking algorithm to ensure efficient workflows and minimal interruptions during patient registration events for various openMRS implementations


Extra Credit


  • The algorithms above are already implemented and tested for research , just need to incorporate them into OpenMRS
  • +1 if you are good at math and algorithm - this project requires strong analytical and algorithm knowledge
  • + 1 if you have coded on the patient matching module


  • https://wiki.openmrs.org/display/docs/Patient+Matching+Module
  • https://wiki.openmrs.org/display/projects/Enhance+Patient+Matching+Module
  • No labels


  1. so does this require GUI things?? i mean, is it just manipulating the logic layer?

    1. just manipulating the logic layer

      1. great. I have been a very active member in OpenMRS. May I know what sort of prerequisites are needed to try out this Project??

        Thank you. 

  2. This is very interesting project for me because mathematics and algorithm touch.So  how can I get more information about this project ?

    1. You can post your questions here or on the mailing list

  3. Judy Gichoya I have started exploring about this project. Kindly provide your email-id so that I can contact you regarding the same.

    Thank you,

    Akash Agrawall

  4. I would like to discuss my ideas regarding this project with you.So could you kindly provide me your email-id.

  5. Kindly explain the meaning of "mobile patient registration" in detail. I have read the resources provided by you and would like to discuss some topics with you.

  6. Is it really mandatory to have contributed atleast one code to OpenMRS? Because I am very interested in doing this project, but I haven't done any contribution to your organization before? Will my proposal be accepted. 

    1. Anusha Swaminathan Yes OpenMRS needs atleast one contribution to consider your application.You can still do that.

      1. Where do I do the contribution? Can you please guide me to the location where I should get started? 

        1. Developer Guide

          Start from here. Build OpenMRS. Then you can start fixing bugs. You can use the mailing list or the IRC channel to ask questions (smile)

          Write code and Save Lives

  7. Judy Gichoya We have to develop blocking algorithms or just improve and integrate the ones already developed for the Patient matching module?

  8. Hi Judy Gichoya ,

    I am Kesha Shah and interested in this project due to several reasons. It also matches my skillset. Actually due to exams, I was able to start late looking for projects and organizations. Also, I was working on ticket 2820 https://tickets.openmrs.org/browse/TRUNK-2820 . I have submitted proposal on melange. I would like to have feedback on it as well as discuss the proposal in detail with you on IRC/ through mails. Can I have your IRC nick/mail address ?

  9. Kesha Shah I noticed you have an elaborate description of your Project Plan setup here: https://wiki.openmrs.org/display/projects/Project+Work+Plan

    What is the current status of this project? It shows you were assigned to the project and it seems pretty interesting so just wanted to get upto speed on the status (smile)