LRHYDEL ;DALOI/HOAK - HOWDY DEL A TEST ;8/28/2005
 ;;5.2;LAB SERVICE;**405**;Sep 27, 1994;Build 93
 ;
 ;
 ;Cancel tests - Test are no longer deleted, instead the status is changed to Not Performed.
EN ;
 D ^LRPARAM Q:$G(LREND)
 I '$D(LRLABKY) W !?5,"You are not authorized to change test status.",!,$C(7) S LREND=1 Q
 K LRXX,LRSCNXB W @IOF
 F  S (LREND,LRNOP)=0 D FIX D  I $G(LREND) D END Q
 . I $G(LREND) D END S LREND=1 Q
 . K DIC D:'$G(LRNOP) CHG D END
 Q
FIX S (LREND,LRNOP)=0,LRNOW=$$NOW^XLFDT
 W ! S LRACC=1 D LRACC Q:$G(LRNOP)
 K LRACC,LRNATURE I $G(LRAN)<1 S LREND=1 Q
 I '$P($G(^LRO(68,+$G(LRAA),1,+$G(LRAD),1,+$G(LRAN),0)),U,2) W !?5,"Accession has no Test ",! S LRNOP=1 Q
 L +^LRO(68,LRAA,1,LRAD,1,LRAN):$G(DILOCKTM,3) I '$T W !,"Someone else is working on this accession",! S LRNOP=1 Q
 S LRX=^LRO(68,LRAA,1,LRAD,1,LRAN,0),LRACN=$P(^(.2),U),LRUID=$P(^(.3),U)
 S LRDFN=+LRX,LRSN=+$P(LRX,U,5),LRODT=+$P(LRX,U,4)
 S LRDPF=$P(^LR(LRDFN,0),U,2),DFN=$P(^(0),U,3)
 D PT^LRX W !,PNM,?30,SSN
 S LRIDT=$P($G(^LRO(68,LRAA,1,LRAD,1,LRAN,3)),U,5) L +^LR(LRDFN,LRSS,LRIDT):$G(DILOCKTM,3) I '$T W !,"Someone else is working on this data." L -^LRO(68,LRAA,1,LRAD,1,LRAN) S LRNOP=1 Q
 I '$G(^LR(LRDFN,LRSS,LRIDT,0)) W !?5," Can't find Lab Data for this accession",! D UNLOCK S LRNOP=1 Q
 I LRODT,LRSN,$D(^LRO(69,LRODT,1,LRSN,0))#2 D
 . N LRACN,LRAA,LRAD
 . D SHOW^LROS
 K DIR S DIR(0)="E" D ^DIR S:$E(X)=U LRNOP=1 Q:$G(LRNOP)
FX1 ;
 D SHOWTST
 Q
CHG K LRCTST,DIC W !
 S:'$D(DIC("A")) DIC("A")="Change which LABORATORY TEST: "
 S DIC="^LRO(68,"_LRAA_",1,"_LRAD_",1,"_LRAN_",4,",DIC("S")="I '$L($P(^(0),U,5))",DIC(0)="AEMOQ"
 F  D ^DIC Q:Y<1  S LRCTST(+Y)=$P(^LAB(60,+Y,0),U),DIC("A")="Select another test: "
 K DIC I '$O(LRCTST(0)) D  Q
 . L -^LR(LRDFN,LRSS,LRIDT) L -^LRO(68,LRAA,1,LRAD,1,LRAN)
 . W !?5,"No Test Selected",!
 I '$L(LRODT)&'$L(LRSN) W !,"NO CHANGE" D UNLOCK,END Q
 K LRCCOM S LRCCOM="",LREND=0 I '$D(^LRO(69,LRODT,1,LRSN,0))#2 W !?5,"There is no Order for this Accession",! D UNLOCK,END Q
 W @IOF,!!?5,"Change Accession : ",LRACN,?40,"UID: ",LRUID
 S I=0 F  S I=$O(LRCTST(I)) Q:I<1  W !?10,LRCTST(I)
 D FX2 Q:$G(LREND)
 S LRTSTS=0 F  S LRTSTS=$O(LRCTST(LRTSTS)) Q:LRTSTS<1  D
 . Q:'$D(^LAB(60,LRTSTS,0))#2  S LRTNM=$P(^(0),U)
 . S LRORDTST=$P(^LRO(68,LRAA,1,LRAD,1,LRAN,4,LRTSTS,0),U,9) D SET
 . W:'$G(LREND) !?5,"[ "_LRTNM_" ] ",$S('$D(LRLABKY):" Marked Canceled by Floor",1:" Marked Not Performed"),!
 S LREND=0 K LRCTST
 Q
