336 lines
5.8 KiB
PostScript
336 lines
5.8 KiB
PostScript
%!PS
|
|
% vim: ts=4 sw=4:
|
|
%%%%%%%%%%%%%%%%% CUSTOMISATION BEGIN %%%%%%%%%%%%%%%%%
|
|
% Rp1, Rp2 and Rp3 sind die Verordnungen
|
|
% string für einzeilige Verordnung, array für mehrzeilige Verordnung (bis zu drei Zeilen), false für durchstreichen
|
|
% alle anderen werte werden ignoriert
|
|
% RpXAutIdem auf false setzen um das entsprechende Feld anzukreuzen
|
|
|
|
<<
|
|
/Krankenkasse (Krankenkasse)
|
|
/Name (Nachname)
|
|
/Vorname (Vorname Zweitname)
|
|
/Adresse1 (Strasse 1312)
|
|
/Adresse2 (D 12345 Stadt)
|
|
/GebAm (01.01.1970)
|
|
/Kostentraegerkennung (123456789)
|
|
/VersichertenNr (Z123456789)
|
|
/Status (XYZ)
|
|
/BetriebsstaettenNr (234567)
|
|
/ArztNr (654321)
|
|
/Datum (01.01.1970)
|
|
/Rp1 [(Eine Zeile)]
|
|
/Rp1AutIdem false
|
|
/Rp2 [(Zwei) (Zeilen)]
|
|
/Rp2AutIdem true
|
|
/Rp3 [(Und) (Drei) (Zeilen)]
|
|
/Rp3AutIdem false
|
|
|
|
/Font /Courier
|
|
/FontSize 10
|
|
/FontSize1Line 10 % used for 1-line medications
|
|
/FontSize2Line 8 % used for 2-line medications
|
|
/FontSize3Line 6 % used for 3-line medications
|
|
>> begin
|
|
%%%%%%%%%%%%%%%%%% CUSTOMISATION END %%%%%%%%%%%%%%%%%%
|
|
|
|
|
|
|
|
|
|
|
|
% convert cm to points
|
|
/cm % number -> number
|
|
{
|
|
72 mul
|
|
2.54 div
|
|
} bind def
|
|
|
|
% concatenate two strings
|
|
/concat % string string -> string
|
|
{
|
|
exch dup length
|
|
2 index length add string
|
|
dup dup 4 2 roll copy length
|
|
4 -1 roll putinterval
|
|
} bind def
|
|
|
|
% load the elements of an array variable into the stack
|
|
/loadarr % name -> any...
|
|
{
|
|
load % load the array onto the stack
|
|
aload % load array elements onto the stack
|
|
pop % remove array itself from stack
|
|
} bind def
|
|
|
|
% calculate the height of a text, with the current font
|
|
/textheight % text -> real
|
|
{
|
|
0 0 moveto
|
|
true charpath pathbbox
|
|
exch pop
|
|
exch sub
|
|
exch pop
|
|
} bind def
|
|
|
|
/setfontsize
|
|
{
|
|
/Font load
|
|
exch
|
|
selectfont
|
|
} bind def
|
|
|
|
|
|
<<
|
|
/PageWidth 14.8 cm
|
|
/PageHeight 10.5 cm
|
|
/PosKrankenkasse [1.0 cm 9.2 cm]
|
|
/PosName [1.0 cm 8.5 cm]
|
|
/PosVorname [1.0 cm 8.0 cm]
|
|
/PosAdresse1 [1.0 cm 7.6 cm]
|
|
/PosAdresse2 [1.0 cm 7.2 cm]
|
|
/PosGebAm [6.7 cm 7.7 cm]
|
|
/PosKostentraegerkennung [1.0 cm 6.3 cm]
|
|
/PosVersichertenNr [4 cm 6.3 cm]
|
|
/PosStatus [7.2 cm 6.3 cm]
|
|
/PosBetriebsstaettenNr [1.0 cm 5.4 cm]
|
|
/PosArztNr [3.9 cm 5.4 cm]
|
|
/PosDatum [6.7 cm 5.4 cm]
|
|
/FieldRp1 [1.0 cm 4.0 cm 7.7 cm 0.8 cm]
|
|
/PosAutIdemRp1 [0.4 cm 4.2 cm]
|
|
/FieldRp2 [1.0 cm 3.15 cm 7.7 cm 0.8 cm]
|
|
/PosAutIdemRp2 [0.4 cm 3.35 cm]
|
|
/FieldRp3 [1.0 cm 2.3 cm 7.7 cm 0.8 cm]
|
|
/PosAutIdemRp3 [0.4 cm 2.5 cm]
|
|
|
|
/SimpleFields [(Krankenkasse) (Name) (Vorname) (Adresse1) (Adresse2) (GebAm) (Kostentraegerkennung) (VersichertenNr) (Status) (BetriebsstaettenNr) (ArztNr) (Datum)]
|
|
/RpFields [(Rp1) (Rp2) (Rp3)]
|
|
>> begin
|
|
|
|
|
|
|
|
<<
|
|
/PageSize [/PageWidth load /PageHeight load]
|
|
/PageOffset [0 0]
|
|
/Margins [0 0]
|
|
>> setpagedevice
|
|
|
|
/FontSize load setfontsize
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
|
/SimpleFields load
|
|
{
|
|
dup
|
|
(Pos) exch concat cvn
|
|
loadarr
|
|
moveto
|
|
cvn
|
|
load
|
|
show
|
|
} forall
|
|
|
|
|
|
/rpField1Line
|
|
{
|
|
/FontSize1Line load setfontsize
|
|
|
|
<<
|
|
/boundingBox []
|
|
/text ()
|
|
>> begin
|
|
/text exch store
|
|
/boundingBox exch store
|
|
|
|
/boundingBox load 0 get
|
|
/boundingBox load 1 get
|
|
/boundingBox load 3 get
|
|
/text load textheight
|
|
sub
|
|
2 div
|
|
add
|
|
moveto
|
|
/text load
|
|
show
|
|
|
|
end
|
|
/FontSize load setfontsize
|
|
} bind def
|
|
|
|
/rpField2Line
|
|
{
|
|
/FontSize2Line load setfontsize
|
|
|
|
<<
|
|
/boundingBox []
|
|
/text1 ()
|
|
/text2 ()
|
|
/padding 0
|
|
>> begin
|
|
/text2 exch store
|
|
/text1 exch store
|
|
/boundingBox exch store
|
|
|
|
/padding
|
|
/boundingBox load 3 get
|
|
/text1 load textheight
|
|
/text2 load textheight
|
|
add
|
|
sub
|
|
3 div
|
|
store
|
|
|
|
|
|
/boundingBox load 0 get
|
|
/boundingBox load 1 get
|
|
/padding load 2 mul
|
|
/text2 load textheight
|
|
add add
|
|
moveto
|
|
/text1 load
|
|
show
|
|
|
|
/boundingBox load 0 get
|
|
/boundingBox load 1 get
|
|
/padding load
|
|
add
|
|
moveto
|
|
/text2 load
|
|
show
|
|
end
|
|
/FontSize load setfontsize
|
|
} bind def
|
|
|
|
/rpField3Line
|
|
{
|
|
/FontSize3Line load setfontsize
|
|
|
|
<<
|
|
/boundingBox []
|
|
/text1 ()
|
|
/text2 ()
|
|
/text3 ()
|
|
/padding 0
|
|
>> begin
|
|
|
|
/text3 exch store
|
|
/text2 exch store
|
|
/text1 exch store
|
|
/boundingBox exch store
|
|
|
|
/padding
|
|
/boundingBox load 3 get
|
|
/text1 load textheight
|
|
/text2 load textheight
|
|
/text3 load textheight
|
|
add add
|
|
sub
|
|
4 div
|
|
store
|
|
|
|
/boundingBox load 0 get
|
|
/boundingBox load 1 get
|
|
/padding load 3 mul
|
|
/text3 load textheight
|
|
/text2 load textheight
|
|
add add add
|
|
moveto
|
|
/text1 load
|
|
show
|
|
|
|
|
|
/boundingBox load 0 get
|
|
/boundingBox load 1 get
|
|
/padding load 2 mul
|
|
/text3 load textheight
|
|
add add
|
|
moveto
|
|
/text2 load
|
|
show
|
|
|
|
/boundingBox load 0 get
|
|
/boundingBox load 1 get
|
|
/padding load
|
|
add
|
|
moveto
|
|
/text3 load
|
|
show
|
|
end
|
|
|
|
/FontSize load setfontsize
|
|
} bind def
|
|
|
|
/RpFields load
|
|
{
|
|
<<
|
|
/boundingBox []
|
|
/autIdemPos []
|
|
/text ()
|
|
/autIdem false
|
|
>> begin
|
|
dup
|
|
(Field) exch concat cvn load
|
|
/boundingBox exch store
|
|
dup
|
|
(PosAutIdem) exch concat cvn load
|
|
/autIdemPos exch store
|
|
dup
|
|
cvn load
|
|
/text exch store
|
|
dup
|
|
(AutIdem) concat cvn load
|
|
/autIdem exch store
|
|
|
|
/text load type
|
|
/stringtype eq
|
|
{ % text is string
|
|
/boundingBox load
|
|
/text load
|
|
rpField1Line
|
|
}
|
|
{ % text is not string
|
|
/text load type
|
|
/arraytype eq
|
|
{ % text is array
|
|
/text load length
|
|
dup
|
|
1 eq { % length is 1
|
|
/boundingBox load
|
|
/text loadarr
|
|
rpField1Line
|
|
} if
|
|
dup
|
|
2 eq { % length is 2
|
|
/boundingBox load
|
|
/text loadarr
|
|
rpField2Line
|
|
} if
|
|
dup
|
|
3 eq { % length is 3
|
|
/boundingBox load
|
|
/text loadarr
|
|
rpField3Line
|
|
} if
|
|
pop
|
|
}
|
|
{ % text is not array
|
|
/text load
|
|
false eq {
|
|
/boundingBox load
|
|
(* * * * *)
|
|
rpField1Line
|
|
} if
|
|
} ifelse
|
|
} ifelse
|
|
|
|
/autIdem load not
|
|
{
|
|
/autIdemPos loadarr
|
|
moveto
|
|
(x) show
|
|
} if
|
|
end
|
|
} forall
|
|
|
|
|
|
showpage
|