Patientenmarker

Die Markeransicht

Zur einfachen Markierung wichtiger Informationen an Patienten bietet Ihnen tomedo® Patientenmarker an. Sie sehen die Marker als bunte Symbole auf grauem Grund unterhalb des Patientenbildes in der Kartei, den Patientendetails und der Patienteninfo.

Die Symbole sind in Gruppen unterteilt, innerhalb einer Gruppe überlappen sich die Symbole – abhängig davon wie viel Platz verfügbar ist. Die Gruppen sind durch einen größeren Abstand voneinander getrennt. Wenn Sie mit der Maus über die graue Anzeigeleiste fahren, wechselt die Markeransicht in den expandierten Modus. Die Marker werden dann vertikal ausgerichtet und die zugehörige Beschreibung daneben angezeigt. Wenn der Mauszeiger das Patientenbild verlässt, wechselt die Markeransicht zurück in den kompakten Modus. Falls nicht alle Symbole in die Ansicht passen, werden sowohl im kompakten Modus als auch im expandierten Modus drei Punkte angezeigt.

Um dies zu umgehen und sich stattdessen in nebeneinanderliegenden Spalten mehr Marker gleichzeitig anzeigen zu lassen, können Sie die Patienteninfos innerhalb der Kartei oberhalb der medizinischen Dokumentation und der Rechnung über den kleinen Punkt 1 herunterziehen und anzeigen lassen. Hier können Sie die Breite des Patientenbildes (ebenfalls über Ziehen eines kleinen Punktes 2) bestimmen und damit mehr Symbole und – im expandierten Modus – mehr Beschreibungen anzeigen lassen.

Beim Klick auf das offene Schloss (sodass dieses nun geschlossen ist, siehe Bild) wird die Markeransicht im expandierten Modus gesperrt, d.h. unabhängig von der Mausposition wird der expandierte Modus angezeigt. Mit einem weiteren Klick auf das Schloss (sodass dieses offen ist) wechselt die Ansicht wieder zwischen kompakt und expandiert. Diese Einstellung ist arbeitsplatzspezifisch und für Kartei, Patientendetails und Patienteninfo getrennt einstellbar. So können Sie z.B. in der Anmeldung in der Patienteninfo die Sperrung aktivieren, um immer sofort alle Marker im Überblick zu haben. In den Patientendetails jedoch nicht, um dort weiterhin einen guten Blick auf das Patientenfoto zu haben.

Ein Klick in die kompakte bzw. expandierte Markeransicht (außer auf das Schloss) öffnet ein Popover zum Setzen der Patientenmarker. In der expandierten Markeransicht können Sie das Patientenfoto nur bearbeiten, wenn Sie auf Teile des Patientenfotos klicken, die nicht von der Markeransicht verdeckt werden. Solange die Markeransicht nicht gesperrt ist, können Sie den Mauszeiger seitlich oder von oben auf das Patientenbild bewegen, ohne dass sich die Markeransicht expandiert. Ist die Markeransicht gesperrt, können Sie die Sperrung durch einen Klick auf das Schlosssymbol wieder entsperren und danach im kompakten Modus das Patientenbild bearbeiten.

Setzen von Patientenmarkern

Das Popover zum Setzen von Patientenmarkern erreichen Sie durch einen Klick in die Markeransicht (außer auf das Schloss), die Tastenkombination ⌃ Ctrl + ⇧ Shift + ⌘ Cmd + M sowie im Menü unter Patient → Marker einstellen (in der Kartei und den Patientendetails).

Das Popover ist in zwei Bereiche geteilt: Links sehen Sie die Liste aller Gruppen und auf der rechten Seite die zugehörigen Marker der ausgewählten Gruppe. Zusätzlich zu den von Ihnen erstellten Gruppen erzeugt tomedo® automatisch eine Gruppe „Alle“ mit allen erstellten Markern. Außerdem können Sie sich in der Gruppe "aktive" alle momentan gesetzten Marker anzeigen lassen und verändern.

Innerhalb der Ansicht können Sie komfortabel mit den Pfeiltasten navigieren. Zur Auswahl eines Markers können Sie entweder mit der Maus die Checkbox anklicken oder, sobald der entsprechende Marker markiert ist, die Leertaste drücken. Der neue Marker erscheint dann sofort in der Markeransicht des Patienten. Mit einem Klick auf „OK“ oder Drücken der Enter-Taste schließen Sie das Popover zum Setzen der Patientenmarker.

Das Einstellungsrädchen im unteren linken Bereich des Popovers führt Sie zur globalen Markereinstellung. Dort können Sie Marker erstellen, bearbeiten und löschen (siehe nächster Abschnitt).

Einstellungen für Patientenmarker

