Patientenformulare erstellen

Die tomedo® Patientenformulare sind digitale Fragebögen oder Formulare, die Sie individuell erstellen und konfigurieren können. Dargestellt und ausgefüllt werden Patientenformulare in oder außerhalb der Praxis auf beliebigen digitalen Endgeräten wie Smartphones, Laptops oder Tablets.

Sie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen

*In der Playliste finden Sie oben rechts das Inhaltsverzeichnis der verfügbaren Videos.

Zugang zur arzt-direkt Instanz und Anmeldung

Um die Patientenformularen nutzen zu können, müssen Sie tomedo® zunächst mit Ihrer arzt-direkt Instanz verbinden. Dazu geben Sie Ihre persönlichen Zugangsdaten, die Sie bei der Einrichtung Ihres arzt-direkt Kontos erhalten in tomedo® unter Admin → arzt-direkt → Instanzkonten ein. Hier finden Sie im unteren Bereich einen Link auf das arzt-direkt Dashboard. Nach der Anmeldung in Ihrem Dashbord finden Sie die Übersicht Ihrer Patientenformulare unter dem Punkt Formulare in der linken Seitenleiste.

Erstellen eines neuen Patientenformulars

In der Formulare-Übersicht im arzt-direkt Dashbord können Sie ihre Patientenformulare verwalten, editieren und neue Formulare erstellen. Hier können Sie für jedes aktivierte Patientenformular auch einen Link z.B. zum einbinden in eine Homepage (Permalink) erstellen und kopieren.

Unter der Tabelle finden Sie einen Button zum Erstellen neuer Patientenformulare. Bevor Sie ein neues Formular bearbeiten können, müssen Sie zuerst eine Kennung eingeben. Diese darf keine Großbuchstaben, Leerzeichen oder Sonderzeichen enthalten. Danach können Sie im Editor einen Titel als Anzeigenamen für ihr Patientenformular eingeben. Dieser sollte den Inhalt beschreiben. Optional können Sie eine Beschreibung des Formulars unter dem Titel hinzufügen.

Als Nächstes können Sie beliebig viele Frage-Antwort-Elemente aus der Sammlung in der linken Seitenleiste zu Ihrem Formular hinzufügen. Der Editor ermöglicht es Ihnen, aus einer Vielzahl verschiedener Typen von Elementen zu wählen, je nachdem welche Art von Informationen Sie erheben wollen (z.B. Freitext, Zahlen, Einfach- oder Mehrfachauswahl von Antworten auf eine Frage). Innerhalb eines Fragebogens können Frage-Antwort-Elemente über die Nutzung separater Seiten in Gruppen organisiert werden, die gemeinsam angezeigt werden. Jedes Element hat einige grundsätzliche Eigenschaften, die im Folgenden beschrieben werden. Wichtig: Stammdaten sind schon vorkonfiguriert, nutzen Sie ein einfaches Text-Element und wählen dann rechts unter Stammdaten den entsprechenden Typen (also z.B. Vorname oder Nachname) aus.

Eigenschaften von Frage-Antwort-Elementen

Darstellung auf Seiten:

Patientenformulare bestehen aus einer oder mehreren Seiten. Zwischen diesen können Ihre Patienten dann beim Ausfüllen vor- und zurück navigieren. Eine neue Seite legen Sie dadurch an, dass Sie einen Seiten-Titel eingeben. Zu jeder Seite können Sie beliebig viele Frage-Antwort-Elemente hinzufügen. Das geht entweder per Drag-and-Drop oder über einen Klick auf die Schaltfläche „Frage hinzufügen“. Der Typ des Frage-Antwort Elements kann im Element selbst in der Auswahl links unten geändert werden.

Klicken Sie ein Element an, sehen Sie in der rechten Seitenleiste die Möglichkeiten zu dessen Konfiguration. Nicht jede der hier beschriebenen Eigenschaften sind bei allen Typen verfügbar. Einige Eigenschaften dienen der Anzeige, andere dienen dem Zugriff und der Datenverarbeitung:

