PSGVBW1 ;BIR/CML3,MV-NON-VERFIED ORDERS UTILITES ; 5/3/10 3:44pm
;;5.0; INPATIENT MEDICATIONS ;**5,111,241**;16 DEC 97;Build 10
;
;Reference to ^PS(55 is supported by DBIA 2191.
;
ENPROF ;
I +PSJSYSU=1 S PSGOENOF=0 D NOW^%DTC F Q=%:0 S Q=$O(^PS(55,PSGP,5,"AUS",Q)) Q:'Q F QQ=0:0 S QQ=$O(^PS(55,PSGP,5,"AUS",Q,QQ)) Q:'QQ I $D(^PS(55,PSGP,5,QQ,4)),$P(^(4),"^",10) S PSGOENOF=1 Q
W !!,$S($P(PSGP(0),"^")]"":$P(PSGP(0),"^"),1:PSGP_";DPT(") W:PSJPBID " (",PSJPBID,")"
D ENL^PSGOU Q:PSGOL["^"
K ZTSAVE S PSGTIR="^PSJAC,^PSGO",ZTDESC="PATIENT PROFILE",PSGPR=1 F X="PSGP","PSGP(0)","PSGPR","PSGOL","PSGPTMP","PPAGE" S ZTSAVE(X)=""
Q:PSGOL="N"
D ENDEV^PSGTI K PSGPR Q:POP!$D(IO("Q"))
S PSGVBW=IO'=IO(0)!($E(IOST)'="C") D ^PSGO D ^%ZISC Q:PSGVBW
PEND K DIR S DIR(0)="E" W ! D ^DIR K DIR Q
;
OUTPT ;Set up Outpatient IV for non/ver pending option.
K ^TMP("PSGVBW",$J)
NEW PSJSTAT,PSJTOO1,PSJPAC1
;I PSJTOO'=2 S PSJSTAT="N" D PSGP
;I PSJTOO'=1 S PSJSTAT="P" D PSGP
S PSJSTAT="N" D PSGP
S PSJSTAT="P" D PSGP
N PSJXR,PSJUDIV S PSJXR(1)=$S(+PSJSYSU=3:"APV",1:"ANV"),PSJXR(2)=$S(+PSJSYSU=3:"APIV",1:"ANIV") ;*PSJ*5*241: added block
F PSJUDIV=1:1:2 F DFN=0:0 S DFN=$O(^PS(55,PSJXR(PSJUDIV),DFN)) Q:'DFN D
. NEW VAIN D INP^VADPT
. I $G(VAIN(4))&(PSGSS="G"&'$D(^PS(57.5,"AB",+VAIN(4)))) D
.. S PSGP=DFN D ^PSJAC S WDN="ZZ" D IF^PSGVBW
D ^PSGVBW0
S Y=-1
Q
PSGP ;
F PSGP=0:0 S PSGP=$O(^PS(53.1,"AS",PSJSTAT,PSGP)) Q:'PSGP D
. NEW VAIN S DFN=PSGP D INP^VADPT
. I '+(VAIN(4))!(PSGSS="G"&'$D(^PS(57.5,"AB",+VAIN(4)))) D
.. ;I PSJSTAT="N",'+VAIN(4) Q
.. D ^PSJAC S WDN="ZZ" D IF^PSGVBW
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSGVBW1 1637 printed Oct 16, 2024@18:04:12 Page 2
PSGVBW1 ;BIR/CML3,MV-NON-VERFIED ORDERS UTILITES ; 5/3/10 3:44pm
+1 ;;5.0; INPATIENT MEDICATIONS ;**5,111,241**;16 DEC 97;Build 10
+2 ;
+3 ;Reference to ^PS(55 is supported by DBIA 2191.
+4 ;
ENPROF ;
+1 IF +PSJSYSU=1
SET PSGOENOF=0
DO NOW^%DTC
FOR Q=%:0
SET Q=$ORDER(^PS(55,PSGP,5,"AUS",Q))
if 'Q
QUIT
FOR QQ=0:0
SET QQ=$ORDER(^PS(55,PSGP,5,"AUS",Q,QQ))
if 'QQ
QUIT
IF $DATA(^PS(55,PSGP,5,QQ,4))
IF $PIECE(^(4),"^",10)
SET PSGOENOF=1
QUIT
+2 WRITE !!,$SELECT($PIECE(PSGP(0),"^")]"":$PIECE(PSGP(0),"^"),1:PSGP_";DPT(")
if PSJPBID
WRITE " (",PSJPBID,")"
+3 DO ENL^PSGOU
if PSGOL["^"
QUIT
+4 KILL ZTSAVE
SET PSGTIR="^PSJAC,^PSGO"
SET ZTDESC="PATIENT PROFILE"
SET PSGPR=1
FOR X="PSGP","PSGP(0)","PSGPR","PSGOL","PSGPTMP","PPAGE"
SET ZTSAVE(X)=""
+5 if PSGOL="N"
QUIT
+6 DO ENDEV^PSGTI
KILL PSGPR
if POP!$DATA(IO("Q"))
QUIT
+7 SET PSGVBW=IO'=IO(0)!($EXTRACT(IOST)'="C")
DO ^PSGO
DO ^%ZISC
if PSGVBW
QUIT
PEND KILL DIR
SET DIR(0)="E"
WRITE !
DO ^DIR
KILL DIR
QUIT
+1 ;
OUTPT ;Set up Outpatient IV for non/ver pending option.
+1 KILL ^TMP("PSGVBW",$JOB)
+2 NEW PSJSTAT,PSJTOO1,PSJPAC1
+3 ;I PSJTOO'=2 S PSJSTAT="N" D PSGP
+4 ;I PSJTOO'=1 S PSJSTAT="P" D PSGP
+5 SET PSJSTAT="N"
DO PSGP
+6 SET PSJSTAT="P"
DO PSGP
+7 ;*PSJ*5*241: added block
NEW PSJXR,PSJUDIV
SET PSJXR(1)=$SELECT(+PSJSYSU=3:"APV",1:"ANV")
SET PSJXR(2)=$SELECT(+PSJSYSU=3:"APIV",1:"ANIV")
+8 FOR PSJUDIV=1:1:2
FOR DFN=0:0
SET DFN=$ORDER(^PS(55,PSJXR(PSJUDIV),DFN))
if 'DFN
QUIT
Begin DoDot:1
+9 NEW VAIN
DO INP^VADPT
+10 IF $GET(VAIN(4))&(PSGSS="G"&'$DATA(^PS(57.5,"AB",+VAIN(4))))
Begin DoDot:2
+11 SET PSGP=DFN
DO ^PSJAC
SET WDN="ZZ"
DO IF^PSGVBW
End DoDot:2
End DoDot:1
+12 DO ^PSGVBW0
+13 SET Y=-1
+14 QUIT
PSGP ;
+1 FOR PSGP=0:0
SET PSGP=$ORDER(^PS(53.1,"AS",PSJSTAT,PSGP))
if 'PSGP
QUIT
Begin DoDot:1
+2 NEW VAIN
SET DFN=PSGP
DO INP^VADPT
+3 IF '+(VAIN(4))!(PSGSS="G"&'$DATA(^PS(57.5,"AB",+VAIN(4))))
Begin DoDot:2
+4 ;I PSJSTAT="N",'+VAIN(4) Q
+5 DO ^PSJAC
SET WDN="ZZ"
DO IF^PSGVBW
End DoDot:2
End DoDot:1
+6 QUIT