Sie erreichen das Einstellungsfenster für die Patientenmarker (die sogenannte Marker-Verwaltung) im Hauptmenü über Admin → Praxisorganisation → Marker. Alternativ erreichen Sie die Marker-Verwaltung auch aus dem Popover zum Setzen der Patientenmarker durch Klick auf das Einstellungsrädchen.

Das Einstellungsfenster unterteilt sich in drei Bereiche. Im Bereich 1 können Sie Gruppen und Marker erstellen, bearbeiten und löschen. Über die Schaltfläche "Arbeitsplatzeinstellungen" 2 können Sie die Markeransicht konfigurieren. Im Bereich 3 können automatische Marker erstellt werden. Diese Erstellung von automatisierten Markern wird in einem separaten Unterkapitel erklärt.

Erstellen & Bearbeiten von Gruppen

Im linken Bereich des Fensters können Sie sowohl Gruppen als auch Marker erstellen, bearbeiten und löschen. Die Gruppen dienen der inhaltsspezifischen Sammlung ähnlicher Marker und ermöglichen eine bessere Strukturierung. In der Markeransicht werden Marker einer Gruppe zusammengefasst dargestellt, während die Gruppen durch einen Abstand voneinander getrennt werden.

Die Felder im Gruppenbereich haben die folgenden Funktionen:

  1. Über die "+"-Schaltfläche können Gruppen hinzugefügt werden, die "–"-Schaltfläche löscht die ausgewählte Gruppe.
  2. Mit den Pfeiltasten kann die Reihenfolge der Gruppen untereinander verändert werden. Die Gruppen werden in der Reihenfolge, in der sie aufgelistet sind, in der Markeransicht dargestellt.
  3. Dieses Textfeld enthält die Beschreibung der Gruppe. Diese Beschreibung ist im Popover zum Setzen der Marker zu sehen. (Hinweis: Da tomedo® automatisch beim Setzen eine Hilfsgruppe mit dem Namen „Alle“ anlegt, kann eine eigene Gruppe mit dem Namen „Alle“ zu Verwirrungen führen.)
  4. In diesem Feld kann ein Symbol gesetzt werden, entweder durch Drag & Drop, durch einen Klick auf die Symbolfläche oder das „+“. tomedo® liefert eine Vielzahl vorgefertigter Symbole mit, Sie können jedoch jedes beliebige Bild verwenden. Beim Klick in das Feld bzw. auf das „+“ öffnet sich ein Dateiauswahlfenster mit den vorgefertigten Symbolen. Sie können mit diesem Fenster auch jedes andere Bild auf ihrem Computer auswählen und verwenden.

Über die Checkbox "gelöschte Gruppen und Marker anzeigen" 9 unterhalb der Markereinstellungen (siehe nächster Abschnitt) können Sie auch bereits gelöschte Gruppen ansehen und bei Bedarf wiederherstellen.

Erstellen & Bearbeiten von Patientenmarkern

Auch die Patientenmarker der einzelnen Gruppen können Sie nach Belieben verändern, löschen oder neue hinzufügen.

  1. Über die "+"-Schaltfläche können Marker hinzugefügt werden, die "–"-Schaltfläche löscht den ausgewählten Marker.
  2. Mit den Pfeiltasten kann die Reihenfolge der Marker untereinander verändert werden. In der Markeransicht werden die Marker innerhalb ihrer Gruppe ebenfalls in der Reihenfolge, in der sie in der Tabelle aufgelistet sind, dargestellt.
  3. Dieses Textfeld enthält die Beschreibung des Markers. Diese Beschreibung ist im Popover zum Setzen der Marker zu sehen. Die Markerbeschreibung ist ebenfalls in der expandierten Markeransicht sichtbar.
  4. Markersymbole können mit einer frei wählbaren Farbe eingefärbt werden. Falls ein Markersymbol vorhanden ist, wird dieses über die ausgewählte Symbolfarbe eingefärbt, andernfalls wählt tomedo® automatisch das Gruppensymbol aus. Die Text- und Hintergrundfarbe des Markers lassen sich separat einstellen. Der Übersichtlichkeit halber ist die Farbauswahl erst in der Markeransicht sichtbar und nicht im Symbolauswahlfeld. Ein Klick auf die "–"-Schaltfläche löscht die Farbe wieder.
  5. In diesem Feld kann ein Symbol durch Drag & Drop, durch einen Klick auf die Symbolfläche oder das „+“-Symbol gesetzt werden. tomedo® liefert eine Vielzahl vorgefertigter Markersymbole mit, Sie können jedoch jedes beliebige Bild verwenden. Beim Klick in das Feld bzw. auf das „+“ öffnet sich ein Dateiauswahlfenster mit den vorgefertigten Symbolen. Sie können mit diesem Fenster auch jedes andere Bild auf Ihrem Computer auswählen und verwenden.
  6. Die Aktivierung dieser Checkbox ermöglicht das automatische Setzen von Markern nach vordefinierten Regeln. Eine ausführliche Beschreibung dieser Funktion ist im Unterkapitel Automatische Patientenmarker zu finden.
  7. Die Aktivierung dieser Checkbox ermöglicht das automatische Zurücksetzen von Markern durch den Server.
  8. Über die Checkbox "Checkbox zuordnen" können Sie bestimmte Markern mit Checkboxen in den Patientendetails verbinden. Mehr Informationen zu diesem Punkt finden Sie im Abschnitt Marker als Checkbox nutzen.
  9. Durch die Aktivierung der Option „gelöschte Gruppen und Marker anzeigen“ werden gelöschte Gruppen und Marker angezeigt und können wiederhergestellt werden.

