Zum Inhalt springen
SuperScheduler

Praxen und Gesundheit

Praxis- und Klinikplanung im 15-Minuten-Raster

Ein Praxiskalender ist ein dichtes Raster kurzer Termine, und jeder braucht die richtige Fachkraft, den richtigen Raum und ein paar Minuten, um zwischen zwei Patienten alles vorzubereiten. Diese Seite erklärt, wie Sie diesen Tag in SuperScheduler abbilden, welche Regeln die Zeitleiste schon beim Ziehen durchsetzt und welche Ihr Backend verantworten muss.

Warum ein Praxistag schwieriger ist, als er aussieht

Der Empfang arbeitet in kurzen Einheiten. Ein Kontrolltermin dauert 15 Minuten, eine Physiotherapie-Sitzung 30 oder 45, eine Eingangsuntersuchung eine Stunde – alles im selben Viertelstundenraster. Die Lücken zählen so viel wie die Buchungen: Räume müssen zwischen zwei Patienten vorbereitet werden, und Fachkräfte brauchen Pausen, die nicht stillschweigend verplant werden.

Außerdem ändert sich der Tag ständig. Patienten kommen zu spät, sagen ab oder erscheinen nicht, und ein dringender Fall muss hineinpassen, ohne drei andere Menschen zu verschieben. Wer umplant, muss sehen, wann eine Fachkraft und ein Raum gleichzeitig frei sind, und die Oberfläche muss eine Änderung ablehnen, die zwei Patienten in denselben Raum legt.

Und es geht um Gesundheitsdaten. Ein gemeinsam genutzter Bildschirm am Empfang sollte nur das Nötigste zeigen, um den Tag zu organisieren; Akten, Regeln und Prüfprotokolle gehören in die Systeme der Praxis, nicht in den Browser.

Entscheidungen, die der Empfang jeden Tag trifft

  1. 01

    Fachkraft oder Raum als Zeile

    Ein Termin braucht beides, aber eine Zeile der Zeitleiste ist genau eine Ressource. Die meisten Praxiskalender legen Fachkräfte in die Zeilen, weil Patienten so fragen („dieselbe Physiotherapeutin, Dienstagvormittag“), und behandeln den Raum als Bedingung, die die Anwendung prüft.

  2. 02

    Slotlänge und Termindauer

    Das Raster hat meist 15 Minuten, Terminarten dauern dagegen 15 bis 60 Minuten. Gezogene Termine müssen am Raster einrasten, und Änderungen der Dauer müssen zur Dauer der Terminart passen.

  3. 03

    Pausen und Sperrzeiten schützen

    Mittagspause, Verwaltungszeit, Fortbildungen und ein Raum, der gewartet wird, müssen sichtbar als nicht verfügbar erscheinen und Buchungen ablehnen – statt darauf zu bauen, dass jemand daran denkt.

  4. 04

    Wechselzeit zwischen Patienten

    Manche Räume brauchen fünf oder zehn Minuten zwischen zwei Sitzungen. Ob dieser Puffer als sichtbarer Block erscheint oder als Abstand, den die Validierung einrechnet, entscheidet die Praxis.

  5. 05

    Verspätungen und Nichterscheinen

    Ein verspäteter Patient verkürzt eine Sitzung oder schiebt die nächste; ein nicht wahrgenommener Termin macht einen Slot für die Warteliste frei. Beides sind Statusänderungen, die der Kalender anzeigt, ohne die ursprüngliche Buchung zu verlieren.

So bilden Sie einen Praxiskalender ab

Behandeln Sie die Zeitleiste als Ansicht Ihrer Termindaten: Zeilen sind buchbare Personen oder Räume, Ereignisse sind Termine, und jede wichtige Regel wird auf dem Server erneut geprüft.

Ressourcen
Legen Sie eine Zeile pro Fachkraft an, in einem Ressourcenbaum nach Fachrichtung gruppiert, mit Spalten im Zeilenkopf für Spezialisierung oder Stammraum. Sind Räume die knappere Ressource, legen Sie die Räume in die Zeilen und führen die Fachkraft als Feld jedes Termins.
Ereignisse
Jeder Termin ist ein halboffenes Intervall in Kalenderzeit, etwa 09:15:00 bis 10:00:00; eine Sitzung, die um 10:00 endet, lässt den Slot um 10:00 also frei. Geben Sie die ID aus Ihrem Backend, die Terminart und einen Status mit, und rendern Sie nur, was der Empfang braucht.
Zeitskala
Nutzen Sie eine Zellendauer von 15 Minuten mit Stunden in der Kopfzeile, und setzen Sie showNonBusiness auf false, um die Stunden auszublenden, in denen die Praxis geschlossen ist. Eine zweite Zoomstufe mit Stundenzellen über eine ganze Woche hilft, wenn Sie eine Reihe von Folgeterminen planen.
Regeln
Setzen Sie allowEventOverlap auf false und deaktivieren Sie die Zellen der Pausen in onBeforeCellRender. Prüfen Sie Raumkonflikte und Wechselzeiten in onEventMoving, mit einer Meldung, die die Ablehnung erklärt, und bestätigen Sie jede Änderung in onEventMove mit dem Backend, bevor sie übernommen wird.

