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
Extra
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'
Response
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
Extra:
Rdt_session_id = hidden value session_id
Response:
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.