Inhalt  1. Datenbanken entwickeln  2. Die Struktur von PNAT  3. Die Startseite von PNAT

4. Die Datenbankmasken - Übersicht  5. Die einzelnen Dateien  6. Der "Parser"

Der Parser interpretiert Anweisungen in Dokumentvorlagen (*.dot)

(ab Version 1.2)

Übersicht  Syntax  Löschanweisung  Bedingungen  Zuweisungen
 Feldausgabe  Textausgabe  Generierte Variable  Spezielle Anweisungen

 Übersicht

Briefinhalte können direkt von einem Programm aus gesteuert werden. Fest programmierte Texte lassen sich von einem Anwender aber nicht verändern. Flexibler läßt sich eine Ausgabe gestalten, wenn ein Text eingelesen wird, der Platzhalter oder Anweisungen enthält, die von einem Programm interpretiert werden können. Diese Aufgabe nimmt ein "Programm im Programm" - der Parser - wahr. Mit PNAT kann sich der Benutzer eine beliebige Anzahl solcher Druckvorlagen selbst zusammenstellen.

Eine Druckvorlage ist eine Word-Datei (*.dot), die "normalen" Text enthält, aber auch eingescannte Briefköpfe oder Logos. Teile des Briefes, die für individuelle Datensätze unterschiedlich ausgegeben werden sollen, werden durch sog. "Platzhalter" markiert. Zum Ausdrucken z.B. eines Briefes wird die in Optionen eingestellte Druckvorlage (*.dot) gelesen. Anweisungen in dieser Vorlage werden anhand der aktuellen Datensätze umgewandelt.

Eine Anweisung wird durch ^ und ~ begrenzt .

Durch solche Anweisungen können z.B. Feldwerte ausgegeben werden:

wird zu

Die Ausgabe von Feldwerten kann von Bedingungen abhängig gemacht werden:

Der Text zwischen "T" und "~" wird nur ausgegeben, wenn im Feld AChE der Wert "-9" steht.

Mit "internen" Variablen kann gerechnet werden

Die Grundrechenarten können verwendet werden. Bei Datums - Variablen kann auch die Differenz in Tagen oder Wochen berechnet werden. Das Ergebnis einer solchen Operation steht in der Zahlvariable mit dem gleichen Index wie das erste Datum.

Diese Anweisung wird in der Ausgabe vollständig gelöscht. Wenn später im Text die Zeile steht

so wird statt "^F Z2~"  die vorher berechnete Zahl für die SSW ausgegeben - natürlich nur dann ganz korrekt, wenn Punktionsdatum = Ankunftsdatum.

Beim Öffnen einer Dokumentvorlage sind die Textvariablen T0..9 leer. Z0..9 haben den Wert 0; die Datumsvariablen D0..9 sind mit dem aktuellen Datum initialisiert.

 Anfang


 

Generelle Syntax: 
 

[^L a | s ]  

[^G| ^g {Globale Bedingung}  

     [^G| ^g {Globale Bedingung} [...] ] ]  

[^Z {Zuweisung}  

     [^Z {Zuweisung} [...] ] ]  

[^B | ^b {Bedingung}]  

^F {Feldname} | ^Z {Zuweisung} | ^T {freier Text}  

     [^B | ^b {Bedingung}  

^F {Feldname} | ^Z {Zuweisung} | ^T {freier Text} [...]]  

~


 

Jede Anweisung besteht mindestens aus dem

Die Formatierung (Schriftart, fett, kursiv etc.) richtet sich nach dem Format des ersten Buchstabens der Anweisung.

Die (spezielle) Löschanweisung steht am Anfang. Es folgen beliebig viele globale Bedingungen, die durch "UND" verknüpft werden. Hinter globalen Bedingungen können beliebig viele Zuweisungen stehen.

Hinter der (einfachen, optionalen) Bedingung steht entweder eine Feldausgabe F, eine Zuweisung Z oder eine Textausgabe T. Nach "T" oder "F" wird die Auswertung beendet, wenn eine Bedingung erfüllt war, oder keine einfache Bedingung angegeben worden ist. Nach "Z" nur, wenn eine einfache Bedingung erfüllt war.

Beliebig viele Bedingungen – verknüpft mit F, Z oder T – können hintereinander folgen.

 Anfang


 

Die Löschanweisung L 

Alles, was zwischen ^ und ~ steht, wird immer gelöscht; es sei denn, die Anweisung enthält einen Fehler.

Syntax

L a | s

^L s     Löscht den ganzen Satz, wenn ein Feldwert leer ist.