Allgemein:

  • Die Option Stammdaten wird benötigt, um entsprechende Stammdatenfelder einzufügen.
  • Die ID der Frage wird benötigt um innerhalb der Patientenformulare auf die Antworten und Ausdrücke zurück zu greifen.
  • Der tomedo® Kurz-Titel wird benötigt um innerhalb von tomedo® auf die Antworten und Ausdrücke zurück zu greifen.
  • Titel und Beschreibung der Frage sollten aussagekräftig die Frage beschreiben und dienen der Anzeige beim ausfüllen des Formulars.
  • Elemente, die auf Erforderlich gesetzt sind, müssen ausgefüllt werden. Sonst kann das Formular nicht abgeschickt werden.

Auswahlmöglichkeiten (nur für Elemente mit mehreren Antwort-Optionen):

  • Items sind Antwortmöglichkeiten zu einer Frage
  • Jedem Item kann ein Text und ein Wert zugeordnet werden.
  • Der Text wird dem Patienten als Antwortmöglichkeit angezeigt.
  • Den Wert können Sie nutzen, um die ausgewählten Antworten auszulesen und in Ausdrücken weiter zu verarbeiten.

Sie können z.B. dem Item mit dem Text „leichte Schmerzen“ den Wert 1 zuweisen, dem Item mit dem Text „mittlere Schmerzen“ eine 2 und dem Item mit dem Text „starke Schmerzen“ eine 3. Diese Werte der Antworten können dann in einem Element des Typs Ausdruck aufsummiert werden. Wie das geht, beschreiben wir weiter unten.

Layout: Dient der Positionierung des Elementes im Formular.

Logik: Dient dazu, ihr Patientenformular dynamisch zu machen, also beispielsweise einige Fragen nur unter bestimmten Bedingungen anzuzeigen oder erforderlich zu machen. So kann eine Frage nach spezifischen Symptomen nur sichtbar gemacht werden, wenn der Patient in einer vorherigen Frage angegeben hat, dass er „symptomatisch – ja“ ist. Bei „nein“ wird die Frage nach den spezifischen Symptomen dagegen nicht angezeigt. Analog kann hier auch im Detail gesteuert werden ob eine Frage ggf. nicht generell sondern nur unter einer bestimmten Bedingung erforderlich ist.

Erweiterte Logik-Optionen finden sie in der Kopfzeile des Editors im Reiter Logik. Hier finden Sie auch die Logik-Regeln, die Sie in der rechten Seitenleiste eingetragen haben.

Daten: Erlaubt es, Standardantworten zu setzen. Diese eigenen sich etwa dazu, bei Auswahl-Möglichkeiten einen Opt-Out zu definieren. Kurz gesagt: vom Patienten gewünschte Antworten können automatisch vorausgewählt werden.

Validierung: Erlaubt es, unplausible Antworten schon bei der Eingabe abzufangen. Bei „Alter“ können z.B. nur Werte zwischen 0 und 120 zugelassen werden.

Elemente für einen einfachen Fragebogen

  • Text mit verschiedenen Eingabetypen: Kann für Text, Datum, Zahl, Telefonnummer, E-Mail, Versichertennummer oder Versichertennummer (Kassennummer) genutzt werden.
  • Langer Text: Kann für längere Freitexteingaben genutzt werden.
  • Radiobuttons, Dropdown und Matrix: Ermöglichen eine Einfachauswahl aus mehreren Antwortmöglichkeiten.
  • Checkboxen und Multi-Select-Dropdown: Ermöglichen eine Mehrfachauswahl aus mehreren Antwortmöglichkeiten.
  • Unterschrift: Erfassung der Unterschrift des Patienten.
  • Wahrheitswert: Entspricht einer Checkbox (Ergebnis wird in tomedo® als true/false angezeigt). Es ist möglich, hier nichts anzugeben, wenn die Frage nicht erforderlich ist.

Stammdaten erfassen und aktualisieren

