IBCEDP ;ALB/ESG - EDI CLAIM STATUS REPORT PRINT ;13-DEC-2007 ;;2.0;INTEGRATED BILLING;**377**;21-MAR-94;Build 23 ;;Per VHA Directive 2004-038, this routine should not be modified. ; Q ; PRINT ; entry point to print the report NEW CRT,IBPAGE,IBSTOP,IBCT,SV1,SV2,SV3,IEN,DATA,NEWHDR NEW DIR,X,Y,DTOUT,DUOUT,DIROUT,DIRUT I IOST["C-" S CRT=1 E S CRT=0 ; S IBPAGE=0,IBSTOP=0,IBCT=0,NEWHDR=0 ; I '$D(^TMP($J,"IBCEDC")) D HDR W !!?5,"No data found for this report." G PX I $G(ZTSTOP) D HDR W !!?5,"This report was halted during compilation by TaskManager Request." G PX ; D HDR ; initial header display S SV1="" F S SV1=$O(^TMP($J,"IBCEDC",SV1)) Q:SV1=""!IBSTOP D SD(SV1) D Q:IBSTOP . S SV2="" . F S SV2=$O(^TMP($J,"IBCEDC",SV1,SV2)) Q:SV2=""!IBSTOP D Q:IBSTOP .. S SV3="" .. F S SV3=$O(^TMP($J,"IBCEDC",SV1,SV2,SV3)) Q:SV3=""!IBSTOP D Q:IBSTOP ... S IEN=0 ... F S IEN=$O(^TMP($J,"IBCEDC",SV1,SV2,SV3,IEN)) Q:'IEN!IBSTOP D Q:IBSTOP .... S DATA=$G(^TMP($J,"IBCEDC",SV1,SV2,SV3,IEN)) .... D PRT(DATA) .... Q ... Q .. Q . Q ; I IBSTOP G PRINTX D:$Y>(IOSL-4) HDR G:IBSTOP PRINTX W !!?5,"Total number of EDI Claims: ",IBCT D:$Y>(IOSL-4) HDR G:IBSTOP PRINTX W !!,"*** End of Report ***" ; PX ; I CRT,'$D(ZTQUEUED) S DIR(0)="E" D ^DIR K DIR PRINTX ; Q ; PRT(Z) ; print a line on the report ; Z - data from the scratch global node N DIV,PAY,ADDR1 D:$Y>(IOSL-3) HDR G:IBSTOP PRTX S IBCT=IBCT+1 S DIV=$P($G(^DG(40.8,+$P(Z,U,10),0)),U,2) ; division abbr S PAY=$P($G(^DIC(36,+$P(Z,U,12),0)),U,1) ; payer name S ADDR1=$P($G(^DIC(36,+$P(Z,U,12),.11)),U,1) ; payer address line 1 ; W !,$P(Z,U,1) ; claim# W ?9,$S($P(Z,U,2)=2:1500,1:"UB04") ; form type W ?14,$S($P(Z,U,3):"INPT",1:"OUTPT") ; inpat/outpat W ?21,$P(Z,U,4) ; payer sequence W ?25,$P(Z,U,5) ; EDI status code W ?29,$E($P(Z,U,13),1,9) ; IB status abbr W ?39,$E($P(Z,U,11),1,2) ; ar status abbr W ?44,$$FMTE^XLFDT($P(Z,U,6)\1,"2Z") ; last transmit date W ?55,$J($P(Z,U,7),4) ; age in days W ?62,$P(Z,U,8) ; batch# W ?69,$J($FN($P(Z,U,9),"",2),9) ; balance due W ?81,DIV ; division W ?89,$E(PAY,1,23) ; payer name W ?114,$E(ADDR1,1,18) ; payer address line 1 ; S NEWHDR=0 ; toggle new header flag PRTX ; Q ; HDR ; report header ; ; if screen output and page# already exists, do a page break at the bottom of the screen I IBPAGE,CRT D I IBSTOP G HDRX . S DIR(0)="E" D ^DIR K DIR . I 'Y S IBSTOP=1 . Q ; ; if screen output OR page# already exists, do a form feed I IBPAGE!CRT W @IOF I 'IBPAGE,'CRT W $C(13) ; first printer page - left margin set ; S IBPAGE=IBPAGE+1 ; W "EDI Claim Status Report",?96,$$FMTE^XLFDT($$NOW^XLFDT)," Page: ",IBPAGE W !,"** A claim may appear multiple times if transmitted more than once. **" W !?3,"Sorted by ",$$SD^IBCEDS1($G(IBSORT1)) I $G(IBSORT2)'="" W ", then by ",$$SD^IBCEDS1(IBSORT2) I $G(IBSORT3)'="" W ", then by ",$$SD^IBCEDS1(IBSORT3) ; ; display column headers W !?25,"*-- Statuses --*" W !,"Claim",?9,"Form",?14,"Type",?20,"Seq",?25,"EDI",?31,"IB",?39,"AR",?44,"Trans Dt",?56,"Age",?62,"Batch#",?71,"Bal Due" W ?81,"Div",?89,"Payer" ; N Z S Z="",$P(Z,"-",133)="" W !,Z ; S NEWHDR=1 ; flag indicating a new page header was just printed ; ; check for a TaskManager stop request I $D(ZTQUEUED),$$S^%ZTLOAD() D G HDRX . S (ZTSTOP,IBSTOP)=1 . W !!!?5,"*** Report Halted by TaskManager Request ***" . Q ; HDRX ; Q ; SD(SV) ; primary sort value display break. This procedure is to display a break whenever the primary sort value changes ; SV - subscript value of the primary sort I IBSORT1=4!(IBSORT1=6) G SDX ; don't display a break for current balance or for claim# primary sorts ; D:$Y>(IOSL-4) HDR G:IBSTOP SDX I 'NEWHDR W ! ; an extra line break if a page header was not just printed I $E(SV)="-",$D(IBSORTOR(IBSORT1)) S SV=$E(SV,2,999) ; remove leading "-" on descending numerical sorts ; I IBSORT1=1 S SV=$$FMTE^XLFDT(SV,"5Z") ; last transmitted date/time I IBSORT1=2 D ; payer name and address . N INS,ADDR . S INS=+$P(SV,U,2) ; ins co ien 2nd piece of subscript . S ADDR=$$INSADD^IBCNSC02(INS) ; address fields . S SV=$P(SV,U,1)_" "_$P(ADDR,U,2)_" "_$P(ADDR,U,6)_" "_$P(ADDR,U,5) . Q I IBSORT1=3 S SV=SV_" - "_$$EXTERNAL^DILFD(364,.03,,SV) ; edi claim status and description I IBSORT1=5 D ; division . N DZ,DIVNM . S DZ=+$O(^DG(40.8,"C",SV,"")) ; division ien . S DIVNM=$P($G(^DG(40.8,DZ,0)),U,1) ; division name . S SV=SV_" - "_DIVNM . Q I IBSORT1=7 D ; AR status . N AZ,ANM . S AZ=+$O(^PRCA(430.3,"C",SV,"")) ; AR status ien . S ANM=$P($G(^PRCA(430.3,AZ,0)),U,1) ; AR status description . S SV=SV_" - "_ANM . Q I IBSORT1=8 S SV=SV_" Days" ; S SV=$$SD^IBCEDS1(IBSORT1)_": "_SV W !,SV SDX ; Q ;