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

Guten Montag zusammen

Um die Attesterei bzgl. der Impfpriorisierung so kurz wie möglich zu halten bin ich gerade dabei ein Custom-Karteieintrag zu entwickeln, der die Einteilung in die Priorisierungsgruppen nach Covid-Impfverordnung erleichtern soll.

Dazu soll die Auswahl aus mehreren Diagnosen = Kontrollkästchen getroffen werden und wenn mindestens eines dieser Kontrollkästchen angewählt ist, soll die Einteilung ins Priorität 2 oder Priorität 3 erfolgen.

Um zu unterscheiden, ob Kontrollkästchen der Priorität 2 (p20x) oder 3 (p30x) abgekreuzt werden multipliziere Ich Scores der 2. Prioritäts-Kategorie mit 20

Score S1 = 20*(p201+p202+p203+p204+p205+p206+p207+p208+p209+p210+p211+p212+p213)+(p301+p302+p303+p304+p305+p306+p307+p308+p309+p310)

Somit kann Ich die Aussage treffen:

Wenn der Score S1 >19 muss ein Kontrollkästchen Gruppe p20x angekreuzt worden sein, → und somit Priorität 2 vorliegen,

wenn der Score <20 , muss ein Kontrollkästchen Gruppe p30x angekreuzt worden sein, → und somit Priorität 3

wenn der Score <1 ist, wurde nichts angekreuzt → und somit Priorität 4

Wie kann ich jetzt eine Funktion definieren, die mir genau diese Erkenntnis ausspuckt, damit Ich das Ergebnis dieser Auswertung nutzen kann um eine Aktionskette zu starten, die dann das entsprechende Attest ausspuckt?

FUNCTION('$[s1]$', 'ifGreaterAs:yes:no:', '19, '2', 
FUNCTION('$[s1]$', 'ifGreaterAs:yes:no:', '0', '3', '4')))

Tut es leider nicht, da fehlt tomedo die logische Definition...

Wo liegt mein Fehler? Funktioniert es anders einfacher?


 

In dem Zuge kam noch eine andere Überlegung: Kann der Befehl $[palter]$ zur Vorbefüllung eines Feldes genutzt werden und dann ebenfalls als Score in weiteren Rechnungen genutzt werden?


 

Mit freundlichen Grüßen und eine sonnige Woche!

Michael Völkner, Praxis Reitz

Gefragt von (880 Punkte)
0 Punkte

2 Antworten


Hallo Herr Völkner

versuchen Sie es doch mal damit:

FUNCTION('$[s1]$', 'ifSmallerAs:yes:no:', '1, '4', 
FUNCTION('$[s1]$', 'ifSmallerAs:yes:no:', '19', '3',2 ''))

Wenn der Score kleiner als 1 ist, wird der Wert 4 ausgegeben

Zwischen 1 und 19 Scorepunkten Wert 3

und größer 20 Wert 2

 

Beantwortet von (30.5k Punkte)
Bearbeitet von
0 Punkte
Danke, wird leider weiterhin als "nicht logisch definiert" angezeigt.

Hallo Herr Völkner,

da hat sich ein kleiner Schreibfehler eingeschlichen.

So müsste es funktionieren:

FUNCTION('$[s1]$', 'ifSmallerAs:yes:no:', '1', '4',

FUNCTION('$[s1]$', 'ifSmallerAs:yes:no:', '19', '3', '2 '))

nicht 2 ''))   sondern 2 '))


 

Diesen kleinen Vertipper hatte Ich auch schon entdeckt und korrigiert, leider wird auch nach Beheben der Score nicht logischer - zumindest meint tomedo weiterhin "der Score ist logisch falsch definiert" - Ich finde Ihn sehr logisch...

Bin da etwas ratlos, zumal in anderen Custom Karteieinträgen wie dem Marburger Herzscore die "if smaler" Funktion von mir erfolgreich eingesetzt wurde.

FUNCTION('$[s1]$', 'ifSmallerAs:yes:no:', '19', '3', '2 '))

ich sehe 1x Klammer auf und 2x Klammer zu

Für jede neue Zeile soll eine geschlossene Klammer am Ende stehen.

Vielleicht liegt es daran, dass im Beispiel aber noch eine Leerzeile zwischen beiden Zeile ist.

FUNCTION('$[s1]$', 'ifSmallerAs:yes:no:', '1', '4',
FUNCTION('$[S1]$', 'ifSmallerAs:yes:no:', '19', '3', '2 '))

Bitte das einmal kopieren, bei mir funktioniert das einwandfrei.

Ansonsten habe ich im Tauschforum ein sehr komplexes CKE "Oszillometrie reingestellt.

Da erzeuge ich über eben solche Scoreberechnungen einen automatischen Befund zur Auswertung von Oszillometrien.
ok, daran habe ich nicht gedacht... verschachtelte Statements werden (wie ich das schon oft im Forum erwähne) nicht unterstützt. Wenn das funktioniert ist das eher zufall...
Hallo Herr Thierfelder

