OTK Störung - IONOS als Mailserver®
Alle Hinweise und Informationen finden Sie unter folgendem Link.

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

Guten Tag,

ich suche Expertenrat für ein Apple-Script. Mein Plan ist folgendes: ein Apple-Script zur Ermittlung von Verschlussdrücken. Die MFA gibt der Reihe nach den höchsten RR vom Arm und beiden Knöcheln ein, dann wird gerechnet und interpretiert und das formatierte Ergebnis in die Zwischenablage kopiert. Jetzt kann die MFA den Befund mittels Command-V unter Befund einfügen.

Hier ist mein Script:

=======================

-- AppleScript zur Berechnung des ABI und Kopieren des Ergebnisses mit Interpretation in die Zwischenablage

-- Eingabe des systolischen Blutdrucks am Arm
set armBP to text returned of (display dialog "Bitte den systolischen Blutdruck am Arm eingeben (in mmHg):" default answer "")
set armBP to armBP as number

-- Eingabe des systolischen Blutdrucks am rechten Knöchel
set rightAnkleBP to text returned of (display dialog "Bitte den systolischen Blutdruck am rechten Knöchel eingeben (in mmHg):" default answer "")
set rightAnkleBP to rightAnkleBP as number

-- Eingabe des systolischen Blutdrucks am linken Knöchel
set leftAnkleBP to text returned of (display dialog "Bitte den systolischen Blutdruck am linken Knöchel eingeben (in mmHg):" default answer "")
set leftAnkleBP to leftAnkleBP as number

-- Berechnung des ABI für rechts und links mit einer Nachkommastelle
set rightABI to (round (rightAnkleBP / armBP * 10)) / 10
set leftABI to (round (leftAnkleBP / armBP * 10)) / 10

-- Interpretation der ABI-Werte für rechts
if rightABI < 0.9 then
    set rightInterpretation to "Mögliche Durchblutungsstörung (ABI < 0.9)"
else if rightABI ≤ 1.4 then
    set rightInterpretation to "Normaler Bereich (ABI 0.9–1.4)"
else
    set rightInterpretation to "Hinweis auf versteifte Arterien (ABI > 1.4)"
end if

-- Interpretation der ABI-Werte für links
if leftABI < 0.9 then
    set leftInterpretation to "Mögliche Durchblutungsstörung (ABI < 0.9)"
else if leftABI ≤ 1.4 then
    set leftInterpretation to "Normaler Bereich (ABI 0.9–1.4)"
else
    set leftInterpretation to "Hinweis auf versteifte Arterien (ABI > 1.4)"
end if

-- Gesamtergebnis als formatierten Text zusammenstellen
set resultText to "Ankle-Brachial-Index Ergebnisse\n" & ¬
    "============================\n" & ¬
    "Systolischer Blutdruck Arm: " & armBP & " mmHg\n\n" & ¬
    "Rechte Seite:\n" & ¬
    "  Blutdruck Knöchel: " & rightAnkleBP & " mmHg\n" & ¬
    "  ABI rechts: " & rightABI & "\n" & ¬
    "  Interpretation: " & rightInterpretation & "\n\n" & ¬
    "Linke Seite:\n" & ¬
    "  Blutdruck Knöchel: " & leftAnkleBP & " mmHg\n" & ¬
    "  ABI links: " & leftABI & "\n" & ¬
    "  Interpretation: " & leftInterpretation & "\n\n" & ¬
    "Analyse abgeschlossen."

-- Ergebnis in die Zwischenablage kopieren
set the clipboard to resultText

-- Hinweis anzeigen
display dialog "Die ABI-Ergebnisse und ihre Interpretation wurden in die Zwischenablage kopiert." buttons {"OK"} default button 1

=====================

Leider bekomme ich folgende Fehlermeldung:

Hat jemand einen Rat, wo es klemmt? 1000 Dank für Infos.

Christoph Schenk

Gefragt in Frage von (600 Punkte)
0 Punkte
Wirklich Prima,

