| 1 | FBCKDIS ;AISC/CMR-OUTPUT BY CHECK # ;7/NOV/2006
 | 
|---|
| 2 |  ;;3.5;FEE BASIS;**4,61,101**;JAN 30, 1995;Build 2
 | 
|---|
| 3 |  ;;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
| 4 |  ;FBCN=Check Number               FBPROG=Fee payment type
 | 
|---|
| 5 |  ;FBPR is set if called from the phone menu.  If this variable exists,
 | 
|---|
| 6 |  ;     the user will not be returned to the TOP to select another ck #.
 | 
|---|
| 7 | TOP W ! S DIR(0)="FO^1:8",DIR("A")="Select Check Number" D ^DIR K DIR Q:Y=""!(Y="^")  S FBCN=Y
 | 
|---|
| 8 |  I '$D(^FBAAC("ACK",FBCN)),('$D(^FBAAC("ACKT",FBCN))),('$D(^FBAAI("ACK",FBCN))),('$D(^FBAA(162.1,"ACK",FBCN))) W !!,*7,"There is no record of that check number." G TOP
 | 
|---|
| 9 |  S VAR="FBCN",VAL=FBCN,PGM="START^FBCKDIS" D ZIS^FBAAUTL G END:FBPOP
 | 
|---|
| 10 | START S Q="-",$P(Q,"-",80)="-",QQ="=",$P(QQ,"=",80)="=",FBPG=1 K ^TMP($J,"FBCK")
 | 
|---|
| 11 |  N FBV,DFN D ^FBCKDIS1
 | 
|---|
| 12 |  U IO W:$E(IOST,1,2)["C-" @IOF
 | 
|---|
| 13 |  F FBPROG="OPT","CH","CNH","PHAR","TRAV" I $D(^TMP($J,"FBCK",FBPROG)) D PGCHK D  Q:$G(FBAAOUT)
 | 
|---|
| 14 |  .S FBV=0 F  S FBV=$O(^TMP($J,"FBCK",FBPROG,FBV)) Q:FBV']""!($G(FBAAOUT))  W:FBPROG'="TRAV" !!,"VENDOR:  ",$$VNAME^FBNHEXP(FBV),?40,"  VENDOR ID:  ",$$VID^FBNHEXP(FBV) D
 | 
|---|
| 15 |  ..S DFN=0 F  S DFN=$O(^TMP($J,"FBCK",FBPROG,FBV,DFN)) Q:'DFN!($G(FBAAOUT))  D:$Y+8>IOSL PGCHK Q:$G(FBAAOUT)  W !!,"Patient:  ",$$NAME^FBCHREQ2(DFN),?40,"Patient ID:  ",$$SSNL4^FBAAUTL($$SSN^FBAAUTL(DFN)) D
 | 
|---|
| 16 |  ...N FBAARC,FBADJLA,FBADJLR,FBC,FBFPPSC,FBFPPSL,FBSUSPA,FBX
 | 
|---|
| 17 |  ...S FBCNT=0 F  S FBCNT=$O(^TMP($J,"FBCK",FBPROG,FBV,DFN,FBCNT)) Q:'FBCNT!($G(FBAAOUT))  S FBDA=^(FBCNT) D @FBPROG,OUTPUT,CLEAN
 | 
|---|
| 18 | END K FBCN,FBCNT,DFN,FBV,FBPROG,FBPG,DIRUT,DTOUT,DUOUT,Q,QQ,^TMP($J,"FBCK")
 | 
|---|
| 19 |  D CLOSE^FBAAUTL
 | 
|---|
| 20 |  I $G(FBAAOUT) K FBAAOUT Q
 | 
|---|
| 21 |  Q:$G(FBPR)]""!($G(ZTQUEUED))
 | 
|---|
| 22 |  W !! S DIR(0)="E" D ^DIR K DIR Q:'Y  G TOP
 | 
|---|
| 23 | OPT ;gather payment line item for outpatient
 | 
|---|
| 24 |  F I=1:1:4 S FB(I)=+$P(FBDA,U,I)
 | 
|---|
| 25 |  S FBA=^FBAAC(FB(1),1,FB(2),1,FB(3),1,FB(4),0),FBB=^(2),FBC=$G(^(3))
 | 
|---|
| 26 |  S FBDOS=+^FBAAC(FB(1),1,FB(2),1,FB(3),0)
 | 
|---|
| 27 |  S FBSRV=$$CPT^FBAAUTL4($P(FBA,U))
 | 
