Makros sind Platzhalter, die beim Drucken oder beim Erzeugen eines Dokuments durch echte Daten ersetzt werden – PatName wird zum Namen des Patienten, OrdDatum zum Ordinationsdatum.

Diese Seite beschreibt, wie Makros funktionieren. Die Namen der einzelnen Makros stehen auf den Unterseiten.


Makroliste

Bereich

Inhalt

Patient (Pat)

Name, Anrede, Geburtsdatum, Adresse, Versicherung, Kassen, Hausarzt, Vertrauenspersonen, Bankverbindung

Kartei (Kart)

Karteitext, Diagnosen, Medikamente, Laborbefund, Marker – die Makros mit den meisten Parametern

Adressen und Empfänger (Adr, Sel)

Empfängeradresse im Brief, Adressauswahl, Zuweiser, Dienstgeber

Arzt und Benutzer (Arzt, Usr)

Ordinationsstempel, Vertragspartnernummern, Bankdaten, angemeldeter Benutzer

Ordination (Ord)

Ordinationsdatum in allen Varianten, Ordinationszeiten

System (Sys)

Systemdatum und -zeit, Version – und die Steuermakros SysBedLeer und SysPicture

Labor (Lab, Lw, Lbm)

Laborparameter-Stammdaten, Laborwerte, Laborbefund-Verlauf, Laborbuch

Abrechnung und Finanzen

Honorarnote, Konto, Kassabuch, Kostenstellen, Positionen, Kassen, Krankenscheine, Kilometerliste

Medikamente und Hausapotheke

Medikamentenstammdaten, Verordnung, Lager, Lieferanten, Suchtgiftbuch

Weitere Bereiche

Impfplan, Warteliste, Arbeitsunfähigkeit, e‑Befund, Planungsmodul, Formulare, Listen, Kürzel


Schreibweise

Der Makroname allein

In Formular-, Listen- und Etikettendefinitionen wird der Makroname direkt als Feld eingesetzt. Dort sind keine Parameter möglich – es gilt immer der Standardwert.

Im Brief: in Doppelklammern

In Musterbriefen wird der Makroname in französische Anführungszeichen gesetzt:

«PatName»

Die Zeichen erzeugen Sie mit Alt + 0171 und Alt + 0187. Intern werden sie auf zwei spitze Klammern umgesetzt – beide Schreibweisen funktionieren gleichwertig:

<<PatName>>

Im internen Editor: als Feld

Im internen Editor (TxEdit) fügen Sie Makros nicht als Text ein, sondern über Feld einfügen. Der Editor bietet dort die verfügbaren Makronamen zur Auswahl an.


Parameter

Manche Makros nehmen Parameter entgegen. Der erste Parameter wird mit Doppelpunkt an den Makronamen angeschlossen, weitere Parameter mit Beistrich getrennt:

«KartBer:bef» ← 1 Parameter
«KartBer:bef,D» ← 2 Parameter
«KartBerRTF: ,D,fn=Arial;fs=10» ← 3 Parameter

Wird ein Parameter weggelassen, gilt der Standardwert.

Optionsparameter mit Schrägstrich

Viele Makros kennen zusätzlich Schalter, die mit / beginnen. Mehrere Schalter kommen in einen einzigen Parameter, ohne Beistrich dazwischen:

«KartLabBef:/T/N/D» ← richtig
«KartLabBef:/T,/N,/D» ← falsch (das wären drei Parameter)

Schalter sind unabhängig von Groß- und Kleinschreibung. Ein Rufzeichen nach dem Schrägstrich kehrt einen Schalter um: /D = Datum ausgeben, /!D = kein Datum.

Achtung Beistrich: Wo ein Parameter selbst eine Liste enthält, wird als Trennzeichen der Strichpunkt verwendet – der Beistrich ist ja schon für die Parametertrennung vergeben. Beispiel: «KartLabBef:/G:KBB;HAEM».


Text nur drucken, wenn Daten vorhanden sind

SysBedLeer gibt einen Textteil nur dann aus, wenn ein bestimmtes Makro nicht leer ist. Damit vermeiden Sie leere Zeilen und Überschriften ohne Inhalt.

Einzeilig, im Word-Musterbrief:

«SysBedLeer:«InpStatus»,Status: «InpStatus»»

Als Block, im internen Editor:

«SysBedLeer:AdrName»
… beliebiger Inhalt …
«SysBedEnd»

SysBedLeer kennt nur die Prüfung „nicht leer“ – es gibt keine Verneinung und keinen Sonst-Zweig. Ausführliche Beschreibung und Beispiele auf der Seite Makros – System (Sys).


Wenn, dann, sonst – und Rechnen

Alles, was im Formulardesigner als Ausdruck möglich ist, funktioniert auch im Brief. Der Ausdruck wird in die Zeichen <# und #> gesetzt; Makronamen stehen darin ohne Doppelklammern:

<#Cond(AdrName=="", PatAnschrift, AdrAnschrift)#>

Dieses Beispiel druckt die Adresse des Empfängers – und wenn kein Empfänger gewählt wurde, stattdessen die Adresse des Patienten. Also genau das, was SysBedLeer allein nicht kann.