Was die Bibliothek übernimmt, was Ihr Praxissystem übernimmt

  • Ein Viertelstundenraster mit Einrasten, Ziehen, Dauer ändern und – im vollständigen Tastaturmodus – Verschieben per Tastatur
  • Ablehnung von Verschiebungen auf belegte Zeiträume oder deaktivierte Zellen, mit Ihrer Meldung im Feedback beim Ziehen
  • Schraffierte Sperrzeiten für Pausen, Verwaltungszeit und geschlossene Räume
  • Termininhalte, gerendert über React-Render-Slots
  • Ein asynchrones Veto in onEventMove, sodass eine Änderung auf den Server warten kann
  • Patientenakten und die Entscheidung, welche Felder auf dem Bildschirm landen
  • Die verbindliche Prüfung auf Doppelbuchungen in der Datenbank
  • Rollen und Berechtigungen: wer für wen verschieben, absagen oder buchen darf
  • Wiederkehrende Behandlungspläne, aufgelöst in einzelne Termine
  • Erinnerungen, Wartelisten, Abrechnung, Prüfprotokolle und Zeitzonenumrechnung

Funktionierende Beispiele

Typische Fehler in Praxiskalendern

Klinische Details im Ereignistext

Text, Tooltips und Bubbles landen in der Seite und auf einem Bildschirm, den womöglich das Wartezimmer sieht. Zeigen Sie Initialen oder eine kurze Referenz, und laden Sie Details bei Bedarf hinter Ihren eigenen Zugriffsprüfungen.

Nicht wahrgenommene Termine blockieren lassen

Werden Überlappungen abgelehnt, belegt ein nicht wahrgenommener Termin weiterhin seinen Slot. Entfernen Sie ihn aus den Ereignissen, die Sie übergeben, oder lassen Sie die Überlappung in onEventMoving zu, wenn jedes Ereignis in args.conflicts abgesagt oder nicht wahrgenommen ist.

Die Endzeit als inklusiv behandeln

Ein Termin von 09:00:00 bis 09:30:00 endet um 09:30, und eine Buchung um 09:30 überlappt ihn nicht. Wer eine Minute addiert, um das Intervall zu „schließen“, erzeugt den ganzen Tag falsche Konflikte.

Den Browser als letzte Verteidigungslinie sehen

Die Zeitleiste lehnt eine Überlappung ab, die sie sehen kann – nicht aber eine Buchung, die vor einer Sekunde an einem anderen Arbeitsplatz angelegt wurde. Der Server muss sie ablehnen, und die Anwendung muss neu laden.

Fragen

Kann ich verhindern, dass sich zwei Termine im selben Raum überlappen?

Ja. Mit Räumen als Zeilen setzen Sie allowEventOverlap auf false, und die Zeitleiste lehnt Verschiebungen, Änderungen der Dauer und Auswahlen auf einen belegten Zeitraum in dieser Zeile ab. Mit Fachkräften als Zeilen prüfen Sie Raumkonflikte in onEventMoving und setzen args.allowed mit einer Meldung auf false. In beiden Fällen wiederholen Sie die Prüfung auf dem Server.

Wie zeige ich 15-Minuten-Slots in einem React-Scheduler?

Setzen Sie scale auf „CellDuration“ und cellDuration auf 15, mit Zeitköpfen, die nach Stunden gruppiert sind. Ziehen, Dauer ändern und Auswählen rasten standardmäßig an der Zelle ein, und showNonBusiness auf false blendet die Stunden außerhalb von businessBeginsHour und businessEndsHour aus.

Unterstützt SuperScheduler wiederkehrende Termine?

Nicht als Funktion: Die Wiederholungsoptionen sind reserviert und haben keine Wirkung. Lösen Sie einen Plan mit acht wöchentlichen Sitzungen in Ihrem Backend in acht Termine mit jeweils eigener ID auf, damit sich eine Sitzung verschieben lässt, ohne die übrigen zu berühren.

Ist SuperScheduler HIPAA- oder DSGVO-konform?

Compliance ist eine Eigenschaft des gesamten Systems, nicht einer UI-Komponente, und die Bibliothek besitzt keine Zertifizierung. Sie läuft im Browser und speichert oder sendet von sich aus nichts; Speicherung, Zugriffskontrolle, Protokollierung und Verträge mit Dienstleistern liegen in der Verantwortung Ihrer Anwendung und ihrer Betreiber.

Mit synthetischen Daten ansehen

Die Forma-Demo verlegt Physiotherapie-Termine auf einer Minutenskala und hält sie aus Sperrzeiten heraus. Sie nutzt erfundene Fachkräfte und keinerlei Patientendaten.

Funktionierende Beispiele