macOS-BETA-UPDATES BITTE NICHT AUF PRODUKTIVSYSTEMEN EINSPIELEN
Alle Hinweise und Informationen finden Sie unter folgendem Link.
Hallo zusammen,

ich möchte gerne alle Sonographie-Befunde eines bestimmten Untersucher in einem definierten Zeitram ausdrucken - am besten ohne den Namen des Patienten.

Hierfür habe ich in der Statistik --> allg. Abfragen --> Karteieintrag --> dort den gewünschten Zeitram gewählt und bei Karteieintragtyp dann So (=Sono) gewählt --> Liste erstellen

In der dann erstellten Liste habe ich via des Filters ,Text' dann noch nach Abdomen gefiltert (um die Schilddrüsen-Sono zu entfernen.

Es bleiben dann mehrere Hundert gefundenen Sono-Einträge.

Wie kann ich diese Befunde ausdrucken ohne jeden Befund aus der erstellten Liste aufrzurufen?

Hat da jemand eine Idee?

Danke in die Runde
Gefragt in Frage von (140 Punkte)
0 Punkte

2 Antworten

Das sollte doch mit der Spalte "dokumentierender Nutzer" gehen. Die können Sie sich über das Menu mit Klick in die Titelzeile der Statistik aufrufen: 

Beantwortet von (3.3k Punkte)
0 Punkte
Lieber Herr Baumann,

 

danke für Ihre Antwort.

Allerdings hilft mir das beschriebene Vorgehen nicht dabei den Sono-Befund auszudrucken. Bei der von Ihnen beschriebenen Weise wird lediglich die ausgewählte Zeile(n) der Tabelle gedruckt.

Konnte ich klarstellen, was ich meine?

 

Grüße

 

BG

Hallo Herr Gareis,

nun hat es mich doch gereizt, Ihr Problem zu lösen, da ich mich gerade mit einem ähnlichen Thema beschäftigen musste. Eigentlich müsste man dazu eine SQL-Abfrage schreiben (oder sich von Zollsoft gegen Gebühr schreiben lassen). Das wäre die korrekte Art der Datenbankabfrage. Diese Fähigkeit ist mir aber (auch mit ChatGPT-Hilfe) bisher nicht gegeben.

Daher habe ich eine Lösung gebastelt, die mittels Statistik und darauf angewandte Aktionsketten bzw. AppleScripte funktioniert. Sie ist mehrschrittig, vermeidet aber das für mich nicht beherrschbare SQL-Abfragen-Erstellen. Am Ende kommt Ihr gewünschtes Ergebnis heraus. Bei dem Aufwand, den ich für mich  betrieben habe, hoffe ich, dass nicht ein begabterer tomedo-Nutzer mit einer Lösung um die Ecke kommt, die den von mir gezeigten Prozess mit drei Klicks hinbekommt. surprise

So geht es: 

1. Statistik anlegen mit den auszuwertenden Patienten. Hier können Sie mit "Aktionen" unten rechts im Statistikfenster für jeden Patienten in Ihrer Liste Aktionen wie einzelne Aktionsketten auslösen.

2. Für jeden Patienten in der Statistik per AK einen Karteieintrag (ich habe ihn SAMMLER genannt) anlegen, der alle Befunde (in Ihrem Fall SONO) eines Patienten enthält inkl. des Merkmals, nach dem Sie die einzelnen Befunde auswählen wollen (in Ihrem Fall Arztname, in meinem Beispiel das Wort "Medikation"). 

3. Für jeden Patienten in der Statistik per AK aus dem zuvor angelegten Karteieintrag SAMMLER per AppleScript und regex-Auswertung die Textblöcke extrahieren, die den gesuchten Begriff enthalten. Um diese Informationen an einer Stelle zu sammeln, habe ich die Zwischenablage ausgewählt. Bevor Sie diese AK starten, sollten Sie also die Zwischenablage "leeren", z.B. in dem Sie ein Leerzeichen per CMD-C hineinkopieren.

4. Wenn die beiden AK über die Statistik "gelaufen" sind, enthält die Zwischenablage Ihre gewünschte Sammlung von Befunden. Sie können Sie dann per CMD-V in das Textprogramm Ihrer Wahl einfügen und dort weiterbearbeiten/ausdrucken. 

Fertig.

 

Sie benötigen für den o.g. Ablauf also folgende Bausteine:

A) Karteieintrag SAMMLER

Für Ihren Anwendungsfall müssen Sie dann in der Vorauswahl das bei mir genutzte PROC durch den Karteieintrag ersetzen, um den es bei Ihnen geht (als SONO o.ä.).

B) Aktionskette zum automatischen Anlegen des Karteieintrags SAMMLER

