LRMIVER1 ;DALOI/STAFF - MICRO CHART COPY APPROVAL CONT. ;12/19/12  10:41
 ;;5.2;LAB SERVICE;**295,350,427**;Sep 27, 1994;Build 33
 ;
 ;from LRMIVER
 ;
APPROVE I '$O(^LRO(68,"AVS",LRAA,0)) W !,"No data." Q
 F I=0:0 W !!,"Do you wish to review the data as the (W)ards will see it, as the (L)ab",!,"will see it, or (N)ot review the data?  N// " R X:DTIME S:'$T X=U S:'$L(X) X="N" Q:X[U!("WLN"[X&($L(X)=1))  D INFO^LRMINEW
 Q:X[U  I X="N" D ACCEPT Q
 S:X="W" LRWRDVEW="" F I=0:0 W !,"Do you want to queue the data to print and approve it later" S %=1 D YN^DICN Q:%  W !,"Answer 'Y'es or 'N'o"
 Q:%<1  S ZTRTN="DQ^LRMIVER1" I %=1 S %ZIS="QM",%ZIS("B")="",IOP="Q"
 D IO^LRWU
 Q
 ;
DQ ;
 N LRMLTRPT ;multi report flag for RPT^LRMIPSZ1
 S LRMLTRPT=1
 S:$D(ZTQUEUED) ZTREQ="@" U IO
 S LREND=0,LRSB=0 K ^TMP($J) S LRAD=0 F I=0:0 S LRAD=+$O(^LRO(68,"AVS",LRAA,LRAD)) Q:LRAD<1  D SORT Q:LREND
 S LRONESPC="",LRONETST="" D PRINT
 Q
 ;
SORT S LRAN=0 F  S LRAN=+$O(^LRO(68,"AVS",LRAA,LRAD,LRAN)) Q:LRAN<1  D S1
 Q
 ;
S1 S LRDFN=+^LRO(68,"AVS",LRAA,LRAD,LRAN),LRIDT=$P(^(LRAN),U,2)
 I $D(^LR(LRDFN,"MI",LRIDT,0)) S LRVLOC=$S($L($P(^(0),U,8)):$P(^(0),U,8),1:0),^TMP($J,LRVLOC,LRDFN,LRIDT)=^(0)
 S ^TMP($J,LRVLOC,LRDFN,LRIDT,1)=LRAD
 Q
 ;
PRINT S LRVLOC="" F LRLCNT=0:0 S LRVLOC=$O(^TMP($J,LRVLOC)) Q:LRVLOC=""  S LRLTR=$E(LRVLOC,1,4) W @IOF D ^LRLTR:$E(IOST,1,2)'="C-",P1 Q:LREND
 Q
 ;
P1 S LRDFN=0 F  S LRDFN=+$O(^TMP($J,LRVLOC,LRDFN)) Q:LRDFN<1  D P2 Q:LREND
 Q
 ;
P2 S LRIDT=0 F  S LRIDT=+$O(^TMP($J,LRVLOC,LRDFN,LRIDT)) Q:LRIDT<1  D P3 Q:LREND
 Q
 ;
P3 S LRWLSAVE=LRAA,LRLLT=^TMP($J,LRVLOC,LRDFN,LRIDT),LRACC=$P(LRLLT,U,6),LRAD=$E(LRLLT)_$P(LRACC," ",2)_"0000",X=$P(LRACC," "),DIC=68,DIC(0)="M"
 D ^DIC S LRAA=+Y,LRAN=$P(LRACC," ",3),LRCMNT=$S($D(^LR(LRDFN,"MI",LRIDT,99)):^(99),1:""),LRPG=0 D EN^LRMIPSZ1 S LRAA=LRWLSAVE Q:LREND
 Q
 ;
ACCEPT W !!,"Indicate those you wish to exclude from verification." D LRAN^LRMIUT
 S LRAN=0 F  S LRAN=+$O(LRAN(LRAN)) Q:LRAN<1  S LRAD=0 F  S LRAD=+$O(^LRO(68,"AVS",LRAA,LRAD)) Q:LRAD<1  K ^LRO(68,"AVS",LRAA,LRAD,LRAN)
 F  W !,"Ready to approve" S %=2 D YN^DICN Q:%  W !,"Answer 'Y'es or 'N'o"
 Q:%'=1  W !
 S LRAD=0 F  S LRAD=+$O(^LRO(68,"AVS",LRAA,LRAD)) Q:LRAD<1  D LRAD
 K LRWRDVEW,LRAD,LRAN,LRTK,Z
 Q
 ;
LRAD S LRAN=0 F  S LRAN=+$O(^LRO(68,"AVS",LRAA,LRAD,LRAN)) Q:LRAN<1  D STUFF
 Q
 ;
STUFF ;
 S LRDFN=+^LRO(68,"AVS",LRAA,LRAD,LRAN),LRIDT=$P(^(LRAN),U,2)
 D UPDATE^LRPXRM(LRDFN,"MI",LRIDT)
 I $D(^LRO(68,LRAA,1,LRAD,1,LRAN,0)) D
 . S LRODT=$P(^LRO(68,LRAA,1,LRAD,1,LRAN,0),U,4),LRSN=$P(^(0),U,5),LRLLOC=$P(^(0),U,7)
 . S DFN=$P(^LR(LRDFN,0),U,3),LRDPF=$P(^(0),U,2),LRCDT=9999999-LRIDT
 . D PT^LRX S Y=DT D VT^LRMIUT1
 S ^LR(LRDFN,"MI",LRIDT,0)=$P(^LR(LRDFN,"MI",LRIDT,0),U,1,2)_U_LRNT_U_DUZ_U_$P(^(0),U,5,99)
 S LRSET=1,II=0
 F  S II=+$O(^LRO(68,LRAA,1,LRAD,1,LRAN,4,II)) Q:'II  I $P(^(II,0),U,5)="" S LRSET=0,LRTS=II
 ;F  S II=+$O(^LRO(68,LRAA,1,LRAD,1,LRAN,4,II)) Q:I<1  I '$L($P(^(II,0),U,5)) S LRSET=0,LRTS=II
 S:LRSET $P(^LRO(68,LRAA,1,LRAD,1,LRAN,3),U,4)=LRNT W "."
 F II=1,5,8,11,16 I $D(^LR(LRDFN,"MI",LRIDT,II)),$P(^(II),U) D 
 . K ^LRO(68,LRAA,1,LRAD,"AC",II,LRAN)
 . S LRSB=II
 ;
 I $G(LRSS)="" S LRSS="MI"
 D SETRL^LRVERA(LRDFN,LRSS,LRIDT,DUZ(2))
 ;
 ; If this accession originated via a LEDI order then return results to the collecting site.
 D LEDI^LRVR0
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRMIVER1   3377     printed  Sep 23, 2025@19:53:28                                                                                                                                                                                                    Page 2
LRMIVER1  ;DALOI/STAFF - MICRO CHART COPY APPROVAL CONT. ;12/19/12  10:41
 +1       ;;5.2;LAB SERVICE;**295,350,427**;Sep 27, 1994;Build 33
 +2       ;
 +3       ;from LRMIVER
 +4       ;
APPROVE    IF '$ORDER(^LRO(68,"AVS",LRAA,0))
               WRITE !,"No data."
               QUIT 
 +1        FOR I=0:0
               WRITE !!,"Do you wish to review the data as the (W)ards will see it, as the (L)ab",!,"will see it, or (N)ot review the data?  N// "
               READ X:DTIME
               if '$TEST
                   SET X=U
               if '$LENGTH(X)
                   SET X="N"
               if X[U!("WLN"[X&($LENGTH(X)=1))
                   QUIT 
               DO INFO^LRMINEW
 +2        if X[U
               QUIT 
           IF X="N"
               DO ACCEPT
               QUIT 
 +3        if X="W"
               SET LRWRDVEW=""
           FOR I=0:0
               WRITE !,"Do you want to queue the data to print and approve it later"
               SET %=1
               DO YN^DICN
               if %
                   QUIT 
               WRITE !,"Answer 'Y'es or 'N'o"
 +4        if %<1
               QUIT 
           SET ZTRTN="DQ^LRMIVER1"
           IF %=1
               SET %ZIS="QM"
               SET %ZIS("B")=""
               SET IOP="Q"
 +5        DO IO^LRWU
 +6        QUIT 
 +7       ;
DQ        ;
 +1       ;multi report flag for RPT^LRMIPSZ1
           NEW LRMLTRPT
 +2        SET LRMLTRPT=1
 +3        if $DATA(ZTQUEUED)
               SET ZTREQ="@"
           USE IO
 +4        SET LREND=0
           SET LRSB=0
           KILL ^TMP($JOB)
           SET LRAD=0
           FOR I=0:0
               SET LRAD=+$ORDER(^LRO(68,"AVS",LRAA,LRAD))
               if LRAD<1
                   QUIT 
               DO SORT
               if LREND
                   QUIT 
 +5        SET LRONESPC=""
           SET LRONETST=""
           DO PRINT
 +6        QUIT 
 +7       ;
SORT       SET LRAN=0
           FOR 
               SET LRAN=+$ORDER(^LRO(68,"AVS",LRAA,LRAD,LRAN))
               if LRAN<1
                   QUIT 
               DO S1
 +1        QUIT 
 +2       ;
S1         SET LRDFN=+^LRO(68,"AVS",LRAA,LRAD,LRAN)
           SET LRIDT=$PIECE(^(LRAN),U,2)
 +1        IF $DATA(^LR(LRDFN,"MI",LRIDT,0))
               SET LRVLOC=$SELECT($LENGTH($PIECE(^(0),U,8)):$PIECE(^(0),U,8),1:0)
               SET ^TMP($JOB,LRVLOC,LRDFN,LRIDT)=^(0)
 +2        SET ^TMP($JOB,LRVLOC,LRDFN,LRIDT,1)=LRAD
 +3        QUIT 
 +4       ;
PRINT      SET LRVLOC=""
           FOR LRLCNT=0:0
               SET LRVLOC=$ORDER(^TMP($JOB,LRVLOC))
               if LRVLOC=""
                   QUIT 
               SET LRLTR=$EXTRACT(LRVLOC,1,4)
               WRITE @IOF
               if $EXTRACT(IOST,1,2)'="C-"
                   DO ^LRLTR
               DO P1
               if LREND
                   QUIT 
 +1        QUIT 
 +2       ;
P1         SET LRDFN=0
           FOR 
               SET LRDFN=+$ORDER(^TMP($JOB,LRVLOC,LRDFN))
               if LRDFN<1
                   QUIT 
               DO P2
               if LREND
                   QUIT 
 +1        QUIT 
 +2       ;
P2         SET LRIDT=0
           FOR 
               SET LRIDT=+$ORDER(^TMP($JOB,LRVLOC,LRDFN,LRIDT))
               if LRIDT<1
                   QUIT 
               DO P3
               if LREND
                   QUIT 
 +1        QUIT 
 +2       ;
P3         SET LRWLSAVE=LRAA
           SET LRLLT=^TMP($JOB,LRVLOC,LRDFN,LRIDT)
           SET LRACC=$PIECE(LRLLT,U,6)
           SET LRAD=$EXTRACT(LRLLT)_$PIECE(LRACC," ",2)_"0000"
           SET X=$PIECE(LRACC," ")
           SET DIC=68
           SET DIC(0)="M"
 +1        DO ^DIC
           SET LRAA=+Y
           SET LRAN=$PIECE(LRACC," ",3)
           SET LRCMNT=$SELECT($DATA(^LR(LRDFN,"MI",LRIDT,99)):^(99),1:"")
           SET LRPG=0
           DO EN^LRMIPSZ1
           SET LRAA=LRWLSAVE
           if LREND
               QUIT 
 +2        QUIT 
 +3       ;
ACCEPT     WRITE !!,"Indicate those you wish to exclude from verification."
           DO LRAN^LRMIUT
 +1        SET LRAN=0
           FOR 
               SET LRAN=+$ORDER(LRAN(LRAN))
               if LRAN<1
                   QUIT 
               SET LRAD=0
               FOR 
                   SET LRAD=+$ORDER(^LRO(68,"AVS",LRAA,LRAD))
                   if LRAD<1
                       QUIT 
                   KILL ^LRO(68,"AVS",LRAA,LRAD,LRAN)
 +2        FOR 
               WRITE !,"Ready to approve"
               SET %=2
               DO YN^DICN
               if %
                   QUIT 
               WRITE !,"Answer 'Y'es or 'N'o"
 +3        if %'=1
               QUIT 
           WRITE !
 +4        SET LRAD=0
           FOR 
               SET LRAD=+$ORDER(^LRO(68,"AVS",LRAA,LRAD))
               if LRAD<1
                   QUIT 
               DO LRAD
 +5        KILL LRWRDVEW,LRAD,LRAN,LRTK,Z
 +6        QUIT 
 +7       ;
LRAD       SET LRAN=0
           FOR 
               SET LRAN=+$ORDER(^LRO(68,"AVS",LRAA,LRAD,LRAN))
               if LRAN<1
                   QUIT 
               DO STUFF
 +1        QUIT 
 +2       ;
STUFF     ;
 +1        SET LRDFN=+^LRO(68,"AVS",LRAA,LRAD,LRAN)
           SET LRIDT=$PIECE(^(LRAN),U,2)
 +2        DO UPDATE^LRPXRM(LRDFN,"MI",LRIDT)
 +3        IF $DATA(^LRO(68,LRAA,1,LRAD,1,LRAN,0))
               Begin DoDot:1
 +4                SET LRODT=$PIECE(^LRO(68,LRAA,1,LRAD,1,LRAN,0),U,4)
                   SET LRSN=$PIECE(^(0),U,5)
                   SET LRLLOC=$PIECE(^(0),U,7)
 +5                SET DFN=$PIECE(^LR(LRDFN,0),U,3)
                   SET LRDPF=$PIECE(^(0),U,2)
                   SET LRCDT=9999999-LRIDT
 +6                DO PT^LRX
                   SET Y=DT
                   DO VT^LRMIUT1
               End DoDot:1
 +7        SET ^LR(LRDFN,"MI",LRIDT,0)=$PIECE(^LR(LRDFN,"MI",LRIDT,0),U,1,2)_U_LRNT_U_DUZ_U_$PIECE(^(0),U,5,99)
 +8        SET LRSET=1
           SET II=0
 +9        FOR 
               SET II=+$ORDER(^LRO(68,LRAA,1,LRAD,1,LRAN,4,II))
               if 'II
                   QUIT 
               IF $PIECE(^(II,0),U,5)=""
                   SET LRSET=0
                   SET LRTS=II
 +10      ;F  S II=+$O(^LRO(68,LRAA,1,LRAD,1,LRAN,4,II)) Q:I<1  I '$L($P(^(II,0),U,5)) S LRSET=0,LRTS=II
 +11       if LRSET
               SET $PIECE(^LRO(68,LRAA,1,LRAD,1,LRAN,3),U,4)=LRNT
           WRITE "."
 +12       FOR II=1,5,8,11,16
               IF $DATA(^LR(LRDFN,"MI",LRIDT,II))
                   IF $PIECE(^(II),U)
                       Begin DoDot:1
 +13                       KILL ^LRO(68,LRAA,1,LRAD,"AC",II,LRAN)
 +14                       SET LRSB=II
                       End DoDot:1
 +15      ;
 +16       IF $GET(LRSS)=""
               SET LRSS="MI"
 +17       DO SETRL^LRVERA(LRDFN,LRSS,LRIDT,DUZ(2))
 +18      ;
 +19      ; If this accession originated via a LEDI order then return results to the collecting site.
 +20       DO LEDI^LRVR0
 +21       QUIT