The OpenHMIS team will be starting on some new work in the upcoming weeks and one of the main focus areas is mobile accessibility of OpenMRS. There seems to be some traction for Open Web Apps and also an existing mobile app but neither, as far as I can tell, has a lot of activity currently. Perhaps there are other mobile omrs projects ongoing but that is what I found after a short search. As we get started on this requirement we would like to put our efforts behind something that will benefit the community and not just go off in our own direction. As such, is there any consensus on the technology that should be used for access to OpenMRS via mobile devices?
To give a little context, we need to provide a mobile interface which supports the following:
- Multiplatform (iOS and Android)
- Native experience: doesn’t have to be a native app but should look and feel like one
- Ability to use device features (camera, fingerprint scanner, etc)
- Modular: modules should be able to add module-specific functionality
- Limited offline and syncing capabilities
- OpenMRS Features:
- Search patients
- Register patients
- Add/edit patient visits, notes, and forms
- HTML forms entry
I’ve got a few questions that I would really appreciate some feedback on:
- Are these features that others would be interested in?
- Does either OWA or the mobile app (or other) currently support these features?
- Assuming that neither fully does, what would be the best platform to build on?
- Should we consider starting from scratch on a new mobile platform? If so, can you help us to design something that will meet our needs along with any others from the community?
We are hopeful that we can contribute to work that has already been started rather than go off on our own. Because this is a core requirement for our client we will be putting some full-time development resources behind it and should be able to move pretty quickly to implement the features we require. Hopefully we can do so in a way that will help others as well.
Not sure if you got a chance to check out mUzima and it’s been developed and used in the field for two years now. It’s compatible with OpenMRS 1.8.2. to 1.11.5. However, it currently works for Android only.
Please ping us (@mwere, @mssavai, @sthaiya, and @ayeung) if you need more info.
@ibewes, personally I would drop the idea of multiplatform support. I haven’t seen any viable solution on the market, which provides good enough experience for users and developers.
Please have a look at https://wiki.openmrs.org/display/projects/OpenMRS+2.x+Android+Client or https://wiki.openmrs.org/display/docs/OpenMRS+iOS+Client
This summer we have @avijitghosh82 working on Android Client. The scope of work for GSoC 2016 covers a good number of your goals. See https://wiki.openmrs.org/display/projects/OpenMRS+Android+Client+-+GSoC+2016 for details.
@ibewes, please check out https://github.com/openmrs/openmrs-contrib-android-client. It is in active development and we will soon be doing Play Store releases. Thanks!
@ibewes, maybe this is something worth talking about on a dev or design call?
Thanks for the reply @ayeung and for letting me know about the work that is being done with mUzima. You mention that it is currently Android only; is that something you hope to change in the future? Is it built with one of the frameworks that would make it possible to share at least some of your code between iOS and Android?
@raff While I appreciate where you are coming from regarding dropping multi-platform support I think that this would be a mistake long-term. The reality is that many users are going to have and want to use some kind of iOS device and requiring that those users switch to Android (assuming that they are able to choose - I’m thinking of donated devices) seems like a tough sell.
I’m surprised that none of the multi-platform frameworks are considered viable; I haven’t put much time into looking at them but it seems like there are a bunch (including free options) and the features they provide would be more than enough for an OpenMRS client. I’ve looked briefly at PhoneGap, Ionic, and Xamarin and they each seem like they might be able to help in this regard. I’m not so optimistic to think that we’ll be able to have a single app that works on all platforms, but even if we could just share some of the code and design that would seem to be a positive.
The work on the OpenMRS 2.x Android Client looks great! I haven’t looked at the code but how much work would it be to port this over to something that would at least make the option of an iOS version possible? We would be happy to come alongside you and @avijitghosh82 to help make that happen. Regardless, great work on it.
@pascal - I would be happy to discuss this at an upcoming dev/design call. We are also starting work on a few new modules that we’d like to get feedback on as well: Patient Lists, Patient Visit Tasks, and a Simple Patient File Attachment module (something may already exist for this, haven’t checked yet).
@jthomas might be able to help schedule a call (or two) for you.
We are on the alpha/preview stage of our new Visit Documents UI module.
This module eventually aims at managing any type of file attached to a patient’s visit, its implementation remains flexible so that MIME types can be matched with their corresponding concept complex (and hence backend handler).
However right now it is still limited to images.
This is work in progress so there are known bugs or rather missing features that are on our radar already.
We didn’t mean to talk about it yet but since I saw your line above…
I admit I looked into building hybrid apps about a year ago and the tech world is moving fast. Ionic was the most interesting, but it was in beta back then. Ionic 1.0 was finally released in May 2015 and now we have Ionic 1.3 and 2.0 is coming. The community is vibrant, showcase apps look really nice, the framework has a promising SDK and it’s AngularJS so there’s plenty of devs around. It would be good to hear about the development experience from the team behind https://github.com/Vincentes/OpenMRS-Mobile
I still observe more lag in UI when using those apps on Nexus 6 (high-end device) compared to natives. Undoubtedly at some point hybrid apps will be indistinguishable thanks to further optimizations and better hardware. Everyone can try some apps from a listing at http://showcase.ionicframework.com/
I do not say we should not support iOS, but I do think it is not necessarily the time to do it via a hybrid. Also I see more benefit in supporting the most accessible platform very well rather than providing mediocre support for all.
There are some ways to share non UI codebase between native Android and iOS apps. See https://github.com/google/j2objc which is used by Google for the Inbox app for example, but it’s not widely adopted.
By the way OpenMRS Open Web Apps are not yet targeted for mobiles. They are currently for desktop browsers and do not come with offline capabilities other than browser cache.
@ibewes I would be more than happy to get you on the design forum schedule if you are interested in having further discussions. Let me know if you would prefer Monday’s @12pmET or Wednesday’s @2pmET?
Thanks for this interesting thread.
CommCare is being integrated with OpenMRS (using MoTech). Possibile Health (Nepal + http://possiblehealth.org/) requested this connection. They currently use Bahmni. I believe the work is being done by Dimagi and/or Thoughtworks. Partners In Health uses CommCare in several locations, and is very interested in this work.
Thanks very much Jamie. I am in Nairobi, Kenya so Monday at 12pm EST would be better. I’m not free this Monday but could make pretty much any other date work.
@mksd That looks great and is exactly what we need! Do you have a timeline for release?
Some known issues still remain and need to be addressed, but as it is now the module already does the job, I repeat: for images only at this stage.
Would it be possible for you to spend some time playing around with it and provide some early feedback?
It is already being trialed but the more the merrier!
If yes then I will open an ad-hoc thread for it, so just let me know.
First beta release within two to four weeks.
Let’s go for Monday, June 20th then. @ibewes who else should we make sure is on the call?
Currently mUzima is Android only but we have plans to build an IOS version. We have had experience building apps on Ionic/Cordova and we are still deciding on the strategy to use. The code is opensource available @ http://github.com/muzima. If you need more information let me know.
Now that you are in Nairobi, myself and @mssavai will be in Nairobi Monday 13 to Wednesday 15 June. Can we plan to meet and have a more detailed conversation.
Thanks @jthomas , I’m not sure who would be interested in this (aside from some of the people who responded here). Does Monday still work?
Yes we are still good for monday
@wyclif, @maurya, and myself joined uberconfernce, but didn’t see anyone else so called it off after ten minutes.