Popis konfiguračního souboru
Formát souboru je JSON. Podrobný úvod do formátu je zde: https://www.json.org/json-cz.html, stručný úvod potom máme zde: Úvod do jazyka JSON
Tohle je mnohostránkové zobrazení této sekce. Klikněte sem pro tisk.
Formát souboru je JSON. Podrobný úvod do formátu je zde: https://www.json.org/json-cz.html, stručný úvod potom máme zde: Úvod do jazyka JSON
Konfigurační soubor musí být validní JSON. Zkontrolovat je možné např. zde: https://jsonlint.com/.
Systém předpokládá, že celý definiční soubor dotazníku je jeden objekt.
Základní typy hodnot jsou:
Pro zápis se používají složené závorky. Objekt má parametry a hodnoty parametrů. Název parametru je v uvozovkách, po dvoujtečce následuje hodnota. Jednotlivé parametry s hodnotami musí být oddělené čárkami.
Zde je ukázaný jednoduchý objekt, který má parametr title a parametr name. Hodnota obou parametrů je textový řetězec.
{
"title": "Test dotazniku na trauma",
"name": "self_register_authorizer"
}
Jednotlivé parametry musí být oddělené čárkami. Hodnota parametru může být řetězec, číslo, další objekt nebo pole objektů (viz dále). Jednotlivé parametry jsou popsány u typů objektů. V současné době systém nekontroluje chybně pojmenované parametry a ignoruje je.
Pole je množina seřazených objektů. Jestli parametry v objektu (viz výše) mají své jméno, jednotlivé prvky pole jsou určeny pouze pořadím. V JSONu moho pole obsahovat různé objekty nebo i další pole.
Pro zápis se používají hranaté závorky. Nápříklad stránky v dotazníku jsou zapsány jako pole:
{
"title": "Test dotazniku na trauma",
"authorizer": "self_register_authorizer",
"pages": [
{
"id": "page1",
"items": [
]
}
]
}
pages
i items
jsou pole, které mohou obsahovat neomezené množství dalších objektů. Pro větší přehlednost se držíme
praxe, že parametry typu pole jsou pojmenovány v množném čísle, tj. pages (stránky), items (položky).
Základní konfigurační soubor pro dotazníky vypdá následovně:
{
"title": "Dotazník",
"authorizer": "self_register_authorizer",
"progress_bar": true,
"questionnaire_locales": [
"en",
"sk",
"cs"
],
"globals": {
"slider": {
"min": 0,
"max": 100,
"step": 10
}
},
"intro": {
"cs": [
"Vážení kolegové"
],
"en": [
"EN: Vážení kolegové,"
],
"sk": [
"Vážení kolegovia,"
]
},
"detailed_intro": {
"cs": [
"V následujících bodech máme povinnost Vás informovat o z....",
"Veškerá práva a povinnosti při zpracování ..."
],
"en": [
"EN: V následujících bodech máme povinnost Vás informovat o z....",
"EN: Veškerá práva a povinnosti při zpracování ..."
],
"sk": [
"V nasledujúcich bodoch máme povinnosť Vás informovať o ...",
"Všetky práva a povinnosti pri spracovaní ..."
]
},
"consent": {
"en": "EN: Četl jsem a souhlasím se zásadami ochrany osobních údajů",
"cs": "Četl jsem a souhlasím se zásadami ochrany osobních údajů",
"sk": "SK: Četl jsem a souhlasím se zásadami ochrany osobních údajů"
},
"pages": [
{
"type": "page",
"id": "page-one",
"items": [
{
"name": "sex",
"type": "single_choice_radio",
"text": {
"en": "You are a",
"cs": "Jste",
"de": "Sind Sie"
},
"values": {
"1": {
"en": "Man",
"cs": "Muž",
"de": "Mann"
},
"0": {
"en": "Woman",
"cs": "Žena",
"de": "Frau"
}
}
}
]
},
{
"type": "page",
"id": "page-two",
"items": [
]
},
{
"type": "page",
"id": "page-three",
"items": [
]
}
],
"results": [
]
}
Tohle je trivální dotazník, který má úvod a potom se respondenta zeptá pouze na jedinou otázku - jestli je muž nebo žena.
Než je dotazník spuštěn a než se zobrazí první otázky, musí se zobrazit úvod a souhlas respondenta.
{
"intro": {
"cs": [
"Vážení kolegové"
],
"en": [
"EN: Vážení kolegové,"
],
"sk": [
"Vážení kolegovia,"
]
},
"detailed_intro": {
"cs": [
"V následujících bodech máme povinnost Vás informovat o z....",
"Veškerá práva a povinnosti při zpracování ..."
],
"en": [
"EN: V následujících bodech máme povinnost Vás informovat o z....",
"EN: Veškerá práva a povinnosti při zpracování ..."
],
"sk": [
"V nasledujúcich bodoch máme povinnosť Vás informovať o ...",
"Všetky práva a povinnosti pri spracovaní ..."
]
},
"consent": {
"en": "EN: Četl jsem a souhlasím se zásadami ochrany osobních údajů",
"cs": "Četl jsem a souhlasím se zásadami ochrany osobních údajů",
"sk": "SK: Četl jsem a souhlasím se zásadami ochrany osobních údajů"
}
}
Všechny položky mohou být buďto přímo jako jednoduché textové řetězce, např:
"intro": "Vážení kolegové"
Nebo jako multijazykové řetězce:
{
"intro": {
"cs": [
"Vážení kolegové"
],
"en": [
"Dear colleagues,"
],
"sk": [
"Vážení kolegovia,"
]
}
}
Blíže viz Lokalizace dotazníků do více jazyků
v samostatném bloku nad tlačítkem Nejsem robot (reCaptcha).
V objektu dotazník questionnaire je parameter pages
, což je pole, ve kterém jsou jednotlivé stránky.
Pole znamená že položky jsou uzavřeny do hranatých závorek []
a jsou v něm vloženy seřazené objekty typu page.
{
"pages": [
{
"type": "page",
"id": "page-one",
"items": [
{
"name": "sex",
"type": "single_choice_radio",
"text": "Jste",
"values": {
"m": "Muž",
"f": "Žena"
}
}
]
},
{
"type": "page",
"id": "page-two",
"items": [
{
"name": "sex",
"type": "single_choice_radio",
"text": "Jste",
"values": {
"m": "Muž",
"f": "Žena"
}
}
]
}
]
}
V dotazníku v poli pages
jsou jednotlivé stránky. Stránka je definována jako objekt s paremetre "type": "page"
.
Například
{
"type": "page",
"id": "page-two",
"display_conditions": [
{
"field": "family_status",
"value_in": [
"1",
"3"
]
}
],
"items": [
{
"name": "sex",
"type": "single_choice_radio",
"text": "Jste",
"values": {
"m": "Muž",
"f": "Žena"
}
}
],
"conditions": [
{
"field": "pohlavi",
"value": "m",
"jump": "page-three"
}
],
"auto_forward": 25
}
Parametry:
pohlavi
už musí být v databázi uložená. Blíže
viz Podmínečné zobrazenípohlaví
má hodnotu m
. Pokud ano, tak přeskočí (jump) na stránku page-three
.
Mechanismus conditions
je poměrně neobratný, protože je potřeba používat více stránek.Podpora vícejazyných dotazníků (lokalizace) má tři úrovně.
Úroveň systému - zde jsou přeloženy různé systémové hlášky (tlačítka apod). Aktuálně jsou tyto prvky přeležné do jazyků čeština, angličtina, němčina, slovenština.
Úroveń dotazníků - top level parameter questionnaire_locales
musí obsahovat pole s podporovanými jazyky tohoto
dotazníku. Jazyky jsou uváděny zkrácenými
jazykovými ISO kódy (ISO 639-1)
Úroveň jednotlivých textů. Například většina otázek má parametr text
, který se zobrazí u samotné otázky. Například
jednoduchá otázka na pohlaví:
{
"name": "sex",
"type": "single_choice_radio",
"text": "Jste",
"values": {
"m": "Muž",
"f": "Žena"
}
}
Zobrazuje respondentovi popisek Jste a hodnoty Muž a Žena. Každý zobrazovaný řetězec může být lokalitován jako objekt, kde parametry jsou názvy jazyků a hodnoty potom přeložené jazyky. Lokalizovaná otázka potom vypadá takto:
{
"name": "sex",
"type": "single_choice_radio",
"text": {
"en": "You are a",
"cs": "Jste",
"de": "Sind Sie"
},
"values": {
"1": {
"en": "Man",
"cs": "Muž",
"de": "Mann"
},
"0": {
"en": "Woman",
"cs": "Žena",
"de": "Frau"
}
}
}
Tento přístup jsme zvolili, protože v praxi se ukázalo, že udržovat paralelně 3 jazykové verze téhož rozsáhlého dotazníku jako samostatné soubory představuje velmi vážnou hrozbu pro duševní zdraví výzkumníků.
Je také možné omezit zobrazení některých textů či voleb v jednotlivých jazycích tím, že místo textového řetězce uvedeme speciální hodnotu false (nepravda).
Například otázka na etnicitu:
{
"name": "ethnicity",
"type": "single_choice_radio",
"text": {
"en": "Please, select your ethnicity",
"cs": "Jaká je Vaše etnická příslušnost?",
"de": "Bitte, wählen Sie Ihre Ethnizität aus"
},
"values": {
"1": {
"en": "Asian",
"cs": "Asiat",
"de": "Asiatisch"
},
"2": {
"en": "White",
"cs": "Běloch",
"de": "Weiß"
},
"3": {
"en": "Black or African American",
"cs": "Afričan nebo Afro-Američan",
"de": "Afrikaner oder Afroamerikaner"
},
"4": {
"en": "Hispanic or Latino or Spanish Origin of any race",
"de": "Hispanoamerikanisch oder Latino oder andere spanische Herkunft",
"cs": false
},
"5": {
"en": "Native Hawaiian or Other Pacific Islander",
"de": false,
"cs": false
},
"6": {
"en": "American Indian or Alaska Native",
"de": false,
"cs": false
}
}
}
V tomto případě se hodnoty 1, 2 a 3 zobrazí ve všech jazykových mutacích dotazníku. Hodnota 4 se zobrazí pouze v německé a anglické verzi, hodnota 5 a 6 potom pouze v anglické jazykové mutaci. Předpokládáme zde, že mezi německy mluvícími respondenty nebudou Havaji ani Indiáni.
Systém je koncipován maximálně flexibilně, takže přeložené a nepřeložené řetězce je možné používat vedle sebe i v jednotlivých otázkách. Zde například hodnoty pro tabulku:
{
"values": {
"1": {
"en": "Strongly disagree (1)",
"cs": "Naprosto nesouhlasím (1)"
},
"2": "(2)",
"3": "(3)",
"4": "(4)",
"5": "(5)",
"6": "(6)",
"7": {
"en": "Strongly agree (7)",
"cs": "Naprosto souhlasím (7)"
}
}
}
Hodnoty 1 a 7 budou přeloženy, zatímco hodnoty 2 - 6 zůstávají stejné a není potřeba pro ně vytvářet pole jazykových hodnot.
Pro opakované využívání je možné využívat moduly. Může jít o opakované použití v rámci jednoho dotazníku nebo v různých dotaznících. Typické scénáře mohou zahrnovat:
V adresáři questionnaires
je podadresář modules.
Moduly mají tento formát:
{
"questions": [
{
"type": "wrapper",
"name" : "activity_feedback",
"items": [
{
"type": "question_table",
"name": "params",
"text": "Tato aktivita pro mě byla:",
"values": {
"1": "1 - Vůbec",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "8",
"9": "9",
"10": "10 - Maximálně"
},
"questions": [
{
"name": "understandable",
"text": "Srozumitelná – bylo snadné pochopit, co máme dělat"
},
{
"name": "interesting",
"text": "Zajímavá – aktivita nás bavila, bylo příjemné ji dělat"
},
{
"name": "helpful",
"text": "Přínosná -dozvěděl/a jsem se něco nového nebo jsem se něco nového naučil/a"
}
]
},
{
"type": "text_value",
"name": "text",
"text": "Chcete nám k této aktivitě ještě něco sdělit? Prosím napište nám to.",
"rows": 4,
"optional": true
}
]
}
]
}
Musí zde být obsažená položka questions
. V jejím poli se potom nachází jedna nebo více otázek. Pokud je otázek
více, tak při vložení do dotazníku musíme specifikovat, kterou otázku z dotazníku chceme využít pomoci direktivy
section
.
Dále zde vidíme použitý objekt Wrapper, který zajistí, že se budou všechny otázky vkládat dohromady. Ve wrapperu potom máme jednu tabulku a jednu otázku s volným textem.
Moduly se vkládají pomocí direktivy "type": "import"
:
{
"type": "import",
"source": "FAST/activity_feedback"
"name": "feedback_lottery",
}
Direktiva source
určuje odkud se modul načítá. Výchozí bod je adresář modules, zde je použitý jeho podadresář
FAST (obsahuje moduly pro použití v Programu FAST).
Důležitá je direktiva name
. Ta určuje, jaký prefix se vloží před název proměnné. Díky ní je možné použít modul
ve výzkumu opakovaně, takže výsledné proměnné se budou jmenovat odlišně. Výsledné proměnné v tomto případě se budou
jmenovat:
Logika složeného názvu:
Pokud potom použijeme další import, například v této podobě:
{
"type": "import",
"source": "FAST/activity_feedback"
"name": "feedback_family_group",
}
Tak dostaneme následující proměnné:
Aby se předešlo primingu v rámci dotazníků - https://en.wikipedia.org/wiki/Priming_(psychology), tak je možn u vybraných částí dotazníků měnit pořadí položek.
Je možné náhodně měnit pořadí u:
"shuffle": true
přímo v hlavním objektu dotazníku)"shuffle": true
v objektu typu page)"shuffle": true
na otázce
question_table a
complex_question_table)"shuffle": true
na otázkách
single_choice,
single_choice_radio,
multiple_choice)Nastavení náhodného pořadí je určeno parametrem shuffle. K němu je ve všech případech možné nastavit ještě pomocné parametry:
"shuffle_offset_start": 1
- kolik položek ze začátku vyřadit z míchání (tj. kolik stránek zůstane
v původním pořadí)"shuffle_offset_end": 1
- kolik položek od konce se vyřadí z mícháníPoložkami zde chápeme buďto jednotlivé stránky, položky na stránce, řádky v tabulce nebo položky otákzy. Ilustrovat to můžeme u dotazníku. Pokud máme stránky page-1 až page-5 a oba offsety nastavím na 1:
{
"title": "Dotazník",
"shuffle": true,
"shuffle_offset_start": 1,
"shuffle_offset_end": 1,
"pages": [
{
"id": "page-1"
},
{
"id": "page-2"
},
{
"id": "page-3"
},
{
"id": "page-4"
},
{
"id": "page-5"
}
]
}
Tak výsledné možné kombinace stránek jsou:
V průběhu vyplňování potřebujete, pokud se na základě dat, která uživatel vyplnil některé otázky nebo celé stránky zobrazí nebo naopak skryjí. Například pokud máte sadu utázek pouze pro ženy, tak tyto otázky budete chtít zobrazit pouze pokud předtím respondent vybral odpověď “žena”.
Statické podmínky předpokládají, že data už byla vyplněna na předcházejících stránkách a v tuto chvíli jsou už uloženy v databázi.
Statická podmínka se může týkat celé stránky, nebo se může týkat i jediné otázky.
Pokud se statická podmínka týká celé stránky, tak při nesplnění podmínky se stránka přeskočí. Zde například, pokud na otázku family_status byla vybrána odpověď married (ženatý) nebo in_relationship (ve vztahu), tak se zobrazí modul KMSS, což je dotazník Kansas Marital Satisfaction Scale. Pokud vybere respondent jinou hodnotu, stránka se přeskočí.
{
"type": "page",
"id": "page-kmss",
"display_conditions": [
{
"field": "family_status",
"value_in": [
"married",
"in_relationship"
]
}
],
"items": [
{
"name": "KMSS",
"type": "import",
"source": "KMSS"
}
]
}
Pro jednotlivou otázku by stejná podmínka vypada následovně:
{
"name": "spokojenost ve vztahu",
"type": "single_choice_radio",
"text": "Jste ve vztahu spokojeni?",
"values": {
"0": "Ne",
"1": "Ano"
},
"condition": [
{
"field": "family_status",
"value_in": [
"married",
"in_relationship"
]
}
]
}
Jsou podporovány následující typy podmínek:
value: "1"
- hodnota musí být 1value_in: ["1", "2", "3", "4"]
- hodnota musí nabývat jedné z hodnot, uvedených v polivalue_not: "1"
- hodnot NENÍ 1value_not_in: ["1", "2", "3", "4"]
- hodnota NESMÍ nabývat žádné z hodnot v politolerant: true|false
- výchozí hodnota je false. Standardně pokud systém vyhodnocuje podmínku a nenajde
příslušnou proměnnou v už uložených datech respondenta, tak skončí s chybou ConfigurationSystemException. V
některých situací je ale žádoucí, aby podmínka byla tolerantní, takže pokud je nastavena hodnota tolerant: true
, tak potom systém tuto podmínku vyhodnotí jako nesplněnou, pokud nenajde zdrojová data a nebude vyhazovat
chybu.Parametr display_conditions
nebo conditions
je pole, takže je možné zadat více podmínek. Vyphodnocování
probíhá v pořadí jak jsou podmínky zadány a pro zobrazení otázky nebo stránky stačí, pokud jedna podmínka je vyhodnocena
pozitivně. Podmínky jsou tedy ve vztahu nebo.
Podmínky jsou vyhodnocovány i při odeslání, takže pokud je otázka zobrazena, tak se kontroluje i jestli je vyplněná.
Dynammické podmínky se používají, pokud se dynamicky mění zobrazení formuláře přímo v prohlížeči, tj. při zaškrtnutí některé otázky se přímo zobrazí nebo naopak skryjí.
Jednoduchá uzkázka:
{
"type": "page",
"id": "page101",
"items": [
{
"name": "sex",
"type": "single_choice_radio",
"text": "Jste:",
"values": {
"0": "Muž",
"1": "Žena"
}
},
{
"name": "sex_confirmation",
"type": "single_choice_radio",
"text": "Skutečně jste žena?",
"values": {
"0": "Ano",
"1": "Ne"
},
"display_if": {
"what": "sex",
"value": "1"
}
},
{
"type": "statement",
"name": "final",
"text": "End of All Questions."
}
]
}
Na této stránkce, pokud vybereme odpověď Muž, tak se nezobrazí další otázka:
Pokud vybereme odpověď Žena, tak se zobrazí doplňující otázka:
Dynamická podmínka se vyhodnocuje i při odeslání. Pokud je splněná, tak se u zobrazené otázky kontroluje, jestli je vyplněná. Takže za těchto okolností, pokud respondent vybere že je Žena a nedoplní, jestli je skutečně žena, tak mu systém nedovolí pokračovat na další stránku.
Je možné zaráz odkazovat více hodnot. Tyto hodnoty potom musíme uvést jako pole. Můžeme odkazovat na různé hodnoty pro single_choice nebo na více hodnot multiple_choice. Např:
{
"display_if": {
"what": "nemoci",
"value": [
"1",
"2",
"3",
"4"
]
}
}
Poslední možností zpracování podmínek je vyhodnocení stránky po jejím uložení a následně přeskočení na jinou stránku.
Klíčový je parametr jump
, který určuje na kterou stránku, označenou pomocí id:
parametru po vyplnění a
úspěšném vyhodnocení podmínky systém přeskočí.
{
"pages": [
{
"type": "page",
"id": "page_1",
"items": [
{
"name": "sex",
"type": "single_choice_radio",
"text": "Jste:",
"values": {
"m": "Muž",
"f": "Žena"
}
}
],
"conditions": [
{
"field": "sex",
"value": "m",
"jump": "page_for_all"
}
]
},
{
"type": "page",
"id": "page_for_women",
"items": [
{
"name": "question_for_women%_1",
"type": "single_choice_radio",
"text": "1. Otázka pouze proženy",
"values": {
"0": "Ano",
"1": "Ne"
}
},
{
"name": "question_for_women_2",
"type": "single_choice_radio",
"text": "2. Otázka pouze proženy",
"values": {
"0": "Ano",
"1": "Ne"
}
}
]
},
{
"type": "page",
"id": "page_for_all",
"items": [
{
"name": "question_for_everyone",
"type": "single_choice_radio",
"text": "Otázka pro všechny",
"values": {
"0": "Ano",
"1": "Ne"
}
}
]
}
]
}
V tomto dotazníku pokud respondent vyplní hodnotu “Muž”, tak přeskočí na stránku page_for_all
. Pokud vybere
hodnotu žena, tak se zobrazí stránka s otázkami “1. a 2. otázka pouze pro ženy”.
Pomocí této logiky jde realizovat velmi složité postupy pro řízení průchodu dotazníkem. Nicméně oproti výše uvedeným
metodám display_conditions
je tento způsob poměrně složitý a komplikovaný na otestování.
Aby se předešlo situacím, že respondent v online dotazníku uvidí obrázek v enormně široké podobně,
v konfiguračním souboru se přidá k obrázku následující parametr: "orientation": "vertical"
.
Tento parametr zajistí adekvátní velikost obrázku. Po zakomponování tohoto parametru je vypadá
výsledná konfigurace např. takto:
{
"type": "page",
"id": "page-RMET1",
"items": [
{
"name": "RMET_1",
"type": "image_choice",
"orientation": "vertical",
"text": {
"en": false,
"cs": "Který emoční výraz nejlépe vystihuje obrázek obličeje?",
"de": false
},
"image": "RMET_1.png",
"values": {
"1": "hravý",
"2": "utěšující",
"3": "podrážděný",
"4": "znuděný"
}
}
]
}
Systém umí vyhodnocovat výsledky dotazníků a zobrazovat je respondentům. Toto zobrazení dotazníků funguje pouze u respondentů, kteří přišli přes web. Respondenti z jiných brokerů jsou hned po vyplnění odeslání zpět na stránky brokera.
{
"results": [
{
"type": "single_value_result",
"name": "GSES",
"algorithm": "sum",
"min_value": 1,
"max_value": 4,
"question_names": [
"GSES_1",
"GSES _2",
"GSES _3",
"GSES _4",
"GSES_5",
"GSES_6",
"GSES _7",
"GSES _8"
],
"reversed_question_names": [],
"histogram": true,
"debug": false,
"display": {
"header": "Prožívání hanby a viny",
"body": "Prožívání pocitů zahanbení a viny, které odpovídá na konkrétní jednání, je podstatná a usměrňující síla pro život jedince i společnosti. Nadměrné a neadekvátní prožívání těchto pocitů však může život člověka ovlivňovat negativně a může se stávat překážkou jeho dalšího růstu. Vaše průměrné skóre je: <b>{numeric_result}</b>, přičemž průměrné skóre zjištěné u předchozího online vzorku české populace bylo 2,1."
}
},
{
"type": "single_value_result",
"name": "DSES",
"algorithm": "sum",
"min_value": 1,
"max_value": 6,
"question_names": [
"DSES_1",
"DSES_2",
"DSES_3",
"DSES_4",
"DSES_5",
"DSES_6",
"DSES_7",
"DSES_8",
"DSES_9",
"DSES_10",
"DSES_11",
"DSES_12",
"DSES_13",
"DSES_14",
"DSES_15"
],
"reversed_question_names": [],
"histogram": true,
"debug": false,
"display": {
"header": "Spiritualita",
"body": "V testu spirituality jste dosáhli výsledku: <b>{text_result}</b>. V míře spirituality tedy dosahujete vyšších výsledků než {percentil}% lidí, kteří vyplnili tento dotazník před Vámi. Průměrné skóre v české populaci je 27,6 bodů (medián 21,5)."
}
},
{
"type": "single_value_result",
"name": "HSPS_cutoff",
"algorithm": "cutoff_greater",
"cutoff_value": 5,
"question_names": [
"HSPS_1",
"HSPS_2",
"HSPS_3",
"HSPS_4",
"HSPS_5",
"HSPS_6",
"HSPS_7",
"HSPS_8",
"HSPS_9",
"HSPS_10",
"HSPS_11",
"HSPS_12",
"HSPS_13",
"HSPS_14",
"HSPS_15",
"HSPS_16",
"HSPS_17",
"HSPS_18",
"HSPS_19",
"HSPS_20",
"HSPS_21",
"HSPS_22",
"HSPS_23",
"HSPS_24",
"HSPS_25",
"HSPS_26",
"HSPS_27"
],
"debug": false,
"display": {
"header": "Senzitivita",
"rated_body": {
"15": [
"<p>Tento dotazník byl zaměřen na vysokou citlivost, která se týká zhruba 10-20% populace. ",
"Vysoce citliví lidé vnímají okolní vlivy s vyšší intenzitou než ostatní a často i více vlivů najednou. ",
"Vyšší citlivost se může projevovat jako intenzivnější vnímání některými (nebo všemi pěti) smysly nebo jako intenzivnější vnímání emocí a nálad druhých lidí. Není výjimkou, ",
"že se u vysoce citlivých lidí projevuje kombinace obou druhů vyšší citlivosti. Vysoká citlivost jde ruku v ruce s vyšší tendencí být otevřený vůči novému, ",
"|ale taktéž s vyššími nároky na zvládání různých podnětů.</p>",
"<p>Na základě zjednodušeného vyhodnocení tohoto testu zřejmě do této kategorie nespadáte,",
"pokud jste ale u více otázek dali 7 bodů, není vyloučené, že jste vysoce citlivým člověkem a doporučujeme Vám v tom případě projít si další internetové zdroje, ",
"např. níže uvedené odkazy. I pokud se toto téma netýká Vás osobně, zcela jistě se navíc týká někoho z Vašich blízkých či známých:</p>",
"<ul><li><a href='https://psychologie.cz/strach-z-odlisnosti/'>https://psychologie.cz/strach-z-odlisnosti/</a></li>",
"<li><a href='https://hledani-reseni.cz/vysoce-citlivi-lide/'>https://hledani-reseni.cz/vysoce-citlivi-lide/</a></li>",
"<li><a href='http://nadani-citlivosti.cz/nejcastejsi-otazky/'>http://nadani-citlivosti.cz/nejcastejsi-otazky/</a></li></ul>"
],
"1000": [
"<p>Vysoce citliví lidé vnímají okolní vlivy s vyšší intenzitou než ostatní a často i více vlivů najednou.",
"Vyšší citlivost se může projevovat jako intenzivnější vnímání některými (nebo všemi pěti) smysly nebo jako intenzivnější vnímání emocí a nálad druhých lidí.",
"Není výjimkou, že se u vysoce citlivých lidí projevuje kombinace obou druhů vyšší citlivosti.",
"Na základě výsledku tohoto testu jste pravděpodobně vysoce citlivá osoba. Vysoká citlivost jde ruku v ruce s vyšší tendencí být otevřený vůči novému, ale taktéž s vyššími nároky na zvládání různých podnětů. ",
"Žádný psychologický test však není tak přesný, aby na něm člověk založil svůj život. Z vlastní zkušenosti pravděpodobně sami nejlépe víte, zda se na Vás toto označení hodí.",
"Pokud jste se s touto otázkou dosud nesetkali, doporučujeme Vám projít si další internetové zdroje, např. níže uvedené odkazy:</p>",
"<ul><li><a href='https://psychologie.cz/strach-z-odlisnosti/'>https://psychologie.cz/strach-z-odlisnosti/</a></li>",
"<li><a href='https://hledani-reseni.cz/vysoce-citlivi-lide/'>https://hledani-reseni.cz/vysoce-citlivi-lide/</a></li>",
"<li><a href='http://nadani-citlivosti.cz/nejcastejsi-otazky/'>http://nadani-citlivosti.cz/nejcastejsi-otazky/</a></li></ul>"
]
}
}
},
{
"type": "single_value_result",
"name": "HSPS_average",
"algorithm": "average",
"min_value": 1,
"max_value": 7,
"question_names": [
"HSPS_1",
"HSPS_2",
"HSPS_3",
"HSPS_4",
"HSPS_5",
"HSPS_6",
"HSPS_7",
"HSPS_8",
"HSPS_9",
"HSPS_10",
"HSPS_11",
"HSPS_12",
"HSPS_13",
"HSPS_14",
"HSPS_15",
"HSPS_16",
"HSPS_17",
"HSPS_18",
"HSPS_19",
"HSPS_20",
"HSPS_21",
"HSPS_22",
"HSPS_23",
"HSPS_24",
"HSPS_25",
"HSPS_26",
"HSPS_27"
],
"histogram": true,
"debug": false,
"display": {
"body": [
"Vaše průměrné skóre je: <b>{numeric_result}</b>.",
"V současné době bohužel nemáme k dispozici reprezentativní česká data. Uvádíme ale průměrné hodnoty získané na online vzorku v ČR a dalších vzorcích v jiných zemích ",
"(pozor, ani zde se ale nejedná o reprezentativní vzorky, z těchto čísel tedy nelze usuzovat na hodnoty v celkové populaci, ale je potřeba je brát jako orientační).",
"<ul><li>Předchozí online vzorek české populace (51 % žen): průměr = 3,79 (medián 3,89) </li>",
"<ul><li>Vzorek 904 studentů psychologie z USA (58 % žen): průměr = 4.09 </li>",
"<li>Online vzorek 357 respondentů z USA (46 % žen): průměr = 3.95</li>",
"<li>Německý vzorek 898 respondentů (73 % žen): průměr = 4.54</li></ul"
]
}
},
{
"type": "single_value_result",
"name": "BFI-N",
"algorithm": "sum",
"min_value": 1,
"max_value": 7,
"question_names": [
"BFI_N_1",
"BFI_N_3",
"BFI_N_4",
"BFI_N_6",
"BFI_N_8"
],
"reversed_question_names": [
"BFI_N_2",
"BFI_N_5",
"BFI_N_7"
],
"histogram": true,
"debug": false,
"display": {
"header": "Neuroticismus",
"body": "Nízká míra neuroticismu je spjatá s odolností vůči stresu, duševní stabilitou a vyrovnaností. Naopak vysoká míra neuroticismu jde ruku v ruce s duševní disharmonií a častějším, intenzivnějším prožíváním negativních citových stavů jako smutek, obavy, vina, hněv. Vaše průměrné skóre je: <b>{numeric_result}</b>, přičemž průměrné skóre u české populace nabývá hodnoty 22,7."
}
},
{
"type": "single_value_result",
"name": "self_esteem",
"algorithm": "average",
"question_names": [
"Self_esteem_1",
"Self_esteem_3",
"Self_esteem_4",
"Self_esteem_7",
"Self_esteem_10"
],
"histogram": true,
"debug": false,
"display": {
"header": "Vztah k sobě",
"rated_body": {
"1": "Máte pozitivní vztah k sobě a dobrý pocit vlastní hodnoty (podobně jako 6 % Čechů).",
"2": "Máte poměrně dobrý vztah k sobě a pocit vlastní hodnoty (podobně jako 65 % Čechů).",
"10000": "Zdá se, že se Vám dosud nedaří důvěřovat pocitu Vaší vlastní hodnoty (podobně jako 22 % Čechů)."
}
}
},
{
"type": "single_value_result",
"name": "RSPM",
"algorithm": "check_values",
"correct_answers": {
"RSPM_11": "4",
"RSPM_24": "5",
"RSPM_28": "8",
"RSPM_36": "2",
"RSPM_43": "5",
"RSPM_48": "6",
"RSPM_49": "7",
"RSPM_53": "1",
"RSPM_55": "1"
},
"histogram": true,
"debug": false,
"display": {
"header": "Inteligenční kvocient:",
"body": "Tento test poskytuje velmi hrubý odhad inteligenčního kvocientu (IQ). Výsledky testu naznačují, že Vaše IQ je vyšší než u {percentil_high}% lidí, kteří absolvovali test před Vámi. Vzhledem k těmto lidem, čítá odhad vašeho IQ xxxxxx bodů. Je však nutné zdůraznit, že výsledek se může lišit od Vaší skutečné míry IQ. Váš výkon též může být ovlivněn řadou faktorů jako je například únava, pozornost apod. Z těchto důvodů je na místě Váš výsledek (IQ) nepřeceňovat."
}
},
{
"type": "complex_value_result",
"name": "eba-ret",
"algorithm": "third_faces",
"face_values": {
"anger": "Hněv",
"disgust": "Znechucení",
"fear": "Strach",
"joy": "Radost",
"neutral": "Neutrální",
"sadness": "Smutek"
},
"question_names": [
"EBA_RET1",
"EBA_RET2",
"EBA_RET3",
"EBA_RET4",
"EBA_RET5",
"EBA_RET6",
"EBA_RET7",
"EBA_RET8",
"EBA_RET9",
"EBA_RET10"
],
"spider_chart": true,
"debug": false,
"display": {
"header": "Vybrané emoce",
"body": [
"<p>Vybrané emoce ve Vašem prožívání vztahů: {selected_text}</p>"
]
}
},
{
"type": "single_value_result",
"name": "TEQ",
"algorithm": "sum",
"min_value": 1,
"max_value": 5,
"question_names": [
"TEQ_1",
"TEQ_CON_2",
"TEQ_3",
"TEQ_CON_4",
"TEQ_5",
"TEQ_CON_14",
"TEQ_16"
],
"reversed_question_names": [],
"histogram": true,
"debug": false,
"display": {
"header": "Empatie",
"body": "V testu empatie jste dosáhli výsledku: <b>{text_result}</b>. Jinými slovy, v míře empatie dosahujete lepších výsledků než {percentil}% lidí, kteří vyplnili dotazník před Vámi. Míra empatie souvisí s tím, jak jsme citliví vůči pozitivním či negativním emocím druhých lidí. Empatie též souvisí s naší schopností rozpoznávat emoce a ochotou zajímat se o duševní svět druhého člověka."
}
},
{
"type": "questionnaire_note",
"heading": "Poděkování",
"note": "Děkujeme za vaše odpovědi v dotazníku. Vážíme si času, který jste věnoval/a zodpovězení našich otázek. Pokud si přejete získat kopii výsledků, jakmile bude průzkum ukončen, uveďte prosím níže vaši e-mailovou adresu. Vaše kontaktní údaje nebudou v žádném případě spojeny s vašimi odpověďmi z dotazníku."
}
]
}
Dotazníky mají různé potřeby, jak registrovat a popřípadě autorizovat respondenty. Proto systém podporu 4 autorizační mechanismy. Tyto mechanismy se primárně vztahují na respondenty, kteří přicházejí sami na stránky Dotazníků. Nově už funkcionalitu autorizačních mechanismů částečně přebírají Zprostředkovatelé (brokeři)
Typ autorizace je specifikován parametrem authorizer
v top level konfiguraci dotazníku.
{
"authorizer": "self_register_authorizer"
}
SelfRegisterAuthorizer
je nejjednoduší autorizační mechanismus. Nový respondent, který začne vyplňovat dotazník,
obdrží unikátní kód. Respondent není žádným způsobem kontrolován. Pokud tentýž respondent přijde znovu, tak dostane nový
kód a není možné zkontrolovat, jestli náhodou už dotazník nevyplnil dříve.
{
"authorizer": "predefined_code_authorizer",
"authorizer_config": {
"code_file_name": "oxytocin-access-codes.csv"
}
}
Při zahájení dotazníku systém po respondentovi požaduje kód, který mu byl předán předem. Toto scháma bylo použito například při odběru slin, kdy kód by na zkumavce a následně se stejným kódem potom respondent vypňoval dotazník. Každý kód lze použít právě jednou.
code_file_name
je název souboru, ve který jsu uloženy kódy, jeden kód na řádek. Příklad použitých kódů:
SWIG
RNUF
REPY
DFWZ
TGQG
OWJZ
MIWY
AUTM
{
"authorizer": "optional_predefined_code_authorizer",
"authorizer_config": {
"code_file_name": "oxytocin-access-codes.csv"
}
}
Funguje jako oba výše uvedené mechanismy dohromady. Respondent je vyzván, aby zadal kód. Pokud ho zadá, tak se kód zkontroluje a pokud odpovídá a ještě nebyl použit, tak je respondent zaregistrován. Dále ale může respondent vstoupit bez kódu a potom je mu přidělen nový unikátní kód.
{
"authorizer": "reuse_code_authorizer",
"parent_research_id": 16
}
Pokud už respondent už dříve vyplnil jiný dotazník, tak na konci se mu může zobrazit jeho kód s poznámkou, aby si ho uložil. A potom s tímto kódem respondent vstoupí do nového dotazníku, čímž je zajištěno párování respondentů napříč dotazníky (retesty a podobně).
parent_research_id
označuje id (číselný identifikátor) předchozího dotazníku. Tady je syntaxe poněkud nekonzistentní,
protože paramer není uzavřen v bloku authorizer_config
.
Otázka musí být vždy obsažena v poli items
stránky. Jednoduchá otázka vypadá například takto:
{
"name": "family_status",
"type": "single_choice_radio",
"text": "Rodinný stav",
"values": {
"1": "zadaný/á",
"2": "nezadaný/á",
"3": "ženatý, vdaná",
"4": "rozvedený/á",
"5": "vdovec, vdova",
"6": "řeholník, řeholnice, kněz"
}
}
Společné povinné parametry jsou:
display_conditions
, display_if
) a skoků (page conditions).Volitelné parametry potom jsou:
optional
Ve výchozím stavu jsou všechny otázky povinné, takže pokud uživatel otázku nevyplní, tak po odeslání se stránka s otázkou zobrazí znovu, červeně zvýrazněná a nepustí respondenta dál, dokud otázku nevyplní.
Pokud má být otázka volitelná, tak stačí když bude mít nastaveno optional: true
.
display_conditions
Při načítání stránky se kontroluje, jestli testovaná hodnota už je v databázi a má požadovanou hodnotu. Příklad:
{
"name": "family_status",
"type": "single_choice_radio",
"text": "Rodinný stav",
"values": {
"1": "zadaný/á",
"2": "nezadaný/á",
"3": "ženatý, vdaná",
"4": "rozvedený/á",
"5": "vdovec, vdova",
"6": "řeholník, řeholnice, kněz"
},
"display_conditions": [
{
"field": "family_status",
"value_in": [
"1",
"3"
]
}
]
}
Pokud otázka family_status
má hodnotu 1 nebo 3, tak se tato otázka zobrazí, jinak ne. Otázka family_status
v tomto
případe musí už být na předchozích stránkách.
display_if
Zobraz pokud what
ma hodnotu value
. Hodnota se vyhodnocuje jak při načítání stránky, tak i dynamicky při
vyplňování dotazníku, takže je možné přímo v prohlížeči dynamicky měnit, které otázky uživatel vidí a nevidí.
{
"display_if": {
"what": "faith_religion",
"value": "1"
}
}
Technicky vzato statement
není otázka, ale pouze informativní blok textu, který se zobrazí mezi otázkami. Nepotřebuje
parametr name
, protože se z něj nic neukládá do databáze.
Příklad:
{
"type": "statement",
"text": "Na následující stránce se Vám zobrazí seznam slov ... "
}
Se zobrazí takto:
Ve textu je možné používat lokalizaci.
Dále je možné použít parametr values
, které se zobrazí jako seznam s odrážkami.
Otázka na vložení číselné hodnoty.
{
"name": "year_of_birth",
"type": "numerical_value",
"text": "Rok narození",
"min": 1900,
"max": 2003,
"float": false
}
Parametry:
Slider je vlastně rozšířením numerical_value. Získává číselnou hodnotu, ale uživatel posouvá posuvník, aniž by zadával konkrétní hodnotu.
{
"name": "protection",
"type": "slider",
"text": "Jak se nyní jako psychoterapeut chráníte ....",
"min_label": "nijak",
"max_label": "extrémně",
"min": 0,
"max": 100,
"step": 10
}
Vytvoří tuto otázku
Textový vstup.
{
"type": "text_value",
"name": "covid_description",
"text": "Pokud COVID-19 vstupuje do psychoterapeutických intervencí, jak je toto téma vašimi pacienty tématizováno?"
}
Zobrazí tuto otázku.
Otázka, kde respondent vybírá z více možností, přičemž může vybrat pouze jednu. Může být zobrazena jako tzv. drop down field (musí se rozkliknout) nebo se zobrazí všechny možnosti hned (radio buttons).
Parameter values
mapuje textové hodnoty, které uvidí respondent na hodnoty, které jsou potom uloženy v databázi a
následně exportovány. Takže pokud uživatel vybere např. možnost “ano, dlouhodobě”, tak se do odpovědí uloží hodnota 2.
Type parameter single_choice
{
"name": "psychotherapy_change",
"type": "single_choice",
"text": "Mění se podle Vašeho názoru kvůli pandemii COVID-19 činnost psychoterapeutů?",
"values": {
"0": "ne",
"1": "ano, krátkodobě (několik málo týdnů/měsíců)",
"2": "ano, dlouhodobě (více měsíců)"
}
}
Výchozí zobrazení:
Po rozliknutí:
{
"name": "psychotherapy_change",
"type": "single_choice_radio",
"text": "Mění se podle Vašeho názoru kvůli pandemii COVID-19 činnost psychoterapeutů?",
"values": {
"0": "ne",
"1": "ano, krátkodobě (několik málo týdnů/měsíců)",
"2": "ano, dlouhodobě (více měsíců)"
}
}
Zobrazení
Ukázka single_choice_radio
s kompletní lokalizací pro češtinu, angličtinu a slovenštinu.
{
"name": "psychotherapy_change",
"type": "single_choice_radio",
"text": {
"cs": "Mění se podle Vašeho názoru kvůli pandemii COVID-19 činnost psychoterapeutů?",
"en": "In your opinion, does the practice of psychotherapy change because of Covid-19 pandemics?",
"sk": "Mení sa podľa, Vášho názoru, kvôli koronavírusu (COVID-19) činnosť psychoterapeutov?"
},
"values": {
"0": {
"en": "no",
"cs": "ne",
"sk": "nie"
},
"1": {
"en": "EN: ano, krátkodobě (několik málo týdnů/měsíců)",
"cs": "ano, krátkodobě (několik málo týdnů/měsíců)",
"sk": "áno, krátkodobo (niekoľko málo týždňov/mesiacov)"
},
"2": {
"en": "EN: ano, dlouhodobě (více měsíců)",
"cs": "ano, dlouhodobě (více měsíců)",
"sk": "áno, dlhodobo (viac mesiacov)"
}
}
}
Otázka, u které respondent může vybrat více odpovědí zaráz.
Například:
{
"name": "onemocneni",
"type": "multiple_choice",
"text": "Máte dlouhotrvající onemocnění nebo postižení? Prosím označte všechny, které se na vás vztahují:",
"values": {
"1": "ischemická choroba srdce",
"2": "hypertenze",
"3": "cévní mozková příhoda / mozková mrtvice",
"4": "chronické plicní onemocnění",
"5": "astma",
"6": "rakovina",
"7": "diabetes",
"8": "obezita",
"9": "artritida",
"10": "bolesti zad",
"11": "žaludeční nebo dvanáctníkové vředy",
"12": "záněty střeva (Crohnova choroba, ulcerózní kolitida)",
"13": "kožní nemoci (ekzém)",
"14": "alergie",
"15": "migréna",
"16": "bolesti nejasného původu",
"17": "u žen – bolesti v malé pánvi (včetně gynekologických potíží)",
"18": "deprese",
"19": "onemocnění štítné žlázy",
"20": "psychiatrické obtíže",
"21": "žaludeční reflux",
"22": "ADHD (porucha pozornosti s hyperaktivitou)",
"23": "chronická únava",
"24": "psoriáza (lupénka)",
"26": "narcistická porucha osobnosti",
"27": "disociální porucha osobnosti (antisociální porucha osobnosti)",
"28": "hraniční porucha osobnosti",
"29": "úzkost",
"25": "<b>Žádné</b>",
"other": "Jiné"
}
}
Zobrazí tuto otázku
Pro popis semantického diferenciálu viz https://cs.wikipedia.org/wiki/S%C3%A9mantick%C3%BD_diferenci%C3%A1l
Konfigurační soubor obsahuje volitelný objekt values
, kde jsou záhlaví sloupců a pole questions
s otázkami.
Pokud se objekt values
nepoužije, tak tabulka nebude mít žádné záhlaví.
Questions jsou atypické tím, že místo jednoduchého textu mají položku left
a right
, které uvádějí popisku
vlevo a vpravo.
Samotná data se potom vkládají posuvníků. Nadpisy sloupců jsou tedy pouze orientační. Výsledné hodnoty jsou v rozsahu 0 - 100.
Systém kontroluje, jestli respondent pohnul s jednotlivými slidery. Pokud ano, tak slider zmodrá. Pokud ne, tak bude systém trvat na tom, aby respondent nastavil nějakou hodnotu.
Ukázka konfiguračního souboru.
{
"type": "semantic_differential",
"name": "regulations",
"text": "Můj postoj k vládním opatřením proti COVID - 19",
"values": {
"1": "extrémně",
"2": "mírně",
"3": "docela",
"4": "ani jedno<br>ani druhé",
"5": "mírně",
"6": "docela",
"7": "extrémně"
},
"questions": [
{
"name": "useful",
"left": "užitečná",
"right": "zbytečná"
},
{
"name": "efficient",
"left": "účinná",
"right": "neúčinná"
},
{
"name": "rational",
"left": "racionální",
"right": "iracionální"
},
{
"name": "manageable",
"left": "zvládnutelná",
"right": "nezvládnutelná"
},
{
"name": "appropriate",
"left": "přiměřená",
"right": "nepřiměřená"
},
{
"name": "pleasant",
"left": "příjemná ",
"right": "nepříjemná"
}
]
}
Vyvtvoří tento dotazník:
Po vybrání hodnot potom vypadá dotazník takto:
A výše ukázaný dotazník následně uloží tyto hodnoty:
Název | Hodnota |
---|---|
regulations_useful | 27 |
regulations_efficient | 39 |
regulations_rational | 63 |
regulations_manageable | 21 |
regulations_appropriate | 44 |
regulations_pleasant | 96 |
Speciální otázka, která se nezobrazí tazateli, ale administrátorně do ní následně může vkládat hodnoty. Původní use case pro tuto otázku je dotazník ke kortizolu, který vyplní respondent. Poté, co laboratoř vyhodnotí vzorky, tak si administrátor otevřet respondenta a ručně tam hodnoty vloží.
{
"name": "cortizol-morning",
"type": "admin_value"
},
{
"name": "cortizol-noon",
"type": "admin_value"
},
{
"name": "cortizol-evening",
"type": "admin_value"
},
{
"name": "cortizol-night",
"type": "admin_value"
}
Parametry:
Formát souboru je JSON. Podrobný úvod do formátu je zde: https://www.json.org/json-cz.html, stručný úvod potom máme zde: Úvod do jazyka JSON
Její definice zahrnuje otázky (Qeustion) a koomplexní odpovědi (parametr se jmenuje values).
Parametry:
complex_question_table
Samotná otázka už nemá vlastní typ, ale slouží pouze jako množina pod otázek, které se zobrazují v tabulce. Podotázky jsou definované pro celou tabulku, tj. pro celou sadu otázek.
Parametry:
Představují sloupce v tabulce. Parametry jsou následující:
Vyber jednu hodnoty z pole hodnot. Každá hodnota se zobrazuje jako sloupec v tabulce
Každý sloupec může mít samostatný typ - viz výběr níže.
Veber více hodnot z pole hodnot. Kazda hodnota se zobrazuje jako jako sloupec v tabulkce. Exportovaná hodnota je složena z vybraných hodnot spojených čárkou
Vyber jednu hodnotu z drop down menu
Textové po pro vložení komentáře. POkukd má více sloupců (tj. cols hodnot), tak jsou výsledné hodnoty spojení čárkou.
Název proměnných v exportu je konstruován takto:
NameTabulky_NázevOtázky_NazevPodotazky
tj. např. Trauma_Valka_VekZacatku: 15
Do tabulky je možné přidat parametr "shuffle": true
.
Potom se náhodně zamíchají otázky a vypíšou se v náhodném pořadí. Zároveň se vytvoří ještě jedna nová proměnná, do které se uloží pořadí otázek.
Ukázka definice komplexní tabulky:
{
"name": "trauma",
"type": "complex_question_table",
"values": [
{
"type": "generic",
"name": "age",
"text": "Kolik Vám bylo let, když to začalo/když se to stalo",
"cols": [
{
"name": "started",
"text": "",
"type": "numeric",
"min": 0,
"max": 100
}
]
},
{
"type": "generic",
"name": "age",
"text": "Kolik let to trvalo",
"cols": [
{
"name": "duration",
"text": "",
"type": "numeric",
"min": 0,
"max": 100
}
]
},
{
"type": "single_choice",
"name": "frequency",
"text": "Stalo se to",
"cols": [
{
"name": "once",
"text": "1x"
},
{
"name": "more_times",
"text": "vícekrát"
},
{
"name": "often",
"text": "často"
}
]
},
{
"type": "single_choice",
"name": "fear",
"text": "Byl tento zážitek spojen s intenzivními pocity strachu hrůzy nebo bezmoci?",
"cols": [
{
"name": "yes",
"text": "Ano"
},
{
"name": "no",
"text": "Ne"
}
]
},
{
"type": "single_choice",
"name": "fear_of_death",
"text": "Když se ta událost stala, myslel/a jste si, že vy nebo někdo jiný by mohl být zabit nebo vážně zraněn?",
"cols": [
{
"name": "yes",
"text": "Ano"
},
{
"name": "no",
"text": "Ne"
}
]
},
{
"type": "single_choice",
"name": "sharing",
"text": "Měla/a jsem s kým o tom mluvit",
"cols": [
{
"name": "yes",
"text": "Ano"
},
{
"name": "no",
"text": "Ne"
}
]
},
{
"type": "single_choice",
"name": "shame",
"text": "Bral/a jsem si to za vinu nebo jsem se za to styděl/a",
"cols": [
{
"name": "yes",
"text": "Ano"
},
{
"name": "no",
"text": "Ne"
}
]
},
{
"type": "generic",
"name": "influence",
"text": "Na stupnici 0-10: Jak moc Vás to ovlivnilo :",
"cols": [
{
"name": "life",
"text": "V dalším životě",
"type": "selector",
"value_list": {
"0": "0",
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "8",
"9": "9",
"10": "10"
}
},
{
"name": "lastyear",
"text": "V uplynulém roce",
"type": "selector",
"value_list": {
"0": "0",
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "8",
"9": "9",
"10": "10"
}
}
]
}
],
"questions": [
{
"name": "valka",
"text": "Válka"
},
{
"name": "terorismus",
"text": "Teroristický útok"
},
{
"name": "prepadeni",
"text": "Loupežné přepadení"
}
]
}
Představuje typickou dotazníkovou tabulku, kde v řádcích jsou otázky a ve sloupcích potom možné hodnoty, které uživatel vyplňuje.
Tento konfigurační soubor:
{
"name": "komunita",
"type": "question_table",
"text": "Do jaké míry souhlasíte s následujícími výroky?",
"values": {
"1": "Úplně souhlasím",
"2": "Spíše souhlasím",
"3": "Spíše nesouhlasím",
"4": "Vůbec nesouhlasím"
},
"questions": [
{
"name": "1",
"text": "Pravidla nastavená v mé komunitě mně osobně připadají mírná."
},
{
"name": "2",
"text": "Denní řád mé komunity mi celkově připadá zcela vyhovující."
},
{
"name": "3",
"text": "Denní řád mé komunity bych hodnotil/a jako velmi flexibilní.",
{
"name": "4",
"text": "V mé komunitě platí stejná pravidla pro každého člena/každou členku."
},
{
"name": "5",
"text": "Ve srovnání s jinými řeholními společenstvími bych to své hodnotil/a jako velmi volné."
},
{
"name": "6",
"text": "Žitá realita mé komunity podle mne zcela odpovídá stanovám."
},
{
"name": "7",
"text": "Žitá realita mé komunity podle mne zcela odpovídá současným výzvám papeže Františka a Kongregace pro instituty zasvěceného života a společnosti apoštolského života."
}
]
}
Vytvoří následující tabulku:
V konfiguraci jsou klíčové následující parametry:
Každý řádek v questions může být zobrazen podmínečně pomocí parametrů conditions:
{
"name": "7",
"text": "Žitá realita mé komunity podle mne zcela odpovídá současným výzvám papeže Františka a Kongregace pro instituty zasvěceného života a společnosti apoštolského života."
"conditions": [
{
"field": "gender",
"value": "1"
}
]
}
V tomto případě by se řádek 7 zobrazil pouze pokud by předchozí hodnota pole gender
byla 1, jinak se nezobrazí.
Dále question_table kompletně podporuje lokalizaci, jak u hodnot, tak u otázek. Viz Lokalizace dotazníků
Názvy exportovaných hodnot se skládají z názvu tabulky a následně názvů jednotlivých otázek (parametry name
).
Takže výše uvedená tabulka bude generovat hodnoty:
Hodnoty odpovídají screenshotu.
Do tabulky je možné přidat parametr "shuffle": true
.
Potom se náhodně zamíchají otázky a vypíšou se v náhodném pořadí. Zároveň se vytvoří ještě jedna nová proměnná, do které se uloží pořadí otázek. Pro dotazník DSES potom může proměnná vypadat takto:
Název | Hodnota | Typ otázky | Datum a čas |
---|---|---|---|
DSES_2 | 1 | TableLineQuestion | 2021-04-06 16:58:36 UTC |
DSES_8 | 1 | TableLineQuestion | 2021-04-06 16:58:36 UTC |
DSES_13 | 1 | TableLineQuestion | 2021-04-06 16:58:36 UTC |
DSES_11 | 1 | TableLineQuestion | 2021-04-06 16:58:36 UTC |
DSES_15 | 1 | TableLineQuestion | 2021-04-06 16:58:36 UTC |
DSES_4 | 1 | TableLineQuestion | 2021-04-06 16:58:36 UTC |
DSES_10 | 1 | TableLineQuestion | 2021-04-06 16:58:36 UTC |
DSES_6 | 1 | TableLineQuestion | 2021-04-06 16:58:36 UTC |
DSES_12 | 1 | TableLineQuestion | 2021-04-06 16:58:36 UTC |
DSES_5 | TableLineQuestion | 2021-04-06 16:58:36 UTC | |
DSES_3 | 1 | TableLineQuestion | 2021-04-06 16:58:36 UTC |
DSES_14 | 1 | TableLineQuestion | 2021-04-06 16:58:36 UTC |
DSES_7 | 1 | TableLineQuestion | 2021-04-06 16:58:36 UTC |
DSES_9 | 1 | TableLineQuestion | 2021-04-06 16:58:36 UTC |
DSES_1 | 1 | TableLineQuestion | 2021-04-06 16:58:36 UTC |
DSES_order | DSES_1,DSES_8,DSES_3,DSES_6,DSES_7,DSES_5,DSES_13,DSES_15,DSES_11,DSES_12,DSES_4,DSES_2,DSES_9,DSES_14, | ||
DSES_10 |
Wrapper je jednoduchá struktura, která umožňuje zabalit další otázky. Má dvojí využití.
Wrapper musí mít následující parametry:
Příklad:
{
"pages": [
{
"type": "page",
"id": "page-onemocneni",
"items": [
{
"name": "health",
"type": "wrapper",
"items": [
{
"name": "onemocneni",
"type": "multiple_choice",
"text": {
"en": "Do you have a long-term illness or disability? Please tick all that apply to you:",
"cs": "Máte dlouhotrvající onemocnění nebo postižení? Prosím označte všechny, které se na vás vztahují:",
"de": "Leiden Sie an einer langzeitigen (chronischen) Krankheit oder Behinderung? Bitte, kreuzen Sie alles an, was Sie betrifft:"
},
"values": {
"1": {
"en": "coronary heart disease",
"cs": "ischemická choroba srdce",
"de": "Ischämische Herzkrankheit"
},
"2": {
"en": "hypertension",
"cs": "hypertenze",
"de": "Bluthochdruck"
},
"3": {
"en": "stroke",
"cs": "cévní mozková příhoda / mozková mrtvice",
"de": "Schlaganfall"
}
}
},
{
"name": "lekari",
"type": "multiple_choice",
"text": {
"en": "Have you visited any of these specialists in the last twelve months (please do not count standard medical examinations that are recommended to all the people of your age/gender) - please mark all visited departments:",
"cs": "Navštívili jste v uplynulých dvanácti měsících některého z těchto specialistů (nepočítejte prosím standardní lékařské prohlídky doporučené všem osobám Vašeho věku/pohlaví) – označte prosím všechna navštívená oddělení:",
"de": "Haben Sie in den vergangenen zwölf Monaten einen dieser Spezialisten besucht? Untersuchungen, die plötzlich erforderlich sind, und nichtab einem bestimten alter empfolen werden (z.B. regelmäßige). Markieren Sie, bitte, alle besuchten Abteilungen:"
},
"values": {
"1": {
"en": "Dermatovenerology (treatment of skin and genital diseases)",
"cs": "Dermatovenerologie (léčba kožních a pohlavních chorob)",
"de": "Dermatologie und Venerologie (Haut- und Geschlechtskrankheiten)"
},
"2": {
"en": "Department of surgery",
"cs": "Chirurgie",
"de": "Chirurgie"
},
"3": {
"en": "Cardiology (treatment of heart disease)",
"cs": "Kardiologie (léčba srdečních chorob)",
"de": "Kardiologie (Herzkrankheiten)"
}
}
}
]
}
]
}
]
}
Proměnné ve finální exportu potom budou mít tuto podobu: