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.
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. It is now possible to register offline and sync when there is network access.
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!
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).
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.
@ball hi Sanjay here from Possible. We are using commcare. Motech is under the testing phase to integrate Openmrs and Commcare. Great discussion though.
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 ?