OUSHI Questionnaires Přehled
Webové adresy
Hlavní (produkční) verze systému je dostupná na adrese https://dotaznik.oushi.upol.cz. Testovací verze, která slouží
pro vývoj je dostupná na adrese http://dotaznik.korinek.link/.
Systém OQS má různé titulní stránky, podle toho, kdo k němu aktuálně přistupuje. Nepřihlášený uživatek (tj.
veřejnost) uvidí pouze seznam aktuálně aktivních a dostupných dotazníků. Přihlášený uživatel pootom uvidí objekty,
ke kterým má přístup
Přihlašování
Přihlašování se provádí přes ikonku osob v pravém horním rohu dotazníku. K přihlášení musíte použít OUSHI účet na
Google Apps - tj. účet ve formátu nekdo@oushi.upol.cz. Použitý účet musí mít aktivovanou dvoufaktorovou autorizaci,
kvůli lepší ochraně dat.
Po prvním přihlášení vám správce nastaví přístupová práva - tj. ke kterým výzkumům a ke kterým klinkám máte přístup.
Jednotlivé prvky systému
Dotazník je definován konfiguračním souborem. V něm je definována celá struktura dotazníku, včetně
jednotlivých otázek a logiky zobrazování otázek.
Dotazník patří k Výzkumu. Výzkumy najdete na adrese /researches. Je upravovat existující výzkumy, zakládat
nové. Sesbíraná data z výzkumu je možné exportovat do MS Excelu nebo do CSV formátu.
Výzkumy jsou k uživateli směřovány pomocí Brokerů. Brokerem je například Český národní panel, Kantar ale také
naše vlastní webová stránka. Broker je zprostředkovatel, který odesílá respondenty.
A nově v systému existují také tzv. Kliniky. Klinika má přiřazené výzkumy, vytváří se v ní klienti a slouží k
dlohodobému a opakovanému sledování definovaných jednotlivců například v kontextu psychoterapie.
1 - Co jsou to výzkumy
Přehled aktivních výzkumů je na stránce https://dotaznik.oushi.upol.cz/researches.
Výzkum je objekt, ke kterému patří právě jeden dotazník
definovaný konfiguračním souborem. K výzkumu se potom ukládají jednoliví respondenti,
kteří už dotazník zodpověděli. V rámci reálného věděckého výzkumného projeku můžete mít celou řadu dotazníků (na počátku
projeku, na konci apod.) Každý z těchto dotazníků je z pohledu OQS systému samostatný výzkum.
Přehled výzkumů
Přehled výzkumů vypadá takto:
Význam jednotlivých sloupců
- Název Název jak se výzkum zobrazuje v seznamech výzkumů.
- Popis Poznámky k výzkumu, zobrazují se pouze zde, respondenti je nevidí.
- Konfigurační soubor: JSON soubor s konfigurací otázek. Struktura souboru je popsána zde.
- Počet respondentů, kteří výzkum zahájili
- Počet dokončených respondenů, tj. těch, kteří výzkum dokončili, tj. dotazník vyplnili až do konce
- Datum zahájení, konfiguraovatelné, od kdy s dotazníkem pracovat
- Datum ukončení konfigurovatelné, kdy se dotazník přestane nabízet
Můžete zde vytvořit nový výzkum, popřípadě spustit hromadný export přes více výzkumů.
Jednotlivé výzkumy můžete Zobrazit - tj. zobrazí se všichni respondenti v daném výzkumu, Editovat, upravíte
parametry výzkumu a Smazat.
Smazání výzkumu
Pokud výzkumu smažete, tak se smažou jeho přiřazení a všechny uložené odpovědi respondentů! Toto smazání nelze vzít
zpět, s výjimkou obnovení databáze ze zálohy.
2 - Konfigurace dotazníků
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
2.1 - Ú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
Základní typy hodnot jsou:
- textový řetězec (text) - jde o text v uvozovkách. Text nesmí přesahovat více řádků.
- číslo - řada číslic, může před nimi být znaménko +/-
- logický datový typ (boolean) - nabývá dvou hodnot - ano/ne (pravda/nepravda). Pravda se zapisuje jako true, nepravda
jako false
- objekt - viz dále
- pole - viz dále
Objekt
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 objektů
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).
2.2 - Základní části konfiguračního souboru dotazníku
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.
Základní parametry:
- title - Titul dotazníku
- authorizer - modul pro konfiguraci přilašování uživatelů do dotazníku. Blíže viz Authorizer
- progress_bar - má se zobrazovat na každé stránce dotazníku ukazatel z kolika procent už je dotazník vyplněn? true
- questionnaire_locales - které jazyky má dotazník podporovat. Blíže
viz podpora vícejazyčných dotazníků
- globals - mechanismus pro globální nastavení parametrů u všech objektů konkrétního typu. V tomto případě si
ušetříme psaní, kdy u každé otázky typu slider nastavíme spodní a hodní hodnotu a krok po kolika se posouvá
2.2.1 - Úvod dotazníku
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ů"
}
}
- intro - úvod dotazníku, zobrazuje se vždy - na obrázku začíná textem “Vážení kolegové”. Dále je náhled
konfiguračního souboru zkrácený pro přehlednost.
- detailed_intro - podrobný úvod, zobrazuje se po kliknutí na tlačítko “Klikněte sem pro detailní popis výzkumu”.
- consent - přesný text k souhlasu se zaškrtávacími políčky. Bez zaškrtnutí tohoto políčka systém nepustí
respondenta při vyplňování dále.
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).
2.2.2 - Stránky v dotazníku
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"
}
}
]
}
]
}
Objekt typu page
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:
- id - jedinečný identifikáto stránky, nejlépe textový řetězec. Je povinnou položkou, bez něj nefunguje
náhodné pořadí stránke. Pokud je duplicitní, tak to způsobí chybu při načtení dotazníku.
- items - pole jednotlivých otázek (viz Typy otázek nebo sad otázek (viz
Sady otázek)
- display_conditions - podmínky pro zobrazení stránky, které se vyhodnocují při načítání stránky a ovlivňují, jestli
se stránka zobrazí nebo přeskočí. Hodnota, v tomto případě pole
pohlavi
už musí být v databázi uložená. Blíže
viz Podmínečné zobrazení
- conditions - pole podmínek, které se vyhodnocují po odeslání odpovědí stránky. Tato položka vyhodnotí, jestli
pole (field)
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.
- auto_forward - po zadaném počtu sekund, se stránku automaticky přesměruje na další v pořadí. Používá se pro
stránky, které se mají zobrazit pouze na určitou dobu. Pokud na dané stránce má být nějaká
2.2.3 - Lokalizace dotazníků do více jazyků
Vícejazyčné dotazníky
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.
2.2.4 - Moduly pro opakované využití
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:
- Máte v rámci dotazníku stejnou sadu otázek, ale používáte ji v jiném kontextu. Příklad použití je napři v
dotazníku FAST Elemementary Parent Post. Ptáme se na 9 různých aktivit v projektu pomocí stejné sady otázek - tj.
jak byla aktivita srozumitelná, přínosná, zajímavá a jakou nám chtějí nechat zpětnou vazbu. Sadu otázek včetně
hodnot máme v modulu a ten načteme v rámci jednoho dotazníku 9x. Tento scénář je popsán dále v použitých příkladech
- Máte standardizovaný nástroj - například Škála vnímaného stresu (PSSS), který chcete používat v různých výzkumech.
Než abyste dotazník opakovaně kopírovali do dalších a dalších výzkumů, použijete jej jako modul.
Definice modulů
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.
Vložení modulu do výzkumu
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:
- feedback_lottery_params_understandable
- feedback_lottery_params_interesting
- feedback_lottery_params_helpful
- feedback_lottery_text
Logika složeného názvu:
- feedback_lottery - je vložená v direktivě import
- params - společná předpona tabulky
- understandable, interesting, helpful - názvy řádků v tabulkách
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é:
- feedback_family_group_params_understandable
- feedback_family_group_params_interesting
- feedback_family_group_params_helpful
- feedback_family_group_text
2.2.5 - Náhodné pořadí
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:
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:
- page-1, page-2, page-3, page-4, page-5
- page-1, page-2, page-4, page-3, page-5
- page-1, page-3, page-2, page-4, page-5
- page-1, page-3, page-4, page-2, page-5
- page-1, page-4, page-3, page-2, page-5
- page-1, page-4, page-2, page-3, page-5
2.2.6 - Podmínečné zobrazení
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”.
Podmínky statické
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"
}
]
}
Upozornění
Podmínky pro jednotlivé otázky jsou právě přepracovávány, takže jejich formát a funkcionalita se budou měnit.
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 1
value_in: ["1", "2", "3", "4"]
- hodnota musí nabývat jedné z hodnot, uvedených v poli
value_not: "1"
- hodnot NENÍ 1
value_not_in: ["1", "2", "3", "4"]
- hodnota NESMÍ nabývat žádné z hodnot v poli
tolerant: 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á.
Podmínky dynamické
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"
]
}
}
Přeskakování stránek
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í.
2.2.7 - Zobrazení obázků
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ý"
}
}
]
}
2.2.8 - Výsledky
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.
Upozornění
Tyto stránky jsou právě zpracovávány a upravovány.
{
"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."
}
]
}
2.2.9 -
2.3 - Autorizace respondentů do 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.
Implicitní autorizace
{
"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.
Autorizace předem distribuovaným kódem
{
"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
Autorizace předem distribuovaným kódem nebo implicitní autorizace
{
"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.
Znovupoužití kód po již vyplněném dotazníku
{
"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
.
2.4 - Typy otázek
Společné parametry otázek
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:
- name interní název otázky. Respondent ho nevidí. Pod tímto názvem je potom otázka označena v exportu. Tento název
je využitý také u podmínek pro zobrazení (
display_conditions
, display_if
) a skoků (page conditions).
- type - typ otázky. Dostupné typy jsou popsány dále. Zde je o výběr z jedné hodnoty.
- text - text otázky, který se zobrazí uživateli. Může být lokalizován do různých jazyků -
viz Lokalizace
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"
}
}
2.4.1 - Statement
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.
2.4.2 - Numerical Value
Otázka na vložení číselné hodnoty.
{
"name": "year_of_birth",
"type": "numerical_value",
"text": "Rok narození",
"min": 1900,
"max": 2003,
"float": false
}
Parametry:
- min - minimální hodnota
- max - maximální hodnota
- float - mají se vkládat čísla s desetinnou čárkou? true - ano, false - ne
2.4.3 - Slider
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
2.4.4 - Text Value
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.
2.4.5 - Single Choice
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.
Drop down field
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í
Kompletní lokalizace
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)"
}
}
}
2.4.6 - Multiple Choice
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
2.4.7 - Semantický diferenciál
Semantický diferenciál
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 |
2.4.8 - Admin Value
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:
Seznam admin hodnot v administraci respondenta
Editace konkrétní hodnoty po kliknutí na ikonu tužky
2.5 - Sady otázek
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
2.5.1 - Komplexní tabulka
Komplexní dotazníková tabulka
Její definice zahrnuje otázky (Qeustion) a koomplexní odpovědi (parametr se jmenuje values).
Parametry:
- name - interní název tabulky jak budou její hodnoty interně uloženy a následně exportován
- type - musí být
complex_question_table
- values - pole podotázek - tj. sloupců tabulky
- questions - pole otázek - tj. řádků tabulky
Otázka
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:
- typ - viz dále
- name - interní název otázky jak budou její hodnoty interně uloženy a následně exportován.
- text - co uvidí respondent
- condition - za jakých okolností se má celá otázka (tj. celý řádek v tabulce zobrazit). Např. na potrat se neptáme
mužů (i když i pro ně to může být traumatická událost)
- TODO: omit_subquestions - zatím neimplementováno, které podotázky se mají přeskočit
Podotázky
Představují sloupce v tabulce. Parametry jsou následující:
- typ - viz dále
- name - název otázky jak budou její hodnoty interně uloženy a následně exportován. Mají následující typy:
single_choice podotázka
Vyber jednu hodnoty z pole hodnot. Každá hodnota se zobrazuje jako sloupec v tabulce
generic podotázka
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
selector
Vyber jednu hodnotu z drop down menu
string
Textové po pro vložení komentáře. POkukd má více sloupců (tj. cols hodnot), tak jsou výsledné hodnoty spojení čárkou.
Export finálních dat
Název proměnných v exportu je konstruován takto:
NameTabulky_NázevOtázky_NazevPodotazky
tj. např. Trauma_Valka_VekZacatku: 15
Náhodné řazení otázek
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í"
}
]
}
2.5.2 - Jednoduchá tabulka
Jednoduchá tabulka
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:
Parametry
V konfiguraci jsou klíčové následující parametry:
- values - objekt s hodnotami pro záhlaví tabulky (tj. sloupce tabullky), kde
klíče jsou hodnoty k uložení a text se zobrazí uživateli.
- questions - jednotlivé otázky v tabulce (tj. řádky tabulky)
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ů
Export hodnot
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:
- komunita1: 1
- komunita2: 2
- komunita3: 3
- komunita4: 3
- komunita5: 3
- komunita6: 2
- komunita6: 3
Hodnoty odpovídají screenshotu.
Náhodné řazení otázek
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 |
|
|
|
2.5.3 - Wrapper
Wrapper je jednoduchá struktura, která umožňuje zabalit další otázky. Má dvojí využití.
- Je možné spojit logicky dohromady sadu otázek, tak že dostanou společný prefix v exportovaném názvu
- Pokud potřebujeme načíst naráz z modulu více otázek, aniž by se vkládaly jednotlivě, tak se zabalí do wrapperu a
potom se vkládají už společně.
Wrapper musí mít následující parametry:
- name - název, který se použije jako prefix u názvů dalších otázek
- type: wrapper
- items: pole s dalšími prvky - otázkami a dalšími. Původně se tento parameter jmenoval questions, ale byl přejmenován
protože název byl trošku zavádějící. Nicméně parametr question stále ještě funguje.
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:
- health_onemocneni
- health_lekari
2.6 - Výsledky zobrazené respondentům
3 - Výzkumné nástroje
V sekci níže je možné nalézt výzkumné nástroje, které byly v minulosti použity ve výzkumech OUSHI.
3.1 -
Velká pětka (Big Five Inventory)
Velká pětka neboli Big Five Inventory (BFI) je validní a spolehlivý psychodiagnostický nástroj určený k měření pěti dimenzí lidské osobnosti. Na vícedimenzionální osobnostní inventář je poměrně stručný (celkem 44 položek) a skládá se z krátkých vět s poměrně přístupnou slovní zásobou. Konkrétně měří následující dimenze lidské osobnosti:
- Neuroticismus
- Přívětivost
- Extraverzi
- Svědomitost
- Otevřenost
Délka vyplňování
Vyplnění celého dotazníku zabere přibližně 10 minut.
Individualizovaná zpětná vazba pro respondenta
Po dokončení dotazníku se respondent se o sobě dozví, jak si stojí v jednotlivých osobnostních dimenzích.
klíčová slova
velká pětka, osobnost, extraverze, neuroticismus, přívětivost, svědomitost, otevřenost
Originální validační studie
John, O. P., Naumann, L. P., & Soto, C. J. (2008). Paradigm Shift to the Integrative Big-Five Trait Taxonomy: History, Measurement, and Conceptual Issues. In O. P. John, R. W. Robins, & L. A. Pervin (Eds.), Handbook of personality: Theory and research (114-158). https://www.ocf.berkeley.edu/~johnlab/bigfive.htm
Validační studie – lokální adaptace
Hřebíčková, M., Jelínek, M., Blatný, M., Brom, C., Burešová, I., Graf, S., Mejzlíková, T., Vazsonyi, A., & Zábrodská, K. (2016). Big Five Inventory: Základní psychometrické charakteristiky české verze BFI-44 a BFI-10. Československá psychologie, 60(6), 567-583. dostupné zde
Licence
Výzkumné využití
BFI je možné k výzkumným účelům volně využít pod podmínkou citace původního zdroje a vyplnění krátkého formuláře. Autoři také žádají informování o výsledcích studie.
Komerční využití využití
BFI není momentálně možné využít pro komerční účely, ale je zde možnost podat žádost na následující mail: ucbpersonalitylab@gmail.com
Irelevantní.
Lokální vydavatel/distributor metody:
Irelevantní.
Scorování a interpretace
Extraverze: 1, 6R, 11, 16, 21R, 26, 31R, 36.
Přívětivost: 2R, 7, 12R, 17, 22, 27R, 32, 37R, 42.
Svědomitost: 3, 8R, 13, 18R, 23R, 28, 33, 38, 43R.
Neuroticismus: 4, 9R, 14, 19, 24R, 29, 34R, 39.
Otevřenost: 5, 10, 15, 20, 25, 30, 35R, 40, 41R, 44.
Před zahájením vyhodnocení je nutné převést skóry u reverzních položek (označeny R za číslem položky), které měří opačné póly rysů. Sečtením bodů získáme celkové skóre u každé dimenze. Vyšší skóre znamená vyšší míru rysu.
Odpovídací stupnice
Pro odpovědi je v metodě BFI využívána škála Likertova typu, kdy proband vyjadřuje svůj souhlas na pětibodové stupnici (1 = zcela nesouhlasím, 2 = spíše nesouhlasím, 3 = ani nesouhlasím, ani souhlasím, 4 = spíše souhlasím, 5 = zcela souhlasím).
Reference
Benet-Martínez, V., & John, O. P. (1998). Los Cinco Grandes across cultures and ethnic groups: Multitrait-multimethod analyses of the Big Five in Spanish and English. Journal of Personality and Social Psychology, 75(3), 729–750. https://doi.org/10.1037/0022-3514.75.3.729
Hřebíčková, M., Jelínek, M., Blatný, M., Brom, C., Burešová, I., Graf, S., Mejzlíková, T., Vazsonyi, A., & Zábrodská, K. (2016). Big Five Inventory: Základní psychometrické charakteristiky české verze BFI-44 a BFI-10. Československá psychologie, 60(6), 567-583. https://eds.p.ebscohost.com/eds/detail/detail?vid=0&sid=1613a1a0-9fc1-4d12-be15-104cd5502d1a%40redis&bdata=JkF1dGhUeXBlPWlwLHNoaWImYXV0aHR5cGU9c2hpYiZsYW5nPWNzJnNpdGU9ZWRzLWxpdmUmc2NvcGU9c2l0ZQ%3d%3d#AN=120355590&db=asn
John, O. P., & Srivastava, S. (1999). The Big-Five trait taxonomy: History, measurement, and theoretical perspectives. In L. A. Pervin & O. P. John (Eds.), Handbook of personality: Theory and research (102–138). http://jenni.uchicago.edu/econ-psych-traits/John_Srivastava_1995_big5.pdf
John, O. P., Naumann, L. P., & Soto, C. J. (2008). Paradigm Shift to the Integrative Big-Five Trait Taxonomy: History, Measurement, and Conceptual Issues. In O. P. John, R. W. Robins, & L. A. Pervin (Eds.), Handbook of personality: Theory and research (114-158). https://www.ocf.berkeley.edu/~johnlab/bigfive.htm
4 - Klinika
Sledování efektivity terapie
Projekt Kliniky v systému QOS je určen ke sledování efektivity terapie, nicméně může mít i další využití. Původní zadání
pro kliniku znělo:
- klient přichází do projektu na výzkum terapie. Výzkumní pracovníci vytvoří klientovi v systému složku
- Klient dělá vstupní výzkum - dotazník na posouzení vstupního stavu.
- Klientovi se na míru vytvoří pravidelný dotazník, který bude vyplňovat každý týden před svou terapií. Odkaz na
tento výzkum má klient v emailu a kliknutím tento výzkum spustí.
- Po skončení terapie klient vyplní závěrečný dotazník, v intervalech 6, 12 a 18 měsíců. Individuální odkaz opět
dostane do emailu.
Stránka kliniky vypadá takto.
Přiřazené výzkumy
Výzkumy jsou definovány samostatně a mohou být přístupné i jinak, než pouze přes kliniku. Aby v rámci kliniky mohl být
výzkum použit, tak nejprve musí být samostatně vytvořen v rámci systému (viz Výzkumy). Poté jsou výzkumy
přiřazeny ke klinice a mohou být využívány.
Klienti
Klienti patří ke konkrétní klinice. Klient je identifikován jménem a kódem. Samotný klient se do systému
nepřihlašuje, ale používá kódy z konfigurací výzkumů, které se vytváří dále.
Konfigurace výzkumu pro klienta
Ve scénáři popsaném výše figurovaly různé verze dotazníků. Takže výzkum (dotazník) přiřazený ke klinice může být
konfigurován. Konfigurace patří ke konkrétnímu klientovi a ke konkrétnímu výzkumu (dotazníku).
V rámci konfigurace vyberete, které stránky dotazníku (tj. objekty pages
v konfiguraci dotazníku - viz
Konfigurační soubor ) jsou v dané konfiguraci aktivní a klientovi se zobrazí jenom a
pouze tyto stránky. Tímto způsobem můžete ze stostránkového megadotazníku udělat například stručný dvoustránkový
dotazník.
Dále má konkrétní konfigurace svůj kód a také svůj zahajovací odkaz. Tento odkaz je unikátní pro daného klienta a
nesmí jej používat jiní klienti. Odkaz pošlete klientovi např. emailem. Když klient dotazník spustí přes tento odkaz,
tak výsledný záznam bude jednoznačně identifikován, že patří k tomuto klientovi a k této konfiguraci výzkumu.
Zahajovací odkaz může být použitý opakovaně. Pokud je potřeba, tak je možné je vygenerovat znovu. Pokud odkaz
znovu vygenerujete, tak původní kód a odkaz přestávají fungovat a klient musí používat odkaz nový. To je vhodné,
pokud klient například kód ztratil nebo vyzradil.
Konfiguraci je také možné Deaktivovat a zpětně Aktivovat. Když je konfigurace deaktivovaná, tak kód nefunguje a
klient se k dotazníku přes svůj kód nedostane.
Zobrazení vyplněných dotazníků
K datům v dotaznících je možné se dostat několika způsoby:
- přes samotný výzkum, ve kterém je dotazník definován. Toto je vhodné, pokud potřebujete exportovat všechna data
například za účelem statistického zpracování.
- Přes stránku klienta v rámci kliniky - tady je možné si otevřít konkrétní klientův dotazník a zkontrolovat
odpovědi. Na stránce klienta jsou všechny odpovědi daného klienta ze všech konfigurací.
- Přímo na stránce Konfigurace výzkumu pro klienta. Zde jsou pouze dotazníky, odpovídající konkrétní konfiguraci.
5 - Definice brokera
Je potřeba získat respondenty pro vyplnění dotazníku. Toto je zodpovědnost Brokera (zprostředkovatele). Úvodní
poskytovatel jsou vlastní webové stránky, nicméně systém už umí spolupracovat i s dalšími komerčními zprostředkovateli.
Spolupráce už proběbhal s těmito zprostředkovateli:
- Český národní panel
- Kantar
Přehled brokerů
Konfigurace v Brokerů je na adrese: /brokers
Konfigurace a vytvoření nového brokera v systému je poměrné komplikovaná a obnáší koordinaci s příslušnou agenturou.
Spolupráce s typickým brokerem vypadá následovně:
-
Broker osloví své respondenty, kteří za úplatu nebo jiné výhody odesílají respondenty do našeho systému. Jsou
odesláni na URL našeho systému - např:
https://dotaznik.oushi.upol.cz/questionnaire/start/17/broker/kantar/assignment/1?id=XXXX
. XXXXX je interní kód
respondenta v jejich systému.
-
U nás respondent vyplní dotazník
-
Na konci vyplnění respondentovi nezobrazujeme výsledky, ale odesíláme ho zpět na adresu zprostředkovatele, například
takto pro Kantar https://passback.lifepointspanel.com/Survey/{RETURN_CODE}?ProjectToken={PROJECT_ID}
.
RETURN_CODE je návratová hodnota, PROJECT_ID je id projektu u Kantaru.
Návratové hodnoty
Jsou specifické pro jednotlivé poskytovatele. Náš systém podporuje následující typy návratových hodnot:
- Success - respondent úspěšně vyplnil dotazník
- Speeder - respondent dotazník vyplnil příliš rychle - viz parameter speederLimit
- Duplicate - respondenta s tímto ID už jsme jednou dostali, pravděpodobně chyba na straně zprostředkovatele
- Quality Control Failed - respondent neprošel kontrolou kvality - například se respondenta zeptáme, kolik měří a
váží a znovu se ho zeptáme v polovině dotazníku. Pokud odpoví odlišně mimo zadanou toleranci, tak ho považujeme za
nekvalitního a vracíme ho.
- Respondent Disagrees - respondent odkliknul Nesouhlasím s účastí v dotazníku, vracíme ho
- Screen Out - respondent nespadá do cílové skupiny - například uvedl příliš nízký věk apod. Do budoucna je v plánu
implemetovat kvóty pro respondenty, aby systém sám pohlídal předem stanovené kvóty (např. počet můžu, žen, věkových
skupin apod.)
Smyslem návratových hodnot typu Speeder, QC Failed a Screen Out je, abychom zprostřekovateli nemuseli platit za
nekvalitní respondenty, ale pouze za ty, kteří vyplní vše a věnují tomu dostek pozornosti.
Přiřazení výzkumu k brokerovi
K existuícím brokerovi přiřazujeme výzkumy.
Parametry přiřazení:
- Name - název
- Broker Project ID - externí ID projektu u Brokera (určuje Broker)
- Broker Failed Project ID - externí ID projektu, pokud vyplnění selže (určuje Broker)
- Research - výzkum
- Valid From - datum zahájení
- Valid To - datum ukončení
- Locale - jazyk pro dotazník (viz podpora více jazyků)
- Speeder Limit - časový limit pro speedery
- Starting URL - startovní URL, které odevzdáváme Brokerovi a na které potom posílá respondenty
Zobrazení na titulní stránce
Jak jsme uvedli, tak i webová stránka systému je také vedena jako Broker (aby systém zahajování vyplňování byl
konzistentní). Proto pokud chceme, aby se výzkum zobrazil na titulní stránce, musí být zadán v přiřazení pro brokera Web
OUSHI.
Stávající přířazení:
6 - Možnosti exportu dat
Pro další zpracování je získaná data potřeba ze systému exportovat. Je to možné třemi způsoby. Hromadným exportem z více
výzkumů, exportem z výzkumu do MS Excel a exportem z výzkumu do CSV.
Hromadný export z více výzkumů
Pokud existují na sebe navazující výzkumy, které mají společné otázky, je možné je exportovat hromadně do jednoho
souboru. Tento export je náročný na výpočetní výkon a proto by měl být používán spíše vyjímečně.
Data jsou v tzv. wide formátu, tj. jeden řádek představuje jednoho respondenta a žadká otázka v dotazníku představuje
jeden sloupec.
Otázky z jednotlivých dotazníků, které mají stejný název, budou zařazeny pod sebe. Jednotliví respondenti budou zařazeni
do řádků pod sebou nejprve z prvního výzkumu, poto z následujících. Otázky, které se nevyskytují ve všech výzkumech
budou vyplněné pouze u respondentů z výkumů kde jsou definovány, v ostatních budou prázdné.
Export do MS Excel z jednoho výzkumu
Data jsou opět exportována ve wide formátu, tj. jeden řádek představuje jednoho respondenta, každá otázka má svůj
sloupec. Tento export je výpočetně náročný a při velkých objemech dat (řádově vyšší tisíce až desetitisíce respondentů a
tisíce otázek) přestává být spolehlivý. Je to však nejjednodušší export a také nejintuitivnější.
Ukázka dat ve wide formátu:
code |
sex |
age |
education |
aaa1 |
1 |
27 |
3 |
aaa2 |
0 |
44 |
2 |
aaa2 |
1 |
26 |
4 |
Export do CSV
CSV znamená Comma Separated Values, tj. hodnoty oddělené čárkou a jde o velmi jednoduchý formát. Výsledný soubor je
možné otevřít například v poznámkovém bloku, nebo načíst do Excelu. Tento formát je také nejvhodnější pro zpracování dat
v R.
Data jsou v tzv. long formátu. Jeden řádek představuje jednu odpověď na jednu otázku u jednoho respondenta. Každý
respondent má potom ve výsledném souboru tisíce řádků, celý export může mít desítky nebo stovky tisíc řádků. I přesto je
to nejefektivnější a nejspolehlivější formát k exportu dat.
Ukázka stejných dat v long formátu
code |
question_name |
value |
duration |
aaa1 |
sex |
1 |
30 |
aaa1 |
age |
27 |
30 |
aaa1 |
education |
3 |
30 |
aaa2 |
sex |
0 |
15 |
aaa2 |
age |
44 |
15 |
aaa2 |
education |
2 |
15 |
aaa3 |
sex |
1 |
15 |
aaa3 |
age |
26 |
15 |
aaa3 |
education |
4 |
15 |
Položky:
- code - kód klienta
- question_name - název otázky
- value - hodnota odpovědi
- duration - jak dlouho respondent strávil na stránce s touto otázkou. Pokud je více otázek na jedné stránce, tak trvání
je společné.
Převod dat z long formátu do wide formátu v R:
library(tidyr)
panel_long <- read.csv("exportovana_data.csv", header = TRUE)
panel <- pivot_wider(panel_long, id_cols = code, names_from = question_name, values_from = value)
Funkce read.csv
načítá hodnoty z csv souboru, funkce pivot_wider
potom otočí data z formátu long do wide.
Speciální datové položky v exportu
- code unikátní kód respondenta, automaticky vygenerovaný
- questionnaire_started datum a čas zahájení vyplňování dotazníku
- questionnaire_finished datum a čas ukončení dotazníku. Pokud je prázdné, tak dotazník nebyl dokončen
- questionnaire_duration doba vyplňování dotazníku
- broker - Broker (zprostředkovatel), přes kterého byl respondent získán
- broker_assignement - přířazení projektu k Brokerovi
- user_agent detailní identifikace prohlížeče uživatele. BLíže viz např: https://en.wikipedia.org/wiki/User_agent
- device - odhad z user_agent, jestli byl dotazník vyplněn na počítači nebo na mobilním zařízení. Není spolehlivé,
mobilní zařízení je možné nastavit tak, aby emulovalo stolní počítač.
Download tokens pro CSV Export
Import data z CSV je možné automatizovat pomocí download tokenů. Pokud chcete data stahovat přímo z vašeho R scriptu,
tak díky systému přihlašování přes Google OAuth2 to není možné. Proto je možné u výzkumu vytvořit tzv. Download
token. Pomocí tohoto tokenu je možné data stahovat automaticky i bez přihlášení v prohlížeči.
Formát pro download výsledku je: https://dotaznik.oushi.upol.cz/researches/{research_id}/csv
, kde {research_id}
nahraďte konkrétním ID daného výzkumu. Je uvedeno přímo v seznamu výzkumů na titulní stránce po
přihlášení.
Pokud u výzkumu č. 1 chceme stáhnout data a máme token XXXXXXXXXXXXXXXXXXXXXXXXXXXXX, tak data lze stáhnout z
příkazové řády pomocí utility curl
(k dispozici zde: https://curl.se/ ):
curl -i -X GET -H "Authorization:Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
'https://dotaznik.oushi.upol.cz/researches/1/csv'
A stejná operace v R:
# Read the data from the server
source <- url(
paste("https://dotaznik.oushi.upol.cz/researches/1/csv"),
headers = c(Authorization="Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
)
data <- read.csv(source)
Export dat pro jednoho respondenta
Do CSV je možné exportovat i reporty pro jednotlivé respondenty z výzkumu. URL pro dotaz potom vypadá následovně:
https://dotaznik.oushi.upol.cz/researches/{research_id}/csv?respondent_code={respondent_code}
Autorizační token je stejný jako pro export celého dotazníku.
{research_id}
- id celého výzkum (viz titulní stránka nebo přehled výzkumů)
{respondent_code}
- kód daného respondenta (nikoliv jeho ID). Kód je v přehledu respondentů výzkumu a
zároveň se respondentovi zobrazí i po vyplnění dotazníku.
6.1 - Export dat z obličejových otazníků
Otázky s obličeji zaznamenávají vybranou emoci/obličej.
Pro každou jednotlivou emoci se dále počátají a exportují tyto parametry:
- hover_count - kolikrát na emoci (obličej najel respondent myší)
- hover_duration - jak dlouho byla emoce zvětšena při najetí myši v milisekundách
- display_count - kolikrát byla zvětšena kliknutím
- display_duration - jak dlouho celkově byla zvětšena
- hover_and_display_count - součet hover and display count
Pro každou jednotlivkou otázku se dále zobrazí finálně vybraná emoce.
Takže pro jednu otázku se exportují výše uvedené sloupce pro všechny emoce. Například tedy pro otázku EBA_SPT_NR1 (Smysl
života) se vygenerují tyto sloupce:
- anger_EBA_SPT_NR1_selected
- anger_EBA_SPT_NR1_selected_per
- anger_EBA_SPT_NR1_hover_count
- anger_EBA_SPT_NR1_hover_count_per
- anger_EBA_SPT_NR1_hover_duration
- anger_EBA_SPT_NR1_hover_duration_per
- anger_EBA_SPT_NR1_display_count
- anger_EBA_SPT_NR1_display_count_per
- anger_EBA_SPT_NR1_display_duration
- anger_EBA_SPT_NR1_display_duration_per
- anger_EBA_SPT_NR1_hover_and_display_count
- anger_EBA_SPT_NR1_hover_and_display_count_per
- disgust_EBA_SPT_NR1_selected
- disgust_EBA_SPT_NR1_selected_per
- disgust_EBA_SPT_NR1_hover_count
- disgust_EBA_SPT_NR1_hover_count_per
- disgust_EBA_SPT_NR1_hover_duration
- disgust_EBA_SPT_NR1_hover_duration_per
- disgust_EBA_SPT_NR1_display_count
- disgust_EBA_SPT_NR1_display_count_per
- disgust_EBA_SPT_NR1_display_duration
- disgust_EBA_SPT_NR1_display_duration_per
- disgust_EBA_SPT_NR1_hover_and_display_count
- disgust_EBA_SPT_NR1_hover_and_display_count_per
- fear_EBA_SPT_NR1_selected
- fear_EBA_SPT_NR1_selected_per
- fear_EBA_SPT_NR1_hover_count
- fear_EBA_SPT_NR1_hover_count_per
- fear_EBA_SPT_NR1_hover_duration
- fear_EBA_SPT_NR1_hover_duration_per
- fear_EBA_SPT_NR1_display_count
- fear_EBA_SPT_NR1_display_count_per
- fear_EBA_SPT_NR1_display_duration
- fear_EBA_SPT_NR1_display_duration_per
- fear_EBA_SPT_NR1_hover_and_display_count
- fear_EBA_SPT_NR1_hover_and_display_count_per
- joy_EBA_SPT_NR1_selected
- joy_EBA_SPT_NR1_selected_per
- joy_EBA_SPT_NR1_hover_count
- joy_EBA_SPT_NR1_hover_count_per
- joy_EBA_SPT_NR1_hover_duration
- joy_EBA_SPT_NR1_hover_duration_per
- joy_EBA_SPT_NR1_display_count
- joy_EBA_SPT_NR1_display_count_per
- joy_EBA_SPT_NR1_display_duration
- joy_EBA_SPT_NR1_display_duration_per
- joy_EBA_SPT_NR1_hover_and_display_count
- joy_EBA_SPT_NR1_hover_and_display_count_per
- neutral_EBA_SPT_NR1_selected
- neutral_EBA_SPT_NR1_selected_per
- neutral_EBA_SPT_NR1_hover_count
- neutral_EBA_SPT_NR1_hover_count_per
- neutral_EBA_SPT_NR1_hover_duration
- neutral_EBA_SPT_NR1_hover_duration_per
- neutral_EBA_SPT_NR1_display_count
- neutral_EBA_SPT_NR1_display_count_per
- neutral_EBA_SPT_NR1_display_duration
- neutral_EBA_SPT_NR1_display_duration_per
- neutral_EBA_SPT_NR1_hover_and_display_count
- neutral_EBA_SPT_NR1_hover_and_display_count_per
- sadness_EBA_SPT_NR1_selected
- sadness_EBA_SPT_NR1_selected_per
- sadness_EBA_SPT_NR1_hover_count
- sadness_EBA_SPT_NR1_hover_count_per
- sadness_EBA_SPT_NR1_hover_duration
- sadness_EBA_SPT_NR1_hover_duration_per
- sadness_EBA_SPT_NR1_display_count
- sadness_EBA_SPT_NR1_display_count_per
- sadness_EBA_SPT_NR1_display_duration
- sadness_EBA_SPT_NR1_display_duration_per
- sadness_EBA_SPT_NR1_hover_and_display_count
- sadness_EBA_SPT_NR1_hover_and_display_count_per
- surprise_EBA_SPT_NR1_selected
- surprise_EBA_SPT_NR1_selected_per
- surprise_EBA_SPT_NR1_hover_count
- surprise_EBA_SPT_NR1_hover_count_per
- surprise_EBA_SPT_NR1_hover_duration
- surprise_EBA_SPT_NR1_hover_duration_per
- surprise_EBA_SPT_NR1_display_count
- surprise_EBA_SPT_NR1_display_count_per
- surprise_EBA_SPT_NR1_display_duration
- surprise_EBA_SPT_NR1_display_duration_per
- surprise_EBA_SPT_NR1_hover_and_display_count
- surprise_EBA_SPT_NR1_hover_and_display_count_per
Při samotném exportu je možné vybrat, které otázky a které emoce se budou exportovat.
Dále je možné v konfiguračním souboru dotazníku nastavit skupiny emocí, které se budou exportovat společně a statistiky
se budou exportovat napříš více otázkami.
Konfigurace vypadá následovně. V top level JSON souboru je klíč emotion_export. Tato konfigurace vytvoří dvě skupiny pro
export. Typ může být SecondEmotions a ThirdEmotions. Parametr “list” může být buďto pole nebo regulární
výraz (https://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz)
{
"emotion_export": [
{
"title": "EBA_SPT",
"type": "SecondEmotions",
"list": "^EBA_SPT_.+$"
},
{
"title": "EBA3_SPT",
"type": "ThirdEmotions",
"list": "^EBA3_SPT.+$"
}
]
}
První skupina bude zahrnovat všechny otázky začínající na EBA_SPT (tj. EBA_SPT_NR1 … EBA_SPT_NR8). Druhá skupina potom
bude zahrnovat otázky začínající na EBA3_SPT (tj. EBA3_SPT_NR1 … EBA3_SPT_NR8)