Survey YAML Objects

display label label info true string short name, eg "EAT-26"
title title info true string longer descriptive title, eg "Eating Attitudes Test (EAT-26)"
survey identifier identifier info true string
reference reference info false string
revision history revision_history info false string
comment comment info false string
scoring scoring info false string
permissions permissions info true string copyright, license, usage limitations or permissions information
healthkit fields healthkit survey_field false string array of healthkit items to be reported at end of survey collection, each defined by a key, a healthkit datatype (eg stepCount or weight or dietaryCalorieEnergy) and an optional interval (in seconds) if the healthkit datatype is cumulative across a time interval (such as steps in the last 24 h). For example: - key: stephour24 data_type: stepCount interval: 86400
sections sections survey_field true array an array of survey sections, each section consisting of its own title, instructions, and questions
section title title section_field true string
section instructions instructions section_field true string
section answers answers section_field true string array of possible multiple choice question answers (in the form {"text":<text>,"value":<value>}) which can be shared by multiple questions in the survey, and referenced by the YAML ampersand notation,
section questions questions section_field true array array of questions, each with a key, stem, type, and answers field (if pre-defined answers), and additional fields defined by specific question type
images images survey_field false map only required if asking image based questions. Map consists of extension field and descriptions array, for a collection of images. Image files are stored in a project folder "Images". Image files are named with ordinal numbers 1..n, with an extension (e.g. "jpg") specified in the images.extension field of the survey YAML -- so "1.jpg", "2.jpg", ... "<n>.jpg"
image file extension extension images_field false map image file extension of image collection, eg. jpg, if image file is named is eg 001.jpg
image descriptions description images_field false array array of strings, one for each image; each brief string describes corresponding image for labeling, eg for image 010.jpg description might be "cheese cake with strawberries and crumbles" (maybe expand descriptions to include meta data, like calories, or foodtype)

Question Types

kFQSurveyImagePairType image_pair foodsurvé choice 2 images, as specified in answer field, are presented from the 1..n image files as an ImagePreferenceQuestion and ImagePreferenceChoiceAnswer
kFQSurveyRandomImagePairsType random_image_pairs foodsurvé choice repeat 2 random images drawn from the 1..n image files, are presented as an ImagePreferenceQuestion and ImagePreferenceChoiceAnswer. A particular pair of 2 random images are only presented as a pair once per survey instantiation. The repeat field specifies the number of times the random question should be repeated, if random type. The questions will be labeled <question_key>0, <question_key1>, ... <question_key><repeat-1.
kFQSurveyHedonicScaleType hedonic_rating foodsurvé scale as specified in answer field, a single image presented from the 1..n image files as an HedonicScaleQuestion and HedonicScaleAnswer. The type of hedonic scale is specified in scale_type field of first item in answers
kFQSurveyRandomHedonicScaleType random_hedonic_rating foodsurvé scale repeat as specified in answer field, a random image presented from the 1..n image files as an HedonicScaleQuestion and HedonicScaleAnswer. The type of hedonic scale is specified in scale_type field of first item in answers. A particular random image is only presented once per survey instantiation The repeat field specifies the number of times the random question should be repeated, if random type. The questions will be labeled <question_key>0, <question_key1>, ... <question_key><repeat-1.
kFQSurveyMultipleChoiceType multiple_choice researchkit choice TextChoice with single answer
kFQSurveyMultipleChoiceMultipleAnswersType multiple_choice_multiple researchkit choice TextChoice with multiple answer
kFQSurveyBooleanType boolean researchkit boolean
kFQSurveyIntegerType integer researchkit numeric
kFQSurveyDecimalType decimal researchkit numeric
kFQSurveyTimeOfDayType time_of_day researchkit timeOfDay
kFQSurveyLocationType location researchkit
kFQSurveyTimeIntervalType time_interval researchkit timeInterval
kFQSurveyValueType value researchkit
kFQSurveyScaleType scale researchkit scale
kFQSurveyContinuousScaleType continuous_scale researchkit scale
kFQSurveyEmailType email researchkit text
kFQSurveyImageChoiceType image_choice researchkit choice
kFQSurveyTextScaleType text_scale researchkit
kFQSurveyValuePickerType value_picker researchkit
kFQSurveyInstructionType instruction researchkit expects instructions value; uses stem as title
kFQSurveyGenderType gender healthkit biologicalSex this type has no interval, since it is an instantaneous or permanent fact
kFQSurveyWeightType weight healthkit weight this type has no interval, since it is an instantaneous or permanent fact
kFQSurveyHeightType height healthkit height this type has no interval, since it is an instantaneous or permanent fact
kFQSurveyDateOfBirthType birthdate healthkit date this type has no interval, since it is an instantaneous or permanent fact
kFQSurveyStepCountType step_count healthkit numeric interval this type is summed over the given interval (in seconds)
kFQSurveyDietaryCaloriesType dietary_calorie_energy healthkit numeric interval this type is summed over the given interval (in seconds)
kFQSurveyActiveEnergyType active_energy_burn healthkit numeric interval this type is summed over the given interval (in seconds)
kFQSurveyBasalEnergyType basal_energy_burn healthkit numeric interval this type is summed over the given interval (in seconds)

Answer Types

choice choice value as string, or if kFQSurveyImagePairType, @"<image_index1>[=/</>]<image_index2>"
scale "<item_id>=<rating>" as string
boolean "true" or "false" as string
date time interval in seconds since Jan 1 1970 as double in string
timeInterval time interval in seconds as double in string
timeofDay "hh:mm" as string
text text
numeric "<stringvalue> <unit>" (if unit not nil)
height TODO: check how healthkit reports
weight TODO: check how healthkit reports
biologicalSex TODO: check how healthkit reports
 

© 2017 T.A. Houpt. Last updated 2018-01-07.