PSOCST5 ;BHAM ISC/SAB - PROVIDER BY DRUG COST ; 10/01/92 16:33
;;7.0;OUTPATIENT PHARMACY;**29,31**;DEC 1997
;External Ref. to ^PSDRUG is supp. by DBIA# 221
BEG S RP=5 D HDC^PSOCSTX F D CDT^PSOCSTX Q:$G(CTR) D PRV^PSOCSTX Q:$G(CTR) S RP=0 D CTP^PSOCSTX Q:$G(CTR) I RP=0 D DEV Q
D EX Q
DEV D DVC^PSOCSTX Q:$G(CTR)
K PSOION I $D(IO("Q")) S ZTDESC="PROVIDER BY DRUG COST",ZTRTN="START^PSOCST5" D PAS^PSOCSTX
I K IO("Q") D ^%ZTLOAD W:$D(ZTSK) !,"REPORT QUEUED TO PRINT !!",! D EX Q
START U IO K ^TMP($J) F PSDT=(BEGDATE-1):0:ENDDATE S PSDT=$O(^PSCST(PSDT)) Q:'PSDT!(PSDT>ENDDATE) D @$S('IFN:"PHY",1:"DRUG")
D ZER^PSOCSTX S PHYX="" I $O(^TMP($J,PHYX))']"" D HD1 Q
F I=0:0 S PHYX=$O(^TMP($J,PHYX)) Q:PHYX="" D HD Q:$G(CTR) S DRUGX="" F G=0:0 S DRUGX=$O(^TMP($J,PHYX,DRUGX)) D:DRUGX="" SUB Q:DRUGX="" D
.D HD:($Y+4)>IOSL Q:$G(CTR) S Y=^TMP($J,PHYX,DRUGX),TTX=DRUGX D PRT^PSOCSTX
I 'IFN,'CTR D TOT^PSOCSTX
EX D EX^PSOCSTX Q
PHY F PHY=0:0 S PHY=$O(^PSCST(PSDT,"P",PHY)) Q:'PHY D DRUG
Q
DRUG F DRUG=0:0 S DRUG=$O(^PSCST(PSDT,"P",PHY,"D",DRUG)) Q:'DRUG I $D(^(DRUG,0)) S X=^(0) D STORE
Q
STORE S PHYX=$S($D(^VA(200,+PHY,0)):$P(^(0),"^"),1:"UNKNOWN")
Q:'$D(^PSDRUG(DRUG,0)) S DRUGX=$P(^(0),"^") S:'$D(^TMP($J,PHYX,DRUGX)) ^TMP($J,PHYX,DRUGX)="^0^0^0"
S UTL=^TMP($J,PHYX,DRUGX),^TMP($J,PHYX,DRUGX)="^"_($P(UTL,"^",2)+$P(X,"^",2))_"^"_($P(UTL,"^",3)+$P(X,"^",3))_"^"_($P(UTL,"^",4)+$P(X,"^",4))
Q
HD D HD^PSOCSTX Q:$G(CTR) W !,?5,"Provider: ",PHYX
Q
SUB D HD:($Y+2)>IOSL D FTU^PSOCSTX W !,"Total for ",PHYX D FTT^PSOCSTX,FTU^PSOCSTX,SUB^PSOCSTX
Q
HD1 D HD^PSOCSTX,HDN^PSOCSTX Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSOCST5 1620 printed Dec 13, 2024@02:26:14 Page 2
PSOCST5 ;BHAM ISC/SAB - PROVIDER BY DRUG COST ; 10/01/92 16:33
+1 ;;7.0;OUTPATIENT PHARMACY;**29,31**;DEC 1997
+2 ;External Ref. to ^PSDRUG is supp. by DBIA# 221
BEG SET RP=5
DO HDC^PSOCSTX
FOR
DO CDT^PSOCSTX
if $GET(CTR)
QUIT
DO PRV^PSOCSTX
if $GET(CTR)
QUIT
SET RP=0
DO CTP^PSOCSTX
if $GET(CTR)
QUIT
IF RP=0
DO DEV
QUIT
+1 DO EX
QUIT
DEV DO DVC^PSOCSTX
if $GET(CTR)
QUIT
+1 KILL PSOION
IF $DATA(IO("Q"))
SET ZTDESC="PROVIDER BY DRUG COST"
SET ZTRTN="START^PSOCST5"
DO PAS^PSOCSTX
+2 IF $TEST
KILL IO("Q")
DO ^%ZTLOAD
if $DATA(ZTSK)
WRITE !,"REPORT QUEUED TO PRINT !!",!
DO EX
QUIT
START USE IO
KILL ^TMP($JOB)
FOR PSDT=(BEGDATE-1):0:ENDDATE
SET PSDT=$ORDER(^PSCST(PSDT))
if 'PSDT!(PSDT>ENDDATE)
QUIT
DO @$SELECT('IFN:"PHY",1:"DRUG")
+1 DO ZER^PSOCSTX
SET PHYX=""
IF $ORDER(^TMP($JOB,PHYX))']""
DO HD1
QUIT
+2 FOR I=0:0
SET PHYX=$ORDER(^TMP($JOB,PHYX))
if PHYX=""
QUIT
DO HD
if $GET(CTR)
QUIT
SET DRUGX=""
FOR G=0:0
SET DRUGX=$ORDER(^TMP($JOB,PHYX,DRUGX))
if DRUGX=""
DO SUB
if DRUGX=""
QUIT
Begin DoDot:1
+3 if ($Y+4)>IOSL
DO HD
if $GET(CTR)
QUIT
SET Y=^TMP($JOB,PHYX,DRUGX)
SET TTX=DRUGX
DO PRT^PSOCSTX
End DoDot:1
+4 IF 'IFN
IF 'CTR
DO TOT^PSOCSTX
EX DO EX^PSOCSTX
QUIT
PHY FOR PHY=0:0
SET PHY=$ORDER(^PSCST(PSDT,"P",PHY))
if 'PHY
QUIT
DO DRUG
+1 QUIT
DRUG FOR DRUG=0:0
SET DRUG=$ORDER(^PSCST(PSDT,"P",PHY,"D",DRUG))
if 'DRUG
QUIT
IF $DATA(^(DRUG,0))
SET X=^(0)
DO STORE
+1 QUIT
STORE SET PHYX=$SELECT($DATA(^VA(200,+PHY,0)):$PIECE(^(0),"^"),1:"UNKNOWN")
+1 if '$DATA(^PSDRUG(DRUG,0))
QUIT
SET DRUGX=$PIECE(^(0),"^")
if '$DATA(^TMP($JOB,PHYX,DRUGX))
SET ^TMP($JOB,PHYX,DRUGX)="^0^0^0"
+2 SET UTL=^TMP($JOB,PHYX,DRUGX)
SET ^TMP($JOB,PHYX,DRUGX)="^"_($PIECE(UTL,"^",2)+$PIECE(X,"^",2))_"^"_($PIECE(UTL,"^",3)+$PIECE(X,"^",3))_"^"_($PIECE(UTL,"^",4)+$PIECE(X,"^",4))
+3 QUIT
HD DO HD^PSOCSTX
if $GET(CTR)
QUIT
WRITE !,?5,"Provider: ",PHYX
+1 QUIT
SUB if ($Y+2)>IOSL
DO HD
DO FTU^PSOCSTX
WRITE !,"Total for ",PHYX
DO FTT^PSOCSTX
DO FTU^PSOCSTX
DO SUB^PSOCSTX
+1 QUIT
HD1 DO HD^PSOCSTX
DO HDN^PSOCSTX
QUIT