Die Patientenmarker gestatten Ihnen unterschiedliche Anwendungskonzepte. So können Sie z.B. nur ein Gruppensymbol setzen und die Marker farblich voneinander trennen.

Alternativ können Sie für jeden Marker innerhalb einer Gruppe ein separates Symbol verwenden und dieses nach Bedarf einfärben. So können Sie z.B. gegensätzliche Eigenschaften markieren, z.B. Untergewicht/ Übergewicht.

Falls Sie keine Symbole verwenden möchten, ist dies auch möglich. In diesem Fall erscheint im expandierten Modus nur der Text. Natürlich können Sie auch andersherum nur Symbole ohne Beschreibung nutzen. Je nach Bedarf können Sie die verschiedenen Möglichkeiten beliebig kombinieren und Ihren Gegebenheiten anpassen.

Wiederherstellen von Gruppen & Markern

Durch Aktivierung der Checkbox „gelöschte Gruppen und Marker anzeigen“ werden Ihnen alle gelöschten Gruppen und Marker angezeigt. Daraufhin sehen unterhalb des Gruppen- bzw. Markersymbols den Hinweis "gelöscht" sowie eine Schaltfläche "Wiederherstellen", der die Gruppe oder den Marker wieder zurück in die reguläre Ansicht bringt.

Automatisches Zurücksetzen von Markern

Durch Aktivierung der Checkbox können Sie Marker automatisch zurücksetzen. Das Zurücksetzen wird vom Server ausgeführt und ist danach auf allen Clients wirksam. Als mögliche Intervalle stehen Ihnen monatlich, quartalsweise, halbjährlich und jährlich zur Verfügung. Wenn die Checkbox nicht aktiviert sind, ist "Kein Wert" im Auswahlmenü hinterlegt.

Marker als Checkboxen nutzen

Um sich Marker-Checkboxen in der Patienteninfo innerhalb der Patientendetails anzeigen zu lassen, müssen Sie zunächst einstellen, dass ein entsprechendes Feld in der Patienteninfo vorhanden ist. Dazu können Sie auf das kleine Rädchen am oberen rechten Rand klicken, woraufhin sich ein Popup-Fenster öffnet, in dem Sie die Informationsfelder konfigurieren können. Klicken Sie hier die Auswahl "Checkboxen Marker" an.

Daraufhin können Sie in der Markerverwaltung für jeden Marker einzeln angeben, ob dieser als Checkbox in den Patienteninfos auftauchen soll oder nicht. Dafür klicken Sie das Feld "Checkbox zuordnen" an.

Daraufhin erscheinen die entsprechenden Checkboxen in den Patienteninfos.

Bei allen Markern, denen eine Checkbox zugeordnet wurde, sehen Sie im Patientenpanel eine entsprechende Checkbox. Diese Checkbox ist aktiviert, wenn der Marker gesetzt ist.

Wenn Sie die Checkbox aktivieren, wird auch der Marker gesetzt, d.h. Marker und Checkbox sind synchron.

Konfiguration der Markeransicht

Sie können die Markeransicht im expandierten Modus durch einen Klick auf das Schlosssymbol sperren. In diesem Fall überdecken die Markersymbole und die zugehörigen Beschreibungen das Patientenbild – unabhängig von der Mausposition. Diese Einstellung ist spezifisch für Ihren Arbeitsplatz sowie Kartei, Patientendetails und Patienteninfo. In der Marker-Verwaltung können Sie mit der Schaltfläche "Arbeitsplatzeinstellung" am unteren Reiter des Fensters weitere Einstellungen vornehmen, die arbeitsplatzspezifisch alle Markeransichten beeinflussen.

Sie können die Deckkraft im kompakten und expandierten Modus einzeln einstellen. Dies betrifft die Transparenz der grauen Anzeigeleiste im kompakten Modus sowie den weißen Hintergrund im expandierten Modus. Wenn Sie die Deckkraft im kompakten Modus auf 0% setzen, sehen Sie keine Anzeigeleiste mehr, Markersymbole jedoch weiterhin. Im expandierten Modus kann es sein, dass bei einer Deckkraft von 0% die Beschreibungstexte über dem Patientenbild schwer lesbar sind. Bei einer Deckkraft von 100% im expandierten Modus wird das Patientenbild überdeckt.

