externe Entwicklungsumgebung nutzen<\/a>.<\/p>\n\n\n\nDie Tabelle 6<\/mark> im rechten Bereich der Markerverwaltung enth\u00e4lt alle verf\u00fcgbaren Variablen (siehe n\u00e4chster 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<\/mark> k\u00f6nnen Sie die Variablentabelle durchsuchen.<\/p>\n\n\n\nBeim Laden des Patientenbildes in Kartei, Patientendetails und Patienteninfo sowie bei \u00c4nderungen in der Kartei und Patientendetails werden die Skripte im Hintergrund ausgef\u00fchrt und die entsprechenden Marker gesetzt bzw. entfernt, sobald die Berechnungen beendet wurden. Die Ladezeit des entsprechenden Fensters wird dadurch nicht verl\u00e4ngert. Falls die Ausf\u00fchrungszeit der Skripte jedoch sehr lang ist, kann es passieren, dass die Marker erst deutlich nach dem Laden des Patientenbildes durch die Automatisierung ge\u00e4ndert werden. Vermeiden Sie deswegen Ausf\u00fchrzeiten oberhalb des einstelligen Sekundenbereichs.<\/p>\n\n\n\n
Die Variablen<\/h3>\n\n\n\n
Vordefinierte globale Variablen erm\u00f6glichen Ihnen den Lesezugriff auf die Daten des Patienten. Achten Sie bitte unbedingt auch auf die Schreibweise mit Hochkommas anstatt Anf\u00fchrungszeichen. Die Daten werden in verschiedenen Formaten zur Verf\u00fcgung gestellt, diese sind:<\/p>\n\n\n\n
\n- String:<\/strong> Eine einfache Zeichenkette z.B. ‚chronisch\u2019<\/li>\n\n\n\n
- Integer:<\/strong> Eine ganze Zahl, z.B. 3<\/li>\n\n\n\n
- Float:<\/strong> Eine rationale Zahl, z.B. 3,4. Achten Sie darauf, dass Sie im Skript einen Punkt als Dezimaltrennzeichen verwenden m\u00fcssen, d.h. 3.4.<\/li>\n\n\n\n
- Date:<\/strong> Ein Datum als String im Format dd.mm.JJJJ z.B. ‚12.03.2017‘<\/li>\n\n\n\n
- Bool:<\/strong> Die Zahl 0 f\u00fcr falsch\/false und 1 f\u00fcr wahr\/true<\/li>\n\n\n\n
- Jahr + Quartal:<\/strong> Berechnet wird eine Gleitkommazahl nach der Formel Jahr+0.25*(Quartal-1). Beachten Sie die Punkt- anstatt der Kommaschreibweise f\u00fcr rationale Zahlen. F\u00fcr 2022 ergibt sich:\n
\n- 2022.00 \u2192 1. Quartal 2022<\/li>\n\n\n\n
- 2022.25 \u2192 2. Quartal 2022<\/li>\n\n\n\n
- 2022.50 \u2192 3. Quartal 2022<\/li>\n\n\n\n
- 2022.75 \u2192 4. Quartal 2022<\/li>\n\n\n\n
- 2023.00 \u2192 1. Quartal 2023<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n
Neben diesen einfachen Datentypen steht auch ein komplexerer Datentyp zur Verf\u00fcgung, n\u00e4mlich das W\u00f6rterbuch. W\u00f6rterb\u00fccher geben den Eintrag, der hinter einem Schl\u00fcsselwort hinterlegt ist, wieder. So w\u00fcrde z.B. patient[\u2019name‘] den Namen eines Patienten zur\u00fcckgeben. F\u00fcr die Markerautomatisierung stehen die folgenden komplexen Datentypen zur Verf\u00fcgung:<\/p>\n\n\n\n
OrgCAV<\/strong><\/p>\n\n\n\n\n'datum'<\/code>: Date \u2013 cave-Datum<\/li>\n\n\n\n'text'<\/code>: String \u2013 cave-Eintrag<\/li>\n<\/ul>\n\n\n\nKarteieintrag<\/strong><\/p>\n\n\n\n\n'typ'<\/code>: String \u2013 Typ des Karteieintrags<\/li>\n\n\n\n'datum'<\/code>: Date \u2013 Datum des Karteieintrags<\/li>\n\n\n\n'quartal'<\/code>: Integer \u2013 Quartal des Karteieintrags<\/li>\n\n\n\n'jahr'<\/code>: Integer \u2013 Jahr des Karteieintrags<\/li>\n\n\n\n'eintrag'<\/code>: String \u2013 Eintrag des Karteieintrags<\/li>\n\n\n\n'doku'<\/code>: String \u2013 K\u00fcrzel des dokumentierenden Nutzers des Karteieintrags<\/li>\n\n\n\n'betriebsstaette'<\/code>: String \u2013 Betriebsst\u00e4tte des Karteieintrags<\/li>\n\n\n\n\u2019medientyp'<\/code>: String \u2013 Medientyp des Karteieintrags<\/li>\n<\/ul>\n\n\n\nMedikamentenverordnung<\/strong><\/p>\n\n\n\n\n'datum'<\/code>: Date \u2013 Datum der Medikamentenverordnung<\/li>\n\n\n\n'quartal'<\/code>: Integer \u2013 Quartal der Medikamentenverordnung<\/li>\n\n\n\n'jahr'<\/code>: Integer \u2013 Jahr der Medikamentenverordnung<\/li>\n\n\n\n'pzn'<\/code>: String \u2013 PZN des verordneten Medikamentes<\/li>\n\n\n\n'atc'<\/code>: String \u2013 ATC des verordneten Medikamentes<\/li>\n\n\n\n'autIdem'<\/code>: Bool \u2013 Ob das Medikament aut-Idem verordnet wurde<\/li>\n\n\n\n'abgesetzt'<\/code>: Bool \u2013 Ob das Medikament abgesetzt ist<\/li>\n\n\n\n'name'<\/code>: String \u2013 Name des Medikaments bei Verordnung<\/li>\n\n\n\n'freitext'<\/code>: String \u2013 Freitext zur Verordnung<\/li>\n<\/ul>\n\n\n\nDiagnose<\/strong><\/p>\n\n\n\n\n'datum'<\/code>: Date \u2013 Datum der Diagnose<\/li>\n\n\n\n'quartal'<\/code>: Integer \u2013 Quartal der Diagnose<\/li>\n\n\n\n'jahr'<\/code>: Integer \u2013 Quartal der Diagnose<\/li>\n\n\n\n'meldepflicht'<\/code>: Integer \u2013 Meldepflicht nach dem Infektionsschutzgesetz, 0 f\u00fcr nein, 1 f\u00fcr ja<\/li>\n\n\n\n'bezeichnung'<\/code>: String \u2013 Bezeichnung der Diagnose nach dem ICD-Katalog<\/li>\n\n\n\n'code'<\/code>: String \u2013 Code der Diagnose nach dem ICD-Katalog<\/li>\n\n\n\n'freitext'<\/code>: String \u2013 Ihr definierter Freitext zur Diagnose<\/li>\n\n\n\n'dauerdiagnose'<\/code>: Integer \u2013 Dauerdiagnose, 0 f\u00fcr nein, 1 f\u00fcr ja<\/li>\n\n\n\n'ort'<\/code>: Lokalisation der Diagnose, ‚L‘ f\u00fcr links, ‚R‘ f\u00fcr rechts, ‚B‘ f\u00fcr beiderseits<\/li>\n\n\n\n'typ'<\/code>: Typ der Diagnose, ‚A‘ f\u00fcr Ausschluss, ‚G‘ f\u00fcr Gesichert, ‚V‘ f\u00fcr Verdacht, ‚Z‘ f\u00fcr symptomfreier Zustand nach Erkrankung<\/li>\n\n\n\n'abgesetzt'<\/code>: Integer \u2013 Status der Diagnose, 0 f\u00fcr nein, 1 f\u00fcr ja<\/li>\n\n\n\n'manuell abgesetzt'<\/code>: Status der Diagnose, betrachtet nur manuell abgesetzte Diagnosen, 0 f\u00fcr nein, 1 f\u00fcr ja<\/li>\n<\/ul>\n\n\n\nLeistung<\/strong><\/p>\n\n\n\n\n'datum'<\/code>: Date \u2013 Datum der Leistung<\/li>\n\n\n\n'quartal'<\/code>: Integer \u2013 Quartal der Leistung<\/li>\n\n\n\n'jahr'<\/code>: integer \u2013 Jahr der Leistung<\/li>\n\n\n\n'kurztext'<\/code>: String \u2013 Kurztext der Leistung gem\u00e4\u00df Katalog<\/li>\n\n\n\n'code'<\/code>: String \u2013 Code der Leistung gem\u00e4\u00df Katalog<\/li>\n\n\n\n'steigerungsfaktor'<\/code>: Float \u2013 Steigerungsfaktor der GO\u00c4-Leistung, gibt bei allen anderen Leistungen einen Wert von 1.0 zur\u00fcck<\/li>\n<\/ul>\n\n\n\nRechnung<\/strong><\/p>\n\n\n\n\n'druckDatum'<\/code>: Date \u2013 Datum des Druckens<\/li>\n\n\n\n'erstelltAm'<\/code>: Date \u2013 Erstellungsdatum<\/li>\n\n\n\n'kostenvoranschlag'<\/code>: Bool \u2013 Kostenvoranschlag erstellt<\/li>\n\n\n\n'freitext'<\/code>: String \u2013 Freitext der Rechnung<\/li>\n\n\n\n'bezahlt'<\/code>: Bool \u2013 Rechnung bezahlt<\/li>\n\n\n\n'bezahltDatum'<\/code>: Date \u2013 Datum, an dem die Rechnung bezahlt wurde<\/li>\n\n\n\n'kosten'<\/code>: Float \u2013 Rechnungsbetrag<\/li>\n\n\n\n'mahnstufe'<\/code>: Integer \u2013 Mahnstufe der Rechnung<\/li>\n\n\n\n'mahnDatum1'<\/code>: Date \u2013 1. Mahndatum<\/li>\n\n\n\n'mahnDatum2'<\/code>: Date \u2013 2. Mahndatum<\/li>\n\n\n\n'mahnDatum3'<\/code>: Date \u2013 3. Mahndatum<\/li>\n\n\n\n'teilbetrag'<\/code>: Bool \u2013 Ob ein Teilbetrag gezahlt wurde<\/li>\n\n\n\n'bezahlterTeilbetrag'<\/code>: Float \u2013 H\u00f6he des gezahlten Teilbetrags<\/li>\n\n\n\n'bemerkung'<\/code>: String \u2013 Bemerkungen zur Rechnung<\/li>\n\n\n\n'versandt'<\/code>: Bool \u2013 Ob die Rechnung versandt wurde<\/li>\n\n\n\n'datumLetzteLeistung'<\/code>: Date \u2013 Datum der letzten Leistung<\/li>\n\n\n\n'festbetrag'<\/code>: Float \u2013 Gr\u00f6\u00dfe des gesetzten Festbetrags<\/li>\n<\/ul>\n\n\n\nZur dynamischen Behandlung von Zeiten gibt es die Variablen<\/strong><\/p>\n\n\n\n\n'heuteDatum'<\/code>: Date<\/li>\n\n\n\n'heuteQuartal'<\/code>: Jahr+Quartal<\/li>\n<\/ul>\n\n\n\nF\u00fcr die Filterung von Listen der komplexen Datentypen wird die Funktion \u2019select‘ zur Verf\u00fcgung gestellt. Diese Funktion steht f\u00fcr Variablen zur Verf\u00fcgung eine Liste (array) der obigen komplexen Datentypen sind. Die komplexen Datentypen in der Liste m\u00fcssen das Attribut 'datum'<\/code> enthalten.<\/p>\n\n\n\nDieser Funktion wird als erstes Argument eine Liste \u00fcbergeben und mit benannten Argumenten der entsprechende Zeitraum, auf den die Liste eingeschr\u00e4nkt werden soll. Ein Beispiel f\u00fcr die Liste Karteidiagnosen k\u00f6nnte sein:<\/p>\n\n\n\n
select(karteidiagnosen, startQuartal=2021.25, endQuartal=2022.5)<\/code><\/p>\n\n\n\nEine vollst\u00e4ndige \u00dcbersicht aller verf\u00fcgbaren Variablen und in welchem Datentyp sie zur Verf\u00fcgung stehen, finden Sie in tomedo\u00ae.<\/p>\n\n\n\n
Der einfache Modus<\/h3>\n\n\n\n
Im einfachen Modus steht Ihnen eine Zeile zur Verf\u00fcgung, die von Python ausgewertet wird. Ist das Ergebnis dieser Zeile ‚1‘ bzw. ‚true‘, wird der Marker gesetzt. In allen anderen F\u00e4llen wird der Marker nicht gesetzt bzw. entfernt. So f\u00fchrt z.B. p_vorname == 'Hans'<\/code> zum Setzen des Markers bei allen Patienten mit dem Vornamen Hans.<\/p>\n\n\n\nDer erweiterte Modus<\/h3>\n\n\n\n
Im erweiterten Modus haben Sie alle Freiheiten, die Ihnen die Sprache Python bietet. Sie k\u00f6nne 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\u00e4llen wird der Marker nicht gesetzt bzw. entfernt. Das bestimmte Ergebnis muss von Ihnen auf die reservierte Variable ‚returnvalue‘ geschrieben werden. Ein m\u00f6gliches Skript ist:<\/p>\n\n\n\n
\nreturnvalue = 0<\/code><\/li>\n\n\n\narray = select(karteieintraege, startQuartal=heuteQuartal-0.75,endQuartal=heuteQuartal)<\/code><\/li>\n\n\n\n for e in array:<\/code><\/li>\n\n\n\n if e['typ'] == 'PVSEE':<\/code><\/li>\n\n\n\n returnvalue = 1<\/code><\/li>\n<\/ol>\n\n\n\nDieses Skript pr\u00fcft in allen Karteieintr\u00e4gen der letzten 4 Quartale, ob ein Karteieintrag vom Typ ‚PVSEE‘ vorhanden ist. Dabei k\u00f6nnte es sich z.B. um eine Privatpatienten-Einverst\u00e4ndniserkl\u00e4rung handeln.<\/p>\n\n\n\n
Der modulare Modus<\/h3>\n\n\n\n
Automatische Marker k\u00f6nnen auch anhand einer grafischen Oberfl\u00e4che, analog der patientenbezogenen Statistiken<\/a>, und ohne die Hilfe von Python-Skripten erstellt werden.<\/p>\n\n\n\n