| [613] | 1 | IBARXMQ ;LL/ELZ-RX COPAY RPC QUERY ROUTINE (MILL BILL) ;10-OCT-2000
 | 
|---|
 | 2 |  ;;2.0;INTEGRATED BILLING;**150,156,186,199**;21-MAR-94
 | 
|---|
 | 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 |  ;
 | 
|---|
 | 5 | EN ; main entry point for users to request a query of rx bills from all possible facilities
 | 
|---|
 | 6 |  N DIC,X,Y,DFN,IBT,IBTFL,%,%ZIS,ZTSAVE,POP,ZTSK,DIR,IBDT,IBPAT,IBROOT
 | 
|---|
 | 7 |  ;
 | 
|---|
 | 8 |  ; select patient, and get pt info
 | 
|---|
 | 9 |  N DPTNOFZY S DPTNOFZY=1  ;Suppress PATIENT file fuzzy lookups
 | 
|---|
 | 10 |  S DIC="^DPT(",DIC(0)="AEMNQ" D ^DIC Q:Y<1  S DFN=+Y
 | 
|---|
 | 11 |  D DEM^VADPT S IBPAT=VADM(1)_"^"_VA("BID") D KVAR^VADPT
 | 
|---|
 | 12 |  ;
 | 
|---|
 | 13 |  ; ask for month / year
 | 
|---|
 | 14 |  S DIR(0)="D^::AEMP",DIR("A")="For What Month/Year" D ^DIR Q:Y<1
 | 
|---|
 | 15 |  S IBDT=Y
 | 
|---|
 | 16 |  ;
 | 
|---|
 | 17 |  ; scan for patient to see if different facilities could be involved
 | 
|---|
 | 18 |  S IBT=$$TFL^IBARXMU(DFN,.IBTFL)
 | 
|---|
 | 19 |  ;
 | 
|---|
 | 20 |  ; if multiple facilities ask if we should check
 | 
|---|
 | 21 |  I IBT W !,"This patient could have Pharmacy Co-payment bills at other facilities",!,"Do you want to check those other facilities" S %=0 D YN^DICN S:%'=1 IBT=0 Q:%<0
 | 
|---|
 | 22 |  ;
 | 
|---|
 | 23 |  ; now for a device
 | 
|---|
 | 24 |  S %ZIS="MQ" D ^%ZIS Q:POP
 | 
|---|
 | 25 |  I $D(IO("Q")) D  Q
 | 
|---|
 | 26 |  . S ZTRTN="DQ^IBARXMQ",(ZTSAVE("DFN"),ZTSAVE("IB*"))=""
 | 
|---|
 | 27 |  . S ZTDESC="PHARMACY BILLING SUMMARY"
 | 
|---|
 | 28 |  . D ^%ZTLOAD,HOME^%ZIS K IO("Q") W !,"Task# ",ZTSK
 | 
|---|
 | 29 |  ;
 | 
|---|
 | 30 | DQ ; tasked entry point
 | 
|---|
 | 31 |  ;
 | 
|---|
 | 32 |  N IBD,IBER,X,IBX,IBC,IBB,IBU,DIRUT,IBE,IBP K ^TMP("IBARXM",$J)
 | 
|---|
 | 33 |  ;
 | 
|---|
 | 34 |  ; remote stuff, file locally
 | 
|---|
 | 35 |  I IBT S IBX=0 F  S IBX=$O(IBTFL(IBX)) Q:IBX<1  D
 | 
|---|
 | 36 |  . W:'$D(ZTQUEUED) !,"Now sending query to ",$P(IBTFL(IBX),"^",2)," ..."
 | 
|---|
 | 37 |  . D QUERY^IBARXMU(DFN,IBDT,+IBTFL(IBX),.IBD)
 | 
|---|
 | 38 |  . I $P(IBD(0),"^")=-1!(-1=+IBD)!($P($G(IBD(1)),"^")=-1) S IBER=1 K IBD Q
 | 
|---|
 | 39 |  . S X=1 F  S X=$O(IBD(X)) Q:X<1  S IBD=$$ADD^IBARXMN(DFN,IBD(X))
 | 
|---|
 | 40 |  . K IBD
 | 
|---|
 | 41 |  ;
 | 
