E-Rezept ist verpflichtend seit dem 01.01.2024
Alle Hinweise und Informationen zur Nutzung finden Sie unter folgendem Link.

Wende mich mit der Bitte um Unterstützung an erfahrene Tomedianer 

Bin mit einem Apple Script überfordert.

Möchte gerne folgenden Befehl in der karteieintragszeile automatisieren und mittels Apple Script ausführen.

 

Gehe zu Karteizeile“; Eingabe „0“ ; „Enter“, Eingabe „1“; Enter

 

Der Automator hat folgendes Script erstellt:

 

K drücken

delay 0.483969

set timeoutSeconds to 2.000000

set uiScript to "keystroke \"k\" using command down"

my doWithTimeout( uiScript, timeoutSeconds )

 

end doWithTimeout(uiScript, timeoutSeconds)

set endDate to (current date) + timeoutSeconds

repeat

try

run script "tell application \"System Events\"

" & uiScript & "

end tell"

exit repeat

on error errorMessage

if ((current date) > endDate) then

error "Can not " & uiScript

end if

end try

end repeat

end doWithTimeout

 

 

return input

end run

Welchen Befehl  für on run {input, parameters} muss ich formulieren, damit die gewünschte Aktion ausgeführt wird?

 

Herzlichen Dank im Voraus

 

CK

Gefragt von (30.5k Punkte)
0 Punkte
Ich kenne mich noch nicht ausreichend mit den Skripten aus. Mich würde viel mehr interessieren, was Sie damit automatisieren möchten. Ich bin für jede Anregung dankbar!
Ich möchte ein paar Klicks sparen, indem ich über den Befehl ein Makro starte, über dass alle meine Aktionsketten mit den verschiedenen Untersuchungsgängen gestartet werden können. Leider kann man in Tomedo in den Makros nur ein Unterverzeichnis erstellen. In den Aktionsketten muss man sich von Beginn an festlegen und die Schritte sind nicht flexibel.

3 Antworten

Beste Antwort

Hallo Herr Klaproth!

Automator ist an sich nur hilfreich, um für die Application "System Events" die erforderlichen Bezeichnungen der UI-Elemente herauszufinden. Das wäre für das von Ihnen genannte simple Beispiel, in dem wohl in der Kommandozeile nur 0 - Enter und 1 - Enter gedrückt werden soll, nicht erforderlich. Voraussetzung ist allerdings, dass vor Aufruf des Scripts der richtige Pat. in der Tages liste ausgewählt bzw. schon seine Kartei geöffnet ist.

Dann müsste etwa folgendes funktionieren:

tell application "System Events"

tell application process "tomedo"

-- cmd-K

key code 40 using command down

-- 1

key code 18

-- Enter (nicht Return)

key code 76

-- 2

keycode 19

key code 76

end tell

end tell

Zu den Codes siehe auch: https://eastmanreference.com/complete-list-of-applescript-key-codes

Evtl. muss noch eine kleine Pause nach einem Tastendruck einprogrammiert werden. Das ganze TimeOut-Gedöns, das Automator da produziert, braucht man nach meiner Erfahrung nur, wenn UI-Elemente geklickt werden sollen. Solche Scripte laufen nur, wenn auf jedem Rechner tomedo und System-Events in den Systemeinstellung die erforderlichen Rechte zum Steuern der jeweils anderen Application vergeben werden.

Ich hoffe das hilft etwas weiter...

Beantwortet von (3k Punkte)
ausgewählt von
0 Punkte

Hallo Herr Keller

herzlichen Dank. Wo kann man sich dieses Wissen aneignen? Haben Sie da Tipps für Mich?

 

Herr Rose hat mir so etwas ähnliches mitgeteilt, damit klappt es jetzt:

tell application "System Events"

delay 0.5

keystroke "k" using command down

delay 0.5

keystroke "0"

key code 36

delay 0.5

keystroke "1"

key code 36

end tell

 

Grüße aus HUSUM

CK

Apple Script ist an sich ne ganz witzige Sache, allerdings lausig dokumentiert.

