PSGPR ;BIR/CML3-PATIENT PROFILE ;19 SEP 96 / 3:59 PM
;;5.0; INPATIENT MEDICATIONS ;**110,111,169**;16 DEC 97
;* N PSJNEW,PSGPTMP,PPAGE,PSGOEPRF S PSJNEW=1
N PSGLI,PSGOE,PSGOEEWF,PSGOH,PSGWD,PSJPWDO,PSJSTOP,PSJTEAM
N ACTION,CONT,PAT,LD,LN2,PFLG,PSJNEW,PSGPTMP,PPAGE,PSGOEPRF S PSJNEW=1
;
S PSJOPC="UD"
D ENCV^PSGSETU
;I '$D(XQUIT) F PSGPR=0:0 S (PSGP,PSGPRWD,PSGPRWG)=0,(PSGPRWDN,PSGPRWGN)="",PSGSSH="PPR" S PSGPTMP=0,PPAGE=1 D GWP^PSJPDIR Q:'$D(PSJSEL) D @PSJSEL("SELECT") D ENL^PSGOU I "^N"'[PSGOL D GO
I '$D(XQUIT) F PSGPR=0:0 S (PSGP,PSGPRWD,PSGPRWG)=0,(PSGPRWDN,PSGPRWGN)="",PSGSSH="PPR" S PSGPTMP=0,PPAGE=1 D Q:'$D(PSJSEL("SELECT"))
.K PSJSEL,Y F K ^TMP("PSJSELECT",$J),PSJSEL D ^PSGSEL Q:"^"[PSGSS S PSJSEL("SELECT")=PSGSS,PSJSTOP="" D
..D:(PSJSEL("SELECT")="P") P^PSJPDIR D:(PSJSEL("SELECT")="W") W^PSJPDIR D:(PSJSEL("SELECT")="G") G^PSJPDIR
..; PSJ*5*169 Check PSJSTOP before continuing.
..Q:$G(PSJSTOP)=1
..I PSJSEL("SELECT")'="P",PSJSEL("SELECT")'="L" D RBPPN^PSJPDIR
..Q:$G(PSJSTOP)=1
..Q:(((PSGSS="W")!(PSGSS="G"))&($G(Y)<0)) Q:((PSGSS="P")&'$D(PSJSEL("P")))
..S (PSGP,WD,WG)=0 S PSGPTMP=0,PPAGE=1 D @PSGSS Q:(((PSGSS="L")!(PSGSS="C"))&($G(Y)<0)) D ENL^PSGOU I "^N"'[PSGOL D GO
;
DONE ;
D:'$D(PSGOEPRF) ENKV^PSGSETU K AND,AT,C,CA,DOB,DRGI,FQC,MF,ND,NF,O,ON,PG,PN,PSGON,PSGORD,PRI,PSGONC,PSGONR,PSGONV,PSGSEL,PX,^TMP("PSGPR",$J)
K RCT,PSGAPTM,PSGOL,PSGOS,PSGPR,PSGSS,PSGSSH,PSGPATM,PSGPRWD,PSGPRWDN,PSGPRWG,PSGPRWGN,PSGPRA,PSGPRP,PSJOPC,PSJSEL,S1,S2,S3,S4,HDT,PSGODT,QFLG,RF,SD,SLS,SSN,TF,TM,UD,UDU,WD,WDP,WT,ZTOUT,ZTSK,OD,PDRG
Q
;
GO ;
S PSGPRP="P",PSGPRA="" S PSGSS=PSJSEL("SELECT") G:PSGSS'="P" ENDEV
K DIR S DIR(0)="SAO^P:PROFILE;E:EXPANDED VIEWS;B:BOTH",DIR("A")="Show PROFILE only, EXPANDED VIEWS only, or BOTH: ",DIR("B")="PROFILE",DIR("?")="^D PH^PSGPR" W ! D ^DIR K DIR Q:"^"[Y S PSGPRP=Y
I "EB"[PSGPRP F R !!,"Show SHORT, LONG, or NO activity log? NO// ",AT:DTIME D ALC^PSGVW0 I Q S PSGPRA=AT Q
Q:PSGPRA="^"
ENDEV ;
K ZTSAVE S PSGTIR="ENQ^PSGPR",ZTDESC="PATIENT PROFILE" F X="PSGP","PSGP(","PSGSS","PSGPRWD","PSGPRWG","PSGPRWDN","PSGPRWGN","PSGOL","PSGPRA","PSGPRP","PSGPTMP","PSJSEL(","PPAGE" S ZTSAVE(X)=""
D ENDEV^PSGTI I POP!$D(IO("Q")) G:$D(PSGOEPRF) DONE Q
;
ENQ ;
K ^TMP("PSGPR",$J)
K PSGVBY N RB,ATM S PSGPR=IO'=IO(0)!($E(IOST)'="C") N RBP S RBP=$S($D(PSJSEL("RBP")):PSJSEL("RBP"),1:"P") D @("P"_PSGSS) I PSGPR W:$Y @IOF D ^%ZISC
G:$D(PSGOEPRF) DONE Q
;
G ; get ward group
S PSGPRWG=+PSJSEL("WG"),PSGPRWGN=$P(PSJSEL("WG"),"^",2) Q
;
W ; get ward
S PSGPRWD=+PSJSEL("W"),PSGPRWDN=$P(PSJSEL("W"),"^",2)
I $D(PSJSEL("TM")) S TM="" F S TM=$O(PSJSEL("TM",TM)) Q:TM="" S PSGAPTM(TM)=TM
Q
;
C ;
K DIR S DIR(0)="FAO",DIR("A")="Select CLINIC: "
S DIR("?")="^D CDIC^PSGVBW" W ! D ^DIR
CDIC ;
K DIC S DIC="^SC(",DIC(0)="QEMIZ" D ^DIC K DIC S:+Y>0 CL=+Y
W:X["?" !!,"Enter the clinic you want to use to select patients for processing.",!
Q
;
P ; get patient
N PAT S PAT="" F S PAT=$O(PSJSEL("P",PAT)) Q:PAT="" S PSGP(PAT)=$O(PSJSEL("P",PAT,PSGP))
Q
;
PG ;
F PSGPRWD=0:0 S PSGPRWD=$O(^PS(57.5,"AC",PSGPRWG,PSGPRWD)) Q:'PSGPRWD I $D(^DIC(42,PSGPRWD,0)),$P(^(0),"^")]"" S PSGPRWDN=$P(^(0),"^") D
.F PSGP=0:0 S PSGP=$O(^DPT("CN",PSGPRWDN,PSGP)) Q:'PSGP D
..I RBP="R" S RB=$G(^DPT(PSGP,.101)) S:RB="" RB="zz" S ^TMP("PSGPR",$J,RB,PSGPRWDN,RB)=PSGP
..I RBP="P" D ^PSJAC S ^TMP("PSGPR",$J,PSGPRWDN,PSGP(0))=PSGP
I $D(^TMP("PSGPR",$J)) N PSGX S PSGX="^TMP(""PSGPR"",$J)" F S PSGX=$Q(@PSGX) Q:PSGX'[("""PSGPR"""_","_$J) S PSGP=$G(@PSGX) D PP0 Q:$G(X)?1"^"."^"
Q
;
PW ;
I $D(PSJSEL("TM")) S TM="" F S TM=$O(PSJSEL("TM",TM)) Q:TM="" S PSGPATM(TM)=TM
F PSGP=0:0 S PSGP=$O(^DPT("CN",PSGPRWDN,PSGP)) Q:'PSGP S RB=$G(^DPT(PSGP,.101)),TM="zz" D
.I '$D(PSGPATM) D SET Q
.S:RB]"" TM=$O(^PS(57.7,"AWRT",PSGPRWD,RB,0)) S:'TM TM="zz" I $D(PSGPATM("ALL"))!$D(PSGPATM(TM)) D SET Q
I $D(^TMP("PSGPR",$J)) N PSGX S PSGX="^TMP(""PSGPR"",$J)" F S PSGX=$Q(@PSGX) Q:PSGX'[("""PSGPR"""_","_$J) S PSGP=$G(@PSGX) D PP0 Q:$G(X)?1"^"."^"
Q
;
L ;
D L^PSGVBW
Q
;
PL S CL="" F S CL=$O(^PS(57.8,"AD",CG,CL)) Q:CL="" D PC
Q
;
PC S WDN=$S($D(^SC(CL,0)):$P(^(0),"^"),1:"")
S PSGP="" F S PSGP=$O(^PS(53.1,"AD",CL,PSGP)) Q:'PSGP S RB=$G(^DPT(PSGP,.101)),TM="zz" D
.D SET Q
I $D(^TMP("PSGPR",$J)) N PSGX S PSGX="^TMP(""PSGPR"",$J)" F S PSGX=$Q(@PSGX) Q:PSGX'[("""PSGPR"""_","_$J) S PSGP=$G(@PSGX) D PP0 Q:$G(X)?1"^"."^"
Q
;
SET ;
S:TM'["zz" TM=$G(^PS(57.7,$G(PSGPRWD),1,TM,0)) I RB="" S RB="z"
I RBP="P" D ^PSJAC S ^TMP("PSGPR",$J,TM,PSGP(0))=PSGP Q
I RBP="R" S ^TMP("PSGPR",$J,TM,RB)=PSGP
Q
;
PP ;
S PAT="" F S PAT=$O(PSGP(PAT)) Q:PAT="" S PSGP=PSGP(PAT) D PP0 Q:$G(X)?1"^"."^"
Q
;
PP0 ;
N PSJACNWP S PSJACNWP=1 D ^PSJAC I PSGPRP'="E" D ^PSGO I PSGPRP="P",'PSGPR D:'PSGON READ^PSJUTL Q:$G(X)?1"^"."^" I PSGON S (PSGONC,PSGONF,PSGONR,PSGONV,PSGPRF)=0 D ENVO^PSGOE0 K PSGPRF Q
Q:PSGPRP="P" I PSGPRP="E" U IO D ENGORD^PSGOU,ENPR^PSGO
I 'PSGPR,PSGSS'="P",'$D(^TMP("PSG",$J)) D READ^PSJUTL Q
S (S1,S2,S3,X)=""
F S S1=$O(^TMP("PSG",$J,S1)) Q:S1="" F S S2=$O(^TMP("PSG",$J,S1,S2)) Q:S2="" F S S3=$O(^TMP("PSG",$J,S1,S2,S3)) Q:S3="" D PP1
D:X'["^"&PSGPR BOT^PSGO K ^TMP("PSG",$J) Q
;
PP1 ;
;* S PSGORD=$P(S3,"^",2)_S1 D EN2^PSGVW I PSGPRA'="N" S AT=PSGPRA D ENA^PSGVW0
S PSGORD=$P(S3,"^",2)_$S(S1["BD":"",S1["B":"P",S1["CD":"",S1["C":"P",1:"U") D EN2^PSGVW I PSGPRA'="N" S AT=PSGPRA D ENA^PSGVW0
S X="" I 'PSGPR S DIR(0)="E" W ! D ^DIR S:$D(DIRUT) X="^" I X["^" S (S1,S2,S3)="~"
Q
;
PH ;
W !!?2,"Enter a 'P' to print ONLY the PROFILE of orders for this patient. Enter an",!,"'E' to print ONLY the EXPANDED VIEW of the orders for this patient. Enter a",!,"'B' to have BOTH the profile (first) and the expanded views print."
W " Enter an '^'to exit." Q
;
ENOR S (DFN,PSGP)=+ORVP
ENLM N PSJNEW,PSGPTMP,PPAGE,PSGOEPRF S PSJNEW=1
S PSJOPC="UD",PSGPTMP=0,PPAGE=1
D ENCV^PSGSETU Q:$D(XQUIT)
S PSJSEL("SELECT")="P",PSJSEL("P",$P($G(^DPT(DFN,0)),U),DFN)="" D ^VADPT
D ^PSJAC,ENL^PSGOU I "^N"'[PSGOL D
.S PSGSS="P",(PSGPRWD,PSGPRWG)=0,(PSGPRWDN,PSGPRWGN)=""
.S PSGP(PSGP(0))=DFN K PSGP(0) D GO
S PSJNKF=1 D READ^PSJUTL G DONE
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSGPR 6250 printed Nov 22, 2024@17:13:07 Page 2
PSGPR ;BIR/CML3-PATIENT PROFILE ;19 SEP 96 / 3:59 PM
+1 ;;5.0; INPATIENT MEDICATIONS ;**110,111,169**;16 DEC 97
+2 ;* N PSJNEW,PSGPTMP,PPAGE,PSGOEPRF S PSJNEW=1
+3 NEW PSGLI,PSGOE,PSGOEEWF,PSGOH,PSGWD,PSJPWDO,PSJSTOP,PSJTEAM
+4 NEW ACTION,CONT,PAT,LD,LN2,PFLG,PSJNEW,PSGPTMP,PPAGE,PSGOEPRF
SET PSJNEW=1
+5 ;
+6 SET PSJOPC="UD"
+7 DO ENCV^PSGSETU
+8 ;I '$D(XQUIT) F PSGPR=0:0 S (PSGP,PSGPRWD,PSGPRWG)=0,(PSGPRWDN,PSGPRWGN)="",PSGSSH="PPR" S PSGPTMP=0,PPAGE=1 D GWP^PSJPDIR Q:'$D(PSJSEL) D @PSJSEL("SELECT") D ENL^PSGOU I "^N"'[PSGOL D GO
+9 IF '$DATA(XQUIT)
FOR PSGPR=0:0
SET (PSGP,PSGPRWD,PSGPRWG)=0
SET (PSGPRWDN,PSGPRWGN)=""
SET PSGSSH="PPR"
SET PSGPTMP=0
SET PPAGE=1
Begin DoDot:1
+10 KILL PSJSEL,Y
FOR
KILL ^TMP("PSJSELECT",$JOB),PSJSEL
DO ^PSGSEL
if "^"[PSGSS
QUIT
SET PSJSEL("SELECT")=PSGSS
SET PSJSTOP=""
Begin DoDot:2
+11 if (PSJSEL("SELECT")="P")
DO P^PSJPDIR
if (PSJSEL("SELECT")="W")
DO W^PSJPDIR
if (PSJSEL("SELECT")="G")
DO G^PSJPDIR
+12 ; PSJ*5*169 Check PSJSTOP before continuing.
+13 if $GET(PSJSTOP)=1
QUIT
+14 IF PSJSEL("SELECT")'="P"
IF PSJSEL("SELECT")'="L"
DO RBPPN^PSJPDIR
+15 if $GET(PSJSTOP)=1
QUIT
+16 if (((PSGSS="W")!(PSGSS="G"))&($GET(Y)<0))
QUIT
if ((PSGSS="P")&'$DATA(PSJSEL("P")))
QUIT
+17 SET (PSGP,WD,WG)=0
SET PSGPTMP=0
SET PPAGE=1
DO @PSGSS
if (((PSGSS="L")!(PSGSS="C"))&($GET(Y)<0))
QUIT
DO ENL^PSGOU
IF "^N"'[PSGOL
DO GO
End DoDot:2
End DoDot:1
if '$DATA(PSJSEL("SELECT"))
QUIT
+18 ;
DONE ;
+1 if '$DATA(PSGOEPRF)
DO ENKV^PSGSETU
KILL AND,AT,C,CA,DOB,DRGI,FQC,MF,ND,NF,O,ON,PG,PN,PSGON,PSGORD,PRI,PSGONC,PSGONR,PSGONV,PSGSEL,PX,^TMP("PSGPR",$JOB)
+2 KILL RCT,PSGAPTM,PSGOL,PSGOS,PSGPR,PSGSS,PSGSSH,PSGPATM,PSGPRWD,PSGPRWDN,PSGPRWG,PSGPRWGN,PSGPRA,PSGPRP,PSJOPC,PSJSEL,S1,S2,S3,S4,HDT,PSGODT,QFLG,RF,SD,SLS,SSN,TF,TM,UD,UDU,WD,WDP,WT,ZTOUT,ZTSK,OD,PDRG
+3 QUIT
+4 ;
GO ;
+1 SET PSGPRP="P"
SET PSGPRA=""
SET PSGSS=PSJSEL("SELECT")
if PSGSS'="P"
GOTO ENDEV
+2 KILL DIR
SET DIR(0)="SAO^P:PROFILE;E:EXPANDED VIEWS;B:BOTH"
SET DIR("A")="Show PROFILE only, EXPANDED VIEWS only, or BOTH: "
SET DIR("B")="PROFILE"
SET DIR("?")="^D PH^PSGPR"
WRITE !
DO ^DIR
KILL DIR
if "^"[Y
QUIT
SET PSGPRP=Y
+3 IF "EB"[PSGPRP
FOR
READ !!,"Show SHORT, LONG, or NO activity log? NO// ",AT:DTIME
DO ALC^PSGVW0
IF Q
SET PSGPRA=AT
QUIT
+4 if PSGPRA="^"
QUIT
ENDEV ;
+1 KILL ZTSAVE
SET PSGTIR="ENQ^PSGPR"
SET ZTDESC="PATIENT PROFILE"
FOR X="PSGP","PSGP(","PSGSS","PSGPRWD","PSGPRWG","PSGPRWDN","PSGPRWGN","PSGOL","PSGPRA","PSGPRP","PSGPTMP","PSJSEL(","PPAGE"
SET ZTSAVE(X)=""
+2 DO ENDEV^PSGTI
IF POP!$DATA(IO("Q"))
if $DATA(PSGOEPRF)
GOTO DONE
QUIT
+3 ;
ENQ ;
+1 KILL ^TMP("PSGPR",$JOB)
+2 KILL PSGVBY
NEW RB,ATM
SET PSGPR=IO'=IO(0)!($EXTRACT(IOST)'="C")
NEW RBP
SET RBP=$SELECT($DATA(PSJSEL("RBP")):PSJSEL("RBP"),1:"P")
DO @("P"_PSGSS)
IF PSGPR
if $Y
WRITE @IOF
DO ^%ZISC
+3 if $DATA(PSGOEPRF)
GOTO DONE
QUIT
+4 ;
G ; get ward group
+1 SET PSGPRWG=+PSJSEL("WG")
SET PSGPRWGN=$PIECE(PSJSEL("WG"),"^",2)
QUIT
+2 ;
W ; get ward
+1 SET PSGPRWD=+PSJSEL("W")
SET PSGPRWDN=$PIECE(PSJSEL("W"),"^",2)
+2 IF $DATA(PSJSEL("TM"))
SET TM=""
FOR
SET TM=$ORDER(PSJSEL("TM",TM))
if TM=""
QUIT
SET PSGAPTM(TM)=TM
+3 QUIT
+4 ;
C ;
+1 KILL DIR
SET DIR(0)="FAO"
SET DIR("A")="Select CLINIC: "
+2 SET DIR("?")="^D CDIC^PSGVBW"
WRITE !
DO ^DIR
CDIC ;
+1 KILL DIC
SET DIC="^SC("
SET DIC(0)="QEMIZ"
DO ^DIC
KILL DIC
if +Y>0
SET CL=+Y
+2 if X["?"
WRITE !!,"Enter the clinic you want to use to select patients for processing.",!
+3 QUIT
+4 ;
P ; get patient
+1 NEW PAT
SET PAT=""
FOR
SET PAT=$ORDER(PSJSEL("P",PAT))
if PAT=""
QUIT
SET PSGP(PAT)=$ORDER(PSJSEL("P",PAT,PSGP))
+2 QUIT
+3 ;
PG ;
+1 FOR PSGPRWD=0:0
SET PSGPRWD=$ORDER(^PS(57.5,"AC",PSGPRWG,PSGPRWD))
if 'PSGPRWD
QUIT
IF $DATA(^DIC(42,PSGPRWD,0))
IF $PIECE(^(0),"^")]""
SET PSGPRWDN=$PIECE(^(0),"^")
Begin DoDot:1
+2 FOR PSGP=0:0
SET PSGP=$ORDER(^DPT("CN",PSGPRWDN,PSGP))
if 'PSGP
QUIT
Begin DoDot:2
+3 IF RBP="R"
SET RB=$GET(^DPT(PSGP,.101))
if RB=""
SET RB="zz"
SET ^TMP("PSGPR",$JOB,RB,PSGPRWDN,RB)=PSGP
+4 IF RBP="P"
DO ^PSJAC
SET ^TMP("PSGPR",$JOB,PSGPRWDN,PSGP(0))=PSGP
End DoDot:2
End DoDot:1
+5 IF $DATA(^TMP("PSGPR",$JOB))
NEW PSGX
SET PSGX="^TMP(""PSGPR"",$J)"
FOR
SET PSGX=$QUERY(@PSGX)
if PSGX'[("""PSGPR"""_","_$JOB)
QUIT
SET PSGP=$GET(@PSGX)
DO PP0
if $GET(X)?1"^"."^"
QUIT
+6 QUIT
+7 ;
PW ;
+1 IF $DATA(PSJSEL("TM"))
SET TM=""
FOR
SET TM=$ORDER(PSJSEL("TM",TM))
if TM=""
QUIT
SET PSGPATM(TM)=TM
+2 FOR PSGP=0:0
SET PSGP=$ORDER(^DPT("CN",PSGPRWDN,PSGP))
if 'PSGP
QUIT
SET RB=$GET(^DPT(PSGP,.101))
SET TM="zz"
Begin DoDot:1
+3 IF '$DATA(PSGPATM)
DO SET
QUIT
+4 if RB]""
SET TM=$ORDER(^PS(57.7,"AWRT",PSGPRWD,RB,0))
if 'TM
SET TM="zz"
IF $DATA(PSGPATM("ALL"))!$DATA(PSGPATM(TM))
DO SET
QUIT
End DoDot:1
+5 IF $DATA(^TMP("PSGPR",$JOB))
NEW PSGX
SET PSGX="^TMP(""PSGPR"",$J)"
FOR
SET PSGX=$QUERY(@PSGX)
if PSGX'[("""PSGPR"""_","_$JOB)
QUIT
SET PSGP=$GET(@PSGX)
DO PP0
if $GET(X)?1"^"."^"
QUIT
+6 QUIT
+7 ;
L ;
+1 DO L^PSGVBW
+2 QUIT
+3 ;
PL SET CL=""
FOR
SET CL=$ORDER(^PS(57.8,"AD",CG,CL))
if CL=""
QUIT
DO PC
+1 QUIT
+2 ;
PC SET WDN=$SELECT($DATA(^SC(CL,0)):$PIECE(^(0),"^"),1:"")
+1 SET PSGP=""
FOR
SET PSGP=$ORDER(^PS(53.1,"AD",CL,PSGP))
if 'PSGP
QUIT
SET RB=$GET(^DPT(PSGP,.101))
SET TM="zz"
Begin DoDot:1
+2 DO SET
QUIT
End DoDot:1
+3 IF $DATA(^TMP("PSGPR",$JOB))
NEW PSGX
SET PSGX="^TMP(""PSGPR"",$J)"
FOR
SET PSGX=$QUERY(@PSGX)
if PSGX'[("""PSGPR"""_","_$JOB)
QUIT
SET PSGP=$GET(@PSGX)
DO PP0
if $GET(X)?1"^"."^"
QUIT
+4 QUIT
+5 ;
SET ;
+1 if TM'["zz"
SET TM=$GET(^PS(57.7,$GET(PSGPRWD),1,TM,0))
IF RB=""
SET RB="z"
+2 IF RBP="P"
DO ^PSJAC
SET ^TMP("PSGPR",$JOB,TM,PSGP(0))=PSGP
QUIT
+3 IF RBP="R"
SET ^TMP("PSGPR",$JOB,TM,RB)=PSGP
+4 QUIT
+5 ;
PP ;
+1 SET PAT=""
FOR
SET PAT=$ORDER(PSGP(PAT))
if PAT=""
QUIT
SET PSGP=PSGP(PAT)
DO PP0
if $GET(X)?1"^"."^"
QUIT
+2 QUIT
+3 ;
PP0 ;
+1 NEW PSJACNWP
SET PSJACNWP=1
DO ^PSJAC
IF PSGPRP'="E"
DO ^PSGO
IF PSGPRP="P"
IF 'PSGPR
if 'PSGON
DO READ^PSJUTL
if $GET(X)?1"^"."^"
QUIT
IF PSGON
SET (PSGONC,PSGONF,PSGONR,PSGONV,PSGPRF)=0
DO ENVO^PSGOE0
KILL PSGPRF
QUIT
+2 if PSGPRP="P"
QUIT
IF PSGPRP="E"
USE IO
DO ENGORD^PSGOU
DO ENPR^PSGO
+3 IF 'PSGPR
IF PSGSS'="P"
IF '$DATA(^TMP("PSG",$JOB))
DO READ^PSJUTL
QUIT
+4 SET (S1,S2,S3,X)=""
+5 FOR
SET S1=$ORDER(^TMP("PSG",$JOB,S1))
if S1=""
QUIT
FOR
SET S2=$ORDER(^TMP("PSG",$JOB,S1,S2))
if S2=""
QUIT
FOR
SET S3=$ORDER(^TMP("PSG",$JOB,S1,S2,S3))
if S3=""
QUIT
DO PP1
+6 if X'["^"&PSGPR
DO BOT^PSGO
KILL ^TMP("PSG",$JOB)
QUIT
+7 ;
PP1 ;
+1 ;* S PSGORD=$P(S3,"^",2)_S1 D EN2^PSGVW I PSGPRA'="N" S AT=PSGPRA D ENA^PSGVW0
+2 SET PSGORD=$PIECE(S3,"^",2)_$SELECT(S1["BD":"",S1["B":"P",S1["CD":"",S1["C":"P",1:"U")
DO EN2^PSGVW
IF PSGPRA'="N"
SET AT=PSGPRA
DO ENA^PSGVW0
+3 SET X=""
IF 'PSGPR
SET DIR(0)="E"
WRITE !
DO ^DIR
if $DATA(DIRUT)
SET X="^"
IF X["^"
SET (S1,S2,S3)="~"
+4 QUIT
+5 ;
PH ;
+1 WRITE !!?2,"Enter a 'P' to print ONLY the PROFILE of orders for this patient. Enter an",!,"'E' to print ONLY the EXPANDED VIEW of the orders for this patient. Enter a",!,"'B' to have BOTH the profile (first) and the expanded views print."
+2 WRITE " Enter an '^'to exit."
QUIT
+3 ;
ENOR SET (DFN,PSGP)=+ORVP
ENLM NEW PSJNEW,PSGPTMP,PPAGE,PSGOEPRF
SET PSJNEW=1
+1 SET PSJOPC="UD"
SET PSGPTMP=0
SET PPAGE=1
+2 DO ENCV^PSGSETU
if $DATA(XQUIT)
QUIT
+3 SET PSJSEL("SELECT")="P"
SET PSJSEL("P",$PIECE($GET(^DPT(DFN,0)),U),DFN)=""
DO ^VADPT
+4 DO ^PSJAC
DO ENL^PSGOU
IF "^N"'[PSGOL
Begin DoDot:1
+5 SET PSGSS="P"
SET (PSGPRWD,PSGPRWG)=0
SET (PSGPRWDN,PSGPRWGN)=""
+6 SET PSGP(PSGP(0))=DFN
KILL PSGP(0)
DO GO
End DoDot:1
+7 SET PSJNKF=1
DO READ^PSJUTL
GOTO DONE