Mit den Reglern „Minimaler Abstand der Symbole“ und „Maximaler Abstand der Symbole“ können Sie den Abstand der Symbole innerhalb einer Gruppe einstellen. Die Markeransicht versucht, den größtmöglichen Abstand zu wählen, bei dem noch alle Symbole sichtbar sind. Der absolute Abstand entspricht dem prozentualen Anteil an der Symbolgröße. Ein Abstand von 50% bedeutet z.B., dass die Symbole eine halbe Symbolgröße voneinander getrennt sind. Bei negativen Werten überlappen sich die Symbole. So überlappen sich die Symbole bei einem Abstand von -25% zu einem Viertel.

Mit dem Regler „Abstand zwischen Gruppen“ können Sie den Abstand zwischen den Symbolen unterschiedlicher Gruppen anpassen. Eine Angabe von 1.0 bedeutet z.B. einen zusätzlichen Abstand von einer Symbolgröße zwischen den Symbolen zweier Gruppen.

Wenn automatische Marker verwendet werden, in denen eine zeitliche Komponente enthalten ist, werden die Marker der Patienten erst angepasst, wenn die Kartei geöffnet wird. Wenn z.B. ein Marker anzeigt, dass eine Untersuchung einmal im Quartal stattfinden soll und die Kartei 4 Monate nach der letzten Untersuchung erneut geöffnet wird, zeigt die Statistik diesen Marker als „nicht gesetzt“ an. Sobald Sie die Kartei öffnen, wird der Marker gesetzt.

Die Option „Vorberechnung der Marker starten“ lädt an einem Arbeitsplatz alle Karteien, um die Marker für die gesamte Praxis neu zu berechnen. Bei Klick auf die Schaltfläche öffnet sich das folgende Fenster. Wählen Sie "Start" aus, um die Aktualisierung zu starten.

Automatische Patientenmarker

Sie können mit vordefinierten Regeln Patientenmarker automatisch setzen und entfernen. Zum Auswerten der Regeln greift tomedo® auf die Skriptsprache Python zurück. Dies bietet Ihnen die Möglichkeit, einfache Skripte selbst zu schreiben. Im erweiterten Modus stehen Ihnen alle Möglichkeiten einer hoch entwickelten Skriptsprache zur Verfügung.

Sobald Sie die Checkbox "automatisch setzen" bei einem Marker aktiviert haben, ermöglicht Ihnen der rechte Bereich des Marker-Verwaltungs-Fensters das Erstellen und Testen der automatischen Marker.

Mit dem Suchfeld 1 können Sie einen Patienten laden, an dem Sie die Automatisierung testen können. Dieser erscheint daraufhin unterhalb des Suchfeldes mit seinem Patientenbild und den für ihn ausgewählten Markern.

Die Reiter oberhalb des Textfensters 2 erlauben Ihnen, zwischen dem „einfachen“ und „erweiterten“ Modus zu wechseln. Eine genaue Beschreibung der Modi erfolgt in den Unterkapiteln Der einfache Modus und Der erweiterte Modus. In das Textfeld 3 können Sie die Skripte mit den Regeln zur Automatisierung schreiben.

Die „Skripte testen“-Schaltfläche 4 testet alle verfügbaren automatischen Marker am geladenem Patienten. Mögliche Fehler werden als Nachricht am oberen rechten Bildschirmrand angezeigt. Zusätzlich wird auch die Ausführungszeit aller Skripte gemessen und ausgegeben. Die Fehler- und Zeitausgabe findet nur in der Markerverwaltung statt.

Mit der „Skript kopieren“-Schaltfläche 5 kopieren Sie den gesamten Python-Code des geladenen Patienten in die Zwischenablage. Dies ermöglicht Ihnen das Entwickeln und Testen Ihrer Skripte in einer separaten Entwicklungsumgebung. Das kopierte Skript enthält dabei auch die zur Ausführung notwendigen Patientendaten. Eine ausführliche Anleitung zur Nutzung dieses Modus finden Sie unter dem Punkt externe Entwicklungsumgebung nutzen.

Die Tabelle 6 im rechten Bereich der Markerverwaltung enthält alle verfügbaren Variablen (siehe nächster Abschnitt) sowie ihren Datentyp und eine kurze Beschreibung. Durch einen Doppelklick auf eine Zeile kopieren Sie die entsprechende Variable in das Skriptfeld. Mit dem Suchfeld 7 können Sie die Variablentabelle durchsuchen.

