Page tree
Skip to end of metadata
Go to start of metadata

mUzima core is the main mUzima  openMRS module that has rest Endpoints that enables it to link the OpenMRS instance with the mUzima mobile application.

It does the mobile data processing, mUzima form management, Error resolution among other server side functionalities.

1. Form Management

The main data collection tool on mobile application is HTML5 forms programmed as per guidelines on Form Development. Once the form has been developed, do the following in order to get the form ready to be used in the mobile application.

a. Form Definition

  • mUzima uses the OpenMRS forms section to create a form definition against which we upload the developed/programmed form. Select manage forms from the main OpenMRS dashboard

  • Then add form as shown:

  • Then provide form details/metadata as below and save

b. Form Upload to server

  • On main dashboard under muzima select muzima form


  • Then select upload on the far left icon labeled import


  • In form definition type in the first few letters and select from the list


  • Select relevant discriminator e.g json registration for registration form, json encounter for encounter form. Then click on the Click here to upload form and navigate to the form location on your machine.


  • Select HTML under  Select the FormType then click on validate


  • Lastly Click on Upload to Save the form on server


c. Updating a form

  • Go to the "Administration" tab on the menu bar.
  • Under administration, go to the "mUzima" menu and click on “Muzima Forms”


  • Look for the form you want to update


  • Click on the edit icon. A form allowing you to edit the form will be displayed
  • Click on the button “Click here to update form template”. A pop up allowing you to upload a new form will be displayed


  • Select the new form file and click “Update”. The form will be updated

2. Setup Configuration

  • This is the configuration that will be used by the mobile application during the initial setup. I.e which cohorts, forms, encounter locations, concepts and providers will be downloaded during the initial setup. Observations will be downloaded based on the concepts included in the list, number of patients downloaded will be determined from the cohort listed in the configuration.

  • Under muzima in main dashboard select setup configuration this will take you to the page shown

NOTE: All fields within this page are populated from the database. Type the first few letters then select from the list option.

3. Queue Data

  • This is a page where all uploaded data from mobile application (forms) are displayed while awaiting processing by the scheduler task which is set to run at specified intervals (Normally every minute).

4. Error Data

  • The page displays a list of all forms that could not be processed successfully due to some errors mainly associated with the form itself. Eg. the form having a concept that is not in the concept dictionary.
  • The module provides a mechanism of resolving this errors manually by an administrator or any user with permission to do this.

Error Resolution

  • Click on Edit Icon on far left on the list as shown.

  • This will open an error resolution page, where the error is listed in the first box eg Unable to find Concept for Question with ID: 1839 meaning the concept with ID 1839 is not in concept dictionary.


  • Click on the Edit icon as shown above to open an Editable section to solve the error. Change the values in relation to the error and click on validate. A validation will be done and if the payload is valid the Save button will be activated. Click on save and then queue to send the payload to queue data for it to be processed by the scheduler task.

5. Registration

  • It will display all the patient registration form data

6. Scheduler Task

  • This is the part that initiates the processing of the forms(payload) sent from the mobile application. Under main OpenMRS dashboard, Scheduler section click on Manage scheduler. Then this demo server we have scheduler already set i.e Process Muzima's Queue Data with the following:

    1. Name - this is the name to be displayed on the scheduler pages (Any name as per the Implementation)
    2. Schedulable class - org.openmrs.module.muzima.task.ProcessQueueDataTask (This is the java class/code that will do the processing. Should the same for all servers using mUzima core)

    3. Description - Discription about the scheduler (optional)

    4. On schedule tab on the same page you can set the interval and automatic/manual scheduler startup.

  • No labels