BEDINGTE Freigabe der macOS Version Sequoia für tomedo®
Alle Hinweise und Informationen finden Sie unter folgendem Link.
Guten Abend,

für einen Automatisierungsschritt bin ich auf der Suche nach einer Lösung für folgendes Problem:

Ich möchte in einem CKE den Inhalt eines Textfeldes automatisiert in die Zwischenablage übernehmen, um diesen dann extern (skriptbasiert) weiterzuverarbeiten.

Mit AppleScript schaffe ich es nicht, es so einzustellen, dass wie erforderlich der Cursor/Focus in das gewünschte Feld gesetzt wird, bevor cmd-A und cmd-C eingespeister eingesetzt werden.

Anschließend soll der Text dann per cmd-P in ein anderes Feld gesetzt werden.

Hat jemand eine Idee?
Gefragt in Frage von (7.1k Punkte)
0 Punkte
Hallo Hans Jörg

mit dem Kommando $[karteiEintragValue_withArgs.... kann man jedes variablefeld auslesen.

Es gibt bekanntlich viele Wege nach Rom. Dein Beispielist zu abstrakt. Viellleicht hat wer anders das schon gelöst.

Gib doch mal ein Anwendungsbeispiel für das was Du erreichen willst.

Einen weiteren Fallstrick hat David Stenger angesprochen, indem bei falscher Konfiguration die Aktion unkontrolliert oft ausgeführt wird. Da benötigt es weiterer Einschränkung beispielsweise mit Begrenzung des Zeitraums.

$[karteiEintragValue_withArgs KARTEIEINTRAG customKarteiEintragEntries.FELDNAME _ D-1t]$

für heute und gestern

 

Mit Python kenne ich mich nicht aus, respekt wenn Du Dir das nebenher aneignest.
Hallo Christian,

mein Anwendungsfall ist ein Text-Teil-Analysator für häufige wiederkehrende Texte wie CT-Befunde, Arztbriefe aus immer den z.B. 10 wichtigsten Praxen/Kliniken. Ich möchte aus in der Kartei z.B. als PDF-Datei, KIM-Brief oder eingescannten (per OCR) Dokumenten Textabschnitte in ein CKE-Feld kopieren.

Der Inhalt dieses Feldes soll dann via regex ausgewertet werden. Für jeden Absender / jede Quelle muss ein anderer regex-Satz ausgewählt werden, dafür wollte ich Python nutzen, was leichter handhabbar ist und mehr Möglichkeiten bietet als die regexerei in CKE-Feldern selbst. Das Python-Programm soll dann einen Text-Rückschrieb in ein CKE mit passenden Feldern leisten. Also z.B. Feld CT-Typ (TCT nativ; TCT mit KM), Feld CT-Untersuchungsdatum, Feld CT-Beurteilung usw.

Der Knackpunkt schein hier jetzt doch der Rückschrie aus dem Pythonskript in ein CKE-Feld zu sein. Der CKE darf auch ruhig neu angelegt werden.

Im Forum wurde schon mehrfach nach dieser Option in der Vergangenheit gefragt, wenn ich es richtig verstehe, geht das aber nicht. Daher kam ich auf die (etwas umständliche, aber zumindest denkbare) Idee, den Rückschrieb über die Zwischenablage zu tricksen.

Wenn es so nicht ginge, müsste ich die regexerei mit bedingten Gruppen wieder in den CKE-Feldern machen, was zur Not auch ginge.
regex können Sie auch direkt bei den Aktionskettenbedingungen verwenden. In Abhängigkeit von dem Ergebnis dann ggf. das die entsprechende Aktionskette öffnen, die direkt dann einen weiteren Karteieintrag mit regex vom 1. eintrag befüllt.

Wenn Sie Dokumente mit einem entsprechenden Scanner scannen, der ocr direkt unterstützt, kann der Text des Dokuments direkt in den Karteieintrag übernommen werden.

1 Antwort

Beste Antwort

Hallo,

soll das ganze in einem Applescript weiter verwendet werden? Wenn ja, können Sie einfach den Inhalt des Textfeldes mit $[karteiEintragValue_withArgs.... im Script weiterverarbeiten.

Beispiel:

on replace_chars(this_text, search_string, replacement_string)
	set AppleScript's text item delimiters to the search_string
	set the item_list to every text item of this_text
	set AppleScript's text item delimiters to the replacement_string
	set this_text to the item_list as string
	set AppleScript's text item delimiters to ""
	return this_text
end replace_chars

set hdscode to (replace_chars("$[karteiEintragValue_withArgs FB customKarteiEintragEntries.c1 _ J]$", "-", "")) as string

.....

 

Beantwortet von (30.4k Punkte)
ausgewählt von
0 Punkte
Ja, ich möchte den Inhalt an ein Python-Programm übergeben.

CKE-Feld #1 > Clipboard > per AppleScript Python-Programm starten > Clipboard dort mit pyperclip auslesen > in Python verarbeiten > per pyperclip ins Clipboard > Clipboard (per AppleScript?) > CKE-Feld #2

So ließen sich für viele kleine Detailprobleme Pythonprogramme als Lösung (z.B. Textauswertung) erledigen.

Haben Sie da auch eine Lösung. Das wäre sehr genial für mich.
Python können Sie ja auch direkt aus tomedo ausführen. Da benötigen Sie nicht den Umweg über AppleScript. In das Pythonscript, das in tomedo hinterlegt ist, können Sie auch die Briefkommandos einfügen. Daher sollte das eigentlich bis zum letzten Schritt klappen. Das einzige Problem ist das Einfügen in das CKE #2 Feld. Ist das Feld CKE #2 im gleichen CKE wie CKE #2?

Ja, das soll in das gleiche CKE.

Ich bin ja Python-Neuling. Daher nur noch eine kurze Frage:

Würde das Hin und her mit den CKE-Variablen so funktionieren?

cke-feld1 = $[karteiEintragValue_withArgs CKE customKarteiEintragEntries.Feld1 _ J]$
….
cke-feld2 = python-Berechnung aus cke-feld1

$[karteiEintragValue_withArgs CKE customKarteiEintragEntries.feld2 _ J]$ = cke-feld2
Sie müssten auf jeden Fall zunächst das CKE schließen, da erst dann tomedo das CKE "kennt" und die Felder auslesen kann. Im Rahmen einer Aktionskette könnten Sie dann nach abgelaufenen Script, das CKE nochmals öffnen und über AppleScript mit mehreren Tab in das CKE#2 Feld springen und über cmd+v den Wert einfügen.

Ein Problem sehe ich in der Aktionskette: wann weiß tomedo, dass das Script abgearbeitet ist.
Hallo Hans Jörg,

beschäftige mich mit dem gleichen Problem. Für den Rückschrieb in ein bestimmtes variablefeld eines CKE kann man die gdt Funktion nutzen.

Dazu müsstest Du Deinem Skript die Bezeichnung des CKE und die 4-stellige Feldkennung hinzufügen, dann sollte der Text in das richtige Variablefeld eingefügt werden. Wenn auch noch  die Patienten ID dabei wäre, würde das über einen Lauschordner passieren, selbst wenn die Kartei geschlossen ist. Dann könnte man alle Arbeiten irgendwann gebündelt erledigen.

Mich interessiert, wie Du die Inhalte der pdf Dokumente extrahierst. Mit welchem externen Python Programm machst Du das?
Hallo Christian,

da muss ich eingestehen, dass ich diesen Teil noch nicht abschließend gelöst habe. Für das Auswerten von PDF per Python gibt es verschiedene Module, die Du in Deine Python-Programme nach Bedarf einbinden kannst. Die gängigsten Module sind PyPDF und PyMuPDF. Wie immer liegt der Teufel im Detail. Simpel strukturierte PDF auszulesen und in einen Text-File zu verwandeln benötigt drei Zeilen Code. Kompliziert wird es, wenn z.B. Arztbriefe mit Adressblöcken am Rand o.ä. zu einer ziemlich gewürfelten Textstruktur als Ergebnis führen kann. In solchen Fällen muss man dann vor dem Auslesen die Dokumentstruktur analysieren und für die Auswertung zugrundelegen.

Je nach PDF-Struktur und Fragestellung kann das dann also doch noch ziemlich kompliziert werden.
18,368 Beiträge
26,627 Antworten
47,735 Kommentare
28,897 Nutzer