Bitte beachten:

  • Ausdrücke brauchen das Modul MOD_FORMELEVAL. Fehlt es, liefert der Ausdruck kommentarlos den Text N/A.

  • Ausdrücke werden vor den Makros in Doppelklammern ausgewertet. Das Ergebnis eines Ausdrucks darf daher selbst wieder Makros enthalten.

  • Word ersetzt gerade Anführungszeichen durch typografische und macht den Ausdruck damit ungültig. Schreiben Sie den Ausdruck im Script-Editor – dort wird er sofort auf Syntax geprüft – und übertragen Sie ihn über die Zwischenablage.

  • Ausdrücke funktionieren im Word-Musterbrief, im Formulardesigner und in Listen – nicht als Feld im internen Editor. Dort führen Sie den Ausdruck im Script aus (siehe nächster Abschnitt).


Das Musterbrief-Script

Über den Script-Editor eines Musterbriefs definieren Sie eigene Felder. Damit lösen Sie zwei Dinge, die im Dokument selbst nicht gehen: parametrisierte Makros und Ausdrücke.

[Variablen]
VarAnzahl=3
Var1=InpLab,KartLabBef:/T/N
Var2=InpStatus,KartBerRetour:st
Var3=InpEmpf,#Cond(AdrName=="",PatAnschrift,AdrAnschrift)
 
[Befundblätter]
BefAnzahl=0
  • VarAnzahl muss der Anzahl der VarN-Zeilen entsprechen.

  • Aufbau einer Zeile: VarN=Feldname,Definition

  • Als Definition sind erlaubt: ein Makro (auch mit Parametern) oder – mit einem Rautezeichen am Beginn – ein Ausdruck.

  • Der Feldname wird anschließend im Dokument als Makro bzw. Feld verwendet: «InpLab»

Felder mit „Inp“ am Anfang

Feldnamen, die mit Inp beginnen, sind im Brief editierbar – der Anwender kann den eingefügten Text nachbearbeiten. Ist ein solches Feld leer, wird an der Stelle die Marke ^^ eingesetzt. In Word können Sie mit Suchen nach ^^^ (das Dach ist ein Steuerzeichen und muss verdoppelt werden) von Lücke zu Lücke springen; legen Sie sich das am besten als Word-Makro auf F6.

Mit KartBerRetour eingefügter Text kann außerdem in die Kartei zurückgeschrieben werden (nur interner Editor, nicht Word).


Bilder einfügen

«SysPicture:VID.JPG»

Bindet die angegebene Datei aus dem temporären Verzeichnis in das Dokument ein. Ohne Dateiendung wird .BMP angenommen. Verwendet wird das unter anderem für Video-Befunde, Audiometrie und Tympanometrie – die Liste der Musterbriefe steht auf der Seite Makros – System (Sys).

Für die digitale Unterschrift vom Signaturpad gibt es eigene Makros: «ArztSignaturImg» und «PatSignaturImg» fügen die Unterschrift als Bild ein.


Wo funktionieren welche Makros?

Nicht jedes Makro ist überall verfügbar – es hängt davon ab, welche Daten im jeweiligen Zusammenhang überhaupt bekannt sind.

Zusammenhang

Verfügbar

Musterbrief (Word)

Pat, Kart, Adr, Sel, Arzt, Usr, Ord, Sys, Kass, Schein, Au, Konto – dazu Ausdrücke und Script-Variablen

Musterbrief (interner Editor)

wie oben, aber ohne Ausdrücke; Kart*- und SelAdr*-Makros werden in der Feldauswahl nicht angeboten und müssen über das Script eingebunden werden

Formulardesigner

wie Musterbrief, jedoch ohne Parameter direkt im Formular – Parameter nur über das Script

Listen und Etiketten

zusätzlich die listenspezifischen Gruppen (HonNote, AbrList, RezList, KmLst, Kst, Opl, Ksb …), ebenfalls ohne Parameter

Serienbrief, Serienmail, Serien-SMS

Pat, Adr, Arzt, Sys, Ord

Wartelisten-Info und Karteikopf

Pat, Kart, Sys, Ord – hier sind aus Performancegründen nur wenige Makros sinnvoll


Häufige Stolpersteine

Symptom

Ursache und Abhilfe

Makro bleibt als Text stehen

Makroname falsch geschrieben oder in diesem Zusammenhang nicht verfügbar. Namen sind zwar nicht case-sensitiv, müssen aber exakt stimmen.

N/A im Dokument

Ein Ausdruck wurde nicht ausgewertet – das Modul MOD_FORMELEVAL fehlt.

>> not found!

Eine schließende Klammer fehlt.

Makro zu komplex!

Makros sind mehr als vier Ebenen tief verschachtelt.

Variable […] kann nicht interpretiert werden!

Im Script steht ein unbekannter Makroname, oder VarAnzahl passt nicht zur Anzahl der VarN-Zeilen.

Spalten verrutschen

Die spaltenweise formatierenden Makros (KartLabBef ohne /T, KartBer) rechnen mit einer Fixschrift. Textstelle auf Courier New stellen oder auf die Tabulator-Variante /T umstellen.

Laborbefund ohne Einheit

Der Schalter /K (Kompakt) kennt keine Einheit. Stattdessen /T oder die Standarddarstellung verwenden.

Ausdruck funktioniert in Word nicht

Word hat die Anführungszeichen ersetzt. Ausdruck im Script-Editor schreiben und einfügen.

Nur der erste Teil kommt an

Ein Beistrich im Bedingungsteil von SysBedLeer oder innerhalb eines Parameters – dort Strichpunkt verwenden.