SHOWTST ;
 N LRI,LRN,DIR,LRY,LRIC,X
 S DIR(0)="E"
 D DEMO
 S LRN=0,LRI=0 F  S LRI=$O(^LRO(68,LRAA,1,LRAD,1,LRAN,4,LRI)) Q:LRI<1!($G(LRY))  D
 . S LRIC=$P($G(^LRO(68,LRAA,1,LRAD,1,LRAN,4,LRI,0)),U,4,6) Q:'$D(^LAB(60,+LRI,0))#2  W !,?5,$P(^(0),U) S LRN=LRN+1 I LRIC  D
 . . W ?35,"  "_$S($L($P(LRIC,U,3)):$P(LRIC,U,3),1:"Completed")_"  "_$$FMTE^XLFDT($P(LRIC,U,2),"5FMPZ")_" by "_$P(LRIC,U)
 . I LRN>18 D ^DIR S:$E(X)=U LRY=1 Q:$G(LRY)  D DEMO S LRN=0
 S X=^LRO(68,LRAA,1,LRAD,1,LRAN,0),LRODT=$P(X,U,4),LRSN=$P(X,U,5)
 Q
DEMO W !,PNM,?50,SSN
 W !,"TESTS ON ACCESSION: ",LRACN,?40,"UID: ",LRUID
 Q
