LRAPED ;DALOI/STAFF,PMK - ANATOMIC PATH EDIT LOG-IN ;17 Sep 2013 7:31 AM
 ;;5.2;LAB SERVICE;**1,31,72,115,259,350,427,433,428**;Sep 27, 1994;Build 16
 ;
 ;RB LR*5.2*428 Added code to insure a defined site hospital location
 ;              can be entered when editing the patient location field.
 ;              This insures the correct location and patient type will
 ;              be propagated to corresponding fields in file #68 and
 ;              #69. This insures the log book reflects the correct
 ;              patient location and CPT data transfer to PCE will be
 ;              based on an accurate patient type.
 ;
 N LRTMP,LRREL,LRCOMP,LRMSG
 D ^LRAP Q:'$D(Y)
 D XR^LRU
 I LRCAPA D @(LRSS_"^LRAPSWK") G:'$D(X) END
 W !!,"EDIT ",LRO(68)," (",LRABV,") Log-In/Clinical Hx for ",LRH(0)," "
 S %=1 D YN^LRU G:%<1 END
 I %=2 D  G:Y<1 END
 . S %DT="AE",%DT(0)="-N",%DT("A")="Enter YEAR: "
 . D ^%DT K %DT
 . Q:Y<1
 . S LRAD=$E(Y,1,3)_"0000",Y=LRAD D D^LRU S LRH(0)=Y
 S LRC=$E(LRAD,1,3)
