From 12efbee52d722be2ae1360c67db5e5b00d47b3f5 Mon Sep 17 00:00:00 2001 From: regisoc Date: Tue, 14 Mar 2023 15:03:02 -0400 Subject: [PATCH 01/18] eeg acquisition form --- .../2023-03-14_EEG_Acquisition_instrument.sql | 84 ++ ...B_BVL_Instrument_EEG_Acquisition.class.inc | 993 ++++++++++++++++++ 2 files changed, 1077 insertions(+) create mode 100644 SQL/New_patches/2023-03-14_EEG_Acquisition_instrument.sql create mode 100644 raisinbread/instruments/NDB_BVL_Instrument_EEG_Acquisition.class.inc diff --git a/SQL/New_patches/2023-03-14_EEG_Acquisition_instrument.sql b/SQL/New_patches/2023-03-14_EEG_Acquisition_instrument.sql new file mode 100644 index 00000000000..743b8bbe360 --- /dev/null +++ b/SQL/New_patches/2023-03-14_EEG_Acquisition_instrument.sql @@ -0,0 +1,84 @@ +CREATE TABLE `EEG_Acquisition` ( + `CommentID` varchar(255) NOT NULL default '', + `UserID` varchar(255) default NULL, + `Examiner` varchar(255) default NULL, + `Testdate` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, +`Date_taken` date default NULL, +`Candidate_Age` varchar(255) default NULL, +`Window_Difference` varchar(255) default NULL, +`research_staff_one` varchar(255) default NULL, +`research_staff_two` varchar(255) default NULL, +`research_staff_three` varchar(255) default NULL, +`session_testing_room` varchar(255) default NULL, +`subject_behavioral_assistant_present` enum('yes','no') default NULL, +`subject_behavioral_assistant` varchar(255) default NULL, +`subject_medication` enum('yes','no') default NULL, +`subject_medication_dosage` text default NULL, +`head_measurement_unit` enum('cm','in') default NULL, +`head_measurement` varchar(255) default NULL, +`head_measurement_status` enum('not_answered') default NULL, +`ekg_collected` enum('yes','no') default NULL, +`participant_away_60cm_from_monitor` enum('yes','no') default NULL, +`participant_away_60cm_from_monitor_reason` text default NULL, +`net_id` varchar(255) default NULL, +`impedance_measured_before_netting` enum('yes','no') default NULL, +`impedance_measure` varchar(255) default NULL, +`bad_channels_measured_after_netting` enum('yes','no') default NULL, +`bad_channels` text default NULL, +`net_placement` enum('na','excellent','average','poor') default NULL, +`net_placement_comment` text default NULL, +`net_placement_photos_taken` enum('yes','no') default NULL, +`acquisition_software` enum('eemagine','neuro_scan','insep','biosemi','netstation','brain_vision_recorder','emotiv','actiview605_lores','eeprobe','tmsi','other') default NULL, +`acquisition_software_other` varchar(255) default NULL, +`recording_reference` enum('left_mastoid','right_mastoid','left_earlobe','right_earlobe','physically_linked_mastoids','physically_linked_earlobes','cz','tip_nose','balanced_non_cephalic_reference','other') default NULL, +`recording_reference_other` varchar(255) default NULL, +`number_active_channels` varchar(255) default NULL, +`number_active_channels_status` enum('not_answered') default NULL, +`eog_channels` enum('no_eog_channels','two_heog_channels_only','two_veog_channels_only','two_heog_two_veog_channels','other') default NULL, +`eog_channels_other` varchar(255) default NULL, +`artefacted_channels` text default NULL, +`bad_electrodes_present` enum('yes','no') default NULL, +`bad_electrodes` text default NULL, +`hardware_filters_applied` text default NULL, +`software_filters_applied` text default NULL, +`eeg_session_start_time` time default NULL, +`eeg_session_start_time_status` enum('dnk','refusal','not_answered') default NULL, +`eeg_session_end_time` time default NULL, +`eeg_session_end_time_status` enum('dnk','refusal','not_answered') default NULL, +`resting_state_eeg_acquired` enum('not_started','complete','incomplete') default NULL, +`resting_state_eeg_incomplete_reason` text default NULL, +`resting_state_attempts` enum('1','2','3','4','more_than_5') default NULL, +`resting_state_eeg_mood_rating` enum('1','2','3','4','5') default NULL, +`resting_state_eeg_mood_rating_comments` text default NULL, +`resting_state_comments` text default NULL, +`paradigm_vep_used` enum('yes','no') default NULL, +`vep_eeg_acquired` enum('not_started','complete','incomplete') default NULL, +`vep_eeg_incomplete_reason` text default NULL, +`vep_attempts` enum('1','2','3','4','more_than_5') default NULL, +`vep_eeg_mood_rating` enum('1','2','3','4','5') default NULL, +`vep_eeg_mood_rating_comments` text default NULL, +`vep_comments` text default NULL, +`paradigm_aep_used` enum('yes','no') default NULL, +`aep_eeg_acquired` enum('not_started','complete','incomplete') default NULL, +`aep_eeg_incomplete_reason` text default NULL, +`aep_attempts` enum('1','2','3','4','more_than_5') default NULL, +`aep_eeg_mood_rating` enum('1','2','3','4','5') default NULL, +`aep_eeg_mood_rating_comments` text default NULL, +`aep_comments` text default NULL, +`paradigm_mmn_used` enum('yes','no') default NULL, +`mmn_eeg_acquired` enum('not_started','complete','incomplete') default NULL, +`mmn_eeg_incomplete_reason` text default NULL, +`mmn_attempts` enum('1','2','3','4','more_than_5') default NULL, +`mmn_eeg_mood_rating` enum('1','2','3','4','5') default NULL, +`mmn_eeg_mood_rating_comments` text default NULL, +`mmn_comments` text default NULL, +`paradigm_faces_used` enum('yes','no') default NULL, +`faces_eeg_acquired` enum('not_started','complete','incomplete') default NULL, +`faces_eeg_incomplete_reason` text default NULL, +`faces_attempts` enum('1','2','3','4','more_than_5') default NULL, +`faces_eeg_mood_rating` enum('1','2','3','4','5') default NULL, +`faces_eeg_mood_rating_comments` text default NULL, +`faces_comments` text default NULL, +`general_comments` text default NULL, +PRIMARY KEY (`CommentID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/raisinbread/instruments/NDB_BVL_Instrument_EEG_Acquisition.class.inc b/raisinbread/instruments/NDB_BVL_Instrument_EEG_Acquisition.class.inc new file mode 100644 index 00000000000..8af154ae6dd --- /dev/null +++ b/raisinbread/instruments/NDB_BVL_Instrument_EEG_Acquisition.class.inc @@ -0,0 +1,993 @@ + + * @license http://www.gnu.org/licenses/gpl-3.0.txt GPLv3 + * @link https://www.github.com/aces/loris/ + */ + +/** + * Creates the form elements for the Boston_Diagnostic_Aphasia_Exam instrument + * + * @category Instrument + * @package EEG_Acquisition + * @author Loris Team + * @license http://www.gnu.org/licenses/gpl-3.0.txt GPLv3 + * @link https://www.github.com/aces/loris/ + */ +class NDB_BVL_Instrument_EEG_Acquisition extends NDB_BVL_Instrument +{ + use \LorisFormDictionaryImpl; + + + function getFullName(): ?string + { + return $this->testName; + } + + function getSubtestList() : array + { + return []; + } + + /** + * Sets up basic data. + * + * @param string $commentID the CommentID identifying the data to load + * @param string $page if a multipage form, the page to show + * + * @return void + * @access public + */ + function setup(?string $commentID = null, ?string $page = null): void + { + $formName = 'EEG_Acquisition'; + $this->formType = "XIN"; + $this->form = new LorisForm($formName); + $this->page = $page; // page label + + // set the object properties + // Corresponds to the Test_name column in test_names table + $this->testName = $formName; + // name of database table corresponding to instrument + $this->table = $formName; + // data keyed by commentID + $this->commentID = $commentID; + + //The array of selects with multiple answers allowed + $this->selectMultipleElements = array(); + + //The array of dates/timestamps to convert to database dates/timestamps + //Any LorisForm date elements must be listed here + // $this->dateTimeFields = array("Date_taken"); + $config = \NDB_Config::singleton(); + $this->dateOptions = array( + 'language' => 'en', + 'format' => 'YMd', + 'minYear' => $config->getSetting('startYear'), + 'maxYear' => $config->getSetting('endYear'), + 'addEmptyOption' => true, + 'emptyOptionValue' => null, + ); + + // required fields for data entry completion status + $this->_requiredElements = array( + 'Date_taken', + ); + + // mulitple select elements + $this->selectMultipleElements = []; + + // setup the form + $this->_setupForm(); + + } + + /** + * Builds the object into a paginated form + * + * @return void + * @access private + */ + function _setupForm() + { + if (preg_match("/EEG_Acquisition(_page[0-9]+)/", $this->page, $matches)) { + call_user_func(array($this, $matches[1])); + } else { + $this->_main(); + } + // Defines the call back function to use in validation + $this->form->addFormRule(array(&$this, 'XINValidate')); + } + + /** + * Generates the main page of the form. + * + * @return void + * @access private + */ + function _main() + { + + $yesNoOnlyOptions = [ + "yes" => "Yes", + "no" => "No" + ]; + + $textAreaOptions = [ + 'cols'=>25, + 'rows'=>4 + ]; + + $attemptsOptions = [ + null => "", + "1" => "1", + "2" => "2", + "3" => "3", + "4" => "4", + "more_than_5" => "More than 5" + ]; + + $moodRatingOptions = [ + null=> "", + "1" => "1 - Screaming, fussed out", + "2" => "2", + "3" => "3", + "4" => "4", + "5" => "5 - Very calm the whole time" + ]; + + // display test name + $this->addHeader("EEG Acquisition"); + + // automatically adds examiner & date of administration + $this->_addMetadataFields(); + + // ============================= + // ==== A. General informations + $this->form->addStatic( + null, + "

General informations

" + ); + + // Research staff + // at least one required + $this->addBasicText( + 'research_staff_one', + 'Research staff 1 initials' + ); + + $this->addBasicText( + 'research_staff_two', + 'Research staff 2 initials' + ); + $this->XINRegisterRule( + 'research_staff_two', + ["research_staff_two{@}=={@}NEVER_REQUIRED"], + "Not Required" + ); + + $this->addBasicText( + 'research_staff_three', + 'Research staff 3 initials' + ); + $this->XINRegisterRule( + 'research_staff_three', + ["research_staff_three{@}=={@}NEVER_REQUIRED"], + "Not Required" + ); + + // Testing room + $this->addBasicText( + "session_testing_room", + "Testing room information" + ); + $this->XINRegisterRule( + 'session_testing_room', + ["session_testing_room{@}=={@}NEVER_REQUIRED"], + "Not Required" + ); + + // behavioural assistance + $this->addSelect( + "subject_behavioral_assistant_present", + "Is there a behavioral assistant?", + $yesNoOnlyOptions + ); + + $this->addBasicText( + "subject_behavioral_assistant", + $this->indent . "Subject Behavioral assistant initials" + ); + $this->XINRegisterRule( + 'subject_behavioral_assistant', + ['subject_behavioral_assistant_present{@}=={@}yes'], + 'Required if there is a behavioural assistant' + ); + + // medication + $this->addSelect( + "subject_medication", + "Is subject under medication?", + $yesNoOnlyOptions + ); + $this->addBasicTextArea( + "subject_medication_dosage", + $this->indent . "Describe the medication and dosage", + $textAreaOptions + ); + $this->XINRegisterRule( + 'subject_medication_dosage', + ['subject_medication{@}=={@}yes'], + 'Required if there is an ongoing medication' + ); + + // head measurement + $this->addSelect( + "head_measurement_unit", + "What is the unit used for head measurement?", + [ + "cm" => "Centimeters (cm)", + "in" => "Inches (in)" + ] + ); + + $this->addNumericElement( + "head_measurement", + "What is the head measurement value?" + ); + + // EKG collected? + $this->addSelect( + "ekg_collected", + "EKG Collected?", + $yesNoOnlyOptions + ); + + // distance from monitor + $this->addSelect( + "participant_away_60cm_from_monitor", + "Participant is 60cm away from monitor?", + $yesNoOnlyOptions + ); + $this->addBasicTextArea( + "participant_away_60cm_from_monitor_reason", + $this->indent . "If No, please explain the reason", + $textAreaOptions + ); + $this->XINRegisterRule( + 'participant_away_60cm_from_monitor_reason', + ['participant_away_60cm_from_monitor{@}=={@}no'], + 'Required if participant cannot be 60cm away from montior' + ); + + + // ============================= + // ==== B. Net informations + $this->form->addStatic( + null, + "

Net informations

" + ); + + // Net id + $this->addBasicText( + "net_id", + "What is the net identifier?", + ); + + // impedance + $this->addSelect( + "impedance_measured_before_netting", + "Impedances measure before netting?", + $yesNoOnlyOptions + ); + $this->addBasicText( + "impedance_measure", + $this->indent . "Register the impedance measured" + ); + $this->XINRegisterRule( + 'impedance_measure', + ['impedance_measured_before_netting{@}=={@}yes'], + 'Required when impedance is measured' + ); + + // bad channels + $this->addSelect( + "bad_channels_measured_after_netting", + "Bad channels measured after netting?", + $yesNoOnlyOptions + ); + $this->addBasicTextArea( + "bad_channels", + $this->indent . "Register all bad channels", + $textAreaOptions + ); + $this->XINRegisterRule( + 'bad_channels', + ['bad_channels_measured_after_netting{@}=={@}yes'], + 'Required when bad channels are present' + ); + + // net placement quality + $this->form->addElement( + 'static', + null, + "
For net placement question:
+ Excellent - meets all criteria for proper net placement.
+ Average - any 1-2cm shift from proper placement (1 pinky finger width distance).
+ Poor - any >2 cm shift from proper placement (>1 pinky finger width distance). +
" + ); + + $this->addSelect( + "net_placement", + "Net placement", + [ + "na" => "n/a", + "excellent" => "Excellent", + "average" => "Average" , + "poor" => "Poor" + ] + ); + + $this->addBasicTextArea( + "net_placement_comment", + $this->indent . "Any comment on net placement", + $textAreaOptions + ); + $this->XINRegisterRule( + 'net_placement_comment', + ['net_placement{@}=={@}na'], + 'Required when net placement is not available' + ); + + // photos of the net placement + $this->addSelect( + "net_placement_photos_taken", + "Placement photos taken?", + $yesNoOnlyOptions + ); + + + // Electrodes + + // acquisition software + $this->addSelect( + "acquisition_software", + "Acquisition software used", + [ + "eemagine" => "Eemagine", + "neuro_scan" => "(Neuro)scan", + "insep" => "InsEP", + "biosemi" => "BioSemi", + "netstation" => "NetStation", + "brain_vision_recorder" => "Brain Vision Recorder", + "emotiv" => "Emotiv", + "actiview605_lores" => "ActiView605-Lores", + "eeprobe" => "EEProbe", + "tmsi" => "TMSi", + "other" => "Other" + ] + ); + $this->addBasicText( + "acquisition_software_other", + $this->indent . "If other, please specify" + ); + $this->XINRegisterRule( + 'acquisition_software_other', + ['acquisition_software{@}=={@}other'], + 'Required when acquisition software is other' + ); + + + // recording reference + $this->addSelect( + "recording_reference", + "Recording reference used", + [ + "left_mastoid" => "left mastoid", + "right_mastoid" => "right mastoid", + "left_earlobe" => "left earlobe", + "right_earlobe" => "right earlobe", + "physically_linked_mastoids" => "physically linked mastoids", + "physically_linked_earlobes" => "physically linked earlobes", + "cz" => "Cz", + "tip_nose" => "tip of the nose", + "balanced_non_cephalic_reference" => "balanced non-cephalic reference", + "other" => "Other" + ] + ); + $this->addBasicText( + "recording_reference_other", + $this->indent . "If other, please specify" + ); + $this->XINRegisterRule( + 'recording_reference_other', + ['recording_reference{@}=={@}other'], + 'Required when recording reference is other' + ); + + // number of active channels + $this->addNumericElement( + "number_active_channels", + "Number of active channels" + ); + + // EOG channles + $this->addSelect( + "eog_channels", + "EOG channels", + [ + "no_eog_channels" => "no EOG channels", + "two_heog_channels_only" => "two HEOG channels only", + "two_veog_channels_only" => "two VEOG channels only", + "two_heog_two_veog_channels" => "two HEOG and two VEOG channels", + "other" => "Other" + ] + ); + $this->addBasicText( + "eog_channels_other", + $this->indent . "If other, please specify" + ); + $this->XINRegisterRule( + 'eog_channels_other', + ['eog_channels{@}=={@}other'], + 'Required when EOG channels is other' + ); + + // number of active channels + $this->addBasicTextArea( + "artefacted_channels", + "Artefacted channels", + $textAreaOptions + ); + $this->XINRegisterRule( + 'artefacted_channels', + ["artefacted_channels{@}=={@}NEVER_REQUIRED"], + "Not Required" + ); + + + // ============================= + // ==== C. EEG Acquisition + $this->form->addStatic( + null, + "

EEG Acquisition

" + ); + + // bad channels + $this->addSelect( + "bad_electrodes_present", + "Were there any bad electrodes during impedances?", + $yesNoOnlyOptions + ); + $this->addBasicTextArea( + "bad_electrodes", + $this->indent . "If Yes, please register all bad electrodes", + $textAreaOptions + ); + $this->XINRegisterRule( + 'bad_electrodes', + ['bad_electrodes_present{@}=={@}yes'], + 'Required when bad electrodes are present' + ); + + + // hardware filters + $this->addBasicTextArea( + "hardware_filters_applied", + "What hardware filters were applied before acquisition?", + $textAreaOptions + ); + $this->XINRegisterRule( + 'hardware_filters_applied', + ["hardware_filters_applied{@}=={@}NEVER_REQUIRED"], + "Not Required" + ); + + // software filters + $this->addBasicTextArea( + "software_filters_applied", + "What software filters were applied during acquisition?", + $textAreaOptions + ); + $this->XINRegisterRule( + 'software_filters_applied', + ["software_filters_applied{@}=={@}NEVER_REQUIRED"], + "Not Required" + ); + + // timing + $this->addHourMinElement( + "eeg_session_start_time", + "EEG session Start time" + ); + + $this->addHourMinElement( + "eeg_session_end_time", + "EEG session End time" + ); + + /// ==== REST STATE + + $this->form->addStatic( + null, + "

Resting state task

" + ); + + $this->form->addElement( + 'static', + null, + "
*scroll through all channels to check for good signal after starting video
+ (if bad signal: pause task, continue task when signal looks good in recording)
" + ); + + // resting state acquired + $this->addSelect( + "resting_state_eeg_acquired", + "Resting State EEG Acquired?", + [ + null => "", + "not_started" => "Not Started", + "complete" => "Complete", + "incomplete" => "Incomplete", + ] + ); + $this->addBasicTextArea( + "resting_state_eeg_incomplete_reason", + $this->indent . "If Incomplete, why were you unable to complete the task?", + $textAreaOptions + ); + $this->XINRegisterRule( + 'resting_state_eeg_incomplete_reason', + ['resting_state_eeg_acquired{@}=={@}incomplete'], + 'Required when resting state acquiring is incomplete' + ); + + // number of attempts + $this->addSelect( + "resting_state_attempts", + "Number of attempts", + $attemptsOptions + ); + + // mood + $this->addSelect( + "resting_state_eeg_mood_rating", + $this->indent . "Resting State EEG Mood Rating", + $moodRatingOptions + ); + $this->addBasicTextArea( + "resting_state_eeg_mood_rating_comments", + $this->indent . "Any comment on the mood?", + $textAreaOptions + ); + $this->XINRegisterRule( + 'resting_state_eeg_mood_rating_comments', + ["resting_state_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED"], + "Not Required" + ); + + // comments + $this->addBasicTextArea( + "resting_state_comments", + $this->indent . "Any comment on the resting state?", + $textAreaOptions + ); + $this->XINRegisterRule( + 'resting_state_comments', + ["resting_state_comments{@}=={@}NEVER_REQUIRED"], + "Not Required" + ); + + + + + /// ==== VEP task + + $this->form->addStatic( + null, + "

VEP task

" + ); + + $this->addSelect( + "paradigm_vep_used", + "VEP paradigm used?", + $yesNoOnlyOptions + ); + + $this->form->addElement( + 'static', + null, + "
*scroll through all channels to check for good signal after starting video
+ (if bad signal: pause task, continue task when signal looks good in recording)
" + ); + + // resting state acquired + $this->addSelect( + "vep_eeg_acquired", + "VEP EEG Acquired?", + [ + null => "", + "not_started" => "Not Started", + "complete" => "Complete", + "incomplete" => "Incomplete", + ] + ); + $this->XINRegisterRule( + 'vep_eeg_acquired', + ['paradigm_vep_used{@}=={@}yes'], + 'Required when VEP is used' + ); + + $this->addBasicTextArea( + "vep_eeg_incomplete_reason", + $this->indent . "If Incomplete, why were you unable to complete the task?", + $textAreaOptions + ); + $this->XINRegisterRule( + 'vep_eeg_incomplete_reason', + ['vep_eeg_acquired{@}=={@}incomplete'], + 'Required when VEP acquiring is incomplete' + ); + + // number of attempts + $this->addSelect( + "vep_attempts", + "Number of attempts", + $attemptsOptions + ); + $this->XINRegisterRule( + 'vep_attempts', + ['paradigm_vep_used{@}=={@}yes'], + 'Required when VEP is used' + ); + + // mood + $this->addSelect( + "vep_eeg_mood_rating", + $this->indent . "VEP EEG Mood Rating", + $moodRatingOptions + ); + $this->XINRegisterRule( + 'vep_eeg_mood_rating', + ['paradigm_vep_used{@}=={@}yes'], + 'Required when VEP is used' + ); + $this->addBasicTextArea( + "vep_eeg_mood_rating_comments", + $this->indent . "Any comment on the mood?", + $textAreaOptions + ); + $this->XINRegisterRule( + 'vep_eeg_mood_rating_comments', + ["vep_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED"], + "Not Required" + ); + + // comments + $this->addBasicTextArea( + "vep_comments", + $this->indent . "Any comment on the VEP task?", + $textAreaOptions + ); + $this->XINRegisterRule( + 'vep_comments', + ["vep_comments{@}=={@}NEVER_REQUIRED"], + "Not Required" + ); + + + + /// ==== AEP task + + $this->form->addStatic( + null, + "

AEP task

" + ); + + $this->addSelect( + "paradigm_aep_used", + "AEP paradigm used?", + $yesNoOnlyOptions + ); + + $this->form->addElement( + 'static', + null, + "
*scroll through all channels to check for good signal after starting video
+ (if bad signal: pause task, continue task when signal looks good in recording)
" + ); + + // resting state acquired + $this->addSelect( + "aep_eeg_acquired", + "AEP EEG Acquired?", + [ + null => "", + "not_started" => "Not Started", + "complete" => "Complete", + "incomplete" => "Incomplete", + ] + ); + $this->XINRegisterRule( + 'aep_eeg_acquired', + ['paradigm_aep_used{@}=={@}yes'], + 'Required when AEP is used' + ); + $this->addBasicTextArea( + "aep_eeg_incomplete_reason", + $this->indent . "If Incomplete, why were you unable to complete the task?", + $textAreaOptions + ); + $this->XINRegisterRule( + 'aep_eeg_incomplete_reason', + ['aep_eeg_acquired{@}=={@}incomplete'], + 'Required when AEP acquiring is incomplete' + ); + + // number of attempts + $this->addSelect( + "aep_attempts", + "Number of attempts", + $attemptsOptions + ); + $this->XINRegisterRule( + 'aep_attempts', + ['paradigm_aep_used{@}=={@}yes'], + 'Required when AEP is used' + ); + + // mood + $this->addSelect( + "aep_eeg_mood_rating", + $this->indent . "AEP EEG Mood Rating", + $moodRatingOptions + ); + $this->XINRegisterRule( + 'aep_eeg_mood_rating', + ['paradigm_aep_used{@}=={@}yes'], + 'Required when AEP is used' + ); + $this->addBasicTextArea( + "aep_eeg_mood_rating_comments", + $this->indent . "Any comment on the mood?", + $textAreaOptions + ); + $this->XINRegisterRule( + 'aep_eeg_mood_rating_comments', + ["aep_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED"], + "Not Required" + ); + + // comments + $this->addBasicTextArea( + "aep_comments", + $this->indent . "Any comment on the AEP task?", + $textAreaOptions + ); + $this->XINRegisterRule( + 'aep_comments', + ["aep_comments{@}=={@}NEVER_REQUIRED"], + "Not Required" + ); + + + + + /// ==== MMN task + + $this->form->addStatic( + null, + "

MMN task

" + ); + + $this->addSelect( + "paradigm_mmn_used", + "MMN paradigm used?", + $yesNoOnlyOptions + ); + + $this->form->addElement( + 'static', + null, + "
*scroll through all channels to check for good signal after starting video
+ (if bad signal: pause task, continue task when signal looks good in recording)
" + ); + + // resting state acquired + $this->addSelect( + "mmn_eeg_acquired", + "MMN EEG Acquired?", + [ + null => "", + "not_started" => "Not Started", + "complete" => "Complete", + "incomplete" => "Incomplete", + ] + ); + $this->XINRegisterRule( + 'mmn_eeg_acquired', + ['paradigm_mmn_used{@}=={@}yes'], + 'Required when MMN is used' + ); + $this->addBasicTextArea( + "mmn_eeg_incomplete_reason", + $this->indent . "If Incomplete, why were you unable to complete the task?", + $textAreaOptions + ); + $this->XINRegisterRule( + 'mmn_eeg_incomplete_reason', + ['mmn_eeg_acquired{@}=={@}incomplete'], + 'Required when AEP acquiring is incomplete' + ); + + // number of attempts + $this->addSelect( + "mmn_attempts", + "Number of attempts", + $attemptsOptions + ); + $this->XINRegisterRule( + 'mmn_attempts', + ['paradigm_mmn_used{@}=={@}yes'], + 'Required when MMN is used' + ); + + // mood + $this->addSelect( + "mmn_eeg_mood_rating", + $this->indent . "MMN EEG Mood Rating", + $moodRatingOptions + ); + $this->XINRegisterRule( + 'mmn_eeg_mood_rating', + ['paradigm_mmn_used{@}=={@}yes'], + 'Required when MMN is used' + ); + $this->addBasicTextArea( + "mmn_eeg_mood_rating_comments", + $this->indent . "Any comment on the mood?", + $textAreaOptions + ); + $this->XINRegisterRule( + 'mmn_eeg_mood_rating_comments', + ["mmn_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED"], + "Not Required" + ); + + // comments + $this->addBasicTextArea( + "mmn_comments", + $this->indent . "Any comment on the MMN task?", + $textAreaOptions + ); + $this->XINRegisterRule( + 'mmn_comments', + ["mmn_comments{@}=={@}NEVER_REQUIRED"], + "Not Required" + ); + + + + + + /// ==== Faces task + + $this->form->addStatic( + null, + "

Faces task

" + ); + + $this->addSelect( + "paradigm_faces_used", + "Human Faces paradigm used?", + $yesNoOnlyOptions + ); + + $this->form->addElement( + 'static', + null, + "
*scroll through all channels to check for good signal after starting video
+ (if bad signal: pause task, continue task when signal looks good in recording)
" + ); + + // resting state acquired + $this->addSelect( + "faces_eeg_acquired", + "Faces EEG Acquired?", + [ + null => "", + "not_started" => "Not Started", + "complete" => "Complete", + "incomplete" => "Incomplete", + ] + ); + $this->XINRegisterRule( + 'faces_eeg_acquired', + ['paradigm_faces_used{@}=={@}yes'], + 'Required when Faces is used' + ); + $this->addBasicTextArea( + "faces_eeg_incomplete_reason", + $this->indent . "If Incomplete, why were you unable to complete the task?", + $textAreaOptions + ); + $this->XINRegisterRule( + 'faces_eeg_incomplete_reason', + ['faces_eeg_acquired{@}=={@}incomplete'], + 'Required when Faces acquiring is incomplete' + ); + + // number of attempts + $this->addSelect( + "faces_attempts", + "Number of attempts", + $attemptsOptions + ); + $this->XINRegisterRule( + 'faces_attempts', + ['paradigm_faces_used{@}=={@}yes'], + 'Required when Faces is used' + ); + + // mood + $this->addSelect( + "faces_eeg_mood_rating", + $this->indent . "Faces EEG Mood Rating", + $moodRatingOptions + ); + $this->XINRegisterRule( + 'faces_eeg_mood_rating', + ['paradigm_faces_used{@}=={@}yes'], + 'Required when Faces is used' + ); + $this->addBasicTextArea( + "faces_eeg_mood_rating_comments", + $this->indent . "Any comment on the mood?", + $textAreaOptions + ); + $this->XINRegisterRule( + 'faces_eeg_mood_rating_comments', + ["faces_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED"], + "Not Required" + ); + + // comments + $this->addBasicTextArea( + "faces_comments", + $this->indent . "Any comment on the Faces task?", + $textAreaOptions + ); + $this->XINRegisterRule( + 'faces_comments', + ["faces_comments{@}=={@}NEVER_REQUIRED"], + "Not Required" + ); + + // ============================= + // ==== D. General comments + $this->form->addStatic( + null, + "

General session comments and notes

" + ); + + // general notes and comments + $this->addBasicTextArea( + "general_comments", + "General session notes, any important details (e.g. technical error, issue with net, etc.)", + $textAreaOptions + ); + $this->XINRegisterRule( + 'general_comments', + ["general_comments{@}=={@}NEVER_REQUIRED"], + "Not Required" + ); + } +} From b46d3c7427b5b9fba21737e245438f7e8abaf3ec Mon Sep 17 00:00:00 2001 From: regisoc Date: Mon, 20 Mar 2023 10:34:48 -0400 Subject: [PATCH 02/18] remove php class and sql --- .../2023-03-14_EEG_Acquisition_instrument.sql | 84 -- .../instruments/EEG_Acquisition_form.linst | 97 ++ .../instruments/EEG_Acquisition_form.meta | 3 + ...B_BVL_Instrument_EEG_Acquisition.class.inc | 993 ------------------ 4 files changed, 100 insertions(+), 1077 deletions(-) delete mode 100644 SQL/New_patches/2023-03-14_EEG_Acquisition_instrument.sql create mode 100644 raisinbread/instruments/EEG_Acquisition_form.linst create mode 100644 raisinbread/instruments/EEG_Acquisition_form.meta delete mode 100644 raisinbread/instruments/NDB_BVL_Instrument_EEG_Acquisition.class.inc diff --git a/SQL/New_patches/2023-03-14_EEG_Acquisition_instrument.sql b/SQL/New_patches/2023-03-14_EEG_Acquisition_instrument.sql deleted file mode 100644 index 743b8bbe360..00000000000 --- a/SQL/New_patches/2023-03-14_EEG_Acquisition_instrument.sql +++ /dev/null @@ -1,84 +0,0 @@ -CREATE TABLE `EEG_Acquisition` ( - `CommentID` varchar(255) NOT NULL default '', - `UserID` varchar(255) default NULL, - `Examiner` varchar(255) default NULL, - `Testdate` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -`Date_taken` date default NULL, -`Candidate_Age` varchar(255) default NULL, -`Window_Difference` varchar(255) default NULL, -`research_staff_one` varchar(255) default NULL, -`research_staff_two` varchar(255) default NULL, -`research_staff_three` varchar(255) default NULL, -`session_testing_room` varchar(255) default NULL, -`subject_behavioral_assistant_present` enum('yes','no') default NULL, -`subject_behavioral_assistant` varchar(255) default NULL, -`subject_medication` enum('yes','no') default NULL, -`subject_medication_dosage` text default NULL, -`head_measurement_unit` enum('cm','in') default NULL, -`head_measurement` varchar(255) default NULL, -`head_measurement_status` enum('not_answered') default NULL, -`ekg_collected` enum('yes','no') default NULL, -`participant_away_60cm_from_monitor` enum('yes','no') default NULL, -`participant_away_60cm_from_monitor_reason` text default NULL, -`net_id` varchar(255) default NULL, -`impedance_measured_before_netting` enum('yes','no') default NULL, -`impedance_measure` varchar(255) default NULL, -`bad_channels_measured_after_netting` enum('yes','no') default NULL, -`bad_channels` text default NULL, -`net_placement` enum('na','excellent','average','poor') default NULL, -`net_placement_comment` text default NULL, -`net_placement_photos_taken` enum('yes','no') default NULL, -`acquisition_software` enum('eemagine','neuro_scan','insep','biosemi','netstation','brain_vision_recorder','emotiv','actiview605_lores','eeprobe','tmsi','other') default NULL, -`acquisition_software_other` varchar(255) default NULL, -`recording_reference` enum('left_mastoid','right_mastoid','left_earlobe','right_earlobe','physically_linked_mastoids','physically_linked_earlobes','cz','tip_nose','balanced_non_cephalic_reference','other') default NULL, -`recording_reference_other` varchar(255) default NULL, -`number_active_channels` varchar(255) default NULL, -`number_active_channels_status` enum('not_answered') default NULL, -`eog_channels` enum('no_eog_channels','two_heog_channels_only','two_veog_channels_only','two_heog_two_veog_channels','other') default NULL, -`eog_channels_other` varchar(255) default NULL, -`artefacted_channels` text default NULL, -`bad_electrodes_present` enum('yes','no') default NULL, -`bad_electrodes` text default NULL, -`hardware_filters_applied` text default NULL, -`software_filters_applied` text default NULL, -`eeg_session_start_time` time default NULL, -`eeg_session_start_time_status` enum('dnk','refusal','not_answered') default NULL, -`eeg_session_end_time` time default NULL, -`eeg_session_end_time_status` enum('dnk','refusal','not_answered') default NULL, -`resting_state_eeg_acquired` enum('not_started','complete','incomplete') default NULL, -`resting_state_eeg_incomplete_reason` text default NULL, -`resting_state_attempts` enum('1','2','3','4','more_than_5') default NULL, -`resting_state_eeg_mood_rating` enum('1','2','3','4','5') default NULL, -`resting_state_eeg_mood_rating_comments` text default NULL, -`resting_state_comments` text default NULL, -`paradigm_vep_used` enum('yes','no') default NULL, -`vep_eeg_acquired` enum('not_started','complete','incomplete') default NULL, -`vep_eeg_incomplete_reason` text default NULL, -`vep_attempts` enum('1','2','3','4','more_than_5') default NULL, -`vep_eeg_mood_rating` enum('1','2','3','4','5') default NULL, -`vep_eeg_mood_rating_comments` text default NULL, -`vep_comments` text default NULL, -`paradigm_aep_used` enum('yes','no') default NULL, -`aep_eeg_acquired` enum('not_started','complete','incomplete') default NULL, -`aep_eeg_incomplete_reason` text default NULL, -`aep_attempts` enum('1','2','3','4','more_than_5') default NULL, -`aep_eeg_mood_rating` enum('1','2','3','4','5') default NULL, -`aep_eeg_mood_rating_comments` text default NULL, -`aep_comments` text default NULL, -`paradigm_mmn_used` enum('yes','no') default NULL, -`mmn_eeg_acquired` enum('not_started','complete','incomplete') default NULL, -`mmn_eeg_incomplete_reason` text default NULL, -`mmn_attempts` enum('1','2','3','4','more_than_5') default NULL, -`mmn_eeg_mood_rating` enum('1','2','3','4','5') default NULL, -`mmn_eeg_mood_rating_comments` text default NULL, -`mmn_comments` text default NULL, -`paradigm_faces_used` enum('yes','no') default NULL, -`faces_eeg_acquired` enum('not_started','complete','incomplete') default NULL, -`faces_eeg_incomplete_reason` text default NULL, -`faces_attempts` enum('1','2','3','4','more_than_5') default NULL, -`faces_eeg_mood_rating` enum('1','2','3','4','5') default NULL, -`faces_eeg_mood_rating_comments` text default NULL, -`faces_comments` text default NULL, -`general_comments` text default NULL, -PRIMARY KEY (`CommentID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/raisinbread/instruments/EEG_Acquisition_form.linst b/raisinbread/instruments/EEG_Acquisition_form.linst new file mode 100644 index 00000000000..23f4745dd9b --- /dev/null +++ b/raisinbread/instruments/EEG_Acquisition_form.linst @@ -0,0 +1,97 @@ +testname{@}EEG_Acquisition_form +table{@}EEG_Acquisition_form +title{@}EEG_Acquisition_form +header{@}{@}EEG Acquisition form +date{@}Date_taken{@}Date of Administration{@}{@} +static{@}Candidate_Age{@}Candidate Age (Months) +static{@}Window_Difference{@}Window Difference (+/- Days) +select{@}Examiner{@}Examiner{@} +header{@}{@}

General informations

+text{@}research_staff_one{@}Research staff 1 initials +text{@}research_staff_two{@}Research staff 2 initials +text{@}research_staff_three{@}Research staff 3 initials +text{@}session_testing_room{@}Testing room information +select{@}subject_behavioral_assistant_present{@}Is there a behavioral assistant?{@}'yes'=>'Yes'{-}'no'=>'No' +text{@}subject_behavioral_assistant{@}Subject Behavioral assistant initials +select{@}subject_medication{@}Is subject under medication?{@}'yes'=>'Yes'{-}'no'=>'No' +textarea{@}subject_medication_dosage{@}Describe the medication and dosage +select{@}head_measurement_unit{@}What is the unit used for head measurement?{@}'cm'=>'Centimeters (cm)'{-}'in'=>'Inches (in)' +text{@}head_measurement{@}What is the head measurement value? +select{@}head_measurement_status{@}What is the head measurement value?{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}ekg_collected{@}EKG Collected?{@}'yes'=>'Yes'{-}'no'=>'No' +select{@}participant_away_60cm_from_monitor{@}Participant is 60cm away from monitor?{@}'yes'=>'Yes'{-}'no'=>'No' +textarea{@}participant_away_60cm_from_monitor_reason{@}If No, please explain the reason +header{@}{@}

Net informations

+text{@}net_id{@}What is the net identifier? +select{@}impedance_measured_before_netting{@}Impedances measure before netting?{@}'yes'=>'Yes'{-}'no'=>'No' +text{@}impedance_measure{@}Register the impedance measured +select{@}bad_channels_measured_after_netting{@}Bad channels measured after netting?{@}'yes'=>'Yes'{-}'no'=>'No' +textarea{@}bad_channels{@}Register all bad channels +header{@}{@}
For net placement question:
Excellent - meets all criteria for proper net placement.
Average - any 1-2cm shift from proper placement (1 pinky finger width distance).
Poor - any >2 cm shift from proper placement (>1 pinky finger width distance).
+select{@}net_placement{@}Net placement{@}'na'=>'n/a'{-}'excellent'=>'Excellent'{-}'average'=>'Average'{-}'poor'=>'Poor' +textarea{@}net_placement_comment{@}Any comment on net placement +select{@}net_placement_photos_taken{@}Placement photos taken?{@}'yes'=>'Yes'{-}'no'=>'No' +select{@}acquisition_software{@}Acquisition software used{@}'eemagine'=>'Eemagine'{-}'neuro_scan'=>'(Neuro)scan'{-}'insep'=>'InsEP'{-}'biosemi'=>'BioSemi'{-}'netstation'=>'NetStation'{-}'brain_vision_recorder'=>'Brain Vision Recorder'{-}'emotiv'=>'Emotiv'{-}'actiview605_lores'=>'ActiView605-Lores'{-}'eeprobe'=>'EEProbe'{-}'tmsi'=>'TMSi'{-}'other'=>'Other' +text{@}acquisition_software_other{@}If other, please specify +select{@}recording_reference{@}Recording reference used{@}'left_mastoid'=>'left mastoid'{-}'right_mastoid'=>'right mastoid'{-}'left_earlobe'=>'left earlobe'{-}'right_earlobe'=>'right earlobe'{-}'physically_linked_mastoids'=>'physically linked mastoids'{-}'physically_linked_earlobes'=>'physically linked earlobes'{-}'cz'=>'Cz'{-}'tip_nose'=>'tip of the nose'{-}'balanced_non_cephalic_reference'=>'balanced non-cephalic reference'{-}'other'=>'Other' +text{@}recording_reference_other{@}If other, please specify +text{@}number_active_channels{@}Number of active channels +select{@}number_active_channels_status{@}Number of active channels{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}eog_channels{@}EOG channels{@}'no_eog_channels'=>'no EOG channels'{-}'two_heog_channels_only'=>'two HEOG channels only'{-}'two_veog_channels_only'=>'two VEOG channels only'{-}'two_heog_two_veog_channels'=>'two HEOG and two VEOG channels'{-}'other'=>'Other' +text{@}eog_channels_other{@}If other, please specify +textarea{@}artefacted_channels{@}Artefacted channels +header{@}{@}

EEG Acquisition

+select{@}bad_electrodes_present{@}Were there any bad electrodes during impedances?{@}'yes'=>'Yes'{-}'no'=>'No' +textarea{@}bad_electrodes{@}If Yes, please register all bad electrodes +textarea{@}hardware_filters_applied{@}What hardware filters were applied before acquisition? +textarea{@}software_filters_applied{@}What software filters were applied during acquisition? +time{@}eeg_session_start_time{@}EEG session Start time +select{@}eeg_session_start_time_status{@}EEG session Start time{@}NULL=>''{-}'dnk'=>'DNK'{-}'refusal'=>'Refusal'{-}'not_answered'=>'Not Answered' +time{@}eeg_session_end_time{@}EEG session End time +select{@}eeg_session_end_time_status{@}EEG session End time{@}NULL=>''{-}'dnk'=>'DNK'{-}'refusal'=>'Refusal'{-}'not_answered'=>'Not Answered' +header{@}{@}

Resting state task

+header{@}{@}
*scroll through all channels to check for good signal after starting video
(if bad signal: pause task, continue task when signal looks good in recording)
+select{@}resting_state_eeg_acquired{@}Resting State EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' +textarea{@}resting_state_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? +select{@}resting_state_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' +select{@}resting_state_eeg_mood_rating{@}Resting State EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' +textarea{@}resting_state_eeg_mood_rating_comments{@}Any comment on the mood? +textarea{@}resting_state_comments{@}Any comment on the resting state? +header{@}{@}

VEP task

+select{@}paradigm_vep_used{@}VEP paradigm used?{@}'yes'=>'Yes'{-}'no'=>'No' +header{@}{@}
*scroll through all channels to check for good signal after starting video
(if bad signal: pause task, continue task when signal looks good in recording)
+select{@}vep_eeg_acquired{@}VEP EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' +textarea{@}vep_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? +select{@}vep_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' +select{@}vep_eeg_mood_rating{@}VEP EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' +textarea{@}vep_eeg_mood_rating_comments{@}Any comment on the mood? +textarea{@}vep_comments{@}Any comment on the VEP task? +header{@}{@}

AEP task

+select{@}paradigm_aep_used{@}AEP paradigm used?{@}'yes'=>'Yes'{-}'no'=>'No' +header{@}{@}
*scroll through all channels to check for good signal after starting video
(if bad signal: pause task, continue task when signal looks good in recording)
+select{@}aep_eeg_acquired{@}AEP EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' +textarea{@}aep_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? +select{@}aep_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' +select{@}aep_eeg_mood_rating{@}AEP EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' +textarea{@}aep_eeg_mood_rating_comments{@}Any comment on the mood? +textarea{@}aep_comments{@}Any comment on the AEP task? +header{@}{@}

MMN task

+select{@}paradigm_mmn_used{@}MMN paradigm used?{@}'yes'=>'Yes'{-}'no'=>'No' +header{@}{@}
*scroll through all channels to check for good signal after starting video
(if bad signal: pause task, continue task when signal looks good in recording)
+select{@}mmn_eeg_acquired{@}MMN EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' +textarea{@}mmn_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? +select{@}mmn_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' +select{@}mmn_eeg_mood_rating{@}MMN EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' +textarea{@}mmn_eeg_mood_rating_comments{@}Any comment on the mood? +textarea{@}mmn_comments{@}Any comment on the MMN task? +header{@}{@}

Faces task

+select{@}paradigm_faces_used{@}Human Faces paradigm used?{@}'yes'=>'Yes'{-}'no'=>'No' +header{@}{@}
*scroll through all channels to check for good signal after starting video
(if bad signal: pause task, continue task when signal looks good in recording)
+select{@}faces_eeg_acquired{@}Faces EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' +textarea{@}faces_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? +select{@}faces_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' +select{@}faces_eeg_mood_rating{@}Faces EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' +textarea{@}faces_eeg_mood_rating_comments{@}Any comment on the mood? +textarea{@}faces_comments{@}Any comment on the Faces task? +header{@}{@}

General session comments and notes

+textarea{@}general_comments{@}General session notes, any important details (e.g. technical error, issue with net, etc.) diff --git a/raisinbread/instruments/EEG_Acquisition_form.meta b/raisinbread/instruments/EEG_Acquisition_form.meta new file mode 100644 index 00000000000..a40d0ec8434 --- /dev/null +++ b/raisinbread/instruments/EEG_Acquisition_form.meta @@ -0,0 +1,3 @@ +testname{@}EEG_Acquisition_form +table{@}EEG_Acquisition_form +jsondata{@}false \ No newline at end of file diff --git a/raisinbread/instruments/NDB_BVL_Instrument_EEG_Acquisition.class.inc b/raisinbread/instruments/NDB_BVL_Instrument_EEG_Acquisition.class.inc deleted file mode 100644 index 8af154ae6dd..00000000000 --- a/raisinbread/instruments/NDB_BVL_Instrument_EEG_Acquisition.class.inc +++ /dev/null @@ -1,993 +0,0 @@ - - * @license http://www.gnu.org/licenses/gpl-3.0.txt GPLv3 - * @link https://www.github.com/aces/loris/ - */ - -/** - * Creates the form elements for the Boston_Diagnostic_Aphasia_Exam instrument - * - * @category Instrument - * @package EEG_Acquisition - * @author Loris Team - * @license http://www.gnu.org/licenses/gpl-3.0.txt GPLv3 - * @link https://www.github.com/aces/loris/ - */ -class NDB_BVL_Instrument_EEG_Acquisition extends NDB_BVL_Instrument -{ - use \LorisFormDictionaryImpl; - - - function getFullName(): ?string - { - return $this->testName; - } - - function getSubtestList() : array - { - return []; - } - - /** - * Sets up basic data. - * - * @param string $commentID the CommentID identifying the data to load - * @param string $page if a multipage form, the page to show - * - * @return void - * @access public - */ - function setup(?string $commentID = null, ?string $page = null): void - { - $formName = 'EEG_Acquisition'; - $this->formType = "XIN"; - $this->form = new LorisForm($formName); - $this->page = $page; // page label - - // set the object properties - // Corresponds to the Test_name column in test_names table - $this->testName = $formName; - // name of database table corresponding to instrument - $this->table = $formName; - // data keyed by commentID - $this->commentID = $commentID; - - //The array of selects with multiple answers allowed - $this->selectMultipleElements = array(); - - //The array of dates/timestamps to convert to database dates/timestamps - //Any LorisForm date elements must be listed here - // $this->dateTimeFields = array("Date_taken"); - $config = \NDB_Config::singleton(); - $this->dateOptions = array( - 'language' => 'en', - 'format' => 'YMd', - 'minYear' => $config->getSetting('startYear'), - 'maxYear' => $config->getSetting('endYear'), - 'addEmptyOption' => true, - 'emptyOptionValue' => null, - ); - - // required fields for data entry completion status - $this->_requiredElements = array( - 'Date_taken', - ); - - // mulitple select elements - $this->selectMultipleElements = []; - - // setup the form - $this->_setupForm(); - - } - - /** - * Builds the object into a paginated form - * - * @return void - * @access private - */ - function _setupForm() - { - if (preg_match("/EEG_Acquisition(_page[0-9]+)/", $this->page, $matches)) { - call_user_func(array($this, $matches[1])); - } else { - $this->_main(); - } - // Defines the call back function to use in validation - $this->form->addFormRule(array(&$this, 'XINValidate')); - } - - /** - * Generates the main page of the form. - * - * @return void - * @access private - */ - function _main() - { - - $yesNoOnlyOptions = [ - "yes" => "Yes", - "no" => "No" - ]; - - $textAreaOptions = [ - 'cols'=>25, - 'rows'=>4 - ]; - - $attemptsOptions = [ - null => "", - "1" => "1", - "2" => "2", - "3" => "3", - "4" => "4", - "more_than_5" => "More than 5" - ]; - - $moodRatingOptions = [ - null=> "", - "1" => "1 - Screaming, fussed out", - "2" => "2", - "3" => "3", - "4" => "4", - "5" => "5 - Very calm the whole time" - ]; - - // display test name - $this->addHeader("EEG Acquisition"); - - // automatically adds examiner & date of administration - $this->_addMetadataFields(); - - // ============================= - // ==== A. General informations - $this->form->addStatic( - null, - "

General informations

" - ); - - // Research staff - // at least one required - $this->addBasicText( - 'research_staff_one', - 'Research staff 1 initials' - ); - - $this->addBasicText( - 'research_staff_two', - 'Research staff 2 initials' - ); - $this->XINRegisterRule( - 'research_staff_two', - ["research_staff_two{@}=={@}NEVER_REQUIRED"], - "Not Required" - ); - - $this->addBasicText( - 'research_staff_three', - 'Research staff 3 initials' - ); - $this->XINRegisterRule( - 'research_staff_three', - ["research_staff_three{@}=={@}NEVER_REQUIRED"], - "Not Required" - ); - - // Testing room - $this->addBasicText( - "session_testing_room", - "Testing room information" - ); - $this->XINRegisterRule( - 'session_testing_room', - ["session_testing_room{@}=={@}NEVER_REQUIRED"], - "Not Required" - ); - - // behavioural assistance - $this->addSelect( - "subject_behavioral_assistant_present", - "Is there a behavioral assistant?", - $yesNoOnlyOptions - ); - - $this->addBasicText( - "subject_behavioral_assistant", - $this->indent . "Subject Behavioral assistant initials" - ); - $this->XINRegisterRule( - 'subject_behavioral_assistant', - ['subject_behavioral_assistant_present{@}=={@}yes'], - 'Required if there is a behavioural assistant' - ); - - // medication - $this->addSelect( - "subject_medication", - "Is subject under medication?", - $yesNoOnlyOptions - ); - $this->addBasicTextArea( - "subject_medication_dosage", - $this->indent . "Describe the medication and dosage", - $textAreaOptions - ); - $this->XINRegisterRule( - 'subject_medication_dosage', - ['subject_medication{@}=={@}yes'], - 'Required if there is an ongoing medication' - ); - - // head measurement - $this->addSelect( - "head_measurement_unit", - "What is the unit used for head measurement?", - [ - "cm" => "Centimeters (cm)", - "in" => "Inches (in)" - ] - ); - - $this->addNumericElement( - "head_measurement", - "What is the head measurement value?" - ); - - // EKG collected? - $this->addSelect( - "ekg_collected", - "EKG Collected?", - $yesNoOnlyOptions - ); - - // distance from monitor - $this->addSelect( - "participant_away_60cm_from_monitor", - "Participant is 60cm away from monitor?", - $yesNoOnlyOptions - ); - $this->addBasicTextArea( - "participant_away_60cm_from_monitor_reason", - $this->indent . "If No, please explain the reason", - $textAreaOptions - ); - $this->XINRegisterRule( - 'participant_away_60cm_from_monitor_reason', - ['participant_away_60cm_from_monitor{@}=={@}no'], - 'Required if participant cannot be 60cm away from montior' - ); - - - // ============================= - // ==== B. Net informations - $this->form->addStatic( - null, - "

Net informations

" - ); - - // Net id - $this->addBasicText( - "net_id", - "What is the net identifier?", - ); - - // impedance - $this->addSelect( - "impedance_measured_before_netting", - "Impedances measure before netting?", - $yesNoOnlyOptions - ); - $this->addBasicText( - "impedance_measure", - $this->indent . "Register the impedance measured" - ); - $this->XINRegisterRule( - 'impedance_measure', - ['impedance_measured_before_netting{@}=={@}yes'], - 'Required when impedance is measured' - ); - - // bad channels - $this->addSelect( - "bad_channels_measured_after_netting", - "Bad channels measured after netting?", - $yesNoOnlyOptions - ); - $this->addBasicTextArea( - "bad_channels", - $this->indent . "Register all bad channels", - $textAreaOptions - ); - $this->XINRegisterRule( - 'bad_channels', - ['bad_channels_measured_after_netting{@}=={@}yes'], - 'Required when bad channels are present' - ); - - // net placement quality - $this->form->addElement( - 'static', - null, - "
For net placement question:
- Excellent - meets all criteria for proper net placement.
- Average - any 1-2cm shift from proper placement (1 pinky finger width distance).
- Poor - any >2 cm shift from proper placement (>1 pinky finger width distance). -
" - ); - - $this->addSelect( - "net_placement", - "Net placement", - [ - "na" => "n/a", - "excellent" => "Excellent", - "average" => "Average" , - "poor" => "Poor" - ] - ); - - $this->addBasicTextArea( - "net_placement_comment", - $this->indent . "Any comment on net placement", - $textAreaOptions - ); - $this->XINRegisterRule( - 'net_placement_comment', - ['net_placement{@}=={@}na'], - 'Required when net placement is not available' - ); - - // photos of the net placement - $this->addSelect( - "net_placement_photos_taken", - "Placement photos taken?", - $yesNoOnlyOptions - ); - - - // Electrodes - - // acquisition software - $this->addSelect( - "acquisition_software", - "Acquisition software used", - [ - "eemagine" => "Eemagine", - "neuro_scan" => "(Neuro)scan", - "insep" => "InsEP", - "biosemi" => "BioSemi", - "netstation" => "NetStation", - "brain_vision_recorder" => "Brain Vision Recorder", - "emotiv" => "Emotiv", - "actiview605_lores" => "ActiView605-Lores", - "eeprobe" => "EEProbe", - "tmsi" => "TMSi", - "other" => "Other" - ] - ); - $this->addBasicText( - "acquisition_software_other", - $this->indent . "If other, please specify" - ); - $this->XINRegisterRule( - 'acquisition_software_other', - ['acquisition_software{@}=={@}other'], - 'Required when acquisition software is other' - ); - - - // recording reference - $this->addSelect( - "recording_reference", - "Recording reference used", - [ - "left_mastoid" => "left mastoid", - "right_mastoid" => "right mastoid", - "left_earlobe" => "left earlobe", - "right_earlobe" => "right earlobe", - "physically_linked_mastoids" => "physically linked mastoids", - "physically_linked_earlobes" => "physically linked earlobes", - "cz" => "Cz", - "tip_nose" => "tip of the nose", - "balanced_non_cephalic_reference" => "balanced non-cephalic reference", - "other" => "Other" - ] - ); - $this->addBasicText( - "recording_reference_other", - $this->indent . "If other, please specify" - ); - $this->XINRegisterRule( - 'recording_reference_other', - ['recording_reference{@}=={@}other'], - 'Required when recording reference is other' - ); - - // number of active channels - $this->addNumericElement( - "number_active_channels", - "Number of active channels" - ); - - // EOG channles - $this->addSelect( - "eog_channels", - "EOG channels", - [ - "no_eog_channels" => "no EOG channels", - "two_heog_channels_only" => "two HEOG channels only", - "two_veog_channels_only" => "two VEOG channels only", - "two_heog_two_veog_channels" => "two HEOG and two VEOG channels", - "other" => "Other" - ] - ); - $this->addBasicText( - "eog_channels_other", - $this->indent . "If other, please specify" - ); - $this->XINRegisterRule( - 'eog_channels_other', - ['eog_channels{@}=={@}other'], - 'Required when EOG channels is other' - ); - - // number of active channels - $this->addBasicTextArea( - "artefacted_channels", - "Artefacted channels", - $textAreaOptions - ); - $this->XINRegisterRule( - 'artefacted_channels', - ["artefacted_channels{@}=={@}NEVER_REQUIRED"], - "Not Required" - ); - - - // ============================= - // ==== C. EEG Acquisition - $this->form->addStatic( - null, - "

EEG Acquisition

" - ); - - // bad channels - $this->addSelect( - "bad_electrodes_present", - "Were there any bad electrodes during impedances?", - $yesNoOnlyOptions - ); - $this->addBasicTextArea( - "bad_electrodes", - $this->indent . "If Yes, please register all bad electrodes", - $textAreaOptions - ); - $this->XINRegisterRule( - 'bad_electrodes', - ['bad_electrodes_present{@}=={@}yes'], - 'Required when bad electrodes are present' - ); - - - // hardware filters - $this->addBasicTextArea( - "hardware_filters_applied", - "What hardware filters were applied before acquisition?", - $textAreaOptions - ); - $this->XINRegisterRule( - 'hardware_filters_applied', - ["hardware_filters_applied{@}=={@}NEVER_REQUIRED"], - "Not Required" - ); - - // software filters - $this->addBasicTextArea( - "software_filters_applied", - "What software filters were applied during acquisition?", - $textAreaOptions - ); - $this->XINRegisterRule( - 'software_filters_applied', - ["software_filters_applied{@}=={@}NEVER_REQUIRED"], - "Not Required" - ); - - // timing - $this->addHourMinElement( - "eeg_session_start_time", - "EEG session Start time" - ); - - $this->addHourMinElement( - "eeg_session_end_time", - "EEG session End time" - ); - - /// ==== REST STATE - - $this->form->addStatic( - null, - "

Resting state task

" - ); - - $this->form->addElement( - 'static', - null, - "
*scroll through all channels to check for good signal after starting video
- (if bad signal: pause task, continue task when signal looks good in recording)
" - ); - - // resting state acquired - $this->addSelect( - "resting_state_eeg_acquired", - "Resting State EEG Acquired?", - [ - null => "", - "not_started" => "Not Started", - "complete" => "Complete", - "incomplete" => "Incomplete", - ] - ); - $this->addBasicTextArea( - "resting_state_eeg_incomplete_reason", - $this->indent . "If Incomplete, why were you unable to complete the task?", - $textAreaOptions - ); - $this->XINRegisterRule( - 'resting_state_eeg_incomplete_reason', - ['resting_state_eeg_acquired{@}=={@}incomplete'], - 'Required when resting state acquiring is incomplete' - ); - - // number of attempts - $this->addSelect( - "resting_state_attempts", - "Number of attempts", - $attemptsOptions - ); - - // mood - $this->addSelect( - "resting_state_eeg_mood_rating", - $this->indent . "Resting State EEG Mood Rating", - $moodRatingOptions - ); - $this->addBasicTextArea( - "resting_state_eeg_mood_rating_comments", - $this->indent . "Any comment on the mood?", - $textAreaOptions - ); - $this->XINRegisterRule( - 'resting_state_eeg_mood_rating_comments', - ["resting_state_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED"], - "Not Required" - ); - - // comments - $this->addBasicTextArea( - "resting_state_comments", - $this->indent . "Any comment on the resting state?", - $textAreaOptions - ); - $this->XINRegisterRule( - 'resting_state_comments', - ["resting_state_comments{@}=={@}NEVER_REQUIRED"], - "Not Required" - ); - - - - - /// ==== VEP task - - $this->form->addStatic( - null, - "

VEP task

" - ); - - $this->addSelect( - "paradigm_vep_used", - "VEP paradigm used?", - $yesNoOnlyOptions - ); - - $this->form->addElement( - 'static', - null, - "
*scroll through all channels to check for good signal after starting video
- (if bad signal: pause task, continue task when signal looks good in recording)
" - ); - - // resting state acquired - $this->addSelect( - "vep_eeg_acquired", - "VEP EEG Acquired?", - [ - null => "", - "not_started" => "Not Started", - "complete" => "Complete", - "incomplete" => "Incomplete", - ] - ); - $this->XINRegisterRule( - 'vep_eeg_acquired', - ['paradigm_vep_used{@}=={@}yes'], - 'Required when VEP is used' - ); - - $this->addBasicTextArea( - "vep_eeg_incomplete_reason", - $this->indent . "If Incomplete, why were you unable to complete the task?", - $textAreaOptions - ); - $this->XINRegisterRule( - 'vep_eeg_incomplete_reason', - ['vep_eeg_acquired{@}=={@}incomplete'], - 'Required when VEP acquiring is incomplete' - ); - - // number of attempts - $this->addSelect( - "vep_attempts", - "Number of attempts", - $attemptsOptions - ); - $this->XINRegisterRule( - 'vep_attempts', - ['paradigm_vep_used{@}=={@}yes'], - 'Required when VEP is used' - ); - - // mood - $this->addSelect( - "vep_eeg_mood_rating", - $this->indent . "VEP EEG Mood Rating", - $moodRatingOptions - ); - $this->XINRegisterRule( - 'vep_eeg_mood_rating', - ['paradigm_vep_used{@}=={@}yes'], - 'Required when VEP is used' - ); - $this->addBasicTextArea( - "vep_eeg_mood_rating_comments", - $this->indent . "Any comment on the mood?", - $textAreaOptions - ); - $this->XINRegisterRule( - 'vep_eeg_mood_rating_comments', - ["vep_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED"], - "Not Required" - ); - - // comments - $this->addBasicTextArea( - "vep_comments", - $this->indent . "Any comment on the VEP task?", - $textAreaOptions - ); - $this->XINRegisterRule( - 'vep_comments', - ["vep_comments{@}=={@}NEVER_REQUIRED"], - "Not Required" - ); - - - - /// ==== AEP task - - $this->form->addStatic( - null, - "

AEP task

" - ); - - $this->addSelect( - "paradigm_aep_used", - "AEP paradigm used?", - $yesNoOnlyOptions - ); - - $this->form->addElement( - 'static', - null, - "
*scroll through all channels to check for good signal after starting video
- (if bad signal: pause task, continue task when signal looks good in recording)
" - ); - - // resting state acquired - $this->addSelect( - "aep_eeg_acquired", - "AEP EEG Acquired?", - [ - null => "", - "not_started" => "Not Started", - "complete" => "Complete", - "incomplete" => "Incomplete", - ] - ); - $this->XINRegisterRule( - 'aep_eeg_acquired', - ['paradigm_aep_used{@}=={@}yes'], - 'Required when AEP is used' - ); - $this->addBasicTextArea( - "aep_eeg_incomplete_reason", - $this->indent . "If Incomplete, why were you unable to complete the task?", - $textAreaOptions - ); - $this->XINRegisterRule( - 'aep_eeg_incomplete_reason', - ['aep_eeg_acquired{@}=={@}incomplete'], - 'Required when AEP acquiring is incomplete' - ); - - // number of attempts - $this->addSelect( - "aep_attempts", - "Number of attempts", - $attemptsOptions - ); - $this->XINRegisterRule( - 'aep_attempts', - ['paradigm_aep_used{@}=={@}yes'], - 'Required when AEP is used' - ); - - // mood - $this->addSelect( - "aep_eeg_mood_rating", - $this->indent . "AEP EEG Mood Rating", - $moodRatingOptions - ); - $this->XINRegisterRule( - 'aep_eeg_mood_rating', - ['paradigm_aep_used{@}=={@}yes'], - 'Required when AEP is used' - ); - $this->addBasicTextArea( - "aep_eeg_mood_rating_comments", - $this->indent . "Any comment on the mood?", - $textAreaOptions - ); - $this->XINRegisterRule( - 'aep_eeg_mood_rating_comments', - ["aep_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED"], - "Not Required" - ); - - // comments - $this->addBasicTextArea( - "aep_comments", - $this->indent . "Any comment on the AEP task?", - $textAreaOptions - ); - $this->XINRegisterRule( - 'aep_comments', - ["aep_comments{@}=={@}NEVER_REQUIRED"], - "Not Required" - ); - - - - - /// ==== MMN task - - $this->form->addStatic( - null, - "

MMN task

" - ); - - $this->addSelect( - "paradigm_mmn_used", - "MMN paradigm used?", - $yesNoOnlyOptions - ); - - $this->form->addElement( - 'static', - null, - "
*scroll through all channels to check for good signal after starting video
- (if bad signal: pause task, continue task when signal looks good in recording)
" - ); - - // resting state acquired - $this->addSelect( - "mmn_eeg_acquired", - "MMN EEG Acquired?", - [ - null => "", - "not_started" => "Not Started", - "complete" => "Complete", - "incomplete" => "Incomplete", - ] - ); - $this->XINRegisterRule( - 'mmn_eeg_acquired', - ['paradigm_mmn_used{@}=={@}yes'], - 'Required when MMN is used' - ); - $this->addBasicTextArea( - "mmn_eeg_incomplete_reason", - $this->indent . "If Incomplete, why were you unable to complete the task?", - $textAreaOptions - ); - $this->XINRegisterRule( - 'mmn_eeg_incomplete_reason', - ['mmn_eeg_acquired{@}=={@}incomplete'], - 'Required when AEP acquiring is incomplete' - ); - - // number of attempts - $this->addSelect( - "mmn_attempts", - "Number of attempts", - $attemptsOptions - ); - $this->XINRegisterRule( - 'mmn_attempts', - ['paradigm_mmn_used{@}=={@}yes'], - 'Required when MMN is used' - ); - - // mood - $this->addSelect( - "mmn_eeg_mood_rating", - $this->indent . "MMN EEG Mood Rating", - $moodRatingOptions - ); - $this->XINRegisterRule( - 'mmn_eeg_mood_rating', - ['paradigm_mmn_used{@}=={@}yes'], - 'Required when MMN is used' - ); - $this->addBasicTextArea( - "mmn_eeg_mood_rating_comments", - $this->indent . "Any comment on the mood?", - $textAreaOptions - ); - $this->XINRegisterRule( - 'mmn_eeg_mood_rating_comments', - ["mmn_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED"], - "Not Required" - ); - - // comments - $this->addBasicTextArea( - "mmn_comments", - $this->indent . "Any comment on the MMN task?", - $textAreaOptions - ); - $this->XINRegisterRule( - 'mmn_comments', - ["mmn_comments{@}=={@}NEVER_REQUIRED"], - "Not Required" - ); - - - - - - /// ==== Faces task - - $this->form->addStatic( - null, - "

Faces task

" - ); - - $this->addSelect( - "paradigm_faces_used", - "Human Faces paradigm used?", - $yesNoOnlyOptions - ); - - $this->form->addElement( - 'static', - null, - "
*scroll through all channels to check for good signal after starting video
- (if bad signal: pause task, continue task when signal looks good in recording)
" - ); - - // resting state acquired - $this->addSelect( - "faces_eeg_acquired", - "Faces EEG Acquired?", - [ - null => "", - "not_started" => "Not Started", - "complete" => "Complete", - "incomplete" => "Incomplete", - ] - ); - $this->XINRegisterRule( - 'faces_eeg_acquired', - ['paradigm_faces_used{@}=={@}yes'], - 'Required when Faces is used' - ); - $this->addBasicTextArea( - "faces_eeg_incomplete_reason", - $this->indent . "If Incomplete, why were you unable to complete the task?", - $textAreaOptions - ); - $this->XINRegisterRule( - 'faces_eeg_incomplete_reason', - ['faces_eeg_acquired{@}=={@}incomplete'], - 'Required when Faces acquiring is incomplete' - ); - - // number of attempts - $this->addSelect( - "faces_attempts", - "Number of attempts", - $attemptsOptions - ); - $this->XINRegisterRule( - 'faces_attempts', - ['paradigm_faces_used{@}=={@}yes'], - 'Required when Faces is used' - ); - - // mood - $this->addSelect( - "faces_eeg_mood_rating", - $this->indent . "Faces EEG Mood Rating", - $moodRatingOptions - ); - $this->XINRegisterRule( - 'faces_eeg_mood_rating', - ['paradigm_faces_used{@}=={@}yes'], - 'Required when Faces is used' - ); - $this->addBasicTextArea( - "faces_eeg_mood_rating_comments", - $this->indent . "Any comment on the mood?", - $textAreaOptions - ); - $this->XINRegisterRule( - 'faces_eeg_mood_rating_comments', - ["faces_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED"], - "Not Required" - ); - - // comments - $this->addBasicTextArea( - "faces_comments", - $this->indent . "Any comment on the Faces task?", - $textAreaOptions - ); - $this->XINRegisterRule( - 'faces_comments', - ["faces_comments{@}=={@}NEVER_REQUIRED"], - "Not Required" - ); - - // ============================= - // ==== D. General comments - $this->form->addStatic( - null, - "

General session comments and notes

" - ); - - // general notes and comments - $this->addBasicTextArea( - "general_comments", - "General session notes, any important details (e.g. technical error, issue with net, etc.)", - $textAreaOptions - ); - $this->XINRegisterRule( - 'general_comments', - ["general_comments{@}=={@}NEVER_REQUIRED"], - "Not Required" - ); - } -} From f01c95ca98127ac3214c7b07fc70c4284491ee30 Mon Sep 17 00:00:00 2001 From: regisoc Date: Mon, 20 Mar 2023 10:35:18 -0400 Subject: [PATCH 03/18] add meta and rules, json storage --- .../instruments/EEG_Acquisition_form.meta | 2 +- .../instruments/EEG_Acquisition_form.rules | 45 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 raisinbread/instruments/EEG_Acquisition_form.rules diff --git a/raisinbread/instruments/EEG_Acquisition_form.meta b/raisinbread/instruments/EEG_Acquisition_form.meta index a40d0ec8434..6c5d2dfc201 100644 --- a/raisinbread/instruments/EEG_Acquisition_form.meta +++ b/raisinbread/instruments/EEG_Acquisition_form.meta @@ -1,3 +1,3 @@ testname{@}EEG_Acquisition_form table{@}EEG_Acquisition_form -jsondata{@}false \ No newline at end of file +jsondata{@}true \ No newline at end of file diff --git a/raisinbread/instruments/EEG_Acquisition_form.rules b/raisinbread/instruments/EEG_Acquisition_form.rules new file mode 100644 index 00000000000..048c160b16e --- /dev/null +++ b/raisinbread/instruments/EEG_Acquisition_form.rules @@ -0,0 +1,45 @@ +research_staff_two{-}Not Required{-}research_staff_two{@}=={@}NEVER_REQUIRED +research_staff_three{-}Not Required{-}research_staff_three{@}=={@}NEVER_REQUIRED +session_testing_room{-}Not Required{-}session_testing_room{@}=={@}NEVER_REQUIRED +subject_behavioral_assistant{-}Required if there is a behavioural assistant{-}subject_behavioral_assistant_present{@}=={@}yes +subject_medication_dosage{-}Required if there is an ongoing medication{-}subject_medication{@}=={@}yes +participant_away_60cm_from_monitor_reason{-}Required if participant cannot be 60cm away from montior{-}participant_away_60cm_from_monitor{@}=={@}no +impedance_measure{-}Required when impedance is measured{-}impedance_measured_before_netting{@}=={@}yes +bad_channels{-}Required when bad channels are present{-}bad_channels_measured_after_netting{@}=={@}yes +net_placement_comment{-}Required when net placement is not available{-}net_placement{@}=={@}na +acquisition_software_other{-}Required when acquisition software is other{-}acquisition_software{@}=={@}other +recording_reference_other{-}Required when recording reference is other{-}recording_reference{@}=={@}other +eog_channels_other{-}Required when EOG channels is other{-}eog_channels{@}=={@}other +artefacted_channels{-}Not Required{-}artefacted_channels{@}=={@}NEVER_REQUIRED +bad_electrode{-}Required when bad electrodes are present{-}bad_electrodes_present{@}=={@}yes +hardware_filters_applied{-}Not Required{-}hardware_filters_applied{@}=={@}NEVER_REQUIRED +software_filters_applied{-}Not Required{-}software_filters_applied{@}=={@}NEVER_REQUIRED +resting_state_eeg_incomplete_reason{-}Required when resting state acquiring is incomplete{-}resting_state_eeg_acquired{@}=={@}incomplete +resting_state_eeg_mood_rating_comments{-}Not Required{-}resting_state_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED +resting_state_comments{-}Not Required{-}resting_state_comments{@}=={@}NEVER_REQUIRED +vep_eeg_acquire{-}Required when VEP is used{-}paradigm_vep_used{@}=={@}yes +vep_eeg_incomplete_reason{-}Required when VEP acquiring is incomplete{-}vep_eeg_acquired{@}=={@}incomplete +vep_attempt{-}Required when VEP is used{-}paradigm_vep_used{@}=={@}yes +vep_eeg_mood_ratin{-}Required when VEP is used{-}paradigm_vep_used{@}=={@}yes +vep_eeg_mood_rating_comments{-}Not Required{-}vep_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED +vep_comments{-}Not Required{-}vep_comments{@}=={@}NEVER_REQUIRED +aep_eeg_acquire{-}Required when AEP is used{-}paradigm_aep_used{@}=={@}yes +aep_eeg_incomplete_reason{-}Required when AEP acquiring is incomplete{-}aep_eeg_acquired{@}=={@}incomplete +aep_attempt{-}Required when AEP is used{-}paradigm_aep_used{@}=={@}yes +aep_eeg_mood_ratin{-}Required when AEP is used{-}paradigm_aep_used{@}=={@}yes +aep_eeg_mood_rating_comments{-}Not Required{-}aep_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED +aep_comments{-}Not Required{-}aep_comments{@}=={@}NEVER_REQUIRED +mmn_eeg_acquire{-}Required when MMN is used{-}paradigm_mmn_used{@}=={@}yes +mmn_eeg_incomplete_reason{-}Required when AEP acquiring is incomplete{-}mmn_eeg_acquired{@}=={@}incomplete +mmn_attempt{-}Required when MMN is used{-}paradigm_mmn_used{@}=={@}yes +mmn_eeg_mood_ratin{-}Required when MMN is used{-}paradigm_mmn_used{@}=={@}yes +mmn_eeg_mood_rating_comments{-}Not Required{-}mmn_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED +mmn_comments{-}Not Required{-}mmn_comments{@}=={@}NEVER_REQUIRED +faces_eeg_acquire{-}Required when Faces is used{-}paradigm_faces_used{@}=={@}yes +faces_eeg_incomplete_reason{-}Required when Faces acquiring is incomplete{-}faces_eeg_acquired{@}=={@}incomplete +faces_attempt{-}Required when Faces is used{-}paradigm_faces_used{@}=={@}yes +faces_eeg_mood_ratin{-}Required when Faces is used{-}paradigm_faces_used{@}=={@}yes +faces_eeg_mood_rating_comments{-}Not Required{-}faces_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED +faces_comments{-}Not Required{-}faces_comments{@}=={@}NEVER_REQUIRED +general_comments{-}Not Required{-}general_comments{@}=={@}NEVER_REQUIRED + \ No newline at end of file From d7d44c050f70c3cdad53fb9ee903f41990d24451 Mon Sep 17 00:00:00 2001 From: regisoc Date: Tue, 21 Mar 2023 10:40:22 -0400 Subject: [PATCH 04/18] remove empty final line --- raisinbread/instruments/EEG_Acquisition_form.linst | 4 +--- raisinbread/instruments/EEG_Acquisition_form.rules | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/raisinbread/instruments/EEG_Acquisition_form.linst b/raisinbread/instruments/EEG_Acquisition_form.linst index 23f4745dd9b..b2870130bc2 100644 --- a/raisinbread/instruments/EEG_Acquisition_form.linst +++ b/raisinbread/instruments/EEG_Acquisition_form.linst @@ -1,5 +1,3 @@ -testname{@}EEG_Acquisition_form -table{@}EEG_Acquisition_form title{@}EEG_Acquisition_form header{@}{@}EEG Acquisition form date{@}Date_taken{@}Date of Administration{@}{@} @@ -94,4 +92,4 @@ select{@}faces_eeg_mood_rating{@}Faces EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Sc textarea{@}faces_eeg_mood_rating_comments{@}Any comment on the mood? textarea{@}faces_comments{@}Any comment on the Faces task? header{@}{@}

General session comments and notes

-textarea{@}general_comments{@}General session notes, any important details (e.g. technical error, issue with net, etc.) +textarea{@}general_comments{@}General session notes, any important details (e.g. technical error, issue with net, etc.) \ No newline at end of file diff --git a/raisinbread/instruments/EEG_Acquisition_form.rules b/raisinbread/instruments/EEG_Acquisition_form.rules index 048c160b16e..fbc02d7162d 100644 --- a/raisinbread/instruments/EEG_Acquisition_form.rules +++ b/raisinbread/instruments/EEG_Acquisition_form.rules @@ -41,5 +41,4 @@ faces_attempt{-}Required when Faces is used{-}paradigm_faces_used{@}=={@}yes faces_eeg_mood_ratin{-}Required when Faces is used{-}paradigm_faces_used{@}=={@}yes faces_eeg_mood_rating_comments{-}Not Required{-}faces_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED faces_comments{-}Not Required{-}faces_comments{@}=={@}NEVER_REQUIRED -general_comments{-}Not Required{-}general_comments{@}=={@}NEVER_REQUIRED - \ No newline at end of file +general_comments{-}Not Required{-}general_comments{@}=={@}NEVER_REQUIRED \ No newline at end of file From 12ee350ebbd4a743f52f3e657633e1edd94813a7 Mon Sep 17 00:00:00 2001 From: regisoc Date: Tue, 21 Mar 2023 14:57:27 -0400 Subject: [PATCH 05/18] christine's comments --- .../instruments/EEG_Acquisition_form.linst | 109 ++++++++---------- .../instruments/EEG_Acquisition_form.meta | 2 +- .../instruments/EEG_Acquisition_form.rules | 52 ++++----- 3 files changed, 78 insertions(+), 85 deletions(-) diff --git a/raisinbread/instruments/EEG_Acquisition_form.linst b/raisinbread/instruments/EEG_Acquisition_form.linst index b2870130bc2..48d5620ea09 100644 --- a/raisinbread/instruments/EEG_Acquisition_form.linst +++ b/raisinbread/instruments/EEG_Acquisition_form.linst @@ -1,33 +1,33 @@ -title{@}EEG_Acquisition_form -header{@}{@}EEG Acquisition form +title{@}EEG Acquisition Form date{@}Date_taken{@}Date of Administration{@}{@} static{@}Candidate_Age{@}Candidate Age (Months) static{@}Window_Difference{@}Window Difference (+/- Days) select{@}Examiner{@}Examiner{@} -header{@}{@}

General informations

+textarea{@}general_comments{@}General session notes, any important details (e.g. technical error, issue with net, etc.) +header{@}{@}

General information

text{@}research_staff_one{@}Research staff 1 initials text{@}research_staff_two{@}Research staff 2 initials text{@}research_staff_three{@}Research staff 3 initials text{@}session_testing_room{@}Testing room information -select{@}subject_behavioral_assistant_present{@}Is there a behavioral assistant?{@}'yes'=>'Yes'{-}'no'=>'No' -text{@}subject_behavioral_assistant{@}Subject Behavioral assistant initials +select{@}behavioural_assistant_present{@}Is there a behavioural assistant?{@}'yes'=>'Yes'{-}'no'=>'No' +text{@}behavioural_assistant{@}Behavioural assistant initials select{@}subject_medication{@}Is subject under medication?{@}'yes'=>'Yes'{-}'no'=>'No' textarea{@}subject_medication_dosage{@}Describe the medication and dosage select{@}head_measurement_unit{@}What is the unit used for head measurement?{@}'cm'=>'Centimeters (cm)'{-}'in'=>'Inches (in)' -text{@}head_measurement{@}What is the head measurement value? +numeric{@}head_measurement{@}What is the head measurement value? select{@}head_measurement_status{@}What is the head measurement value?{@}NULL=>''{-}'not_answered'=>'Not Answered' -select{@}ekg_collected{@}EKG Collected?{@}'yes'=>'Yes'{-}'no'=>'No' -select{@}participant_away_60cm_from_monitor{@}Participant is 60cm away from monitor?{@}'yes'=>'Yes'{-}'no'=>'No' -textarea{@}participant_away_60cm_from_monitor_reason{@}If No, please explain the reason -header{@}{@}

Net informations

-text{@}net_id{@}What is the net identifier? +select{@}ecg_collected{@}ECG Collected?{@}'yes'=>'Yes'{-}'no'=>'No' +select{@}subject_away_60cm_from_monitor{@}Subject is 60cm away from monitor?{@}'yes'=>'Yes'{-}'no'=>'No' +textarea{@}subject_away_60cm_from_monitor_reason{@}If No, please explain the reason +header{@}{@}

Net information

+text{@}net_id{@}Net ID: select{@}impedance_measured_before_netting{@}Impedances measure before netting?{@}'yes'=>'Yes'{-}'no'=>'No' -text{@}impedance_measure{@}Register the impedance measured +numeric{@}impedance_measure{@}Impedance measured: select{@}bad_channels_measured_after_netting{@}Bad channels measured after netting?{@}'yes'=>'Yes'{-}'no'=>'No' -textarea{@}bad_channels{@}Register all bad channels -header{@}{@}
For net placement question:
Excellent - meets all criteria for proper net placement.
Average - any 1-2cm shift from proper placement (1 pinky finger width distance).
Poor - any >2 cm shift from proper placement (>1 pinky finger width distance).
+textarea{@}bad_channels{@}Bad channels: +header{@}{@}
About net placement:
Excellent - meets all criteria for proper net placement.
Average - 1-2cm shift from proper placement (1 pinky finger width distance).
Poor - >2 cm shift from proper placement (>1 pinky finger width distance).
select{@}net_placement{@}Net placement{@}'na'=>'n/a'{-}'excellent'=>'Excellent'{-}'average'=>'Average'{-}'poor'=>'Poor' -textarea{@}net_placement_comment{@}Any comment on net placement +textarea{@}net_placement_comment{@}Comments on net placement select{@}net_placement_photos_taken{@}Placement photos taken?{@}'yes'=>'Yes'{-}'no'=>'No' select{@}acquisition_software{@}Acquisition software used{@}'eemagine'=>'Eemagine'{-}'neuro_scan'=>'(Neuro)scan'{-}'insep'=>'InsEP'{-}'biosemi'=>'BioSemi'{-}'netstation'=>'NetStation'{-}'brain_vision_recorder'=>'Brain Vision Recorder'{-}'emotiv'=>'Emotiv'{-}'actiview605_lores'=>'ActiView605-Lores'{-}'eeprobe'=>'EEProbe'{-}'tmsi'=>'TMSi'{-}'other'=>'Other' text{@}acquisition_software_other{@}If other, please specify @@ -44,52 +44,45 @@ textarea{@}bad_electrodes{@}If Yes, please register all bad electrodes textarea{@}hardware_filters_applied{@}What hardware filters were applied before acquisition? textarea{@}software_filters_applied{@}What software filters were applied during acquisition? time{@}eeg_session_start_time{@}EEG session Start time -select{@}eeg_session_start_time_status{@}EEG session Start time{@}NULL=>''{-}'dnk'=>'DNK'{-}'refusal'=>'Refusal'{-}'not_answered'=>'Not Answered' +select{@}eeg_session_start_time_status{@}EEG session Start time{@}NULL=>''{-}'dnk'=>'DNK'{-}'not_answered'=>'Not Answered' time{@}eeg_session_end_time{@}EEG session End time -select{@}eeg_session_end_time_status{@}EEG session End time{@}NULL=>''{-}'dnk'=>'DNK'{-}'refusal'=>'Refusal'{-}'not_answered'=>'Not Answered' +select{@}eeg_session_end_time_status{@}EEG session End time{@}NULL=>''{-}'dnk'=>'DNK'{-}'not_answered'=>'Not Answered' header{@}{@}

Resting state task

-header{@}{@}
*scroll through all channels to check for good signal after starting video
(if bad signal: pause task, continue task when signal looks good in recording)
select{@}resting_state_eeg_acquired{@}Resting State EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' textarea{@}resting_state_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? select{@}resting_state_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' select{@}resting_state_eeg_mood_rating{@}Resting State EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' -textarea{@}resting_state_eeg_mood_rating_comments{@}Any comment on the mood? -textarea{@}resting_state_comments{@}Any comment on the resting state? -header{@}{@}

VEP task

-select{@}paradigm_vep_used{@}VEP paradigm used?{@}'yes'=>'Yes'{-}'no'=>'No' -header{@}{@}
*scroll through all channels to check for good signal after starting video
(if bad signal: pause task, continue task when signal looks good in recording)
-select{@}vep_eeg_acquired{@}VEP EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' -textarea{@}vep_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? -select{@}vep_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' -select{@}vep_eeg_mood_rating{@}VEP EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' -textarea{@}vep_eeg_mood_rating_comments{@}Any comment on the mood? -textarea{@}vep_comments{@}Any comment on the VEP task? -header{@}{@}

AEP task

-select{@}paradigm_aep_used{@}AEP paradigm used?{@}'yes'=>'Yes'{-}'no'=>'No' -header{@}{@}
*scroll through all channels to check for good signal after starting video
(if bad signal: pause task, continue task when signal looks good in recording)
-select{@}aep_eeg_acquired{@}AEP EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' -textarea{@}aep_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? -select{@}aep_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' -select{@}aep_eeg_mood_rating{@}AEP EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' -textarea{@}aep_eeg_mood_rating_comments{@}Any comment on the mood? -textarea{@}aep_comments{@}Any comment on the AEP task? -header{@}{@}

MMN task

-select{@}paradigm_mmn_used{@}MMN paradigm used?{@}'yes'=>'Yes'{-}'no'=>'No' -header{@}{@}
*scroll through all channels to check for good signal after starting video
(if bad signal: pause task, continue task when signal looks good in recording)
-select{@}mmn_eeg_acquired{@}MMN EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' -textarea{@}mmn_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? -select{@}mmn_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' -select{@}mmn_eeg_mood_rating{@}MMN EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' -textarea{@}mmn_eeg_mood_rating_comments{@}Any comment on the mood? -textarea{@}mmn_comments{@}Any comment on the MMN task? -header{@}{@}

Faces task

-select{@}paradigm_faces_used{@}Human Faces paradigm used?{@}'yes'=>'Yes'{-}'no'=>'No' -header{@}{@}
*scroll through all channels to check for good signal after starting video
(if bad signal: pause task, continue task when signal looks good in recording)
-select{@}faces_eeg_acquired{@}Faces EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' -textarea{@}faces_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? -select{@}faces_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' -select{@}faces_eeg_mood_rating{@}Faces EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' -textarea{@}faces_eeg_mood_rating_comments{@}Any comment on the mood? -textarea{@}faces_comments{@}Any comment on the Faces task? -header{@}{@}

General session comments and notes

-textarea{@}general_comments{@}General session notes, any important details (e.g. technical error, issue with net, etc.) \ No newline at end of file +textarea{@}resting_state_eeg_mood_rating_comments{@}Comments on subject mood: +textarea{@}resting_state_comments{@}Comments on the resting state: +header{@}{@}

Task 1: VEP

+select{@}task1_paradigm_used{@}VEP paradigm used?{@}'yes'=>'Yes'{-}'no'=>'No' +select{@}task1_eeg_acquired{@}Task 1 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' +textarea{@}task1_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? +select{@}task1_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' +select{@}task1_eeg_mood_rating{@}Task 1 EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' +textarea{@}task1_eeg_mood_rating_comments{@}Comments on subject mood: +textarea{@}task1_comments{@}Comments on the task 1: +header{@}{@}

Task 2: AEP

+select{@}task2_paradigm_used{@}AEP paradigm used?{@}'yes'=>'Yes'{-}'no'=>'No' +select{@}task2_eeg_acquired{@}Task 2 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' +textarea{@}task2_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? +select{@}task2_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' +select{@}task2_eeg_mood_rating{@}Task 2 EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' +textarea{@}task2_eeg_mood_rating_comments{@}Comments on subject mood: +textarea{@}task2_comments{@}Comments on the task 2: +header{@}{@}

Task 3: MMN

+select{@}task3_paradigm_used{@}MMN paradigm used?{@}'yes'=>'Yes'{-}'no'=>'No' +select{@}task3_eeg_acquired{@}Task 3 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' +textarea{@}task3_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? +select{@}task3_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' +select{@}task3_eeg_mood_rating{@}Task 3 EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' +textarea{@}task3_eeg_mood_rating_comments{@}Comments on subject mood: +textarea{@}task3_comments{@}Comments on the task 3: +header{@}{@}

Task 4: Faces

+select{@}task4_paradigm_used{@}Human Faces paradigm used?{@}'yes'=>'Yes'{-}'no'=>'No' +select{@}task4_eeg_acquired{@}Task 4 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' +textarea{@}task4_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? +select{@}task4_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' +select{@}task4_eeg_mood_rating{@}Task 4 EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' +textarea{@}task4_eeg_mood_rating_comments{@}Comments on subject mood: +textarea{@}task4_comments{@}Comments on the task 4: \ No newline at end of file diff --git a/raisinbread/instruments/EEG_Acquisition_form.meta b/raisinbread/instruments/EEG_Acquisition_form.meta index 6c5d2dfc201..37aa89b3165 100644 --- a/raisinbread/instruments/EEG_Acquisition_form.meta +++ b/raisinbread/instruments/EEG_Acquisition_form.meta @@ -1,3 +1,3 @@ testname{@}EEG_Acquisition_form -table{@}EEG_Acquisition_form +table{@}eeg_acquisition_form jsondata{@}true \ No newline at end of file diff --git a/raisinbread/instruments/EEG_Acquisition_form.rules b/raisinbread/instruments/EEG_Acquisition_form.rules index fbc02d7162d..5ea6cb85639 100644 --- a/raisinbread/instruments/EEG_Acquisition_form.rules +++ b/raisinbread/instruments/EEG_Acquisition_form.rules @@ -1,7 +1,8 @@ +general_comments{-}Not Required{-}general_comments{@}=={@}NEVER_REQUIRED research_staff_two{-}Not Required{-}research_staff_two{@}=={@}NEVER_REQUIRED research_staff_three{-}Not Required{-}research_staff_three{@}=={@}NEVER_REQUIRED session_testing_room{-}Not Required{-}session_testing_room{@}=={@}NEVER_REQUIRED -subject_behavioral_assistant{-}Required if there is a behavioural assistant{-}subject_behavioral_assistant_present{@}=={@}yes +behavioural_assistant{-}Required if there is a behavioural assistant{-}behavioural_assistant_present{@}=={@}yes subject_medication_dosage{-}Required if there is an ongoing medication{-}subject_medication{@}=={@}yes participant_away_60cm_from_monitor_reason{-}Required if participant cannot be 60cm away from montior{-}participant_away_60cm_from_monitor{@}=={@}no impedance_measure{-}Required when impedance is measured{-}impedance_measured_before_netting{@}=={@}yes @@ -17,28 +18,27 @@ software_filters_applied{-}Not Required{-}software_filters_applied{@}=={@}NEVER_ resting_state_eeg_incomplete_reason{-}Required when resting state acquiring is incomplete{-}resting_state_eeg_acquired{@}=={@}incomplete resting_state_eeg_mood_rating_comments{-}Not Required{-}resting_state_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED resting_state_comments{-}Not Required{-}resting_state_comments{@}=={@}NEVER_REQUIRED -vep_eeg_acquire{-}Required when VEP is used{-}paradigm_vep_used{@}=={@}yes -vep_eeg_incomplete_reason{-}Required when VEP acquiring is incomplete{-}vep_eeg_acquired{@}=={@}incomplete -vep_attempt{-}Required when VEP is used{-}paradigm_vep_used{@}=={@}yes -vep_eeg_mood_ratin{-}Required when VEP is used{-}paradigm_vep_used{@}=={@}yes -vep_eeg_mood_rating_comments{-}Not Required{-}vep_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED -vep_comments{-}Not Required{-}vep_comments{@}=={@}NEVER_REQUIRED -aep_eeg_acquire{-}Required when AEP is used{-}paradigm_aep_used{@}=={@}yes -aep_eeg_incomplete_reason{-}Required when AEP acquiring is incomplete{-}aep_eeg_acquired{@}=={@}incomplete -aep_attempt{-}Required when AEP is used{-}paradigm_aep_used{@}=={@}yes -aep_eeg_mood_ratin{-}Required when AEP is used{-}paradigm_aep_used{@}=={@}yes -aep_eeg_mood_rating_comments{-}Not Required{-}aep_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED -aep_comments{-}Not Required{-}aep_comments{@}=={@}NEVER_REQUIRED -mmn_eeg_acquire{-}Required when MMN is used{-}paradigm_mmn_used{@}=={@}yes -mmn_eeg_incomplete_reason{-}Required when AEP acquiring is incomplete{-}mmn_eeg_acquired{@}=={@}incomplete -mmn_attempt{-}Required when MMN is used{-}paradigm_mmn_used{@}=={@}yes -mmn_eeg_mood_ratin{-}Required when MMN is used{-}paradigm_mmn_used{@}=={@}yes -mmn_eeg_mood_rating_comments{-}Not Required{-}mmn_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED -mmn_comments{-}Not Required{-}mmn_comments{@}=={@}NEVER_REQUIRED -faces_eeg_acquire{-}Required when Faces is used{-}paradigm_faces_used{@}=={@}yes -faces_eeg_incomplete_reason{-}Required when Faces acquiring is incomplete{-}faces_eeg_acquired{@}=={@}incomplete -faces_attempt{-}Required when Faces is used{-}paradigm_faces_used{@}=={@}yes -faces_eeg_mood_ratin{-}Required when Faces is used{-}paradigm_faces_used{@}=={@}yes -faces_eeg_mood_rating_comments{-}Not Required{-}faces_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED -faces_comments{-}Not Required{-}faces_comments{@}=={@}NEVER_REQUIRED -general_comments{-}Not Required{-}general_comments{@}=={@}NEVER_REQUIRED \ No newline at end of file +task1_eeg_acquire{-}Required when Task 1 is used{-}task1_paradigm_used{@}=={@}yes +task1_eeg_incomplete_reason{-}Required when task 1 acquiring is incomplete{-}task1_eeg_acquired{@}=={@}incomplete +task1_attempt{-}Required when Task 1 is used{-}task1_paradigm_used{@}=={@}yes +task1_eeg_mood_ratin{-}Required when Task 1 is used{-}task1_paradigm_used{@}=={@}yes +task1_eeg_mood_rating_comments{-}Not Required{-}task1_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED +task1_comments{-}Not Required{-}vep_comments{@}=={@}NEVER_REQUIRED +task2_eeg_acquire{-}Required when Task 2 is used{-}task2_paradigm_used{@}=={@}yes +task2_eeg_incomplete_reason{-}Required when task 2 acquiring is incomplete{-}task2_eeg_acquired{@}=={@}incomplete +task2_attempt{-}Required when Task 2 is used{-}task2_paradigm_used{@}=={@}yes +task2_eeg_mood_ratin{-}Required when Task 2 is used{-}task2_paradigm_used{@}=={@}yes +task2_eeg_mood_rating_comments{-}Not Required{-}task2_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED +task2_comments{-}Not Required{-}aep_comments{@}=={@}NEVER_REQUIRED +task3_eeg_acquire{-}Required when Task 3 is used{-}task3_paradigm_used{@}=={@}yes +task3_eeg_incomplete_reason{-}Required when task 3 acquiring is incomplete{-}task3_eeg_acquired{@}=={@}incomplete +task3_attempt{-}Required when Task 3 is used{-}task3_paradigm_used{@}=={@}yes +task3_eeg_mood_ratin{-}Required when Task 3 is used{-}task3_paradigm_used{@}=={@}yes +task3_eeg_mood_rating_comments{-}Not Required{-}task3_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED +task3_comments{-}Not Required{-}mmn_comments{@}=={@}NEVER_REQUIRED +task4_eeg_acquire{-}Required when Task 4 is used{-}task4_paradigm_used{@}=={@}yes +task4_eeg_incomplete_reason{-}Required when task 4 acquiring is incomplete{-}task4_eeg_acquired{@}=={@}incomplete +task4_attempt{-}Required when Task 4 is used{-}task4_paradigm_used{@}=={@}yes +task4_eeg_mood_ratin{-}Required when Task 4 is used{-}task4_paradigm_used{@}=={@}yes +task4_eeg_mood_rating_comments{-}Not Required{-}task4_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED +task4_comments{-}Not Required{-}faces_comments{@}=={@}NEVER_REQUIRED \ No newline at end of file From 9052fe3c32a3f714b2b900021e72f9c92dc6edbd Mon Sep 17 00:00:00 2001 From: regisoc Date: Tue, 21 Mar 2023 15:57:03 -0400 Subject: [PATCH 06/18] testname --- raisinbread/instruments/EEG_Acquisition_form.meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/raisinbread/instruments/EEG_Acquisition_form.meta b/raisinbread/instruments/EEG_Acquisition_form.meta index 37aa89b3165..c20b377841a 100644 --- a/raisinbread/instruments/EEG_Acquisition_form.meta +++ b/raisinbread/instruments/EEG_Acquisition_form.meta @@ -1,3 +1,3 @@ -testname{@}EEG_Acquisition_form +testname{@}eeg_acquisition_form table{@}eeg_acquisition_form jsondata{@}true \ No newline at end of file From 6f24e04efab2fe55b9849e8213a01b1715d1ae97 Mon Sep 17 00:00:00 2001 From: regisoc Date: Tue, 21 Mar 2023 16:07:23 -0400 Subject: [PATCH 07/18] rename --- .../{EEG_Acquisition_form.linst => eeg_acquisition_form.linst} | 0 .../{EEG_Acquisition_form.meta => eeg_acquisition_form.meta} | 0 .../{EEG_Acquisition_form.rules => eeg_acquisition_form.rules} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename raisinbread/instruments/{EEG_Acquisition_form.linst => eeg_acquisition_form.linst} (100%) rename raisinbread/instruments/{EEG_Acquisition_form.meta => eeg_acquisition_form.meta} (100%) rename raisinbread/instruments/{EEG_Acquisition_form.rules => eeg_acquisition_form.rules} (100%) diff --git a/raisinbread/instruments/EEG_Acquisition_form.linst b/raisinbread/instruments/eeg_acquisition_form.linst similarity index 100% rename from raisinbread/instruments/EEG_Acquisition_form.linst rename to raisinbread/instruments/eeg_acquisition_form.linst diff --git a/raisinbread/instruments/EEG_Acquisition_form.meta b/raisinbread/instruments/eeg_acquisition_form.meta similarity index 100% rename from raisinbread/instruments/EEG_Acquisition_form.meta rename to raisinbread/instruments/eeg_acquisition_form.meta diff --git a/raisinbread/instruments/EEG_Acquisition_form.rules b/raisinbread/instruments/eeg_acquisition_form.rules similarity index 100% rename from raisinbread/instruments/EEG_Acquisition_form.rules rename to raisinbread/instruments/eeg_acquisition_form.rules From d7f57636a3f58fd804ca68ec4ca9f31c3993503c Mon Sep 17 00:00:00 2001 From: regisoc Date: Tue, 21 Mar 2023 16:26:52 -0400 Subject: [PATCH 08/18] anonymous tasks --- .../instruments/eeg_acquisition_form.linst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/raisinbread/instruments/eeg_acquisition_form.linst b/raisinbread/instruments/eeg_acquisition_form.linst index 48d5620ea09..3e75cb07f6b 100644 --- a/raisinbread/instruments/eeg_acquisition_form.linst +++ b/raisinbread/instruments/eeg_acquisition_form.linst @@ -54,32 +54,32 @@ select{@}resting_state_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2' select{@}resting_state_eeg_mood_rating{@}Resting State EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' textarea{@}resting_state_eeg_mood_rating_comments{@}Comments on subject mood: textarea{@}resting_state_comments{@}Comments on the resting state: -header{@}{@}

Task 1: VEP

-select{@}task1_paradigm_used{@}VEP paradigm used?{@}'yes'=>'Yes'{-}'no'=>'No' +header{@}{@}

Task 1

+select{@}task1_paradigm_used{@}Task 1 used?{@}'yes'=>'Yes'{-}'no'=>'No' select{@}task1_eeg_acquired{@}Task 1 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' textarea{@}task1_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? select{@}task1_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' select{@}task1_eeg_mood_rating{@}Task 1 EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' textarea{@}task1_eeg_mood_rating_comments{@}Comments on subject mood: textarea{@}task1_comments{@}Comments on the task 1: -header{@}{@}

Task 2: AEP

-select{@}task2_paradigm_used{@}AEP paradigm used?{@}'yes'=>'Yes'{-}'no'=>'No' +header{@}{@}

Task 2

+select{@}task2_paradigm_used{@}Task 2 used?{@}'yes'=>'Yes'{-}'no'=>'No' select{@}task2_eeg_acquired{@}Task 2 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' textarea{@}task2_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? select{@}task2_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' select{@}task2_eeg_mood_rating{@}Task 2 EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' textarea{@}task2_eeg_mood_rating_comments{@}Comments on subject mood: textarea{@}task2_comments{@}Comments on the task 2: -header{@}{@}

Task 3: MMN

-select{@}task3_paradigm_used{@}MMN paradigm used?{@}'yes'=>'Yes'{-}'no'=>'No' +header{@}{@}

Task 3

+select{@}task3_paradigm_used{@}Task 3 used?{@}'yes'=>'Yes'{-}'no'=>'No' select{@}task3_eeg_acquired{@}Task 3 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' textarea{@}task3_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? select{@}task3_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' select{@}task3_eeg_mood_rating{@}Task 3 EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' textarea{@}task3_eeg_mood_rating_comments{@}Comments on subject mood: textarea{@}task3_comments{@}Comments on the task 3: -header{@}{@}

Task 4: Faces

-select{@}task4_paradigm_used{@}Human Faces paradigm used?{@}'yes'=>'Yes'{-}'no'=>'No' +header{@}{@}

Task 4

+select{@}task4_paradigm_used{@}Task 4 used?{@}'yes'=>'Yes'{-}'no'=>'No' select{@}task4_eeg_acquired{@}Task 4 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' textarea{@}task4_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? select{@}task4_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' From 602657c241e86b36b07ef99f43120dcc28a0848e Mon Sep 17 00:00:00 2001 From: regisoc Date: Thu, 23 Mar 2023 08:53:57 -0400 Subject: [PATCH 09/18] missing a participant -> subject change --- raisinbread/instruments/eeg_acquisition_form.rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/raisinbread/instruments/eeg_acquisition_form.rules b/raisinbread/instruments/eeg_acquisition_form.rules index 5ea6cb85639..28859efe622 100644 --- a/raisinbread/instruments/eeg_acquisition_form.rules +++ b/raisinbread/instruments/eeg_acquisition_form.rules @@ -4,7 +4,7 @@ research_staff_three{-}Not Required{-}research_staff_three{@}=={@}NEVER_REQUIRED session_testing_room{-}Not Required{-}session_testing_room{@}=={@}NEVER_REQUIRED behavioural_assistant{-}Required if there is a behavioural assistant{-}behavioural_assistant_present{@}=={@}yes subject_medication_dosage{-}Required if there is an ongoing medication{-}subject_medication{@}=={@}yes -participant_away_60cm_from_monitor_reason{-}Required if participant cannot be 60cm away from montior{-}participant_away_60cm_from_monitor{@}=={@}no +subject_away_60cm_from_monitor{-}Required if subject cannot be 60cm away from montior{-}participant_away_60cm_from_monitor{@}=={@}no impedance_measure{-}Required when impedance is measured{-}impedance_measured_before_netting{@}=={@}yes bad_channels{-}Required when bad channels are present{-}bad_channels_measured_after_netting{@}=={@}yes net_placement_comment{-}Required when net placement is not available{-}net_placement{@}=={@}na From 140f1094b92c8a43e478287b63430463d6cee884 Mon Sep 17 00:00:00 2001 From: regisoc Date: Fri, 31 Mar 2023 15:09:12 -0400 Subject: [PATCH 10/18] christine's comments --- .../instruments/eeg_acquisition_form.linst | 51 +++++++++---------- .../instruments/eeg_acquisition_form.rules | 31 ++++------- 2 files changed, 34 insertions(+), 48 deletions(-) diff --git a/raisinbread/instruments/eeg_acquisition_form.linst b/raisinbread/instruments/eeg_acquisition_form.linst index 3e75cb07f6b..eba612fb0ad 100644 --- a/raisinbread/instruments/eeg_acquisition_form.linst +++ b/raisinbread/instruments/eeg_acquisition_form.linst @@ -9,26 +9,27 @@ text{@}research_staff_one{@}Research staff 1 initials text{@}research_staff_two{@}Research staff 2 initials text{@}research_staff_three{@}Research staff 3 initials text{@}session_testing_room{@}Testing room information -select{@}behavioural_assistant_present{@}Is there a behavioural assistant?{@}'yes'=>'Yes'{-}'no'=>'No' +select{@}behavioural_assistant_present{@}Is there a behavioural assistant?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' text{@}behavioural_assistant{@}Behavioural assistant initials -select{@}subject_medication{@}Is subject under medication?{@}'yes'=>'Yes'{-}'no'=>'No' +select{@}subject_medication{@}Is subject under medication?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' textarea{@}subject_medication_dosage{@}Describe the medication and dosage select{@}head_measurement_unit{@}What is the unit used for head measurement?{@}'cm'=>'Centimeters (cm)'{-}'in'=>'Inches (in)' numeric{@}head_measurement{@}What is the head measurement value? select{@}head_measurement_status{@}What is the head measurement value?{@}NULL=>''{-}'not_answered'=>'Not Answered' -select{@}ecg_collected{@}ECG Collected?{@}'yes'=>'Yes'{-}'no'=>'No' -select{@}subject_away_60cm_from_monitor{@}Subject is 60cm away from monitor?{@}'yes'=>'Yes'{-}'no'=>'No' +select{@}ecg_collected{@}ECG Collected?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' +select{@}subject_away_60cm_from_monitor{@}Subject is 60cm away from monitor?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' textarea{@}subject_away_60cm_from_monitor_reason{@}If No, please explain the reason -header{@}{@}

Net information

-text{@}net_id{@}Net ID: -select{@}impedance_measured_before_netting{@}Impedances measure before netting?{@}'yes'=>'Yes'{-}'no'=>'No' +select{@}head_rest_used{@}Was a head rest used?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' +header{@}{@}

Device information

+text{@}device_id{@}Device ID: +select{@}impedance_measured_before_applied{@}Impedances measure before application on subject?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' numeric{@}impedance_measure{@}Impedance measured: -select{@}bad_channels_measured_after_netting{@}Bad channels measured after netting?{@}'yes'=>'Yes'{-}'no'=>'No' +select{@}bad_channels_measured_after_applied{@}Bad channels measured after application on subject?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' textarea{@}bad_channels{@}Bad channels: -header{@}{@}
About net placement:
Excellent - meets all criteria for proper net placement.
Average - 1-2cm shift from proper placement (1 pinky finger width distance).
Poor - >2 cm shift from proper placement (>1 pinky finger width distance).
-select{@}net_placement{@}Net placement{@}'na'=>'n/a'{-}'excellent'=>'Excellent'{-}'average'=>'Average'{-}'poor'=>'Poor' -textarea{@}net_placement_comment{@}Comments on net placement -select{@}net_placement_photos_taken{@}Placement photos taken?{@}'yes'=>'Yes'{-}'no'=>'No' +header{@}{@}
About placement:
Excellent - meets all criteria for proper placement.
Average - 1-2cm shift from proper placement (1 pinky finger width distance).
Poor - >2 cm shift from proper placement (>1 pinky finger width distance).
+select{@}placement_rating{@}Rate placement:{@}'na'=>'n/a'{-}'excellent'=>'Excellent'{-}'average'=>'Average'{-}'poor'=>'Poor' +textarea{@}placement_comment{@}Comments on placement +select{@}placement_photos_taken{@}Placement photos taken?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' select{@}acquisition_software{@}Acquisition software used{@}'eemagine'=>'Eemagine'{-}'neuro_scan'=>'(Neuro)scan'{-}'insep'=>'InsEP'{-}'biosemi'=>'BioSemi'{-}'netstation'=>'NetStation'{-}'brain_vision_recorder'=>'Brain Vision Recorder'{-}'emotiv'=>'Emotiv'{-}'actiview605_lores'=>'ActiView605-Lores'{-}'eeprobe'=>'EEProbe'{-}'tmsi'=>'TMSi'{-}'other'=>'Other' text{@}acquisition_software_other{@}If other, please specify select{@}recording_reference{@}Recording reference used{@}'left_mastoid'=>'left mastoid'{-}'right_mastoid'=>'right mastoid'{-}'left_earlobe'=>'left earlobe'{-}'right_earlobe'=>'right earlobe'{-}'physically_linked_mastoids'=>'physically linked mastoids'{-}'physically_linked_earlobes'=>'physically linked earlobes'{-}'cz'=>'Cz'{-}'tip_nose'=>'tip of the nose'{-}'balanced_non_cephalic_reference'=>'balanced non-cephalic reference'{-}'other'=>'Other' @@ -39,7 +40,7 @@ select{@}eog_channels{@}EOG channels{@}'no_eog_channels'=>'no EOG channels'{-}'t text{@}eog_channels_other{@}If other, please specify textarea{@}artefacted_channels{@}Artefacted channels header{@}{@}

EEG Acquisition

-select{@}bad_electrodes_present{@}Were there any bad electrodes during impedances?{@}'yes'=>'Yes'{-}'no'=>'No' +select{@}bad_electrodes_present{@}Were there any bad electrodes during impedances?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' textarea{@}bad_electrodes{@}If Yes, please register all bad electrodes textarea{@}hardware_filters_applied{@}What hardware filters were applied before acquisition? textarea{@}software_filters_applied{@}What software filters were applied during acquisition? @@ -51,38 +52,34 @@ header{@}{@}

Resting state task

select{@}resting_state_eeg_acquired{@}Resting State EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' textarea{@}resting_state_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? select{@}resting_state_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' -select{@}resting_state_eeg_mood_rating{@}Resting State EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' -textarea{@}resting_state_eeg_mood_rating_comments{@}Comments on subject mood: +select{@}resting_state_subject_mood_rating{@}Resting State Subject Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' +textarea{@}resting_state_subject_mood_rating_comments{@}Comments on subject mood: textarea{@}resting_state_comments{@}Comments on the resting state: header{@}{@}

Task 1

-select{@}task1_paradigm_used{@}Task 1 used?{@}'yes'=>'Yes'{-}'no'=>'No' select{@}task1_eeg_acquired{@}Task 1 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' textarea{@}task1_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? select{@}task1_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' -select{@}task1_eeg_mood_rating{@}Task 1 EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' -textarea{@}task1_eeg_mood_rating_comments{@}Comments on subject mood: +select{@}task1_subject_mood_rating{@}Task 1 Subject Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' +textarea{@}task1_subject_mood_rating_comments{@}Comments on subject mood: textarea{@}task1_comments{@}Comments on the task 1: header{@}{@}

Task 2

-select{@}task2_paradigm_used{@}Task 2 used?{@}'yes'=>'Yes'{-}'no'=>'No' select{@}task2_eeg_acquired{@}Task 2 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' textarea{@}task2_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? select{@}task2_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' -select{@}task2_eeg_mood_rating{@}Task 2 EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' -textarea{@}task2_eeg_mood_rating_comments{@}Comments on subject mood: +select{@}task2_subject_mood_rating{@}Task 2 Subject Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' +textarea{@}task2_subject_mood_rating_comments{@}Comments on subject mood: textarea{@}task2_comments{@}Comments on the task 2: header{@}{@}

Task 3

-select{@}task3_paradigm_used{@}Task 3 used?{@}'yes'=>'Yes'{-}'no'=>'No' select{@}task3_eeg_acquired{@}Task 3 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' textarea{@}task3_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? select{@}task3_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' -select{@}task3_eeg_mood_rating{@}Task 3 EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' -textarea{@}task3_eeg_mood_rating_comments{@}Comments on subject mood: +select{@}task3_subject_mood_rating{@}Task 3 Subject Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' +textarea{@}task3_subject_mood_rating_comments{@}Comments on subject mood: textarea{@}task3_comments{@}Comments on the task 3: header{@}{@}

Task 4

-select{@}task4_paradigm_used{@}Task 4 used?{@}'yes'=>'Yes'{-}'no'=>'No' select{@}task4_eeg_acquired{@}Task 4 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' textarea{@}task4_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? select{@}task4_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' -select{@}task4_eeg_mood_rating{@}Task 4 EEG Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' -textarea{@}task4_eeg_mood_rating_comments{@}Comments on subject mood: +select{@}task4_subject_mood_rating{@}Task 4 Subject Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' +textarea{@}task4_subject_mood_rating_comments{@}Comments on subject mood: textarea{@}task4_comments{@}Comments on the task 4: \ No newline at end of file diff --git a/raisinbread/instruments/eeg_acquisition_form.rules b/raisinbread/instruments/eeg_acquisition_form.rules index 28859efe622..680a4aa720a 100644 --- a/raisinbread/instruments/eeg_acquisition_form.rules +++ b/raisinbread/instruments/eeg_acquisition_form.rules @@ -5,40 +5,29 @@ session_testing_room{-}Not Required{-}session_testing_room{@}=={@}NEVER_REQUIRED behavioural_assistant{-}Required if there is a behavioural assistant{-}behavioural_assistant_present{@}=={@}yes subject_medication_dosage{-}Required if there is an ongoing medication{-}subject_medication{@}=={@}yes subject_away_60cm_from_monitor{-}Required if subject cannot be 60cm away from montior{-}participant_away_60cm_from_monitor{@}=={@}no -impedance_measure{-}Required when impedance is measured{-}impedance_measured_before_netting{@}=={@}yes -bad_channels{-}Required when bad channels are present{-}bad_channels_measured_after_netting{@}=={@}yes -net_placement_comment{-}Required when net placement is not available{-}net_placement{@}=={@}na +impedance_measure{-}Required when impedance is measured{-}impedance_measured_before_applied{@}=={@}yes + +bad_channels{-}Required when bad channels are present{-}bad_channels_measured_after_applied{@}=={@}yes +placement_comment{-}Required when placement is not available{-}placement_rating{@}=={@}na acquisition_software_other{-}Required when acquisition software is other{-}acquisition_software{@}=={@}other recording_reference_other{-}Required when recording reference is other{-}recording_reference{@}=={@}other eog_channels_other{-}Required when EOG channels is other{-}eog_channels{@}=={@}other artefacted_channels{-}Not Required{-}artefacted_channels{@}=={@}NEVER_REQUIRED -bad_electrode{-}Required when bad electrodes are present{-}bad_electrodes_present{@}=={@}yes +bad_electrodes{-}Required when bad electrodes are present{-}bad_electrodes_present{@}=={@}yes hardware_filters_applied{-}Not Required{-}hardware_filters_applied{@}=={@}NEVER_REQUIRED software_filters_applied{-}Not Required{-}software_filters_applied{@}=={@}NEVER_REQUIRED resting_state_eeg_incomplete_reason{-}Required when resting state acquiring is incomplete{-}resting_state_eeg_acquired{@}=={@}incomplete -resting_state_eeg_mood_rating_comments{-}Not Required{-}resting_state_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED +resting_state_subject_mood_rating_comments{-}Not Required{-}resting_state_subject_mood_rating_comments{@}=={@}NEVER_REQUIRED resting_state_comments{-}Not Required{-}resting_state_comments{@}=={@}NEVER_REQUIRED -task1_eeg_acquire{-}Required when Task 1 is used{-}task1_paradigm_used{@}=={@}yes task1_eeg_incomplete_reason{-}Required when task 1 acquiring is incomplete{-}task1_eeg_acquired{@}=={@}incomplete -task1_attempt{-}Required when Task 1 is used{-}task1_paradigm_used{@}=={@}yes -task1_eeg_mood_ratin{-}Required when Task 1 is used{-}task1_paradigm_used{@}=={@}yes -task1_eeg_mood_rating_comments{-}Not Required{-}task1_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED +task1_subject_mood_rating_comments{-}Not Required{-}task1_subject_mood_rating_comments{@}=={@}NEVER_REQUIRED task1_comments{-}Not Required{-}vep_comments{@}=={@}NEVER_REQUIRED -task2_eeg_acquire{-}Required when Task 2 is used{-}task2_paradigm_used{@}=={@}yes task2_eeg_incomplete_reason{-}Required when task 2 acquiring is incomplete{-}task2_eeg_acquired{@}=={@}incomplete -task2_attempt{-}Required when Task 2 is used{-}task2_paradigm_used{@}=={@}yes -task2_eeg_mood_ratin{-}Required when Task 2 is used{-}task2_paradigm_used{@}=={@}yes -task2_eeg_mood_rating_comments{-}Not Required{-}task2_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED +task2_subject_mood_rating_comments{-}Not Required{-}task2_subject_mood_rating_comments{@}=={@}NEVER_REQUIRED task2_comments{-}Not Required{-}aep_comments{@}=={@}NEVER_REQUIRED -task3_eeg_acquire{-}Required when Task 3 is used{-}task3_paradigm_used{@}=={@}yes task3_eeg_incomplete_reason{-}Required when task 3 acquiring is incomplete{-}task3_eeg_acquired{@}=={@}incomplete -task3_attempt{-}Required when Task 3 is used{-}task3_paradigm_used{@}=={@}yes -task3_eeg_mood_ratin{-}Required when Task 3 is used{-}task3_paradigm_used{@}=={@}yes -task3_eeg_mood_rating_comments{-}Not Required{-}task3_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED +task3_subject_mood_rating_comments{-}Not Required{-}task3_subject_mood_rating_comments{@}=={@}NEVER_REQUIRED task3_comments{-}Not Required{-}mmn_comments{@}=={@}NEVER_REQUIRED -task4_eeg_acquire{-}Required when Task 4 is used{-}task4_paradigm_used{@}=={@}yes task4_eeg_incomplete_reason{-}Required when task 4 acquiring is incomplete{-}task4_eeg_acquired{@}=={@}incomplete -task4_attempt{-}Required when Task 4 is used{-}task4_paradigm_used{@}=={@}yes -task4_eeg_mood_ratin{-}Required when Task 4 is used{-}task4_paradigm_used{@}=={@}yes -task4_eeg_mood_rating_comments{-}Not Required{-}task4_eeg_mood_rating_comments{@}=={@}NEVER_REQUIRED +task4_subject_mood_rating_comments{-}Not Required{-}task4_subject_mood_rating_comments{@}=={@}NEVER_REQUIRED task4_comments{-}Not Required{-}faces_comments{@}=={@}NEVER_REQUIRED \ No newline at end of file From 0be7d686e79a51d5e228887e0b7f61b7123defdf Mon Sep 17 00:00:00 2001 From: regisoc Date: Fri, 31 Mar 2023 16:20:35 -0400 Subject: [PATCH 11/18] add bad electrodes --- raisinbread/instruments/eeg_acquisition_form.linst | 7 ++++--- raisinbread/instruments/eeg_acquisition_form.rules | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/raisinbread/instruments/eeg_acquisition_form.linst b/raisinbread/instruments/eeg_acquisition_form.linst index eba612fb0ad..801a2cadec6 100644 --- a/raisinbread/instruments/eeg_acquisition_form.linst +++ b/raisinbread/instruments/eeg_acquisition_form.linst @@ -13,6 +13,7 @@ select{@}behavioural_assistant_present{@}Is there a behavioural assistant?{@}'ye text{@}behavioural_assistant{@}Behavioural assistant initials select{@}subject_medication{@}Is subject under medication?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' textarea{@}subject_medication_dosage{@}Describe the medication and dosage +select{@}head_measurement_taken{@}Was head measured?{@}'yes'=>'Yes'{-}'no'=>'No' select{@}head_measurement_unit{@}What is the unit used for head measurement?{@}'cm'=>'Centimeters (cm)'{-}'in'=>'Inches (in)' numeric{@}head_measurement{@}What is the head measurement value? select{@}head_measurement_status{@}What is the head measurement value?{@}NULL=>''{-}'not_answered'=>'Not Answered' @@ -24,6 +25,9 @@ header{@}{@}

Device information

text{@}device_id{@}Device ID: select{@}impedance_measured_before_applied{@}Impedances measure before application on subject?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' numeric{@}impedance_measure{@}Impedance measured: +select{@}bad_electrodes_present{@}Were there any bad electrodes during impedances?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' +textarea{@}bad_electrodes{@}If Yes, please register all bad electrodes +textarea{@}hardware_filters_applied{@}What hardware filters were applied before acquisition? select{@}bad_channels_measured_after_applied{@}Bad channels measured after application on subject?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' textarea{@}bad_channels{@}Bad channels: header{@}{@}
About placement:
Excellent - meets all criteria for proper placement.
Average - 1-2cm shift from proper placement (1 pinky finger width distance).
Poor - >2 cm shift from proper placement (>1 pinky finger width distance).
@@ -40,9 +44,6 @@ select{@}eog_channels{@}EOG channels{@}'no_eog_channels'=>'no EOG channels'{-}'t text{@}eog_channels_other{@}If other, please specify textarea{@}artefacted_channels{@}Artefacted channels header{@}{@}

EEG Acquisition

-select{@}bad_electrodes_present{@}Were there any bad electrodes during impedances?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' -textarea{@}bad_electrodes{@}If Yes, please register all bad electrodes -textarea{@}hardware_filters_applied{@}What hardware filters were applied before acquisition? textarea{@}software_filters_applied{@}What software filters were applied during acquisition? time{@}eeg_session_start_time{@}EEG session Start time select{@}eeg_session_start_time_status{@}EEG session Start time{@}NULL=>''{-}'dnk'=>'DNK'{-}'not_answered'=>'Not Answered' diff --git a/raisinbread/instruments/eeg_acquisition_form.rules b/raisinbread/instruments/eeg_acquisition_form.rules index 680a4aa720a..f0e3c64ba12 100644 --- a/raisinbread/instruments/eeg_acquisition_form.rules +++ b/raisinbread/instruments/eeg_acquisition_form.rules @@ -4,16 +4,17 @@ research_staff_three{-}Not Required{-}research_staff_three{@}=={@}NEVER_REQUIRED session_testing_room{-}Not Required{-}session_testing_room{@}=={@}NEVER_REQUIRED behavioural_assistant{-}Required if there is a behavioural assistant{-}behavioural_assistant_present{@}=={@}yes subject_medication_dosage{-}Required if there is an ongoing medication{-}subject_medication{@}=={@}yes +head_measurement_unit{-}Required if head measurement was taken{-}head_measurement_taken{@}=={@}yes +head_measurement{-}Required if head measurement was taken{-}head_measurement_taken{@}=={@}yes subject_away_60cm_from_monitor{-}Required if subject cannot be 60cm away from montior{-}participant_away_60cm_from_monitor{@}=={@}no impedance_measure{-}Required when impedance is measured{-}impedance_measured_before_applied{@}=={@}yes - +bad_electrodes{-}Required when bad electrodes are present{-}bad_electrodes_present{@}=={@}yes bad_channels{-}Required when bad channels are present{-}bad_channels_measured_after_applied{@}=={@}yes placement_comment{-}Required when placement is not available{-}placement_rating{@}=={@}na acquisition_software_other{-}Required when acquisition software is other{-}acquisition_software{@}=={@}other recording_reference_other{-}Required when recording reference is other{-}recording_reference{@}=={@}other eog_channels_other{-}Required when EOG channels is other{-}eog_channels{@}=={@}other artefacted_channels{-}Not Required{-}artefacted_channels{@}=={@}NEVER_REQUIRED -bad_electrodes{-}Required when bad electrodes are present{-}bad_electrodes_present{@}=={@}yes hardware_filters_applied{-}Not Required{-}hardware_filters_applied{@}=={@}NEVER_REQUIRED software_filters_applied{-}Not Required{-}software_filters_applied{@}=={@}NEVER_REQUIRED resting_state_eeg_incomplete_reason{-}Required when resting state acquiring is incomplete{-}resting_state_eeg_acquired{@}=={@}incomplete From f13929536ba3ccbb6c8226459725cf015ca72eee Mon Sep 17 00:00:00 2001 From: regisoc Date: Fri, 31 Mar 2023 16:21:50 -0400 Subject: [PATCH 12/18] hardware filter --- raisinbread/instruments/eeg_acquisition_form.linst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/raisinbread/instruments/eeg_acquisition_form.linst b/raisinbread/instruments/eeg_acquisition_form.linst index 801a2cadec6..3c8d6b7a6c4 100644 --- a/raisinbread/instruments/eeg_acquisition_form.linst +++ b/raisinbread/instruments/eeg_acquisition_form.linst @@ -27,7 +27,6 @@ select{@}impedance_measured_before_applied{@}Impedances measure before applicati numeric{@}impedance_measure{@}Impedance measured: select{@}bad_electrodes_present{@}Were there any bad electrodes during impedances?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' textarea{@}bad_electrodes{@}If Yes, please register all bad electrodes -textarea{@}hardware_filters_applied{@}What hardware filters were applied before acquisition? select{@}bad_channels_measured_after_applied{@}Bad channels measured after application on subject?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' textarea{@}bad_channels{@}Bad channels: header{@}{@}
About placement:
Excellent - meets all criteria for proper placement.
Average - 1-2cm shift from proper placement (1 pinky finger width distance).
Poor - >2 cm shift from proper placement (>1 pinky finger width distance).
@@ -45,6 +44,7 @@ text{@}eog_channels_other{@}If other, please specify textarea{@}artefacted_channels{@}Artefacted channels header{@}{@}

EEG Acquisition

textarea{@}software_filters_applied{@}What software filters were applied during acquisition? +textarea{@}hardware_filters_applied{@}What hardware filters were applied before acquisition? time{@}eeg_session_start_time{@}EEG session Start time select{@}eeg_session_start_time_status{@}EEG session Start time{@}NULL=>''{-}'dnk'=>'DNK'{-}'not_answered'=>'Not Answered' time{@}eeg_session_end_time{@}EEG session End time From bc1208a42016ddec20a1852d6358d5e5dfa08026 Mon Sep 17 00:00:00 2001 From: regisoc Date: Fri, 31 Mar 2023 16:23:17 -0400 Subject: [PATCH 13/18] filter subsection --- raisinbread/instruments/eeg_acquisition_form.linst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/raisinbread/instruments/eeg_acquisition_form.linst b/raisinbread/instruments/eeg_acquisition_form.linst index 3c8d6b7a6c4..f3f146cf8dc 100644 --- a/raisinbread/instruments/eeg_acquisition_form.linst +++ b/raisinbread/instruments/eeg_acquisition_form.linst @@ -42,7 +42,7 @@ select{@}number_active_channels_status{@}Number of active channels{@}NULL=>''{-} select{@}eog_channels{@}EOG channels{@}'no_eog_channels'=>'no EOG channels'{-}'two_heog_channels_only'=>'two HEOG channels only'{-}'two_veog_channels_only'=>'two VEOG channels only'{-}'two_heog_two_veog_channels'=>'two HEOG and two VEOG channels'{-}'other'=>'Other' text{@}eog_channels_other{@}If other, please specify textarea{@}artefacted_channels{@}Artefacted channels -header{@}{@}

EEG Acquisition

+header{@}{@}

Filters

textarea{@}software_filters_applied{@}What software filters were applied during acquisition? textarea{@}hardware_filters_applied{@}What hardware filters were applied before acquisition? time{@}eeg_session_start_time{@}EEG session Start time From 9f05eb643827ed9e5f5ef5d973cb1f94639d66b7 Mon Sep 17 00:00:00 2001 From: regisoc Date: Fri, 31 Mar 2023 17:49:40 -0400 Subject: [PATCH 14/18] add null option to selects --- .../instruments/eeg_acquisition_form.linst | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/raisinbread/instruments/eeg_acquisition_form.linst b/raisinbread/instruments/eeg_acquisition_form.linst index f3f146cf8dc..7729a061d33 100644 --- a/raisinbread/instruments/eeg_acquisition_form.linst +++ b/raisinbread/instruments/eeg_acquisition_form.linst @@ -9,37 +9,37 @@ text{@}research_staff_one{@}Research staff 1 initials text{@}research_staff_two{@}Research staff 2 initials text{@}research_staff_three{@}Research staff 3 initials text{@}session_testing_room{@}Testing room information -select{@}behavioural_assistant_present{@}Is there a behavioural assistant?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' +select{@}behavioural_assistant_present{@}Is there a behavioural assistant?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' text{@}behavioural_assistant{@}Behavioural assistant initials -select{@}subject_medication{@}Is subject under medication?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' +select{@}subject_medication{@}Is subject under medication?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' textarea{@}subject_medication_dosage{@}Describe the medication and dosage -select{@}head_measurement_taken{@}Was head measured?{@}'yes'=>'Yes'{-}'no'=>'No' -select{@}head_measurement_unit{@}What is the unit used for head measurement?{@}'cm'=>'Centimeters (cm)'{-}'in'=>'Inches (in)' +select{@}head_measurement_taken{@}Was head measured?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No' +select{@}head_measurement_unit{@}What is the unit used for head measurement?{@}NULL=>''{-}'cm'=>'Centimeters (cm)'{-}'in'=>'Inches (in)' numeric{@}head_measurement{@}What is the head measurement value? select{@}head_measurement_status{@}What is the head measurement value?{@}NULL=>''{-}'not_answered'=>'Not Answered' -select{@}ecg_collected{@}ECG Collected?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' -select{@}subject_away_60cm_from_monitor{@}Subject is 60cm away from monitor?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' +select{@}ecg_collected{@}ECG Collected?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' +select{@}subject_away_60cm_from_monitor{@}Subject is 60cm away from monitor?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' textarea{@}subject_away_60cm_from_monitor_reason{@}If No, please explain the reason -select{@}head_rest_used{@}Was a head rest used?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' +select{@}head_rest_used{@}Was a head rest used?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' header{@}{@}

Device information

text{@}device_id{@}Device ID: -select{@}impedance_measured_before_applied{@}Impedances measure before application on subject?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' +select{@}impedance_measured_before_applied{@}Impedances measure before application on subject?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' numeric{@}impedance_measure{@}Impedance measured: -select{@}bad_electrodes_present{@}Were there any bad electrodes during impedances?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' +select{@}bad_electrodes_present{@}Were there any bad electrodes during impedances?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' textarea{@}bad_electrodes{@}If Yes, please register all bad electrodes -select{@}bad_channels_measured_after_applied{@}Bad channels measured after application on subject?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' +select{@}bad_channels_measured_after_applied{@}Bad channels measured after application on subject?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' textarea{@}bad_channels{@}Bad channels: header{@}{@}
About placement:
Excellent - meets all criteria for proper placement.
Average - 1-2cm shift from proper placement (1 pinky finger width distance).
Poor - >2 cm shift from proper placement (>1 pinky finger width distance).
-select{@}placement_rating{@}Rate placement:{@}'na'=>'n/a'{-}'excellent'=>'Excellent'{-}'average'=>'Average'{-}'poor'=>'Poor' +select{@}placement_rating{@}Rate placement:{@}NULL=>''{-}'na'=>'n/a'{-}'excellent'=>'Excellent'{-}'average'=>'Average'{-}'poor'=>'Poor' textarea{@}placement_comment{@}Comments on placement -select{@}placement_photos_taken{@}Placement photos taken?{@}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' -select{@}acquisition_software{@}Acquisition software used{@}'eemagine'=>'Eemagine'{-}'neuro_scan'=>'(Neuro)scan'{-}'insep'=>'InsEP'{-}'biosemi'=>'BioSemi'{-}'netstation'=>'NetStation'{-}'brain_vision_recorder'=>'Brain Vision Recorder'{-}'emotiv'=>'Emotiv'{-}'actiview605_lores'=>'ActiView605-Lores'{-}'eeprobe'=>'EEProbe'{-}'tmsi'=>'TMSi'{-}'other'=>'Other' +select{@}placement_photos_taken{@}Placement photos taken?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' +select{@}acquisition_software{@}Acquisition software used{@}NULL=>''{-}'eemagine'=>'Eemagine'{-}'neuro_scan'=>'(Neuro)scan'{-}'insep'=>'InsEP'{-}'biosemi'=>'BioSemi'{-}'netstation'=>'NetStation'{-}'brain_vision_recorder'=>'Brain Vision Recorder'{-}'emotiv'=>'Emotiv'{-}'actiview605_lores'=>'ActiView605-Lores'{-}'eeprobe'=>'EEProbe'{-}'tmsi'=>'TMSi'{-}'other'=>'Other' text{@}acquisition_software_other{@}If other, please specify -select{@}recording_reference{@}Recording reference used{@}'left_mastoid'=>'left mastoid'{-}'right_mastoid'=>'right mastoid'{-}'left_earlobe'=>'left earlobe'{-}'right_earlobe'=>'right earlobe'{-}'physically_linked_mastoids'=>'physically linked mastoids'{-}'physically_linked_earlobes'=>'physically linked earlobes'{-}'cz'=>'Cz'{-}'tip_nose'=>'tip of the nose'{-}'balanced_non_cephalic_reference'=>'balanced non-cephalic reference'{-}'other'=>'Other' +select{@}recording_reference{@}Recording reference used{@}NULL=>''{-}'left_mastoid'=>'left mastoid'{-}'right_mastoid'=>'right mastoid'{-}'left_earlobe'=>'left earlobe'{-}'right_earlobe'=>'right earlobe'{-}'physically_linked_mastoids'=>'physically linked mastoids'{-}'physically_linked_earlobes'=>'physically linked earlobes'{-}'cz'=>'Cz'{-}'tip_nose'=>'tip of the nose'{-}'balanced_non_cephalic_reference'=>'balanced non-cephalic reference'{-}'other'=>'Other' text{@}recording_reference_other{@}If other, please specify text{@}number_active_channels{@}Number of active channels select{@}number_active_channels_status{@}Number of active channels{@}NULL=>''{-}'not_answered'=>'Not Answered' -select{@}eog_channels{@}EOG channels{@}'no_eog_channels'=>'no EOG channels'{-}'two_heog_channels_only'=>'two HEOG channels only'{-}'two_veog_channels_only'=>'two VEOG channels only'{-}'two_heog_two_veog_channels'=>'two HEOG and two VEOG channels'{-}'other'=>'Other' +select{@}eog_channels{@}EOG channels{@}NULL=>''{-}'no_eog_channels'=>'no EOG channels'{-}'two_heog_channels_only'=>'two HEOG channels only'{-}'two_veog_channels_only'=>'two VEOG channels only'{-}'two_heog_two_veog_channels'=>'two HEOG and two VEOG channels'{-}'other'=>'Other' text{@}eog_channels_other{@}If other, please specify textarea{@}artefacted_channels{@}Artefacted channels header{@}{@}

Filters

From fe3d5c3be22bfd3c7ff5fdca396ac940833d44aa Mon Sep 17 00:00:00 2001 From: regisoc Date: Fri, 31 Mar 2023 18:47:37 -0400 Subject: [PATCH 15/18] builder --- .../instruments/eeg_acquisition_form.linst | 138 +++++++++++------- 1 file changed, 86 insertions(+), 52 deletions(-) diff --git a/raisinbread/instruments/eeg_acquisition_form.linst b/raisinbread/instruments/eeg_acquisition_form.linst index 7729a061d33..22b732e6d8f 100644 --- a/raisinbread/instruments/eeg_acquisition_form.linst +++ b/raisinbread/instruments/eeg_acquisition_form.linst @@ -2,85 +2,119 @@ title{@}EEG Acquisition Form date{@}Date_taken{@}Date of Administration{@}{@} static{@}Candidate_Age{@}Candidate Age (Months) static{@}Window_Difference{@}Window Difference (+/- Days) -select{@}Examiner{@}Examiner{@} +select{@}Examiner{@}Examiner{@}NULL=>'' textarea{@}general_comments{@}General session notes, any important details (e.g. technical error, issue with net, etc.) +select{@}general_comments_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' header{@}{@}

General information

text{@}research_staff_one{@}Research staff 1 initials +select{@}research_staff_one_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' text{@}research_staff_two{@}Research staff 2 initials +select{@}research_staff_two_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' text{@}research_staff_three{@}Research staff 3 initials +select{@}research_staff_three_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' text{@}session_testing_room{@}Testing room information -select{@}behavioural_assistant_present{@}Is there a behavioural assistant?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' +select{@}session_testing_room_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}behavioural_assistant_present{@}Is there a behavioural assistant?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'not_known'=>'Not known'{-}'not_answered'=>'Not Answered' text{@}behavioural_assistant{@}Behavioural assistant initials -select{@}subject_medication{@}Is subject under medication?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' -textarea{@}subject_medication_dosage{@}Describe the medication and dosage -select{@}head_measurement_taken{@}Was head measured?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No' -select{@}head_measurement_unit{@}What is the unit used for head measurement?{@}NULL=>''{-}'cm'=>'Centimeters (cm)'{-}'in'=>'Inches (in)' -numeric{@}head_measurement{@}What is the head measurement value? -select{@}head_measurement_status{@}What is the head measurement value?{@}NULL=>''{-}'not_answered'=>'Not Answered' -select{@}ecg_collected{@}ECG Collected?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' -select{@}subject_away_60cm_from_monitor{@}Subject is 60cm away from monitor?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' +select{@}behavioural_assistant_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}subject_medication{@}Is subject under medication?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'not_known'=>'Not known'{-}'not_answered'=>'Not Answered' +textarea{@}subject_medication_dosage{@}Specify medication and dosage +select{@}subject_medication_dosage_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}head_measurement_taken{@}Was head measured?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'not_answered'=>'Not Answered' +select{@}head_measurement_unit{@}What is the unit used for head measurement?{@}NULL=>''{-}'cm'=>'Centimeters (cm)'{-}'in'=>'Inches (in)'{-}'not_answered'=>'Not Answered' +numeric{@}head_measurement{@}What is the head measurement value?{@}undefined{@}undefined +select{@}head_measurement_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}ecg_collected{@}ECG Collected?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'not_known'=>'Not known'{-}'not_answered'=>'Not Answered' +select{@}subject_away_60cm_from_monitor{@}Subject is 60cm away from monitor?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'not_known'=>'Not known'{-}'not_answered'=>'Not Answered' textarea{@}subject_away_60cm_from_monitor_reason{@}If No, please explain the reason -select{@}head_rest_used{@}Was a head rest used?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' +select{@}subject_away_60cm_from_monitor_reason_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}head_rest_used{@}Was a head rest used?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'not_known'=>'Not known'{-}'not_answered'=>'Not Answered' header{@}{@}

