- LAMIVTLG ;SLC/CJS/DAL/DRH - LAB AUTOMATED DATA ;7/20/90 08:28 ;
- ;;5.2;AUTOMATED LAB INSTRUMENTS;**1030**;NOV 01, 1997
- ;;5.2;AUTOMATED LAB INSTRUMENTS;**12**;Sep 27, 1994;Build 7
- ;Modified by Hoak for Vitek literal interface
- Q
- LOG S LINK="",LRDFN=0,DPF=2 I '$G(LOG) G LG2 ;Run by accession number.
- I LROVER S ISQN=+$O(^LAH(LWL,1,"C",+LOG,0)) Q:ISQN>0
- I '$D(^LRO(68,WL,1,LADT,1,LOG,0)) S LINK="^^"_+LOG G LG2
- S X=^(0),LINK=WL_U_LADT_U_LOG,LRDFN=+X,DPF=$P(X,U,2)
- LG2 D ISQN S:$G(LOG) ^LAH(LWL,1,"C",LOG,ISQN)="",$P(^LAH(LWL,1,ISQN,0),U,3,5)=LINK S:$G(CENUM) $P(^(0),U,6)=CENUM,^LAH(LWL,1,"D",+CENUM,ISQN)=""
- I $D(^LRO(68.2,LWL,1,+TRAY,1,+CUP,0)) S ^(4,ISQN)="" ;,^LAH(LWL,1,"E",+IDE,ISQN)=""
- Q
- ISQN ;
- L +^LAH(LWL)
- S (^LAH(LWL),ISQN)=1+$S($D(^LAH(+LWL))#2:^LAH(LWL),1:0)
- S:CUP="" TRAY=1,CUP=ISQN
- S ^LAH(LWL,1,ISQN,0)=TRAY_U_CUP_"^^^^^"_METH_"^"_+$G(IDE),^LAH(LWL,1,"B",(+TRAY)_";"_(+CUP),ISQN)=""
- ;
- S ^LAH(LWL,1,"E",+$G(IDE),ISQN)="" ;3/6/95 - LJA. Do-Dot Removed...
- ;
- L -^LAH(LWL)
- ;IDE XREF ADDED TO ENABLE CORRECT IDENTIFIER FOR CX4/CX5 INSTRUMENTS
- Q
- LLIST S LRDFN=0,DPF=2 I LROVER S ISQN=+$O(^LAH(LWL,1,"B",(+TRAY)_";"_(+CUP),0)) Q:ISQN>0
- D ISQN S LINK="^^" ;Run by load/work list number sent.
- I $D(^LRO(68.2,+LWL,1,+TRAY,1,+CUP,0)) S LINK=$P(^(0),"^",1,3),^(4,ISQN)=""
- S $P(^LAH(LWL,1,ISQN,0),U,3,5)=LINK
- S DPF=2 Q:LINK="^^" S WL=+$P(LINK,"^",1),WDT=+$P(LINK,"^",2),LOG=+$P(LINK,"^",3),^LAH(LWL,1,"C",LOG,ISQN)=""
- S X=$S($D(^LRO(68,+WL,1,+WDT,1,+LOG,0)):^(0),1:"0^2"),DPF=+$P(X,U,2),LRDFN=+X
- Q
- SEQN S CUP="" G LLIST ;Run by the order data receved
- CENUM S DPF=2,LRDFN=0,LOG=$O(^LRO(68,WL,1,DT,1,"D",+CENUM,0)) G LOG:LOG>0 ;for martinez only
- ;IF CENUM?1A.ANP S Y=CENUM D CEPACK I Y?.ANP S DFN=$O(^LAB(62.3,"B",Y,0)) I DFN S DPF=62.3
- D ISQN S ^LAH(LWL,1,"C",LOG,ISQN)="",^LAH(LWL,1,"D",+CENUM,ISQN)="",$P(^LAH(LWL,1,ISQN,0),U,6)=CENUM
- I $D(^LRO(68.2,+LWL,1,+TRAY,1,+CUP,0)) S ^(4,ISQN)=""
- Q
- IDENT S DPF=2,LRDFN=0,LOG=$O(^LRO(68,WL,1,DT,1,"C",IDENT,0)) G LOG:LOG>0
- D ISQN Q
- CONTROL ;VERIFY CONTROL'S
- Q:'$D(^LRO(68,+WL,1,DT,1,+LOG,0)) Q:$P(^(0),U,2)'=62.3
- S LRDFN=+^(0),IDT=9999999-$S($D(^(3)):^(3),1:0) Q:'$D(^LR(LRDFN,"CH",IDT,0)) S $P(^LRO(68,WL,1,DT,1,LOG,3),U,4)=NOW
- S $P(^LR(LRDFN,"CH",IDT,0),U,3)=NOW F I=1:0 S I=$O(^LAH(LWL,1,ISQN,I)) Q:I<1 S ^LR(LRDFN,"CH",IDT,I)=^LAH(LWL,1,ISQN,I)
- S:'$D(LRTEC) LRTEC=$P(^VA(200,DUZ,0),U,2)
- F I=0:0 S I=$O(^LRO(68,WL,1,DT,1,LOG,4,I)) Q:I<1 I +$P(^(I,0),U,3)[LWL,'$P(^(0),U,5) S $P(^(0),U,5)=NOW,$P(^(0),U,4)=LRTEC,^LRO(68,WL,1,DT,1,"AC",NOW,LOG)="",^LRO(68,WL,1,DT,1,"AD",NOW\1,LOG)=""
- D CONTXREF K:$D(LOG) ^LAH(LWL,1,"C",+LOG) K ^LAH(LWL,1,"B",(+TRAY)_";"_(+CUP)),^LAH(+LWL,1,ISQN) Q
- CEPACK S Y=$P(Y,"\",1),YY="" F I=1:1:$L(Y) S:$A(Y,I)>32 YY=YY_$E(Y,I)
- S Y=YY K YY Q
- CONTXREF ; Set up verification X-Ref for controls
- N DA,LRTEST,LRTN,I,LRGTN,X1,X,S1,J,J1
- S LRTEST="" F LRTN=0:0 S LRTN=$O(^LRO(68,WL,1,DT,1,LOG,4,LRTN)) Q:LRTN<1 I $D(^(LRTN,0)),+$P(^(0),U,3)[LWL,+$P(^(0),U,5) S:LRTEST'="" LRTEST=LRTEST_"^"_LRTN S:LRTEST="" LRTEST=LRTN
- AC ;
- K ^TMP("LR",$J,"T") D ^LREXPD
- F X=0:0 S X=$O(^TMP("LR",$J,"T",X)) Q:X<1 S X1=$P(^(X),";",2) I X1,$D(^LR($G(LRDFN),"CH",$G(IDT),$G(X1))) S:'$D(^LRO(68,"AC",LRDFN,IDT,X1)) ^(X1)=""
- K ^TMP("LR",$J,"T")
- Q
- LAMIVTLG ;SLC/CJS/DAL/DRH - LAB AUTOMATED DATA ;7/20/90 08:28 ;
- +1 ;;5.2;AUTOMATED LAB INSTRUMENTS;**1030**;NOV 01, 1997
- +2 ;;5.2;AUTOMATED LAB INSTRUMENTS;**12**;Sep 27, 1994;Build 7
- +3 ;Modified by Hoak for Vitek literal interface
- +4 QUIT
- LOG ;Run by accession number.
- SET LINK=""
- SET LRDFN=0
- SET DPF=2
- IF '$GET(LOG)
- GOTO LG2
- +1 IF LROVER
- SET ISQN=+$ORDER(^LAH(LWL,1,"C",+LOG,0))
- IF ISQN>0
- QUIT
- +2 IF '$DATA(^LRO(68,WL,1,LADT,1,LOG,0))
- SET LINK="^^"_+LOG
- GOTO LG2
- +3 SET X=^(0)
- SET LINK=WL_U_LADT_U_LOG
- SET LRDFN=+X
- SET DPF=$PIECE(X,U,2)
- LG2 DO ISQN
- IF $GET(LOG)
- SET ^LAH(LWL,1,"C",LOG,ISQN)=""
- SET $PIECE(^LAH(LWL,1,ISQN,0),U,3,5)=LINK
- IF $GET(CENUM)
- SET $PIECE(^(0),U,6)=CENUM
- SET ^LAH(LWL,1,"D",+CENUM,ISQN)=""
- +1 ;,^LAH(LWL,1,"E",+IDE,ISQN)=""
- IF $DATA(^LRO(68.2,LWL,1,+TRAY,1,+CUP,0))
- SET ^(4,ISQN)=""
- +2 QUIT
- ISQN ;
- +1 LOCK +^LAH(LWL)
- +2 SET (^LAH(LWL),ISQN)=1+$SELECT($DATA(^LAH(+LWL))#2:^LAH(LWL),1:0)
- +3 IF CUP=""
- SET TRAY=1
- SET CUP=ISQN
- +4 SET ^LAH(LWL,1,ISQN,0)=TRAY_U_CUP_"^^^^^"_METH_"^"_+$GET(IDE)
- SET ^LAH(LWL,1,"B",(+TRAY)_";"_(+CUP),ISQN)=""
- +5 ;
- +6 ;3/6/95 - LJA. Do-Dot Removed...
- SET ^LAH(LWL,1,"E",+$GET(IDE),ISQN)=""
- +7 ;
- +8 LOCK -^LAH(LWL)
- +9 ;IDE XREF ADDED TO ENABLE CORRECT IDENTIFIER FOR CX4/CX5 INSTRUMENTS
- +10 QUIT
- LLIST SET LRDFN=0
- SET DPF=2
- IF LROVER
- SET ISQN=+$ORDER(^LAH(LWL,1,"B",(+TRAY)_";"_(+CUP),0))
- IF ISQN>0
- QUIT
- +1 ;Run by load/work list number sent.
- DO ISQN
- SET LINK="^^"
- +2 IF $DATA(^LRO(68.2,+LWL,1,+TRAY,1,+CUP,0))
- SET LINK=$PIECE(^(0),"^",1,3)
- SET ^(4,ISQN)=""
- +3 SET $PIECE(^LAH(LWL,1,ISQN,0),U,3,5)=LINK
- +4 SET DPF=2
- IF LINK="^^"
- QUIT
- SET WL=+$PIECE(LINK,"^",1)
- SET WDT=+$PIECE(LINK,"^",2)
- SET LOG=+$PIECE(LINK,"^",3)
- SET ^LAH(LWL,1,"C",LOG,ISQN)=""
- +5 SET X=$SELECT($DATA(^LRO(68,+WL,1,+WDT,1,+LOG,0)):^(0),1:"0^2")
- SET DPF=+$PIECE(X,U,2)
- SET LRDFN=+X
- +6 QUIT
- SEQN ;Run by the order data receved
- SET CUP=""
- GOTO LLIST
- CENUM ;for martinez only
- SET DPF=2
- SET LRDFN=0
- SET LOG=$ORDER(^LRO(68,WL,1,DT,1,"D",+CENUM,0))
- IF LOG>0
- GOTO LOG
- +1 ;IF CENUM?1A.ANP S Y=CENUM D CEPACK I Y?.ANP S DFN=$O(^LAB(62.3,"B",Y,0)) I DFN S DPF=62.3
- +2 DO ISQN
- SET ^LAH(LWL,1,"C",LOG,ISQN)=""
- SET ^LAH(LWL,1,"D",+CENUM,ISQN)=""
- SET $PIECE(^LAH(LWL,1,ISQN,0),U,6)=CENUM
- +3 IF $DATA(^LRO(68.2,+LWL,1,+TRAY,1,+CUP,0))
- SET ^(4,ISQN)=""
- +4 QUIT
- IDENT SET DPF=2
- SET LRDFN=0
- SET LOG=$ORDER(^LRO(68,WL,1,DT,1,"C",IDENT,0))
- IF LOG>0
- GOTO LOG
- +1 DO ISQN
- QUIT
- CONTROL ;VERIFY CONTROL'S
- +1 IF '$DATA(^LRO(68,+WL,1,DT,1,+LOG,0))
- QUIT
- IF $PIECE(^(0),U,2)'=62.3
- QUIT
- +2 SET LRDFN=+^(0)
- SET IDT=9999999-$SELECT($DATA(^(3)):^(3),1:0)
- IF '$DATA(^LR(LRDFN,"CH",IDT,0))
- QUIT
- SET $PIECE(^LRO(68,WL,1,DT,1,LOG,3),U,4)=NOW
- +3 SET $PIECE(^LR(LRDFN,"CH",IDT,0),U,3)=NOW
- FOR I=1:0
- SET I=$ORDER(^LAH(LWL,1,ISQN,I))
- IF I<1
- QUIT
- SET ^LR(LRDFN,"CH",IDT,I)=^LAH(LWL,1,ISQN,I)
- +4 IF '$DATA(LRTEC)
- SET LRTEC=$PIECE(^VA(200,DUZ,0),U,2)
- +5 FOR I=0:0
- SET I=$ORDER(^LRO(68,WL,1,DT,1,LOG,4,I))
- IF I<1
- QUIT
- IF +$PIECE(^(I,0),U,3)[LWL
- IF '$PIECE(^(0),U,5)
- SET $PIECE(^(0),U,5)=NOW
- SET $PIECE(^(0),U,4)=LRTEC
- SET ^LRO(68,WL,1,DT,1,"AC",NOW,LOG)=""
- SET ^LRO(68,WL,1,DT,1,"AD",NOW\1,LOG)=""
- +6 DO CONTXREF
- IF $DATA(LOG)
- KILL ^LAH(LWL,1,"C",+LOG)
- KILL ^LAH(LWL,1,"B",(+TRAY)_";"_(+CUP)),^LAH(+LWL,1,ISQN)
- QUIT
- CEPACK SET Y=$PIECE(Y,"\",1)
- SET YY=""
- FOR I=1:1:$LENGTH(Y)
- IF $ASCII(Y,I)>32
- SET YY=YY_$EXTRACT(Y,I)
- +1 SET Y=YY
- KILL YY
- QUIT
- CONTXREF ; Set up verification X-Ref for controls
- +1 NEW DA,LRTEST,LRTN,I,LRGTN,X1,X,S1,J,J1
- +2 SET LRTEST=""
- FOR LRTN=0:0
- SET LRTN=$ORDER(^LRO(68,WL,1,DT,1,LOG,4,LRTN))
- IF LRTN<1
- QUIT
- IF $DATA(^(LRTN,0))
- IF +$PIECE(^(0),U,3)[LWL
- IF +$PIECE(^(0),U,5)
- IF LRTEST'=""
- SET LRTEST=LRTEST_"^"_LRTN
- IF LRTEST=""
- SET LRTEST=LRTN
- AC ;
- +1 KILL ^TMP("LR",$JOB,"T")
- DO ^LREXPD
- +2 FOR X=0:0
- SET X=$ORDER(^TMP("LR",$JOB,"T",X))
- IF X<1
- QUIT
- SET X1=$PIECE(^(X),";",2)
- IF X1
- IF $DATA(^LR($GET(LRDFN),"CH",$GET(IDT),$GET(X1)))
- IF '$DATA(^LRO(68,"AC",LRDFN,IDT,X1))
- SET ^(X1)=""
- +3 KILL ^TMP("LR",$JOB,"T")
- +4 QUIT