|---|
| 28 |  S FBMODLE=$$MODL^FBAAUTL4("^FBAAC("_FB(1)_",1,"_FB(2)_",1,"_FB(3)_",1,"_FB(4)_",""M"")","E")
 | 
|---|
| 29 |  S FBSRV=FBSRV_$S($G(FBMODLE)]"":"-"_FBMODLE,1:"")
 | 
|---|
| 30 |  S FBAMCL=$P(FBA,U,2),FBAMPD=$P(FBA,U,3)
 | 
|---|
| 31 |  S FBSUSP=$P(FBA,U,5) D SUSP^FBCKDIS1
 | 
|---|
| 32 |  S FBSUSPA=$FN($P(FBA,U,4),"",2)
 | 
|---|
| 33 |  S FBFPPSC=$P(FBC,U)
 | 
|---|
| 34 |  S FBFPPSL=$P(FBC,U,2)
 | 
|---|
| 35 |  S FBAARCE=$$GET1^DIQ(162.03,FB(4)_","_FB(3)_","_FB(2)_","_FB(1)_",",48)
 | 
|---|
| 36 |  S FBX=$$ADJLRA^FBAAFA(FB(4)_","_FB(3)_","_FB(2)_","_FB(1)_",")
 | 
|---|
| 37 |  S FBADJLR=$P(FBX,U)
 | 
|---|
| 38 |  S FBADJLA=$P(FBX,U,2)
 | 
|---|
| 39 |  S FBVP=$P(FBA,U,21),FBREIM=$P(FBA,U,20),FBBAT=$P(FBA,U,8),FBINV=$P(FBA,U,16)
 | 
|---|
| 40 |  D FBCKO^FBAACCB2(FB(1),FB(2),FB(3),FB(4))
 | 
|---|
| 41 |  Q
 | 
|---|
| 42 | CH ;gather payment line item for ch
 | 
|---|
| 43 | CNH ;gather payment line item for cnh
 | 
|---|
| 44 |  S FBA=^FBAAI(FBDA,0),FBB=^(2),FBC=$G(^(3)),FBDOS=$P(FBA,U,6)_"-"_$P(FBA,U,7),FBAMCL=$P(FBA,U,8),FBAMPD=$P(FBA,U,9),FBSUSP=$P(FBA,U,11) D SUSP^FBCKDIS1
 | 
|---|
| 45 |  S FBVP=$P(FBA,U,14),FBREIM=$P(FBA,U,13),FBBAT=$P(FBA,U,17),FBINV=+FBA
 | 
|---|
| 46 |  S FBSUSPA=$FN($P(FBA,U,10),"",2)
 | 
|---|
| 47 |  S FBFPPSC=$P(FBC,U)
 | 
|---|
| 48 |  S FBFPPSL=$P(FBC,U,2)
 | 
|---|
| 49 |  S FBX=$$ADJLRA^FBCHFA(FBDA_",")
 | 
|---|
| 50 |  S FBADJLR=$P(FBX,U)
 | 
|---|
| 51 |  S FBADJLA=$P(FBX,U,2)
 | 
|---|
| 52 |  D FBCKI^FBAACCB1(FBDA)
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 | PHAR ;gather payment line item for pharmacy
 | 
|---|
| 55 |  F I=1,2 S FB(I)=$P(FBDA,U,I)
 | 
|---|
| 56 |  S FBA=^FBAA(162.1,FB(1),"RX",FB(2),0),FBB=^(2),FBC=$G(^(3)),FBDOS=$P(FBA,U,3),FBSRV=$P(FBA,"^"),FBAMCL=$P(FBA,U,4),FBAMPD=$P(FBA,U,16),FBSUSP=$P(FBA,U,8) D SUSP^FBCKDIS1
 | 
|---|
| 57 |  S FBVP=$P(FBB,U,3),FBREIM=$P(FBA,U,20),FBBAT=$P($G(FBA),U,17),FBINV=+$G(^FBAA(162.1,FB(1),0))
 | 
|---|
| 58 |  S FBSUSPA=$FN($P(FBA,U,7),"",2)
 | 
|---|
| 59 |  S FBFPPSC=$P($G(^FBAA(162.1,FB(1),0)),U,13)
 | 
|---|
| 60 |  S FBFPPSL=$P(FBC,U)
 | 
|---|
| 61 |  S FBX=$$ADJLRA^FBRXFA(FB(2)_","_FB(1)_",")
 | 
|---|
| 62 |  S FBADJLR=$P(FBX,U)
 | 