Um mit den Daten der Patientenformulare die Stammdaten Ihrer Patienten zu aktualisieren, oder einen neuen Patienten auf Basis der Informationen anzulegen, können für viele Elemente das passende Stammdaten-Feld festlegen. Diesen finden Sie im Bereich Allgemein in der rechten Seitenleiste für die Konfiguration eines Frage-Antwort-Elements. Aktuell stehen Ihnen für folgende Datenfelder in tomedo® zur Aktualisierung aus Patientenformularen zur Verfügung (ggf. auch mehr Felder, die Stammdatenfelder werden kontinuierlich ausgebaut):

  • Vorname und Nachname.
  • Geburtsdatum: Rückschrieb in Geburtsdatum unter Profil in den Patientendetails
  • Geschlecht: Rückschrieb in Geschlecht unter Profil in den Patientendetails
  • Titel und Namenszusatz: Rückschrieb in Titel und Namenszusatz unter Profil in den Patientendetails
  • Land: Rückschrieb in Land unter Profil in den Patientendetails
  • Kontaktaufnahme: Telefon, E-Mail, Fax, SMS – Rückschrieb in die Patientendetails (Akzeptiert Kontakt per…)
  • Versand von Informationen: Rückschrieb in die Patientendetails (erlaubt Versand von…)
  • Pflegegrad: Rückschrieb in die Patientendetails unter Abrechnung – Gesetzliche Krankenkasse Feld Pflegegrad
  • Behinderung: Rückschrieb in die Patientendetails unter Abrechnung – Gesetzliche Krankenkasse Feld Behinderung – Grad der Behinderung (Prozent ohne Zusätze)
  • Beruf: Rückschrieb in den Beruf unter Profil in den Patientendetails
  • Hauptversicherer und Rechnungsadresse: Verschiedene Informationen.

Karteitext

Wenn Sie den Karteitext nicht konfigurieren, wird der Titel des Formulars als Karteitext angezeigt. Sie haben zwei Möglichkeiten, den Karteitext Ihrer Patientenformulare zu individualisieren:

  • In tomedo® können Sie über die Einstellungen des Formulars auswählen, welche Informationen angezeigt werden.
  • Innerhalb des Editors können Sie über den Reiter Karteitext einen dynamischen Text auf Basis der Formularinhalte erstellen.
  • Sie können beide Möglichkeiten auch kombinieren – dann wird zuerst der Karteitext angezeigt, wie im Editor konfiguriert, und im Anschluss die Informationen aus den einzelnen Feldern, die angezeigt werden sollen.

Datenverarbeitung in Patientenformularen

In den Patientenformularen wird auf die (Satz-)Syntax der Toolbox SurveyJS zurück gegriffen. Hierüber können sie Scores oder zusammengesetzte Texte generieren oder dynamische Frage-Antwort-Dialoge aufbauen:

  • Ausdruck (schreibgeschützt) als eigenes Element: Für die Verarbeitung von Zahlen und Textinhalten. Ermöglicht z.B. das Berechnung von Scores, die Nutzung logischer Bedingungen und das zusammenstellen von Texten auf Basis der Formularinhalte. Hierfür benötigen Sie die Syntax von SurveyJS.
  • Ausdruck als Feld innerhalb der anderen Elemente: Befindet sich im Logik-Bereich in der rechten Seitenleiste und kann genutzt werden um komplexe Fragenbogen-Logiken aufzubauen. Hier gibt es auch die Möglichkeit, für häufige Anwendungsfälle die jeweilige Logik mit Hilfe des Zauberstabsymbols (jeweils oben rechts bei den Logikfeldern) zu erstellen. Die Nutzung des Zauberstabes zur erstellen der Syntax ist deutlich einfacher als die SurveyJS Syntax direkt zu verwenden.
  • HTML: Ermöglicht die Anzeige von reinem Text, das Anzeigen von Antworten aus Elemnten des gleichen Formular, sowie die Darstellung von Links auf andere Seiten, Videos etc.. Wenn Sie auf die Antwort eines Elementes zurück greifen möchten nutzen Sie die Syntax mit geschweifter Klammer und ID der Frage: {ID der Frage}

(Satz-)Syntax für dynamische Texte und Ausdrucksfelder

Im Folgenden eine tabellarische Übersicht für eine fiktives Element mit der ID der Frage als FrageX. Gezeigt wird, wie man auf das jeweilige Element in einem dynamischen Text zurück greift, sowie in einem Ausdrucksfeld für die Berechnungen von Scores und für zusammengesetzte Texte z.B. als Karteitexte.

