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. Unter Einstellungen finden Sie dann 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 als Unterschrift 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.

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 ID der Frage wird benötigt um innerhalb der Patientenformulare auf die Antworten 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.
  • Der tomedo® Rückschrieb Wert wird benötigt, um die richtigen Stammdaten der Patienten innerhalb von tomedo® bei Bedarf aktualisieren zu können.
  • 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 Eingabetyp: 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 true/false), es ist möglich hier nichts anzugeben, wenn die Frage nicht erforderlich ist.

Elemente um die Stammdaten Ihrer Patienten zu 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 einen tomedo® Rückschrieb-Wert 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:

  • Geburtsdatum: Rückschrieb in Geburtsdatum unter Profil in den Patientendetails
  • Geschlecht: Rückschrieb in Geschlecht unter Profil in den Patientendetails
  • Titel: Rückschrieb in Titel 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

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 zusammengesetzten Texten (z.B. für Karteitexte). 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
* {Zeile1=Spalte?, Zeile2=Spalte?,…)
Spezialthema, folgtwert("FrageX") = kommaseparierte Liste der Zeilenwerte
Aggregierung der Liste z.B. via:
sum(wert("FrageX"))
Spezialthema, folgt

* 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):
    • Addition: {Frage1} + {Frage2}
  • komplexe Berechnungen (Calculation Functions) wie (1) Logische Funktionen und (2) Datumsfunktionen:
    • (1) Logische Funktion: iff({Frage1} > 17, 'Erwachsen', 'Kind')
      • Beschreibung: iff(Bedingung, Wert bei erfüllter Bedingung, Wert bei nicht erfüllter Bedingung)
    • (2) Datumsfunktion Beispiel heutiges Datum: currentDate()
  • 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"))
  • Beispiel-Syntax in einem Ausdrucks-Feld für einen Karteitext, 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).

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