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

Guten Abend, 

ich suche nach dem Syntax, mit dem ich die Funktionen IF oder IF_THEN im Zusammenhang mit einsetzen kann. Mein Vorhaben:

Formular heisst: "PatF_Akut"

Das Feld "Hauptbeschwerde" im Formular ist ein multichoice Ankreuzfeld mit 5 Auswahlmöglichkeiten, die ich nacheinander abfragen will 1=Fieber, 2=Atemwegsbeschwerden usw... ALSO - ich formuliere es mal in Normalsprache: 

IF im Formular PatF_AKut das Feld Hauptbeschwerde entspricht 1 (oder muss man den gewählten Ausdruck = Fieber nehmen ??), dann (Schreibe: Fieber seit "Feld_Fieber_seit" Tagen, lasst sich gut senken "Feld_Fieber_senkbar" ... usw), ansonsten ignoriere alle Fieberfelder..

wie man die einzelnen Felder ausliest, und in den Textbaustein einträgt, habe ich schon rausgefunden.. ich müsste sozusagen nur die WENN-DANN-ANSONSTEN Syntax erfahren. Ich würde dann einfach in die DANN - Klammer alle Dinge tun, die zum Fieber gehören. Ansonsten wird ja nicht benötigt, 

Danach käme die Abfrage von Hauptbeschwerde 2 mit den einzelnen Feldern, so dass unterm Strich eine kurze prägnante Zusammenfassung des PatF entsteht, wobei nur die inhalte übernommen werden, die auch wirklcih ausgefüllt wurden. 

Würde man wirklcih alle Inhalte übernehmen, so wird ein verschachteltes Formular irgendwann im Report sehr unübersichtlich. - und es soll ja in der Akutsprechstunde eine Hilfe sein, sich innerhalb von wenigen Augenblicken über das Problem zu informieren. 

vielen Dank!

mfg

M. Schönbeck

Gefragt in Frage von (440 Punkte)
0 Punkte

1 Antwort

Hallo,

die Syntax einiger Kommandos in tomedo - v.a. der mächtigeren - ist tatsächlich unübersichtlich. Ich befürchte, dass Sie sich die Mühe machen müssen, die Erläuterungen (hier zum Kommendo "if") genauer zu studieren. Das, was Sie wollen wird auch recht unünersichtlich und man kann durch ein falsch gesetztes Leerzeichen Stunden an einem Problem vergeuden. Als Anfang kann ich Ihnen den Tipp geben mit folg. Kommando zu beginnen und weiter zu experimetrieren. Ich würde auch eher ein CustomKarteieintrag verwenden, da dort mMn die Möglichkeiten größer/vielfältiger sind.

$[if karteiEintragValue_withArgs PatF_Akut customKarteiEintragEntries.Hauptbeschwerde _ N zs_equals Fieber 'Fieber, lässt sich gut senken']$

Ich bin rel. sicher, dass im "Ausgabewert" des if Kommandos wie Zollsoft es nennt (hier die Zeichenkette "Fieber, lässt sich gut senken") keine anderes Feld referenziert werden kann - bitte hier selbst testen. Ich würde es hier so lösen:

$[if karteiEintragValue_withArgs PatF_Akut customKarteiEintragEntries.Hauptbeschwerde _ N zs_equals Fieber 'Fieber seit']$$[if karteiEintragValue_withArgs PatF_Akut customKarteiEintragEntries.Feld-Fieber-seit _ N zs_not_equal <leer>  ' ']$$[Feld-Fieber-seit]$$[if karteiEintragValue_withArgs PatF_Akut customKarteiEintragEntries.Feld-Fieber-seit _ N zs_not_equal <leer>  ' Tagen']$

Erklärung: zuerst wird geschaut, ob das Feld Hauptbeschwerde Fieber enthält und dann der Text "Fiebr seit" ausgegeben, danach wenn das Feld "Feld-Fieber-seit" nicht leer ist eine Leerzeichen und dann die Anzahl der der Tage (= Inhalt des Feldes "Fedl-Fieber-seit") danach wieder wenn das Feld "Feld-Fieber-seit" nicht leer ist die Zeichenkette "seit Tagen" mit einem Leerzeichen vorne.

Achtung, ich habe das alles nicht getestet, sondern aus meinen Lösungen entnommen. Sie müssen es an Ihre Bedürfnisse anpassen!

