Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Primary mentor

Backup mentors

Assigned to


Abstract

The goal of the 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, the 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 web app, the Android app should integrate more of them so that doctors and staff can expect to see the same functionalities in the web app 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 a thousand lines of code present in the GitHub repository.

Objectives

  1. Material UI design (Figma Link)
  2. Integrate more components of the web app to the client (to be discussed further)
  3. Password reset via email
  4. Replace Java code with Kotlin
  5. Replace native SQL to Room

Future Works that need to be done

  1. Migrate the remaining 80% codebase to kotlin.
  2. Start converting MVP pattern to MVVM as it follows the new standard guideline brought by Google.
  3. Re-design Home screen with a better UI.
  4. Add the password-reset feature.
  5. Create a diagnosis using REST.
  6. Implement the Appointment Scheduling Module.
  7. Mark Patient deceased using a non-coded response.

Sample Use Cases

  1. A doctor does not have access to a PC, but his Android phone is available to use during office hours.
  2. No internet connectivity and a doctor needs to work offline temporarily.

Project Champions

Same people who use the web app: Providers (e.g. doctors, nurses, clinicians)

Skills Needed

Android, Java, Room, Kotlin

Progress

Issues that are completed and their status:

Iframe
srchttps://docs.google.com/spreadsheets/d/17cbZIPFYycVwmhbdeE8VJWlYpY1lWRCtYEdKoppKps0
width100%
styleheight:75vh
titleJIRA issues

Timeline

Week 1

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-689
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-665
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-763
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-764
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-767
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-770
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-450

Week 2

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-778
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-779
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-783
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-777
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-780
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-782

Week 3

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-780
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-776
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-785
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-787

Week 4

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyRA-1790
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyRESTWS-777

Week 5

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-799
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-791
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-766
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-794

Week 6

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-804

Week 7

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-817

Week 8

Blog post

Completed database migration (from ActiveAndroid to Room) at

Jira Legacy
serverOpenMRS Issues
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
keyAC-470

Week 9

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-814
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-596
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-805
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-815
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-824
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-823

Week 10

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-810
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-808
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-664
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-809

Week 11

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-811
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-833
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-835

Week 12

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-836
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-829
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-840
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-841

Dev Tracks

Resources



Primary mentor

Backup mentors

Assigned to


Abstract

The goal of the 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.

...

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.

Objectives

  1. Material UI design
  2. integrate more components of the webapp to the client (to be discussed further)
  3. Password reset via email
  4. Replace Java code with Kotlin

...

  1. A doctor does not have access to a PC, but his Android phone is available to use during office hours.
  2. No internet connectivity, and a doctor needs to work offline temporarily.

Project Champions

Same people who use the webapp: Providers (e.g. doctors, nurses, clinicians)

Skills Needed

Android, Java, Room, Kotlin

Progress

Issues that are completed and their status:

Iframe
srchttps://docs.google.com/spreadsheets/d/17cbZIPFYycVwmhbdeE8VJWlYpY1lWRCtYEdKoppKps0
width100%
styleheight:75vh
titleJIRA issues

Timeline

Week 1

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-689
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-665
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-763
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-764
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-767
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-770
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-450

Week 2

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-778
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-779
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-783
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-777
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-780
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-782

Week 3

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-780
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-776
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-785
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-787

Week 4

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyRA-1790
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyRESTWS-777

Week 5

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-799
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-791
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-766
  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-794

Week 6

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-804

Week 7

Blog post

Tasks completed:

  • Jira Legacy
    serverOpenMRS Issues
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
    keyAC-817

Week 8

Blog post

Completed database migration (from ActiveAndroid to Room) at

Jira Legacy
serverOpenMRS Issues
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
keyAC-470

Dev Tracks

Resources

...