| 1 | LRLABLIO ;DALOI/TGA/JMC - TESTS LABEL PRINTER ;8/8/89  11:17 | 
|---|
| 2 | ;;5.2;LAB SERVICE;**107,161,218**;Sep 27, 1994 | 
|---|
| 3 | ; | 
|---|
| 4 | ; Reference to File #3.5 supported by DBIA #2469 | 
|---|
| 5 | ; | 
|---|
| 6 | 1 ; | 
|---|
| 7 | S U="^" Q:$D(LRLABLIO) | 
|---|
| 8 | ; | 
|---|
| 9 | N %ZIS,DIR,DIRUT,DTOUT,DUOUT,IOP,LRLABEL,POP,X,Y | 
|---|
| 10 | ; | 
|---|
| 11 | ; Setup handle for user's "HOME" device. | 
|---|
| 12 | D OPEN^%ZISUTL("LRHOME","HOME") | 
|---|
| 13 | ; | 
|---|
| 14 | S %ZIS("B")="LABLABEL" | 
|---|
| 15 | ; | 
|---|
| 16 | ; Check if label device assigned to this user's HOME Device file entry. | 
|---|
| 17 | I $G(IOS) D | 
|---|
| 18 | . S X=$$GET1^DIQ(3.5,IOS_",",101,"E") | 
|---|
| 19 | . I $L(X) S %ZIS("B")=X | 
|---|
| 20 | ; | 
|---|
| 21 | I %ZIS("B")="LABLABEL",$D(^LAB(69.9,1,3.5,+$G(DUZ(2)),0)) D | 
|---|
| 22 | . ; Get this division's default printer | 
|---|
| 23 | . S %ZIS("B")=$P($G(^LAB(69.9,1,3.5,+DUZ(2),0)),U,3) | 
|---|
| 24 | I %ZIS("B")="" S %ZIS("B")="LABLABEL" | 
|---|
| 25 | S %ZIS("A")="Print labels on: ",%ZIS="NQ" | 
|---|
| 26 | ; Setup handle for user's LABEL device. | 
|---|
| 27 | 2 D OPEN^%ZISUTL("LRLABEL",,.%ZIS) | 
|---|
| 28 | I POP!(IO=IO(0)) D BD Q | 
|---|
| 29 | S LRLABLIO=ION_";"_IOST_";"_IOM_";"_IOSL | 
|---|
| 30 | I $D(IO("Q")) S LRLABLIO("Q")=1 | 
|---|
| 31 | I $E(IOST,1)'="P" D  G:Y'=1 2 | 
|---|
| 32 | . N DIR,DIRUT,DTOUT,DUOUT | 
|---|
| 33 | . D USE^%ZISUTL("LRHOME") | 
|---|
| 34 | . S DIR(0)="YAO",DIR("A",1)="NOT printing on a printer.",DIR("A")="Are you sure" | 
|---|
| 35 | . D ^DIR | 
|---|
| 36 | ; Device on another cpu, can't test. | 
|---|
| 37 | I $D(IOCPU) D  Q | 
|---|
| 38 | . N MSG | 
|---|
| 39 | . S MSG="Device "_ION_" is on CPU '"_IOCPU_"' - Unable to test" | 
|---|
| 40 | . D USE^%ZISUTL("LRHOME") | 
|---|
| 41 | . D EN^DDIOL(MSG,"","!?5") | 
|---|
| 42 | . D K | 
|---|
| 43 | ; | 
|---|
| 44 | 3 I $D(LRLABLIO("Q")) D K Q | 
|---|
| 45 | D USE^%ZISUTL("LRHOME") | 
|---|
| 46 | W ! | 
|---|
| 47 | K DIR,DIRUT,DTOUT,DUOUT,X,Y | 
|---|
| 48 | S DIR(0)="YAO",DIR("A")="Do you wish to test the label printer: ",DIR("B")="NO" | 
|---|
| 49 | S DIR("?")="Enter 'YES' if you want to test the printer, 'NO' if you do not." | 
|---|
| 50 | D ^DIR | 
|---|
| 51 | I $D(DIRUT) D BD Q | 
|---|
| 52 | I Y<1 G K ; Don't want to test | 
|---|
| 53 | D OPEN^%ZISUTL("LRLABEL",LRLABLIO) | 
|---|
| 54 | I POP D  G 1 | 
|---|
| 55 | . D USE^%ZISUTL("LRHOME") | 
|---|
| 56 | . D EN^DDIOL("Device in use - try later","","!") | 
|---|
| 57 | . K LRLABLIO | 
|---|
| 58 | N LRAA | 
|---|
| 59 | S LRAA=0 | 
|---|
| 60 | D LBLTYP^LRLABLD | 
|---|
| 61 | ; | 
|---|
| 62 | T ; Print test label | 
|---|
| 63 | D USE^%ZISUTL("LRHOME") | 
|---|
| 64 | K DIR,DIRUT,DTOUT,DUOUT,X,Y | 
|---|
| 65 | W !!,"Using label routine: ",LRLABEL,! | 
|---|
| 66 | S DIR(0)="E" | 
|---|
| 67 | S DIR("A",1)="Load and position label stock as appropriate for this printer." | 
|---|
| 68 | S DIR("A")="Press return when ready" | 
|---|
| 69 | D ^DIR | 
|---|
| 70 | I Y'=1 D BD Q | 
|---|
| 71 | ; | 
|---|
| 72 | N I,N,PNM,SSN | 
|---|
| 73 | N LRACC,LRBAR,LRBARID,LRCE,LRDAT,LRINFW,LRLLOC,LRPREF,LRAN,LRRB,LRTOP,LRTS,LRUID,LRURG,LRURG0,LRURGA,LRXL | 
|---|
| 74 | ; | 
|---|
| 75 | ; Set up variables for test label | 
|---|
| 76 | S PNM="TEST-LABEL-DO-NOT-USE",SSN="000-00-0000P",LRDAT="XX/XX/XX",LRLLOC="LAB",LRRB=1 | 
|---|
| 77 | S LRACC="SITE-TEST-LABEL",LRCE="9999999",LRPREF="SMALL " | 
|---|
| 78 | S LRTOP="TEST-TUBE",LRTS(1)="Don't-use",LRTS(2)="this-label" | 
|---|
| 79 | S LRINFW="Patient  info  field",(LRBARID,LRUID)="0000000000",LRAN="000",I=1,N=1,LRXL=0 | 
|---|
| 80 | S (LRURG,LRURG0)=1 | 
|---|
| 81 | S LRURGA=$$URGA^LRLABLD(LRURG0) | 
|---|
| 82 | ; | 
|---|
| 83 | D LRBAR^LRLABLD | 
|---|
| 84 | D USE^%ZISUTL("LRLABEL"),@LRLABEL | 
|---|
| 85 | D USE^%ZISUTL("LRHOME") | 
|---|
| 86 | ; | 
|---|
| 87 | K DIR,DIRUT,DTOUT,DUOUT,X,Y | 
|---|
| 88 | W ! | 
|---|
| 89 | S DIR(0)="YAO",DIR("A")="Label OK: ",DIR("B")="YES" | 
|---|
| 90 | S DIR("?")="Enter 'YES' if label printed correctly, 'NO' if it did not." | 
|---|
| 91 | D ^DIR | 
|---|
| 92 | I $D(DIRUT) G BD | 
|---|
| 93 | I Y=1 G K | 
|---|
| 94 | ; | 
|---|
| 95 | K DIR,DIRUT,DTOUT,DUOUT,X,Y | 
|---|
| 96 | W ! | 
|---|
| 97 | S DIR(0)="YAO",DIR("A")="Test printer again: ",DIR("B")="YES" | 
|---|
| 98 | S DIR("?")="Enter 'YES' to test label printing, 'NO' to quit testing." | 
|---|
| 99 | D ^DIR | 
|---|
| 100 | I $D(DIRUT) G BD | 
|---|
| 101 | I Y=1 G T | 
|---|
| 102 | G K | 
|---|
| 103 | ; | 
|---|
| 104 | BD ; Bad device - abort, timeout, unsuccessful selection | 
|---|
| 105 | K LRLABLIO | 
|---|
| 106 | K ; Close devices | 
|---|
| 107 | D CLOSE^%ZISUTL("LRLABEL") | 
|---|
| 108 | D CLOSE^%ZISUTL("LRHOME") | 
|---|
| 109 | Q | 
|---|