| 1 | LRLABELD ;DALOI/JMC - ZEBRA STRIPE 1X2 label printer ; 6/4/98
|
---|
| 2 | ;;5.2;LAB SERVICE;**218**;Sep 27, 1994
|
---|
| 3 | ;
|
---|
| 4 | EN ; Print 1x2 label formats
|
---|
| 5 | ;
|
---|
| 6 | N ETX,LRFONT,LRFMT,LRTXT,LRX,LRZ,STX
|
---|
| 7 | ;
|
---|
| 8 | S LRRB=$G(LRRB)
|
---|
| 9 | ;
|
---|
| 10 | ; Set specific symbology.
|
---|
| 11 | S LRFMT=+$G(LRBAR(+$G(LRAA)))
|
---|
| 12 | ;
|
---|
| 13 | ; Set up list of tests
|
---|
| 14 | S LRTXT=$$LRTXT^LRLABLD(.LRTS,30)
|
---|
| 15 | ;
|
---|
| 16 | D LH
|
---|
| 17 | ;
|
---|
| 18 | I 'LRFMT D NOBAR Q
|
---|
| 19 | I LRFMT=1 D BAR1 Q
|
---|
| 20 | I LRFMT>1 D BAR2
|
---|
| 21 | Q
|
---|
| 22 | ;
|
---|
| 23 | NOBAR ; Print Lab 25mm X 50mm (1 X 2) labels.
|
---|
| 24 | ; Plain label, no barcode identifier.
|
---|
| 25 | ; Label length = 200 dots (8 dots/mm printhead).
|
---|
| 26 | ;
|
---|
| 27 | W STX
|
---|
| 28 | S LRFONT="^ADN,36,10"
|
---|
| 29 | ;
|
---|
| 30 | ; Print accession.
|
---|
| 31 | D PL(0,5,LRACC,LRFONT)
|
---|
| 32 | D FONT
|
---|
| 33 | ;
|
---|
| 34 | ; Print accession date.
|
---|
| 35 | D PL(0,40,LRDAT,LRFONT)
|
---|
| 36 | ;
|
---|
| 37 | ; Print collection sample.
|
---|
| 38 | I LRXL,N-I<LRXL S LRZ=LRTOP
|
---|
| 39 | E S LRZ=LRPREF_LRTOP
|
---|
| 40 | D PL(0,60,$E(LRZ,1,17),LRFONT)
|
---|
| 41 | ;
|
---|
| 42 | ; Accession urgency
|
---|
| 43 | I $P(LRURGA,"^",2) D
|
---|
| 44 | . S LRFONT="^ADN,36,10"
|
---|
| 45 | . I $P(LRURGA,"^",2)=2 D
|
---|
| 46 | . . ; Set up graphic box.
|
---|
| 47 | . . D GB(285,40,15+($L($P(LRURGA,"^"))*12)_",35,35")
|
---|
| 48 | . . S LRFONT=LRFONT_"^FR" ; Field reverse.
|
---|
| 49 | . D PL(295,45,$P(LRURGA,"^"),LRFONT)
|
---|
| 50 | . D FONT
|
---|
| 51 | ;
|
---|
| 52 | ; Patient name
|
---|
| 53 | S LRFONT="^ADN,36,10"
|
---|
| 54 | D PL(40,80,$E(PNM,1,21),LRFONT),FONT
|
---|
| 55 | ;
|
---|
| 56 | ; Print patient identifier.
|
---|
| 57 | D PL(40,115,SSN,LRFONT)
|
---|
| 58 | ;
|
---|
| 59 | ; Print order number.
|
---|
| 60 | D PL(0,143,"Order #"_LRCE,LRFONT)
|
---|
| 61 | ;
|
---|
| 62 | ; Patient location/room-bed number
|
---|
| 63 | D PL(200,143,"W:"_LRLLOC_$S($L(LRRB):" B:"_LRRB,1:""),LRFONT)
|
---|
| 64 | ;
|
---|
| 65 | ; Print test list
|
---|
| 66 | S LRFONT="^ADN,36,10"
|
---|
| 67 | D PL(0,161,LRTXT,LRFONT)
|
---|
| 68 | D FONT
|
---|
| 69 | ;
|
---|
| 70 | W ETX
|
---|
| 71 | Q
|
---|
| 72 | ;
|
---|
| 73 | BAR1 ; Print Lab 25mm X 50mm (1 X 2) labels.
|
---|
| 74 | ; Barcode identifier - use Code 39 with check-digit.
|
---|
| 75 | ; Label length = 200 dots (8 dots/mm printhead).
|
---|
| 76 | ;
|
---|
| 77 | W STX
|
---|
| 78 | S LRFONT="^ADN,36,10"
|
---|
| 79 | ;
|
---|
| 80 | ; Patient name
|
---|
| 81 | D PL(75,5,$E(PNM,1,18),LRFONT)
|
---|
| 82 | D FONT
|
---|
| 83 | ;
|
---|
| 84 | ; Accession urgency
|
---|
| 85 | I $P(LRURGA,"^",2) D
|
---|
| 86 | . S LRFONT="^ADN,36,10"
|
---|
| 87 | . ; Set up graphic box.
|
---|
| 88 | . I $P(LRURGA,"^",2)=2 D
|
---|
| 89 | . . D GB(295,0,15+($L($P(LRURGA,"^"))*12)_",35,35")
|
---|
| 90 | . . S LRFONT=LRFONT_"^FR" ; Field reverse.
|
---|
| 91 | . D PL(305,5,$P(LRURGA,"^"),LRFONT)
|
---|
| 92 | . D FONT
|
---|
| 93 | ;
|
---|
| 94 | ; Print patient identifier.
|
---|
| 95 | D PL(75,40,SSN,LRFONT)
|
---|
| 96 | ;
|
---|
| 97 | ; Patient location/room-bed number
|
---|
| 98 | D PL(230,40,$S($L(LRRB):"B:"_LRRB,1:"W:"_LRLLOC),LRFONT)
|
---|
| 99 | ;
|
---|
| 100 | ; Print barcode.
|
---|
| 101 | S LRX=$S($L(LRBARID)<7:75,$L(LRBARID)>10:80,1:85)
|
---|
| 102 | S LRFONT="^BY2,"_$S($L(LRBARID)<7:3,1:2)_",60^"
|
---|
| 103 | S LRFONT=LRFONT_"B3N,Y,,N,N"
|
---|
| 104 | D PL(LRX,60,LRBARID,LRFONT)
|
---|
| 105 | ;
|
---|
| 106 | ; Print order number.
|
---|
| 107 | D FONT
|
---|
| 108 | D PL(75,125,"Order #"_LRCE,LRFONT)
|
---|
| 109 | ;
|
---|
| 110 | ; Print collection sample.
|
---|
| 111 | I LRXL,N-I<LRXL S LRZ=LRTOP
|
---|
| 112 | E S LRZ=LRPREF_LRTOP
|
---|
| 113 | D PL(75,143,$E(LRZ,1,16),LRFONT)
|
---|
| 114 | ;
|
---|
| 115 | ; Print test list
|
---|
| 116 | S LRFONT="^ADN,36,10"
|
---|
| 117 | D PL(75,161,LRTXT,LRFONT)
|
---|
| 118 | ;
|
---|
| 119 | ; Print accession.
|
---|
| 120 | D FONT S LRFONT="^ADN,36,10^FWB"
|
---|
| 121 | D PL(0,0,$$CJ^XLFSTR(LRACC,16),LRFONT)
|
---|
| 122 | ;
|
---|
| 123 | ; Print accession date.
|
---|
| 124 | D FONT S LRFONT=LRFONT_"^FWB"
|
---|
| 125 | D PL(40,0,$$CJ^XLFSTR(LRDAT,16),LRFONT)
|
---|
| 126 | ;
|
---|
| 127 | W ETX
|
---|
| 128 | Q
|
---|
| 129 | ;
|
---|
| 130 | BAR2 ; Print Lab 25mm X 50mm (1 X 2) labels.
|
---|
| 131 | ; Barcode identifier using specified symbology for accession area.
|
---|
| 132 | ; Label length = 200 dots (8 dots/mm printhead).
|
---|
| 133 | ;
|
---|
| 134 | W STX
|
---|
| 135 | S LRFONT="^ADN,36,10"
|
---|
| 136 | ;
|
---|
| 137 | ; Patient name
|
---|
| 138 | D PL(0,5,$E(PNM,1,22),LRFONT),FONT
|
---|
| 139 | ;
|
---|
| 140 | ; Accession urgency
|
---|
| 141 | I $P(LRURGA,"^",2) D
|
---|
| 142 | . S LRFONT="^ADN,36,10"
|
---|
| 143 | . ; Set up graphic box.
|
---|
| 144 | . I $P(LRURGA,"^",2)=2 D
|
---|
| 145 | . . D GB(275,0,15+($L($P(LRURGA,"^"))*12)_",35,35")
|
---|
| 146 | . . S LRFONT=LRFONT_"^FR" ; Field reverse.
|
---|
| 147 | . D PL(285,5,$P(LRURGA,"^"),LRFONT),FONT
|
---|
| 148 | ;
|
---|
| 149 | ; Print patient identifier.
|
---|
| 150 | D PL(0,40,SSN,LRFONT)
|
---|
| 151 | ;
|
---|
| 152 | ; Patient location/room-bed number
|
---|
| 153 | D PL(150,40,"W:"_LRLLOC_$S($L(LRRB):"/"_LRRB,1:""),LRFONT)
|
---|
| 154 | ;
|
---|
| 155 | ; Print barcode.
|
---|
| 156 | S LRX=$S($L(LRBARID)<7:75,LRFMT=4:35,1:20)
|
---|
| 157 | S LRFONT="^BY"_$S($L(LRBARID)>10:1,1:2)_","_$S($L(LRBARID)<7:3,1:2)_",60^"
|
---|
| 158 | S LRFONT=LRFONT_$S(LRFMT=2:"B3N,N,,N,N",LRFMT=3:"B3N,Y,,N,N",LRFMT=4:"BCN,,N,N",LRFMT=5:"B4N,,N,A",1:"BCN,,N,N")
|
---|
| 159 | D PL(LRX,60,LRBARID,LRFONT),FONT
|
---|
| 160 | ;
|
---|
| 161 | ; Print human-readable ID.
|
---|
| 162 | D PL(0,125,LRBARID,LRFONT)
|
---|
| 163 | ;
|
---|
| 164 | ; Print infection warning if present.
|
---|
| 165 | I $L(LRINFW) D
|
---|
| 166 | . D GB(135,123,10+($L(LRINFW)*12)_",16,16") ; make box
|
---|
| 167 | . S LRFONT=LRFONT_"^FR"
|
---|
| 168 | . D PL(140,124,LRINFW,LRFONT)
|
---|
| 169 | ;
|
---|
| 170 | ; Print accession date.
|
---|
| 171 | D PL(0,143,$P(LRDAT," "),LRFONT)
|
---|
| 172 | ;
|
---|
| 173 | ; Print accession.
|
---|
| 174 | D PL(120,143,LRACC,LRFONT)
|
---|
| 175 | ;
|
---|
| 176 | ; Print order number.
|
---|
| 177 | D PL(0,161,"Order #"_LRCE,LRFONT)
|
---|
| 178 | ;
|
---|
| 179 | ; Print collection sample.
|
---|
| 180 | I LRXL,N-I<LRXL S LRZ=LRTOP
|
---|
| 181 | E S LRZ=LRPREF_LRTOP
|
---|
| 182 | D PL(180,161,$E(LRZ,1,16),LRFONT)
|
---|
| 183 | ;
|
---|
| 184 | ; Print test list
|
---|
| 185 | D PL(0,179,LRTXT,LRFONT)
|
---|
| 186 | ;
|
---|
| 187 | W ETX
|
---|
| 188 | ;
|
---|
| 189 | Q
|
---|
| 190 | ;
|
---|
| 191 | ;
|
---|
| 192 | PL(LRX,LRY,LRZ,LRFONT) ; Send print command to printer.
|
---|
| 193 | ; Call with LRX = column position (in dots).
|
---|
| 194 | ; LRY = row position (in dots).
|
---|
| 195 | ; LRZ = text to print.
|
---|
| 196 | ; LRFONT = font to use.
|
---|
| 197 | ;
|
---|
| 198 | W "^FO",+$G(LRX),",",+$G(LRY),$G(LRFONT),"^FD",$G(LRZ),"^FS"
|
---|
| 199 | Q
|
---|
| 200 | ;
|
---|
| 201 | ;
|
---|
| 202 | GB(LRGBX,LRGBY,LRGBZ) ; Send print command to printer for graphic box.
|
---|
| 203 | ; Call with LRGBX = column position (in dots).
|
---|
| 204 | ; LRGBY = row position (in dots).
|
---|
| 205 | ; LRGBZ = graphic box to print.
|
---|
| 206 | ;
|
---|
| 207 | W "^FO",+$G(LRGBX),",",+$G(LRGBY),"^GB",$G(LRGBZ),"^FS"
|
---|
| 208 | Q
|
---|
| 209 | ;
|
---|
| 210 | ;
|
---|
| 211 | LH ; Set Label Home ("LH") parameters.
|
---|
| 212 | ;
|
---|
| 213 | S STX=$C(2),ETX=$C(3)
|
---|
| 214 | ;
|
---|
| 215 | ; Set Print Orientation ("PO") to Inverted and Label Home ("LH") parameters.
|
---|
| 216 | W STX,"^POI^LH450,0",ETX
|
---|
| 217 | ;
|
---|
| 218 | FONT ; Default font
|
---|
| 219 | S LRFONT="^ADN"
|
---|
| 220 | Q
|
---|