ElementHTML oder Überschriften:
Befehl für dynamische Texte
Ausdruck:
Befehl für Score
Ausdruck:
Befehl für zusammengesetzte Texte
Einfacher Text, Typ Zahl{FrageX}{FrageX}
{FrageX} *
Einfacher Text, Typ Datum{FrageX}Spezialthema, s.u.{FrageX} *
Einfacher Text, weitere Typen{FrageX}nicht (sinnvoll) nutzbar{FrageX} *
Langer Text{FrageX}
Zeilenumbruch bleibt Zeilenumbruch
nicht (sinnvoll) nutzbar{FrageX}*
Zeilenumbruch wird zu Leerzeichen
Wahrheitswert
*true/false
{FrageX}{FrageX}
true=0, false=1
displayValue('FrageX')
Einfachauswahl{FrageX}wert("FrageX") = ein einzelner WertID (Item): {FrageX}
Text (Anzeigetext): displayValue('FrageX') *
Wert (Zahlenwert): wert("FrageX")
Mehrfachauswahl{FrageX}wert("FrageX") = kommaseparierte Liste der ausgewählten Antworten;
Aggregierung der Liste z.B. via:
sum(wert("FrageX"))
ID (Item): {FrageX}
Text (Anzeigetext): displayValue('FrageX') *
Wert (Zahlenwert): wert("FrageX")
Matrix Werte global
* {Zeile1=Spalte?, Zeile2=Spalte?,…)
nicht möglichwert("FrageX") = kommaseparierte Liste der Zeilenwerte
Aggregierung der Liste z.B. via:
sum(wert("FrageX"))
nicht möglich
Matrix Wert einer Zelle{FrageX.ZeileY}wert("FrageX.ZeileY"){FrageX.ZeileY}

* entspricht dem Format, wie die Daten des Elementes am Ende auch in tomedo® angezeigt werden in der tabellarischen Übersicht.

Die Syntax der Ausdrücke in den Patientenformularen stammt aus einer Toolbox namens SurveyJS. Auf der Hilfeseite von SurveyJS finden Sie weitere Informationen zur verfügbaren (Satz-)Syntax, z.B. die Syntax für:

  • Vergleiche (Comparison Operators):
    • Beispiel Wert leer: {Frage1} empty
  • logische Berechnungen (Logical Operators):
    • Beispiel UND-Verknüpfung: {Frage1} empty and {Frage2} empty
  • einfache Berechnungen (Arithmetic Operators mit einfachen Zahlen, Einfachauswahl oder Matrixwerten):
    • Addition, zwei einfache Zahlen: {Frage1} + {Frage2}
    • Addition, Matrixelemente zwei von mehreren Zeilen: wert("FrageX.Zeile1") + wert("FrageX.Zeile2")
    • Addition, Matrixelemente alle Zeilen: sum(wert("FrageX"))
    • Subtraktion, zweimal Einfachauswahl: wert("FrageX") - wert("FrageX")
    • Multiplikation, Matrixelemente zwei Zeilen: wert("FrageX.Zeile1") * wert("FrageX.Zeile2")
    • Division, zwei einfache Zahlen: {Frage1} / {Frage2}
    • Drei Ausdrucksfelder mit Scoreberechnungen werden gemittelt, die Scores wurden vorher z.B: via Addition von Matrixfeldern erstellt: ({Score1} + {Score2} + {Score3})/3
  • komplexe Berechnungen (Calculation Functions) wie (1) Logische Funktionen und (2) Datumsfunktionen:
    • Logische Funktion: iff({Frage1} > 17, 'Erwachsen', 'Kind')
      • Beschreibung: iff(Bedingung, Wert bei erfüllter Bedingung, Wert bei nicht erfüllter Bedingung)
    • Datumsfunktion Beispiel heutiges Datum: today() oder currentDate(
    • Datum von Gestern: today(-1)
    • Datum von Morgen: today(1)
  • Funktionen zum zusammenfassen von Daten (Aggregation Functions):
    • Summe einer Liste von Zahlen: sum(1,2,3) ergibt 6
    • Summe einer Liste von Zahlen einer Mehrfachauswahl: sum(wert("FrageX"))
    • Minimum einer Liste von Zahlen: min(10, 20, 30, 40) ergibt 10
    • Minimum einer Liste von Zahlenelementen: min({frage1}{frage2}{frage3})
    • Maximum einer Liste von Zahlen: max(10, 20, 30, 40) ergibt 40
    • Maximum einer Liste von Zahlenelementen: max({frage1}{frage2}{frage3})
    • Durchschnitt einer Liste von Zahlen: avg(10, 20, 30, 40) ergibt 25
    • Durchschnitt einer Liste von Zahlenelementen: avg({frage1}, {frage2}, {frage3})
  • Beispiel-Syntax in einem Ausdrucks-Feld für einen Text als Ausgabe, basierend auf zwei einfachen Textelementen mit ID Frage1 und ID Frage2: 'Antwort auf Frage 1: ' + {Frage1} + ', Antwort auf Frage 2: ' + {Frage2} + '.'

Bei den Ausdrücken können Sie auch ChatGPT um Hilfe bitten. Bei Fragen an ChatGPT macht es Sinn, zu erwähnen dass die Syntax von SurveyJS ist. Hier sehen Sie zwei mögliche Anwendungsfälle, bei denen Ihnen ChatGPT helfen kann:

Beispiel-Eingabe um sich Erklärungen von ChatGPT geben zu lassen:

  • Was macht der folgende Ausdruck in SurveyJS iif({Frage1} >=2, 'alt', 'jung')?
  • Antwort gekürzt von ChatGPT:
  • Logik: iif(condition, value_if_true, value_if_false)
  • Erklärung: Dies ist eine bedingte Anweisung, die einen von zwei Werten zurückgibt. Wenn die Bedingung wahr ist (also {Frage1} >= 2), gibt der Ausdruck 'alt' zurück. Andernfalls gibt er 'jung' zurück.

Beispiel-Eingabe, um Fehler zu suchen:

  • Der Ausdruck iif({Frage1}} >=2, 'Adult', 'Minor') innerhalb von SurveyJS funktioniert nicht, woran könnte das liegen?
  • Antwort gekürzt von ChatGPT:
  • Lösung: im Beispiel ist ein Klammerfehler – statt {Frage1}} müsste {Frage1} stehen.