habe Appleskripte bisher nie zur Eingabe von Daten benutzt. Für kleinere Sachen wie hier ist das sinnvoll.

Mich würde aber interessieren, wo bei Ihnen der fehler lag.
moin,

ich glaube, dass ich einen ios-versionsfehler hatte. weiss es aber nicht genau. war try and error ;-)

3 Antworten

Moin Herr Schenk,

Die Fehlermeldung liegt evtl daran, dass innerhalb Ihres Karteieintrags irgendwelche Sonderzeichen sind, die vom Appleskript als Kommandos fehlinterpretiert werden.  Deshalb würde ich das Problem nicht über ein AppleSkript lösen. Wenn Ihre MFA die Werte sowieso irgendwo eingeben, dann sollten Sie sich dafür einen CKE erstellen. Innerhalb des CKE können Sie in Variablefeldern alle Berechnungen durchführen. Ich habe dafür bereits in der Vergangenheit ein Beispiel als CKE ins Tauschcenter geladen "Artithmetische Funktion". Dort können Sie nachschauen, wie man solche Rechenoperationen praktisch umsetzen kann.

Falls Ihre Messwerte mit einem Gerät erfasst werden, das über eine GDT Schnittstelle verfügt, könnten die Ergebnisse aus der übermittelten GDT Datei per regex Kommando direkt in Ihren CKE übertragen werden, was Fehler bei der händischen und stumpfsinigen Übertragung vermeiden hilft. Innerhalb des CKE kann man dann in einem nicht editierbaren Variablefeld einen individuellen Befundtext aus den Messergebnissen und den errechneten Werten generieren. Ein Beispiel dafür sehen sie auch in meinem anderen Beitrag von heute für die Interpretation des PWI. Das alles macht ersteinmal viel Arbeit spart aber unterm Strich die aufgewendete Zeit wieder ein.

Beantwortet von (36.5k Punkte)
Bearbeitet von
0 Punkte

Guten Morgen,

habe gerade kurz Ihr Skript mal ausprobiert: bei mir lief es sofort ohne Fehler mit korrektem Ergebnis in der Zwischenablage durch. Prinzipiell haben Sie also bzgl. des Skripts alles korrekt gemacht. 

Ankle-Brachial-Index Ergebnisse
============================
Systolischer Blutdruck Arm: 120 mmHg

Rechte Seite:
  Blutdruck Knöchel: 130 mmHg
  ABI rechts: 1,1
  Interpretation: Normaler Bereich (ABI 0.9–1.4)

Linke Seite:
  Blutdruck Knöchel: 90 mmHg
  ABI links: 0,8
  Interpretation: Mögliche Durchblutungsstörung (ABI < 0.9)

Analyse abgeschlossen.

Ansonsten trifft 100% zu, was Herr Klaproth gerade geschrieben hat: Daten selbst eintippen, die an einer anderen Stelle schon in strukturierter (!) Form vorliegen, sollte man immer vermeiden. Der aufgezeigte Weg kann das genau ermöglichen. 

Beantwortet von (7.1k Punkte)
0 Punkte
Danke für die Antworten. Ich habe das Skript überarbeitet - nun funktioniert es. Die MFAs geben die Werte nun einzig in dieses Skript ein, daraus wird ein Text generiert, der mit Command-V in "Bef" eingefügt wird.

Hier ist es nochmal für alle Duplex-Freunde ;-) Auch im Tauschcenter.

 

===================

-- AppleScript zur Berechnung des ABI mit Interpretation und Kopieren in die Zwischenablage

-- Eingabe des systolischen Blutdrucks am Arm
set armBP to text returned of (display dialog "Bitte den höchstgemessenen systolischen Blutdruck am Arm eingeben (in mmHg):" default answer "")
set armBP to armBP as number

-- Eingabe des systolischen Blutdrucks am rechten Knöchel
set rightAnkleBP to text returned of (display dialog "Bitte den höchstgemessenen Blutdruck am rechten Knöchel eingeben (in mmHg):" default answer "")
set rightAnkleBP to rightAnkleBP as number

