OpenMRS Mobile Interface

Hey @burke and others… I am really sorry that I wasn’t able to join in today. I sent a message to Jamie earlier today to see about rescheduling as I had another meeting come up today that I could not move.

Any chance that next Monday is free? Sorry!

No worries. I’m not sure we would have had the right audience anyway. Who’s the audience for this discussion? It might be more productive to discuss on a dev forum with enough lead time to attract people interested in mobile application development.

A couple quick comments from my perspective:

  • Leverage REST (or FHIR)
  • Look at existing efforts (Soldevelo’s Android app, mUzima, the GSoC iOS app)
  • Consider if something like React Native would suffice
  • If you’re going to store anything on the device, have a plan for security issues (and get the AMPATH team to discuss their approach to mobile security)
  • Don’t register people offline without requiring timely synchronization with the server… or, better yet, avoid assigning a patient identifier until registration is completed on the server (a patient is not actually registered until their demographics & identifier are linked on the server). mUzima may have some tips here. Sorry for venting here… we’ve had “registration” in the field and spent years trying to clean up a mess of duplicate patients, multiple identifiers per patient, etc.

This exact thing has been done in AC-178, AC-179 and AC-180 of the Android App. :slight_smile: It is now possible to register offline and sync when there is network access.

Sorry @ibewes I was out of the office yesterday so did not get your message until today. I will add you to the schedule next Monday.

Just a quick update that this was discussed on the Design call last Monday. Thanks very much to the people who attended and for the discussion here, it has been very helpful. The notes for that call can be found here.

In short, it was suggested that we move away from multi-platform support as this will greatly complicate the development. If we do decide that we must have iOS and Android support it was suggested that we check out React Native, as Lluis mentioned here. Likewise, the ability to extend the app in a modular way will likely be very difficult (especially if we try to do in a multi-platform app) so we may have to table this.

We will be looking over the apps mentioned here and during the call as we make a firm decision on which direction to go. Regardless of what direction we take, we will follow up with another post and explain what we’re thinking. Thanks again for all the feedback!

1 Like

I know its this is an old thread, couldn’t find any other more relevant so posting it here.

Instead of multi-platform why not use cross-platform application. Can we implement using Xamarin? Xamarin Forms provides many controls which are cross-platform and most of the business logic will be shared and we can also support Windows Phones. Reduces the development time greatly and we can concentrate more on other development aspects.

If its ok, I can make a sample app which runs on all the 3 platforms(iOS,Android,WP).

  • Shan

@shan you do not need permission to do a sample app. Just go ahead and do it as proof of concept. :smile: We can schedule a meeting where you can show us.

Xamarin is C#, you won’t be able to reuse any OpenMRS Java code.

Do you have any metrics/references to support that?

Why would we want to reuse OpenMRS code in a mobile client?

I would be interested in at least checking Xamarin out as an option. My major concerns would be how native the application would look/feel, performance, and what kind of licensing Xamarin would require (if any).

@shan - Please let us know how your sample app comes along. I’d love to see it and hear your thoughts about developing apps with Xamarin.

I agree there is not a lot of classes that could be reused (nothing from the business layer) but at least the model (all the POJOs) could be. And maybe some validations.

Yeah, that’s a good point… sorry for being pedantic!

@ibewes yes I’m working on a sample, will share the code as soon as its done.

@lluismf Any java code already written, can be reused inside Xamarin via JarBinding. (Although reusing everything is not possible) (ref: https://developer.xamarin.com/guides/android/advanced_topics/binding-a-java-library/)

As for development time, I dont have any references, its just a personal experience. We majorly eliminate the UI making three times (on 3 platforms).

@ball hi Sanjay here from Possible. We are using commcare. Motech is under the testing phase to integrate Openmrs and Commcare. Great discussion though.

1 Like

@ibewes since you started this thread, what do you think of Flutter?

1 Like

Hello,

Together with my team of students, we are trying to develop a project to improve the medical situation in Ghana. We wanted to use OpenMRS as the main platform to do so. I downloaded and configure OpenMRS on our host to have our own test database. However, the project is suppose to be based on the mobile app version of your platform and I can’t get to access my database through the mobile app neither on iOS nor on Android. Even the demo database doesn’t work on mobile.

Are you aware of this ? Is there anything I can do to make the app working ?

Thank you very much in advance,

This sounds like a networking issue. What sort of network configuration are you using?