CommCare Integration

The following section provides detailed instructions and descriptions for the inclusion of the Rapid Diagnostic Toolkit application into the user workflow of a CommCare based application. For users wishing to include the Rapid Diagnostic Toolkit into an application built in an alternate digital health platform please see the Toolkit callout configuration docs.

Android Callout 

To link from your Commcare application to the Rapid Diagnostics Toolkit, you need to have access to the advanced feature, Android App Callout. This feature is available to all CommCare app builders with an Advanced or higher plan or with a self-hosted instance. For those users, the Rapid Diagnostics Toolkit is free to use through an open source software license.

In your application you will now need to add two Android App Callout questions, one to initiate the test and timer and the other to capture the results of the test once it is ready to be read.

To ensure that CommCare is able to associate the Rapid Diagnostics Toolkit returned data with the relative person that the test is being completed for, certain properties need to be shared between CommCare and the Rapid Diagnostics Toolkit and vice versa. When initiating the RDT we need to share a unique id with the Rapid Diagnostics Toolkit and save it to the client case.

Initiate RDT Callout 

Step 1: Add 3 hidden value questions which provide the data properties to be shared with the Rapid Diagnostics Toolkit

  • session_id with calculate condition: uuid() 

  • flavor_one with calculate condition loading the client/patient name

  • flavor_two with calculate condition loading the client/patient date of birth 

To help users differentiate between tests that are running simultaneously and to report accurate data for multiple simultaneous tests, the session can be provided with two "Flavor Text" (flavor_one and flavour_two) lines which will be displayed in the UI of Rapid Diagnostics. 

Step 2: Add 4 hidden value questions to store the returned information from the Rapid Diagnostics Toolkit. If the RDT result is being captured in a different form than where it was initiated (example: Workflow 4) then you will need to save the following hidden values as case properties. 

  • time_resolved

  • time_expired

  • returned_session_id

  • test_provisioned with calculate condition: if(returned_session_id=””,’no,’yes’)

Step 3: Add the android callout question

Step 4: Set up the android callout properties 


  • Set External App field to Custom and the text box to org.Rapid Diagnostics Toolkit.action.Provision

  • rdt_session_id = hidden value session_id

  • rdt_config_provision_mode  =


    • 'CRITERIA_SET_AND' If, for example, users should be allowed to pick any test which supports a Malaria Diagnosis, they can request the following, which will filter for all available criteria.

    • ‘CRITERIA_SET_OR’ if Alternatively, a session can be requisitioned to choose any test which meets one of the provided options

  • rdt_config_flavor_one = hidden value flavor_one

  • rdt_config_flavor_two = hidden value flavor_two

  • rdt_config_translator_session = 'xform_response'

  • rdt_config_translator_result = 'xform_response'

  • rdt_config_classifier_mode = 


    • 'PRE_POPULATE' - This setting will pre populate the select list to the user with the scanner interpreted result from the RDT image. The user can then confirm the results or update it what they determine the result to be

    • ‘BLIND’ - This setting will save the the scanner interpreted result  but hide them from the user when they capture the user interpreted result

  • FLAG_ANDROID_CALLING_PACKAGE = 'org.commcare.dalvik'

  • rdt_config_provision_mode_data =


    • Space separated list of test IDs used by the organization. Currently supported RDT IDs and information below:

    • ‘sd_bioline_mal_pf_pv’ - SD Bioline Malaria Ag Pf/Pv

    • ‘sd_standard_q_mal_pf_ag’ - SD Standard™ Q Malaria P.f Ag

    • ‘sd_bioline_mal_pf’ - SD Bioline Malaria Ag Pf

    • ‘carestart_mal_pf_pv’ - CareStart™ Malaria Pf/Pv (HRP2/pLDH) Ag Combo RDT

    • ‘firstresponse_mal_pf_pv’ - First Response® Malaria Ag P.f./P.v. (HRP2/pLDH) Card Test

    • 'firstresponse_mal_pf' - First Response® Malaria Ag P.f (HRP2) Card Test

  • rdt_input_translate = 'provision_flat'


  • rdt_session_time_resolved = hidden value time_resolved

  • rdt_session_time_expired = hidden value _time_expired

  • rdt_session_id = hidden value returned_session_id

Initiate Result Callout 

Step 1: Add a Image Capture question 

Step 2: Add 7 hidden properties to store the returned properties from the Rapid Diagnostics Toolkit 

  • Classifier_pf_outcome - this will save the rdt pf outcome determined by the classifier

  • Classifier_pv_outcome - this will save the rdt pv outcome determined by the classifier

  • Time_read - this will save the time that the user entered the test result

  • Seconds_elapsed - this will be user to calculate the time (in seconds) between the test being initiated and the user entering the results

  • Pf_outcome -  this will save the rdt pf outcome determined by the user

  • Pv_outcome - this will save the rdt pv outcome determined by the user

Step 3: Add the android callout question

Step 4: Set up the android callout properties 

  • Set External App field to Custom and the text box to org.Rapid Diagnostics Toolkit.action.Capture


  • Rdt_session_id = hidden value session_id


  • Result_mal_pf = hidden value pf_outcome

  • Result_mal_pv = hidden value pv_outcome

  • Rdt_session_result_time_read = hidden value time_read

  • Result_classifier_mal_pf = hidden value classifier_pf_outcome

  • Result_classifier_mal_pv = hidden value classifier_pv_outcome

  • Rdt_session_result_raw_image_path = image capture question

Customizing the Usage of the Toolkit

The Rapid Diagnostics Toolkit can be configured in a number of different ways, details about some of the most common are listed here.