Hier zum Schluss eine Ausschnitt aus meiner Lösung, die die Eingaben im CustomKarteieintrag "OP" auswertet und den OP-Bericht vorausfüllt. Soll nur demonstrieren, dass es SEHR unübersuchtlich werden kann :-)

 

OP: $[if karteiEintragValue_withArgs OP customKarteiEintragEntries.opArzt1 _ N zs_not_equal <leer> 'Phakoemulsifikation mit Einsatz einer Hinterkammerlinse']$$[if karteiEintragValue_withArgs OP customKarteiEintragEntries.opArzt2 _ N zs_not_equal <leer> 'Intravitreale Medikamentengabe (IVOM)']$
$[if karteiEintragValue_withArgs OP customKarteiEintragEntries.opIOLart _ N zs_not_equal <leer> 'IOL: ']$$[karteiEintragValue_withArgs OP customKarteiEintragEntries.opIOLart _ N]$$[if karteiEintragValue_withArgs OP customKarteiEintragEntries.opIOL _ N zs_not_equal <leer> ' ']$$[karteiEintragValue_withArgs OP customKarteiEintragEntries.opIOL _ N]$$[if karteiEintragValue_withArgs OP customKarteiEintragEntries.opIOL _ N zs_not_equal <leer> ' dpt ']$$[karteiEintragValue_withArgs OP customKarteiEintragEntries.opIOLb _ N]$$[if karteiEintragValue_withArgs OP customKarteiEintragEntries.opMedi _ N zs_not_equal <leer> 'Medikament: ']$$[karteiEintragValue_withArgs OP customKarteiEintragEntries.opMedi _ N]$

 

Noch eine kleine Erläuterung: folgen 2 Kommandos direkt aufeineander $[xxxxx]$$[xxxxx]$ dann wird keine Leerezeichen dazwischen von tomedo gesetzt, lassen sie 3 "$[xxxxx]$   $[xxxxx]$" dann setzt tomedo auch genau 3, machen sie einen Zeilenumbruch, dann macht es tomedo auch. Ist für die Formatierung der Ausgabe wichtig!

Ich hoffe, das hilft. Sonst gerne Ihre Details posten.

Beantwortet von (4.4k Punkte)
0 Punkte

Vielen Dank für die ausführliche Antwort, leider habe ich auch mit deren Hilfe den Syntax im Textbaustein nicht hinbekommen. 

PatF heisst PatF-Akut-Termin

Formularfeld (multichoice) heisst Vorstellungsgrund

in der Textversion ist dort "Ohrenschmerzen" eingetragen

$[formularEintrag PatF-Akut-Termin Vorstellungsgrund N]$
führt zu: Ohrenschmerzen (richtig)

$[karteiEintragValue_withArgs PatF-Akut-Termin Vorstellungsgrund _ N]$
führt zu: nix

$[if karteiEintragValue_withArgs PatF-Akut-Termin KarteiEintragEntries.Vorstellungsgrund _ N zs_equals Ohrenschmerzen ‘OS']$

führt auch zu: nix
-> ich habe noch eine Stunde ein paar Varianten probiert und dann aufgegeben. 
im zweiten Ansatz habe ich ein CKE erstellt und alle Variablen des PatF in Felder des CKE 1:1 übertragen und dann mit der Formel
$[formularEintrag PatF-Akut-Termin Vorstellungsgrund N]$ vorbefüllt
führt zu: Ohrenschmerzen (richtig)
Den Karteieintrag kann man dann mit 
Seit $[Seit_Wann]$ Tagen: $[Vorstellungsgrund]$
$[if $[Fieber_JN]$ zs_equals true 'Fieber trat auf']$
usw generieren. Das funktioniert soweit und dann kann ich ja den Karteieintrag des CKE wiederum in den Textbaustein tun. Puhh Ziel erreicht, DANKE, aber doppelte Arbeit für jedes Formular - das muss ich mir nochmal überlegen, ob ich das aufbringen kann. 
gut n8
Ergänzung, falls es jemand nachbauen möchte - man muss nicht jedes PatF Feld einzeln spiegeln. In der CKE Variablen Vorbefüllung kann man ja auch schon mehrere Variablen hintereinander auslesen und somit Gruppen bilden, die dann entweder in den Karteieintrag übernommen werden oder wenn unbefüllt: ignoriert.

Damit wäre der Mehraufwand wiederum überschaubar..
18,368 Beiträge
26,627 Antworten
47,735 Kommentare
28,899 Nutzer