HTML Element

Die Satz-Syntax in dem Element HTML dient dazu, Texte zu generieren und anzeigen zu lassen. Hier können Sie auch auf externe Seiten oder Videos verlinken. Zusätzlich können Sie auch Antworten von Fragen des Formulares einbettet. Ein einfaches Beispiel wäre ein Fragebogen welcher zu Beginn folgende Informationen erhebt und später als einen Text im Formular darstellt:

  • Vornamen des Patienten: Text-Element mit der ID firstName
  • Nachnamen des Patienten: Text-Element mit der ID lastName
  • Satz-Syntax: Hallo, {firstName} {lastName}
  • Resultierender Text: für Vorname Max und Nachname Müller: „Hallo, Max Müller“

Die Informationen aus dem HTML Element werden auf dem Fragebogen angezeigt, können jedoch innerhalb von tomedo® nicht via Kommandos abgefragt werden.

Eine direkte Einbindung von eigenem HTML-Code ist nur über unseren Support möglich (Link zur internen Dokumentation).

Validierung

Beispiel Validierung einer Uhrzeit:

  • Nutzen Sie ein einfaches Textfeld für eine Uhrzeit
  • Gehen Sie rechts auf Validierung und wählen hier „Regulärer Ausdruck“.
  • Ergänzen Sie eine Fehlermeldung, wie z.B. „Bitte im Format hh:mm eintragen“
  • Ergänzen Sie folgende Text bei „Regulären Ausdruck“: ^([0-2]|0[0-9]|1[0-9]|2[0-3]):([0-5][0-9])$
Technische Beschreibung JSON Patientenformulare

JSON Form Schema Guide
Overview
This schema defines a structured JSON format used to build multi-page, multilingual forms. Each form is composed of metadata, pages, and elements (questions/inputs). Each input type (text, checkbox, radiogroup, etc.) has a specific structure.

Root Structure
The JSON document starts with general form metadata and a list of pages.
{
 „title“: { „de“: „German title“, „en“: „English title“ },
 „description“: { „de“: „German description“, „en“: „English description“ },
 „logoPosition“: „right“, // Optional: „left“, „right“, „top“, „none“
 „pages“: [ … ]
 }

