Hallo zusammen,
--> Für alle, die nicht viel lesen wollen: Den Prompt gibt es weiter unten. <---
nach einigem Tüfteln und Trial-and-Error habe ich endlich einen sauber funktionierenden CKE für die Albumin-Kreatinin-Ratio (ACR) inklusive der automatischen, medizinisch korrekten Einstufung nach KDIGO (A1, A2, A3) fertiggestellt. Da ich dabei über einige spezifische Tomedo-Eigenheiten gestolpert bin (besonders das Problem, dass Score-Felder bei Textausgabe eine "0" anzeigen und mathematische Zeichen Probleme machen), möchte ich meine Lösung und die technischen Hintergründe hier teilen.
Achtung: auch schon einen "einfachen Quotienten" zu bilden, birgt Probleme. Leider hat mich da auch der KI-Support in die Irre geleitet...
Die wichtigsten technischen Learnings:
Das "0"-Problem bei Scores: Ein Feld vom Typ "Score" ist technisch zwingend auf Zahlen festgelegt. Versucht man, über eine Formel Text (z.B. "moderate Albuminurie") in einem Score-Feld auszugeben, bricht der Parser ab und gibt "0" aus.
Vorsicht mit < und > Zeichen: Die Verwendung der Zeichen < (kleiner als) und > (größer als) in Formeln führt oft zu Syntaxfehlern oder wird fälschlicherweise als HTML-Code interpretiert, wodurch Teile der Formel verschwinden. Es ist sicherer, Tomedo-interne Befehle wie ifGreaterAs (in Scores) zu nutzen oder in Textfeldern ganz auf mathematische Operatoren zu verzichten.
Der Befehl "FUNCTION": Dieser mächtige Befehl funktioniert zuverlässig fast nur in Score-Feldern. In Textfeldern oder im Karteitext wird er oft nicht als Code ausgeführt, sondern als Text gedruckt.
Text-Logik gehört in Text-Felder: Um Zahlen in Text umzuwandeln, muss ein Feld vom Typ "Text zusammengesetzt v2" genutzt werden, das die Berechnung aus dem Score "übersetzt".
Layout-Falle: Der Haken "autom. generieren" im Karteitext sorgt dafür, dass Zeilenumbrüche ignoriert werden. Für ein sauberes Layout untereinander muss dieser Haken raus.
Die funktionierende Lösung (Die "2-Felder-Strategie"):
Man benötigt zwei getrennte Zeilen in der Tabelle. Eine rechnet (ohne Sonderzeichen), die andere übersetzt.
Schritt 1: Die Berechnung (Zeile 4)
Art: Score nicht editierbar
Variablenname: bewertung
Nachkommastellen: 0
Vorauswahl:
FUNCTION('$[quotient]$', 'ifGreaterAs:yes:no:', '300', '3', FUNCTION('$[quotient]$', 'ifGreaterAs:yes:no:', '29.99', '2', '1'))
(Hinweis: Wir nutzen hier den Textbefehl 'ifGreaterAs', um das > Zeichen zu vermeiden. Laut Leitlinie ist A3 erst >300, daher ist die Grenze hier so gewählt.)
Schritt 2: Die Text-Übersetzung (Zeile 5)
Art: Text zusammengesetzt v2
Variablenname: text_bewertung
Vorauswahl:
$[if "$[bewertung]$" "1" 'normoalbuminurisch (A1)' "2" 'moderate Albuminurie (A2)' "3" 'schwere Albuminurie (A3)']$
(Wichtig: Wir nutzen eine exakte Zuordnung ("1" ist Text A), um mathematische Vergleiche mit < oder > im Textfeld komplett zu vermeiden. Variable in doppelten Anführungszeichen, Ausgabetext in einfachen.)
Schritt 3: Der Karteitext
Haken bei "autom. generieren" entfernen.
Inhalt (nur Platzhalter, um doppelte Beschriftungen zu vermeiden):
$[Albumin]$
$[Kreatinin]$
$[quotient]$
Bewertung: $[text_bewertung]$
KI-Prompt für andere Nutzer:
Wer sich von einer KI (wie ChatGPT oder Google Gemini) bei der Erstellung anderer Scores helfen lassen will, kann folgenden Prompt nutzen. Er beinhaltet bereits alle oben genannten technischen Restriktionen, damit die KI funktionierenden Code liefert.
--- PROMPT START ---
Du agierst als Experte für die Konfiguration von "Custom Karteieinträgen" (CKE) in der Praxissoftware Tomedo. Ich möchte einen medizinischen Score erstellen, der eine Berechnung durchführt und basierend auf dem Ergebnis einen Textstatus ausgibt.
Beachte bei der Generierung der Lösung zwingend folgende technische Restriktionen:
Feld-Typ "Score":
Darf NIEMALS Text ausgeben (führt sonst zur Ausgabe "0").
Ist der einzige Ort, wo der Befehl "FUNCTION" zuverlässig funktioniert.
Muss für alle numerischen Berechnungen genutzt werden.
Vermeidung von Sonderzeichen:
Verwende in Formeln NIEMALS die Zeichen < oder >, da diese oft als HTML-Tags missverstanden werden oder die Syntax brechen.
Nutze stattdessen in Score-Feldern die Tomedo-Befehle ifGreaterAs oder ifSmallerAs.
Vermeide in Text-Feldern mathematische Vergleiche komplett und nutze stattdessen exakte Zeichenketten-Abgleiche (siehe Punkt 4).
Feld-Typ "Text zusammengesetzt v2":
Syntax-Regel für Text-Vergleiche:
Um das Ergebnis aus dem Score-Feld in Text umzuwandeln, nutze zwingend diese "Switch"-Syntax: $[if "$[variablenname]$" "Wert1" 'Ausgabetext 1' "Wert2" 'Ausgabetext 2']$
Beachte die doppelten Anführungszeichen um die Variable und die einfachen Anführungszeichen um den Ausgabetext.
Layout im Karteitext:
Meine Aufgabe für dich:
Erstelle mir unter strikter Einhaltung der "2-Felder-Strategie" (Trennung von Berechnung und Textausgabe) und ohne Verwendung von </> Zeichen die Konfiguration für folgenden Score: [HIER DEIN WUNSCH-SCORE EINFÜGEN]
--- PROMPT ENDE ---