Making OpenMRS Android Client easily customizable.

At present android client works more like a standalone software which can be used, but its really hard to customize it for any implementation.

This thread initiated by @ssmusoke in which he indicates that refapp can be used like a baseline and implementations can build on top of it without forking the refapp.

we are still not near the flexibilty we would want but following this series of Tasks

we have tried to decouple the presenters with the repository methods which handle the app’s interaction with the servers.

@ssmusoke will it be helpful if all the code which acts as an interface between the UI, presenters and the actual servers is encapsulated as a Jitpack library so that implementations can build on top of the methods exposed via the repository classes and build customized UI without forking the android client.

To leverage the jitpack library we would just need to add it as a dependency rather than forking the whole android client making it difficult to customize as was the case in this post

Would love to hear more thoughts and suggestions on this, and more insights into how refapp actually makes itself easily extendable . :slight_smile:

cc @ssmusoke @dkayiwa @rishabh997 @gcliff


Hello there, @saurabh, I’ve been planning to implement the offline structure for various features in the Android Client (which is only for the Provider module so far as stated on the wiki page). But I am having a hard time understanding how the Provider module is working offline, if you can please guide me through it, I will be planning my approach to do this effectively.

1 Like

does it help @shivansh221b

I think this read would be good for you

Yes it does, thank you @saurabh

One more thing @saurabh sir, we can add, edit and delete patients in offline mode and as of the PR you mentioned, Provider too. and as in the PR - 729 the offline Visits are disabled and also Allergies can also be managed offline. Then what functionalities are still needed to be implemented in offline mode?

we want to homegenise the offline structure, its not coming all together at the moment there are some Issues with the provider offline structure which needs to be fixed and generalized across all the modules in similar way.

The Patient module still uses services for the purpose while the provider module uses much higher abstraction which is the work-Manager for this purpose.

you can drop the sir feels weird Im still a undergraduate student :smile:

Sure thing :+1:

So, does that mean that the offline structure is ready(which was implemented for the provider module) and just needs to be fixed and generalized to be used in all modules???