LABINIT ;SLC/RWF - LAB INIT RUNTIME ;8/16/90 10:18 ;
;;5.2;AUTOMATED LAB INSTRUMENTS;;Sep 27, 1994
INIT S U="^",IOP=$P(^LAB(62.4,HOME,0),U,2) G:IOP="" H^XUS
S IOP=IOP_";255",%ZIS="" D ^%ZIS G:POP H^XUS U IO X ^%ZOSF("TYPE-AHEAD"),^%ZOSF("LABOFF")
S U="^",OUT=1,TOUT=5,ASK=-2,ACK="A",NAK="N",DUZ=$S($D(DUZ):DUZ,1:.5)
F IX=BASE:0 S IX=$O(^LA(IX)) Q:IX<HOME!(BASE+10<IX) D CHECK S T=IX IF $D(^LAB(62.4,IX,2)) X ^(2)
S:'$D(^LA("Q"))#2 ^LA("Q")=0,^("Q",0)=0 S T=HOME
I '$D(^LA(T,"ENV")) D GETENV^%ZOSV S ^LA(T,"ENV")=Y
;^LA(T,"ENV")=UCI^VOLUME SET^VAX NODE
S:'$D(^LA(T,"Q"))#2 ^LA(T,"Q")=0
S:'$D(^LA(T,"I"))#2 ^LA(T,"I")=0,^("I",0)=0
S:'$D(^LA(T,"O"))#2 ^LA(T,"O")=0,^("O",0)=0
S ^LA("LOCK",HOME)=$J,T=HOME,OUT=1
S LR=HOME D AC2^LA1103
Q
CHECK Q:'$D(^LA(IX))
I $D(^LA(IX,"I"))[0!($D(^LA(IX,"I",0))[0) K ^LA(IX)
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLABINIT 844 printed Nov 22, 2024@16:51:44 Page 2
LABINIT ;SLC/RWF - LAB INIT RUNTIME ;8/16/90 10:18 ;
+1 ;;5.2;AUTOMATED LAB INSTRUMENTS;;Sep 27, 1994
INIT SET U="^"
SET IOP=$PIECE(^LAB(62.4,HOME,0),U,2)
if IOP=""
GOTO H^XUS
+1 SET IOP=IOP_";255"
SET %ZIS=""
DO ^%ZIS
if POP
GOTO H^XUS
USE IO
XECUTE ^%ZOSF("TYPE-AHEAD")
XECUTE ^%ZOSF("LABOFF")
+2 SET U="^"
SET OUT=1
SET TOUT=5
SET ASK=-2
SET ACK="A"
SET NAK="N"
SET DUZ=$SELECT($DATA(DUZ):DUZ,1:.5)
+3 FOR IX=BASE:0
SET IX=$ORDER(^LA(IX))
if IX<HOME!(BASE+10<IX)
QUIT
DO CHECK
SET T=IX
IF $DATA(^LAB(62.4,IX,2))
XECUTE ^(2)
+4 if '$DATA(^LA("Q"))#2
SET ^LA("Q")=0
SET ^("Q",0)=0
SET T=HOME
+5 IF '$DATA(^LA(T,"ENV"))
DO GETENV^%ZOSV
SET ^LA(T,"ENV")=Y
+6 ;^LA(T,"ENV")=UCI^VOLUME SET^VAX NODE
+7 if '$DATA(^LA(T,"Q"))#2
SET ^LA(T,"Q")=0
+8 if '$DATA(^LA(T,"I"))#2
SET ^LA(T,"I")=0
SET ^("I",0)=0
+9 if '$DATA(^LA(T,"O"))#2
SET ^LA(T,"O")=0
SET ^("O",0)=0
+10 SET ^LA("LOCK",HOME)=$JOB
SET T=HOME
SET OUT=1
+11 SET LR=HOME
DO AC2^LA1103
+12 QUIT
CHECK if '$DATA(^LA(IX))
QUIT
+1 IF $DATA(^LA(IX,"I"))[0!($DATA(^LA(IX,"I",0))[0)
KILL ^LA(IX)
+2 QUIT