LAMIAUT8 ;FHS/SLC - ADD OR DELETE FROM VITEK LOAD LIST ;7/20/90  09:35
 ;;5.2;AUTOMATED LAB INSTRUMENTS;**81**;Sep 27, 1994;Build 2
ADD ;
 I '$D(^LRO(68,LRAA,1,LRAD,1,X,0)) W !,$C(7),"THIS IS NOT A VALID ACCESSION NUMBER " Q
 S ^TMP("LR",$J,"T",X)=+^(0)_U_+(^(5,1,0)) W !,"  <<<  ADDED  >>> ",! Q
 Q
DELETE ;
 I '$D(^TMP("LR",$J,"T",X)) W !,$C(7),"THIS NUMBER IS NOT ON THE LIST " Q
 K ^TMP("LR",$J,"T",X) W !,"  <<<  DELETED  >>> ",! Q
 Q
STUFF ;
 S LRAA=$S(LRALL:$P(^LRO(68.2,LRINST,10,+$O(^LRO(68.2,LRINST,10,0)),0),U,2),1:$P(^LRO(68.2,LRINST,10,LRPROF,0),U,2))
 S:'$D(^LRO(68.2,LRINST,1,0)) ^(0)="^68.21^"
 F LRAN=0:0 S LRAN=$O(^TMP("LR",$J,"T",LRAN)) Q:LRAN<1  S LRSPEC=$P(^(LRAN),U,2) D STUFF1 I $O(X(0)) D STUFF3
 S $P(^LRO(68.2,LRINST,2),U,4)=LRTRAY,$P(^(2),U,5)=LRCUP,$P(^(2),U)=DT
 Q
STUFF1 ;
 K X F AA=0:0 S AA=$O(^LRO(68,LRAA,1,LRAD,1,LRAN,4,AA)) Q:AA<1  I $D(^(AA,0)) S LRURG=$S($P(^(0),U,2):$P(^(0),U,2),1:9) I $D(LRTP(AA)) D STUFF2
 Q
STUFF2 ;
 I LRTP(AA) Q:LRSPEC=LRTP(AA)
 S X(AA)=AA_U_LRURG,X(AA,$O(LRTP(AA,0)))="" Q
STUFF3 ;
 X LRTRANS I '$D(^LRO(68.2,LRINST,1,LRTRAY,0)) S ^(0)=LRTRAY_U_DT_U_DUZ_U_LRAA,$P(^LRO(68.2,LRINST,1,0),U,3)=LRTRAY,$P(^(0),U,4)=$P(^(0),U,4)+1 W !,"B"
 S:'$D(^LRO(68.2,LRINST,1,LRTRAY,1,0)) ^(0)="^68.22PA^1^1"
 I '$D(^LRO(68.2,LRINST,1,LRTRAY,1,LRCUP,1,0)) S ^(0)="^68.222^" W "."
 S ^LRO(68.2,LRINST,1,LRTRAY,1,LRCUP,0)=LRAA_U_LRAD_U_LRAN_U_$O(LRTP($O(X(0)),0))_U_LRSPEC
 F X=0:0 S X=$O(X(X)) Q:X=""  S ^LRO(68.2,LRINST,1,LRTRAY,1,LRCUP,1,X,0)=X(X),$P(^LRO(68.2,LRINST,1,LRTRAY,1,LRCUP,1,0),U,3)=X,$P(^(0),U,4)=$P(^(0),U,4)+1 D LRO
 Q
LRO S $P(^LRO(68,LRAA,1,LRAD,1,LRAN,4,X,0),U,3)=LRINST_";"_LRTRAY_";"_LRCUP Q    ;LA*5.2*81 change LRAN,1,4 to LRAN,4 for node/piece set
 Q
PROF ;
 S LRAA=$S($D(^LRO(68.2,LRINST,10,1,0)):+$P(^(0),U,2),1:0) I 'LRAA W !!?10,"NO ACCESSION AREA ASSIGNED " S LREND=1 Q
 S Y(0)=^LRO(68,LRAA,0) I $P(Y(0),U,14) S LRP=14 D ACCESS I LREND W !!?10,"Access denied to this Accession Area." Q
 F I=0:0 S I=$O(^LRO(68.2,LRINST,10,LRPROF,1,I)) Q:I<1  I $D(^(I,0)) S LRTP(+^(0))=$P(^(0),U,2),LRTP(+^(0),LRPROF)=""
 F T=0:0 S T=$O(^LRO(68.2,LRINST,10,LRPROF,2,T)) Q:T<1  F C=0:0 S C=$O(^LRO(68.2,LRINST,10,LRPROF,2,T,1,C)) Q:C<1  S LRCT=^(C,0) D CTRLTST S LRCTRL(T,C)=X
 F I=0:0 S I=$O(^LRO(68.2,LRINST,10,LRPROF,3,I)) Q:I<1  S LRDSPEC(+^(I,0))=""
 Q