^L a     Löscht den ganzen Absatz, wenn ein Feldwert leer ist.

Beispiel:

 Anfang


 

Die Bedingungen G, g, B, b 

G,B:     Die nächste Anweisung wird nur ausgeführt, wenn die Bedingung wahr ist.

g, b:     Die nächste Anweisung wird nur ausgeführt, wenn die Bedingung falsch ist.

Syntax:

Variable     Feldwerte oder interne Variable

Operator      > <   <>  =  >=  <=   in (bei Text )

Wert             Feldwerte, interne Variable, literaler Wert. Literale Werte müssen in "" stehen.

Beispiel:

 Anfang


 

Die Zuweisung Z 

Den internen Variablen T0 bis T9 (Text), Z0 bis Z9 (Zahl) und D0 bis D9 (Datum) können Werte zugewiesen werden. Sie können ebenso wie Felder der Datenbank ausgegeben werden.

Syntax

Operator:
 
Für Zahlen (Z0 bis Z9)   =,+, - , /, *
Für Texte (T0 bis T9)  =, +
Für Datumsvariable(D0 bis D9) =,  w  (Differenz in Wochen),  d (Differenz in Tagen).
Das Ergebnis einer Operation steht in der ersten angegebenen Variablen; das einer Operation w oder d in der Zahlenvariablen mit dem gleichen Index (s.o.)

Wert             Feldwert, interne Variable, literaler Wert.     Literale Werte müssen in "" stehen.

Beispiel:

Wird ein Datum einer Datumsvariablen zugewiesen, so muß das Datum 10-stellig sein ("01.01.1999"). Literale Werte müssen in "" stehen.

 Anfang


 

Die Feldausgabe F: 

Jedes Feld der Datenbank, jede interne Variable (s.o.), sowie die automatisch generierten Parameter (s.u.) können ausgegeben werden.

Syntax:
 

Beispiel:

 Anfang


 

Die Textausgabe T 

Diese Ausgabe macht nur Sinn nach einer  Bedingung. Der Text darf nicht von "" begrenzt werden.

Beispiel:

  Anfang


 

Die automatisch generierten Parameter A0..9 und P0..9 
Diese "Texte" könnten auch anhand der obigen Anweisungen zusammengestellt werden; wesentlich einfacher ist es aber, auf die entsprechenden Variablen zuzugreifen.

 

Arztbrief
 

Briefanschrift Arzt1 A1  
Ärzte nachrichtlich horizontal A0  
Ärzte nachrichtlich vertikal A3  
Patient nachrichtlich A8  
Anrede Arzt im Arztbrief A2 Sehr geehrter Herr Kollege / Professor XY
Ihr/e Patient/in A9  
Ihres/r Patienten/in P3  
Herr/Frau P1  
Herrn/Frau P2  
 

Patientenbrief

 
Briefanschrift Patient A6  
Anrede Pat. A7 Sehr geehrte Frau Maier
Arztbezeichnung Arzt1 A4 Herr Professor Maier, Herr Doktor Maier
Arztbezeichnung Arzt1 A5 Herrn Professor Maier, Herrn Doktor Maier
Arztbezeichnung Arzt2 P4 Herr ...
Arztbezeichnung Arzt2 P5 Herrn ...
Arztbezeichnung Arzt3 P6 Herr ...
Arztbezeichnung Arzt3 P7 Herrn ...
Arztbezeichnung Arzt4 P8 Herr ...
Arztbezeichnung Arzt4 P9 Herrn ...
 Anfang

 

Die Sonderfunktionen M und X 

M     Der im Arztbrief direkt angeschriebene Arzt wird im Patientenbrief nicht erwähnt. Der Inhalt der Paare A4/5 bis P8/9 wird "nach oben" geschoben

Beispiel:

X    Betrifft nur Tabellen. Ist ein Feldwert in einer Tabelle leer, wird die ganze Zeile gelöscht.  Durch X wird diese Funktion aus- bzw. eingeschaltet. Dieser "Schalter" steht am Beginn einer Vorlage auf "ein".
 

Ergebnisse
Untersuchung Ergebnis Einheit
AFP ^F AFP~ µg / ml
Acetylcholinesterase ^F T1~
ABC ^F XYZ~ %

Ist in der Datenbank kein Wert für AFP angegeben, wird die ganze Zeile mit "AFP" aus der Tabelle entfernt. Die Angabe von ^X~ vor der Tabelle verhindert das.

Beispiel:



 Seitenanfang