| 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
 | 
|---|