|---|
 | 42 |  ; stuff on local file w/remote stuff, build tmp
 | 
|---|
 | 43 |  S (IBC,IBX)=0 F  S IBX=$O(^IBAM(354.71,"AD",DFN,IBDT,IBX)) Q:IBX<1  S IBC=IBC+1,IBD=^IBAM(354.71,IBX,0),^TMP("IBARXM",$J,$P(IBD,"^",3),IBC)=IBD
 | 
|---|
 | 44 |  ;
 | 
|---|
 | 45 |  ;
 | 
|---|
 | 46 | PRINT ;
 | 
|---|
 | 47 |  U IO
 | 
|---|
 | 48 |  S (IBP,IBE,IBB,IBU)=0 D HEAD F  S IBE=$O(^TMP("IBARXM",$J,IBE)) Q:IBE<1!($D(DIRUT))  S IBX=0 F  S IBX=$O(^TMP("IBARXM",$J,IBE,IBX)) Q:IBX<1!($D(DIRUT))  D
 | 
|---|
 | 49 |  . D:$Y+3>IOSL HEAD Q:$D(DIRUT)
 | 
|---|
 | 50 |  . S IBD=^TMP("IBARXM",$J,IBE,IBX)
 | 
|---|
 | 51 |  . W !,$E($P($$FAC^IBARXMU($$LKUP^XUAF4($P(IBD,"-"))),"^"),1,20)," (",+IBD,")"
 | 
|---|
 | 52 |  . W ?28,$$FMTE^XLFDT(IBE,"2D")
 | 
|---|
 | 53 |  . W ?39,$P(IBD,"^",9)
 | 
|---|
 | 54 |  . W ?64,$J($P(IBD,"^",11),6,2)
 | 
|---|
 | 55 |  . W ?74,$J($P(IBD,"^",12),6,2)
 | 
|---|
 | 56 |  . S IBB=IBB+$P(IBD,"^",11),IBU=IBU+$P(IBD,"^",12)
 | 
|---|
 | 57 |  I $D(DIRUT) G Q
 | 
|---|
 | 58 |  W !!?62,"--------",?72,"--------"
 | 
|---|
 | 59 |  W !?65,$J(IBB,5,2),?75,$J(IBU,5,2)
 | 
|---|
 | 60 |  ;
 | 
|---|
 | 61 |  ; update totals in the patient's account
 | 
|---|
 | 62 |  X $S($D(IBER):"W !!,""Unable to perform all remote queries, totals will not be updated!""",IBT=0&($D(IBTFL)):"W !!,""No remote queries needed/performed, account not updated.""",1:"D ACCT^IBARXMN(DFN,IBB,IBU,IBDT,1)")
 | 
|---|
 | 63 |  ;
 | 
|---|
 | 64 |  I $E(IOST,1,2)="C-",'$D(DIRUT) N DIR,X,Y,DTOUT,DUOUT,DIROUT S DIR(0)="E" D ^DIR
 | 
|---|
 | 65 |  ;
 | 
|---|
 | 66 | Q K ^TMP("IBARXM",$J)
 | 
|---|
 | 67 |  D ^%ZISC
 | 
|---|
 | 68 |  S:$D(ZTQUEUED) ZTREQ="@"
 | 
|---|
 | 69 |  Q
 | 
|---|
 | 70 |  ;
 | 
|---|
 | 71 | HEAD ; prints header info
 | 
|---|
 | 72 |  N DIR,X,Y,DTOUT,DUOUT,DIROUT
 | 
|---|
 | 73 |  I IBP>0,$E(IOST,1,2)="C-" S DIR(0)="E" D ^DIR Q:$D(DIRUT)
 | 
|---|
 | 74 |  S IBP=IBP+1
 | 
|---|
 | 75 |  W @IOF,!,"Medication Co-Pay Billing Summary",?IOM-10,"Page: ",IBP
 | 
|---|
 | 76 |  W !,"Patient: ",$P(IBPAT,"^")," (",$P(IBPAT,"^",2),")",!
 | 
|---|
 | 77 |  F X=0:1:IOM-1 W "-"
 | 
|---|
 | 78 |  W !,"Station                      Date      Brief Description        Billed   No Bill",! F X=0:1:IOM-1 W "-"
 | 
|---|
 | 79 |  Q
 | 
|---|