Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PRCAXP

PRCAXP.m

Go to the documentation of this file.
  1. PRCAXP ;WASH-ISC@ALTOONA,PA/TJK-PRINT RX-COPAY EXEMPTION REPORT ;10/23/93 10:01 AM
  1. V ;;4.5;Accounts Receivable;**315**;Mar 20, 1995;Build 67
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. NEW BEG,END,%DT,%ZIS,IOP,POP,Y,%
  1. BEG W ! D NOW^%DTC S %DT(0)=-%,%DT="AEXP",%DT("A")="Start Date: " D ^%DT G:Y<0 Q S BEG=Y
  1. S %DT="AEX",%DT("A")=" End Date: ",%DT("B")="T" D ^%DT G:Y<0 Q S END=Y
  1. W !!,"You will need a 132 column printer for this report!",!
  1. W ! K IO("Q") S %ZIS="MQ" D ^%ZIS G:POP Q
  1. I $D(IO("Q")) S ZTRTN="DQ^PRCAXP",ZTSAVE("BEG")="",ZTSAVE("END")="" D ^%ZTLOAD G Q
  1. U IO
  1. DQ ;ENTRY POINT FROM TASK MANAGER FOR PRINTING REPORT
  1. NEW Y,TODAY,PG,I,PRCA,PRCAHDR,BEGPR,ENDPR,TRDATE,TRNO,T0,T1,BILL,TRAMT,OUT,PTNM,DFN,CONTINUE
  1. NEW ID,REC,TTYPE,VA,PTOT,PGTOT,TOT,LAST,BLNO,EFDT,DTH
  1. COMPUTE ;SETS TEMPORARY GLOBAL FOR PRINTING
  1. K ^TMP($J) S TRDATE=BEG-1,(TOT("D"),TOT("E"),TOT("I"))=0,U="^"
  1. F S TRDATE=$O(^PRCA(433,"ACE",TRDATE)) G PRINT:'TRDATE!($P(TRDATE,".")>END) S TRNO=0 D
  1. .F S TRNO=$O(^PRCA(433,"ACE",TRDATE,TRNO)) Q:'TRNO D
  1. ..S T0=$G(^PRCA(433,TRNO,0)),T1=$G(^(1)) Q:T0=""
  1. ..S BLNO=$P(T0,U,2),TRAMT=$P(T1,U,5),TTYPE=$S($P(T1,U,2)=35:"D",$P(T1,U,2)=1:"I",1:"E"),EFDT=$P(T1,U,1) ;*315 START
  1. ..;S DFN=$P(^PRCA(430,BLNO,0),U,9),BILL=$P(^(0),U)
  1. ..S P0=$G(^PRCA(430,BLNO,0)),DFN=$P(P0,U,9),BILL=$P(P0,U),IBN=0
  1. ..S DFN=$P(^RCD(340,+DFN,0),U) Q:'DFN!(DFN'["DPT(") S DFN=+DFN
  1. ..D DEM^VADPT S PTNM=VADM(1),ID=$E(PTNM,1)_VA("BID") S DTH=$S(+VADM(6):"*",1:"") D KVAR^VADPT
  1. ..D FNDBIL(TRNO,TTYPE)
  1. PRINT ;PRINT REPORT
  1. S LAST=""
  1. S Y=BEG X ^DD("DD") S BEGPR=Y
  1. S Y=END X ^DD("DD") S ENDPR=Y
  1. S Y=DT X ^DD("DD") S TODAY=Y,PG=0 D HEAD
  1. I '$D(^TMP($J)) W !!,"NO EXEMPTIONS FOR THIS TIME PERIOD" G Q
  1. S PTNM="" F S PTNM=$O(^TMP($J,PTNM)) Q:PTNM=""!($D(OUT)) D
  1. .S DFN=0 F S DFN=$O(^TMP($J,PTNM,DFN)) Q:'DFN!($D(OUT)) S CONTINUE="",PTOT=0 D I PTOT W !,?115,"-------------",!,?115,$J(+PTOT,13,2),!
  1. ..S BILL="" F S BILL=$O(^TMP($J,PTNM,DFN,BILL)) Q:BILL=""!($D(OUT)) D
  1. ...S TRNO=0 F S TRNO=$O(^TMP($J,PTNM,DFN,BILL,TRNO)) Q:TRNO=""!($D(OUT)) D ;*315 START
  1. ....S CONTINUE=""
  1. ....S RX=0 F S RX=$O(^TMP($J,PTNM,DFN,BILL,TRNO,RX)) Q:'RX!($D(OUT)) D
  1. .....S REC=^TMP($J,PTNM,DFN,BILL,TRNO,RX),TRAMT=$P(REC,U,1) W ! W:$D(CONTINUE) $P(REC,"^",4),$E(PTNM,1,25)," ",?28,$P(REC,U,2),?35,BILL,?48,TRNO,?56,$P(REC,U,3)
  1. .....W ?60,$S(RX=1:"",1:$P(REC,U,5)) W ?70,$E($P(REC,U,6),1,17),?90,$P(REC,U,7),?100,$P(REC,U,8) I $D(CONTINUE),TRNO'=LAST W ?115,$J(TRAMT,13,2)
  1. .....I $D(CONTINUE),TRNO'=LAST S PTOT=PTOT+TRAMT,PGTOT=+$G(PGTOT)+TRAMT,TOT($S($P(REC,U,3)]"":$P(REC,U,3),1:"UNK"))=$G(TOT($S($P(REC,U,3)]"":$P(REC,U,3),1:"UNK")))+REC ;*315 END
  1. .....K CONTINUE S LAST=TRNO D HEAD:($Y+4)>IOSL
  1. G:$D(OUT) Q
  1. W !,"* -indicates patient is deceased"
  1. D HEAD:($Y+7)>IOSL
  1. W !!,"EXEMPTION TYPES AND TOTALS"
  1. W !!,"D=DECREASE ADJUSTMENT ",?35,$J(TOT("D"),13,2),!,"E=INTEREST/ADMIN EXEMPTION ",?35,$J(TOT("E"),13,2),!,"I=INCREASE ADJUSTMENT FOR REFUND ",?35,$J(TOT("I"),13,2)
  1. I $D(TOT("UNK")) W !,"UNK=EXEMPTION TYPE UNKNOWN",?35,$J(TOT("UNK"),13,2)
  1. W !,?35,"-------------",!,?35,$J(PGTOT,13,2)
  1. K BEG,END,IO("Q") ;K ^TMP($J)
  1. Q D ^%ZISC Q
  1. ;
  1. FNDBIL(TRNO,TTYPE) ;
  1. N FOUND,CNT,IBN,IB0,RR,RX,DRUG,FLDT,EDT,EFFDT,IBAMT,IBAS,ARTRN
  1. S (IBN,FOUND,CNT,RX)=0,EDT=""
  1. F S IBN=$O(^IB("ABIL",BILL,IBN)) Q:IBN="" D
  1. .S IB0=^IB(IBN,0),RR=$P(IB0,U,4),EDT=$P(IB0,U,17),IBAMT=$P(IB0,U,7),ARTRN=$P(IB0,U,12)
  1. .I EDT="" S EDT=EFDT
  1. .I EDT="" S EDT=TRDATE
  1. .I ARTRN=TRNO S FOUND=1 D DATA Q
  1. .I 'FOUND,ARTRN="" D DATA
  1. I CNT=0,RX=0 D
  1. .I EDT="" S EDT=EFDT
  1. .I EDT="" S EDT=TRDATE
  1. .S EFFDT=$$FMTE^XLFDT(EDT,"2DZ")
  1. .D SET(1)
  1. Q
  1. ;
  1. DATA ; SET UP DATA
  1. N RIEN,RFL
  1. S CNT=CNT+1
  1. S RIEN=+$P(RR,"52:",2),RFL=+$P(RR,":",3)
  1. S DRUG=$P($$GET1^PSODI(52,RIEN,6,"E"),U,2)
  1. S RX=$P($$GET1^PSODI(52,RIEN,.01,"E"),U,2)
  1. I RFL>0 S FLDT=$P($$GET1^PSODI(52.1,RFL_","_RIEN,.01,"I"),U,2)
  1. I RFL=0 S FLDT=$P($$GET1^PSODI(52,RIEN,22,"I"),U,2)
  1. S EFFDT=$$FMTE^XLFDT(EDT,"2DZ"),FLDT=$$FMTE^XLFDT(FLDT,"2DZ")
  1. I $D(^TMP($J,PTNM,DFN,BILL,TRNO,RX)) Q
  1. D SET(RX)
  1. Q
  1. ;
  1. SET(RX) ;
  1. S ^TMP($J,PTNM,DFN,BILL,TRNO,RX)=TRAMT_U_ID_U_TTYPE_U_DTH_U_$G(RX)_U_$G(DRUG)_U_$G(FLDT)_U_$G(EFFDT)_U_$G(ARTRN)_U_$G(IBAS)_U_$G(IBN) ;*315 END
  1. Q
  1. ;
  1. I PG,$E(IOST,1,2)["C-" D SCR Q:$D(OUT)
  1. W @IOF S PG=PG+1
  1. W !!,"Pg. "_PG,?130-$L(TODAY),TODAY
  1. S PRCAHDR="MEDICATION CO-PAY EXEMPTION REPORT",PRCA="",$P(PRCA,"*",(130-$L(PRCAHDR))\2)="*",PRCAHDR=PRCA_" "_PRCAHDR_" "_PRCA
  1. W !,PRCAHDR,!,?53,BEGPR,"-",ENDPR
  1. W !,?35,"BILL",?48,"TRAN.",?56,"EXP",?90,"FILL/",?100,"EFFECTIVE" ;*315 START
  1. W !,"PATIENT",?28,"ID",?35,"NUMBER",?48,"NUMBER",?56,"TYP",?60,"RX",?70,"DRUG NAME",?90,"REFL DT",?102,"DATE",?120,"AMOUNT" ;*315 END
  1. S PRCA="",$P(PRCA,"-",132)="" W !,PRCA
  1. S CONTINUE=""
  1. Q
  1. ;
  1. SCR ;
  1. Q:$E(IOST,1,2)'["C-"
  1. N DIR,YY,DIRUT,DUOUT,DTOUT,DIROUT,X,Y
  1. F YY=$Y:1:(IOSL-2) W !
  1. S DIR(0)="E" D ^DIR I $D(DIRUT)!($D(DTOUT)) S OUT=1
  1. Q