CTRLTST ;from LRLL1, LRLL2
 S X=LRCT_U F J=0:0 S J=$O(^LAB(62.3,LRCT,2,J)) Q:J<1  S Y=+^(J,0) S:$D(^LRO(68.2,LRINST,10,LRPROF,1,"B",+Y)) X=X_+Y_U
 I '$P(X,U,2) W !,"CONTROL ",$P(^LAB(62.3,+X,0),U,1)," HAS NO TEST FOR THIS PROFILE."
 Q
CLEAR ;from LRLL
 W !,"WANT TO UNLOAD THE ",$S(LRTYPE:"LOAD",1:"WORK")," LIST FIRST" S %=2 D YN^DICN W:%=0 !,"If you're not sure, we'll skip it." W:%=-1 !,"Nothing cleared." S DUOUT=(%=-1) Q:%'=1
 D CLEAR^LRLLS3 S (LAST,^LRO(68.2,LRINST,2))=DT_"^1^1^0^0",$P(^(1,0),U,3,4)=0 F I=0:0 S I=$O(^LRO(68.2,LRINST,1,0)) Q:I<1  S $P(^(0),U,3)=I,$P(^(0),U,4)=I
 I LRTYPE W !,"Do you want to delete all unverified ",$P(^LRO(68.2,LRINST,0),U)," instrument data" S %=2 D YN^DICN S DUOUT=(%=-1) Q:%'=1  K ^LAH(LRINST)
 Q
ACCESS ;
 S LRKEY=+$P(Y(0),U,LRP),LRKEY=$S($D(^DIC(19.1,LRKEY,0)):$P(^(0),U),1:0),LREND=$S($D(^XUSEC(LRKEY,DUZ)):0,1:1)
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLAMIAUT8   3230     printed  Sep 23, 2025@19:19:12                                                                                                                                                                                                    Page 2
LAMIAUT8  ;FHS/SLC - ADD OR DELETE FROM VITEK LOAD LIST ;7/20/90  09:35
 +1       ;;5.2;AUTOMATED LAB INSTRUMENTS;**81**;Sep 27, 1994;Build 2
ADD       ;
 +1        IF '$DATA(^LRO(68,LRAA,1,LRAD,1,X,0))
               WRITE !,$CHAR(7),"THIS IS NOT A VALID ACCESSION NUMBER "
               QUIT 
 +2        SET ^TMP("LR",$JOB,"T",X)=+^(0)_U_+(^(5,1,0))
           WRITE !,"  <<<  ADDED  >>> ",!
           QUIT 
 +3        QUIT 
DELETE    ;
 +1        IF '$DATA(^TMP("LR",$JOB,"T",X))
               WRITE !,$CHAR(7),"THIS NUMBER IS NOT ON THE LIST "
               QUIT 
 +2        KILL ^TMP("LR",$JOB,"T",X)
           WRITE !,"  <<<  DELETED  >>> ",!
           QUIT 
 +3        QUIT 
STUFF     ;
 +1        SET LRAA=$SELECT(LRALL:$PIECE(^LRO(68.2,LRINST,10,+$ORDER(^LRO(68.2,LRINST,10,0)),0),U,2),1:$PIECE(^LRO(68.2,LRINST,10,LRPROF,0),U,2))
 +2        if '$DATA(^LRO(68.2,LRINST,1,0))
               SET ^(0)="^68.21^"
 +3        FOR LRAN=0:0
               SET LRAN=$ORDER(^TMP("LR",$JOB,"T",LRAN))
               if LRAN<1
                   QUIT 
               SET LRSPEC=$PIECE(^(LRAN),U,2)
               DO STUFF1
               IF $ORDER(X(0))
                   DO STUFF3
 +4        SET $PIECE(^LRO(68.2,LRINST,2),U,4)=LRTRAY
           SET $PIECE(^(2),U,5)=LRCUP
           SET $PIECE(^(2),U)=DT
 +5        QUIT 
STUFF1    ;
 +1        KILL X
           FOR AA=0:0
               SET AA=$ORDER(^LRO(68,LRAA,1,LRAD,1,LRAN,4,AA))
               if AA<1
                   QUIT 
               IF $DATA(^(AA,0))
                   SET LRURG=$SELECT($PIECE(^(0),U,2):$PIECE(^(0),U,2),1:9)
                   IF $DATA(LRTP(AA))
                       DO STUFF2
 +2        QUIT 
STUFF2    ;
 +1        IF LRTP(AA)
               if LRSPEC=LRTP(AA)
                   QUIT 
 +2        SET X(AA)=AA_U_LRURG
           SET X(AA,$ORDER(LRTP(AA,0)))=""
           QUIT 
