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 im Dossier, 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össeren 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 des Dossiers 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 das 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, 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 sich wieder öffnet) wechselt die Ansicht wieder zwischen kompakt und expandiert. Diese Einstellung ist arbeitsplatzspezifisch und für Dossier, 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 (ausser 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 (ausser auf das Schloss), die Tastenkombination ⌃Ctrl + ⇧Shift + ⌘Cmd + M sowie im Menü unter Patient → Marker einstellen (verfügbar im Dossier 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. Ausserdem können Sie sich in der Gruppe "aktiv" alle momentan für den Patienten gesetzten Marker anzeigen lassen und bearbeiten.

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 der Enter-Taste schliessen Sie das Popover zum Setzen der Patientenmarker.

Das drei Punkte im unteren linken Bereich des Popovers führen Sie zur globalen Markereinstellung (siehe Wiederherstellen von Gruppen & Markern). Dort können Sie Marker erstellen, bearbeiten und löschen.

Einstellungen für Patientenmarker

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

Das Einstellungsfenster unterteilt sich in drei Bereiche. Im linken Bereich 1 können Sie Marker erstellen, bearbeiten und löschen. Mit der Schaltfläche "Arbeitsplatzeinstellungen" 2 können Sie die Markeransicht konfigurieren. Im rechten Bereich 3 können automatische Marker erstellt werden. Die 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 dabei 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. Gelöschte Gruppen können genauso wie Marker wieder hergestellt werden. Mehr Informationen dazu finden Sie im Abschnitt Wiederherstellen von Gruppen & Markern.
  2. Mit den Pfeiltasten kann die Reihenfolge der Gruppen untereinander verändert werden. Die Gruppen werden in der Reihenfolge, in welcher Sie hier aufgelistet sind, auch in der Markeransicht dargestellt.
  3. Dieses Textfeld enthält den Beschrieb der Gruppe. Dieser ist im Popover zum Setzen der Marker zu sehen.
    Hinweis: Da tomedo® automatisch beim Setzen eine Hilfsgruppe mit dem Namen "Alle", kann eine zusätzliche eigene Gruppe mit dem Namen "Alle" zu Verwirrung führen.
  4. In diesem Feld kann ein Symbol gesetzt werden, entweder durch Drag & Drop, durch einen Klick auf die Symbolfläche oder die "+"-Schaltfläche. tomedo® liefert eine Vielzahl vorgefertigter Symbole mit, Sie können jedoch natürlich jedes beliebige Bild verwenden.

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 dieser Tabelle aufgelistet sind, dargestellt.
  3. Dieses Textfeld enthält den Beschrieb 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 gesetzt werden durch Drag & Drop, durch einen Klick auf die Symbolfläche oder das „+“. 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.

Tipps zur Symbol- und Farbverwaltung

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 zusätzlich alle gelöschten Gruppen und Marker angezeigt. Daraufhin sehen Sie 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 ist, 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 welchem Sie die Informationsfelder konfigurieren können. Klicken Sie hier die Option "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 Dossier, 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 einstellen. Dies betrifft die Transparenz der grauen Anzeigeleiste im kompakten Modus sowie den weissen 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össtmöglichen Abstand zu wählen, bei dem noch alle Symbole sichtbar sind. Der absolute Abstand entspricht dem prozentualen Anteil an der Symbolgrösse. Ein Abstand von 50% bedeutet z.B., dass die Symbole eine halbe Symbolgrösse 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össe 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 das Dossier geöffnet wird. Wenn z.B. ein Marker anzeigt, dass eine Untersuchung einmal im Quartal stattfinden soll und das Dossier 4 Monate nach der letzten Untersuchung erneut geöffnet wird, zeigt die Statistik diesen Marker als „nicht gesetzt“ an. Sobald Sie das Dossier öffnen, wird der Marker gesetzt.

Die Option "Vorberechnung der Marker starten" lädt an einem Arbeitsplatz alle Dossiere, 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 hochentwickelten 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 Auswahltabs 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 Dossier, Patientendetails und Patienteninfo sowie bei Änderungen im Dossier und in den 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 eine Gleitkommazahl nach der Formel Jahr+0.25*(Quartal-1). Beachten Sie die Punkt- anstatt der Kommaschreibweise für rationale Zahlen. Für 2017 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

Dossiereintrag

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

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 – Jahr 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äss Katalog
  • 'code': String – Code der Leistung gemäss Katalog

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össe 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 Dossierdiagnosen könnte sein:

select(dossierdiagnosen, startQuartal=2016.25, endQuartal=2017.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 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(dossiereintraege, 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 Dossiereinträgen der letzten 4 Quartale, ob ein Dossiereintrag vom Typ 'PVSEE' vorhanden ist. Dabei könnte es sich z.B. um eine 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 des ausgewählten Elementtypen 2  (z.B. Diagnose oder Patienteninfos) sind weitere Auswahl- und Eingabefelder 3 (z.B. Code, 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 im Patientendossier exakt übereinstimmen muss oder ob der Text lediglich enthalten sein soll. Zum Beispiel im Falle von Diagnosen lässt sich damit einfach 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 konkreter 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 (tomedo® nutzt hier standardmäßig Buchstaben, diese Angabe kann allerdings angepasst 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 der Diagnosecode des Patienten damit ü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 dem in Bedingung A hinterlegten Diagnosecode ü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 (34) 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 (31) ist 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 Kandidat für Ihr Skript ist.

Haben Sie das letzte Skript

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

eingegeben, dann ist eine mögliche – vom ausgewählten Patienten abhängige – Ausgabe mit der folgenden Struktur.

  1. # -*- coding: utf-8 -*-
  2. import datetime
  3. #Definition der Funktion select
  4. heuteQuartal = #Berechnung des heutigen Quartals
  5. dossiereintraege = [] #Alle Dossiereinträge des Patienten def testTag():
  6.   returnvalue = 0
  7.   array = select(dossiereintraege, 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 dem „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. 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” gesetzt ist und setzt dann 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 + dossierdiagnosen
  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 Dossiereintrag 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(dossiereintraege,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

Rechnungsstatus

Dieses Skript prüft, ob noch unbezahlte Rechnungen 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 rechnungen:
      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