-- Eingabe des systolischen Blutdrucks am linken Knöchel
set leftAnkleBP to text returned of (display dialog "Bitte den höchstgemessenen systolischen Blutdruck am linken Knöchel eingeben (in mmHg):" default answer "")
set leftAnkleBP to leftAnkleBP as number

-- Berechnung der ABI-Werte für rechts und links mit einer Nachkommastelle
set rightABI to (round (rightAnkleBP / armBP * 10)) / 10
set leftABI to (round (leftAnkleBP / armBP * 10)) / 10

-- Interpretation der ABI-Werte
on interpretABI(abi)
    if abi < 0.9 then
        return "Mögliche Durchblutungsstörung (ABI < 0.9)"
    else if abi ≤ 1.4 then
        return "Normaler Bereich (ABI 0.9–1.4)"
    else
        return "Hinweis auf versteifte Arterien (ABI > 1.4)"
    end if
end interpretABI

set rightInterpretation to interpretABI(rightABI)
set leftInterpretation to interpretABI(leftABI)

-- Ergebnistext erstellen
set resultText to "Ankle-Brachial-Index Ergebnisse\n" & ¬
    "============================\n" & ¬
    "Systolischer Blutdruck Arm: " & armBP & " mmHg\n\n" & ¬
    "Rechte Seite:\n" & ¬
    "  Blutdruck Knöchel: " & rightAnkleBP & " mmHg\n" & ¬
    "  ABI rechts: " & rightABI & "\n" & ¬
    "  Interpretation: " & rightInterpretation & "\n\n" & ¬
    "Linke Seite:\n" & ¬
    "  Blutdruck Knöchel: " & leftAnkleBP & " mmHg\n" & ¬
    "  ABI links: " & leftABI & "\n" & ¬
    "  Interpretation: " & leftInterpretation & "\n\n" & ¬
    "Analyse abgeschlossen."

-- Ergebnis in die Zwischenablage kopieren
set the clipboard to resultText

-- Hinweis anzeigen
display dialog "Die ABI-Ergebnisse und deren Interpretation wurden in die Zwischenablage kopiert. Du kannst sie jetzt mit Command-V einfügen." buttons {"OK"} default button 1

========================
Beantwortet von (600 Punkte)
0 Punkte

Sie können auch den letzten Schritt noch automatisieren: 

--AppleScript, um einen Karteieintrag neu anzulegen und mit dem Inhalt der Zwischenablage zu befüllen

--zunächst die Kartei des aktuellen Patienten öffnen (stellt sicher, dass der Focus am gewünschten Ort landet, was sonst nicht immer der Fall ist). 
open location "tomedo://patient#$[pid]$"

-- CMD + K
tell application "System Events"
    keystroke "k" using command down
end tell

-- Karteieintrag als Tastatureingabe
tell application "System Events"
    keystroke "---Hier den Namen des Karteieintragstyps einfügen----"
end tell

-- Enter Taste eingeben
tell application "System Events"
    key code 36 -- Enter-Taste
end tell

-- 0,5 Sekunden warten
delay 0.5

-- CMD + V (Einfügen)
tell application "System Events"
    keystroke "v" using command down
end tell

 

kriege leider eine fehlermeldung:

 

Da fehlt auf Ihrem Rechner die Berechtigung im MacOS, dass tomedo per Tastatureingaben den Rechner steuert. Das MacOS ist da ja (eigentlich korrekterweise) zunächst sehr "zugeknöpft", was die Berechtigungen angeht.

Apple Systemeinstellungen > Datenschutz & Sicherheit > Bedienungshilfen > Erlaube den Apps unten, deinen Computer zu steuern > tomedo.

Dann sollte es klappen.
Danke für den Hinweis.
18,350 Beiträge
26,608 Antworten
47,696 Kommentare
28,569 Nutzer