Beim Laden des Patientenbildes in Kartei, Patientendetails und Patienteninfo sowie bei Änderungen in der Kartei und Patientendetails werden die Skripte im Hintergrund ausgeführt und die entsprechenden Marker gesetzt bzw. entfernt, sobald die Berechnungen beendet wurden. Die Ladezeit des entsprechenden Fensters wird dadurch nicht verlängert. Falls die Ausführungszeit der Skripte jedoch sehr lang ist, kann es passieren, dass die Marker erst deutlich nach dem Laden des Patientenbildes durch die Automatisierung geändert werden. Vermeiden Sie deswegen Ausführzeiten oberhalb des einstelligen Sekundenbereichs.

Die Variablen

Vordefinierte globale Variablen ermöglichen Ihnen den Lesezugriff auf die Daten des Patienten. Achten Sie bitte unbedingt auch auf die Schreibweise mit Hochkommas anstatt Anführungszeichen. Die Daten werden in verschiedenen Formaten zur Verfügung gestellt, diese sind:

  • String: Eine einfache Zeichenkette z.B. 'chronisch’
  • Integer: Eine ganze Zahl, z.B. 3
  • Float: Eine rationale Zahl, z.B. 3,4. Achten Sie darauf, dass Sie im Skript einen Punkt als Dezimaltrennzeichen verwenden müssen, d.h. 3.4.
  • Date: Ein Datum als String im Format dd.mm.JJJJ z.B. '12.03.2017'
  • Bool: Die Zahl 0 für falsch/false und 1 für wahr/true
  • Jahr + Quartal: Berechnet wird eine Gleitkommazahl nach der Formel Jahr+0.25*(Quartal-1). Beachten Sie die Punkt- anstatt der Kommaschreibweise für rationale Zahlen. Für 2022 ergibt sich:
    • 2022.00 → 1. Quartal 2022
    • 2022.25 → 2. Quartal 2022
    • 2022.50 → 3. Quartal 2022
    • 2022.75 → 4. Quartal 2022
    • 2023.00 → 1. Quartal 2023

