| 1 | RCDPEDS ;ALB/TMK - Display EEOB detail from receipt ;15 Oct 02
 | 
|---|
| 2 |  ;;4.5;Accounts Receivable;**173**;Mar 20, 1995
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ; IA for call to GETEOB^IBCECSA6 = 4044
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | DISP(RCTDA) ; Display EEOB detail/raw data from file 344.4
 | 
|---|
| 7 |  ; RCTDA = ien of entry in file 344.4 to display
 | 
|---|
| 8 |  ; Returns global ^TMP("$J,"RCDISP")
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  N RCZ,RCZ0,RCCT
 | 
|---|
| 11 |  K ^TMP($J,"RCDISP")
 | 
|---|
| 12 |  S RCCT=0
 | 
|---|
| 13 |  ; 
 | 
|---|
| 14 |  D SUM(RCTDA,.RCCT)
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  S RCZ=0 F  S RCZ=$O(^RCY(344.4,RCTDA,1,RCZ)) Q:'RCZ  S RCZ0=$G(^(RCZ,0)) I RCZ0'="" D SEQ(RCTDA,.RCCT,RCZ,RCZ0)
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  Q
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 | SEQ(RCTDA,RCCT,RC34441,RC0) ;
 | 
|---|
| 21 |  ; RCTDA = ien of record in file 344.4
 | 
|---|
| 22 |  ; RCCT = line counter, updated if passed by ref
 | 
|---|
| 23 |  ; RC34441 = ien of seq # in file 344.41
 | 
|---|
| 24 |  ; RC0 = the data on the 0-node of the sequence entry in file 344.41
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  N RCIEN,RCZ,RCDPDATA
 | 
|---|
| 27 |  I $P(RC0,U,2) D  ; Get detail from EOB file
 | 
|---|
| 28 |  . K ^TMP("PRCA_EOB",$J)
 | 
|---|
| 29 |  . S RCIEN=+$P(RC0,U,2)
 | 
|---|
| 30 |  . D GETEOB^IBCECSA6(RCIEN,1) ; IA 4044
 | 
|---|
| 31 |  . I $O(^IBM(361.1,RCIEN,"ERR",0)) D  ; Add error msgs
 | 
|---|
| 32 |  .. D GETERR(RCIEN,+$O(^TMP("PRCA_EOB",$J,RCIEN," "),-1))
 | 
|---|
| 33 |  . D SEQHDR(RCTDA,RC34441,.RCCT)
 | 
|---|
| 34 |  . S RCZ=0
 | 
|---|
| 35 |  . F  S RCZ=$O(^TMP("PRCA_EOB",$J,RCIEN,RCZ)) Q:'RCZ  S RCCT=RCCT+1 S ^TMP($J,"RCDISP",RCCT)=$G(^TMP("PRCA_EOB",$J,RCIEN,RCZ))
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 |  I '$P(RC0,U,2),$O(^RCY(344.4,RCTDA,1,RC34441,1,0)) D  ; Get detail from raw data in file 344.411
 | 
|---|
| 38 |  . K ^TMP($J,"RCOUT"),^TMP($J,"RCRAW")
 | 
|---|
| 39 |  . D SEQHDR(RCTDA,RC34441,.RCCT)
 | 
|---|
| 40 |  . D DISP^RCDPESR0("^RCY(344.4,"_RCTDA_",1,"_RC34441_",1)","^TMP($J,""RCRAW"")",1,"^TMP($J,""RCOUT"")",75,1)
 | 
|---|
| 41 |  . K ^TMP($J,"RCRAW")
 | 
|---|
| 42 |  . S RCZ=0
 | 
|---|
| 43 |  . F  S RCZ=$O(^TMP($J,"RCOUT",RCZ)) Q:'RCZ  S RCCT=RCCT+1,^TMP($J,"RCDISP",RCCT)=$G(^TMP($J,"RCOUT",RCZ))
 | 
|---|
| 44 |  K ^TMP($J,"RCOUT"),^TMP("PRCA_EOB",$J)
 | 
|---|
| 45 |  Q
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 | SEQHDR(RCTDA,RC34441,RCCT) ; Extract header data from sequence record
 | 
|---|
| 48 |  ; RCTDA = ien of record in file 344.4
 | 
|---|
| 49 |  ; RC34441 = ien of seq # in file 344.41
 | 
|---|
| 50 |  ; RCCT = line counter, updated if passed by ref
 | 
|---|
| 51 |  ; Returns line # incremented and ^TMP($J,"RCDISP" array
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 |  N RCDPDATA,RCINV
 | 
|---|
| 54 |  S RCCT=RCCT+1,^TMP($J,"RCDISP",RCCT)=" "
 | 
|---|
| 55 |  D DIQ34441(RCTDA,RC34441,".01:.15")
 | 
|---|
| 56 |  S RCCT=RCCT+1
 | 
|---|
| 57 |  S RCINV=($G(RCDPDATA(344.41,RC34441,.02,"E"))="")
 | 
|---|
| 58 |  S ^TMP($J,"RCDISP",RCCT)=$E("Sequence #: "_$G(RCDPDATA(344.41,RC34441,.01,"E"))_$S(RCINV:" (Not Stored in IB)",1:"")_$J("",32),1,32)
 | 
|---|
| 59 |  S ^TMP($J,"RCDISP",RCCT)=^TMP($J,"RCDISP",RCCT)_"Bill Number: "_$S('RCINV:RCDPDATA(344.41,RC34441,.02,"E"),1:$G(RCDPDATA(344.41,RC34441,.05,"E"))_" (Not in AR)")
 | 
|---|
| 60 |  I $G(RCDPDATA(344.41,RC34441,.14,"E"))="YES" S RCCT=RCCT+1,^TMP($J,"RCDISP",RCCT)="  *** REVERSAL ***"
 | 
|---|
| 61 |  S RCCT=RCCT+1,^TMP($J,"RCDISP",RCCT)=$E("Amount "_$S($G(RCDPDATA(344.41,RC34441,.14,"E"))="YES":"Reversed",1:"Paid")_": "_$G(RCDPDATA(344.41,RC34441,.03,"E"))_$J("",32),1,32)_"Ins Co: "_$E($G(RCDPDATA(344.41,RC34441,.04,"E")),1,30)
 | 
|---|
| 62 |  I $G(RCDPDATA(344.41,RC34441,.07,"E"))'="" S RCCT=RCCT+1,^TMP($J,"RCDISP",RCCT)="Error: "_RCDPDATA(344.41,RC34441,.07,"E")_$S($G(RCDPDATA(344.41,RC34441,.08,"E"))'="":" - "_$G(RCDPDATA(344.41,RC34441,.08,"E")),1:"")
 | 
|---|
| 63 |  S RCCT=RCCT+1,^TMP($J,"RCDISP",RCCT)="Worklist Status: "_$G(RCDPDATA(344.41,RC34441,.06,"E"))
 | 
|---|
| 64 |  Q
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 | GETERR(RCIEN,Z) ; Extract error messages from entry RCIEN in file 361.1
 | 
|---|
| 67 |  ; Z = the last line # in the ^TMP("PRCA_EOB",$J,RCIEN,n array
 | 
|---|
| 68 |  ; Function returns error lines from file #361.1 in the
 | 
|---|
| 69 |  ;   ^TMP("PRCA_EOB",$J,RCIEN,n array in subscripts at the end of the
 | 
|---|
| 70 |  ;    array
 | 
|---|
| 71 |  N Z0,DATA,RCRAW,RCFORM,RCLINE,X
 | 
|---|
| 72 |  S Z=Z+1,^TMP("PRCA_EOB",$J,RCIEN,Z)="EEOB FILING ERRORS:"
 | 
|---|
| 73 |  S Z0=0 F  S Z0=$O(^IBM(361.1,RCIEN,"ERR",Z0)) Q:'Z0  S X=$G(^(Z0,0)) D
 | 
|---|
| 74 |  . I +X S RCLINE=+X_"^RCDPESR9" I $T(@RCLINE)'="" D  Q
 | 
|---|
| 75 |  .. S RCRAW(1,0)=X
 | 
|---|
| 76 |  .. D DISP^RCDPESR0("RCRAW","RCFORM",1,"RCDATA",80,0)
 | 
|---|
| 77 |  .. S X=0 F  S X=$O(RCFORM(X)) Q:'X  S Z=Z+1,^TMP("PRCA_EOB",$J,RCIEN,Z)="  "_RCFORM(X)
 | 
|---|
| 78 |  . S Z=Z+1,^TMP("PRCA_EOB",$J,RCIEN,Z)="  "_$G(^IBM(361.1,RCIEN,"ERR",Z0,0))
 | 
|---|
| 79 |  Q
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 | SUM(RCTDA,RCCT) ; Extract pertinent top-level data
 | 
|---|
| 82 |  ; RCTDA = ien of record in file 344.4
 | 
|---|
| 83 |  ; RCCT = line counter, updated if passed by ref
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 |  N Z,Z0,CT,CT1,RCDPDATA,RCADJ,RCREV
 | 
|---|
| 86 |  D DIQ3444(RCTDA,".02:.11")
 | 
|---|
| 87 |  S (Z,CT,RCADJ)=0 F  S Z=$O(^RCY(344.4,RCTDA,2,Z)) Q:'Z  S CT=CT+1,RCADJ=RCADJ+$J($P($G(^(Z,0)),U,3),0,2)
 | 
|---|
| 88 |  S (Z,CT1,RCREV)=0 S Z=0 F  S Z0=$O(^RCY(344.4,RCTDA,1,"ATB",1,Z)) Q:'Z  S Z0=$G(^RCY(344.4,RCTDA,1,Z,0)),CT1=CT1+1,RCREV(Z)=$$BILLREF^RCDPESR0(RCTDA,Z)_U_$J($P(Z0,U,3),0,2),RCREV=RCREV+$P(RCREV(Z),U,2)
 | 
|---|
| 89 |  S RCCT=RCCT+1,Z="There is data for "_+$G(RCDPDATA(344.4,RCTDA,.11,"E"))_" EEOBs"_$S(CT:", "_CT_" ERA adjustments",1:"")_$S(CT1:", "_CT1_" EEOB reversals",1:"")
 | 
|---|
| 90 |  S ^TMP($J,"RCDISP",RCCT)=$J("",(80-$L(Z))\2)_Z
 | 
|---|
| 91 |  S RCCT=RCCT+1,^TMP($J,"RCDISP",RCCT)="TOTAL AMT PAID: "_+$G(RCDPDATA(344.4,RCTDA,.05,"E"))
 | 
|---|
| 92 |  I RCADJ D
 | 
|---|
| 93 |  . S RCCT=RCCT+1,^TMP($J,"RCDISP",RCCT)="TOTAL AMT ERA ADJUSTED: "_RCADJ
 | 
|---|
| 94 |  . D DISPADJ^RCDPESR8(RCTDA,"RCADJ")
 | 
|---|
| 95 |  . S Z=0 F  S Z=$O(RCADJ(Z)) Q:'Z  S RCCT=RCCT+1,^TMP($J,"RCDISP",RCCT)="  "_RCADJ(Z)
 | 
|---|
| 96 |  I RCREV D
 | 
|---|
| 97 |  . S RCCT=RCCT+1,^TMP($J,"RCDISP",RCCT)="TOTAL AMT REVERSED: "_RCREV
 | 
|---|
| 98 |  . S Z=0 F  S Z=$O(RCREV(Z)) Q:'Z  S RCCT=RCCT+1,^TMP($J,"RCDISP",RCCT)=$E("  BILL REFERENCE: "_$P(RCREV(Z),U)_$J("",30),1,30)_"  REVERSAL AMT: "_$P(RCREV,U,2)
 | 
|---|
| 99 |  S RCCT=RCCT+1,^TMP($J,"RCDISP",RCCT)=$E("TRACE #: "_$G(RCDPDATA(344.4,RCTDA,.02,"E"))_$J("",35),1,35)_"RECEIPT #: "_$G(RCDPDATA(344.4,RCTDA,.08,"E"))
 | 
|---|
| 100 |  S RCCT=RCCT+1,^TMP($J,"RCDISP",RCCT)=$E("INS CO ID: "_$G(RCDPDATA(344.4,RCTDA,.03,"E"))_$J("",35),1,35)_"NAME: "_$E($G(RCDPDATA(344.4,RCTDA,.06,"E")),1,29)
 | 
|---|
| 101 |  S RCCT=RCCT+1,^TMP($J,"RCDISP",RCCT)=$E("ERA DATE: "_$G(RCDPDATA(344.4,RCTDA,.04,"E"))_$J("",35),1,35)_"DATE ERA RECEIVED: "_$G(RCDPDATA(344.4,RCTDA,.07,"E"))
 | 
|---|
| 102 |  S RCCT=RCCT+1,^TMP($J,"RCDISP",RCCT)="EFT MATCH STATUS: "_$G(RCDPDATA(344.4,RCTDA,.09,"E"))
 | 
|---|
| 103 |  Q
 | 
|---|
| 104 |  ;
 | 
|---|
| 105 | DIQ34441(RCTDA,RC0,DR,ARR) ; DIQ call to retrieve data for DR fields in
 | 
|---|
| 106 |  ; file 344.41
 | 
|---|
| 107 |  N %I,D0,D1,DA,DIC,DIQ,DIQ2,YY
 | 
|---|
| 108 |  I $G(ARR)="" S ARR="RCDPDATA"
 | 
|---|
| 109 |  K @ARR@(344.41,RC0)
 | 
|---|
| 110 |  S DA=RC0,DA(1)=RCTDA,DIQ(0)="E",DIC="^RCY(344.4,"_DA(1)_",1,",DIQ=ARR D EN^DIQ1
 | 
|---|
| 111 |  Q
 | 
|---|
| 112 |  ;
 | 
|---|
| 113 | DIQ3444(DA,DR,ARR) ; DIQ call to retrieve data for DR fields in file 344.41
 | 
|---|
| 114 |  N %I,D0,DIC,DIQ,DIQ2,YY
 | 
|---|
| 115 |  I $G(ARR)="" S ARR="RCDPDATA"
 | 
|---|
| 116 |  K @ARR@(344.4,DA)
 | 
|---|
| 117 |  S DIQ(0)="E",DIC="^RCY(344.4,",DIQ=ARR D EN^DIQ1
 | 
|---|
| 118 |  Q
 | 
|---|
| 119 |  ;
 | 
|---|