Overview
This discussion is for further improvement of Android Client, bringing the power of provider management in the app. This is an unlisted project idea for GSOC - 2016 and I would like to work to implement this feature in OpenMRS Android Client.
Background
I have been part of OpenMRS community for a while now. Technically, I have contributed in the OpenMRS Android Client by fixing a fairly good number of issues and adding new features to it. I hope that qualifies me as a good applicant for a new project idea.
Discussion & Proposal
Since mobile phones are a candidate platform for delivering and receiving health information due to its widespread adoption, and technical capabilities, the idea of making an Android Client for OpenMRS was exemplary.
Current Scenario:-
Android Client has various good features like:
- Searching for a patient by name, downloading his/her details for offline viewing.
- View of patient information, diagnosis details, last captured vitals etc.
- Starting and ending visits for a patient. Last visit details etc.
- The option of capture vitals is there but not yet functional.
All these are good for a start but we need a more powerful, robust, rich in features Android Client so as to increase the user base.
Idea Objective
Coming to the point now, I am really looking forward to implementing Provider Management Module in our Android Client. Provider Management Module in the app will provide all the features which it is providing in Desktop versions of OpenMRS namely:
- Search for providers and edit their demographic information
- Assign/unassign patients to providers.
- Assign/unassign supervisees to providers.
Implementation
I have gone through the docs of Provider Management Module, it is already having an API as mentioned here which provides numerous methods that can be called to perform provider management functionality.
Going somewhat deep in the technical implementation, we can have a fourth entry alongside ‘Find Patient’, ‘Active Visits’ and ‘Capture Vitals’ in the dashboard named as ‘Provider Management’. Clicking on it will open a new Activity having three options for:
-
Searching the providers: Will search for existing provider and clicking on a provider in the search result will load the Provider Dashboard. It is very similar to the implementation of ‘Find Patient’ feature in the app.
-
Adding New Providers: New providers could also be added from the search page. After typing a provider name in the search box, a button to add a new provider will be enabled. To avoid duplicates, a dialog box will appear asking you to confirm that the provider you wish to add is different from any existing providers with similar names. It will also search all existing persons to see if perhaps this person already exists but needs a provider record associated with him/her.
-
Provider Dashboard: The provider dashboard will consist of two main sections. The left section will display the basic demographic information for the selected provider as well as the provider role, and may/may not provide means to edit this information. The right section will contain a series of panes that list the various patients and/or supervisees for the specified provider.
EDIT: Further Additions: After the basic implementation of the Provider Management system, we can add a push notification feature of notifying the provider about 30 minutes prior of his/her appointment.
I have referenced these implementation details from existing docs for the module. I hope you find this idea worthy and will look forward to discussing anything further in it.
I was inspired to implement this idea in the app by @hossam who uses OpenMRS in the real world. He faced some challenges while running a dental clinic in Alexandria, Egypt. He opted for OpenMRS to solve the problems and is looking forward to a more powerful and better Android Client due to the surge in the use of mobile devices in developing countries.
I would really like the reviews/criticism on this idea. It would be great if someone guides me through this implementation. @raff I would like to know your comments on this.