- 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
- 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