- LRLABXT ;SLC/TGA - REPRINTS DEMAND LABELS ;2/19/91 10:38
- ;;5.2T9;LR;**1018**;Nov 17, 2004
- ;;5.2;LAB SERVICE;**80,161**;Sep 27, 1994
- ;
- EN ; Reprint labels
- D IOCHK
- I '$D(LRLABLIO) D K Q
- D OPEN^%ZISUTL("LRHOME","HOME") ; Setup handle for user's "HOME" device.
- D USE^%ZISUTL("LRHOME")
- K DIR,DIRUT,DTOUT,DUOUT,X,Y
- S DIR(0)="SO^1:Range of Accessions;2:Selected Accessions",DIR("A")="Selection Method",DIR("B")=1
- D ^DIR
- I $D(DIRUT) D K Q
- S LRTYPE=+Y
- ASK ;
- D USE^%ZISUTL("LRHOME")
- S (LRACC,LREXMPT)=1,(LRCNT,LRQUIT)=0
- K ^TMP("LRLABXT",$J)
- I LRTYPE=1 D
- . D ^LRWU4
- . I LRAN<1 S LRQUIT=1 Q ; User aborted selection.
- . S FIRST=LRAN,X=$O(^LRO(68,LRAA,1,LRAD,1,":"),-1)
- . W !
- . S DIR(0)="NO^"_LRAN_":"_X_":0",DIR("A")="Reprint from "_LRAN_" to",DIR("B")=LRAN
- . D ^DIR K DIR
- . I $D(DIRUT) S LRQUIT=1 Q
- . W !
- . S LRAN=FIRST-1,LAST=Y
- . F S LRAN=$O(^LRO(68,LRAA,1,LRAD,1,LRAN)) Q:'LRAN!(LRAN>LAST) D
- . . W:$X>(IOM-1) ! W "." ; Let user know we're looking.
- . . D SETTMP
- I LRTYPE=2 F D Q:LRQUIT!(LRAN<1)
- . D ^LRWU4
- . I $D(DTOUT)!($D(DUOUT)) S LRQUIT=1 Q
- . I LRAN<1 S:'$D(^TMP("LRLABXT",$J)) LRQUIT=1 Q
- . D SETTMP
- I 'LRQUIT,LRCNT>10 D
- . N DIR,DIRUT,DTOUT,DUOUT,X,Y
- . S DIR(0)="YO",DIR("A",1)="Reprinting labels for "_LRCNT_" accessions!",DIR("A")="Are you sure",DIR("B")="NO"
- . D ^DIR
- . I Y<1!($D(DIRUT)) S LRQUIT=1 Q
- I LRQUIT D K Q
- I $D(LRLABLIO("Q")) D G ASK
- . S ZTIO=LRLABLIO,ZTRTN="LOAD^LRLABXT",ZTDESC="Reprint Lab Accession Labels"
- . S ZTSAVE("^TMP(""LRLABXT"",$J,")=""
- . D ^%ZTLOAD
- . W !,"Labels ",$S($G(ZTSK):"queued to "_$P(LRLABLIO,";")_" Task #"_ZTSK,1:"NOT queued"),!
- . K ZTSK,ZTRTN,ZTIO,ZTDESC,ZTSAVE
- W !!,"Printing labels on ",$P(LRLABLIO,";"),!
- D USE^%ZISUTL("LRLABEL")
- LOAD ; Tasked entry point and from above.
- D PSET^LRLABLD
- F S LRLABX=$Q(^TMP("LRLABXT",$J)) Q:LRLABX="" Q:$QS(LRLABX,1)'="LRLABXT"!($QS(LRLABX,2)'=$J) D
- . S LRAA=$QS(LRLABX,3),LRAD=$QS(LRLABX,4),LRAN=$QS(LRLABX,5)
- . D LBLTYP^LRLABLD
- . D PRINT
- . K @LRLABX
- I $D(ZTQUEUED) D K Q
- G ASK
- ;
- PRINT ;
- ; Called by above, LRLABXOL
- Q:'$D(^LRO(68,LRAA,1,LRAD,1,LRAN,0))
- S X=^LRO(68,LRAA,1,LRAD,1,LRAN,0),LRSN=+$P(X,U,5),LRODT=+$P(X,U,4),LRLLOC=$P(X,U,7)
- S LRCE=$P($G(^LRO(68,LRAA,1,LRAD,1,LRAN,.1)),"^")
- S LRACC=$P($G(^LRO(68,LRAA,1,LRAD,1,LRAN,.2)),"^")
- S LRRB=0
- D LRBAR^LRLABLD
- D GO^LRLABLD
- Q
- ;
- IOCHK ; Select and check label printer.
- ; Called from above, LRLABXOL
- I '$D(LRLABLIO) D
- . D ^LRLABLIO
- . ; Time delay - allow port to be reopened if closed in call to LRLABLIO
- . I $D(LRLABLIO),'$D(IO("Q")) H 2
- I '$D(LRLABLIO) Q
- I '$D(LRLABLIO("Q")) D
- . N %ZIS,IOP
- . S %ZIS="",IOP=LRLABLIO
- . D OPEN^%ZISUTL("LRLABEL",IOP,.%ZIS) ; Setup handle for user's LABEL device.
- . I POP D
- . . W !,$C(7),"Unable to open device"
- . . K LRLABLIO
- Q
- ;
- SETTMP ; Setup TMP global with accession to reprint.
- S LRCNT=LRCNT+1,^TMP("LRLABXT",$J,LRAA,LRAD,LRAN)=""
- Q
- ;
- K ; Cleanup
- I $D(ZTQUEUED) S ZTREQ="@"
- E D CLOSE^%ZISUTL("LRLABEL"),CLOSE^%ZISUTL("LRHOME"),PKILL^%ZISP
- D KVAR^LRX
- K %,IO("Q"),A,B,DIC,I,I1,IOP,J,K,L,LAST,N,POP,R,S1,S2,T,X,Y,Z
- K LRAA,LRACC,LRAD,LRAN,LRCE,LRCNT,LRDAT,LRDPF,LREXMPT,LRINFW,LRLABEL,LRLF,LRDFN,LRODT,LRPREF,LRSSP
- K LRNOLABL,LRPRAC,LRTJ,LRTJDATA,LRLABX,LRQUIT,LRTOP,LRTS,LRTYPE,LRTV,LRTVOL,LRTXT,LRVOL,LRLABLIO,LRFN,LRAD,LRLLOC,LRNN,LRRB,LRSN
- K LRX,LRXL,LRBAR,LRBAR1,LRBAR0,LRBARID,LRUID,LRURG,LRURG0,LRURGA
- K ^TMP("LRLABXT",$J)
- Q
- LRLABXT ;SLC/TGA - REPRINTS DEMAND LABELS ;2/19/91 10:38
- +1 ;;5.2T9;LR;**1018**;Nov 17, 2004
- +2 ;;5.2;LAB SERVICE;**80,161**;Sep 27, 1994
- +3 ;
- EN ; Reprint labels
- +1 DO IOCHK
- +2 IF '$DATA(LRLABLIO)
- DO K
- QUIT
- +3 ; Setup handle for user's "HOME" device.
- DO OPEN^%ZISUTL("LRHOME","HOME")
- +4 DO USE^%ZISUTL("LRHOME")
- +5 KILL DIR,DIRUT,DTOUT,DUOUT,X,Y
- +6 SET DIR(0)="SO^1:Range of Accessions;2:Selected Accessions"
- SET DIR("A")="Selection Method"
- SET DIR("B")=1
- +7 DO ^DIR
- +8 IF $DATA(DIRUT)
- DO K
- QUIT
- +9 SET LRTYPE=+Y
- ASK ;
- +1 DO USE^%ZISUTL("LRHOME")
- +2 SET (LRACC,LREXMPT)=1
- SET (LRCNT,LRQUIT)=0
- +3 KILL ^TMP("LRLABXT",$JOB)
- +4 IF LRTYPE=1
- Begin DoDot:1
- +5 DO ^LRWU4
- +6 ; User aborted selection.
- IF LRAN<1
- SET LRQUIT=1
- QUIT
- +7 SET FIRST=LRAN
- SET X=$ORDER(^LRO(68,LRAA,1,LRAD,1,":"),-1)
- +8 WRITE !
- +9 SET DIR(0)="NO^"_LRAN_":"_X_":0"
- SET DIR("A")="Reprint from "_LRAN_" to"
- SET DIR("B")=LRAN
- +10 DO ^DIR
- KILL DIR
- +11 IF $DATA(DIRUT)
- SET LRQUIT=1
- QUIT
- +12 WRITE !
- +13 SET LRAN=FIRST-1
- SET LAST=Y
- +14 FOR
- SET LRAN=$ORDER(^LRO(68,LRAA,1,LRAD,1,LRAN))
- IF 'LRAN!(LRAN>LAST)
- QUIT
- Begin DoDot:2
- +15 ; Let user know we're looking.
- IF $X>(IOM-1)
- WRITE !
- WRITE "."
- +16 DO SETTMP
- End DoDot:2
- End DoDot:1
- +17 IF LRTYPE=2
- FOR
- Begin DoDot:1
- +18 DO ^LRWU4
- +19 IF $DATA(DTOUT)!($DATA(DUOUT))
- SET LRQUIT=1
- QUIT
- +20 IF LRAN<1
- IF '$DATA(^TMP("LRLABXT",$JOB))
- SET LRQUIT=1
- QUIT
- +21 DO SETTMP
- End DoDot:1
- IF LRQUIT!(LRAN<1)
- QUIT
- +22 IF 'LRQUIT
- IF LRCNT>10
- Begin DoDot:1
- +23 NEW DIR,DIRUT,DTOUT,DUOUT,X,Y
- +24 SET DIR(0)="YO"
- SET DIR("A",1)="Reprinting labels for "_LRCNT_" accessions!"
- SET DIR("A")="Are you sure"
- SET DIR("B")="NO"
- +25 DO ^DIR
- +26 IF Y<1!($DATA(DIRUT))
- SET LRQUIT=1
- QUIT
- End DoDot:1
- +27 IF LRQUIT
- DO K
- QUIT
- +28 IF $DATA(LRLABLIO("Q"))
- Begin DoDot:1
- +29 SET ZTIO=LRLABLIO
- SET ZTRTN="LOAD^LRLABXT"
- SET ZTDESC="Reprint Lab Accession Labels"
- +30 SET ZTSAVE("^TMP(""LRLABXT"",$J,")=""
- +31 DO ^%ZTLOAD
- +32 WRITE !,"Labels ",$SELECT($GET(ZTSK):"queued to "_$PIECE(LRLABLIO,";")_" Task #"_ZTSK,1:"NOT queued"),!
- +33 KILL ZTSK,ZTRTN,ZTIO,ZTDESC,ZTSAVE
- End DoDot:1
- GOTO ASK
- +34 WRITE !!,"Printing labels on ",$PIECE(LRLABLIO,";"),!
- +35 DO USE^%ZISUTL("LRLABEL")
- LOAD ; Tasked entry point and from above.
- +1 DO PSET^LRLABLD
- +2 FOR
- SET LRLABX=$QUERY(^TMP("LRLABXT",$JOB))
- IF LRLABX=""
- QUIT
- IF $QSUBSCRIPT(LRLABX,1)'="LRLABXT"!($QSUBSCRIPT(LRLABX,2)'=$JOB)
- QUIT
- Begin DoDot:1
- +3 SET LRAA=$QSUBSCRIPT(LRLABX,3)
- SET LRAD=$QSUBSCRIPT(LRLABX,4)
- SET LRAN=$QSUBSCRIPT(LRLABX,5)
- +4 DO LBLTYP^LRLABLD
- +5 DO PRINT
- +6 KILL @LRLABX
- End DoDot:1
- +7 IF $DATA(ZTQUEUED)
- DO K
- QUIT
- +8 GOTO ASK
- +9 ;
- PRINT ;
- +1 ; Called by above, LRLABXOL
- +2 IF '$DATA(^LRO(68,LRAA,1,LRAD,1,LRAN,0))
- QUIT
- +3 SET X=^LRO(68,LRAA,1,LRAD,1,LRAN,0)
- SET LRSN=+$PIECE(X,U,5)
- SET LRODT=+$PIECE(X,U,4)
- SET LRLLOC=$PIECE(X,U,7)
- +4 SET LRCE=$PIECE($GET(^LRO(68,LRAA,1,LRAD,1,LRAN,.1)),"^")
- +5 SET LRACC=$PIECE($GET(^LRO(68,LRAA,1,LRAD,1,LRAN,.2)),"^")
- +6 SET LRRB=0
- +7 DO LRBAR^LRLABLD
- +8 DO GO^LRLABLD
- +9 QUIT
- +10 ;
- IOCHK ; Select and check label printer.
- +1 ; Called from above, LRLABXOL
- +2 IF '$DATA(LRLABLIO)
- Begin DoDot:1
- +3 DO ^LRLABLIO
- +4 ; Time delay - allow port to be reopened if closed in call to LRLABLIO
- +5 IF $DATA(LRLABLIO)
- IF '$DATA(IO("Q"))
- HANG 2
- End DoDot:1
- +6 IF '$DATA(LRLABLIO)
- QUIT
- +7 IF '$DATA(LRLABLIO("Q"))
- Begin DoDot:1
- +8 NEW %ZIS,IOP
- +9 SET %ZIS=""
- SET IOP=LRLABLIO
- +10 ; Setup handle for user's LABEL device.
- DO OPEN^%ZISUTL("LRLABEL",IOP,.%ZIS)
- +11 IF POP
- Begin DoDot:2
- +12 WRITE !,$CHAR(7),"Unable to open device"
- +13 KILL LRLABLIO
- End DoDot:2
- End DoDot:1
- +14 QUIT
- +15 ;
- SETTMP ; Setup TMP global with accession to reprint.
- +1 SET LRCNT=LRCNT+1
- SET ^TMP("LRLABXT",$JOB,LRAA,LRAD,LRAN)=""
- +2 QUIT
- +3 ;
- K ; Cleanup
- +1 IF $DATA(ZTQUEUED)
- SET ZTREQ="@"
- +2 IF '$TEST
- DO CLOSE^%ZISUTL("LRLABEL")
- DO CLOSE^%ZISUTL("LRHOME")
- DO PKILL^%ZISP
- +3 DO KVAR^LRX
- +4 KILL %,IO("Q"),A,B,DIC,I,I1,IOP,J,K,L,LAST,N,POP,R,S1,S2,T,X,Y,Z
- +5 KILL LRAA,LRACC,LRAD,LRAN,LRCE,LRCNT,LRDAT,LRDPF,LREXMPT,LRINFW,LRLABEL,LRLF,LRDFN,LRODT,LRPREF,LRSSP
- +6 KILL LRNOLABL,LRPRAC,LRTJ,LRTJDATA,LRLABX,LRQUIT,LRTOP,LRTS,LRTYPE,LRTV,LRTVOL,LRTXT,LRVOL,LRLABLIO,LRFN,LRAD,LRLLOC,LRNN,LRRB,LRSN
- +7 KILL LRX,LRXL,LRBAR,LRBAR1,LRBAR0,LRBARID,LRUID,LRURG,LRURG0,LRURGA
- +8 KILL ^TMP("LRLABXT",$JOB)
- +9 QUIT