SET ;
 S:'$G(LRNOW) LRNOW=$$NOW^XLFDT
 S LRLLOC=$P(^LRO(69,LRODT,1,LRSN,0),U,7) D
 . N II,X,LRI,LRSTATUS,OCXTRACE
 . S:$G(LRDBUG) OCXTRACE=1
 . S LRI=0 F  S LRI=$O(^LRO(69,LRODT,1,LRSN,2,LRI)) Q:LRI<1  I $D(^(LRI,0))#2,LRTSTS=+^(0) S (LRSTATUS,II(LRTSTS))="" D  K II
 ..  Q:$P(^LRO(69,LRODT,1,LRSN,2,LRI,0),U,12)
 . . Q:$P(^LRO(69,LRODT,1,LRSN,2,LRI,0),U,11)  S ORIFN=$P(^(0),U,7)
 . . S X=1+$O(^LRO(69,LRODT,1,LRSN,2,LRI,1.1,"A"),-1),X(1)=$P($G(^(0)),U,4)
 . . S ^LRO(69,LRODT,1,LRSN,2,LRI,1.1,X,0)=$P($G(LRNATURE),U,5)_": "_LRCCOM,X=X+1,X(1)=X(1)+1
 . . S ^LRO(69,LRODT,1,LRSN,2,LRI,1.1,X,0)="*NP Action:"_$$FMTE^XLFDT(LRNOW,"5MZ")
 . . S ^LRO(69,LRODT,1,LRSN,2,LRI,1.1,0)="^^"_X_"^"_X(1)_"^"_DT
 . . I $G(ORIFN),$D(II) D NEW^LR7OB1(LRODT,LRSN,$S($G(LRMSTATI)=""!($G(LRMSTATI)=1):"OC",1:"SC"),$G(LRNATURE),.II,LRSTATUS)
 . . I ORIFN,$$VER^LR7OU1<3 D DC^LRCENDE1
 . . S $P(^LRO(69,LRODT,1,LRSN,2,LRI,0),"^",9)="CA",$P(^(0),U,10)="L",$P(^(0),U,11)=DUZ
 . . S:$D(^LRO(69,LRODT,1,LRSN,"PCE")) ^LRO(69,"AE",DUZ,LRODT,LRSN,LRI)=""
 K ORIFN,ORSTS
 I $D(^LRO(68,+$G(LRAA),1,+$G(LRAD),1,+$G(LRAN),0))#2,$D(^(4,$G(LRTSTS),0))#2 S $P(^(0),U,4,6)=DUZ_U_LRNOW_U_$S($G(LRMERG):"*Merged",1:"*Not Performed") D
 . S LROWDT=$P($G(^LRO(68,LRAA,1,LRAD,1,LRAN,0)),U,3) I LROWDT,LROWDT'=LRAD D ROL Q
 . S LROWDT=+$G(^LRO(68,LRAA,1,LRAD,1,LRAN,9)) I LROWDT D ROL
 Q:$G(LRSS)["MI"
 I $G(LRIDT),$L($G(LRSS)),$L(LRCCOM),$G(^LR(LRDFN,LRSS,LRIDT,0)) D
 .  Q:$G(LRSS)["MI"
 . D 63(LRDFN,LRSS,LRIDT,LRTNM,LRCCOM)
 . D:'$D(^LRO(68,LRAA,1,LRAD,1,"AD",DT,LRAN)) XREF^LRVER3A
 D EN^LA7ADL($P($G(^LRO(68,+$G(LRAA),1,+$G(LRAD),1,+$G(LRAN),.3)),"^")) ; Put in list to check for auto download.
 Q
ROL ;
 Q:+$G(^LRO(68,LRAA,1,LROWDT,1,LRAN,0))'=LRDFN  Q:'$D(^(4,LRTSTS,0))#2
 S $P(^LRO(68,LRAA,1,LROWDT,1,LRAN,4,LRTSTS,0),U,4,6)=DUZ_U_LRNOW_U_"*Not performed"
 Q
LRACC K LRAN
 S LREND=0,LREXMPT=1 D ^LRWU4 K LREXMPT
 Q:'$G(LRAA)!('$G(LRAN))!('$D(^LRO(68,LRAA,0))#2)
 S DA(2)=LRAA,DA(1)=LRAD,LRSS=$P(^LRO(68,LRAA,0),U,2)
 I '$L(LRSS) S LRAN=0,LRNOP=1 W !?5,"No Subscript for this Accession Area ",!!
 Q
LREND S LREND=1 Q
UNLOCK ;
 L -(^LR($G(LRDFN),$G(LRSS),$G(LRIDT)),^LRO(68,$G(LRAA),1,$G(LRAD),1,$G(LRAN))) D END Q
EXIT ;
 K LRSCNX,LRNOECHO,LRACN,LRLABRV,LRNOW
END ;
 K LRCCOM0,LRCCOM1,LRCCOMX,LREND,LRI,LRL,LRNATURE,LRNOP,LRSCN,LRMSTATI,LRORDTST,LROWDT,LRPRAC,LRTSTS,LRUID
 K Q9,LRXX,DIR,LRCOM,LRAGE,DI,LRCTST,LRACN,LRACN0,LRDOC,LRLL,LRNOW,LRDBUG
 K LROD0,LROD1,LROD3,LROOS,LROS,LROSD,LROT,LRROD,LRTT,X4
 D KVA^VADPT,END^LRTSTJAM
 Q
FX2 ;
 S LRLABKY="" G FX3
 S LRNATURE="W"
 S LREND=0
 S LRL=52 I '$D(LRLABKY) G FX3
 K DIR S (LRCOM,LRCCOM1)="" W !
 S DIR(0)="62.5,5",DIR("A")="Select NP comment Lab Description screen  " S:$L($G(LRSCNXB)) DIR("B")=LRSCNXB
 S DIR("?")="Select Lab Description file screen to be used to expand your NP reason."
 S DIR("?",1)=" Press return to accept the default expansion screens."
 S DIR("?",2)="  "
 S DIR("?",3)="Select the Lab Description file expansion screen."
 S DIR("?",4)="The default expansion screens are GENERAL, ORDER and LAB"
 S DIR("?",5)="You may select addition lab description expansion screens"
 S DIR("?",6)="Press return if you want to only use the default screens"
 S DIR("?",7)=" "
 K LRSCNXB,LRNOECHO
 S:'$D(LRSCN) LRSCN="AKL"
 S X="LAB"
 I $E(X)="@" S LRSCN="AKL",LRSCNXB="" G FX2
 I $L(X) S LRSCNXB=X,LRSCN=LRSCN_1
FX3 K DIR W !
 ;
 S LRL=1
 K LRLABKY
 S X="DUPLICATE"
 S DIR("A")=$S('$D(LRLABKY):"Reason for Cancel",1:"Not Perform Reason ") S:$L($G(LRXX)) DIR("B")=$G(LRXX)
 S DIR(0)="FU^1:"_LRL_"^"
 S (LRCCOM,LRCCOMX)=X
 ;
 I '$D(X) G FX2
 I $E(X,$L(X))=" " S X=$E(X,1,($L(X)-1))
 S (LRCCOM,LRCCOMX)=X
 I '$D(LRLABKY) W !,"("_LRCCOM_")"
 S Y=1
 K DIR
 I Y'=1 QUIT
 S LRCCOM=$E($S('$D(LRLABKY):"*"_$P($G(^VA(200,DUZ,0)),U)_"  Cancel Reason:",1:"*NP Reason:")_LRCCOM,1,68)
 S LRCCOM="S LRCCOM=DUPLICATE: *NP Reason: Duplicate"
 S LRCCOM="DUPLICATE: *NP Reason: Duplicate"
 D EN1^LRHY22
 Q
 ;
63(LRDFN,LRSS,LRIDT,LRTNM,LRCCOM) ;
 Q:$G(LRSS)["MI"
 N X,Y,D0,D1,DA,DR,DIC,DIE,LRCCOM0,LRNOECHO,DLAYGO
 S DLAYGO=63,DIC(0)="SL"
 S:'$G(LRNOW) LRNOW=$$NOW^XLFDT
 S LRNOECHO=1
 S LRCCOM0=$E("*"_LRTNM_$S($G(LRMERG):" Merged: ",'$D(LRLABKY):" "_$P($G(^VA(200,DUZ,0)),U)_" Canceled: ",1:" Not Performed: ")_$$FMTE^XLFDT(LRNOW,"5FMPZ")_" by "_DUZ,1,68)
 S DA=LRIDT,DA(1)=LRDFN,DIE="^LR("_LRDFN_","""_LRSS_""","
 S LRCCOM0=$TR(LRCCOM0,";","-") ; Strip ";" - FileMan uses ";" to parse DR string.
 S DR=".99///^S X="_""""_LRCCOM0_"""" D ^DIE
 Q:LRSS="MI"
631 K D0,D1,DA,DR,DIC,DIE
 S DIC(0)="SL"
 S DA=LRIDT,DA(1)=LRDFN,DIE="^LR("_LRDFN_","""_LRSS_""",",DIC=DIE
 S LRCCOM=$TR(LRCCOM,";","-") ; Strip ";" - FileMan uses ";" to parse DR string.
 S DR=".99///^S X="_""""_LRCCOM_""""
 D ^DIE
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRHYDEL   7903     printed  Sep 23, 2025@19:50:56                                                                                                                                                                                                     Page 2
LRHYDEL   ;DALOI/HOAK - HOWDY DEL A TEST ;8/28/2005
 +1       ;;5.2;LAB SERVICE;**405**;Sep 27, 1994;Build 93
 +2       ;
 +3       ;
 +4       ;Cancel tests - Test are no longer deleted, instead the status is changed to Not Performed.
EN        ;
 +1        DO ^LRPARAM
           if $GET(LREND)
               QUIT 
 +2        IF '$DATA(LRLABKY)
               WRITE !?5,"You are not authorized to change test status.",!,$CHAR(7)
               SET LREND=1
               QUIT 
 +3        KILL LRXX,LRSCNXB
           WRITE @IOF
 +4        FOR 
               SET (LREND,LRNOP)=0
               DO FIX
               Begin DoDot:1
 +5                IF $GET(LREND)
                       DO END
                       SET LREND=1
                       QUIT 
 +6                KILL DIC
                   if '$GET(LRNOP)
                       DO CHG
                   DO END
               End DoDot:1
               IF $GET(LREND)
                   DO END
                   QUIT 
 +7        QUIT 
FIX        SET (LREND,LRNOP)=0
           SET LRNOW=$$NOW^XLFDT
 +1        WRITE !
           SET LRACC=1
           DO LRACC
           if $GET(LRNOP)
               QUIT 
 +2        KILL LRACC,LRNATURE
           IF $GET(LRAN)<1
               SET LREND=1
               QUIT 
 +3        IF '$PIECE($GET(^LRO(68,+$GET(LRAA),1,+$GET(LRAD),1,+$GET(LRAN),0)),U,2)
               WRITE !?5,"Accession has no Test ",!
               SET LRNOP=1
               QUIT 
 +4        LOCK +^LRO(68,LRAA,1,LRAD,1,LRAN):$GET(DILOCKTM,3)
           IF '$TEST
               WRITE !,"Someone else is working on this accession",!
               SET LRNOP=1
               QUIT 
 +5        SET LRX=^LRO(68,LRAA,1,LRAD,1,LRAN,0)
           SET LRACN=$PIECE(^(.2),U)
           SET LRUID=$PIECE(^(.3),U)
 +6        SET LRDFN=+LRX
           SET LRSN=+$PIECE(LRX,U,5)
           SET LRODT=+$PIECE(LRX,U,4)
 +7        SET LRDPF=$PIECE(^LR(LRDFN,0),U,2)
           SET DFN=$PIECE(^(0),U,3)
 +8        DO PT^LRX
           WRITE !,PNM,?30,SSN
 +9        SET LRIDT=$PIECE($GET(^LRO(68,LRAA,1,LRAD,1,LRAN,3)),U,5)
           LOCK +^LR(LRDFN,LRSS,LRIDT):$GET(DILOCKTM,3)
           IF '$TEST
               WRITE !,"Someone else is working on this data."
               LOCK -^LRO(68,LRAA,1,LRAD,1,LRAN)
               SET LRNOP=1
               QUIT 
 +10       IF '$GET(^LR(LRDFN,LRSS,LRIDT,0))
               WRITE !?5," Can't find Lab Data for this accession",!
               DO UNLOCK
               SET LRNOP=1
               QUIT 
 +11       IF LRODT
               IF LRSN
                   IF $DATA(^LRO(69,LRODT,1,LRSN,0))#2
                       Begin DoDot:1
 +12                       NEW LRACN,LRAA,LRAD
 +13                       DO SHOW^LROS
                       End DoDot:1
 +14       KILL DIR
           SET DIR(0)="E"
           DO ^DIR
           if $EXTRACT(X)=U
               SET LRNOP=1
           if $GET(LRNOP)
               QUIT 
FX1       ;
 +1        DO SHOWTST
 +2        QUIT 
CHG        KILL LRCTST,DIC
           WRITE !
 +1        if '$DATA(DIC("A"))
               SET DIC("A")="Change which LABORATORY TEST: "
 +2        SET DIC="^LRO(68,"_LRAA_",1,"_LRAD_",1,"_LRAN_",4,"
           SET DIC("S")="I '$L($P(^(0),U,5))"
           SET DIC(0)="AEMOQ"
 +3        FOR 
               DO ^DIC
               if Y<1
                   QUIT 
               SET LRCTST(+Y)=$PIECE(^LAB(60,+Y,0),U)
               SET DIC("A")="Select another test: "
 +4        KILL DIC
           IF '$ORDER(LRCTST(0))
               Begin DoDot:1
 +5                LOCK -^LR(LRDFN,LRSS,LRIDT)
                   LOCK -^LRO(68,LRAA,1,LRAD,1,LRAN)
 +6                WRITE !?5,"No Test Selected",!
               End DoDot:1
               QUIT 
 +7        IF '$LENGTH(LRODT)&'$LENGTH(LRSN)
               WRITE !,"NO CHANGE"
               DO UNLOCK
               DO END
               QUIT 
 +8        KILL LRCCOM
           SET LRCCOM=""
           SET LREND=0
           IF '$DATA(^LRO(69,LRODT,1,LRSN,0))#2
               WRITE !?5,"There is no Order for this Accession",!
               DO UNLOCK
               DO END
               QUIT 
 +9        WRITE @IOF,!!?5,"Change Accession : ",LRACN,?40,"UID: ",LRUID
 +10       SET I=0
           FOR 
               SET I=$ORDER(LRCTST(I))
               if I<1
                   QUIT 
               WRITE !?10,LRCTST(I)
 +11       DO FX2
           if $GET(LREND)
               QUIT 
 +12       SET LRTSTS=0
           FOR 
               SET LRTSTS=$ORDER(LRCTST(LRTSTS))
               if LRTSTS<1
                   QUIT 
               Begin DoDot:1
 +13               if '$DATA(^LAB(60,LRTSTS,0))#2
                       QUIT 
                   SET LRTNM=$PIECE(^(0),U)
 +14               SET LRORDTST=$PIECE(^LRO(68,LRAA,1,LRAD,1,LRAN,4,LRTSTS,0),U,9)
                   DO SET
 +15               if '$GET(LREND)
                       WRITE !?5,"[ "_LRTNM_" ] ",$SELECT('$DATA(LRLABKY):" Marked Canceled by Floor",1:" Marked Not Performed"),!
               End DoDot:1
 +16       SET LREND=0
           KILL LRCTST
 +17       QUIT 
SHOWTST   ;
 +1        NEW LRI,LRN,DIR,LRY,LRIC,X
 +2        SET DIR(0)="E"
 +3        DO DEMO
 +4        SET LRN=0
           SET LRI=0
           FOR 
               SET LRI=$ORDER(^LRO(68,LRAA,1,LRAD,1,LRAN,4,LRI))
               if LRI<1!($GET(LRY))
                   QUIT 
               Begin DoDot:1
 +5                SET LRIC=$PIECE($GET(^LRO(68,LRAA,1,LRAD,1,LRAN,4,LRI,0)),U,4,6)
                   if '$DATA(^LAB(60,+LRI,0))#2
                       QUIT 
                   WRITE !,?5,$PIECE(^(0),U)
                   SET LRN=LRN+1
                   IF LRIC
                       Begin DoDot:2
 +6                        WRITE ?35,"  "_$SELECT($LENGTH($PIECE(LRIC,U,3)):$PIECE(LRIC,U,3),1:"Completed")_"  "_$$FMTE^XLFDT($PIECE(LRIC,U,2),"5FMPZ")_" by "_$PIECE(LRIC,U)
                       End DoDot:2
 +7                IF LRN>18
                       DO ^DIR
                       if $EXTRACT(X)=U
                           SET LRY=1
                       if $GET(LRY)
                           QUIT 
                       DO DEMO
                       SET LRN=0
               End DoDot:1
 +8        SET X=^LRO(68,LRAA,1,LRAD,1,LRAN,0)
           SET LRODT=$PIECE(X,U,4)
           SET LRSN=$PIECE(X,U,5)
 +9        QUIT 
DEMO       WRITE !,PNM,?50,SSN
 +1        WRITE !,"TESTS ON ACCESSION: ",LRACN,?40,"UID: ",LRUID
 +2        QUIT 
SET       ;
 +1        if '$GET(LRNOW)
               SET LRNOW=$$NOW^XLFDT
 +2        SET LRLLOC=$PIECE(^LRO(69,LRODT,1,LRSN,0),U,7)
           Begin DoDot:1
 +3            NEW II,X,LRI,LRSTATUS,OCXTRACE
 +4            if $GET(LRDBUG)
                   SET OCXTRACE=1
 +5            SET LRI=0
               FOR 
                   SET LRI=$ORDER(^LRO(69,LRODT,1,LRSN,2,LRI))
                   if LRI<1
                       QUIT 
                   IF $DATA(^(LRI,0))#2
                       IF LRTSTS=+^(0)
                           SET (LRSTATUS,II(LRTSTS))=""
                           Begin DoDot:2
 +6                            if $PIECE(^LRO(69,LRODT,1,LRSN,2,LRI,0),U,12)
                                   QUIT 
 +7                            if $PIECE(^LRO(69,LRODT,1,LRSN,2,LRI,0),U,11)
                                   QUIT 
                               SET ORIFN=$PIECE(^(0),U,7)
 +8                            SET X=1+$ORDER(^LRO(69,LRODT,1,LRSN,2,LRI,1.1,"A"),-1)
                               SET X(1)=$PIECE($GET(^(0)),U,4)
 +9                            SET ^LRO(69,LRODT,1,LRSN,2,LRI,1.1,X,0)=$PIECE($GET(LRNATURE),U,5)_": "_LRCCOM
                               SET X=X+1
                               SET X(1)=X(1)+1
 +10                           SET ^LRO(69,LRODT,1,LRSN,2,LRI,1.1,X,0)="*NP Action:"_$$FMTE^XLFDT(LRNOW,"5MZ")
 +11                           SET ^LRO(69,LRODT,1,LRSN,2,LRI,1.1,0)="^^"_X_"^"_X(1)_"^"_DT
 +12                           IF $GET(ORIFN)
                                   IF $DATA(II)
                                       DO NEW^LR7OB1(LRODT,LRSN,$SELECT($GET(LRMSTATI)=""!($GET(LRMSTATI)=1):"OC",1:"SC"),$GET(LRNATURE),.II,LRSTATUS)
 +13                           IF ORIFN
                                   IF $$VER^LR7OU1<3
                                       DO DC^LRCENDE1
 +14                           SET $PIECE(^LRO(69,LRODT,1,LRSN,2,LRI,0),"^",9)="CA"
                               SET $PIECE(^(0),U,10)="L"
                               SET $PIECE(^(0),U,11)=DUZ
 +15                           if $DATA(^LRO(69,LRODT,1,LRSN,"PCE"))
                                   SET ^LRO(69,"AE",DUZ,LRODT,LRSN,LRI)=""
                           End DoDot:2
                           KILL II
           End DoDot:1
 +16       KILL ORIFN,ORSTS
 +17       IF $DATA(^LRO(68,+$GET(LRAA),1,+$GET(LRAD),1,+$GET(LRAN),0))#2
               IF $DATA(^(4,$GET(LRTSTS),0))#2
                   SET $PIECE(^(0),U,4,6)=DUZ_U_LRNOW_U_$SELECT($GET(LRMERG):"*Merged",1:"*Not Performed")
                   Begin DoDot:1
 +18                   SET LROWDT=$PIECE($GET(^LRO(68,LRAA,1,LRAD,1,LRAN,0)),U,3)
                       IF LROWDT
                           IF LROWDT'=LRAD
                               DO ROL
                               QUIT 
 +19                   SET LROWDT=+$GET(^LRO(68,LRAA,1,LRAD,1,LRAN,9))
                       IF LROWDT
                           DO ROL
                   End DoDot:1
 +20       if $GET(LRSS)["MI"
               QUIT 
 +21       IF $GET(LRIDT)
               IF $LENGTH($GET(LRSS))
                   IF $LENGTH(LRCCOM)
                       IF $GET(^LR(LRDFN,LRSS,LRIDT,0))
                           Begin DoDot:1
 +22                           if $GET(LRSS)["MI"
                                   QUIT 
 +23                           DO 63(LRDFN,LRSS,LRIDT,LRTNM,LRCCOM)
 +24                           if '$DATA(^LRO(68,LRAA,1,LRAD,1,"AD",DT,LRAN))
                                   DO XREF^LRVER3A
                           End DoDot:1
 +25      ; Put in list to check for auto download.
           DO EN^LA7ADL($PIECE($GET(^LRO(68,+$GET(LRAA),1,+$GET(LRAD),1,+$GET(LRAN),.3)),"^"))
 +26       QUIT 
ROL       ;
 +1        if +$GET(^LRO(68,LRAA,1,LROWDT,1,LRAN,0))'=LRDFN
               QUIT 
           if '$DATA(^(4,LRTSTS,0))#2
               QUIT 
 +2        SET $PIECE(^LRO(68,LRAA,1,LROWDT,1,LRAN,4,LRTSTS,0),U,4,6)=DUZ_U_LRNOW_U_"*Not performed"
 +3        QUIT 
LRACC      KILL LRAN
 +1        SET LREND=0
           SET LREXMPT=1
           DO ^LRWU4
           KILL LREXMPT
 +2        if '$GET(LRAA)!('$GET(LRAN))!('$DATA(^LRO(68,LRAA,0))#2)
               QUIT 
 +3        SET DA(2)=LRAA
           SET DA(1)=LRAD
           SET LRSS=$PIECE(^LRO(68,LRAA,0),U,2)
 +4        IF '$LENGTH(LRSS)
               SET LRAN=0
               SET LRNOP=1
               WRITE !?5,"No Subscript for this Accession Area ",!!
 +5        QUIT 
LREND      SET LREND=1
           QUIT 
UNLOCK    ;
 +1        LOCK -(^LR($GET(LRDFN),$GET(LRSS),$GET(LRIDT)),^LRO(68,$GET(LRAA),1,$GET(LRAD),1,$GET(LRAN)))
           DO END
           QUIT 
EXIT      ;
 +1        KILL LRSCNX,LRNOECHO,LRACN,LRLABRV,LRNOW
END       ;
 +1        KILL LRCCOM0,LRCCOM1,LRCCOMX,LREND,LRI,LRL,LRNATURE,LRNOP,LRSCN,LRMSTATI,LRORDTST,LROWDT,LRPRAC,LRTSTS,LRUID
 +2        KILL Q9,LRXX,DIR,LRCOM,LRAGE,DI,LRCTST,LRACN,LRACN0,LRDOC,LRLL,LRNOW,LRDBUG
 +3        KILL LROD0,LROD1,LROD3,LROOS,LROS,LROSD,LROT,LRROD,LRTT,X4
 +4        DO KVA^VADPT
           DO END^LRTSTJAM
 +5        QUIT 
FX2       ;
 +1        SET LRLABKY=""
           GOTO FX3
 +2        SET LRNATURE="W"
 +3        SET LREND=0
 +4        SET LRL=52
           IF '$DATA(LRLABKY)
               GOTO FX3
 +5        KILL DIR
           SET (LRCOM,LRCCOM1)=""
           WRITE !
 +6        SET DIR(0)="62.5,5"
           SET DIR("A")="Select NP comment Lab Description screen  "
           if $LENGTH($GET(LRSCNXB))
               SET DIR("B")=LRSCNXB
 +7        SET DIR("?")="Select Lab Description file screen to be used to expand your NP reason."
 +8        SET DIR("?",1)=" Press return to accept the default expansion screens."
 +9        SET DIR("?",2)="  "
 +10       SET DIR("?",3)="Select the Lab Description file expansion screen."
 +11       SET DIR("?",4)="The default expansion screens are GENERAL, ORDER and LAB"
 +12       SET DIR("?",5)="You may select addition lab description expansion screens"
 +13       SET DIR("?",6)="Press return if you want to only use the default screens"
 +14       SET DIR("?",7)=" "
 +15       KILL LRSCNXB,LRNOECHO
 +16       if '$DATA(LRSCN)
               SET LRSCN="AKL"
 +17       SET X="LAB"
 +18       IF $EXTRACT(X)="@"
               SET LRSCN="AKL"
               SET LRSCNXB=""
               GOTO FX2
 +19       IF $LENGTH(X)
               SET LRSCNXB=X
               SET LRSCN=LRSCN_1
FX3        KILL DIR
           WRITE !
 +1       ;
 +2        SET LRL=1
 +3        KILL LRLABKY
 +4        SET X="DUPLICATE"
 +5        SET DIR("A")=$SELECT('$DATA(LRLABKY):"Reason for Cancel",1:"Not Perform Reason ")
           if $LENGTH($GET(LRXX))
               SET DIR("B")=$GET(LRXX)
 +6        SET DIR(0)="FU^1:"_LRL_"^"
 +7        SET (LRCCOM,LRCCOMX)=X
 +8       ;
 +9        IF '$DATA(X)
               GOTO FX2
 +10       IF $EXTRACT(X,$LENGTH(X))=" "
               SET X=$EXTRACT(X,1,($LENGTH(X)-1))
 +11       SET (LRCCOM,LRCCOMX)=X
 +12       IF '$DATA(LRLABKY)
               WRITE !,"("_LRCCOM_")"
 +13       SET Y=1
 +14       KILL DIR
 +15       IF Y'=1
               QUIT 
 +16       SET LRCCOM=$EXTRACT($SELECT('$DATA(LRLABKY):"*"_$PIECE($GET(^VA(200,DUZ,0)),U)_"  Cancel Reason:",1:"*NP Reason:")_LRCCOM,1,68)
 +17       SET LRCCOM="S LRCCOM=DUPLICATE: *NP Reason: Duplicate"
 +18       SET LRCCOM="DUPLICATE: *NP Reason: Duplicate"
 +19       DO EN1^LRHY22
 +20       QUIT 
 +21      ;
63(LRDFN,LRSS,LRIDT,LRTNM,LRCCOM) ;
 +1        if $GET(LRSS)["MI"
               QUIT 
 +2        NEW X,Y,D0,D1,DA,DR,DIC,DIE,LRCCOM0,LRNOECHO,DLAYGO
 +3        SET DLAYGO=63
           SET DIC(0)="SL"
 +4        if '$GET(LRNOW)
               SET LRNOW=$$NOW^XLFDT
 +5        SET LRNOECHO=1
 +6        SET LRCCOM0=$EXTRACT("*"_LRTNM_$SELECT($GET(LRMERG):" Merged: ",'$DATA(LRLABKY):" "_$PIECE($GET(^VA(200,DUZ,0)),U)_" Canceled: ",1:" Not Performed: ")_$$FMTE^XLFDT(LRNOW,"5FMPZ")_" by "_DUZ,1,68)
 +7        SET DA=LRIDT
           SET DA(1)=LRDFN
           SET DIE="^LR("_LRDFN_","""_LRSS_""","
 +8       ; Strip ";" - FileMan uses ";" to parse DR string.
           SET LRCCOM0=$TRANSLATE(LRCCOM0,";","-")
 +9        SET DR=".99///^S X="_""""_LRCCOM0_""""
           DO ^DIE
 +10       if LRSS="MI"
               QUIT 
631        KILL D0,D1,DA,DR,DIC,DIE
 +1        SET DIC(0)="SL"
 +2        SET DA=LRIDT
           SET DA(1)=LRDFN
           SET DIE="^LR("_LRDFN_","""_LRSS_""","
           SET DIC=DIE
 +3       ; Strip ";" - FileMan uses ";" to parse DR string.
           SET LRCCOM=$TRANSLATE(LRCCOM,";","-")
 +4        SET DR=".99///^S X="_""""_LRCCOM_""""
 +5        DO ^DIE
 +6        QUIT