Wenn sie tomedo über Script fernsteuern wollen, benutzen Sie im Wesentlichen die Möglichkeiten des sog. GUI-Scripting. Dabei wird die versteckte Anwendung System Events per Script angewiesen, User-Aktionen zu simulieren. Sauberer lässt sich mit Anwendungen arbeiten, die selbst Script-Befehle bereitstellen, das ist bei tomedo leider nur rudimentär der Fall (Auslösen von Aktionsketten, s.a. meine Kritik an anderer Stelle hier im Forum). Wenn Sie Dinge über GUI-Scripting realisieren, laufen Sie immer Gefahr, dass Ihr Script nach dem nächsten Update nicht mehr läuft, da die Entwickler bei Zollsoft ja nicht wissen was Sie da tun und Ihr Script den Bildschirminhalt nicht kennt.

Vielleicht helfen Ihnen die Ergebnisse der folgenden Google-Suche im Einarbeiten etwas weiter:

GUI Scripting mit Apple Script

Hallo aus Verden, Herr Klapproth, der Automator eignet sich nicht wirklich für die Appleskripte, um damit in Tomedo zu arbeiten. Ich hatte mich vor 2 Jahren etwas tiefer in die Materie reingekniet und bin trotz Informatikstudium vor 20 Jahren und Hilfe durch Tomedo kläglich gescheitert. Der Hauptgrund war damals das Problem das Applescript bei so vielen Fenstern auf die zur Zeit geöffnete Karteikarte des Patienten anzuwenden. Ich weiß nicht, ob dieses Problem nun gelöst wurde? Jedenfalls mein Rat an dieser Stelle, diese Frage zu klären, oder das Ziel auf anderem Wege erreichen ;-)) Gruß Ralf Kampmann
Beantwortet von (5k Punkte)
0 Punkte
Ich erbitte ebenfalls eine Untersützung bei Applecript:

Die neue Funktion Karteieinträge über eine Aktionskette öffnen zu lassen möchte ich nutzen, um deren Inhalt automatisch in die Zwischenablage zu kopieren.

Nutzt man hier ein Applescript wie:

tell application "System Events"       
   
    key code 8 using command down --> ⌘-C
  
 end tell

Wird nicht der markierte Inhalt des Fensters, sondern der ganze Eintrag kopiert (Ergebnis: Anamnese vom 02.10.2021:
Test), was für mich bedeutet, dass er auf der falschen Ebene (sprich Tomedo Hauptfenster und nicht geöffnetes Anamnesefester) das Kommando ausführt.

Hat jemand eine Idee, wie der Syntax korrekt lautet, dass das jeweils aktive Fenster des Karteieintrags (hier Anamnese) genutzt wird?

vielen Dank
Beantwortet von (7k Punkte)
0 Punkte

Hallo Herr  Klemenz

Dafür legen Sie anstatt der Aktion "Karteieintrag anlegen" nur "Karteieintrag öffnen" an.


Als Bedingung formulieren Sie einfach, dass der Karteieintrag bereits existiert, also nicht <leer>  ist, andernfalls soll die, oder eine andere, Aktionskette einen neuen Karteieintrag generieren. 

Ich nutze das, um Behandlungsfälle fortzusetzen. Sehen Sie dazu auch meinen Parallelbeitrag bzgl.der gleichen Funktion bei den CustomFormularen. https://forum.tomedo.de/index.php/43104/wunsch-an-die-entwickler-cf-gezielt-offnen

VG aus Husum

Christian Klaproth

Sehr geehrter Herr Klaproth,

vielen Dank. Das öfnen funktioniert. Mein Problem ist jedoch das apple script um den Eintrag zu kopieren, leider gerät das geöffnete Fenster als Quelle (oder Ziel) aus dem Fokus und das Script wird nur auf die Tomedo Hauptanwendung angewandt

VG F. Klemenz
Hallo Herr Klemenz

dafür brauchen Sie kein Script. Es funktionier über eine Aktionskette und deren Bedingung.

Sie können jeden beliebigen Auslöser nehmen, oder die Aktionskette aus der Karteieintragszeile heraus starten.
15,805 Beiträge
23,513 Antworten
41,218 Kommentare
10,997 Nutzer