Patientenmarker

Letzte Anpassung: 21. October 2020

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.

Beim Klick auf das offene Schloss 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 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“. Das Popover ist in zwei Bereiche geteilt, links sehen Sie die Liste aller Gruppen und auf der rechten Seite die zugehörigen Marker. Zusätzlich zu den von Ihnen erstellten Gruppen erzeugt tomedo® automatisch eine Gruppe „Alle“ mit allen erstellten Markern. In 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 „Enter“ 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.

Einstellungen für Patientenmarker

Sie erreichen das Einstellungsfenster für die Patientenmarker, die 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 das Einstellungsrädchen.

Das Einstellungsfenster unterteilt sich in drei Bereiche. Im Bereich 1 können Sie Marker erstellen, bearbeiten und löschen. Mit dem Button 2 Arbeitsplatzeinstellungen können Sie die Markeransicht konfigurieren und im Bereich 3 automatische Marker erstellen. Die Erstellung von automatisierten Markern wird in einem separaten Unterkapitel diskutiert.

Erstellen & Bearbeiten von Patientenmarkern

Im Bereich 1 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 Gruppen- und Markerbereich haben die folgenden Funktionen:

  • 4 Die +/– Knöpfe erstellen bzw. löschen Gruppen und Marker.
  • 5 Mit den Pfeiltasten kann die Reihenfolge der Gruppen und Marker untereinander verändert werden. Die Gruppen werden in der Reihenfolge, in der sie aufgelistet sind, in der Markeransicht dargestellt. Innerhalb einer Gruppe werden die Marker ebenfalls in der Reihenfolge, in der sie in der Tabelle aufgelistet sind, dargestellt.
  • 6 Dieses Textfeld enthält die Beschreibung der Gruppe bzw. des Markers. Diese Beschreibung ist im Popover zum Setzen der Marker zu sehen. Die Markerbeschreibung ist ebenfalls in der expandierten Markeransicht sichtbar. Da tomedo® automatisch beim Setzen eine Hilfsgruppe mit dem Namen „Alle“ anlegt, kann eine eigene Gruppe mit dem Namen „Alle“ zu Verwirrungen führen.
  • 7 Markersymbole können mit einer frei wählbaren Farbe eingefärbt werden. Falls ein Markersymbol vorhanden ist, wird dieses eingefärbt, andernfalls das Gruppensymbol. Die Schriftfarbe des Markers wird nicht eingefärbt, da dies die Lesbarkeit stark beeinträchtigt. Der Übersichtlichkeit halber ist die Farbauswahl erst in der Markeransicht sichtbar und nicht im Symbolauswahlfeld. Ein Klick auf das „–“ löscht die Farbe wieder.
  • 8 In diesem Feld kann ein Symbol gesetzt werden durch Drag&Drop, 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.
  • 9 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.
  • 10 Die Aktivierung dieser Checkbox ermöglicht das automatische Zurücksetzen von Markern durch den Server.
  • 11 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 kann man z.B. gegensätzliche Eigenschaften markieren, z.B. Untergewicht/ Übergewicht.

Falls Sie keine Symbole verwenden möchten ist dies auch möglich, dann erscheint im expandierten Modus nur der Text, natürlich können Sie auch 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. Im Bereich 1 sehen Sie dann unterhalb des Gruppen- bzw. Markersymbols die Möglichkeit, gelöschte Gruppen und Marker wiederherzustellen.

Automatisches Zurücksetzen von Markern

Durch Aktivierung der Checkbox 10 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.

Marker als Checkboxen nutzen

Sie können Marker als Checkboxen im Patientenpanel aktivieren. Dies geschieht in dem sie die Checkbox „Checkbox zuordnen“ aktivieren.

Bei allen Marken 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 dem Button Arbeitsplatzeinstellung 2 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 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.

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 9 aktiviert haben, ermöglicht Ihnen der Bereich 3 das Erstellen und Testen der automatischen Marker.

Mit dem Suchfeld 12 können Sie einen Patienten laden, an dem Sie die Automatisierung testen können. Die Auswahltabs 13 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 14 können Sie die Skripte mit den Regeln zur Automatisierung schreiben. Der „Skripte testen“- Button 16 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 dem „Skript kopieren“-Button 15 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“.

Beim Laden des Patientenbildes in Kartei, Patientendetails und Patienteninfo sowie bei Änderungen in der Kartei und Patientendetailswerden 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 Tabelle 17 im rechten Bereich der Markerverwaltung enthält alle verfügbaren Variablen sowie ihren Datentyp und eine kurze Beschreibung. Durch einen Doppelklick auf eine Zeile kopieren Sie die entsprechende Variable in das Skriptfeld. Mit dem Suchfeld 18 können Sie die Variablentabelle durchsuchen.

Ein Klick auf das Fragezeichenlogo 19 öffnet dieses Handbuchkapitel.

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 2017 ergibt sich:
    • 2017.00  1. Quartal 2017
    • 2017.25  2. Quartal 2017
    • 2017.50  3. Quartal 2017
    • 2017.75  4. Quartal 2017
    • 2018.00  1. Quartal 2018

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 – Datum des Caves
  • ‚text‘: String – Eintrag des Caves

KarteiEintrag

  • ‚typ‘: String – Typ des Karteieintrags
  • ‚datum‘: Date – Datum des Karteieintrags
  • ‚quartal‘: Integer – Quartal des Karteieintrags
  • ‚jahr‘: Integer – Quartal 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 – Quartal der Medikamentenverordnung
  • ‚pzn‘: String – PZN des verordneten Medikamentes
  • ‚atc‘: String – ATC der 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

Leistung

  • ‚datum‘: Date – Datum der Leistung
  • ‚quartal‘: Integer – Quartal der Leistung
  • ‚jahr‘: integer – Quartal der Leistung
  • ‚kurztext‘: String – Kurztext der Leistung gemäß Katalog
  • ‚code‘: String – Code der Leistung gemäß 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öß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=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(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.

Externe Entwicklungsumgebung nutzen

Die Nutzung einer externen Entwicklungsumgebung vereinfacht die Entwicklung und das Testen komplexer Skripte. Durch drücken des „Skript kopieren“-Button (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. So wäre 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 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. 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 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 + 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