Jump patterns can be defined within the Form Builder on Drop-down, Radio Buttons and/or Check box inputs and allow you to control the logic and flow of questions presented to a user.
Jumps allow you to define that, based on the choice made by a user, they will 'jump' forward in a form to a question further along in the questionnaire or carry on to the next question. For example, if for question one in a form, the user selects choice one in the dropdown, jump them forward to question five, else continue on to question two.
Single or multiple jumps can be defined for a particular form input (drop-down, radio, multiple inputs only) and can jump forward to any kind of form field (text or media) or to the end of a form.
Specifying a single jump clause
Within the form builder, broadly, you can define four types of jumps.
1) Jump when value IS
For example, within question one, jump to question five if user selects value two.
2) Jump when value IS NOT
For example, within question one, jump to question five if user does not select value two.
3) Jump when field IS BLANK
For example, If a user does not select a value for question one, jump to question five
4) Jump when field HAS ANY VALUE (ie always jump)
For example, If a user selects any answer, jump to question five.
Specifying multiple jump clauses
You can of course add more than one jump clause to any of the relevant fields (drop-down, radio, check-boxes). However, please be careful to make sure you do not add conflicting jump clauses to a field.
For example, you may have a drop down with five items, and you would like to specify that if a user selects item one, they jump to question five, but if they select item three they jump to question ten. All other choices would proceed normally within the form.
A common example - specifying 'other' and capturing a users input.
Quite often within a drop-down, radio or check-box question, you may not be able to define all possible answers to your question. This is commonly handled within paper forms by offering an 'other' option and then providing a text box for whoever is filling out a questrionnaire, to fill in. This same functionality can be replicated within EpiCollect using Jumps.
We will demonstrate this with a simple four question project.
The project contains four questions relating to favourite colours.
1) What is your name? with the ID 'NameID'- This will be be added as the Key field on startup of the formbuilder.
2) What is your favourite colour? - A Drop-down list with three options -red, yellow and 'other'
3) Please specify other? - a text field to capture the users input should their favourite colour not be specified in question 2.
4) What is your age? - a text field asking for the users age. - This question will be 'jumped to' if a user specifies one of the colour choices in Question 2.
We create a project called 'colours' and define a form named 'colourSurvey'.
1) We specify our key field as the Question 'What is your name?' and give it the ID 'NameID'
2) We then drag a Drop-down list (with the Label - What is your favourite colour?' and ID 'favouriteColour' and specify three options - 'Red', 'Yellow' and 'other' as in the following screenshot:
3) Now we define the 'Please enter other?' question as a simple text field.
4) Our last question to define is 'What is your age?' as a numeric field.
Defining the jump
There are two ways we could do the jump. We could define that if the user selects 'red' then jump to the 'what is your name?' question. However, we would then need to define another jump specifying that if a user selects 'Yellow' to jump to the 'what is your name? question.
Much simpler, is to define that if a user DOES NOT select 'other' then jump to the 'what is your name?' question.
This is done by expandign the 'Jumps' part of 'Field Properties', clicking 'Add Jump' and defining as in the following screenshot:
When this project is loaded and entered on a mobile device the flow shown to a user is as follows:
Jumps can be used in many circumstances to give great flexibility when defining a single form. In many cases, multiple forms that may normally be given to a user can be combined into a single form with logic defined by jumps.
NOTE: Currently within EpiCollect+ it is only possible to jump FORWARD within a form, howerver on our wishlist is the ability to jump backwards and we are currently working on multiple conditional jumps.
There will be many cases within a project where jumps are not adequate and there is a neccessity to have multiple forms linked together. We will now move on to describe how to link different forms together, either hierarchically and / or by branching.