- Identify the heaviest / most resource-laden page views in the reference application.
- Make use of the existing REST Web Services API or DWR in OpenMRS.
- Engineer a thin client design, connecting to a hosted OpenMRS instance over a 2G bandwidth, using AJAX to update the page with minimal data transfer.
- Establish a style guide for a low-bandwidth skin
- Implement replacements for login, app list, registration, and visit dashboards
- / theme.
- Load a visit dashboard within a "reasonable" time over a 2G connection, or with a payload size below a "reasonable" threshold.
- Provide instructions on how to write a low-bandwidth version of existing or new views.
The classic use case for this module would be a health worker using a tablet or smartphone in a 2G area; we should not be concerned with feature phone web page rendering problems. Similarly a satellite uplink or tethered phone in a low connectivity area would be ideal for demonstrating the benefits of using this module in place of the reference application.
We have a real-world situation that an engineered solution would directly impact; the RHEA Maternal Care workflow is a combination of several OpenMRS HTML Form Entry forms. A good solution would allow for capturing this data over a 2G connection, either on a computer with a low bandwidth uplink or on a mobile device. In this scenario, we can assume the following:
- The client (patient) demographic details will be known once the client ID is known (e.g. age, sex, etc).
- The client's antepartum history will be used to determine the risk factors, so these do not need to be separately entered.
- Workflow forms will follow a branching logic, based on WHO maternal care guidelines.
I believe the key to this will be smart UI design and a style guide that allows for minimal page entities while conveying the right amount of information and functionality. We might trade off automation for page load timing. We could also investigate how to preload some data and allow the phone to catch up and enable automation after the user has some way to view the bulk of the data.