Device information

-text{@}device_id{@}Device ID: -select{@}impedance_measured_before_applied{@}Impedances measure before application on subject?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' -numeric{@}impedance_measure{@}Impedance measured: -select{@}bad_electrodes_present{@}Were there any bad electrodes during impedances?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' +text{@}device_id{@}Device ID +select{@}device_id_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}impedance_measured_before_applied{@}Impedances measure before application on subject?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'not_known'=>'Not known'{-}'not_answered'=>'Not Answered' +numeric{@}impedance_measure{@}Impedance measured{@}undefined{@}undefined +select{@}impedance_measure_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}bad_electrodes_present{@}Were there any bad electrodes during impedances?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'not_known'=>'Not known'{-}'not_answered'=>'Not Answered' textarea{@}bad_electrodes{@}If Yes, please register all bad electrodes -select{@}bad_channels_measured_after_applied{@}Bad channels measured after application on subject?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' -textarea{@}bad_channels{@}Bad channels: +select{@}bad_electrodes_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}bad_channels_measured_after_applied{@}Bad channels measured after application on subject?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'not_known'=>'Not known'{-}'not_answered'=>'Not Answered' +textarea{@}bad_channels{@}Bad channels +select{@}bad_channels_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' header{@}{@}
About placement:
Excellent - meets all criteria for proper placement.
Average - 1-2cm shift from proper placement (1 pinky finger width distance).
Poor - >2 cm shift from proper placement (>1 pinky finger width distance).
-select{@}placement_rating{@}Rate placement:{@}NULL=>''{-}'na'=>'n/a'{-}'excellent'=>'Excellent'{-}'average'=>'Average'{-}'poor'=>'Poor' +select{@}placement_rating{@}Rate placement{@}NULL=>''{-}'na'=>'n/a'{-}'excellent'=>'Excellent'{-}'average'=>'Average'{-}'poor'=>'Poor'{-}'not_answered'=>'Not Answered' textarea{@}placement_comment{@}Comments on placement -select{@}placement_photos_taken{@}Placement photos taken?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'dnk'=>'Do not know' -select{@}acquisition_software{@}Acquisition software used{@}NULL=>''{-}'eemagine'=>'Eemagine'{-}'neuro_scan'=>'(Neuro)scan'{-}'insep'=>'InsEP'{-}'biosemi'=>'BioSemi'{-}'netstation'=>'NetStation'{-}'brain_vision_recorder'=>'Brain Vision Recorder'{-}'emotiv'=>'Emotiv'{-}'actiview605_lores'=>'ActiView605-Lores'{-}'eeprobe'=>'EEProbe'{-}'tmsi'=>'TMSi'{-}'other'=>'Other' +select{@}placement_comment_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}placement_photos_taken{@}Placement photos taken?{@}NULL=>''{-}'yes'=>'Yes'{-}'no'=>'No'{-}'not_known'=>'Not known'{-}'not_answered'=>'Not Answered' +select{@}acquisition_software{@}Acquisition software used{@}NULL=>''{-}'eemagine'=>'Eemagine'{-}'neuro_scan'=>'(Neuro)scan'{-}'insep'=>'InsEP'{-}'biosemi'=>'BioSemi'{-}'netstation'=>'NetStation'{-}'brain_vision_recorder'=>'Brain Vision Recorder'{-}'emotiv'=>'Emotiv'{-}'actiview605_lores'=>'ActiView605-Lores'{-}'eeprobe'=>'EEProbe'{-}'tmsi'=>'TMSi'{-}'other'=>'Other'{-}'not_answered'=>'Not Answered' text{@}acquisition_software_other{@}If other, please specify -select{@}recording_reference{@}Recording reference used{@}NULL=>''{-}'left_mastoid'=>'left mastoid'{-}'right_mastoid'=>'right mastoid'{-}'left_earlobe'=>'left earlobe'{-}'right_earlobe'=>'right earlobe'{-}'physically_linked_mastoids'=>'physically linked mastoids'{-}'physically_linked_earlobes'=>'physically linked earlobes'{-}'cz'=>'Cz'{-}'tip_nose'=>'tip of the nose'{-}'balanced_non_cephalic_reference'=>'balanced non-cephalic reference'{-}'other'=>'Other' +select{@}acquisition_software_other_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}recording_reference{@}Recording reference used{@}NULL=>''{-}'left_mastoid'=>'left mastoid'{-}'right_mastoid'=>'right mastoid'{-}'left_earlobe'=>'left earlobe'{-}'right_earlobe'=>'right earlobe'{-}'physically_linked_mastoids'=>'physically linked mastoids'{-}'physically_linked_earlobes'=>'physically linked earlobes'{-}'cz'=>'Cz'{-}'tip_nose'=>'tip of the nose'{-}'balanced_non_cephalic_reference'=>'balanced non-cephalic reference'{-}'other'=>'Other'{-}'not_answered'=>'Not Answered' text{@}recording_reference_other{@}If other, please specify +select{@}recording_reference_other_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' text{@}number_active_channels{@}Number of active channels -select{@}number_active_channels_status{@}Number of active channels{@}NULL=>''{-}'not_answered'=>'Not Answered' -select{@}eog_channels{@}EOG channels{@}NULL=>''{-}'no_eog_channels'=>'no EOG channels'{-}'two_heog_channels_only'=>'two HEOG channels only'{-}'two_veog_channels_only'=>'two VEOG channels only'{-}'two_heog_two_veog_channels'=>'two HEOG and two VEOG channels'{-}'other'=>'Other' +select{@}number_active_channels_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}eog_channels{@}EOG channels{@}NULL=>''{-}'no_eog_channels'=>'no EOG channels'{-}'two_heog_channels_only'=>'two HEOG channels only'{-}'two_veog_channels_only'=>'two VEOG channels only'{-}'two_heog_two_veog_channels'=>'two HEOG and two VEOG channels'{-}'other'=>'Other'{-}'not_answered'=>'Not Answered' text{@}eog_channels_other{@}If other, please specify +select{@}eog_channels_other_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' textarea{@}artefacted_channels{@}Artefacted channels +select{@}artefacted_channels_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' header{@}{@}

