1 | IBARXMO ;LL/ELZ - PHARMACY COPAY CAP REPORTS ;21-JAN-2001
|
---|
2 | ;;2.0;INTEGRATED BILLING;**156,261**;21-MAR-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | CAP ; cap report entry point
|
---|
6 | ; this report will produce a summary of patient's who have met or exceed their cap for the period selected. They may select either a mo/year or just a year.
|
---|
7 | N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
|
---|
8 | S DIR(0)="D^::AEMP",DIR("A")="Select a Month/Year or just a Year" D ^DIR
|
---|
9 | Q:$D(DIRUT) S IBD=+Y
|
---|
10 | D DEV("CAPDQ^IBARXMO","Medication Co-Pay Cap Report")
|
---|
11 | Q
|
---|
12 | ;
|
---|
13 | CAPDQ ; cap report processing entry
|
---|
14 | N IBP,IBT,IBS,IBDT,IBST,IBM,IBNAM,DFN,IBAB,IBAT,IBDATA,IBTOT K ^TMP("IBARXMO",$J)
|
---|
15 | ;
|
---|
16 | U IO
|
---|
17 | S (IBP,IBAT,IBAB,IBTOT)=0,IBT="Patient/SSN Non-Billed Total Above Cap Patient Priority",IBS=$$SITE^IBARXMU,IBN=IBN_" for ("_$P(IBS,"^",3)_") "_$P(IBS,"^",2)_" - "_$$FMTE^XLFDT(IBD),IBDT=IBD-1
|
---|
18 | D HEAD(IBN,IBT)
|
---|
19 | ;
|
---|
20 | ; build tmp for output
|
---|
21 | ; format ^tmp("ibarxmo",$j,name (last 4),dfn)=total not billed ^ at or above cap
|
---|
22 | ;
|
---|
23 | F S IBDT=$O(^IBAM(354.7,"AC",IBDT)) Q:IBDT<1!($S($E(IBD,4,5)="00"&($E(IBD,1,3)'=$E(IBDT,1,3)):1,$E(IBD,4,5)'="00"&($E(IBDT,1,5)'=$E(IBD,1,5)):1,1:0)) S IBST=0 F S IBST=$O(^IBAM(354.7,"AC",IBDT,IBST)) Q:IBST<1 D
|
---|
24 | . S DFN=0 F S DFN=$O(^IBAM(354.7,"AC",IBDT,IBST,DFN)) Q:DFN<1 D DEM^VADPT S IBM=0 F S IBM=$O(^IBAM(354.7,"AC",IBDT,IBST,DFN,IBM)) Q:IBM<1 D
|
---|
25 | .. S IBNAM=$E(VADM(1),1,25)_" ("_VA("BID")_")",^TMP("IBARXMO",$J,IBNAM,DFN)=$G(^TMP("IBARXMO",$J,IBNAM,DFN))+$P(^IBAM(354.7,DFN,1,IBM,0),"^",4)_"^"_IBST
|
---|
26 | ;
|
---|
27 | ; now lets do some printing
|
---|
28 | S IBNAM=0 F S IBNAM=$O(^TMP("IBARXMO",$J,IBNAM)) Q:IBNAM=""!($D(DIRUT)) S DFN=0 F S DFN=$O(^TMP("IBARXMO",$J,IBNAM,DFN)) Q:DFN<1!($D(DIRUT)) D
|
---|
29 | . S IBDATA=^TMP("IBARXMO",$J,IBNAM,DFN)
|
---|
30 | . W !,IBNAM,?37,$J($FN(+IBDATA,",",2),12),?53,$S($P(IBDATA,"^",2)=1:"At Cap",1:"Above Cap"),?71,$$PRIORITY^IBARXMU(DFN)
|
---|
31 | . S @$S($P(IBDATA,"^",2)=1:"IBAT",1:"IBAB")=@$S($P(IBDATA,"^",2)=1:"IBAT",1:"IBAB")+1,IBTOT=IBTOT+IBDATA
|
---|
32 | . D:$Y+3>IOSL HEAD(IBN,IBT)
|
---|
33 | ;
|
---|
34 | W !!,?12,"Patient Count At Cap: ",$J($FN(IBAT,",",0),12)
|
---|
35 | W !,?9,"Patient Count Above Cap: ",$J($FN(IBAB,",",0),12)
|
---|
36 | W !,?18,"Total Unbilled: ",?37,$J($FN(IBTOT,",",2),12)
|
---|
37 | ;
|
---|
38 | I $E(IOST,1,2)="C-" K DIR S DIR(0)="E" D ^DIR
|
---|
39 | ;
|
---|
40 | K IBR,IBN,IBD,^TMP("IBARXMO",$J)
|
---|
41 | ;
|
---|
42 | D ^%ZISC
|
---|
43 | S:$D(ZTQUEUED) ZTREQ="@"
|
---|
44 | ;
|
---|
45 | Q
|
---|
46 | NOBILL ; non-billable report entry point
|
---|
47 | ; this report will produce a list of copay transaction which could not be billed (fully or partly) for the Month/Year selected.
|
---|
48 | ;
|
---|
49 | N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
|
---|
50 | S DIR(0)="D^::AEMPX",DIR("A")="Select a Month/Year" D ^DIR
|
---|
51 | Q:$D(DIRUT) S IBD=+Y
|
---|
52 | D DEV("NOBILLDQ^IBARXMO","Non-Billable Copayments Report")
|
---|
53 | Q
|
---|
54 | NOBILLDQ ; entry point to produce the non-billable report
|
---|
55 | N IBDT,IBP,IBT,IBX,IBZ,DFN,IBS
|
---|
56 | U IO
|
---|
57 | ;
|
---|
58 | S IBP=0,IBS=+$P($$SITE^IBARXMU,"^",3),IBN=IBN_" - "_$$FMTE^XLFDT(IBD),IBT="Patient/SSN Rx # Date Drug Amount" D HEAD(IBN,IBT)
|
---|
59 | ;
|
---|
60 | S IBDT=IBD F S IBDT=$O(^IBAM(354.71,"AE",IBDT)) Q:IBDT<1!($D(DIRUT))!($E(IBDT,1,5)'=$E(IBD,1,5)) S IBX=0 F S IBX=$O(^IBAM(354.71,"AE",IBDT,IBX)) Q:IBX<1 D
|
---|
61 | . S IBZ=^IBAM(354.71,IBX,0),$P(IBZ,"^",12)=$P($$NET^IBARXMC(IBX),"^",2)
|
---|
62 | . Q:$P(IBZ,"^",12)'>0!($P(IBZ,"^",10)'=IBX)!($E(IBZ,1,3)'=IBS)
|
---|
63 | . S DFN=$P(IBZ,"^",2) D DEM^VADPT
|
---|
64 | . W !,$E(VADM(1),1,25)_" ("_VA("BID")_")",?32,$P($P(IBZ,"^",9),"-"),?43,$$FMTE^XLFDT(IBDT),?58,$E($P($P(IBZ,"^",9),"-",2),1,13),?72,$J($FN($P(IBZ,"^",12),",",2),8)
|
---|
65 | . D:$Y+3>IOSL HEAD(IBN,IBT)
|
---|
66 | ;
|
---|
67 | I $E(IOST,1,2)="C-" K DIR S DIR(0)="E" D ^DIR
|
---|
68 | ;
|
---|
69 | D ^%ZISC
|
---|
70 | S:$D(ZTQUEUED) ZTREQ="@"
|
---|
71 | ;
|
---|
72 | Q
|
---|
73 | DEV(IBR,IBN) ; device selection
|
---|
74 | ; IBR=routine, IBN=task name (only used of tasked)
|
---|
75 | N %ZIS,ZTSK,ZTSAVE,POP,ZTRTN,ZTDESC
|
---|
76 | S %ZIS="MQ" D ^%ZIS Q:POP
|
---|
77 | I $D(IO("Q")) D Q
|
---|
78 | . S ZTRTN=IBR,ZTDESC=IBN,ZTSAVE("IB*")=""
|
---|
79 | . D ^%ZTLOAD,HOME^%ZIS K IO("Q") W !,"QUEUED TASK #",ZTSK
|
---|
80 | D @IBR
|
---|
81 | ;
|
---|
82 | Q
|
---|
83 | HEAD(IBX,IBY) ; print header
|
---|
84 | ; IBX=report name, IBY=data description for second line
|
---|
85 | ; IBP is assumed for page #
|
---|
86 | N DIR,X,Y
|
---|
87 | I $E(IOST,1,2)="C-",IBP S DIR(0)="E" D ^DIR
|
---|
88 | S IBP=IBP+1
|
---|
89 | W @IOF,!,IBX,?IOM-10,"Page: ",IBP,!,IBY,! F X=1:1:IOM W "-"
|
---|
90 | W !
|
---|
91 | Q
|
---|