STUFF3    ;
 +1        XECUTE LRTRANS
           IF '$DATA(^LRO(68.2,LRINST,1,LRTRAY,0))
               SET ^(0)=LRTRAY_U_DT_U_DUZ_U_LRAA
               SET $PIECE(^LRO(68.2,LRINST,1,0),U,3)=LRTRAY
               SET $PIECE(^(0),U,4)=$PIECE(^(0),U,4)+1
               WRITE !,"B"
 +2        if '$DATA(^LRO(68.2,LRINST,1,LRTRAY,1,0))
               SET ^(0)="^68.22PA^1^1"
 +3        IF '$DATA(^LRO(68.2,LRINST,1,LRTRAY,1,LRCUP,1,0))
               SET ^(0)="^68.222^"
               WRITE "."
 +4        SET ^LRO(68.2,LRINST,1,LRTRAY,1,LRCUP,0)=LRAA_U_LRAD_U_LRAN_U_$ORDER(LRTP($ORDER(X(0)),0))_U_LRSPEC
 +5        FOR X=0:0
               SET X=$ORDER(X(X))
               if X=""
                   QUIT 
               SET ^LRO(68.2,LRINST,1,LRTRAY,1,LRCUP,1,X,0)=X(X)
               SET $PIECE(^LRO(68.2,LRINST,1,LRTRAY,1,LRCUP,1,0),U,3)=X
               SET $PIECE(^(0),U,4)=$PIECE(^(0),U,4)+1
               DO LRO
 +6        QUIT 
LRO       ;LA*5.2*81 change LRAN,1,4 to LRAN,4 for node/piece set
           SET $PIECE(^LRO(68,LRAA,1,LRAD,1,LRAN,4,X,0),U,3)=LRINST_";"_LRTRAY_";"_LRCUP
           QUIT 
 +1        QUIT 
PROF      ;
 +1        SET LRAA=$SELECT($DATA(^LRO(68.2,LRINST,10,1,0)):+$PIECE(^(0),U,2),1:0)
           IF 'LRAA
               WRITE !!?10,"NO ACCESSION AREA ASSIGNED "
               SET LREND=1
               QUIT 
 +2        SET Y(0)=^LRO(68,LRAA,0)
           IF $PIECE(Y(0),U,14)
               SET LRP=14
               DO ACCESS
               IF LREND
                   WRITE !!?10,"Access denied to this Accession Area."
                   QUIT 
 +3        FOR I=0:0
               SET I=$ORDER(^LRO(68.2,LRINST,10,LRPROF,1,I))
               if I<1
                   QUIT 
               IF $DATA(^(I,0))
                   SET LRTP(+^(0))=$PIECE(^(0),U,2)
                   SET LRTP(+^(0),LRPROF)=""
 +4        FOR T=0:0
               SET T=$ORDER(^LRO(68.2,LRINST,10,LRPROF,2,T))
               if T<1
                   QUIT 
               FOR C=0:0
                   SET C=$ORDER(^LRO(68.2,LRINST,10,LRPROF,2,T,1,C))
                   if C<1
                       QUIT 
                   SET LRCT=^(C,0)
                   DO CTRLTST
                   SET LRCTRL(T,C)=X
 +5        FOR I=0:0
               SET I=$ORDER(^LRO(68.2,LRINST,10,LRPROF,3,I))
               if I<1
                   QUIT 
               SET LRDSPEC(+^(I,0))=""
 +6        QUIT 
CTRLTST   ;from LRLL1, LRLL2
 +1        SET X=LRCT_U
           FOR J=0:0
               SET J=$ORDER(^LAB(62.3,LRCT,2,J))
               if J<1
                   QUIT 
               SET Y=+^(J,0)
               if $DATA(^LRO(68.2,LRINST,10,LRPROF,1,"B",+Y))
                   SET X=X_+Y_U
 +2        IF '$PIECE(X,U,2)
               WRITE !,"CONTROL ",$PIECE(^LAB(62.3,+X,0),U,1)," HAS NO TEST FOR THIS PROFILE."
 +3        QUIT 
CLEAR     ;from LRLL
 +1        WRITE !,"WANT TO UNLOAD THE ",$SELECT(LRTYPE:"LOAD",1:"WORK")," LIST FIRST"
           SET %=2
           DO YN^DICN
           if %=0
               WRITE !,"If you're not sure, we'll skip it."
           if %=-1
               WRITE !,"Nothing cleared."
           SET DUOUT=(%=-1)
           if %'=1
               QUIT 
 +2        DO CLEAR^LRLLS3
           SET (LAST,^LRO(68.2,LRINST,2))=DT_"^1^1^0^0"
           SET $PIECE(^(1,0),U,3,4)=0
           FOR I=0:0
               SET I=$ORDER(^LRO(68.2,LRINST,1,0))
               if I<1
                   QUIT 
               SET $PIECE(^(0),U,3)=I
               SET $PIECE(^(0),U,4)=I
 +3        IF LRTYPE
               WRITE !,"Do you want to delete all unverified ",$PIECE(^LRO(68.2,LRINST,0),U)," instrument data"
               SET %=2
               DO YN^DICN
               SET DUOUT=(%=-1)
               if %'=1
                   QUIT 
               KILL ^LAH(LRINST)
 +4        QUIT 
ACCESS    ;
 +1        SET LRKEY=+$PIECE(Y(0),U,LRP)
           SET LRKEY=$SELECT($DATA(^DIC(19.1,LRKEY,0)):$PIECE(^(0),U),1:0)
           SET LREND=$SELECT($DATA(^XUSEC(LRKEY,DUZ)):0,1:1)
 +2        QUIT