Filters

textarea{@}software_filters_applied{@}What software filters were applied during acquisition? +select{@}software_filters_applied_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' textarea{@}hardware_filters_applied{@}What hardware filters were applied before acquisition? -time{@}eeg_session_start_time{@}EEG session Start time -select{@}eeg_session_start_time_status{@}EEG session Start time{@}NULL=>''{-}'dnk'=>'DNK'{-}'not_answered'=>'Not Answered' -time{@}eeg_session_end_time{@}EEG session End time -select{@}eeg_session_end_time_status{@}EEG session End time{@}NULL=>''{-}'dnk'=>'DNK'{-}'not_answered'=>'Not Answered' +select{@}hardware_filters_applied_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +text{@}eeg_session_start_time{@}EEG session Start time +select{@}eeg_session_start_time_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +text{@}eeg_session_end_time{@}EEG session End time +select{@}eeg_session_end_time_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' header{@}{@}

Resting state task

-select{@}resting_state_eeg_acquired{@}Resting State EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' +select{@}resting_state_eeg_acquired{@}Resting State EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete'{-}'not_answered'=>'Not Answered' textarea{@}resting_state_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? -select{@}resting_state_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' -select{@}resting_state_subject_mood_rating{@}Resting State Subject Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' -textarea{@}resting_state_subject_mood_rating_comments{@}Comments on subject mood: -textarea{@}resting_state_comments{@}Comments on the resting state: +select{@}resting_state_eeg_incomplete_reason_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}resting_state_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5'{-}'not_answered'=>'Not Answered' +select{@}resting_state_subject_mood_rating{@}Resting State Subject Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time'{-}'not_answered'=>'Not Answered' +textarea{@}resting_state_subject_mood_rating_comments{@}Comments on subject mood +select{@}resting_state_subject_mood_rating_comments_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +textarea{@}resting_state_comments{@}Comments on the resting state +select{@}resting_state_comments_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' header{@}{@}

