| 1 | IBCEDP  ;ALB/ESG - EDI CLAIM STATUS REPORT PRINT ;13-DEC-2007
 | 
|---|
| 2 |         ;;2.0;INTEGRATED BILLING;**377**;21-MAR-94;Build 23
 | 
|---|
| 3 |         ;;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
| 4 |         ;
 | 
|---|
| 5 |         Q
 | 
|---|
| 6 |         ;
 | 
|---|
| 7 | PRINT   ; entry point to print the report
 | 
|---|
| 8 |         NEW CRT,IBPAGE,IBSTOP,IBCT,SV1,SV2,SV3,IEN,DATA,NEWHDR
 | 
|---|
| 9 |         NEW DIR,X,Y,DTOUT,DUOUT,DIROUT,DIRUT
 | 
|---|
| 10 |         I IOST["C-" S CRT=1
 | 
|---|
| 11 |         E  S CRT=0
 | 
|---|
| 12 |         ;
 | 
|---|
| 13 |         S IBPAGE=0,IBSTOP=0,IBCT=0,NEWHDR=0
 | 
|---|
| 14 |         ;
 | 
|---|
| 15 |         I '$D(^TMP($J,"IBCEDC")) D HDR W !!?5,"No data found for this report." G PX
 | 
|---|
| 16 |         I $G(ZTSTOP) D HDR W !!?5,"This report was halted during compilation by TaskManager Request." G PX
 | 
|---|
| 17 |         ;
 | 
|---|
| 18 |         D HDR   ; initial header display
 | 
|---|
| 19 |         S SV1=""
 | 
|---|
| 20 |         F  S SV1=$O(^TMP($J,"IBCEDC",SV1)) Q:SV1=""!IBSTOP  D SD(SV1) D  Q:IBSTOP
 | 
|---|
| 21 |         . S SV2=""
 | 
|---|
| 22 |         . F  S SV2=$O(^TMP($J,"IBCEDC",SV1,SV2)) Q:SV2=""!IBSTOP  D  Q:IBSTOP
 | 
|---|
| 23 |         .. S SV3=""
 | 
|---|
| 24 |         .. F  S SV3=$O(^TMP($J,"IBCEDC",SV1,SV2,SV3)) Q:SV3=""!IBSTOP  D  Q:IBSTOP
 | 
|---|
| 25 |         ... S IEN=0
 | 
|---|
| 26 |         ... F  S IEN=$O(^TMP($J,"IBCEDC",SV1,SV2,SV3,IEN)) Q:'IEN!IBSTOP  D  Q:IBSTOP
 | 
|---|
| 27 |         .... S DATA=$G(^TMP($J,"IBCEDC",SV1,SV2,SV3,IEN))
 | 
|---|
| 28 |         .... D PRT(DATA)
 | 
|---|
| 29 |         .... Q
 | 
|---|
| 30 |         ... Q
 | 
|---|
| 31 |         .. Q
 | 
|---|
| 32 |         . Q
 | 
|---|
| 33 |         ;
 | 
|---|
| 34 |         I IBSTOP G PRINTX
 | 
|---|
| 35 |         D:$Y>(IOSL-4) HDR G:IBSTOP PRINTX
 | 
|---|
| 36 |         W !!?5,"Total number of EDI Claims:  ",IBCT
 | 
|---|
| 37 |         D:$Y>(IOSL-4) HDR G:IBSTOP PRINTX
 | 
|---|
| 38 |         W !!,"*** End of Report ***"
 | 
|---|
| 39 |         ;
 | 
|---|
| 40 | PX      ;
 | 
|---|
| 41 |         I CRT,'$D(ZTQUEUED) S DIR(0)="E" D ^DIR K DIR
 | 
|---|
| 42 | PRINTX  ;
 | 
|---|
| 43 |         Q
 | 
|---|
| 44 |         ;
 | 
|---|
| 45 | PRT(Z)  ; print a line on the report
 | 
|---|
| 46 |         ; Z - data from the scratch global node
 | 
|---|
| 47 |         N DIV,PAY,ADDR1
 | 
|---|
| 48 |         D:$Y>(IOSL-3) HDR G:IBSTOP PRTX
 | 
|---|
| 49 |         S IBCT=IBCT+1
 | 
|---|
| 50 |         S DIV=$P($G(^DG(40.8,+$P(Z,U,10),0)),U,2)      ; division abbr
 | 
|---|
| 51 |         S PAY=$P($G(^DIC(36,+$P(Z,U,12),0)),U,1)       ; payer name
 | 
|---|
| 52 |         S ADDR1=$P($G(^DIC(36,+$P(Z,U,12),.11)),U,1)   ; payer address line 1
 | 
|---|
| 53 |         ;
 | 
|---|
| 54 |         W !,$P(Z,U,1)                                            ; claim#
 | 
|---|
| 55 |         W ?9,$S($P(Z,U,2)=2:1500,1:"UB04")                       ; form type
 | 
|---|
| 56 |         W ?14,$S($P(Z,U,3):"INPT",1:"OUTPT")                     ; inpat/outpat
 | 
|---|
| 57 |         W ?21,$P(Z,U,4)                                          ; payer sequence
 | 
|---|
| 58 |         W ?25,$P(Z,U,5)                                          ; EDI status code
 | 
|---|
| 59 |         W ?29,$E($P(Z,U,13),1,9)                                 ; IB status abbr
 | 
|---|
| 60 |         W ?39,$E($P(Z,U,11),1,2)                                 ; ar status abbr
 | 
|---|
| 61 |         W ?44,$$FMTE^XLFDT($P(Z,U,6)\1,"2Z")                     ; last transmit date
 | 
|---|
| 62 |         W ?55,$J($P(Z,U,7),4)                                    ; age in days
 | 
|---|
| 63 |         W ?62,$P(Z,U,8)                                          ; batch#
 | 
|---|
| 64 |         W ?69,$J($FN($P(Z,U,9),"",2),9)                          ; balance due
 | 
|---|
| 65 |         W ?81,DIV                                                ; division
 | 
|---|
| 66 |         W ?89,$E(PAY,1,23)                                       ; payer name
 | 
|---|
| 67 |         W ?114,$E(ADDR1,1,18)                                    ; payer address line 1
 | 
|---|
| 68 |         ;
 | 
|---|
| 69 |         S NEWHDR=0  ; toggle new header flag
 | 
|---|
| 70 | PRTX    ;
 | 
|---|
| 71 |         Q
 | 
|---|
| 72 |         ;
 | 
|---|
| 73 | HDR     ; report header
 | 
|---|
| 74 |         ;
 | 
|---|
| 75 |         ; if screen output and page# already exists, do a page break at the bottom of the screen
 | 
|---|
| 76 |         I IBPAGE,CRT D  I IBSTOP G HDRX
 | 
|---|
| 77 |         . S DIR(0)="E" D ^DIR K DIR
 | 
|---|
| 78 |         . I 'Y S IBSTOP=1
 | 
|---|
| 79 |         . Q
 | 
|---|
| 80 |         ;
 | 
|---|
| 81 |         ; if screen output OR page# already exists, do a form feed
 | 
|---|
| 82 |         I IBPAGE!CRT W @IOF
 | 
|---|
| 83 |         I 'IBPAGE,'CRT W $C(13)   ; first printer page - left margin set
 | 
|---|
| 84 |         ;
 | 
|---|
| 85 |         S IBPAGE=IBPAGE+1
 | 
|---|
| 86 |         ;
 | 
|---|
| 87 |         W "EDI Claim Status Report",?96,$$FMTE^XLFDT($$NOW^XLFDT),"   Page: ",IBPAGE
 | 
|---|
| 88 |         W !,"** A claim may appear multiple times if transmitted more than once. **"
 | 
|---|
| 89 |         W !?3,"Sorted by ",$$SD^IBCEDS1($G(IBSORT1))
 | 
|---|
| 90 |         I $G(IBSORT2)'="" W ", then by ",$$SD^IBCEDS1(IBSORT2)
 | 
|---|
| 91 |         I $G(IBSORT3)'="" W ", then by ",$$SD^IBCEDS1(IBSORT3)
 | 
|---|
| 92 |         ;
 | 
|---|
| 93 |         ; display column headers
 | 
|---|
| 94 |         W !?25,"*-- Statuses --*"
 | 
|---|
| 95 |         W !,"Claim",?9,"Form",?14,"Type",?20,"Seq",?25,"EDI",?31,"IB",?39,"AR",?44,"Trans Dt",?56,"Age",?62,"Batch#",?71,"Bal Due"
 | 
|---|
| 96 |         W ?81,"Div",?89,"Payer"
 | 
|---|
| 97 |         ;
 | 
|---|
| 98 |         N Z S Z="",$P(Z,"-",133)="" W !,Z
 | 
|---|
| 99 |         ;
 | 
|---|
| 100 |         S NEWHDR=1    ; flag indicating a new page header was just printed
 | 
|---|
| 101 |         ;
 | 
|---|
| 102 |         ; check for a TaskManager stop request
 | 
|---|
| 103 |         I $D(ZTQUEUED),$$S^%ZTLOAD() D  G HDRX
 | 
|---|
| 104 |         . S (ZTSTOP,IBSTOP)=1
 | 
|---|
| 105 |         . W !!!?5,"*** Report Halted by TaskManager Request ***"
 | 
|---|
| 106 |         . Q
 | 
|---|
| 107 |         ;
 | 
|---|
| 108 | HDRX    ;
 | 
|---|
| 109 |         Q
 | 
|---|
| 110 |         ;
 | 
|---|
| 111 | SD(SV)  ; primary sort value display break.  This procedure is to display a break whenever the primary sort value changes
 | 
|---|
| 112 |         ; SV - subscript value of the primary sort
 | 
|---|
| 113 |         I IBSORT1=4!(IBSORT1=6) G SDX  ; don't display a break for current balance or for claim# primary sorts
 | 
|---|
| 114 |         ;
 | 
|---|
| 115 |         D:$Y>(IOSL-4) HDR G:IBSTOP SDX
 | 
|---|
| 116 |         I 'NEWHDR W !     ; an extra line break if a page header was not just printed
 | 
|---|
| 117 |         I $E(SV)="-",$D(IBSORTOR(IBSORT1)) S SV=$E(SV,2,999)    ; remove leading "-" on descending numerical sorts
 | 
|---|
| 118 |         ;
 | 
|---|
| 119 |         I IBSORT1=1 S SV=$$FMTE^XLFDT(SV,"5Z")   ; last transmitted date/time
 | 
|---|
| 120 |         I IBSORT1=2 D                            ; payer name and address
 | 
|---|
| 121 |         . N INS,ADDR
 | 
|---|
| 122 |         . S INS=+$P(SV,U,2)                      ; ins co ien 2nd piece of subscript
 | 
|---|
| 123 |         . S ADDR=$$INSADD^IBCNSC02(INS)          ; address fields
 | 
|---|
| 124 |         . S SV=$P(SV,U,1)_"   "_$P(ADDR,U,2)_" "_$P(ADDR,U,6)_" "_$P(ADDR,U,5)
 | 
|---|
| 125 |         . Q
 | 
|---|
| 126 |         I IBSORT1=3 S SV=SV_" - "_$$EXTERNAL^DILFD(364,.03,,SV)   ; edi claim status and description
 | 
|---|
| 127 |         I IBSORT1=5 D                                             ; division
 | 
|---|
| 128 |         . N DZ,DIVNM
 | 
|---|
| 129 |         . S DZ=+$O(^DG(40.8,"C",SV,""))                           ; division ien
 | 
|---|
| 130 |         . S DIVNM=$P($G(^DG(40.8,DZ,0)),U,1)                      ; division name
 | 
|---|
| 131 |         . S SV=SV_" - "_DIVNM
 | 
|---|
| 132 |         . Q
 | 
|---|
| 133 |         I IBSORT1=7 D                                             ; AR status
 | 
|---|
| 134 |         . N AZ,ANM
 | 
|---|
| 135 |         . S AZ=+$O(^PRCA(430.3,"C",SV,""))                        ; AR status ien
 | 
|---|
| 136 |         . S ANM=$P($G(^PRCA(430.3,AZ,0)),U,1)                     ; AR status description
 | 
|---|
| 137 |         . S SV=SV_" - "_ANM
 | 
|---|
| 138 |         . Q
 | 
|---|
| 139 |         I IBSORT1=8 S SV=SV_" Days"
 | 
|---|
| 140 |         ;
 | 
|---|
| 141 |         S SV=$$SD^IBCEDS1(IBSORT1)_": "_SV
 | 
|---|
| 142 |         W !,SV
 | 
|---|
| 143 | SDX     ;
 | 
|---|
| 144 |         Q
 | 
|---|
| 145 |         ;
 | 
|---|