[613] | 1 | IBJDF53 ;ALB/RB - CHAMPVA/TRICARE FOLLOW-UP REPORT (SUMMARY);15-APR-00
|
---|
| 2 | ;;2.0;INTEGRATED BILLING;**123,185,240**;21-MAR-94
|
---|
| 3 | ;
|
---|
| 4 | INIT ; - Initialize counters, if necessary.
|
---|
| 5 | ; Pre-set variables IBCAT, IBDIV, IBSEL1 required.
|
---|
| 6 | N I,IB0
|
---|
| 7 | I '$D(IB(IBDIV,IBCAT)) D
|
---|
| 8 | . F IB0=1:1:4 I IBSEL1[IB0 F I=1:1:8 S IB(IBDIV,IBCAT,IB0,I)=0
|
---|
| 9 | ;
|
---|
| 10 | Q
|
---|
| 11 | ;
|
---|
| 12 | EN ; - Compile entry point from IBJDF51.
|
---|
| 13 | ; Pre-set variables IB(, IBA, IBCAT, IBDIV, IBSEL1, IBTYP required.
|
---|
| 14 | N I,IB0,IBAGE,IBARD,IBOUT
|
---|
| 15 | ;
|
---|
| 16 | ; - Add totals for summary.
|
---|
| 17 | S IBARD=$$ACT^IBJDF2(IBA) G:'IBARD ENQ ; No activation date.
|
---|
| 18 | S IBOUT=0 F I=1:1:5 S IBOUT=IBOUT+$P($G(^PRCA(430,IBA,7)),U,I)
|
---|
| 19 | S IBAGE=$$FMDIFF^XLFDT(DT,IBARD),IB0=$$CAT(IBAGE)
|
---|
| 20 | F I=IBTYP,4 I IBSEL1[I D
|
---|
| 21 | . S $P(IB(IBDIV,IBCAT,I,IB0),U)=+IB(IBDIV,IBCAT,I,IB0)+1
|
---|
| 22 | . S $P(IB(IBDIV,IBCAT,I,IB0),U,2)=$P(IB(IBDIV,IBCAT,I,IB0),U,2)+IBOUT
|
---|
| 23 | ;
|
---|
| 24 | ENQ Q
|
---|
| 25 | ;
|
---|
| 26 | PRT ; - Print entry point from IBJDF52.
|
---|
| 27 | N IBDIV
|
---|
| 28 | ;
|
---|
| 29 | ; - Extract summary data.
|
---|
| 30 | I $G(IBXTRACT) D EXTMO(.IB) G ENQ1
|
---|
| 31 | ;
|
---|
| 32 | S IBDIV=""
|
---|
| 33 | F S IBDIV=$O(IB(IBDIV)) Q:IBDIV="" D
|
---|
| 34 | . S IBCAT=0
|
---|
| 35 | . F S IBCAT=$O(IB(IBDIV,IBCAT)) Q:'IBCAT D SUM(.IBCAT) Q:IBQ
|
---|
| 36 | ;
|
---|
| 37 | ENQ1 Q
|
---|
| 38 | ;
|
---|
| 39 | EXTMO(IBS) ; Extract/transmit data to DM Extract Module
|
---|
| 40 | ; IBS - Array containing the summary information
|
---|
| 41 | ;
|
---|
| 42 | N IB,IBCT,IBI,IBJ,IBR,IBSQ,IBTP,IBZ
|
---|
| 43 | ;
|
---|
| 44 | F IBI=1:1:6 F IBJ=1:1:16 S IB(IBI,IBJ)=$S(IBJ#2:0,1:"0.00")
|
---|
| 45 | ;
|
---|
| 46 | S IBCT=""
|
---|
| 47 | F S IBCT=$O(IBS(0,IBCT)) Q:IBCT="" D
|
---|
| 48 | . S IBTP=0
|
---|
| 49 | . I IBCT=31 S IBTP=1 ; TRICARE Patient
|
---|
| 50 | . I IBCT=19 Q ; Sharing Agreements (NOT EXTRACTED)
|
---|
| 51 | . I IBCT=30 S IBTP=2 ; TRICARE
|
---|
| 52 | . I IBCT=32 S IBTP=3 ; TRICARE THIRD PARTY
|
---|
| 53 | . I IBCT=28 S IBTP=4 ; CHAMPVA
|
---|
| 54 | . I IBCT=29 S IBTP=5 ; CHAMPVA THRID PARTY
|
---|
| 55 | . S IBSQ=1
|
---|
| 56 | . F IBI=1:1:7 D
|
---|
| 57 | . . S IBZ=$G(IBS(0,IBCT,4,IBI))
|
---|
| 58 | . . S IB(IBTP,IBSQ)=+IBZ
|
---|
| 59 | . . S IB(IBTP,IBSQ+1)=$FN(+$P(IBZ,"^",2),"",2)
|
---|
| 60 | . . S IB(IBTP,15)=IB(IBTP,15)+IBZ
|
---|
| 61 | . . S IB(IBTP,16)=IB(IBTP,16)+$P(IBZ,"^",2)
|
---|
| 62 | . . S IBSQ=IBSQ+2
|
---|
| 63 | . S IB(IBTP,16)=$FN(IB(IBTP,16),"",2)
|
---|
| 64 | ;
|
---|
| 65 | F IBR=17:1:21 D E^IBJDE(IBR,0)
|
---|
| 66 | Q
|
---|
| 67 | ;
|
---|
| 68 | SUM(IBCAT) ; - Print summary for AR category.
|
---|
| 69 | ; Input: IBCAT=AR category pointer to file #430.2, and pre-set
|
---|
| 70 | ; variables IBDIV and IBRPT
|
---|
| 71 | N IBDH,IBTYP,IBTYPH,I,J
|
---|
| 72 | ;
|
---|
| 73 | S (IBFLG,IBTYP)=0 D HDR
|
---|
| 74 | F S IBTYP=$O(IB(IBDIV,IBCAT,IBTYP)) Q:'IBTYP D Q:IBQ
|
---|
| 75 | . I $Y>(IOSL-16) D HDR Q:IBQ
|
---|
| 76 | . S IBTYPH=$G(IBCTG(IBCAT(IBCAT)))_" RECEIVABLES ("_$G(IBTPR(IBTYP))_")"
|
---|
| 77 | . W !!!?(80-$L(IBTYPH))\2,IBTYPH
|
---|
| 78 | . W !?(80-$L(IBTYPH)\2),$$DASH($L(IBTYPH))
|
---|
| 79 | . I IBDIV D
|
---|
| 80 | . . S IBDH="Division: "_$P($G(^DG(40.8,IBDIV,0)),U)
|
---|
| 81 | . . W !?(80-$L(IBDH)\2),IBDH
|
---|
| 82 | . W !!
|
---|
| 83 | . ;
|
---|
| 84 | . ; - Calculate totals first.
|
---|
| 85 | . F I=1:1:7 F J=1,2 S $P(IB(IBDIV,IBCAT,IBTYP,8),U,J)=$P(IB(IBDIV,IBCAT,IBTYP,8),U,J)+$P(IB(IBDIV,IBCAT,IBTYP,I),U,J)
|
---|
| 86 | . ;
|
---|
| 87 | . W "AR Category",?31,"# Receivables",?52,"Total Outstanding Balance",!
|
---|
| 88 | . W "-----------",?31,"-------------",?52,"-------------------------"
|
---|
| 89 | . I 'IB(IBDIV,IBCAT,IBTYP,8) D D PAUSE Q
|
---|
| 90 | . . W !!,"There are no active receivables",$S(IBDIV:" for this division",1:""),"."
|
---|
| 91 | . . S IBFLG=1
|
---|
| 92 | . ;
|
---|
| 93 | . ; - Primary loop to write results.
|
---|
| 94 | . S Y=$P(IB(IBDIV,IBCAT,IBTYP,8),U,2)
|
---|
| 95 | . F I=1:1:8 S X=$P($T(CATN+I),";;",2,99) D
|
---|
| 96 | . . W:I=8 ! W !,X,?30,$J(+IB(IBDIV,IBCAT,IBTYP,I),6)
|
---|
| 97 | . . W " (",$J(+IB(IBDIV,IBCAT,IBTYP,I)/+IB(IBDIV,IBCAT,IBTYP,8)*100,0,$S(I=8:0,1:2)),"%)"
|
---|
| 98 | . . S Z=$FN($P(IB(IBDIV,IBCAT,IBTYP,I),U,2),",",2)
|
---|
| 99 | . . W ?52,$J($S(I=1!(I=9):"$",1:"")_Z,15)
|
---|
| 100 | . . W " (",$J($S('Y:0,1:$P(IB(IBDIV,IBCAT,IBTYP,I),U,2)/Y*100),0,$S(I=8:0,1:2)),"%)"
|
---|
| 101 | . ;
|
---|
| 102 | . D PAUSE
|
---|
| 103 | ;
|
---|
| 104 | SUMQ Q
|
---|
| 105 | ;
|
---|
| 106 | HDR ; - Write the summary report header.
|
---|
| 107 | N X
|
---|
| 108 | ;
|
---|
| 109 | I $E(IOST,1,2)="C-"!$G(IBPAG) W @IOF,*13
|
---|
| 110 | S IBPAG=$G(IBPAG)+1
|
---|
| 111 | W "CHAMPVA/TRICARE FOLLOW-UP SUMMARY REPORT"
|
---|
| 112 | W ?71,"Page: ",$J(IBPAG,3),!,"Run Date: ",IBRUN
|
---|
| 113 | S X=""
|
---|
| 114 | I IBRPT="D" D
|
---|
| 115 | . I IBSMN'="A" D
|
---|
| 116 | . . S X=" RECEIVABLES OVER "_IBSMN_" AND LESS THAN "_IBSMX_" DAYS OLD "
|
---|
| 117 | . I $G(IBSNA)'="ALL" D
|
---|
| 118 | . . S X=X_"/ PATIENTS FROM '"_$S(IBSNF="":"FIRST",1:IBSNF)_"' TO '"
|
---|
| 119 | . . S X=X_$S(IBSNL="zzzzz":"LAST",1:IBSNL)_"' "
|
---|
| 120 | . I $G(IBSAM) S X=X_"/ MINIMUM BALANCE: $"_$FN(IBSAM,",",2)_" "
|
---|
| 121 | S $E(X,1,2)=""
|
---|
| 122 | I X'="" F I=1:1 W !,$E(X,1,80) S X=$E(X,81,999) I X="" Q
|
---|
| 123 | ;
|
---|
| 124 | Q
|
---|
| 125 | ;
|
---|
| 126 | DASH(X) ; - Return a dashed line.
|
---|
| 127 | Q $TR($J("",X)," ","=")
|
---|
| 128 | ;
|
---|
| 129 | PAUSE ; - Page break.
|
---|
| 130 | I $E(IOST,1,2)'="C-" Q
|
---|
| 131 | N IBX,DIR,DIRUT,DUOUT,DTOUT,DIROUT,X,Y
|
---|
| 132 | F IBX=$Y:1:(IOSL-3) W !
|
---|
| 133 | S DIR(0)="E" D ^DIR S:$D(DIRUT)!($D(DUOUT)) IBQ=1
|
---|
| 134 | Q
|
---|
| 135 | ;
|
---|
| 136 | CAT(X) ; - Determine category to place receivable.
|
---|
| 137 | Q $S($G(X)<31:1,X<61:2,X<91:3,X<121:4,X<181:5,X<366:6,1:7)
|
---|
| 138 | ;
|
---|
| 139 | CATN ; - List of category names.
|
---|
| 140 | ;;Less than 30 days old
|
---|
| 141 | ;;31-60 days
|
---|
| 142 | ;;61-90 days
|
---|
| 143 | ;;91-120 days
|
---|
| 144 | ;;121-180 days
|
---|
| 145 | ;;181-365 days
|
---|
| 146 | ;;Over 365 days
|
---|
| 147 | ;;Total C/C-Tricare Receivables
|
---|