Issues: Closes #367.
Scope: BinarySelectOneWidget and its table group builder
User-visible changes
In each multiple-select question:
Previously each option would be recorded with a "yes" or a "no" value; the default value is "no" and tapping an option toggles between "yes" and "no". Thus, submitting the form without doing anything would record a "no" for all the options. Now, the default value is "unanswered" and tapping an option toggles between "yes" and "unanswered", so that submitting the form without doing anything doesn't record anything for such questions.
There is a new "None of the above" button at the bottom. Tapping this button sets the state of all the options to "no". This button is the only way to set options to "no" (rather than "unanswered"). When "None of the above" is selected, tapping any other option clears the "None of the above" button and reverts all the other options to "unanswered".
The appearance of options changes slightly:
"Yes" state: Previously, black text on green background. Unchanged.
"No" state: Previously, black text on white background. Now, grey text on white background.
"Unanswered" state: Previously, black text on white background. Unchanged.
Internal changes
The unwieldy name "BinarySelectOneTableWidgetGroupBuilder" (which ought to win some sort of prize) has been renamed to the more concise "BinarySelectTableBuilder".
Verification performed
I tested this manually on a tablet and confirmed that the options light up and clear as expected, in response to taps on the option buttons and the "None of the above" button. I submitted the form and confirmed that nothing is recorded if nothing is tapped, and that "no" is recorded for all options if "None of the above" is selected.
Rationale and alternatives considered
This design was intended to meet the following goals:
We don't want to record "no" for a symptom when the patient hasn't been examined at all for that symptom.
We do want a way for medics to record "no" for all symptoms when they've examined the patient.
Issues: Closes #367. Scope: BinarySelectOneWidget and its table group builder
User-visible changes
In each multiple-select question:
Previously each option would be recorded with a "yes" or a "no" value; the default value is "no" and tapping an option toggles between "yes" and "no". Thus, submitting the form without doing anything would record a "no" for all the options. Now, the default value is "unanswered" and tapping an option toggles between "yes" and "unanswered", so that submitting the form without doing anything doesn't record anything for such questions.
There is a new "None of the above" button at the bottom. Tapping this button sets the state of all the options to "no". This button is the only way to set options to "no" (rather than "unanswered"). When "None of the above" is selected, tapping any other option clears the "None of the above" button and reverts all the other options to "unanswered".
The appearance of options changes slightly:
Internal changes
The unwieldy name "BinarySelectOneTableWidgetGroupBuilder" (which ought to win some sort of prize) has been renamed to the more concise "BinarySelectTableBuilder".
Verification performed
I tested this manually on a tablet and confirmed that the options light up and clear as expected, in response to taps on the option buttons and the "None of the above" button. I submitted the form and confirmed that nothing is recorded if nothing is tapped, and that "no" is recorded for all options if "None of the above" is selected.
Rationale and alternatives considered
This design was intended to meet the following goals:
Screenshots
Here is a short video of the interaction:
none-of-the-above-mp4.zip
Here's what it looks like with a couple of options selected:
And here it is with the "None of the above" button selected: