The aim goal of the project is to implement new features and improve OpenMRS Android Client.
Market share of Android point is around 82%. Due to cheap prices and popularity of android phones, apps can be used to do the work easily and efficiently. It is specially useful for developing countries. We can also use some features provided by phones like camera, GPS, voice recording etc to make it even more useful.
In Hospitals, Clinics there aren’t many computers and most of the work is done manually. It include a tiresome work to maintain patient records manually.
An Android app which work smoothly and make the hospital/clinical staff more efficient is much needed. Instead of large size computer which allows little flexibility, staff can use android phones.
Android, Java, Basic SQL
- Charts can be displayed in more elegant way.
- Other small improvements:
- Progress dialogs taking too much space. Redesign it to make it compact.
- Replace rangedEdittext with seekbar making it easy and faster to select value.
- Use TextInputLayout from the design library instead of the normal edittext.
Security Improvements: The app misses lots of security features like:
Database should be encrypted from the details derived from the username and password.
If user changes password on system there is no system to detect it and logout the user automatically.
Forgot password option.
Android client is to provide an alternative to access a hospital's OpenMRS instance by just using the provider's Android devices. See the full Android client guide for more info.
Considering the services offered by a hospital, an Android application can help doctors, patients and other staff a lot with its mobility and ease of use, without them having to start the OpenMRS web app on a desktop computer. This will improve the productivity and efficiency of the hospital workflow.
This year, we will focus on two aspects to improve the Android client - performance and UI/UX.
There are still frequent crashes when using the app, especially if a doctor is using it for a long time with no pause. On crashes, the app will just return the user to the dashboard page, and any unsaved transactions will be lost. Also, offline first solution needs to be developed, where a provider cannot connect to the internet, and needs to work offline temporarily. Data should be synced again when back online.
Next, the current user interface is slow to respond to user inputs and does not look pleasing to the eye, compared to the newer and modern Android apps in the google play store. E.g. 'Undo' buttons (that takes the user back to the previous state if he/she errors) should be available for any operation. So we should enhance the feel of the app so that the user knows that he/she is in control every time.
Finally, seeing the number of components in the webapp, the Android app should integrate more of them so that doctors and staff can expect to see the same functionalities in the webapp implemented in the client.
An additional request is to migrate the Java source code to Android's now recommended Kotlin, to increase readability and reduce the the thousand lines of code present in the GitHub repository.
- Material UI design
- integrate more components of the webapp to the client (to be discussed further)
- Password reset via email
- Replace Java code with Kotlin
Sample Use Cases
- A doctor does not have access to a PC, but his Android phone is available to use during office hours.
- No internet connectivity, and a doctor needs to work offline temporarily.
There are a Ready to Work issues to get started on:
Same people who use the webapp: Providers (e.g. doctors, nurses, clinicians)
Android, Java, Room, Kotlin
- Project Issue Tracker (JIRA) - https://issues.openmrs.org/projects/AC/issues
- GitHub repo - https://github.com/openmrs/openmrs-contrib-android-client
- OpenMRS Android Client Project 2.8+ - Previous year's GSoC page for this project
- https://github.com/openmrs/openmrs-contrib-android-client - main repo
- https://openmrs.github.io/openmrs-android-client-user-guide/introduction.html - User guide