| [613] | 1 | IBCNSMR0 ;ALB/AAS - MEDICARE BILLS ; 02-SEPT-97 | 
|---|
|  | 2 | ;;2.0; INTEGRATED BILLING ;**92**; 21-MAR-94 | 
|---|
|  | 3 | ; | 
|---|
|  | 4 | % G RPRT^IBCNSMRA | 
|---|
|  | 5 | Q | 
|---|
|  | 6 | ; | 
|---|
|  | 7 | PRINT ; | 
|---|
|  | 8 | N IBQUIT,IBPAG,IBHDT | 
|---|
|  | 9 | S IBQUIT=0,IBPAG=0,IBHDT=$$HTE^XLFDT($H) | 
|---|
|  | 10 | I IBPRNT="D" U IO D HDR(0),TOTALS Q:IBQUIT  D HDR(1),SORT Q:IBQUIT  D HDR(2),DETAIL Q:IBQUIT | 
|---|
|  | 11 | I IBPRNT="S" U IO D HDR(0),TOTALS Q:IBQUIT  D HDR(1),SORT | 
|---|
|  | 12 | I IBSNDRPT D BULL^IBCNSMR1 | 
|---|
|  | 13 | Q | 
|---|
|  | 14 | ; | 
|---|
|  | 15 | TOTALS ; -- prepare report | 
|---|
|  | 16 | W !!,"  Bills Found for Selected Ins. Co.: "_$J(+$G(CNT),6)_$$FORMAT(+$G(CNT(0)),"2$",17)_$J(+$G(CNT(1)),6)_$$FORMAT(+$G(CNT(2)),"2$",14) | 
|---|
|  | 17 | W !,"        Bills for Outpatient Visits: "_$J(+$G(CNT("OP")),6)_$$FORMAT(+$G(CNT("OP",0)),"2$",17)_$J(+$G(CNT("OP",1)),6)_$$FORMAT(+$G(CNT("OP",2)),"2$",14) | 
|---|
|  | 18 | W !,"         Bills for Inpatient Visits: "_$J(+$G(CNT("IN")),6)_$$FORMAT(+$G(CNT("IN",0)),"2$",17)_$J(+$G(CNT("IN",1)),6)_$$FORMAT(+$G(CNT("IN",2)),"2$",14) | 
|---|
|  | 19 | ; | 
|---|
|  | 20 | W !!,"     Subtotals by Selected Ins. Co.: " | 
|---|
|  | 21 | S IBNM="" | 
|---|
|  | 22 | F  S IBNM=$O(CNT(3,IBNM)) Q:IBNM=""  D | 
|---|
|  | 23 | .W !,?(35-$L(IBNM)),IBNM_": "_$J(+$G(CNT(3,IBNM)),6)_$$FORMAT(+$G(CNT(3,IBNM,0)),"2$",17)_$J(+$G(CNT(3,IBNM,1)),6)_$$FORMAT(+$G(CNT(3,IBNM,2)),"2$",14) | 
|---|
|  | 24 | ; | 
|---|
|  | 25 | W !!,"Bills with Procedures and Diagnosis: "_$J(+$G(CNT("B")),6)_$$FORMAT(+$G(CNT("B",0)),"2$",17)_$J(+$G(CNT("B",1)),6)_$$FORMAT(+$G(CNT("B",2)),"2$",14) | 
|---|
|  | 26 | W !,"    Bills with Diagnosis Codes Only: "_$J(+$G(CNT("D")),6)_$$FORMAT(+$G(CNT("D",0)),"2$",17)_$J(+$G(CNT("D",1)),6)_$$FORMAT(+$G(CNT("D",2)),"2$",14) | 
|---|
|  | 27 | W !,"    Bills with Procedure Codes Only: "_$J(+$G(CNT("P")),6)_$$FORMAT(+$G(CNT("P",0)),"2$",17)_$J(+$G(CNT("P",1)),6)_$$FORMAT(+$G(CNT("P",2)),"2$",14) | 
|---|
|  | 28 | W !," Bills with No Proc. or Diag. Codes: "_$J(+$G(CNT("N")),6)_$$FORMAT(+$G(CNT("N",0)),"2$",17)_$J(+$G(CNT("N",1)),6)_$$FORMAT(+$G(CNT("N",2)),"2$",14) | 
|---|
|  | 29 | ; | 
|---|
|  | 30 | W !!,"   Bills Canceled before Completion: "_$J(+$G(CNT("C")),6)_$$FORMAT(+$G(CNT("C",0)),"2$",17)_$J(+$G(CNT("C",1)),6)_$$FORMAT(+$G(CNT("C",2)),"2$",14) | 
|---|
|  | 31 | W !,"                Bills Never Printed: "_$J(+$G(CNT("F")),6)_$$FORMAT(+$G(CNT("F",0)),"2$",17)_$J(+$G(CNT("F",1)),6)_$$FORMAT(+$G(CNT("F",2)),"2$",14) | 
|---|
|  | 32 | W !,"         Bills with wrong Rate Type: "_$J(+$G(CNT("R")),6)_$$FORMAT(+$G(CNT("R",0)),"2$",17)_$J(+$G(CNT("R",1)),6)_$$FORMAT(+$G(CNT("R",2)),"2$",14) | 
|---|
|  | 33 | W !," Bills with wrong Who's Responsible: "_$J(+$G(CNT("W")),6)_$$FORMAT(+$G(CNT("W",0)),"2$",17)_$J(+$G(CNT("W",1)),6)_$$FORMAT(+$G(CNT("W",2)),"2$",14) | 
|---|
|  | 34 | W !," Bills w/ wrong Bill Classification: "_$J(+$G(CNT("T")),6)_$$FORMAT(+$G(CNT("T",0)),"2$",17)_$J(+$G(CNT("T",1)),6)_$$FORMAT(+$G(CNT("T",2)),"2$",14) | 
|---|
|  | 35 | W !,"            Bills for Prescriptions: "_$J(+$G(CNT("X")),6)_$$FORMAT(+$G(CNT("X",0)),"2$",17)_$J(+$G(CNT("X",1)),6)_$$FORMAT(+$G(CNT("X",2)),"2$",14) | 
|---|
|  | 36 | W !,"              Bills for Prosthetics: "_$J(+$G(CNT("Z")),6)_$$FORMAT(+$G(CNT("Z",0)),"2$",17)_$J(+$G(CNT("Z",1)),6)_$$FORMAT(+$G(CNT("Z",2)),"2$",14) | 
|---|
|  | 37 | ;W !,"      Bills with Patients Not Alive: "_$J(+$G(CNT("A")),6)_$$FORMAT(+$G(CNT("A",0)),"2$",17)_$J(+$G(CNT("A",1)),6)_$$FORMAT(+$G(CNT("A",2)),"2$",14) | 
|---|
|  | 38 | ; | 
|---|
|  | 39 | W !!,"     Bills Meeting Criteria for MRA: "_$J(+$G(CNT("M")),6)_$$FORMAT(+$G(CNT("M",0)),"2$",17)_$J(+$G(CNT("M",1)),6)_$$FORMAT(+$G(CNT("M",2)),"2$",14) | 
|---|
|  | 40 | W !,"  Outpatient Bills Meeting Criteria: "_$J(+$G(CNT("M","OP")),6)_$$FORMAT(+$G(CNT("M","OP",0)),"2$",17)_$J(+$G(CNT("M","OP",1)),6)_$$FORMAT(+$G(CNT("M","OP",2)),"2$",14) | 
|---|
|  | 41 | W !,"   Inpatient Bills Meeting Criteria: "_$J(+$G(CNT("M","IN")),6)_$$FORMAT(+$G(CNT("M","IN",0)),"2$",17)_$J(+$G(CNT("M","IN",1)),6)_$$FORMAT(+$G(CNT("M","IN",2)),"2$",14) | 
|---|
|  | 42 | W !," Bill Meeting Criteria and Referred: "_$J(+$G(CNT("M",4)),6)_$$FORMAT(+$G(CNT("M",5)),"2$",17)_$J(+$G(CNT("M",6)),6)_$$FORMAT(+$G(CNT("M",7)),"2$",14) | 
|---|
|  | 43 | ; | 
|---|
|  | 44 | Q | 
|---|
|  | 45 | ; | 
|---|
|  | 46 | SORT ; -- Run through list by insurance company | 
|---|
|  | 47 | N I,J,K,L,M,N,P,X,Y,Z,ZZ | 
|---|
|  | 48 | ; | 
|---|
|  | 49 | I '$D(^TMP("IB-MRA-CNT",$J)) W !!,"There are no summary records to print.",! G SORTQ | 
|---|
|  | 50 | ; | 
|---|
|  | 51 | S I=0 | 
|---|
|  | 52 | F  S I=$O(^TMP("IB-MRA-CNT",$J,I)) Q:I=""!(IBQUIT)  D  ;insur. co | 
|---|
|  | 53 | .S J=0 | 
|---|
|  | 54 | .F  S J=$O(^TMP("IB-MRA-CNT",$J,I,J)) Q:J=""!(IBQUIT)  D  ;year | 
|---|
|  | 55 | ..S IBQUIT=$$STOP^IBCNSMR Q:IBQUIT | 
|---|
|  | 56 | ..S K="" | 
|---|
|  | 57 | ..F  S K=$O(^TMP("IB-MRA-CNT",$J,I,J,K)) Q:K=""!(IBQUIT)  D  ;bill type | 
|---|
|  | 58 | ...D SUBHDR | 
|---|
|  | 59 | ...S L=0 | 
|---|
|  | 60 | ...F  S L=$O(^TMP("IB-MRA-CNT",$J,I,J,K,L)) Q:L=""!(IBQUIT)  D  ;proc | 
|---|
|  | 61 | ....S M=0 | 
|---|
|  | 62 | ....F  S M=$O(^TMP("IB-MRA-CNT",$J,I,J,K,L,M)) Q:M=""!(IBQUIT)  D  ;ar status | 
|---|
|  | 63 | .....S N=0 | 
|---|
|  | 64 | .....F  S N=$O(^TMP("IB-MRA-CNT",$J,I,J,K,L,M,N)) Q:N=""!(IBQUIT)  S X=+$G(^(N)),Y=+$G(^(N,0)),Z=+$G(^(1)),ZZ=+$G(^(2)) D LINE ;ibstatus | 
|---|
|  | 65 | ; | 
|---|
|  | 66 | ;......;S P=0 ;alive | 
|---|
|  | 67 | ;......;F  S P=$O(^TMP("IB-MRA-CNT",$J,I,J,K,L,M,N,P)) Q:P=""!(IBQUIT)  S X=+$G(^(P)),Y=+$G(^(P,0)),Z=+$G(^(1)),ZZ=+$G(^(2)) D LINE | 
|---|
|  | 68 | ; | 
|---|
|  | 69 | SORTQ I 'IBQUIT,$E(IOST,1,2)="C-",IBPRNT="S" W ! D PAUSE^VALM1 I $D(DIRUT) S IBQUIT=1 | 
|---|
|  | 70 | Q | 
|---|
|  | 71 | ; | 
|---|
|  | 72 | SUBHDR ; -- print out sub headers | 
|---|
|  | 73 | Q:$G(K)="" | 
|---|
|  | 74 | I IOSL<($Y+6) D HDR(1) Q:IBQUIT | 
|---|
|  | 75 | W !!,?10,"Insurance Company: ",$P($G(^DIC(36,+I,0)),"^") | 
|---|
|  | 76 | W !,?15,"Calendar Year of Bill: ",J | 
|---|
|  | 77 | W !,?20,"Type of Bill: ",K | 
|---|
|  | 78 | Q | 
|---|
|  | 79 | ; | 
|---|
|  | 80 | LINE ; -- Write one summary line | 
|---|
|  | 81 | I IOSL<($Y+5) D HDR(1) Q:IBQUIT | 
|---|
|  | 82 | W !,$E($P(M,"^",2),1,21),?23,$E($$EXTERNAL^DILFD(399,.13,"",N),1,14),?37,$J(+X,6),$$FORMAT(Y,"2$",17),$J(+Z,6),$$FORMAT(ZZ,"2$",14) | 
|---|
|  | 83 | ; | 
|---|
|  | 84 | Q | 
|---|
|  | 85 | ; | 
|---|
|  | 86 | ARSTAT(M) ; convert code to ar status | 
|---|
|  | 87 | N IEN | 
|---|
|  | 88 | S IEN=+$O(^PRCA(430.3,"AC",+M,0)) | 
|---|
|  | 89 | Q $P($G(^PRCA(430.3,IEN,0)),"^") | 
|---|
|  | 90 | ; | 
|---|
|  | 91 | DETAIL ; -- do detail report | 
|---|
|  | 92 | N I,J,K,L,M,N,P,IBIFN,IBXX | 
|---|
|  | 93 | ; | 
|---|
|  | 94 | I '$D(^TMP("IB-MRA",$J)) W !!,"There are no detail records to print.",! G DETQ | 
|---|
|  | 95 | ; | 
|---|
|  | 96 | S I="" | 
|---|
|  | 97 | F  S I=$O(^TMP("IB-MRA",$J,I)) Q:I=""!(IBQUIT)  D  ; ins. co. | 
|---|
|  | 98 | .S J="" | 
|---|
|  | 99 | .F  S J=$O(^TMP("IB-MRA",$J,I,J)) Q:J=""!(IBQUIT)  D  ;year | 
|---|
|  | 100 | ..S K="" | 
|---|
|  | 101 | ..F  S K=$O(^TMP("IB-MRA",$J,I,J,K)) Q:K=""!(IBQUIT)  D  ;type of bill | 
|---|
|  | 102 | ...D SUBHDR | 
|---|
|  | 103 | ...S L="" | 
|---|
|  | 104 | ...F  S L=$O(^TMP("IB-MRA",$J,I,J,K,L)) Q:L=""!(IBQUIT)  D  ;proc | 
|---|
|  | 105 | ....S M=0 | 
|---|
|  | 106 | ....F  S M=$O(^TMP("IB-MRA",$J,I,J,K,L,M)) Q:M=""!(IBQUIT)  D  ;ar status | 
|---|
|  | 107 | .....S N=0 | 
|---|
|  | 108 | .....F  S N=$O(^TMP("IB-MRA",$J,I,J,K,L,M,N)) Q:N=""!(IBQUIT)  D  ;ibstatus | 
|---|
|  | 109 | ......;S P=0 ;alive | 
|---|
|  | 110 | ......;F  S P=$O(^TMP("IB-MRA",$J,I,J,K,L,M,N,P)) Q:P=""!(IBQUIT)  D | 
|---|
|  | 111 | ......S IBIFN="" | 
|---|
|  | 112 | ......F  S IBIFN=$O(^TMP("IB-MRA",$J,I,J,K,L,M,N,IBIFN)) Q:IBIFN=""!(IBQUIT)  S IBXX=^(IBIFN) D DLINE | 
|---|
|  | 113 | ; | 
|---|
|  | 114 | DETQ I 'IBQUIT,$E(IOST,1,2)="C-" W ! D PAUSE^VALM1 I $D(DIRUT) S IBQUIT=1 | 
|---|
|  | 115 | Q | 
|---|
|  | 116 | ; | 
|---|
|  | 117 | DLINE ; -- print one detail line | 
|---|
|  | 118 | N I,J,K,L,M,N,DFN,ORGAMNT,TOTPAID,FROM,TO | 
|---|
|  | 119 | I IOSL<($Y+5) D HDR(2) Q:IBQUIT | 
|---|
|  | 120 | S DFN=+$P(IBXX,"^",2) | 
|---|
|  | 121 | D DEM^VADPT | 
|---|
|  | 122 | S ORGAMNT=+$G(^DGCR(399,IBIFN,"U1")) | 
|---|
|  | 123 | S TOTPAID=$$TPR^PRCAFN(IBIFN) | 
|---|
|  | 124 | W !,$P(IBXX,"^"),?12,$E(VADM(1),1,20),?34,VA("BID"),?42,VADM(4) | 
|---|
|  | 125 | W ?48,$$FMTE^XLFDT(+$G(^DGCR(399,IBIFN,"U")),2)," - ",$$FMTE^XLFDT($P($G(^("U")),"^",2),2) | 
|---|
|  | 126 | W ?70,$$FMTE^XLFDT($P($G(^DGCR(399,IBIFN,"S")),"^",12)) | 
|---|
|  | 127 | W ?82,$$FORMAT(ORGAMNT,"2$",17),$$FORMAT(TOTPAID,"2$",17) | 
|---|
|  | 128 | K VA,VADM,VAERR | 
|---|
|  | 129 | Q | 
|---|
|  | 130 | ; | 
|---|
|  | 131 | HDR(L1) ; -- line item header | 
|---|
|  | 132 | N X,Y,I,J,K,L,M,N,P,DIR,DIRUT,Z,ZZ | 
|---|
|  | 133 | Q:$G(IBQUIT) | 
|---|
|  | 134 | I $E(IOST,1,2)="C-",IBPAG D PAUSE^VALM1 I $D(DIRUT) S IBQUIT=1 Q | 
|---|
|  | 135 | I $E(IOST,1,2)="C-"!(IBPAG) W @IOF | 
|---|
|  | 136 | S IBPAG=IBPAG+1 | 
|---|
|  | 137 | W !,"Possible Medicare Remittance Advice Claims",?(IOM-33),"Page ",IBPAG,"  ",IBHDT | 
|---|
|  | 138 | W !,$S(L1=2:"Detail Report",L1=1:"Summary Report",1:"Totals Report") | 
|---|
|  | 139 | W:L1=2 !,"Bill No.",?12,"Patient Name",?34,"PT ID",?42,"Age",?48,"Bill From-To",?70,"Date Printed",?85,"Amount Billed",?100,"Amount Collected" | 
|---|
|  | 140 | W:L1=1 !,?38,"Total",?53,"Amount",?62,"No.",?70,"Amount" | 
|---|
|  | 141 | W:L1=1 !,"AR Status",?25,"IB Status",?38,"Number",?53,"Billed",?62,"Coll",?70,"Collected" | 
|---|
|  | 142 | W:'L1 !,?38,"Total          Amount   No.     Amount" | 
|---|
|  | 143 | W:'L1 !,?38,"Number         Billed   Coll    Collected" | 
|---|
|  | 144 | W !,$TR($J(" ",IOM)," ","-") | 
|---|
|  | 145 | Q | 
|---|
|  | 146 | ; | 
|---|
|  | 147 | FORMAT(X,X2,X3) ; -- convert number to formatted number | 
|---|
|  | 148 | ; -- input  x = number to be converted | 
|---|
|  | 149 | ;          x2 = format characters (see doc for comma^%dtc) | 
|---|
|  | 150 | ;          x3 = lenght of formated output (optional) | 
|---|
|  | 151 | ;    output   = formated character string | 
|---|
|  | 152 | ; | 
|---|
|  | 153 | D COMMA^%DTC | 
|---|
|  | 154 | Q X | 
|---|