das funktioniert hervorragend und sollte eigentlich kein Zufall sein.

sehen Sie sich doch mal meinen CustomKarteieintrag Oszillometrie im Tauschforum an.

Wenn da in den IfSmallerAs Verschachtelungen zur Scoreberechnung eine Klammer zu wenig ist meckert Tomedo.
Mir ist noch etwas wichtiges eingefallen, kann aber gerade nicht auf mein Tomedo zugreifen um das durchzuspielen.

Welche Zahlenwerte haben Sie eingestellt?

Haben Sie mit oder ohne Nachkommastellen gearbeitet?
Also so wie sie es eingegeben haben geht es... es sollte nicht an den Nachkommastellen liegen. @Herr Völker: haben Sie das von Herr Klaproth kopiert und die Variablen ersetzt? Kann es evtl daran liegen, das Apple beim Einsetzen aus  '  ->   ` macht?

zu meinem Wort "Zufall": Evtl ist das missverständlich. Das die Verschachtelung in diesen konkreten Fällen geht liegt nicht daran das es beim Programmieren gewollt war. Es gibt Konstellationen, bei denen wo das Verschachteln aus logischen Gründen nicht geht. Die Syntax gibt das dann nicht her. Das es in den hier beschriebenen Fällen funktioniert ist ... Zufall/göttliche Fügung/Charma ...
Auch beim Patientenalter kommen Sie mit dem IfSmallerAs ans Ziel.

In einem CKE können Sie doch das Alter in einem Feld als Vorbefüllung einstellen, anschließend einen Score erzeugen.
Beantwortet von (30.5k Punkte)
0 Punkte
Da ist mein einen Tag nicht am Rechner... Vielen Dank, die Herren! Leider ist die Lösung nur ein Teilerfolg...

Ich habe jetzt Ihre Funktion, Herr Klaproth, eingefügt. Dadurch spuckt mir der Score jetzt immerhin eine Zahl aus, diese ist allerdings nie 2, selbst wenn S1=100 ist... Sobald S1 >0 kommt eine "3", sonst "4". Warum er jetzt logischer definiert ist, ist mir noch nicht klar.

Ich habe als Variable keine Nachkommastelle eingestellt, und selbst wenn Ich es mache, ändert das nichts.

@ Zufall: für den Marburger Herzscore verwende Ich bei 5 Variablen folgende Verschachtelung:

FUNCTION('$[A1]$', 'ifSmallerAs:yes:no:', '2', '1',
FUNCTION('$[A1]$', 'ifSmallerAs:yes:no:', '3', '5',
FUNCTION('$[A1]$', 'ifSmallerAs:yes:no:', '4', '25', '65')))

Und das klappt 1a...
Hallo Herr völker versuchen Sie es mal damit.

FUNCTION('$[s1]$', 'ifSmallerAs:yes:no:', '1', '0',
FUNCTION('$[S1]$', 'ifSmallerAs:yes:no:', '19', '1', '2' ))

Dann sollte er bei einem Wert über 20 die Zahl 2 ausspucken. Dan können si den über ein if Kommando auswerten
Fehler gefunden: einmal war es s1 und einmal S1. Nach Korrektur der Groß/Kleinschreibung geht das jetzt.

Was mir jetzt noch fehlt, ist, wie ich dieses Scoreergebnis an die Briefschreibung koppel, dass bei "3" das Dokument "Attest Priorität 3" bzw. bei "2" das "Attest Priorität 2" angelegt wird. Ich wollte das per Aktionskette lösen, oder ist es sinniger, eine Attestvorlage anzulegen, in die ich per x-Kommando einen Bezug zum CKE herstelle?

Mit einem If-Kommando lassen sich beliebige Texte in einem zusammengestzten Textfeld erzeugen

$[if "$[A1]$" "1" Anzeigetext_1 "2" Anzeigetext_2 "3" Anzeigetext_3 ]$

aber auch Textmakros aufrufen.

Beispiel:

$[if "$[A1]$" "Text1" Anzeigetext_1 "Text2" Anzeigetext_2 "Textmakro1" ∆Frage1<zsMacroAnswerDivider>Text1<zsMacroAnswerDivider>Text2∆-∆Frage2<zsMacroAnswerDivider>Text3<zsMacroAnswerDivider>Text4<zsMacroAnswerDivider>Text5<zsMacroAnswerDivider>Text6<zsMacroAnswerDivider>Text7∆-∆Frage3<zsMacroAnswerDivider>Tect8<zsMacroAnswerDivider>Text9<zsMacroAnswerDivider>Text10∆ ]$

15,811 Beiträge
23,522 Antworten
41,229 Kommentare
11,001 Nutzer