G ;
 W !!,"Enter ",LRO(68)," Accession #: " R LRAN:DTIME
 G:LRAN=""!(LRAN[U) END
 I LRAN'?1N.N!($E(LRAN)=0) D  G G
 .W $C(7),!," ENTER NUMBERS ONLY, No leading zero's"
 D EDIT I $G(END)=1 K END    ;LR*5.2*428 quit if not valid location
 ;
 I $T(EDIT^MAGT7MA)'="" D EDIT^MAGT7MA ; invoke Imaging HL7 routine - P433
 ;
 G G
 ;
 ;
EDIT ;
 N LRDIWESUB,LRFILE,LRACC
 S LRDFN=$O(^LR(LRXREF,LRC,LRABV,LRAN,0))
 I 'LRDFN W $C(7),"  Not in file" Q
 I '$D(^LR(LRDFN,0)) K ^LR(LRXREF,LRC,LRABV,LRAN,LRDFN) Q
 S X=^LR(LRDFN,0) D ^LRUP W !,LRP," ID: ",SSN," OK "
 S %=1 D YN^LRU Q:%'=1
 D @($S("CYEMSP"[LRSS:"I",1:"A"))
 Q
 ;
 ;
I ;Non-autopsy sections (SP,CY,EM)
 D GETDEF^LRAP
 S LRI=+$O(^LR(LRXREF,LRC,LRABV,LRAN,LRDFN,0))
 I '$D(^LR(LRDFN,LRSS,LRI,0)) D  Q
 . W $C(7),!,"Entry in x-ref but not in file ! X-ref deleted."
 . K ^LR(LRXREF,LRC,LRABV,LRAN,LRDFN,LRI)
 S X=^LR(LRDFN,LRSS,LRI,0),LRRC=$P(X,"^",10)
 S DA=LRI,DA(1)=LRDFN,DIE="^LR("_LRDFN_","""_LRSS_""",",(LRB,Y)=+X
 D D^LRU W !,"Specimen date: ",Y
 I $P(^LR(LRDFN,LRSS,LRI,0),"^",11)!($P(^(0),"^",3)) D  Q
 . W $C(7),!!,"Report released or completed.  Cannot edit Log-in data."
 D:LRCAPA C^LRAPSWK
 ;
DIE ;
 ;
 W ! D CK^LRU
 I $D(LR("CK")) K LR("CK") Q
 S LRACC=$P($G(^LR(LRDFN,LRSS,LRI,0)),"^",6)
 ;
 S LRDIWESUB="["_LRACC_"]"
 ;
 ;LR*5.2*428 START: ASK LOCATION PER FILE 44 DEFINED
 S LRLLOC=$P($G(^LR(LRDFN,LRSS,LRI,0)),"^",8)
 D ASK I $G(END)=1 Q
 ;
 S DA=LRI,DA(1)=LRDFN,DIE="^LR("_LRDFN_","""_LRSS_""","
 S DR=".08///^S X=LRLLOC" D ^DIE K DR
 ;SET Associated files 68 & 69 LOCATION & TYPE fields
 D UIDEX      ;propagate LOCATION/TYPE info to files 68 & 69 fields
 ;LR*5.2*428 END: ASK LOCATION PER FILE 44 DEFINED
 ;
 S DA=LRI,DA(1)=LRDFN,DIE="^LR("_LRDFN_","""_LRSS_""","  ;LR*5.1*428 restore previous DIE setup
 D SET,^DIE
 I $D(Y) D HELP G DIE
 D CK
 D:$O(^LR(LRDFN,LRSS,LRI,.1,0))&("SPCYEM"[LRSS)&(LRCAPA) C1^LRAPSWK
 D FRE^LRU
 Q
 ;
 ;
SET ; Setup fields for SP, CY and EM subscripts to edit.
 ;
 ;N LRFIELD,LRFILE
 ;S LRFILE=$S(LRSS="SP":63.08,LRSS="CY":63.09,LRSS="EM":63.02,1:"")
 ;F LRFIELD=.013,.014,.015,.016 S LRDIWESUB(LRFILE,LRFIELD)=$$SET2(LRFILE,LRFIELD,LRACC)
 ;
 S (LRJ,LRE,LRF)=""
 S DR=".07;S LRJ=X;S:LRJ LRJ=$P(^VA(200,LRJ,0),U);"     ;LR*5.2*428 Remove .08 field edit
 S DR=DR_".011//^S X=LRJ;.012;.013;.014;.015;.016;.1;S LRG=X;.02;.021;"
 S DR=DR_".99;S LRF=X"
 ;
 I LRSS="SP" D
 . S DR(2,63.812)=".01;.06R//^S X=LRSPTOP(0);S:X LRSPTOP=X,LRSPTOP(0)=$P(^LAB(61,LRSPTOP,0),U)"
 . S DR(2,63.812)=DR(2,63.812)_";.07R//^S X=LRSAMP(0);S:X LRSAMP=X,LRSAMP(0)=$P(^LAB(62,LRSAMP,0),U)"
 ;
 I LRSS="CY" D
 . S DR(2,63.902)=".01;S LR(63.902)=X;.06R//^S X=LRSPTOP(0);S:X LRSPTOP=X,LRSPTOP(0)=$P(^LAB(61,LRSPTOP,0),U)"
 . S DR(2,63.902)=DR(2,63.902)_";.07R//^S X=LRSAMP(0);S:X LRSAMP=X,LRSAMP(0)=$P(^LAB(62,LRSAMP,0),U);S:'LRCAPA Y=""@2"";.02;@2"
 ;
 I LRSS="EM" D
 . S DR(2,63.202)=".01;.06R//^S X=LRSPTOP(0);S:X LRSPTOP=X,LRSPTOP(0)=$P(^LAB(61,LRSPTOP,0),U)"
 . S DR(2,63.202)=DR(2,63.202)_";.07R//^S X=LRSAMP(0);S:X LRSAMP=X,LRSAMP(0)=$P(^LAB(62,LRSAMP,0),U)"
 Q
 ;
 ;
SET1 ; Setup autopsy fields to edit.
 ;
 S LRJ="",DA=LRDFN,DIE="^LR(",DR="11;S LRRC=X;14.1;S LRLLOC=X;14.5;"
 S DR=DR_"14.6;S LRSVC=X;12.1;S LRMD=X;13.5:13.8"
 S:%=1 DR=DR_";16:24;26:31;25;31.1:31.4;25.1:25.9"
 D D^LRAUAW
 S (Y,LRB)=LR(63,12),LRI=9999999-$P(LRB,".")
 Q
 ;
 ;
SET2(FILE,FIELD,PREFIX) ; Build field name with specified prefix.
 ; Call with  FILE = file or subfile number
 ;           FIELD = field number of WP field
 ;          PREFIX = prefix for subject header
 ;
 N LABEL
 S LABEL=$$GET1^DID(FILE,FIELD,"","LABEL")
 I LABEL'="" S LABEL=PREFIX_" "_LABEL
 ;
 Q LABEL
 ;
 ;
A ;Autopsy
 S LRREL=+$$GET1^DIQ(63,LRDFN_",",14.7,"I")
 S LRCOMP=+$$GET1^DIQ(63,LRDFN_",",13,"I")
 I LRREL!LRCOMP D  Q
 . D EN^DDIOL($C(7)_"Report released or completed.  Cannot edit Log-in data.","","!!")
 W !!,"Edit Weights & Measurements " S %=2 D YN^LRU Q:%<1
 S LRRC=$P(^LR(LRDFN,"AU"),U),DA=LRDFN,DIE="^LR("
 D SET1,D^LRU
 W !!,"Date Died: ",Y
 I 'LRB D  Q
 . W $C(7),"?  Must have date died entered in ",LR(63,.02)," File."
 ;
 S LRACC=$P($G(^LR(LRDFN,"AU")),"^",6)
 ;
AU ;
 ;
 S LRDIWESUB="["_LRACC_"]"
 W ! D ^DIE
 I $D(Y) D HELP G AU
 D CK1
 Q
 ;
 ;
CK ;
 I '$D(^LR(LRDFN,LRSS,LRI)) D K
 Q
 ;
 ;
CK1 ;
 Q:'$D(^LRO(68,LRAA,1,LRAD,1,LRAN,0))  S X=^(0)
 S:'$D(^LRO(68,LRAA,1,LRAD,1,LRAN,3)) ^(3)=LRB_"^^^^"_LRI
 S LRTMP=$P(X,U,1,2)_U_LRRC_U_$P(X,U,4,6)_U_LRLLOC_U_LRMD_U_LRSVC
 S LRTMP=LRTMP_U_$P(X,U,10)
 S ^LRO(68,LRAA,1,LRAD,1,LRAN,0)=LRTMP
 S LRD=+$P(X,U,3)
 K ^LRO(68,LRAA,1,LRAD,1,"E",LRD,LRAN)
 S ^LRO(68,LRAA,1,LRAD,1,"E",LRRC,LRAN)=""
 S X=^LRO(68,LRAA,1,LRAD,1,LRAN,3),^(3)=LRB_U_$P(X,U,2,99)
 Q
 ;
 ;
K ;
 Q:'$D(^LRO(68,LRAA,1,LRAD,1,LRAN))  D K^LRUDEL
 L +^LRO(68,LRAA):999
 K ^LRO(68,LRAA,1,LRAD,1,LRAN),^LRO(68,LRAA,1,LRAD,1,"E",LRRC,LRAN)
 K ^LRO(68,LRAA,1,"AC",DUZ(2),LRAD,LRAN)
 S X=^LRO(68,LRAA,1,LRAD,1,0)
 S LRTMP=$P(X,"^",1,2)_"^"_(LRAN-1)_"^"_($P(X,"^",4)-1)
 S ^LRO(68,LRAA,1,LRAD,1,0)=LRTMP
 L -^LRO(68,LRAA)
 F A=1,2,3,4 D
 . I $D(^LRO(69.2,LRAA,A,LRAN)) K ^(LRAN) D
 . . S X(1)=$O(^LRO(69.2,LRAA,A,0)) S:'X(1) X(1)=0
 . . I $D(^LRO(69.2,LRAA,A,0)) D
 . . . L +^LRO(69.2,LRAA,A):999
 . . . S X=^LRO(69.2,LRAA,A,0)
 . . . S LRTMP=$P(X,"^",1,2)_"^"_X(1)_"^"_$S(X(1)=0:X(1),1:($P(X,"^",4)-1))
 . . . S ^LRO(69.2,LRAA,A,0)=LRTMP
 . . . L -^LRO(69.2,LRAA,A)
 Q
 ;
 ;
HELP ;
 W $C(7),!!,"Please do not exit EDIT with an ""^""."
 W !,"Press RETURN key repeatedly to complete the edit.",!!
 Q
 ;
 ;LR*5.2*428 Added location query to insure location defined in file 44
ASK W !,"PATIENT LOCATION: ",LRLLOC,$S(LRLLOC]"":"// ",1:"") R X:DTIME G:X[U ASKOUT I '$T&(LRLLOC="") W "   Must enter defined location" G ASK
 I $L(X)>30!(X'?.ANP) W "  Enter 2 - 30 alpha-numeric name" G ASK
 K DIC S DIC("S")="I '$G(^(""OOS""))"
 S LROLLOC="",DIC=44,DIC(0)="EMOQZ" S:X="" X=LRLLOC D ^DIC K DIC G ASK:X["?"
 I $D(DIROUT)!$D(DTOUT)!$D(DUOUT) G ASKOUT
 I Y<0 W "  You must select a standard location." G ASK
 S (LRE,LROLLOC)=+Y,LRLLOC=$P(Y(0),U),LRLOCTYP=$P(Y(0),U,3)
 S:'$L(LRLLOC) LRLLOC="NO ABRV"
INACT K LRIA,LRRA I $D(^SC(+Y,"I")) S LRIA=+^("I"),LRRA=$P(^("I"),U,2)
 I $S('$D(LRIA):0,'LRIA:0,LRIA>DT:0,LRRA'>DT&(LRRA):0,1:1) W $C(7),"  Location is inactive, Not allowed." G ASK
ASKQ K DIC,LRIA,LRRA,% Q
ASKOUT W !,"  VALID LOCATION REQUIRED TO CONTINUE, EXITING SELECTED ACCESSION" S END=1 G ASKQ
 ;
END ;
 D V^LRU K DUOUT,DIRUT,DTOUT
 Q
 ;
UIDEX ;LR*5.2*428 Propagate location/type to file 68 & 69 associated fields
 ;Find 68 link using UID from file 63 accession
 N X1,X2,X3,X4,X5 S (X1,X2,X3)=0
 S LRUID=$P($G(^LR(LRDFN,LRSS,LRI,"ORU")),U) G:LRUID="" UIDEXQ
 S X1=$O(^LRO(68,"C",LRUID,X1)) G:'X1 UIDEXQ
 S X2=$O(^LRO(68,"C",LRUID,X1,X2)) G:'X2 UIDEXQ
 S X3=$O(^LRO(68,"C",LRUID,X1,X2,X3)) G:'X3 UIDEXQ
 S DIE="^LRO(68,X1,1,X2,1,",DA=X3,DR="6////^S X=LRLLOC;92///^S X=LRLOCTYP"
 D ^DIE K DR,DIE,DA,LRUID
 ;Find 69 link using date/accession number in file 68
 S X4=$P(^LRO(68,X1,1,X2,1,X3,0),U,4),X5=$P(^LRO(68,X1,1,X2,1,X3,0),U,5)
 I X4&X5&$D(^LRO(69,X4,1,X5,0)) D
 . S DIE="^LRO(69,X4,1,",DA=X5,DA(1)=X4,DR="8////^S X=LROLLOC"
 D ^DIE
UIDEXQ K DR,DIE,DA,LRLLOC,LRLOCTYP,LROLLOC
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRAPED   8355     printed  Sep 23, 2025@19:43                                                                                                                                                                                                         Page 2
LRAPED    ;DALOI/STAFF,PMK - ANATOMIC PATH EDIT LOG-IN ;17 Sep 2013 7:31 AM
 +1       ;;5.2;LAB SERVICE;**1,31,72,115,259,350,427,433,428**;Sep 27, 1994;Build 16
 +2       ;
 +3       ;RB LR*5.2*428 Added code to insure a defined site hospital location
 +4       ;              can be entered when editing the patient location field.
 +5       ;              This insures the correct location and patient type will
 +6       ;              be propagated to corresponding fields in file #68 and
 +7       ;              #69. This insures the log book reflects the correct
 +8       ;              patient location and CPT data transfer to PCE will be
 +9       ;              based on an accurate patient type.
 +10      ;
 +11       NEW LRTMP,LRREL,LRCOMP,LRMSG
 +12       DO ^LRAP
           if '$DATA(Y)
               QUIT 
 +13       DO XR^LRU
 +14       IF LRCAPA
               DO @(LRSS_"^LRAPSWK")
               if '$DATA(X)
                   GOTO END
 +15       WRITE !!,"EDIT ",LRO(68)," (",LRABV,") Log-In/Clinical Hx for ",LRH(0)," "
 +16       SET %=1
           DO YN^LRU
           if %<1
               GOTO END
 +17       IF %=2
               Begin DoDot:1
 +18               SET %DT="AE"
                   SET %DT(0)="-N"
                   SET %DT("A")="Enter YEAR: "
 +19               DO ^%DT
                   KILL %DT
 +20               if Y<1
                       QUIT 
 +21               SET LRAD=$EXTRACT(Y,1,3)_"0000"
                   SET Y=LRAD
                   DO D^LRU
                   SET LRH(0)=Y
               End DoDot:1
               if Y<1
                   GOTO END
 +22       SET LRC=$EXTRACT(LRAD,1,3)
G         ;
 +1        WRITE !!,"Enter ",LRO(68)," Accession #: "
           READ LRAN:DTIME
 +2        if LRAN=""!(LRAN[U)
               GOTO END
 +3        IF LRAN'?1N.N!($EXTRACT(LRAN)=0)
               Begin DoDot:1
 +4                WRITE $CHAR(7),!," ENTER NUMBERS ONLY, No leading zero's"
               End DoDot:1
               GOTO G
 +5       ;LR*5.2*428 quit if not valid location
           DO EDIT
           IF $GET(END)=1
               KILL END
 +6       ;
 +7       ; invoke Imaging HL7 routine - P433
           IF $TEXT(EDIT^MAGT7MA)'=""
               DO EDIT^MAGT7MA
 +8       ;
 +9        GOTO G
 +10      ;
 +11      ;
EDIT      ;
 +1        NEW LRDIWESUB,LRFILE,LRACC
 +2        SET LRDFN=$ORDER(^LR(LRXREF,LRC,LRABV,LRAN,0))
 +3        IF 'LRDFN
               WRITE $CHAR(7),"  Not in file"
               QUIT 
 +4        IF '$DATA(^LR(LRDFN,0))
               KILL ^LR(LRXREF,LRC,LRABV,LRAN,LRDFN)
               QUIT 
 +5        SET X=^LR(LRDFN,0)
           DO ^LRUP
           WRITE !,LRP," ID: ",SSN," OK "
 +6        SET %=1
           DO YN^LRU
           if %'=1
               QUIT 
 +7        DO @($SELECT("CYEMSP"[LRSS:"I",1:"A"))
 +8        QUIT 
 +9       ;
 +10      ;
I         ;Non-autopsy sections (SP,CY,EM)
 +1        DO GETDEF^LRAP
 +2        SET LRI=+$ORDER(^LR(LRXREF,LRC,LRABV,LRAN,LRDFN,0))
 +3        IF '$DATA(^LR(LRDFN,LRSS,LRI,0))
               Begin DoDot:1
 +4                WRITE $CHAR(7),!,"Entry in x-ref but not in file ! X-ref deleted."
 +5                KILL ^LR(LRXREF,LRC,LRABV,LRAN,LRDFN,LRI)
               End DoDot:1
               QUIT 
 +6        SET X=^LR(LRDFN,LRSS,LRI,0)
           SET LRRC=$PIECE(X,"^",10)
 +7        SET DA=LRI
           SET DA(1)=LRDFN
           SET DIE="^LR("_LRDFN_","""_LRSS_""","
           SET (LRB,Y)=+X
 +8        DO D^LRU
           WRITE !,"Specimen date: ",Y
 +9        IF $PIECE(^LR(LRDFN,LRSS,LRI,0),"^",11)!($PIECE(^(0),"^",3))
               Begin DoDot:1
 +10               WRITE $CHAR(7),!!,"Report released or completed.  Cannot edit Log-in data."
               End DoDot:1
               QUIT 
 +11       if LRCAPA
               DO C^LRAPSWK
 +12      ;
DIE       ;
 +1       ;
 +2        WRITE !
           DO CK^LRU
 +3        IF $DATA(LR("CK"))
               KILL LR("CK")
               QUIT 
 +4        SET LRACC=$PIECE($GET(^LR(LRDFN,LRSS,LRI,0)),"^",6)
 +5       ;
 +6        SET LRDIWESUB="["_LRACC_"]"
 +7       ;
 +8       ;LR*5.2*428 START: ASK LOCATION PER FILE 44 DEFINED
 +9        SET LRLLOC=$PIECE($GET(^LR(LRDFN,LRSS,LRI,0)),"^",8)
 +10       DO ASK
           IF $GET(END)=1
               QUIT 
 +11      ;
 +12       SET DA=LRI
           SET DA(1)=LRDFN
           SET DIE="^LR("_LRDFN_","""_LRSS_""","
 +13       SET DR=".08///^S X=LRLLOC"
           DO ^DIE
           KILL DR
 +14      ;SET Associated files 68 & 69 LOCATION & TYPE fields
 +15      ;propagate LOCATION/TYPE info to files 68 & 69 fields
           DO UIDEX
 +16      ;LR*5.2*428 END: ASK LOCATION PER FILE 44 DEFINED
 +17      ;
 +18      ;LR*5.1*428 restore previous DIE setup
           SET DA=LRI
           SET DA(1)=LRDFN
           SET DIE="^LR("_LRDFN_","""_LRSS_""","
 +19       DO SET
           DO ^DIE
 +20       IF $DATA(Y)
               DO HELP
               GOTO DIE
 +21       DO CK
 +22       if $ORDER(^LR(LRDFN,LRSS,LRI,.1,0))&("SPCYEM"[LRSS)&(LRCAPA)
               DO C1^LRAPSWK
 +23       DO FRE^LRU
 +24       QUIT 
 +25      ;
 +26      ;
SET       ; Setup fields for SP, CY and EM subscripts to edit.
 +1       ;
 +2       ;N LRFIELD,LRFILE
 +3       ;S LRFILE=$S(LRSS="SP":63.08,LRSS="CY":63.09,LRSS="EM":63.02,1:"")
 +4       ;F LRFIELD=.013,.014,.015,.016 S LRDIWESUB(LRFILE,LRFIELD)=$$SET2(LRFILE,LRFIELD,LRACC)
 +5       ;
 +6        SET (LRJ,LRE,LRF)=""
 +7       ;LR*5.2*428 Remove .08 field edit
           SET DR=".07;S LRJ=X;S:LRJ LRJ=$P(^VA(200,LRJ,0),U);"
 +8        SET DR=DR_".011//^S X=LRJ;.012;.013;.014;.015;.016;.1;S LRG=X;.02;.021;"
 +9        SET DR=DR_".99;S LRF=X"
 +10      ;
 +11       IF LRSS="SP"
               Begin DoDot:1
 +12               SET DR(2,63.812)=".01;.06R//^S X=LRSPTOP(0);S:X LRSPTOP=X,LRSPTOP(0)=$P(^LAB(61,LRSPTOP,0),U)"
 +13               SET DR(2,63.812)=DR(2,63.812)_";.07R//^S X=LRSAMP(0);S:X LRSAMP=X,LRSAMP(0)=$P(^LAB(62,LRSAMP,0),U)"
               End DoDot:1
 +14      ;
 +15       IF LRSS="CY"
               Begin DoDot:1
 +16               SET DR(2,63.902)=".01;S LR(63.902)=X;.06R//^S X=LRSPTOP(0);S:X LRSPTOP=X,LRSPTOP(0)=$P(^LAB(61,LRSPTOP,0),U)"
 +17               SET DR(2,63.902)=DR(2,63.902)_";.07R//^S X=LRSAMP(0);S:X LRSAMP=X,LRSAMP(0)=$P(^LAB(62,LRSAMP,0),U);S:'LRCAPA Y=""@2"";.02;@2"
               End DoDot:1
 +18      ;
 +19       IF LRSS="EM"
               Begin DoDot:1
 +20               SET DR(2,63.202)=".01;.06R//^S X=LRSPTOP(0);S:X LRSPTOP=X,LRSPTOP(0)=$P(^LAB(61,LRSPTOP,0),U)"
 +21               SET DR(2,63.202)=DR(2,63.202)_";.07R//^S X=LRSAMP(0);S:X LRSAMP=X,LRSAMP(0)=$P(^LAB(62,LRSAMP,0),U)"
               End DoDot:1
 +22       QUIT 
 +23      ;
 +24      ;
SET1      ; Setup autopsy fields to edit.
 +1       ;
 +2        SET LRJ=""
           SET DA=LRDFN
           SET DIE="^LR("
           SET DR="11;S LRRC=X;14.1;S LRLLOC=X;14.5;"
 +3        SET DR=DR_"14.6;S LRSVC=X;12.1;S LRMD=X;13.5:13.8"
 +4        if %=1
               SET DR=DR_";16:24;26:31;25;31.1:31.4;25.1:25.9"
 +5        DO D^LRAUAW
 +6        SET (Y,LRB)=LR(63,12)
           SET LRI=9999999-$PIECE(LRB,".")
 +7        QUIT 
 +8       ;
 +9       ;
SET2(FILE,FIELD,PREFIX) ; Build field name with specified prefix.
 +1       ; Call with  FILE = file or subfile number
 +2       ;           FIELD = field number of WP field
 +3       ;          PREFIX = prefix for subject header
 +4       ;
 +5        NEW LABEL
 +6        SET LABEL=$$GET1^DID(FILE,FIELD,"","LABEL")
 +7        IF LABEL'=""
               SET LABEL=PREFIX_" "_LABEL
 +8       ;
 +9        QUIT LABEL
 +10      ;
 +11      ;
A         ;Autopsy
 +1        SET LRREL=+$$GET1^DIQ(63,LRDFN_",",14.7,"I")
 +2        SET LRCOMP=+$$GET1^DIQ(63,LRDFN_",",13,"I")
 +3        IF LRREL!LRCOMP
               Begin DoDot:1
 +4                DO EN^DDIOL($CHAR(7)_"Report released or completed.  Cannot edit Log-in data.","","!!")
               End DoDot:1
               QUIT 
 +5        WRITE !!,"Edit Weights & Measurements "
           SET %=2
           DO YN^LRU
           if %<1
               QUIT 
 +6        SET LRRC=$PIECE(^LR(LRDFN,"AU"),U)
           SET DA=LRDFN
           SET DIE="^LR("
 +7        DO SET1
           DO D^LRU
 +8        WRITE !!,"Date Died: ",Y
 +9        IF 'LRB
               Begin DoDot:1
 +10               WRITE $CHAR(7),"?  Must have date died entered in ",LR(63,.02)," File."
               End DoDot:1
               QUIT 
 +11      ;
 +12       SET LRACC=$PIECE($GET(^LR(LRDFN,"AU")),"^",6)
 +13      ;
AU        ;
 +1       ;
 +2        SET LRDIWESUB="["_LRACC_"]"
 +3        WRITE !
           DO ^DIE
 +4        IF $DATA(Y)
               DO HELP
               GOTO AU
 +5        DO CK1
 +6        QUIT 
 +7       ;
 +8       ;
CK        ;
 +1        IF '$DATA(^LR(LRDFN,LRSS,LRI))
               DO K
 +2        QUIT 
 +3       ;
 +4       ;
CK1       ;
 +1        if '$DATA(^LRO(68,LRAA,1,LRAD,1,LRAN,0))
               QUIT 
           SET X=^(0)
 +2        if '$DATA(^LRO(68,LRAA,1,LRAD,1,LRAN,3))
               SET ^(3)=LRB_"^^^^"_LRI
 +3        SET LRTMP=$PIECE(X,U,1,2)_U_LRRC_U_$PIECE(X,U,4,6)_U_LRLLOC_U_LRMD_U_LRSVC
 +4        SET LRTMP=LRTMP_U_$PIECE(X,U,10)
 +5        SET ^LRO(68,LRAA,1,LRAD,1,LRAN,0)=LRTMP
 +6        SET LRD=+$PIECE(X,U,3)
 +7        KILL ^LRO(68,LRAA,1,LRAD,1,"E",LRD,LRAN)
 +8        SET ^LRO(68,LRAA,1,LRAD,1,"E",LRRC,LRAN)=""
 +9        SET X=^LRO(68,LRAA,1,LRAD,1,LRAN,3)
           SET ^(3)=LRB_U_$PIECE(X,U,2,99)
 +10       QUIT 
 +11      ;
 +12      ;
K         ;
 +1        if '$DATA(^LRO(68,LRAA,1,LRAD,1,LRAN))
               QUIT 
           DO K^LRUDEL
 +2        LOCK +^LRO(68,LRAA):999
 +3        KILL ^LRO(68,LRAA,1,LRAD,1,LRAN),^LRO(68,LRAA,1,LRAD,1,"E",LRRC,LRAN)
 +4        KILL ^LRO(68,LRAA,1,"AC",DUZ(2),LRAD,LRAN)
 +5        SET X=^LRO(68,LRAA,1,LRAD,1,0)
 +6        SET LRTMP=$PIECE(X,"^",1,2)_"^"_(LRAN-1)_"^"_($PIECE(X,"^",4)-1)
 +7        SET ^LRO(68,LRAA,1,LRAD,1,0)=LRTMP
 +8        LOCK -^LRO(68,LRAA)
 +9        FOR A=1,2,3,4
               Begin DoDot:1
 +10               IF $DATA(^LRO(69.2,LRAA,A,LRAN))
                       KILL ^(LRAN)
                       Begin DoDot:2
 +11                       SET X(1)=$ORDER(^LRO(69.2,LRAA,A,0))
                           if 'X(1)
                               SET X(1)=0
 +12                       IF $DATA(^LRO(69.2,LRAA,A,0))
                               Begin DoDot:3
 +13                               LOCK +^LRO(69.2,LRAA,A):999
 +14                               SET X=^LRO(69.2,LRAA,A,0)
 +15                               SET LRTMP=$PIECE(X,"^",1,2)_"^"_X(1)_"^"_$SELECT(X(1)=0:X(1),1:($PIECE(X,"^",4)-1))
 +16                               SET ^LRO(69.2,LRAA,A,0)=LRTMP
 +17                               LOCK -^LRO(69.2,LRAA,A)
                               End DoDot:3
                       End DoDot:2
               End DoDot:1
 +18       QUIT 
 +19      ;
 +20      ;
HELP      ;
 +1        WRITE $CHAR(7),!!,"Please do not exit EDIT with an ""^""."
 +2        WRITE !,"Press RETURN key repeatedly to complete the edit.",!!
 +3        QUIT 
 +4       ;
 +5       ;LR*5.2*428 Added location query to insure location defined in file 44
ASK        WRITE !,"PATIENT LOCATION: ",LRLLOC,$SELECT(LRLLOC]"":"// ",1:"")
           READ X:DTIME
           if X[U
               GOTO ASKOUT
           IF '$TEST&(LRLLOC="")
               WRITE "   Must enter defined location"
               GOTO ASK
 +1        IF $LENGTH(X)>30!(X'?.ANP)
               WRITE "  Enter 2 - 30 alpha-numeric name"
               GOTO ASK
 +2        KILL DIC
           SET DIC("S")="I '$G(^(""OOS""))"
 +3        SET LROLLOC=""
           SET DIC=44
           SET DIC(0)="EMOQZ"
           if X=""
               SET X=LRLLOC
           DO ^DIC
           KILL DIC
           if X["?"
               GOTO ASK
 +4        IF $DATA(DIROUT)!$DATA(DTOUT)!$DATA(DUOUT)
               GOTO ASKOUT
 +5        IF Y<0
               WRITE "  You must select a standard location."
               GOTO ASK
 +6        SET (LRE,LROLLOC)=+Y
           SET LRLLOC=$PIECE(Y(0),U)
           SET LRLOCTYP=$PIECE(Y(0),U,3)
 +7        if '$LENGTH(LRLLOC)
               SET LRLLOC="NO ABRV"
INACT      KILL LRIA,LRRA
           IF $DATA(^SC(+Y,"I"))
               SET LRIA=+^("I")
               SET LRRA=$PIECE(^("I"),U,2)
 +1        IF $SELECT('$DATA(LRIA):0,'LRIA:0,LRIA>DT:0,LRRA'>DT&(LRRA):0,1:1)
               WRITE $CHAR(7),"  Location is inactive, Not allowed."
               GOTO ASK
ASKQ       KILL DIC,LRIA,LRRA,%
           QUIT 
ASKOUT     WRITE !,"  VALID LOCATION REQUIRED TO CONTINUE, EXITING SELECTED ACCESSION"
           SET END=1
           GOTO ASKQ
 +1       ;
END       ;
 +1        DO V^LRU
           KILL DUOUT,DIRUT,DTOUT
 +2        QUIT 
 +3       ;
UIDEX     ;LR*5.2*428 Propagate location/type to file 68 & 69 associated fields
 +1       ;Find 68 link using UID from file 63 accession
 +2        NEW X1,X2,X3,X4,X5
           SET (X1,X2,X3)=0
 +3        SET LRUID=$PIECE($GET(^LR(LRDFN,LRSS,LRI,"ORU")),U)
           if LRUID=""
               GOTO UIDEXQ
 +4        SET X1=$ORDER(^LRO(68,"C",LRUID,X1))
           if 'X1
               GOTO UIDEXQ
 +5        SET X2=$ORDER(^LRO(68,"C",LRUID,X1,X2))
           if 'X2
               GOTO UIDEXQ
 +6        SET X3=$ORDER(^LRO(68,"C",LRUID,X1,X2,X3))
           if 'X3
               GOTO UIDEXQ
 +7        SET DIE="^LRO(68,X1,1,X2,1,"
           SET DA=X3
           SET DR="6////^S X=LRLLOC;92///^S X=LRLOCTYP"
 +8        DO ^DIE
           KILL DR,DIE,DA,LRUID
 +9       ;Find 69 link using date/accession number in file 68
 +10       SET X4=$PIECE(^LRO(68,X1,1,X2,1,X3,0),U,4)
           SET X5=$PIECE(^LRO(68,X1,1,X2,1,X3,0),U,5)
 +11       IF X4&X5&$DATA(^LRO(69,X4,1,X5,0))
               Begin DoDot:1
 +12               SET DIE="^LRO(69,X4,1,"
                   SET DA=X5
                   SET DA(1)=X4
                   SET DR="8////^S X=LROLLOC"
               End DoDot:1
 +13       DO ^DIE
UIDEXQ     KILL DR,DIE,DA,LRLLOC,LRLOCTYP,LROLLOC
 +1        QUIT