| 1 | PSBOBL ;BIRMINGHAM/EFC-BAR CODE LABELS (ZEBRA SPECIFIC) ;Mar 2004 | 
|---|
| 2 | ;;3.0;BAR CODE MED ADMIN;;Mar 2004 | 
|---|
| 3 | ; | 
|---|
| 4 | ; Reference/IA | 
|---|
| 5 | ; File 50/221 | 
|---|
| 6 | ; | 
|---|
| 7 | EN ; | 
|---|
| 8 | N PSBIENS,PSBBAR,PSBDRUG,PSBQTY,PSBDOSE,PSBNAME,PSBWARD,PSBLOT | 
|---|
| 9 | N PSBEXP,PSBMFG,PSBFCB,PSBSYM,PSBCNT,PSBANS,PSBORD | 
|---|
| 10 | S PSBIENS=PSBRPT_"," | 
|---|
| 11 | S PSBBAR=$P($P($G(^PSB(53.69,PSBRPT,.3)),U,1),"~",2) | 
|---|
| 12 | ; | 
|---|
| 13 | S PSBPRE=$$GET^XPAR("DIV","PSB DEFAULT BARCODE PREFIX") | 
|---|
| 14 | S:PSBPRE]"" PSBBAR=PSBPRE_$S(PSBPRE?1.N:"-",1:"")_PSBBAR | 
|---|
| 15 | ; | 
|---|
| 16 | S PSBDRUG=$$GET1^DIQ(53.69,PSBIENS,.31) | 
|---|
| 17 | S PSBQTY=+$$GET1^DIQ(53.69,PSBIENS,.35) | 
|---|
| 18 | S:PSBQTY PSBDRUG=PSBDRUG_" (Qty: "_PSBQTY_")" | 
|---|
| 19 | S PSBDOSE=$$GET1^DIQ(53.69,PSBIENS,.39) | 
|---|
| 20 | S PSBNAME=$$GET1^DIQ(53.69,PSBIENS,.12) | 
|---|
| 21 | I PSBNAME]"" S PSBNAME=PSBNAME_" ("_$E($$GET1^DIQ(53.69,PSBIENS,.121),6,9)_")" | 
|---|
| 22 | S PSBWARD=$$GET1^DIQ(53.69,PSBIENS,.122) | 
|---|
| 23 | S PSBLOT=$$GET1^DIQ(53.69,PSBIENS,.32) | 
|---|
| 24 | S PSBEXP=$$GET1^DIQ(53.69,PSBIENS,.33) | 
|---|
| 25 | S PSBMFG=$$GET1^DIQ(53.69,PSBIENS,.34) | 
|---|
| 26 | S PSBFCB=$$GET1^DIQ(53.69,PSBIENS,.36)_"/"_$$GET1^DIQ(53.69,PSBIENS,.37) | 
|---|
| 27 | S PSBSYM=$$GET^XPAR("DIV","PSB DEFAULT BARCODE FORMAT",,"E") | 
|---|
| 28 | F PSBCNT=1:1:+$P(PSBRPT(.3),U,8) D LABEL | 
|---|
| 29 | Q | 
|---|
| 30 | ; | 
|---|
| 31 | LABEL ; Print the Label | 
|---|
| 32 | W "^XA" | 
|---|
| 33 | W !,"^LH0,0^FS" | 
|---|
| 34 | W $$DATA(20,25,"Drug:") | 
|---|
| 35 | W $$DATA(100,25,PSBDRUG) | 
|---|
| 36 | I PSBDOSE]"" W $$DATA(20,60,"Dosage:") W $$DATA(100,60,PSBDOSE) | 
|---|
| 37 | I PSBNAME]"" W $$DATA(350,60,PSBNAME) | 
|---|
| 38 | I PSBWARD]"" W $$DATA(350,90,"Ward:") W $$DATA(400,90,PSBWARD) | 
|---|
| 39 | I PSBLOT]"" W $$DATA(350,120,"Lot#:") W $$DATA(400,120,PSBLOT) | 
|---|
| 40 | I PSBEXP]"" W $$DATA(500,120,"Exp:") W $$DATA(550,120,PSBEXP) | 
|---|
| 41 | I PSBMFG]"" W $$DATA(350,150,"Mfg:") W $$DATA(400,150,PSBMFG) | 
|---|
| 42 | W $$DATA(350,180,"Filled/Checked By:") W $$DATA(520,180,PSBFCB) | 
|---|
| 43 | ; | 
|---|
| 44 | ; Code 39 | 
|---|
| 45 | I PSBSYM="C39" W !,"^BY2,3.0^FO20,100^B3N,N,80,Y,N^FR^FD"_PSBBAR_"^FS" | 
|---|
| 46 | ; | 
|---|
| 47 | ; Code 128 | 
|---|
| 48 | I PSBSYM="128" W !,"^BY2,3.0^FO20,100^BCN,80,Y,N,N^FR^FD>:"_PSBBAR_"^FS" | 
|---|
| 49 | ; | 
|---|
| 50 | ; Code I 2 of 5 | 
|---|
| 51 | I PSBSYM="I25" W !,"^BY2,3.0^FO20,100^B2N,80,Y,N,N^FR^FD"_PSBBAR_"^FS" | 
|---|
| 52 | ; | 
|---|
| 53 | I PSBSYM="" W $$DATA(20,100,"PSB DEFAULT BARCODE FORMAT Undefined.") | 
|---|
| 54 | ; | 
|---|
| 55 | ; Close Label | 
|---|
| 56 | W !,"^XZ",! | 
|---|
| 57 | H 2 | 
|---|
| 58 | Q | 
|---|
| 59 | ; | 
|---|
| 60 | DATA(X,Y,TEXT) ; Code to place the data on the label | 
|---|
| 61 | W !,"^FO"_X_","_Y_"^A0N,30,20^CI13^FR^FD"_TEXT_"^FS" | 
|---|
| 62 | Q "" | 
|---|
| 63 | ; | 
|---|
| 64 | INPTR ;Input transform for DRUG field (#.31) in file 53.69. | 
|---|
| 65 | K:$L(X)>40!($L(X)<1) X I $D(X) D | 
|---|
| 66 | .S X=$TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ") | 
|---|
| 67 | .N DIC S DIC="^PSDRUG(",DIC(0)="EQNM",D="B^C^VAPN^VAC^NDC^XATC" | 
|---|
| 68 | .S DIC("S")="I '$G(^PSDRUG(+Y,""I""))!($G(^(""I""))>DT),$P($G(^PSDRUG(+Y,2)),U,3)[""I""!($P($G(^PSDRUG(+Y,2)),U,3)[""U"")" | 
|---|
| 69 | .D:+X'>0 MIX^DIC1 | 
|---|
| 70 | .D:+X>0 ^DIC | 
|---|
| 71 | .S:+Y>0 X=$$GET1^DIQ(50,+Y_",",.01)_"~"_+Y K:+Y<1 X | 
|---|
| 72 | Q | 
|---|
| 73 | ; | 
|---|