|---|
| 63 |  S FBADJLA=$P(FBX,U,2)
 | 
|---|
| 64 |  D FBCKP^FBAACCB1(FB(1),FB(2))
 | 
|---|
| 65 |  Q
 | 
|---|
| 66 | TRAV ;gather payment line item for travel
 | 
|---|
| 67 |  F I=1,2 S FB(I)=$P(FBDA,U,I)
 | 
|---|
| 68 |  S FBA=^FBAAC(FB(1),3,FB(2),0),FBDOS=+FBA,FBAMCL=$P(FBA,U,3),FBAMPD=FBAMCL,FBVP="",FBREIM="R",FBBAT=$P(FBA,U,2),FBINV=""
 | 
|---|
| 69 |  D FBCKT^FBAACCB0(FB(1),FB(2))
 | 
|---|
| 70 |  Q
 | 
|---|
| 71 | CLEAN ;clean up variables
 | 
|---|
| 72 |  K I,FB,FBA,FBB,FBDOS,FBSRV,FBMOD,FBAMCL,FBAMPD,FBSUSP,FBVP,FBREIM,FBBAT,FBINV,FBDA,FBMODLE
 | 
|---|
| 73 |  Q
 | 
|---|
| 74 | OUTPUT ;display line items for check number
 | 
|---|
| 75 |  I $Y+5>IOSL D PGCHK Q:$G(FBAAOUT)
 | 
|---|
| 76 |  W ! W:FBVP="VP" "#" W:FBREIM="R" "*" W:FBCAN]"" "+" D  Q:$G(FBAAOUT)
 | 
|---|
| 77 |  . I FBPROG["C" D  Q
 | 
|---|
| 78 |  . . W ?3,$$DATX^FBAAUTL($P(FBDOS,"-")),?15,$$DATX^FBAAUTL($P(FBDOS,"-",2)),?59,+$G(^FBAA(161.7,+FBBAT,0)),?68,FBINV
 | 
|---|
| 79 |  . . W !?3,$J($FN(FBAMCL,",",2),10),?15,$J($FN(FBAMPD,",",2),10)
 | 
|---|
| 80 |  . . ; write adjustment reasons, if null then write suspend code
 | 
|---|
| 81 |  . . W ?28,$S(FBADJLR]"":FBADJLR,1:FBSUSP)
 | 
|---|
| 82 |  . . ; write adjustment amounts, if null then write amount suspended
 | 
|---|
| 83 |  . . W ?38,$S(FBADJLA]"":FBADJLA,1:FBSUSPA)
 | 
|---|
| 84 |  . . I FBFPPSC]"" W !,?12,"FPPS Claim ID: ",FBFPPSC,?40,"FPPS Line Item: ",FBFPPSL
 | 
|---|
| 85 |  . I FBPROG="OPT" D  Q
 | 
|---|
| 86 |  . . W ?3,$$DATX^FBAAUTL(FBDOS),?13,$P(FBSRV,","),?23,FBAARCE
 | 
|---|
| 87 |  . . W ?59,+$G(^FBAA(161.7,+FBBAT,0)),?68,FBINV
 | 
|---|
| 88 |  . . I $P(FBSRV,",",2)]"" D  Q:$G(FBAAOUT)
 | 
|---|
| 89 |  . . . N FBI,FBMOD
 | 
|---|
| 90 |  . . . F FBI=2:1 S FBMOD=$P(FBSRV,",",FBI) Q:FBMOD=""  D  Q:$G(FBAAOUT)
 | 
|---|
| 91 |  . . . . I $Y+5>IOSL D PGCHK Q:$G(FBAAOUT)  W !,"  (continued)"
 | 
|---|
| 92 |  . . . . W !,?18,"-",FBMOD
 | 
|---|
| 93 |  . . W !?3,$J($FN(FBAMCL,",",2),10),?15,$J($FN(FBAMPD,",",2),10)
 | 
|---|
| 94 |  . . ; write adjustment reasons, if null then write suspend code
 | 
|---|
| 95 |  . . W ?28,$S(FBADJLR]"":FBADJLR,1:FBSUSP)
 | 
|---|
| 96 |  . . ; write adjustment amounts, if null then write amount suspended
 | 
|---|
| 97 |  . . W ?38,$S(FBADJLA]"":FBADJLA,1:FBSUSPA)
 | 
|---|
| 98 |  . . I FBFPPSC]"" W !,?12,"FPPS Claim ID: ",FBFPPSC,?40,"FPPS Line Item: ",FBFPPSL
 | 
