LADOWN ;DALOI/RWF - TOP LEVEL OF DOWNLOAD OPTIONS ;7/20/90 08:06
;;5.2;AUTOMATED LAB INSTRUMENTS;**17,57**;Sep 27, 1994
;
BUILD ;Build a download file for an Instrument
N DIR,LAQUIT,LAX,LRCUP1,LRCUP2,LRNEW,LRPROF,LRTRAY1,LRTYPE,TSK
;
S LAQUIT=0
;
D INIT
I LAQUIT D QUIT Q
;
BU2 ;
W !
S DIR(0)="YO"
S DIR("?")="If optional for this instrument, should I send the tray,cup locations."
S DIR("A")="Send TRAY/CUP locations"
S DIR("B")=$S($P(LRAUTO(9),"^",5)="N":"NO",1:"YES")
D ^DIR
I $D(DIRUT) D QUIT Q
S LRFORCE=Y
;
K DIR("?")
S DIR("B")=$S($P(LRAUTO(9),"^",6)="N":"NO",1:"YES")
S DIR("A")="Queue work"
D ^DIR
I $D(DIRUT) D QUIT Q
;
W !
I Y=1 D Q
. N ZTDESC,ZTRTN,ZTIO,ZTSAVE
. S ZTRTN="DQB^LADOWN",ZTIO="",ZTSAVE("LR*")=""
. S ZTDESC="AUTO-INSTRUMENT DOWNLOAD "
. D ^%ZTLOAD
. D QUIT
;
DQB ;
S:$D(ZTQUEUED) ZTREQ="@"
; Now ready to build file.
D BUILD^LADOWN1
;
; Routine from auto instrument file.
S LRTRAY=LRTRAY1 D @$P(LRAUTO(9),U,3,4)
;
; Go send the records
G SE2:$G(LREND)<1,LAST
;
QUIT ; Clean up
K ^TMP($J)
K LRLL,LRINST,LRAUTO,LRFILE,LRI,LRTRAY,LRCUP,LRAA,LRAD,LRAN,LRTEST,LRECORD,LRFLUID,LRFORCE,LRL,LRPNM
K F,I,J,X,X5,LRRTN
Q
;
INIT ;
N %,DIC,DIR,DIRUT,DTOUT,DUOUT,ZTSK,LREND
;
S LAQUIT=0
;
S DIC="^LAB(62.4,",DIC(0)="AMEQZ"
D ^DIC
I Y<1 S LAQUIT=1 Q
;
S LRINST=+Y,LRAUTO=Y(0),LRAUTO(9)=$G(^LAB(62.4,LRINST,9))
I LRAUTO(9)="" D Q
. S LAQUIT=1
. W !,"Sorry I don't know how to build for this Instrument"
;
K DIC
S DIC="^LRO(68.2,",DIC(0)="AEMQZ"
S DIC("A")="Build using Load List: "
S DIC("B")=$P($G(^LRO(68.2,+$P(LRAUTO,"^",4),0)),"^",1)
D ^DIC
I Y<1 S LAQUIT=1 Q
;
S LRLL=+Y,$P(LRAUTO,"^",4)=LRLL,LRTYPE=$P(Y(0),"^",3)
S (%,LRPROF)=0
F S %=$O(^LRO(68.2,LRLL,10,%)) Q:'% S LRPROF=LRPROF+1
I LRPROF>1 D Q:LAQUIT
. N DIC,DIR
. S DIR(0)="Y",DIR("A")="All Profiles",DIR("B")="YES" D ^DIR
. I $D(DIRUT) S LAQUIT=1
. S LRPROF=Y
. I 'LRPROF D
. . S DIC="^LRO(68.2,"_LRLL_",10,",DIC(0)="AEMQ"
. . D ^DIC
. . I Y<1 S LAQUIT=1
. . E S LRPROF=LRPROF_"^"_Y
;
S LAX=$G(^LRO(68.2,LRLL,2))
I $P(LAX,"^",2)="" D Q
. W !,$C(7),"Load/work list not setup"
. S LAQUIT=1
;
W !!,"Working on the download file for instrument ",$P(LRAUTO,"^",1)
W !,"from Load list ",$P(^LRO(68.2,LRLL,0),"^",1)
I 'LRPROF W " using profile ",$P(LRPROF,"^",3)
;
S LRTRAY1=$P(LAX,"^",2)
;
I LRTYPE D Q:LAQUIT
. N DIR,DIROUT,DIRUT,DTOUT,DUOUT
. W !
. S DIR(0)="NO^"_$P(LAX,"^",2)_":"_$P(LAX,"^",4)_":0"
. S DIR("A")="Starting Tray number"
. S DIR("B")=$P(LAX,"^",2)
. S DIR("?")="Enter a tray to start the build and sending at."
. D ^DIR
. I $D(DIRUT) S LAQUIT=1
. E S LRTRAY1=Y
;
W !
K DIR,DIROUT,DIRUT,DTOUT,DUOUT
S DIR(0)="NO^1:9999:0"
S DIR("A")="Starting "_$S(LRTYPE:"CUP",1:"SEQUENCE")_" number"
S DIR("B")=$P(LAX,"^",3)
S DIR("?")="Enter a "_$S(LRTYPE:"cup",1:"sequence")_" to start the build and sending at."
D ^DIR
I $D(DIRUT) S LAQUIT=1
E S (LRCUP1,LRCUP2)=Y
Q
;
;
PURGE ; Remove the download records from the Load List file, Should be removed when sent.
N C,T
D INIT
I Y'>0 D QUIT Q
S %=2 W !,"Is this OK" D YN^DICN G QUIT:%'=1
;
S T=0
F S T=$O(^LRO(68.2,LRLL,1,T)) Q:T'>0 D
. S C=0
. F S C=$O(^LRO(68.2,LRLL,1,T,1,C)) Q:C'>0 K ^LRO(68.2,LRLL,1,T,1,C,2)
W !,"DONE"
D QUIT
Q
;
SEND D INIT
I Y'>0 D QUIT Q
SE2 ;
K LRFILE
I '$D(ZTQUEUED) W !,"Now setting up to send."
S TSK=LRINST,LRRTN=$P(LRAUTO(9),"^",1,2),LRFILE=$P(^LRO(68.2,LRLL,0),"^",1),T=TSK
I '$P(LRAUTO,"^",8) D SETO^LAB
;
;Set-up call
D:$L($P(LRRTN,U,2)) @("START^"_$P(LRRTN,"^",2))
;
S LRTRAY=LRTRAY1
F D Q:LRTRAY'>0
. I $D(^LRO(68.2,LRLL,1,LRTRAY)) D TRAY
. S LRTRAY=$O(^LRO(68.2,LRLL,1,LRTRAY)) Q:LRTRAY'>0 S LRCUP2=1
;
;
SE3 ; Clean-up call
D:$L($P(LRRTN,U,2)) @("END^"_$P(LRRTN,"^",2))
;
LAST ;
I '$D(ZTQUEUED) W !,"DONE. Data should start moving now"
D QUIT
Q
;
NEW ;Start a new file for each tray.
D:$L($P(LRRTN,U,2)) @("NEXT^"_$P(LRRTN,"^",2)) Q
;
TRAY ;
S LRNEW=1 Q:LRTRAY'>0
S LRCUP=LRCUP2-.1
F S LRCUP=$O(^LRO(68.2,LRLL,1,LRTRAY,1,LRCUP)) Q:LRCUP'>0 D
. I LRNEW D NEW
. S LRNEW=0
. I $D(^LRO(68.2,LRLL,1,LRTRAY,1,LRCUP,2)) S X=^(2) D:$L($P(LRRTN,U,2)) @LRRTN
LADOWN ;DALOI/RWF - TOP LEVEL OF DOWNLOAD OPTIONS ;7/20/90 08:06
+1 ;;5.2;AUTOMATED LAB INSTRUMENTS;**17,57**;Sep 27, 1994
+2 ;
BUILD ;Build a download file for an Instrument
+1 NEW DIR,LAQUIT,LAX,LRCUP1,LRCUP2,LRNEW,LRPROF,LRTRAY1,LRTYPE,TSK
+2 ;
+3 SET LAQUIT=0
+4 ;
+5 DO INIT
+6 IF LAQUIT
DO QUIT
QUIT
+7 ;
BU2 ;
+1 WRITE !
+2 SET DIR(0)="YO"
+3 SET DIR("?")="If optional for this instrument, should I send the tray,cup locations."
+4 SET DIR("A")="Send TRAY/CUP locations"
+5 SET DIR("B")=$SELECT($PIECE(LRAUTO(9),"^",5)="N":"NO",1:"YES")
+6 DO ^DIR
+7 IF $DATA(DIRUT)
DO QUIT
QUIT
+8 SET LRFORCE=Y
+9 ;
+10 KILL DIR("?")
+11 SET DIR("B")=$SELECT($PIECE(LRAUTO(9),"^",6)="N":"NO",1:"YES")
+12 SET DIR("A")="Queue work"
+13 DO ^DIR
+14 IF $DATA(DIRUT)
DO QUIT
QUIT
+15 ;
+16 WRITE !
+17 IF Y=1
Begin DoDot:1
+18 NEW ZTDESC,ZTRTN,ZTIO,ZTSAVE
+19 SET ZTRTN="DQB^LADOWN"
SET ZTIO=""
SET ZTSAVE("LR*")=""
+20 SET ZTDESC="AUTO-INSTRUMENT DOWNLOAD "
+21 DO ^%ZTLOAD
+22 DO QUIT
End DoDot:1
QUIT
+23 ;
DQB ;
+1 IF $DATA(ZTQUEUED)
SET ZTREQ="@"
+2 ; Now ready to build file.
+3 DO BUILD^LADOWN1
+4 ;
+5 ; Routine from auto instrument file.
+6 SET LRTRAY=LRTRAY1
DO @$PIECE(LRAUTO(9),U,3,4)
+7 ;
+8 ; Go send the records
+9 IF $GET(LREND)<1
GOTO SE2
GOTO LAST
+10 ;
QUIT ; Clean up
+1 KILL ^TMP($JOB)
+2 KILL LRLL,LRINST,LRAUTO,LRFILE,LRI,LRTRAY,LRCUP,LRAA,LRAD,LRAN,LRTEST,LRECORD,LRFLUID,LRFORCE,LRL,LRPNM
+3 KILL F,I,J,X,X5,LRRTN
+4 QUIT
+5 ;
INIT ;
+1 NEW %,DIC,DIR,DIRUT,DTOUT,DUOUT,ZTSK,LREND
+2 ;
+3 SET LAQUIT=0
+4 ;
+5 SET DIC="^LAB(62.4,"
SET DIC(0)="AMEQZ"
+6 DO ^DIC
+7 IF Y<1
SET LAQUIT=1
QUIT
+8 ;
+9 SET LRINST=+Y
SET LRAUTO=Y(0)
SET LRAUTO(9)=$GET(^LAB(62.4,LRINST,9))
+10 IF LRAUTO(9)=""
Begin DoDot:1
+11 SET LAQUIT=1
+12 WRITE !,"Sorry I don't know how to build for this Instrument"
End DoDot:1
QUIT
+13 ;
+14 KILL DIC
+15 SET DIC="^LRO(68.2,"
SET DIC(0)="AEMQZ"
+16 SET DIC("A")="Build using Load List: "
+17 SET DIC("B")=$PIECE($GET(^LRO(68.2,+$PIECE(LRAUTO,"^",4),0)),"^",1)
+18 DO ^DIC
+19 IF Y<1
SET LAQUIT=1
QUIT
+20 ;
+21 SET LRLL=+Y
SET $PIECE(LRAUTO,"^",4)=LRLL
SET LRTYPE=$PIECE(Y(0),"^",3)
+22 SET (%,LRPROF)=0
+23 FOR
SET %=$ORDER(^LRO(68.2,LRLL,10,%))
IF '%
QUIT
SET LRPROF=LRPROF+1
+24 IF LRPROF>1
Begin DoDot:1
+25 NEW DIC,DIR
+26 SET DIR(0)="Y"
SET DIR("A")="All Profiles"
SET DIR("B")="YES"
DO ^DIR
+27 IF $DATA(DIRUT)
SET LAQUIT=1
+28 SET LRPROF=Y
+29 IF 'LRPROF
Begin DoDot:2
+30 SET DIC="^LRO(68.2,"_LRLL_",10,"
SET DIC(0)="AEMQ"
+31 DO ^DIC
+32 IF Y<1
SET LAQUIT=1
+33 IF '$TEST
SET LRPROF=LRPROF_"^"_Y
End DoDot:2
End DoDot:1
IF LAQUIT
QUIT
+34 ;
+35 SET LAX=$GET(^LRO(68.2,LRLL,2))
+36 IF $PIECE(LAX,"^",2)=""
Begin DoDot:1
+37 WRITE !,$CHAR(7),"Load/work list not setup"
+38 SET LAQUIT=1
End DoDot:1
QUIT
+39 ;
+40 WRITE !!,"Working on the download file for instrument ",$PIECE(LRAUTO,"^",1)
+41 WRITE !,"from Load list ",$PIECE(^LRO(68.2,LRLL,0),"^",1)
+42 IF 'LRPROF
WRITE " using profile ",$PIECE(LRPROF,"^",3)
+43 ;
+44 SET LRTRAY1=$PIECE(LAX,"^",2)
+45 ;
+46 IF LRTYPE
Begin DoDot:1
+47 NEW DIR,DIROUT,DIRUT,DTOUT,DUOUT
+48 WRITE !
+49 SET DIR(0)="NO^"_$PIECE(LAX,"^",2)_":"_$PIECE(LAX,"^",4)_":0"
+50 SET DIR("A")="Starting Tray number"
+51 SET DIR("B")=$PIECE(LAX,"^",2)
+52 SET DIR("?")="Enter a tray to start the build and sending at."
+53 DO ^DIR
+54 IF $DATA(DIRUT)
SET LAQUIT=1
+55 IF '$TEST
SET LRTRAY1=Y
End DoDot:1
IF LAQUIT
QUIT
+56 ;
+57 WRITE !
+58 KILL DIR,DIROUT,DIRUT,DTOUT,DUOUT
+59 SET DIR(0)="NO^1:9999:0"
+60 SET DIR("A")="Starting "_$SELECT(LRTYPE:"CUP",1:"SEQUENCE")_" number"
+61 SET DIR("B")=$PIECE(LAX,"^",3)
+62 SET DIR("?")="Enter a "_$SELECT(LRTYPE:"cup",1:"sequence")_" to start the build and sending at."
+63 DO ^DIR
+64 IF $DATA(DIRUT)
SET LAQUIT=1
+65 IF '$TEST
SET (LRCUP1,LRCUP2)=Y
+66 QUIT
+67 ;
+68 ;
PURGE ; Remove the download records from the Load List file, Should be removed when sent.
+1 NEW C,T
+2 DO INIT
+3 IF Y'>0
DO QUIT
QUIT
+4 SET %=2
WRITE !,"Is this OK"
DO YN^DICN
IF %'=1
GOTO QUIT
+5 ;
+6 SET T=0
+7 FOR
SET T=$ORDER(^LRO(68.2,LRLL,1,T))
IF T'>0
QUIT
Begin DoDot:1
+8 SET C=0
+9 FOR
SET C=$ORDER(^LRO(68.2,LRLL,1,T,1,C))
IF C'>0
QUIT
KILL ^LRO(68.2,LRLL,1,T,1,C,2)
End DoDot:1
+10 WRITE !,"DONE"
+11 DO QUIT
+12 QUIT
+13 ;
SEND DO INIT
+1 IF Y'>0
DO QUIT
QUIT
SE2 ;
+1 KILL LRFILE
+2 IF '$DATA(ZTQUEUED)
WRITE !,"Now setting up to send."
+3 SET TSK=LRINST
SET LRRTN=$PIECE(LRAUTO(9),"^",1,2)
SET LRFILE=$PIECE(^LRO(68.2,LRLL,0),"^",1)
SET T=TSK
+4 IF '$PIECE(LRAUTO,"^",8)
DO SETO^LAB
+5 ;
+6 ;Set-up call
+7 IF $LENGTH($PIECE(LRRTN,U,2))
DO @("START^"_$PIECE(LRRTN,"^",2))
+8 ;
+9 SET LRTRAY=LRTRAY1
+10 FOR
Begin DoDot:1
+11 IF $DATA(^LRO(68.2,LRLL,1,LRTRAY))
DO TRAY
+12 SET LRTRAY=$ORDER(^LRO(68.2,LRLL,1,LRTRAY))
IF LRTRAY'>0
QUIT
SET LRCUP2=1
End DoDot:1
IF LRTRAY'>0
QUIT
+13 ;
+14 ;
SE3 ; Clean-up call
+1 IF $LENGTH($PIECE(LRRTN,U,2))
DO @("END^"_$PIECE(LRRTN,"^",2))
+2 ;
LAST ;
+1 IF '$DATA(ZTQUEUED)
WRITE !,"DONE. Data should start moving now"
+2 DO QUIT
+3 QUIT
+4 ;
NEW ;Start a new file for each tray.
+1 IF $LENGTH($PIECE(LRRTN,U,2))
DO @("NEXT^"_$PIECE(LRRTN,"^",2))
QUIT
+2 ;
TRAY ;
+1 SET LRNEW=1
IF LRTRAY'>0
QUIT
+2 SET LRCUP=LRCUP2-.1
+3 FOR
SET LRCUP=$ORDER(^LRO(68.2,LRLL,1,LRTRAY,1,LRCUP))
IF LRCUP'>0
QUIT
Begin DoDot:1
+4 IF LRNEW
DO NEW
+5 SET LRNEW=0
+6 IF $DATA(^LRO(68.2,LRLL,1,LRTRAY,1,LRCUP,2))
SET X=^(2)
IF $LENGTH($PIECE(LRRTN,U,2))
DO @LRRTN
End DoDot:1