| [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
 | 
|---|