Task 1

-select{@}task1_eeg_acquired{@}Task 1 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' +select{@}task1_eeg_acquired{@}Task 1 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete'{-}'not_answered'=>'Not Answered' textarea{@}task1_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? -select{@}task1_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' -select{@}task1_subject_mood_rating{@}Task 1 Subject Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' -textarea{@}task1_subject_mood_rating_comments{@}Comments on subject mood: -textarea{@}task1_comments{@}Comments on the task 1: +select{@}task1_eeg_incomplete_reason_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}task1_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5'{-}'not_answered'=>'Not Answered' +select{@}task1_subject_mood_rating{@}Task 1 Subject Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time'{-}'not_answered'=>'Not Answered' +textarea{@}task1_subject_mood_rating_comments{@}Comments on subject mood +select{@}task1_subject_mood_rating_comments_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +textarea{@}task1_comments{@}Comments on Task 1 +select{@}task1_comments_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' header{@}{@}

Task 2

-select{@}task2_eeg_acquired{@}Task 2 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' +select{@}task2_eeg_acquired{@}Task 2 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete'{-}'not_answered'=>'Not Answered' textarea{@}task2_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? -select{@}task2_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' -select{@}task2_subject_mood_rating{@}Task 2 Subject Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' -textarea{@}task2_subject_mood_rating_comments{@}Comments on subject mood: -textarea{@}task2_comments{@}Comments on the task 2: +select{@}task2_eeg_incomplete_reason_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}task2_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5'{-}'not_answered'=>'Not Answered' +select{@}task2_subject_mood_rating{@}Task 2 Subject Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time'{-}'not_answered'=>'Not Answered' +textarea{@}task2_subject_mood_rating_comments{@}Comments on subject mood +select{@}task2_subject_mood_rating_comments_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +textarea{@}task2_comments{@}Comments on Task 2 +select{@}task2_comments_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' header{@}{@}