C) ein AppleScript, welches die Suche im Text vornimmt (wird bei mir KE-SAMMLER genannt). Dies können Sie unter Admin > Skripte anlegen. Dieses Skript macht folgendes: Schaue in letzten Karteieintrag SAMMLER des gerade geöffneten Patienten, ob dort ein durch Leerzeilen getrennter Textblock zu finden ist, der 1.) mit dem Inhalt der Variable SplitText beginnt und 2.) den Inhalt der Variable Suchbegriff enthält. Wenn dies zutrifft, wird der gesamte Textblock zwischen den Leerzeilen extrahiert und an den Inhalt der Zwischenablage angehängt. Diese wächst also langsam an. 

Um das Skript für Ihren Anwendungsfall anzupassen, müssen Sie in den ersten drei Zeilen beachten, dass der 1. ) gewünschte Karteieintrag ausgewählt wird (hier SAMMLER mit dem CKE-Feld Sammlung, 2.) der Suchbegriff korrekt angegeben wird (bei mir "Medikation", bei Ihnen der gewünschte Arztname) und 3.) der passende Beginn des Blocks als Variable SplitText genannt ist (bei mir "Procedere", bei Ihnen der Name des Sonokarteieintrags). 

Falls Sie für Ihren Fall noch im Ergebnistext aufgeführt haben wollten, bei welchem Patienten die Textblöcke extrahiert wurden, könnte man dies noch einbauen. So erhalten Sie zunächst einmal eine Liste der Textblöcke ohne Patientennamen, was für viele Zwecke aufgrund der Anonymität sinnvoll ist. 

set karteiEintrag to "$[karteiEintragValue_withArgs SAMMLER customKarteiEintragEntries.Sammlung _ N]$"
set Suchbegriff to "Medikation"
set SplitText to "Procedere"

set pythonScript to "
import re
import sys

text = '''" & karteiEintrag & "'''
suchtext = '''" & Suchbegriff & "'''
splittext = '''" & SplitText & "'''

# Split the text into blocks using the specified split text
blocks = text.split(splittext)

# Add the split text back to each block (except the first which is empty)
blocks = [splittext + block for block in blocks if block.strip()]

# Filter blocks to include only those containing the search text
filtered_blocks = [block for block in blocks if suchtext in block]

if filtered_blocks:
    print('\\n\\n'.join(filtered_blocks).strip())
else:
    print('Kein passender Text gefunden.')
"

set escapedPythonScript to quoted form of pythonScript

set result to do shell script "python3 -c " & escapedPythonScript
set the clipboard to (the clipboard) & result

D) Aktionskette, die das AppleScript aufruft

Beantwortet von (3.3k Punkte)
0 Punkte

Sorry, wie befürchtet es geht einfacher.

1. unter Admin Statistikeinstelltungen eine neue Statistik erstellen:

Den Karteientrag wählen - hier ASON

enthält - da habe ich nur einen Punkt genommen.

2. Unter Verwaltung Statistiken die Statistik starten

3. Aktion auswählen mit rechtsklick

Da habe ich, weil keine Vorlage mit der Statistik verknüpft ist einen Serienbrief und zwar hier meine Standardvorlage gewählt. Damit werden alle Befunde wie gewünscht ausgedruckt.

Das hatte ich befürchtet... Aber so lernt man immer schön dazu, ist ja auch nicht schlecht.

Was ich bei Deiner Lösung noch nicht verstehe, wie das Serienbriefdokument denn aussehen muss, damit es alle Karteieinträge in einen Text übernimmt. Es geht ja nicht nur um einen Patienten, sondern um alle, oder?

Meine (offenbar bzgl. der eigentlich Frage überflüssigen) Fingerübungen haben mir mal wieder viele Aha-Erlebnisse gebracht. So war mir bisher nicht klar, dass man auch umfangreichere Pythonprogramme einfach im AppleScript aufführen kann und dann ohne Start eines extern liegenden Pythonprogramms per shell-Kommando ausführen lässt (s. Script). Das ermöglicht mir doch noch ein paar mehr "Spielereien" mit Python.
Das ist eigentlich auch ganz einfach. Für jeden Patienten wird ein Dokument gedruckt. Das ist dann ein Serienbrief. Ich habe meine Standarvorlage genommen, die den Befund "ASON" mit übernimmt. Ganz einfach über das x-Kommando. Man kann aber auch eine dafür bestimmte Briefvorlage erstellen, die wunschgemäß nur bestimmte Daten und den Katrteieintrag übernimmt. Wenn Fargen sind können wir gern per TeamViewer gemeinsam anschauen.
@ Hans Jörg Baumann

Dolles Skript, wie kommt man darauf?

Habe es mir gerade von ChatGPT erklären lassen. Jetzt brauche ich nur noch ein paar Anwendungsbeispiele. Im Prinzip dürfte zusammen mit Toemdo alles machbar sein.
16,487 Beiträge
24,360 Antworten
42,989 Kommentare
13,053 Nutzer