How can the Patient Registration be customized within the Android client

How can the patient registration be customized within the Android client, can it be configured to a registration app Id in the backend OpenMRS system?

Sorry @ssmusoke I didn’t get you - did you mean after a provider registers a patient in the Android client, will it be synced to the OpenMRS server? If you meant that, then yes it will sync.

@f4ww4z nope I would like to say add more fields to the registration screen - how can I do that without having to recompile the app.

Sorry for the delay I had somewhat missed your response

What fields do you want to add @ssmusoke ? we can file a new jira issue for this.

I have a custom identifier that needs to be added for an implementation so just wanted to know how to change it

@f4ww4z even better how can I specify a different registration app to use for the Android client, then I have full control of what is displayed

I do not know if I am making sense

The Android client doesn’t support that yet, sorry. The inputs are fixed, made at compile time only. Is there an example in the refapp that can add a custom identifier in the registration screen?

You mean a dynamic registration screen where user can change the form?

@f4ww4z nope where an implementation can use a different registration app instance

https://wiki.openmrs.org/display/docs/Registration+App+Configuration

This looks like version 3.0+ material @ssmusoke :sweat_smile: (right now is 2.8.1). sorry once again, we don’t currently support it. Thank you for the great suggestion though. I will make a JIRA issue for this.

@ssmusoke filed at

is this correct? Since the client syncs with a chosen OpenMRS server (that the provider specifies when he logs in initially and when he logs out and back in again), I think the client should adapt the registration form to match with the server’s.

Hi it seems that I am farther ahead on this issue than the documentation. I have successfully customized the patient registration form by adding several custom dropdown fields as “personAttributes”, though this functionality can easily encompass other types of custom input fields than dropdowns. To do this I first modified the SQLite database’s patientTable.java to add columns for the custom fields. Then, modify the DBOpenHelper to operate on these new columns upon insert or update of patients, and to link the columns to specific indices of the personAttributes arraylist. After this, most of the work is in AddEditPatientFragment.java and the patient registration xml file, but some functions in other files in the Addeditpatient activity may also need slight modifications, as well as a couple of other files such as patientDAO.java. Oh, and I think you would also need to create the personAttributes in your main module first and use the corresponding uuids when building the personAttributes for patient. If you are going to go forward with this process I can compile all of my documented changes I made to customize patient registration in a more organized and complete way for you. Please let me know, because the process would be much faster if you have all of the steps and directions for it.

How is it synced? May you kindly point me to the sync module/class?

And how are you syncing/pushing this data to the OpenMRS server?

Actually we need this because. I found the issue in android or any other client which consuming create patient api. If server uses LBAC module then create patient api through other client bypassing the registration app which is running on server.