|---|
| 99 |  . I FBPROG="PHAR" D  Q
 | 
|---|
| 100 |  . . W ?3,$$DATX^FBAAUTL(FBDOS),?13,FBSRV,?59,+$G(^FBAA(161.7,+FBBAT,0)),?68,FBINV
 | 
|---|
| 101 |  . . W !?3,$J($FN(FBAMCL,",",2),10),?15,$J($FN(FBAMPD,",",2),10)
 | 
|---|
| 102 |  . . ; write adjustment reasons, if null then write suspend code
 | 
|---|
| 103 |  . . W ?28,$S(FBADJLR]"":FBADJLR,1:FBSUSP)
 | 
|---|
| 104 |  . . ; write adjustment amounts, if null then write amount suspended
 | 
|---|
| 105 |  . . W ?38,$S(FBADJLA]"":FBADJLA,1:FBSUSPA)
 | 
|---|
| 106 |  . . I FBFPPSC]"" W !,?12,"FPPS Claim ID: ",FBFPPSC,?40,"FPPS Line Item: ",FBFPPSL
 | 
|---|
| 107 |  . W ?3,$$DATX^FBAAUTL(FBDOS) W:FBPROG'="TRAV" ?13,FBSRV W ?20,$J($FN(FBAMCL,",",2),10),?32,$J($FN(FBAMPD,",",2),10) W:FBPROG'="TRAV" ?47,FBSUSP W ?53,+$G(^FBAA(161.7,+FBBAT,0)),?65,FBINV
 | 
|---|
| 108 |  S A2=FBAMPD D PMNT^FBAACCB2 K A2
 | 
|---|
| 109 |  Q
 | 
|---|
| 110 | HED W !?20,"PAYMENT HISTORY FOR CHECK # ",FBCN,!,?20,$E(Q,1,(28+$L(FBCN))),?70,"Page: ",FBPG
 | 
|---|
| 111 |  W !!,?22,"FEE PROGRAM:  ",$S(FBPROG="OPT":"OUTPATIENT",FBPROG="CH":"CIVIL HOSPITAL",FBPROG="CNH":"COMMUNITY NURSING HOME",FBPROG="PHAR":"PHARMACY",FBPROG="TRAV":"TRAVEL",1:"")
 | 
|---|
| 112 |  W !?1,"('*' Reimbursement to Patient  '#' Voided Payment  '+' Cancellation Activity)"
 | 
|---|
| 113 |  I FBPROG["C" D  Q
 | 
|---|
| 114 |  . W !?3,"From Date",?15,"To Date",?59,"Batch #",?68,"Invoice #"
 | 
|---|
| 115 |  . W !?3,"Amt Claimed",?17,"Amt Paid",?28,"Adj Code",?38,"Adj Amount"
 | 
|---|
| 116 |  . W !,QQ
 | 
|---|
| 117 |  I FBPROG="TRAV" W !?3,"Travel Dt",?21,"Amount",?33,"Amount",?50,"Batch",?62,"Invoice",!,?21,"Claimed",?34,"Paid",?50,"Number",?62,"Number",!,QQ Q
 | 
|---|
| 118 |  I FBPROG="OPT" D  Q
 | 
|---|
| 119 |  . W !?3,"Svc Date",?13,"CPT-MOD",?23,"Rev.Code",?59,"Batch #",?68,"Invoice #"
 | 
|---|
| 120 |  . W !?3,"Amt Claimed",?17,"Amt Paid",?28,"Adj Code",?38,"Adj Amount"
 | 
|---|
| 121 |  . W !,QQ
 | 
|---|
| 122 |  I FBPROG="PHAR" D  Q
 | 
|---|
| 123 |  . W !?3,"Fill Dt",?13,"RX #",?56,"Batch #",?68,"Invoice #"
 | 
|---|
| 124 |  . W !?3,"Amt Claimed",?17,"Amt Paid",?28,"Adj Code",?38,"Adj Amount"
 | 
|---|
| 125 |  . W !,QQ
 | 
|---|
| 126 |  Q
 | 
|---|
| 127 | PGCHK I FBPG>1,($E(IOST,1,2)["C-") W !! S DIR(0)="E" D ^DIR K DIR I 'Y S FBAAOUT=1 Q
 | 
|---|
| 128 |  W:FBPG>1 @IOF D HED
 | 
|---|
| 129 |  S FBPG=FBPG+1 Q
 | 
|---|