Neben diesen einfachen Datentypen steht auch ein komplexerer Datentyp zur Verfügung, nämlich das Wörterbuch. Wörterbücher geben den Eintrag, der hinter einem Schlüsselwort hinterlegt ist, wieder. So würde z.B. patient[’name'] den Namen eines Patienten zurückgeben. Für die Markerautomatisierung stehen die folgenden komplexen Datentypen zur Verfügung:

OrgCAV

    • 'datum': Date – cave-Datum
    • 'text': String – cave-Eintrag

KarteiEintrag

  • 'typ': String – Typ des Karteieintrags
  • 'datum': Date – Datum des Karteieintrags
  • 'quartal': Integer – Quartal des Karteieintrags
  • 'jahr': Integer – Jahr des Karteieintrags
  • 'eintrag': String – Eintrag des Karteieintrags
  • 'doku': String – Kürzel des dokumentierenden Nutzers des Karteieintrags
  • 'betriebsstaette': String – Betriebsstätte des Karteieintrags
  • ’medientyp': String – Medientyp des Karteieintrags

Medikamentenverordnung

  • 'datum': Date – Datum der Medikamentenverordnung
  • 'quartal': Integer – Quartal der Medikamentenverordnung
  • 'jahr': Integer – Jahr der Medikamentenverordnung
  • 'pzn': String – PZN des verordneten Medikamentes
  • 'atc': String – ATC des verordneten Medikamentes
  • 'autIdem': Bool – Ob das Medikament aut-Idem verordnet wurde
  • 'abgesetzt': Bool – Ob das Medikament abgesetzt ist
  • 'name': String – Name des Medikaments bei Verordnung
  • 'freitext': String – Freitext zur Verordnung

Diagnose

  • 'datum': Date – Datum der Diagnose
  • 'quartal': Integer – Quartal der Diagnose
  • 'jahr': Integer – Quartal der Diagnose
  • 'meldepflicht': Integer – Meldepflicht nach dem Infektionsschutzgesetz, 0 für nein, 1 für ja
  • 'bezeichnung': String – Bezeichnung der Diagnose nach dem ICD-Katalog
  • 'code': String – Code der Diagnose nach dem ICD-Katalog
  • 'freitext': String – Ihr definierter Freitext zur Diagnose
  • 'dauerdiagnose': Integer – Dauerdiagnose, 0 für nein, 1 für ja
  • 'ort': Lokalisation der Diagnose, 'L' für links, 'R' für rechts, 'B' für beiderseits
  • 'typ': Typ der Diagnose, 'A' für Ausschluss, 'G' für Gesichert, 'V' für Verdacht, 'Z' für symptomfreier Zustand nach Erkrankung
  • 'abgesetzt': Integer – Status der Diagnose, 0 für nein, 1 für ja

Leistung

  • 'datum': Date – Datum der Leistung
  • 'quartal': Integer – Quartal der Leistung
  • 'jahr': integer – Jahr der Leistung
  • 'kurztext': String – Kurztext der Leistung gemäß Katalog
  • 'code': String – Code der Leistung gemäß Katalog
  • 'steigerungsfaktor': Float – Steigerungsfaktor der GOÄ-Leistung, gibt bei allen anderen Leistungen einen Wert von 1.0 zurück

Rechnung

  • 'druckDatum': Date – Datum des Druckens
  • 'erstelltAm': Date – Erstellungsdatum
  • 'kostenvoranschlag': Bool – Kostenvoranschlag erstellt
  • 'freitext': String – Freitext der Rechnung
  • 'bezahlt': Bool – Rechnung bezahlt
  • 'bezahltDatum': Date – Datum, an dem die Rechnung bezahlt wurde
  • 'kosten': Float – Rechnungsbetrag
  • 'mahnstufe': Integer – Mahnstufe der Rechnung
  • 'mahnDatum1': Date – 1. Mahndatum
  • 'mahnDatum2': Date – 2. Mahndatum
  • 'mahnDatum3': Date – 3. Mahndatum
  • 'teilbetrag': Bool – Ob ein Teilbetrag gezahlt wurde
  • 'bezahlterTeilbetrag': Float – Höhe des gezahlten Teilbetrags
  • 'bemerkung': String – Bemerkungen zur Rechnung
  • 'versandt': Bool – Ob die Rechnung versandt wurde
  • 'datumLetzteLeistung': Date – Datum der letzten Leistung
  • 'festbetrag': Float – Größe des gesetzten Festbetrags

Zur dynamischen Behandlung von Zeiten gibt es die Variablen

  • 'heuteDatum': Date
  • 'heuteQuartal': Jahr+Quartal

Für die Filterung von Listen der komplexen Datentypen wird die Funktion ’select' zur Verfügung gestellt. Diese Funktion steht für Variablen zur Verfügung eine Liste (array) der obigen komplexen Datentypen sind. Die komplexen Datentypen in der Liste müssen das Attribut 'datum' enthalten.

Dieser Funktion wird als erstes Argument eine Liste übergeben und mit benannten Argumenten der entsprechende Zeitraum, auf den die Liste eingeschränkt werden soll. Ein Beispiel für die Liste Karteidiagnosen könnte sein:

select(karteidiagnosen, startQuartal=2021.25, endQuartal=2022.5)

Eine vollständige Übersicht aller verfügbaren Variablen und in welchem Datentyp sie zur Verfügung stehen, finden Sie in tomedo®.

Der einfache Modus

Im einfachen Modus steht Ihnen eine Zeile zur Verfügung, die von Python ausgewertet wird. Ist das Ergebnis dieser Zeile '1' bzw. 'true', wird der Marker gesetzt. In allen anderen Fällen wird der Marker nicht gesetzt bzw. entfernt. So führt z.B. p_vorname == 'Hans' zum Setzen des Markers bei allen Patienten mit dem Vornamen Hans.

Der erweiterte Modus

Im erweiterten Modus haben Sie alle Freiheiten, die Ihnen die Sprache Python bietet. Sie könne Schleifen schreiben, verschachtelte if-else-Abfragen konstruieren und externe Pakete importieren. Das Ergebnis der Berechnung muss wieder '1' bzw. 'true' sein, damit der Marker gesetzt wird, in allen anderen Fällen wird der Marker nicht gesetzt bzw. entfernt. Das bestimmte Ergebnis muss von Ihnen auf die reservierte Variable 'returnvalue' geschrieben werden. Ein mögliches Skript ist:

  1. returnvalue = 0
  2. array = select(karteieintraege, startQuartal=heuteQuartal-0.75,endQuartal=heuteQuartal)
  3.   for e in array:
  4.     if e['typ'] == 'PVSEE':
  5.       returnvalue = 1

Dieses Skript prüft in allen Karteieinträgen der letzten 4 Quartale, ob ein Karteieintrag vom Typ 'PVSEE' vorhanden ist. Dabei könnte es sich z.B. um eine Privatpatienten-Einverständniserklärung handeln.

Der modulare Modus

Automatische Marker können auch anhand einer grafischen Oberfläche, analog der patientenbezogenen Statistiken, und ohne die Hilfe von Python-Skripten erstellt werden.

Über die Auswahlliste, die erscheint, sobald Sie auf das "+"-Symbol 1 klicken, wählen Sie die Kriterien aus, nach denen der Marker gesetzt werden soll. In Abhängigkeit vom ausgewählten Elementtyp 2 (z.B. Versicherung oder Patienteninfos) sind weitere Auswahl- und Eingabefelder 3 (z.B. Diagnose, Geschlecht oder Geburtstag) konfigurierbar. Über die "+"- und "–"-Schaltflächen neben den Elementtypen können weitere Felder hinzugefügt oder gelöscht werden.

Hinweise zur Konfiguration einzelner Elemente

  1. Bei Texteinträgen, wie beispielsweise der Bezeichnung einer Diagnose oder dem Code einer Leistungsziffer, lässt sich festlegen, ob der gewünschte Texteintrag in der Patientenkartei exakt übereinstimmen muss oder ob der Text lediglich enthalten sein soll. Zum Beispiel im Falle von Diagnosen lässt sich damit leicht eine ganze Gruppe möglicher Diagnosen erfassen.
  2. Die Namen von Betriebsstätten und Nutzern müssen hingegen mit den in tomedo® hinterlegten Angaben exakt übereinstimmen.
  3. Datumsangaben können relativ zum aktuellen Tag/Quartal/Jahr oder als fester Wert vorgegeben werden.
  4. Einige Felder, wie z.B. Geschlecht und Privatpatient, erfordern die Angabe konkret vorgegebener Werte. Diese werden im zugehörigen Tooltip angezeigt.

Erklärung zur Verknüpfung der einzelnen Elemente

Für jeden eingetragenen Typ muss ein Bezeichner 4 definiert werden, über dessen Name dann in der Zeile "logische Verknüpfung" 5 die verschiedenen Kriterien über verschiedene Relationen miteinander verknüpft werden. Mögliche Relationen sind "Und (&)", "Oder (+)" und "Nicht (–)". So wird zum Beispiel. A&(-B+C) als "A Und (Nicht B Oder C)" übersetzt.

Alle Elemente die zu einem Typ gehören, werden durch eine UND-Bedingung verknüpft. Dies betrifft im Beispiel die Elemente "Geschlecht" und "Geburtsdatum", welchem mit dem Bezeichner B zusammengefasst werden. Demnach ist Bedingung B nur erfüllt wenn das Geschlecht des Patienten "W", d.h. weiblich, ist und das Geburtsdatum bis 40 Jahre vom Anfang des aktuellen Jahres zurück liegt. Zu Bezeichner A gehört lediglich das Element Code. D.h. wenn eine Diagnose des Patienten mit diese Diagnosecode übereinstimmt, ist Bedingung A erfüllt. Als logische Verknüpfung wird A&B verwendet. Zusammengefasst bedeutet dies, dass der Marker nur gesetzt wird, wenn der Patient weiblich, höchstens 40 Jahre alt und die Diagnose mit der in Bedingung A hinterlegten übereinstimmt.

Externe Entwicklungsumgebung nutzen

Die Nutzung einer externen Entwicklungsumgebung vereinfacht die Entwicklung und das Testen komplexer Skripte. Durch Drücken der „Skript kopieren“-Schaltfläche am unteren Reiter des Fensters kopiert tomedo® das Skript mitsamt dem notwendigen Zusatzcode in die Zwischenablage. Diesen Code können Sie dann in eine Entwicklungsumgebung kopieren und ausführen. Das Vorladen eines Patienten über das Patientensuchfeld ist dabei notwendig, da die für das Skript notwendigen Variablen mit den Patientendaten gefüllt werden. Sie sollten beim Entwickeln sicherstellen, dass der ausgewählte Patient ein geeigneter Kandidat für Ihr Skript ist. So wäre z.B. die Auswahl eines Kassenpatienten für ein Skript, welches Privatrechnungen untersucht, unpraktisch.

Haben Sie das letzte Skript

  1. returnvalue = 0
  2. startQuartal=heuteQuartal-0.75
  3. array = select(karteieintraege,startQuartal=startQuartal,endQuartal=heuteQuartal)
  4.   for e in array:
  5.     if e['typ'] == 'PVSEE':
  6.       returnvalue = 1

eingegeben, dann kann eine mögliche – vom ausgewählten Patienten abhängige – Ausgabe mit der folgenden Struktur so aussehen:

  1. # -*- coding: utf-8 -*-
  2. import datetime
  3. #Definition der Funktion select
  4. heuteQuartal = #Berechnung des heutigen Quartals
  5. karteieintraege = [] #Alle Karteieinträge des Patienten def testTag():
  6.   returnvalue = 0
  7.   array = select(karteieintraege, startQuartal=heuteQuartal-0.75,endQuartal=heuteQuartal)
  8.   for e in array:
  9.     if e['typ'] == 'PVSEE':
  10.       returnvalue = 1
  11.   try:
  12.   return eval("’long(returnvalue)"') except Exception as e:
  13.   return str(e)
  14. testTag()

Der von Ihnen in tomedo® geschriebene Code steht zwischen „def testTag():“ und „try“. Zwischen diesen beiden Stellen können Sie Ihren Code entwickeln und testen. Wenn Ihr Code funktioniert, können Sie ihn – ggf. nach Löschung der führenden Freizeichen – wieder zurück nach tomedo® kopieren. Achtung: Kopieren Sie dabei nur den Code zwischen „def testTag():“ und „try“!

Beispielskripte

Für alle Beispielskripte ist der erweiterte Modus notwendig.

Markerprüfung

Dieses Skript prüft, ob der vorgegebene Marker “marker” (z.B. 'Krankentransport') gesetzt ist und setzt dann, sofern dies noch nicht geschehen ist, diesen Marker.

  1. marker = 'Krankentransport'
  2. returnvalue = 0
  3. if marker in markerliste:
  4.   returnvalue = 1

Diagnosenprüfung

Dieses Skript prüft, ob eine Diagnose mit dem vorgegebenem ICD-Code existiert.

  1. diagnosen = kvdiagnosen + hzvdiagnosen + karteidiagnosen
  2. icdCode = 'I10.90'
  3. returnvalue = 0
  4.   for diag in diagnosen:
  5.     if diag['code'] == icdCode:
  6.       returnvalue = 1

Schmerzdokumentation

Dieses Skript prüft, ob bei Schmerzpatienten – d.h. Patienten mit dem Marker „Schmerzpatient“ – in diesem Quartal die Schmerzdokumentation gemacht wurde. Dafür wird geprüft, ob im letzten Quartal ein Karteieintrag des Typs „DOK“ mit dem Eintrag „Schmerzverlauf“ existiert. Wurde die Schmerzdokumentation in diesem Quartal noch nicht gemacht, wird der Marker gesetzt, andernfalls nicht.

  1. typ = 'DOK'
  2. text = 'Schmerzverlauf'
  3. schmerzmarker = 'Schmerzpatient'
  4. bStatus = False
  5. returnvalue = 0
  6. (Seite 243 von 282)
  7. if schmerzmarker in markerliste:
  8.   array = select(karteieintraege,startQuartal=heuteQuartal-0.25,endQuartal=heuteQuartal)
  9.     for e in array:
  10.       if e['typ'] == typ:
  11.         if text in e['eintrag']:
  12.           bStatus = True
  13. else:
  14.   bStatus = True
  15. if bStatus:
  16.   returnvalue = 0
  17. else:
  18.   returnvalue = 1

Privatrechnungsstatus

Dieses Skript prüft, ob noch unbezahlte Privatrechnungen vorhanden sind, die seit mehr als den angegebenen Wartetagen nicht bezahlt wurden. Zusätzlich kann die Prüfung für Rechnungen, die älter als ein Abbruchdatum sind, unterbunden werden.

  1. #Parameter
  2. wartetage = 28
  3. abbruch = '20.12.2010'
  4. #Code
  5. abbruchDatum = datetime.datetime.strptime(abbruch,’%d.%m.%Y').date()
  6. heute = datetime.datetime.strptime(heuteDatum, '%d.%m.%Y').date()
  7. returnvalue = 0
  8. for pr in privatrechnungen:
  9.   #Abbruch vor Konvertierungsdatum – die Rechnungen sind
  10.   chronologisch in die Vergangenheit geordnet
  11.   gedruckt = datetime.datetime.strptime(pr['druckDatum'], '%d.%m.%Y').date()
  12.   if(gedruckt < abbruchDatum):
  13.     break;
  14.   #Falls die Rechnung nicht bezahlt ist, prüfe die Wartezeit seit Druck
  15.   if pr['bezahlt'] == 0:
  16.     gedruckt = datetime.datetime.strptime(pr['druckDatum'],’%d.%m.%Y').date()
  17.   wartezeit = heute – gedruckt
  18.   if(wartezeit.days > wartetage):
  19.     returnvalue = 1
  20.     Break

Chronikerabrechnung

Dieses Skript prüft, ob im gegebenem Intervall in Jahren eine Chronikerpauschale abgerechnet wurde und dies in diesem Quartal noch nicht geschehen ist. Ist dies der Fall, wird der Marker gesetzt.

  1. intervall = 1
  2. dokleistung = ['04220', '04220H', '04221', '04221H']
  3. bChroniker = False
  4. bAbgerechnet = False
  5. leistungen = bgfacharztleistungen + bgleistungen + bgunfallleistungen + hzvleistungen + kvleistungen
  6. leistungen = select(leistungen, startQuartal=heuteQuartalintervall, endQuartal=heuteQuartal-0.5)
  7. for leistung in leistungen:
  8.   for dl in dokleistung:
  9.     if dl == leistung['code']:
  10.       bChroniker = True
  11. leistungen = bgfacharztleistungen + bgleistungen + bgunfallleistungen + hzvleistungen + kvleistungen
  12. leistungen = select(leistungen, startQuartal=heuteQuartal-0.25, endQuartal=heuteQuartal)
  13. for leistung in leistungen:
  14.   for dl in dokleistung:
  15.     if dl == leistung['code']:
  16.       bAbgerechnet = True
  17. if bChroniker and not bAbgerechnet:
  18.   returnvalue = 1
  19. else:
  20.   returnvalue = 0