Spanish version Millisecond Software thanks JOSE FELIX MOZO DEL CASTILLO for sharing the Spanish translations! ___________________________________________________________________________________________________________________ Bells Test (Helper File with main code) ___________________________________________________________________________________________________________________ Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC Date: 10-24-2022 last updated: 03-05-2025 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC Script Copyright © 03-05-2025 Millisecond Software ___________________________________________________________________________________________________________________ BACKGROUND INFO ___________________________________________________________________________________________________________________ This script implements Millisecond Software's computerized version of the Bells test (Gauthier et al, 1989), a test for visual neglect and search strategy. Gauthier et al (1989) define visual neglect 'as a lack of response or attendance to visual stimuli presented to the left or to the right of the median line of the body and/or head' (p.50). Mancuso et al (2019) suggest a new standardization approach of the original paper&pencil Bells Test based on data collected with a large sample of Italian participants. They introduce three new measures (ExecutionTime in seconds, Accuracy Score, and Asymmetry Score) that depend on age and level of schooling to varying degrees. This script provides the functionality to present the 'apples page' in roughly the same absolute size as the original paper&pencil version of the Apples Test. Default settings default back to proportional sizing. Go to 'defaults' setting for more info. Data Files will contain the suggested measures by Mancuso et al (2019) and Gauthier et al (1989) as well as additional information about the 'response path' (search path) taken to find the Bells. Screenshots of the taken path/numbered targets can be taken (optional setting) for further analyses. Please, use caution in comparing results obtained with this computerized version of the Bells Test to results obtained with the original paper&pencil version. ****References***** Gauthier, L., Dehaut, F., & Joanette, Y. (1989). The Bells Test: A quantitative and qualitative test for visual neglect. International Journal of Clinical Neuropsychology, 11(2), 49–54. instructions and test sheet: https://strokengine.ca/en/assessments/bells-test/ Mancuso et al (2019). A New Standardization of the Bells Test: An Italian Multi-Center Normative Study. Front. Psychol. 9:2745. doi: 10.3389/fpsyg.2018.02745 ___________________________________________________________________________________________________________________ TASK DESCRIPTION ___________________________________________________________________________________________________________________ The Bells Test provides participants with a black and white page of seemingly randomly distributed little objects such as houses, saws, cars, trees, guns, sharks etc. Scattered around the page are 35 bells which are the search targets of the test. While the objects look to be randomly placed on the page, they are actually placed in a strategic way: the page consists of 7 columns (left side: c1, c2, c3; center: c4; right side: c5, c6, c7). Each of the columns contains 5 bells and about 40 distractors (35 bells + 280 distractors = 315 total objects). Participants get 5 minutes (editable parameter) to find as many bells as they can. One verbal reminder/hint is provided if participants try finish the test before all bells are found. ___________________________________________________________________________________________________________________ DURATION ___________________________________________________________________________________________________________________ the default set-up of the script takes appr. 8 minutes to complete ___________________________________________________________________________________________________________________ DATA OUTPUT DICTIONARY ___________________________________________________________________________________________________________________ The fields in the data files are: (1) Raw data file: 'bellstest_raw*.iqdat' (a separate file for each participant) build: The specific Inquisit version used (the 'build') that was run computer.platform: the platform the script was run on (win/mac/ios/android) date, time: date and time script was run subject: with the current subject id group: with the current group id session: with the current session id age: the age (in years) of the participant (if empty, no demographic information was collected) education: number of years in formal schooling (max: 16) (if empty, no demographic information was collected) //Screen Setup: stimuliPageWidthMM: the width of the stimuli page in mm stimuliPageHeightMM: the height of the stimuli page in mm blockCode, blockNum: the name and number of the current block (built-in Inquisit variable) trialCode, trialNum: the name and number of the currently recorded trial (built-in Inquisit variable) Note: trialNum is a built-in Inquisit variable; it counts all trials run; even those that do not store data to the data file. response: the response of participant (the name of the response area) latency: response latency (in ms); measured from: onset of trial responseCounter: counts the number of responses (excluding 'submit' response) target: 1 = the current response was a target (bell) 0 = the current response was not on a target response circle //Note: under each target (bell) lies a response circle with a //parameters.responseCircleSize_Pct, if response is registered outside //of this responsecircle, the script counts it as an 'other' response. //In some cases, these 'other' responses may simply be inaccurate screen //responding. Check screenshots of response path if in doubt. otherRespCounter: counts the number of times a response was registered that was not made on one of the 35 target response circles Note: some other responses might simply be a missed target response circle targetCounter: counts the number of times a response was registered on a new target (Max: 35) (repeatedly selecting the same target does not increase the count) targetCounterC1: counts the number of times a response was registered on a new target in column1 (Max: 5) targetCounterC2: counts the number of times a response was registered on a new target in column2 (Max: 5) targetCounterC3: counts the number of times a response was registered on a new target in column3 (Max: 5) targetCounterC4: counts the number of times a response was registered on a new target in column4 (Max: 5) targetCounterC5: counts the number of times a response was registered on a new target in column5 (Max: 5) targetCounterC6: counts the number of times a response was registered on a new target in column6 (Max: 5) targetCounterC7: counts the number of times a response was registered on a new target in column7 (Max: 5) //response Coordinates pathX: a variable that stores the horizontal coordinates of the response in canvas percentages in sequential order pathY: a variable that stores the vertical coordinates of the response in canvas percentages in sequential order targets: a variable that stores whether the responses were on a target (1) or elsewhere (0)in sequential order Note: these values can be used in script bellstest_path.iqjs to visualize the path taken (2) Summary data file: 'bellstest_summary*.iqdat' (a separate file for each participant) inquisit.version: Inquisit version run computer.platform: the platform the script was run on (win/mac/ios/android) startDate: date script was run startTime: time script was started subjectId: assigned subject id number groupId: assigned group id number sessionId: assigned session id number elapsedTime: time it took to run script (in ms); measured from onset to offset of script completed: 0 = script was not completed (prematurely aborted); 1 = script was completed (all conditions run) age: the age (in years) of the participant (if empty, no demographic information was collected) education: number of years in formal schooling (max: 16) (if empty, no demographic information was collected) //Screen Setup: stimuliPageWidthMM: the width of the stimuli page in mm stimuliPageHeightMM: the height of the stimuli page in mm /////////general DVs: //suggested by Mancuso M et al (2019) executionTimeSec: bell search time in seconds expectedExecutionTimeSec: the execution time (in sec) that can be expected given the participant's age calculated using the formula suggested by Mancuso et al (2019, p.5) NA: no demographic information available (values could not be generated) maximumExecutionTimeSec: the cut-off execution time (in sec) if participant takes longer than this, the performance can be coded as 'pathological' according to Mancuso et al (2019, p.5) NA: no demographic information available (values could not be generated) executionTimeFlag: 1 = the ExecutionTimeSec surpassed the cutoff (maximumExecutationTimeSec) 0 = the ExecutionTimeSec did NOT surpass the cutoff NA: no demographic information available (values could not be generated) Note: According to Mancuso et al (2019, p.5) if participant takes longer than the calculated maximumExecutationTime, the performance can be coded as 'pathological' Note that Gauthier et al (1989, p.50) et al did not consider execution/completion time to be 'a valuable indicator of success or neglect. accuracyScore: the omission number - number of bells not selected ('Measure of Selective Attention') Range: 0-35 expectedAccuracyScore: the expected number of omissions based on participant's age and number of years of schooling NA: no demographic information available (values could not be generated) maximumAccuracyScore: the cut-off number of omissions NA: no demographic information available (values could not be generated) accuracyScoreFlag: 1 = the AccuracyScore surpassed the cut-off 0 = the AccuracyScore did NOT surpass the cut-off NA: no demographic information available (values could not be generated) Note: According to Mancuso et al (2019, p.4) if participant makes more mistakes than the the calculated maximumAccuracyScore, the performance can be coded as 'pathological'. asymmetryScore: calculated as the differences in number of bells found on the right (c5,c6,c7) and the number of bells found on the left (c1,c2,c3) range: -15 to +15 Positive Value: more values were found on the right (left-sided neglect) Negative Value: more values were found on the left (right-sided neglect) asymmetryScoreFlag: 1 = participant showed significant asymmetry in performance (> 2) 0 = participant did NOT show significant asymmetry in performance (<= 2) Note: Mancuso et al (2019): 'Individual performances in which the difference between left and right total omissions was equal to or above 3 should be considered pathological' (p.4). No dependency on age nor education was noted. //////suggested by Bells-Test-Instructions-Final-Version-Approuve-Yves.pdf (downloaded from: https://strokengine.ca/en/assessments/bells-test/) leftOmissions: number of bells not selected on the left side (c1,c2,c3); Range: 0-15 rightOmissions: number of bells not selected on the left side (c5,c6,c7); Range: 0-15 Bells-Test-Instructions-Final-Version-Approuve-Yves.pdf (https://strokengine.ca/en/assessments/bells-test/) 'If the client has more than three omissions, then he/she is suspected of presenting with an attentional deficit. If the client omits six bells or more on the left or right half of the sheet, then he/she is suspected of presenting with a visual neglect.' realizationTimeSec: the time (in seconds) that has passed before participant pressed submit despite yet to be selected targets (and received a hint) ////////////additional data otherRespCounter: counts the number of times participants selected a non-target could be a Commission Error or simply a 'missed' target (this happens when participants might miss the invisible response circle around target images). targetCounter: counts the number of times a response was registered on a new target (Max: 35) (repeatedly selecting the same target does not increase the count) targetCounterC1: counts the number of times a response was registered on a new target in column1 (Max: 5) targetCounterC2: counts the number of times a response was registered on a new target in column2 (Max: 5) targetCounterC3: counts the number of times a response was registered on a new target in column3 (Max: 5) targetCounterC4: counts the number of times a response was registered on a new target in column4 (Max: 5) targetCounterC5: counts the number of times a response was registered on a new target in column5 (Max: 5) targetCounterC6: counts the number of times a response was registered on a new target in column6 (Max: 5) targetCounterC7: counts the number of times a response was registered on a new target in column7 (Max: 5) //response Coordinates pathX: a variable that stores the horizontal coordinates of the response in canvas percentages in sequential order pathY: a variable that stores the vertical coordinates of the response in canvas percentages in sequential order targets: a variable that stores whether the responses were on a target (1) or elsewhere (0) in sequential order Note: these values can be used in script bellstest_path.iqjs to visualize the path taken ////////////////////////// Screenshot Data: ////////////////////////// If a screenshot was taken, the script marks all responses with a number (in order from first to last response) If a target area (bell) was selected, the number turns green. Otherwise it's red. If a target (bell) was selected twice, the second mark is also green, but the the redundant selection is not counted as a new target selection. ___________________________________________________________________________________________________________________ EXPERIMENTAL SET-UP ___________________________________________________________________________________________________________________ (1) Demographic Information (Optional, see section Editable Parameters) - script collects age and education information about the participant (Note: Since Mancuso et al (2019) reported that age and education can have an impact on participants' performance, this information can be collected when running the script) (2) Intro: The script provides the 'Bells Test Demonstration' page (https://strokengine.ca/en/assessments/bells-test/) and asks participant to find each of the items. For each item search, the name of the item is printed in blue on the screen and participants have to select the correct item. If an incorrect item is selected, a red error message pops up that asks them 'to try again'. If the correct item is selected, a green checkmark is briefly presented on screen. The order of the items is fixed (the bell is presented as the 8th item). (3) Test: Max allotted time = 5minutes (editable parameter) - participants are presented the 'stimuli page' and a submit button (the 'stimuli page' is presented with 95% of the width of the active canvas to allow for some room to provide the submit button) - participants use the mouse/finger to select the bells scattered around the page - When they are done, they click the submit button IF not all bells are found at this point: one verbal reminder (in the form of a soundfile) is played to ask them "Are you sure that all the bells are now circled?" and allows them to continue looking for the missing bells. - The test is over if the allotted time is up, or if participants submit their responses a second time (if a reminder was given) (4) Path Feedback with screencapture (optional) Once done with the test, the script can show participants the 'stimuli page' with all bells circled in blue and with all responses made numbered in sequence (starting with '1'). Numbers in Green show correctly selected bells, numbers in red show responses that were made outside of the bells response circles. The taken path is marked by a turquoise dotted line. A screenshot of this feedback page (with subject ID) can be taken for further analyses (optional) ___________________________________________________________________________________________________________________ STIMULI ___________________________________________________________________________________________________________________ Stimuli Page: https://strokengine.ca/en/assessments/bells-test/ The original paper Bells Test (sized on DinA4) was printed out on a US legal-sized paper. To fit the stimuli on a W:H=4:3 sized page, white areas on the top/bottom and left/right around the stimuli were removed while still retaining all the original stimuli as well as the center location of the orientation dot on the bottom. The script can be run with an absolutely sized stimuli page that approaches the actual size of the paper version of the task (provided the screen is large enough).See section 'defaults' for more information. ___________________________________________________________________________________________________________________ INSTRUCTIONS ___________________________________________________________________________________________________________________ provided by Millisecond Software - can be edited in script 'bellstest.iqjs' the instructions are based on file 'Bells-Test-Instructions-Final-Version-Approuve-Yves.pdf' downloaded from: https://strokengine.ca/en/assessments/bells-test/ ___________________________________________________________________________________________________________________ EDITABLE CODE ___________________________________________________________________________________________________________________ check below for (relatively) easily editable parameters, stimuli, instructions etc. Keep in mind that you can use this script as a template and therefore always "mess" with the entire code to further customize your experiment. The parameters you can change are: //color parameter / canvasColor = lightGray //Display color of the actively used portion of the screen (the 'canvas') //Note: if set to a color other than the screenColor, you can distinguish the active canvas //from the white 'stimuli page' presented for the actual Bell Test / screenColor = lightGray //Color of the screen not used by the canvas ('inactive screen') / defaultTextColor = black //Default color of text items //CANVAS SIZING PARAMETERS //sizing Parameters in RELATIVE measurements relative to CANVAS HEIGHT //NOTE: to run the script with ABSOLUTE screen measurements, go to 'defaults' and set //canvasSize to absolute measurements / responseCircleSizePct = 5% //Note: under each target (bell) lies a response circle with a //parameters.responseCircleSize_Pct (5%) - proportional to canvas height //This response circle CANNOT reasonably be much bigger as otherwise //some response circle overlap will occur that could make //distinguishing which bell was selected impossible //////Experimental Design Choices: //timing parameters / testDurationInmin = 5 //the max. duration of the test (in minutes) //feedback / showPathFeedback = true //*true*: at the end of the task, the script presents the stimulipage //with all target locations circled and draws the response path. //Participants' reponse locations are marked with numbers that refer to the //order in which those locations were selected. Selected target locations //are marked by green numbers, other locations by red numbers. //*false*: no response feedback is provided / takePathScreenshot = true //NOTE: this parameter is only relevant if parameters.showPathFeedback = true //*true*: script takes a screenshot of the feedback/response path page //as additional data //*false*: no screenshot is taken of the response path //(Note: this project folder provides a stand-alone 'post-hoc' location //drawing script. This additional script draws the response path //but requires some copy-paste manual labor) / runDemographicInformation = true //*true*: script collects age and education information //*false*: no demographic information is collected //NOTE: Mancuso et al (2016) report that //-Accuracy Scores ('Number of Omissions') are //affected by age and education (number of years of schooling) //-Execution Time is affected by age //-Asymmetry Score is neither affected by age nor education