Task 3

-select{@}task3_eeg_acquired{@}Task 3 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' +select{@}task3_eeg_acquired{@}Task 3 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete'{-}'not_answered'=>'Not Answered' textarea{@}task3_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? -select{@}task3_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' -select{@}task3_subject_mood_rating{@}Task 3 Subject Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' -textarea{@}task3_subject_mood_rating_comments{@}Comments on subject mood: -textarea{@}task3_comments{@}Comments on the task 3: +select{@}task3_eeg_incomplete_reason_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}task3_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5'{-}'not_answered'=>'Not Answered' +select{@}task3_subject_mood_rating{@}Task 3 Subject Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time'{-}'not_answered'=>'Not Answered' +textarea{@}task3_subject_mood_rating_comments{@}Comments on subject mood +select{@}task3_subject_mood_rating_comments_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +textarea{@}task3_comments{@}Comments on Task 3 +select{@}task3_comments_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' header{@}{@}

Task 4

-select{@}task4_eeg_acquired{@}Task 4 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete' +select{@}task4_eeg_acquired{@}Task 4 EEG Acquired?{@}NULL=>''{-}'not_started'=>'Not Started'{-}'complete'=>'Complete'{-}'incomplete'=>'Incomplete'{-}'not_answered'=>'Not Answered' textarea{@}task4_eeg_incomplete_reason{@}If Incomplete, why were you unable to complete the task? -select{@}task4_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5' -select{@}task4_subject_mood_rating{@}Task 4 Subject Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time' -textarea{@}task4_subject_mood_rating_comments{@}Comments on subject mood: -textarea{@}task4_comments{@}Comments on the task 4: \ No newline at end of file +select{@}task4_eeg_incomplete_reason_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}task4_attempts{@}Number of attempts{@}NULL=>''{-}'1'=>'1'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'more_than_5'=>'More than 5'{-}'not_answered'=>'Not Answered' +select{@}task4_subject_mood_rating{@}Task 4 Subject Mood Rating{@}NULL=>''{-}'1'=>'1 - Screaming, fussed out'{-}'2'=>'2'{-}'3'=>'3'{-}'4'=>'4'{-}'5'=>'5 - Very calm the whole time'{-}'not_answered'=>'Not Answered' +textarea{@}task4_subject_mood_rating_comments{@}Comments on subject mood +select{@}task4_subject_mood_rating_comments_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +textarea{@}task4_comments{@}Comments on Task 4 +select{@}task4_comments_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' From 7a4f58891c45c00b4f0c46f9cf64d5e0fb3349b7 Mon Sep 17 00:00:00 2001 From: regisoc Date: Sun, 2 Apr 2023 19:41:41 -0400 Subject: [PATCH 16/18] update one participant -> subject rule --- raisinbread/instruments/eeg_acquisition_form.rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/raisinbread/instruments/eeg_acquisition_form.rules b/raisinbread/instruments/eeg_acquisition_form.rules index f0e3c64ba12..41b49fba34a 100644 --- a/raisinbread/instruments/eeg_acquisition_form.rules +++ b/raisinbread/instruments/eeg_acquisition_form.rules @@ -6,7 +6,7 @@ behavioural_assistant{-}Required if there is a behavioural assistant{-}behaviour subject_medication_dosage{-}Required if there is an ongoing medication{-}subject_medication{@}=={@}yes head_measurement_unit{-}Required if head measurement was taken{-}head_measurement_taken{@}=={@}yes head_measurement{-}Required if head measurement was taken{-}head_measurement_taken{@}=={@}yes -subject_away_60cm_from_monitor{-}Required if subject cannot be 60cm away from montior{-}participant_away_60cm_from_monitor{@}=={@}no +subject_away_60cm_from_monitor_reason{-}Required if subject cannot be 60cm away from montior{-}subject_away_60cm_from_monitor{@}=={@}no impedance_measure{-}Required when impedance is measured{-}impedance_measured_before_applied{@}=={@}yes bad_electrodes{-}Required when bad electrodes are present{-}bad_electrodes_present{@}=={@}yes bad_channels{-}Required when bad channels are present{-}bad_channels_measured_after_applied{@}=={@}yes From 1f5273644590f95f5cbe9bd63c494a5501ebbe19 Mon Sep 17 00:00:00 2001 From: regisoc Date: Mon, 3 Apr 2023 16:40:30 -0400 Subject: [PATCH 17/18] remove blank line --- raisinbread/instruments/eeg_acquisition_form.linst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/raisinbread/instruments/eeg_acquisition_form.linst b/raisinbread/instruments/eeg_acquisition_form.linst index 22b732e6d8f..b9e6a3a05f6 100644 --- a/raisinbread/instruments/eeg_acquisition_form.linst +++ b/raisinbread/instruments/eeg_acquisition_form.linst @@ -117,4 +117,4 @@ select{@}task4_subject_mood_rating{@}Task 4 Subject Mood Rating{@}NULL=>''{-}'1' textarea{@}task4_subject_mood_rating_comments{@}Comments on subject mood select{@}task4_subject_mood_rating_comments_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' textarea{@}task4_comments{@}Comments on Task 4 -select{@}task4_comments_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' +select{@}task4_comments_status{@}{@}NULL=>''{-}'not_answered'=>'Not Answered' \ No newline at end of file From feee5772b8366ef5c9ce7593aa6a0ecb5d3f7a15 Mon Sep 17 00:00:00 2001 From: regisoc Date: Mon, 3 Apr 2023 17:27:03 -0400 Subject: [PATCH 18/18] typo --- raisinbread/instruments/eeg_acquisition_form.rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/raisinbread/instruments/eeg_acquisition_form.rules b/raisinbread/instruments/eeg_acquisition_form.rules index 41b49fba34a..0903eefd470 100644 --- a/raisinbread/instruments/eeg_acquisition_form.rules +++ b/raisinbread/instruments/eeg_acquisition_form.rules @@ -6,7 +6,7 @@ behavioural_assistant{-}Required if there is a behavioural assistant{-}behaviour subject_medication_dosage{-}Required if there is an ongoing medication{-}subject_medication{@}=={@}yes head_measurement_unit{-}Required if head measurement was taken{-}head_measurement_taken{@}=={@}yes head_measurement{-}Required if head measurement was taken{-}head_measurement_taken{@}=={@}yes -subject_away_60cm_from_monitor_reason{-}Required if subject cannot be 60cm away from montior{-}subject_away_60cm_from_monitor{@}=={@}no +subject_away_60cm_from_monitor_reason{-}Required if subject cannot be 60cm away from monitor{-}subject_away_60cm_from_monitor{@}=={@}no impedance_measure{-}Required when impedance is measured{-}impedance_measured_before_applied{@}=={@}yes bad_electrodes{-}Required when bad electrodes are present{-}bad_electrodes_present{@}=={@}yes bad_channels{-}Required when bad channels are present{-}bad_channels_measured_after_applied{@}=={@}yes