Umfrageimport: Qualtrics, SurveyJS, LimeSurvey, XLSForm, REDCap, Beiwe und Network Canvas
Einen Fragebogen aus Qualtrics, SurveyJS, LimeSurvey, XLSForm (ODK, KoboToolbox), REDCap, Beiwe oder Network Canvas samt seiner Logik in Potato-Umfrageseiten umwandeln.
Neu in v2.12.0
potato import wandelt einen in einem anderen Tool erstellten Fragebogen in Potato-Umfrageseiten um: die Fragen, die Seiten und die Ein- und Ausblendelogik, übersetzt in Potatos bedingte Fragen und Seitenregeln.
| Quelle | Datei | -f |
|---|---|---|
| Qualtrics | .qsf (Survey → Tools → Import/Export → Export Survey) | qualtrics |
| SurveyJS | Das Umfrage-JSON, das SurveyJS Creator speichert | surveyjs |
| LimeSurvey | .lss (Display/Export → Survey structure) | limesurvey |
| XLSForm (ODK, KoboToolbox, SurveyCTO, Ona) | .xlsx | xlsform |
| REDCap | Das Data Dictionary als .csv (Designer → Download the current Data Dictionary) oder der Metadatenexport der API | redcap |
| Beiwe | Umfrage-JSON oder ein Export der Studieneinstellungen | beiwe |
| Network Canvas | Eine Protokolldatei .netcanvas oder deren protocol.json | network_canvas |
Das Format wird anhand der Datei erkannt, und -f legt es explizit fest. Keine dieser Dateien enthält Antworten. Der Import überträgt also das Instrument, nicht die damit erhobenen Daten.
In ein neues Projekt importieren
potato import -i screener.qsf -o my-study/
python potato/flask_server.py start my-study/config.yaml -p 8000Die Umfrageseiten landen in my-study/surveys/, eine JSON-Datei pro Seite. config.yaml führt sie in phases.order vor einer Phase annotation mit einer Platzhalterfrage und drei Platzhalter-Items auf, die Sie durch die eigentliche Aufgabe ersetzen.
In ein bestehendes Projekt importieren
potato import -i exit_survey.lss --into my-study/config.yaml --survey-slot poststudy --prefix exit_Die Seiten landen in surveys/ neben dieser Konfiguration, und eine zusammengeführte Kopie wird als config.with-exit_survey-exit.yaml geschrieben, mit dem Bericht in IMPORT_REPORT.exit_survey-exit.md. Die ursprüngliche Konfiguration wird nicht verändert.
--prefix benennt jede importierte Frage und Seite um. Verwenden Sie es, wenn Fragenamen mit denen des Projekts kollidieren würden, denn der Import bricht bei einer Kollision ab. Der Import bricht auch ab, statt Dateien zu ersetzen, die ein früherer Import geschrieben hat, sodass Änderungen an einer importierten Umfrage nicht überschrieben werden.
Die zusammengeführte Kopie unterscheidet sich vom Original nicht nur durch die neuen Seiten. Setzt die Konfiguration export_include_phase_data nicht, setzt die Kopie es auf true, damit die Umfrageantworten exportiert werden, und ein Kommentar am Anfang der Kopie weist darauf hin. Umfrageantworten können personenbezogene Daten enthalten. Setzen Sie den Wert daher auf false, um sie aus Exporten herauszuhalten. Kommentare im Original bleiben nicht erhalten, und YAML-Listen werden im Blockstil neu geschrieben.
| Flag | Bedeutung |
|---|---|
-o DIR | Schreibt ein neues Projekt |
--into CONFIG | Fügt die Seiten einem bestehenden Projekt hinzu und schreibt eine zusammengeführte Kopie |
--survey-slot | prestudy (Standard, vor der Annotation) oder poststudy |
--prefix | Präfix für jeden importierten Frage- und Seitennamen |
--survey-language | Sprache, die aus einer mehrsprachigen Umfrage in LimeSurvey, XLSForm oder Network Canvas übernommen wird |
Was aus jedem Format übernommen wird
- Fragetexte (HTML wird auf Text reduziert), Auswahlmöglichkeiten und Pflichtfragen;
- Seiten, in ihrer Reihenfolge;
- Ein- und Ausblendelogik für Fragen und Seiten, übersetzt in
display_logicundshow_whenvon Seiten, einschließlich verschachteltem AND, OR und NOT; - Randomisierung der Optionsreihenfolge (
randomize_order) und der Fragenreihenfolge (randomize_questions), sofern die Quelle sie hat.
Antworten auf Auswahlfragen werden als Optionstext gespeichert, daher vergleicht die übersetzte Logik mit dem Optionstext, nicht mit den Codes der Quelle.
Alles, was der Importer nicht übersetzen konnte, wird in IMPORT_REPORT.md mit Fundstelle und Grund aufgeführt, und die ersten zehn Einträge werden ausgegeben. Eine Logikregel, die irgendetwas Unübersetzbares enthält, wird vollständig gemeldet, und die Frage bleibt immer sichtbar, statt nur einen Teil ihrer Regel zu erhalten.
Qualtrics
Jeder Block ist eine Seite, und jeder Seitenumbruch innerhalb eines Blocks beginnt eine weitere. Blöcke im Papierkorb werden übersprungen.
- Fragen: Multiple Choice (Einfachauswahl, Mehrfachauswahl, Dropdown, NPS), Matrix Likert (als
multirate), Texteingabe (einzeilig, mehrzeilig, Zahlenvalidierung alsnumber, Formulare als eine Textfrage pro Feld), Schieberegler, Rangfolge (ranking), Constant Sum (constant_sum) und beschreibender Text (pure_display). "Other"-Optionen mit Textfeld erhalten ein Freitextfeld. - Logik: Display Logic mit der Vorrangregel von Qualtrics (AND vor OR innerhalb eines Bedingungssatzes und zwischen den Sätzen
If,AndIfundElseIf), auf gewählten Optionen, Werten der Texteingabe, Werten von Schiebereglern und Anzahlen der Auswahlen. - Survey Flow: Branches werden zu Seitenregeln, wobei verschachtelte Branches mit AND verknüpft werden. Ein Randomizer, der alle seine Blöcke zeigt, wird zu einer Ausbalancierungsgruppe. Ein Randomizer, der eine von mehreren Embedded-Data-Zuweisungen zu einem Feld zeigt, wird zu einem Between-Subjects-Faktor unter
conditions, und Logik auf diesem Feld prüftcondition.<field>. End of Survey innerhalb eines Branch sowie Skip Logic zum Ende der Umfrage werden zuexit_when. - Gemeldet, nicht importiert: Loop & Merge (der Block wird einmal importiert), Piped Text, Logik auf Matrixzellen, "is displayed"-Bedingungen, Display Logic auf Ebene der Optionen, Quoten, Web Services, Authenticators, Scoring, eigene Validierung, Request Response (weiche Pflichtangabe), JavaScript und die Fragetypen, für die Potato keine Entsprechung hat (Heatmaps, Hot Spots, Datei-Upload, Unterschrift, Side by Side, Timing, Meta Info).
Umstieg von Qualtrics ordnet den Rest einer Qualtrics-Studie Potato zu.
SurveyJS
- Elemente: text (Zahleneingaben als
number), comment, radiogroup, checkbox, dropdown, tagbox, boolean, rating, ranking, matrix, multipletext (eine Textfrage pro Eintrag), html und slider. Panels werden in die Seite aufgelöst, und dasvisibleIfeines Panels gilt für jede Frage darin. - Logik:
visibleIffür Fragen, Panels und Seiten, einschließlichanyof,allof,contains,empty, Auswahlanzahlen über{q.length}sowieand,orund!. Ein Triggercompletewird zu einemexit_whenauf der Seite, die die letzte von ihm geprüfte Frage stellt. - Gemeldet, nicht importiert:
enableIf,requiredIf,choicesVisibleIf, Validatoren, Standardwerte, berechnete Werte und Expression-Fragen, Triggersetvalue,skipundrunexpression, dynamische Matrizen und Panels, Datei- und Unterschriftsfragen sowie Logik, die Funktionen aufruft.
LimeSurvey
Beide Dateistrukturen lassen sich importieren: ältere Exporte mit einer Sprachspalte in jeder Zeile und Exporte ab DBVersion 400 mit dem Text in *_l10ns-Tabellen. Verwendet wird die Basissprache der Umfrage, sofern --survey-language nichts anderes angibt. Fragegruppen werden in ihrer Reihenfolge zu Seiten, und die Relevance einer Gruppe wird zum show_when der Seite.
- Fragen: Liste (Radio, Dropdown, mit Kommentar), 5-Punkte, Ja/Nein, Geschlecht, Mehrfachauswahl, die Array-Typen (als
multirate), kurzer und langer Text, numerisch, mehrfach numerisch und mehrfach kurzer Text (eine Frage pro Unterfrage), Rangfolge und Textanzeige. - Logik: ExpressionScript-Relevance auf Fragecodes, Unterfragecodes und SGQA-Namen, mit
is_empty(),count()über eine Mehrfachauswahlfrage sowieand,orund!, dazu die ältere Tabelleconditions. - Gemeldet, nicht importiert: Datums-, Gleichungs-, Datei-Upload- und Dual-Scale-Fragen; versteckte Fragen; Validierung (
preg,em_validation); minimale und maximale Antwortzahl; Array-Filter; Randomisierungsgruppen; Quoten; Assessments; Piped Text; sowieif(),regexMatch()und.shownin der Logik.
XLSForm: ODK, KoboToolbox, SurveyCTO und Ona
ODK zeigt eine Frage pro Bildschirm, sofern eine Gruppe nicht mehr verlangt, und Potato fasst die Fragen einer Seite zusammen. Der Import verwendet daher die Gruppierung des Formulars selbst. Jede begin_group mit appearance: field-list oder table-list ist eine Seite, und die Fragen zwischen solchen Gruppen teilen sich eine Seite. Das relevant einer anderen Gruppe wird auf jede Frage darin angewendet, und ihr Label wird zu einer Überschrift. Bei einem Formular mit mehreren Label-Spalten, etwa label::English und label::French, wählt --survey-language French eine aus, andernfalls wird die default_language des Formulars verwendet.
| XLSForm | Potato |
|---|---|
select_one | radio (appearance: minimal als Dropdown) |
select_multiple | multiselect |
rank | ranking |
integer, decimal | number |
range | slider (parameters: start= end= step=) |
text | text (appearance: multiline als Textfeld) |
note | pure_display |
or_other | Eine Option "Other" mit Textfeld |
required | label_requirement: {required: true} |
relevant | display_logic, mit selected(), not(), count-selected(), string-length(), regex() und Vergleichen |
parameters: randomize=true | randomize_order |
Gemeldet, nicht importiert: Geopunkte und andere Ortstypen, Datum und Uhrzeit, Fotos, Audio, Video, Barcodes und Dateien; Felder vom Typ calculate und hidden sowie Logik, die sie verwendet; Repeats (ihre Fragen werden einmal importiert); constraint, choice_filter, default, read_only und bedingtes required; sowie externe Auswahllisten. Eine .xls-Datei benötigt das Paket xlrd, oder Sie speichern sie als .xlsx.
REDCap
Jedes Instrument (Formular) wird zu einer Seite, in der Reihenfolge, in der das Data Dictionary sie aufführt, und Section Headers werden zu Überschriften auf der Seite.
| REDCap | Potato |
|---|---|
text mit Ganzzahl- oder Zahlenvalidierung | number mit Minimum und Maximum der Validierung |
text mit anderer Validierung, notes | text, ein Textfeld für Notizen |
radio, dropdown, checkbox | radio, select, multiselect |
yesno, truefalse | radio mit Yes/No oder True/False |
slider | slider |
descriptive | pure_display |
| Matrixgruppe | multirate oder einzelne Fragen, wenn Logik eine Zeile prüft |
| Pflichtfeld | label_requirement: {required: true} |
| Branching Logic | display_logic, wobei Auswahlcodes dem Optionstext zugeordnet werden und and stärker bindet als or |
@PLACEHOLDER | Der Platzhalter des Textfelds |
@HIDDEN, @HIDDEN-SURVEY | Weggelassen, da Teilnehmende sie nie sehen |
Gemeldet, nicht importiert: berechnete Felder und Logik, die sie verwendet, Datei- und SQL-Felder, Validierungstypen, die Potato nicht prüft (Datumsangaben, E-Mail-Adressen und Telefonnummern werden zu einfachem Text mit Formathinweis), andere Action Tags, Piped Values sowie Logik, die Funktionen (datediff, sum), Events ([event][field]) oder den Formularstatus verwendet. Für REDCaps longitudinale Events und wiederholte Instrumente gibt es in Potato keine Entsprechung.
Potato ist kein System zur klinischen Datenerfassung und hat keinen Audit-Trail der Art, wie REDCap ihn für regulierte Studien bietet. Behalten Sie identifizierbare Gesundheitsdaten in REDCap und verwenden Sie Potato für die Annotation und die Fragen rund um sie, etwa wenn Klinikerinnen und Kliniker Notizen oder Bilder labeln.
Beiwe
Jede Umfrage im Export wird zu einer Seite. Fragen vom Typ Info-Text, Schieberegler, Radio-Button, Checkbox und Freitextantwort (numerisch, einzeilig, mehrzeilig) werden importiert, und display_if-Logik wird übersetzt, wobei Radio-Antworten nach Position und Checkbox-Antworten nach Zugehörigkeit geprüft werden. Datums- und Zeitfragen, Audio-Umfragen, Zeitpläne und Timings werden gemeldet, weil Potato keine Zeitplanung von Umfragen hat, ebenso eine teilweise Randomisierung.
Network Canvas
Ein Ego-Formular oder eine Informationsstufe wird zu einer Umfrageseite, und die Netzwerkstufen für einen Knotentyp werden zu einer einzigen ego_network-Frage auf einer Seite, mit ihren Namensgeneratoren, Namensinterpretatoren, Dyaden- und Beziehungsstärke-Zensus sowie Soziogramm. Roster-Assets als CSV oder JSON werden zum Roster des Namensgenerators. Skip Logic für das Ego wird zu show_when, und ein Sprung zum Ende des Interviews wird zu exit_when auf der Seite davor, mit dem Text des Abschlussbildschirms als Nachricht.
Netzwerkstufen für einen Knotentyp teilen sich eine Seite und lassen sich daher nicht einzeln überspringen, und eine Netzwerkstufe, die nach anderen Seiten kam, rückt vor diese. Der Import meldet jede Verschiebung. Filterregeln für Knoten und Kanten, Alter-Edge-Formulare, Narrative- und Geodatenstufen, Datums- und Zeitvariablen sowie Medienelemente werden gemeldet und nicht importiert. Die Seite Ego-Netzwerke enthält die Zuordnung Stufe für Stufe.
Weiterführende Informationen
- Umstieg von Qualtrics - Die Funktionen einer Qualtrics-Studie, Potato zugeordnet
- Mehrphasige Workflows - Umfrageseiten, bedingte Fragen und Phasenreihenfolge
- Experimentablauf - Bedingungen, Seitenregeln, Screen-outs und Ausbalancierung
- Projekte importieren - Annotationsformate, ganze Projekte und andere Importe
- Erhebungsinstrumente - Veröffentlichte Fragebögen per Name
Implementierungsdetails finden Sie in der Quelldokumentation.