Page Structure
Each page contains a name, a localized title and description, and an array of elements.
{
 „name“: „Page1“,
 „title“: { „de“: „Seitenüberschrift“, „en“: „Page Title“ },
 „description“: { „de“: „Seitenbeschreibung“, „en“: „Page description“ },
 „elements“: [ … ]
 }

Elements (Form Fields)
Each element is a question or input in the form. The basic required keys are:

  • type (string): text, comment, checkbox, radiogroup, etc.
  • name (string): unique internal identifier
  • shortTitle (string/number): a short label or reference
  • title (optional): localized text for the question
  • choices (only for choice-based questions): an array of options

Supported Element Types:

Text Input (Single Line)

{
 „type“: „text“,
 „name“: „firstName“,
 „shortTitle“: „1“,
 „title“: { „de“: „Wie ist Ihr Vorname?“ }
 }
Optional:

  • inputType: „tel“, „email“, „number“, etc. for input filtering.
  • Comment (Multi-line Text)

{
 „type“: „comment“,
 „name“: „feedback“,
 „shortTitle“: „2“,
 „title“: { „de“: „Haben Sie Kommentare?“ }
 }

Checkbox (Multi-Select)

{
 „type“: „checkbox“,
 „name“: „favoriteColors“,
 „shortTitle“: „3“,
 „title“: { „de“: „Wählen Sie Ihre Lieblingsfarben“ },
 „choices“: [
 { „value“: „red“, „text“: { „de“: „Rot“ } },
 { „value“: „blue“, „text“: { „de“: „Blau“ } }
 ]
 }

Radiogroup (Single-Select)

{
 „type“: „radiogroup“,
 „name“: „doYouSmoke“,
 „shortTitle“: „4“,
 „title“: { „de“: „Rauchen Sie?“ },
 „choices“: [
 { „value“: „yes“, „text“: { „de“: „Ja“ } },
 { „value“: „no“, „text“: { „de“: „Nein“ } }
 ]
 }
Optional Fields (for all types)

  • isRequired (boolean): Marks a field as required
  • defaultValue: The default value to pre-fill
  • visibleIf: Conditional logic based on other fields (e.g., show if another field has a certain value)

 Example: Full Minimal Form
{
 „title“: { „de“: „Beispielformular“ },
 „description“: { „de“: „Bitte füllen Sie das folgende Formular aus.“ },
 „logoPosition“: „right“,
 „pages“: [
 {
 „name“: „Seite1“,
 „title“: { „de“: „Allgemeine Informationen“ },
 „description“: { „de“: „Ein paar Fragen zu Ihrer Person.“ },
 „elements“: [
 {
 „type“: „text“,
 „name“: „firstName“,
 „shortTitle“: „1“,
 „title“: { „de“: „Wie ist Ihr Vorname?“ }
 },
 {
 „type“: „radiogroup“,
 „name“: „doYouSmoke“,
 „shortTitle“: „2“,
 „title“: { „de“: „Rauchen Sie?“ },
 „choices“: [
 { „value“: „yes“, „text“: { „de“: „Ja“ } },
 { „value“: „no“, „text“: { „de“: „Nein“ } }
 ]
 },
 {
 „type“: „checkbox“,
 „name“: „favoriteAnimals“,
 „shortTitle“: „3“,
 „title“: { „de“: „Lieblingstiere“ },
 „choices“: [
 { „value“: „elephant“, „text“: { „de“: „Elefant“ } },
 { „value“: „zebra“, „text“: { „de“: „Zebra“ } },
 { „value“: „fish“, „text“: { „de“: „Fisch“ } },
 { „value“: „dolphin“, „text“: { „de“: „Delfin“ } }
 ]
 }
 ]
 }
 ]
 }

Prompting Tips for LLMs
When asking an LLM to generate a form using this schema, structure your prompt like:
„Generate a form with the following questions. Use the appropriate types:

  1. What is your name?
  2. Do you like pizza? (Yes/No)
  3. Choose your favorite fruits: apple, banana, cherry“

Output Expectation
The LLM should generate a JSON object that matches this schema, including:

  • Proper use of types (text, radiogroup, checkbox)
  • title and description at root and page level
  • choices array for multi-option fields
  • German localization via „de“ keys in text fields
Inhaltsverzeichnis