PSJOEA2 ;BIR/MLM-INPATIENT ORDER ENTRY ; 5/11/09 7:50am
 ;;5.0;INPATIENT MEDICATIONS;**127,133,200,267,268,257,281,367**;16 DEC 97;Build 7
 ;
 ; Reference to ^PS(55 is supported by DBIA #2191.
 ; Reference to ^PSSLOCK is supported by DBIA #2789.
 ; Reference to ^TMP("PSODAOC",$J supported by DBIA 6071
 ;
CHK ;Check to be sure all the orders in the complex order series are completed, continued.
 K ^TMP("PSJCVFY",$J) ; p367
 I 'PSJCOMV,'$G(COMQUIT) N PSJO S PSJO=0 F  S PSJO=$O(^TMP("PSJCOM",$J,PSJO)) Q:'PSJO  S PSGORD=+PSJO_"P",PSGND=$G(^PS(53.1,+PSJO,0)) D
 .S PSGP=$P(PSGND,"^",15)
 .I $P(PSGND,U,4)="U",$P(PSGND,U,9)="A",($P(PSGND,U,24)'="R") D ^PSGOT D  Q
 ..M ^PS(55,PSGP,5,+PSGORD,4)=^PS(53.1,PSJO,4)
 ..N PSGND2P5 S PSGND2P5=$G(^PS(53.1,+PSJO,2.5)),DUR=$P(PSGND2P5,"^",2) I $G(DUR)]"" N DA,DR,DIE S DIE="^PS(55,"_PSGP_",5,",DA(1)=PSGP,DA=+PSGORD,DR="126////"_$G(DUR) D ^DIE
 ..D KILL531^PSJIMO1(PSGP,"",+PSJO)
 ..D ACTLOG^PSJOEA(PSJO,PSGP,PSGORD)
 ..S VND4=$G(^PS(55,PSGP,5,+PSGORD,4))
 ..I PSJSYSL>1 S $P(^PS(55,PSGP,5,+PSGORD,7),U)=PSGDT S:$P(^(7),U,2)="" $P(^(7),U,2)="N"_$S($P(^PS(55,PSGP,5,+PSGORD,0),"^",24)="E":"E",1:"") S PSGTOL=2,PSGUOW=DUZ,PSGTOO=1,DA=+PSGORD D ENL^PSGVDS
 ..S:$P(VND4,"^",15)&'$P(VND4,"^",16) $P(VND4,"^",15)="" S:$P(VND4,"^",18)&'$P(VND4,"^",19) $P(VND4,"^",18)="" S:$P(VND4,"^",22)&'$P(VND4,"^",23) $P(VND4,"^",22)="" S $P(VND4,"^",PSJSYSU,PSJSYSU+1)=DUZ_"^"_PSGDT
 ..; Set PV and NV flag according to PSJSYSU  (PSJ*5*200)
 ..S $P(VND4,"^",+PSJSYSU=1+9)=1 S:'$P(VND4,U,+PSJSYSU=3+9) $P(VND4,U,+PSJSYSU=3+9)=+$P(VND4,U,+PSJSYSU=3+9) S ^PS(55,PSGP,5,+PSGORD,4)=VND4
 ..I '$P(VND4,U,10) S ^PS(55,"ANV",PSGP,+PSGORD)=""
 ..I $P(VND4,U,9) K ^PS(55,"APV",PSGP,+PSGORD)
 ..I $P(VND4,U,10) K ^PS(55,"ANV",PSGP,+PSGORD)
 ..S:+PSJSYSU=3 ^PS(55,"AUE",PSGP,+PSGORD)=""
 ..S PSJCOM=$P($G(^PS(55,PSGP,5,+PSGORD,.2)),"^",8) I PSJCOM]"" K ^PS(53.1,"ACX",PSJCOM,PSJO) ;S $P(^PS(55,PSGP,5,+PSGORD,4),"^",9)=1
 ..S:PSJCOM]"" ^TMP("PSJCVFY",$J,PSJO)=+PSGORD ; p367 store order index for file 55 to be used to unlock file 100.
 ..D EN1^PSJHL2(PSGP,$S(+PSJSYSU=3:"SC",+PSJSYSU=1:"SC",1:"XX"),+PSGORD_"U")     ; allow status change to be sent for pharmacists & nurses
 ..D:+PSJSYSU=1 EN1^PSJHL2(PSGP,"ZV",+PSGORD_"U") L -^PS(55,PSGP,5,+PSGORD)
 ..I $G(PSJCOM) S ^TMP("PSODAOC",$J,"IP IEN")=PSJO_"P",^TMP("PSODAOC",$J,"IP NEW IEN")=PSGORD D SETOC^PSJNEWOC(PSGORD)
 ..; ** This is where the Automated Dispensing hook is called. Do NOT DELETE or change location **
 ..D NEWJ^PSJADM
 ..; ** END to Interface Hook **
 ..S PSJPREX=1 D CMPLX2^PSJCOM1(PSGP,PSJORD,PSGORD) K PSJPREX
 .I $P(PSGND,U,4)'="U",$P(PSGND,U,9)="A" D GT531^PSIVORFA(PSGP,PSJO_"P") D  Q
 ..S ON55="" I $P(PSGND,"^",24)="R" S ON55=$P(PSGND,"^",25) D
 ...N PND0,PSGORDR S PND0=^PS(53.1,+PSJO,0),PSGORDR=$P(PND0,U,25)
 ...Q:'$$LS^PSSLOCK(PSGP,PSGORDR)
 ...D KILL531^PSJIMO1(PSGP,"",+PSJO)
 ...N OEORD,OOEORD,FILE55,FILE55N0,PNDP2 S PNDP2=^PS(53.1,+PSJO,.2),FILE55="^PS(55,"_DFN_",""IV"",",FILE55N0=FILE55_+PSGORDR_",0)"
 ...S OEORD=$P(PND0,U,21) I PSGORDR S OOEORD=$P(@FILE55N0,"^",21) I OEORD'=OOEORD D EXPOE^PSGOER(DFN,+PSJO_"P",+$$LASTREN^PSJLMPRI(DFN,+PSJO_"P"))
 ...S PSGORDP=PSJO,DIE="^PS(53.1,",DA=+PSJO,DR="28////A;104////@" W "." D ^DIE
 ...Q:'$G(OEORD)  K DA,DR,DIE S DA(1)=DFN,DA=+PSGORDR,DIE=FILE55,DR=110_"////"_+OEORD
 ...S:$P(PNDP2,U,8) DR=DR_";150////"_$P(PNDP2,U,8) D ^DIE S DIE=FILE55_+PSGORDR_",0)",$P(@DIE,U,21)=OEORD
 ...D EN1^PSJHL2(DFN,"SC",PSGORDR),UNL^PSSLOCK(PSGP,PSGORDR)
 ..I 'ON55 D SETNEW^PSIVORFB
 ..I $G(PSJCOM),ON55["V" S ^TMP("PSODAOC",$J,"IP IEN")=PSJO_"P",^TMP("PSODAOC",$J,"IP NEW IEN")=ON55 D SETOC^PSJNEWOC(ON55)
 ..S (P("NEWON"),ON)=ON55,PSGP=$P(PSGND,U,15)
 ..S VND4=$G(^TMP("PSJCOM",$J,+PSJO,4)) D
 ...N PSJRN,PSJRNDT,PSJRPH,PSJRPHD,PSJPVFL,PSJNVFL,DR,DIE,DA
 ...S (PSJPVFL,PSJNVFL)=""
 ...S PSJRN=$P(VND4,U,1),PSJRNDT=$P(VND4,U,2),PSJRPH=$P(VND4,U,3),PSJRPHD=$P(VND4,U,4),PSJPVFL=$P(VND4,U,16) S:PSJRN]"" PSJNVFL=1
 ...S DR="16////"_PSJRN_";17////"_PSJRNDT_";140////"_PSJRPH_";141////"_PSJRPHD_";142////"_PSJPVFL_";143////"_PSJNVFL
 ...S DA(1)=PSGP,DA=+ON55,DIE="^PS(55,"_PSGP_",""IV""," D ^DIE
 ..D:P("RES")="R" RUPDATE^PSIVOREN(PSGP,ON,P(2))
 ..I +PSJSYSU=3 K OD D ^PSIVORE1 ;LABEL STUFF
 ..I $G(P("PACT"))]"",+$P(P("PACT"),U,2),+$P(P("PACT"),U,3) D  Q
 ...NEW DIC,DA,X,Y,XX D NAME^PSJBCMA1($P(P("PACT"),U,2),.XX)
 ...S DIC(0)="L",DA(1)=DFN,DA(2)=+ON55,X=1
 ...S DIC="^PS(55,"_DA(1)_",""IV"","_DA(2)_",""A"","
 ...S DIC("DR")=".02////F;.03////"_XX_";.04////"_$P($G(^PS(53.3,+$P(P("PACT"),U,3),0)),U)_";.05////"_$P(P("PACT"),U)_";.06////"_$P(P("PACT"),U,2)
 ...K DO D FILE^DICN K DO
 ...N DIK,DA,PSIVACT S DIK="^PS(55,"_DFN_",""IV"",",DA=+ON,PSIVACT="" S:$G(DFN) DA(1)=DFN D IX^DIK K DIK,DA
 ...S PSJCOM=$P($G(^PS(55,DFN,"IV",+ON,.2)),"^",8) I PSJCOM]"" K ^PS(53.1,"ACX",PSJCOM,PSJO)
 ...S:PSJCOM]"" ^TMP("PSJCVFY",$J,PSJO)=ON ; p367 store IV order index for file 55. 
 ...D EN1^PSJHL2(DFN,"SC",ON)
 ...D:+PSJSYSU=1 EN1^PSJHL2(DFN,"ZV",ON) L -^PS(55,DFN,"IV",+ON) I $G(ON55) L -^PS(55,DFN,"IV",+ON55)
 ..L -^PS(55,DFN,"IV",+ON) I $G(ON55) L -^PS(55,DFN,"IV",+ON55)
 .I $P(PSGND,U,4)="U",$P(PSGND,U,9)="DE",$D(^TMP("PSJCOM2",$J,PSJO,0)),$P(^TMP("PSJCOM2",$J,PSJO,0),"^",9)="A",$P(^TMP("PSJCOM2",$J,PSJO,0),"^",4)="U" S PSGP=$P(PSGND,U,15) D UD^PSJOEA
 .I $P(PSGND,U,4)'="U",$P(PSGND,U,9)="DE",$D(^TMP("PSJCOM2",$J,PSJO,0)),$P(^TMP("PSJCOM2",$J,PSJO,0),"^",9)="A",$P(^TMP("PSJCOM2",$J,PSJO,0),"^",4)="U" S PSGP=$P(PSGND,U,15) D UD^PSJOEA
 .I $P(PSGND,U,4)'="U",$P(PSGND,U,9)="DE",$D(^TMP("PSJCOM2",$J,PSJO,0)),$P(^TMP("PSJCOM2",$J,PSJO,0),"^",4)'="U",$P(^TMP("PSJCOM2",$J,PSJO,0),"^",17)="A" S DFN=$S($G(PSGP)]"":PSGP,1:$P(PSGND,U,15)) D IV^PSJOEA
 .I $P(PSGND,U,4)="U",$P(PSGND,U,9)="DE",$D(^TMP("PSJCOM2",$J,PSJO,0)),$P(^TMP("PSJCOM2",$J,PSJO,0),"^",4)'="U",$P(^TMP("PSJCOM2",$J,PSJO,0),"^",17)="A" S DFN=$S($G(PSGP)]"":PSGP,1:$P(PSGND,U,15)) D IV^PSJOEA
 K ^TMP("PSJCOM",$J),^TMP("PSJCOM2",$J),PSJOWALL
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSJOEA2   6005     printed  Sep 23, 2025@19:44:19                                                                                                                                                                                                     Page 2
PSJOEA2   ;BIR/MLM-INPATIENT ORDER ENTRY ; 5/11/09 7:50am
 +1       ;;5.0;INPATIENT MEDICATIONS;**127,133,200,267,268,257,281,367**;16 DEC 97;Build 7
 +2       ;
 +3       ; Reference to ^PS(55 is supported by DBIA #2191.
 +4       ; Reference to ^PSSLOCK is supported by DBIA #2789.
 +5       ; Reference to ^TMP("PSODAOC",$J supported by DBIA 6071
 +6       ;
CHK       ;Check to be sure all the orders in the complex order series are completed, continued.
 +1       ; p367
           KILL ^TMP("PSJCVFY",$JOB)
 +2        IF 'PSJCOMV
               IF '$GET(COMQUIT)
                   NEW PSJO
                   SET PSJO=0
                   FOR 
                       SET PSJO=$ORDER(^TMP("PSJCOM",$JOB,PSJO))
                       if 'PSJO
                           QUIT 
                       SET PSGORD=+PSJO_"P"
                       SET PSGND=$GET(^PS(53.1,+PSJO,0))
                       Begin DoDot:1
 +3                        SET PSGP=$PIECE(PSGND,"^",15)
 +4                        IF $PIECE(PSGND,U,4)="U"
                               IF $PIECE(PSGND,U,9)="A"
                                   IF ($PIECE(PSGND,U,24)'="R")
                                       DO ^PSGOT
                                       Begin DoDot:2
 +5                                        MERGE ^PS(55,PSGP,5,+PSGORD,4)=^PS(53.1,PSJO,4)
 +6                                        NEW PSGND2P5
                                           SET PSGND2P5=$GET(^PS(53.1,+PSJO,2.5))
                                           SET DUR=$PIECE(PSGND2P5,"^",2)
                                           IF $GET(DUR)]""
                                               NEW DA,DR,DIE
                                               SET DIE="^PS(55,"_PSGP_",5,"
                                               SET DA(1)=PSGP
                                               SET DA=+PSGORD
                                               SET DR="126////"_$GET(DUR)
                                               DO ^DIE
 +7                                        DO KILL531^PSJIMO1(PSGP,"",+PSJO)
 +8                                        DO ACTLOG^PSJOEA(PSJO,PSGP,PSGORD)
 +9                                        SET VND4=$GET(^PS(55,PSGP,5,+PSGORD,4))
 +10                                       IF PSJSYSL>1
                                               SET $PIECE(^PS(55,PSGP,5,+PSGORD,7),U)=PSGDT
                                               if $PIECE(^(7),U,2)=""
                                                   SET $PIECE(^(7),U,2)="N"_$SELECT($PIECE(^PS(55,PSGP,5,+PSGORD,0),"^",24)="E":"E",1:"")
                                               SET PSGTOL=2
                                               SET PSGUOW=DUZ
                                               SET PSGTOO=1
                                               SET DA=+PSGORD
                                               DO ENL^PSGVDS
 +11                                       if $PIECE(VND4,"^",15)&'$PIECE(VND4,"^",16)
                                               SET $PIECE(VND4,"^",15)=""
                                           if $PIECE(VND4,"^",18)&'$PIECE(VND4,"^",19)
                                               SET $PIECE(VND4,"^",18)=""
                                           if $PIECE(VND4,"^",22)&'$PIECE(VND4,"^",23)
                                               SET $PIECE(VND4,"^",22)=""
                                           SET $PIECE(VND4,"^",PSJSYSU,PSJSYSU+1)=DUZ_"^"_PSGDT
 +12      ; Set PV and NV flag according to PSJSYSU  (PSJ*5*200)
 +13                                       SET $PIECE(VND4,"^",+PSJSYSU=1+9)=1
                                           if '$PIECE(VND4,U,+PSJSYSU=3+9)
                                               SET $PIECE(VND4,U,+PSJSYSU=3+9)=+$PIECE(VND4,U,+PSJSYSU=3+9)
                                           SET ^PS(55,PSGP,5,+PSGORD,4)=VND4
 +14                                       IF '$PIECE(VND4,U,10)
                                               SET ^PS(55,"ANV",PSGP,+PSGORD)=""
 +15                                       IF $PIECE(VND4,U,9)
                                               KILL ^PS(55,"APV",PSGP,+PSGORD)
 +16                                       IF $PIECE(VND4,U,10)
                                               KILL ^PS(55,"ANV",PSGP,+PSGORD)
 +17                                       if +PSJSYSU=3
                                               SET ^PS(55,"AUE",PSGP,+PSGORD)=""
 +18      ;S $P(^PS(55,PSGP,5,+PSGORD,4),"^",9)=1
                                           SET PSJCOM=$PIECE($GET(^PS(55,PSGP,5,+PSGORD,.2)),"^",8)
                                           IF PSJCOM]""
                                               KILL ^PS(53.1,"ACX",PSJCOM,PSJO)
 +19      ; p367 store order index for file 55 to be used to unlock file 100.
                                           if PSJCOM]""
                                               SET ^TMP("PSJCVFY",$JOB,PSJO)=+PSGORD
 +20      ; allow status change to be sent for pharmacists & nurses
                                           DO EN1^PSJHL2(PSGP,$SELECT(+PSJSYSU=3:"SC",+PSJSYSU=1:"SC",1:"XX"),+PSGORD_"U")
 +21                                       if +PSJSYSU=1
                                               DO EN1^PSJHL2(PSGP,"ZV",+PSGORD_"U")
                                           LOCK -^PS(55,PSGP,5,+PSGORD)
 +22                                       IF $GET(PSJCOM)
                                               SET ^TMP("PSODAOC",$JOB,"IP IEN")=PSJO_"P"
                                               SET ^TMP("PSODAOC",$JOB,"IP NEW IEN")=PSGORD
                                               DO SETOC^PSJNEWOC(PSGORD)
 +23      ; ** This is where the Automated Dispensing hook is called. Do NOT DELETE or change location **
 +24                                       DO NEWJ^PSJADM
 +25      ; ** END to Interface Hook **
 +26                                       SET PSJPREX=1
                                           DO CMPLX2^PSJCOM1(PSGP,PSJORD,PSGORD)
                                           KILL PSJPREX
                                       End DoDot:2
                                       QUIT 
 +27                       IF $PIECE(PSGND,U,4)'="U"
                               IF $PIECE(PSGND,U,9)="A"
                                   DO GT531^PSIVORFA(PSGP,PSJO_"P")
                                   Begin DoDot:2
 +28                                   SET ON55=""
                                       IF $PIECE(PSGND,"^",24)="R"
                                           SET ON55=$PIECE(PSGND,"^",25)
                                           Begin DoDot:3
 +29                                           NEW PND0,PSGORDR
                                               SET PND0=^PS(53.1,+PSJO,0)
                                               SET PSGORDR=$PIECE(PND0,U,25)
 +30                                           if '$$LS^PSSLOCK(PSGP,PSGORDR)
                                                   QUIT 
 +31                                           DO KILL531^PSJIMO1(PSGP,"",+PSJO)
 +32                                           NEW OEORD,OOEORD,FILE55,FILE55N0,PNDP2
                                               SET PNDP2=^PS(53.1,+PSJO,.2)
                                               SET FILE55="^PS(55,"_DFN_",""IV"","
                                               SET FILE55N0=FILE55_+PSGORDR_",0)"
 +33                                           SET OEORD=$PIECE(PND0,U,21)
                                               IF PSGORDR
                                                   SET OOEORD=$PIECE(@FILE55N0,"^",21)
                                                   IF OEORD'=OOEORD
                                                       DO EXPOE^PSGOER(DFN,+PSJO_"P",+$$LASTREN^PSJLMPRI(DFN,+PSJO_"P"))
 +34                                           SET PSGORDP=PSJO
                                               SET DIE="^PS(53.1,"
                                               SET DA=+PSJO
                                               SET DR="28////A;104////@"
                                               WRITE "."
                                               DO ^DIE
 +35                                           if '$GET(OEORD)
                                                   QUIT 
                                               KILL DA,DR,DIE
                                               SET DA(1)=DFN
                                               SET DA=+PSGORDR
                                               SET DIE=FILE55
                                               SET DR=110_"////"_+OEORD
 +36                                           if $PIECE(PNDP2,U,8)
                                                   SET DR=DR_";150////"_$PIECE(PNDP2,U,8)
                                               DO ^DIE
                                               SET DIE=FILE55_+PSGORDR_",0)"
                                               SET $PIECE(@DIE,U,21)=OEORD
 +37                                           DO EN1^PSJHL2(DFN,"SC",PSGORDR)
                                               DO UNL^PSSLOCK(PSGP,PSGORDR)
                                           End DoDot:3
 +38                                   IF 'ON55
                                           DO SETNEW^PSIVORFB
 +39                                   IF $GET(PSJCOM)
                                           IF ON55["V"
                                               SET ^TMP("PSODAOC",$JOB,"IP IEN")=PSJO_"P"
                                               SET ^TMP("PSODAOC",$JOB,"IP NEW IEN")=ON55
                                               DO SETOC^PSJNEWOC(ON55)
 +40                                   SET (P("NEWON"),ON)=ON55
                                       SET PSGP=$PIECE(PSGND,U,15)
 +41                                   SET VND4=$GET(^TMP("PSJCOM",$JOB,+PSJO,4))
                                       Begin DoDot:3
 +42                                       NEW PSJRN,PSJRNDT,PSJRPH,PSJRPHD,PSJPVFL,PSJNVFL,DR,DIE,DA
 +43                                       SET (PSJPVFL,PSJNVFL)=""
 +44                                       SET PSJRN=$PIECE(VND4,U,1)
                                           SET PSJRNDT=$PIECE(VND4,U,2)
                                           SET PSJRPH=$PIECE(VND4,U,3)
                                           SET PSJRPHD=$PIECE(VND4,U,4)
                                           SET PSJPVFL=$PIECE(VND4,U,16)
                                           if PSJRN]""
                                               SET PSJNVFL=1
 +45                                       SET DR="16////"_PSJRN_";17////"_PSJRNDT_";140////"_PSJRPH_";141////"_PSJRPHD_";142////"_PSJPVFL_";143////"_PSJNVFL
 +46                                       SET DA(1)=PSGP
                                           SET DA=+ON55
                                           SET DIE="^PS(55,"_PSGP_",""IV"","
                                           DO ^DIE
                                       End DoDot:3
 +47                                   if P("RES")="R"
                                           DO RUPDATE^PSIVOREN(PSGP,ON,P(2))
 +48      ;LABEL STUFF
                                       IF +PSJSYSU=3
                                           KILL OD
                                           DO ^PSIVORE1
 +49                                   IF $GET(P("PACT"))]""
                                           IF +$PIECE(P("PACT"),U,2)
                                               IF +$PIECE(P("PACT"),U,3)
                                                   Begin DoDot:3
 +50                                                   NEW DIC,DA,X,Y,XX
                                                       DO NAME^PSJBCMA1($PIECE(P("PACT"),U,2),.XX)
 +51                                                   SET DIC(0)="L"
                                                       SET DA(1)=DFN
                                                       SET DA(2)=+ON55
                                                       SET X=1
 +52                                                   SET DIC="^PS(55,"_DA(1)_",""IV"","_DA(2)_",""A"","
 +53                                                   SET DIC("DR")=".02////F;.03////"_XX_";.04////"_$PIECE($GET(^PS(53.3,+$PIECE(P("PACT"),U,3),0)),U)_";.05////"_$PIECE(P("PACT"),U)_";.06////"_$PIECE(P("PACT"),U,2)
 +54                                                   KILL DO
                                                       DO FILE^DICN
                                                       KILL DO
 +55                                                   NEW DIK,DA,PSIVACT
                                                       SET DIK="^PS(55,"_DFN_",""IV"","
                                                       SET DA=+ON
                                                       SET PSIVACT=""
                                                       if $GET(DFN)
                                                           SET DA(1)=DFN
                                                       DO IX^DIK
                                                       KILL DIK,DA
 +56                                                   SET PSJCOM=$PIECE($GET(^PS(55,DFN,"IV",+ON,.2)),"^",8)
                                                       IF PSJCOM]""
                                                           KILL ^PS(53.1,"ACX",PSJCOM,PSJO)
 +57      ; p367 store IV order index for file 55. 
                                                       if PSJCOM]""
                                                           SET ^TMP("PSJCVFY",$JOB,PSJO)=ON
 +58                                                   DO EN1^PSJHL2(DFN,"SC",ON)
 +59                                                   if +PSJSYSU=1
                                                           DO EN1^PSJHL2(DFN,"ZV",ON)
                                                       LOCK -^PS(55,DFN,"IV",+ON)
                                                       IF $GET(ON55)
                                                           LOCK -^PS(55,DFN,"IV",+ON55)
                                                   End DoDot:3
                                                   QUIT 
 +60                                   LOCK -^PS(55,DFN,"IV",+ON)
                                       IF $GET(ON55)
                                           LOCK -^PS(55,DFN,"IV",+ON55)
                                   End DoDot:2
                                   QUIT 
 +61                       IF $PIECE(PSGND,U,4)="U"
                               IF $PIECE(PSGND,U,9)="DE"
                                   IF $DATA(^TMP("PSJCOM2",$JOB,PSJO,0))
                                       IF $PIECE(^TMP("PSJCOM2",$JOB,PSJO,0),"^",9)="A"
                                           IF $PIECE(^TMP("PSJCOM2",$JOB,PSJO,0),"^",4)="U"
                                               SET PSGP=$PIECE(PSGND,U,15)
                                               DO UD^PSJOEA
 +62                       IF $PIECE(PSGND,U,4)'="U"
                               IF $PIECE(PSGND,U,9)="DE"
                                   IF $DATA(^TMP("PSJCOM2",$JOB,PSJO,0))
                                       IF $PIECE(^TMP("PSJCOM2",$JOB,PSJO,0),"^",9)="A"
                                           IF $PIECE(^TMP("PSJCOM2",$JOB,PSJO,0),"^",4)="U"
                                               SET PSGP=$PIECE(PSGND,U,15)
                                               DO UD^PSJOEA
 +63                       IF $PIECE(PSGND,U,4)'="U"
                               IF $PIECE(PSGND,U,9)="DE"
                                   IF $DATA(^TMP("PSJCOM2",$JOB,PSJO,0))
                                       IF $PIECE(^TMP("PSJCOM2",$JOB,PSJO,0),"^",4)'="U"
                                           IF $PIECE(^TMP("PSJCOM2",$JOB,PSJO,0),"^",17)="A"
                                               SET DFN=$SELECT($GET(PSGP)]"":PSGP,1:$PIECE(PSGND,U,15))
                                               DO IV^PSJOEA
 +64                       IF $PIECE(PSGND,U,4)="U"
                               IF $PIECE(PSGND,U,9)="DE"
                                   IF $DATA(^TMP("PSJCOM2",$JOB,PSJO,0))
                                       IF $PIECE(^TMP("PSJCOM2",$JOB,PSJO,0),"^",4)'="U"
                                           IF $PIECE(^TMP("PSJCOM2",$JOB,PSJO,0),"^",17)="A"
                                               SET DFN=$SELECT($GET(PSGP)]"":PSGP,1:$PIECE(PSGND,U,15))
                                               DO IV^PSJOEA
                       End DoDot:1
 +65       KILL ^TMP("PSJCOM",$JOB),^TMP("PSJCOM2",$JOB),PSJOWALL
 +66       QUIT