[613] | 1 | BPSRPAY ;BHAM ISC/BEE - ECME REPORTS ;14-FEB-05
|
---|
| 2 | ;;1.0;E CLAIMS MGMT ENGINE;**1**;JUN 2004
|
---|
| 3 | ;; Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | Q
|
---|
| 6 | ;
|
---|
| 7 | ; Payer Sheet Display Report
|
---|
| 8 | ;
|
---|
| 9 | ;User Prompts
|
---|
| 10 | EN N BPFILE,BPIEN,BPSCR,BPQ
|
---|
| 11 | S BPFILE=9002313.92
|
---|
| 12 | ;
|
---|
| 13 | ;Select Payer Sheet
|
---|
| 14 | I $D(IOF) W @IOF
|
---|
| 15 | W !,"Payer Sheet Detail Report",!!
|
---|
| 16 | S BPIEN=$$BPIEN(BPFILE)
|
---|
| 17 | ;
|
---|
| 18 | ;Check for Valid Entry
|
---|
| 19 | I BPIEN=-1 G EXIT
|
---|
| 20 | ;
|
---|
| 21 | ;Select Device
|
---|
| 22 | I $$DEVICE=-1 G EXIT
|
---|
| 23 | ;
|
---|
| 24 | ;Display Data
|
---|
| 25 | D RUN(BPFILE,BPIEN)
|
---|
| 26 | ;
|
---|
| 27 | ;Exit
|
---|
| 28 | EXIT Q
|
---|
| 29 | ;
|
---|
| 30 | ;Display the Payer Sheet Info
|
---|
| 31 | ;
|
---|
| 32 | RUN(BPFILE,BPIEN) N BPQ
|
---|
| 33 | D PSPRNT(BPFILE,BPIEN)
|
---|
| 34 | Q
|
---|
| 35 | ;
|
---|
| 36 | ; Select a payer sheet
|
---|
| 37 | BPIEN(BPFILE) N DIC,DIRUT,DTOUT,DUOUT,X,Y
|
---|
| 38 | S DIC=$$ROOT^DILFD(BPFILE),DIC(0)="AEMQ"
|
---|
| 39 | S DIC("A")="Select Payer Sheet: "
|
---|
| 40 | D ^DIC
|
---|
| 41 | Q +Y
|
---|
| 42 | ;
|
---|
| 43 | ;Select the output Device
|
---|
| 44 | DEVICE() N %ZIS,IOP,ZTSK,ZTRTN,ZTIO,ZTSAVE,ZTDESC,POP,BPQ
|
---|
| 45 | S BPQ=0
|
---|
| 46 | S %ZIS="QM"
|
---|
| 47 | W ! D ^%ZIS
|
---|
| 48 | I POP Q -1
|
---|
| 49 | S BPSCR=$S($E($G(IOST),1,2)="C-":1,1:0)
|
---|
| 50 | I $D(IO("Q")) D S BPQ=-1
|
---|
| 51 | . S ZTRTN="RUN^BPSRPAY(BPFILE,BPIEN)"
|
---|
| 52 | . S ZTIO=ION
|
---|
| 53 | . S ZTSAVE("*")=""
|
---|
| 54 | . S ZTDESC="PAYER SHEET DETAIL REPORT"
|
---|
| 55 | . D ^%ZTLOAD
|
---|
| 56 | . W !,$S($D(ZTSK):"REQUEST QUEUED TASK="_ZTSK,1:"REQUEST CANCELLED")
|
---|
| 57 | . D HOME^%ZIS
|
---|
| 58 | U IO
|
---|
| 59 | Q BPQ
|
---|
| 60 | ;
|
---|
| 61 | ; Payer Sheet Display
|
---|
| 62 | PSPRNT(BPFILE,EN) N BPSHDR,BPIEN,BPPAGE,BPQ,CD,L,N,N1,N2,NAME,NM,NUM,SEG,SP
|
---|
| 63 | N SEGNM,TB,WP,X,X0,X5,ZTREQ
|
---|
| 64 | ;
|
---|
| 65 | ; Build List of Segment Header Names
|
---|
| 66 | D INIT
|
---|
| 67 | ;
|
---|
| 68 | ; Get header information
|
---|
| 69 | S BPIEN=EN_","
|
---|
| 70 | D GETS^DIQ(BPFILE,EN,".01;1.02;1.03;1.06;1.07;1.13;1.14;1001","","BPSHDR")
|
---|
| 71 | ;
|
---|
| 72 | ; Display Header Information
|
---|
| 73 | S BPQ=0,BPPAGE=0,SEGNM=""
|
---|
| 74 | D HDR
|
---|
| 75 | ;
|
---|
| 76 | ; Field Detail Information
|
---|
| 77 | ; Loop through Segments
|
---|
| 78 | S SEG=99 F S SEG=$O(^BPSF(BPFILE,EN,SEG)) Q:SEG=""!(SEG>230)!(SEG="REVERSAL") D I BPQ Q
|
---|
| 79 | . ;
|
---|
| 80 | . ;Make sure there are entries for the segment
|
---|
| 81 | . I $P($G(^BPSF(BPFILE,EN,SEG,0)),U,4)<1 Q
|
---|
| 82 | . ;
|
---|
| 83 | . ; Get and display Segment Name
|
---|
| 84 | . S SEGNM=$G(NAME(SEG))
|
---|
| 85 | . ; Check that we can display the Segment Name and at least one additional field
|
---|
| 86 | . D CHKP(2) I BPQ Q
|
---|
| 87 | . I BPPAGE=1!($Y>5) W !,?((60-$L(SEGNM)+8)/2),"*** ",SEGNM," ***"
|
---|
| 88 | . ; Loop through the Field via the Sequence Number
|
---|
| 89 | . S N=0 F S N=$O(^BPSF(BPFILE,EN,SEG,"B",N)) Q:N="" D I BPQ Q
|
---|
| 90 | .. S N1=0 F S N1=$O(^BPSF(BPFILE,EN,SEG,"B",N,N1)) Q:N1="" D I BPQ Q
|
---|
| 91 | ... ;
|
---|
| 92 | ... ; Get Field Data and Format the Field Number
|
---|
| 93 | ... S X=$G(^BPSF(BPFILE,EN,SEG,N1,0))
|
---|
| 94 | ... S NUM=$P(X,U,2),SP=$P(X,U,3)
|
---|
| 95 | ... I NUM S X0=$G(^BPSF(9002313.91,NUM,0)),X5=$G(^BPSF(9002313.91,NUM,5))
|
---|
| 96 | ... E S (X0,X5)=""
|
---|
| 97 | ... S NUM=$P(X0,U,1)_"-"_$P(X5,U,1),NM=$P(X0,U,3)
|
---|
| 98 | ... ;
|
---|
| 99 | ... ; Display the field information
|
---|
| 100 | ... D CHKP(1) I BPQ Q
|
---|
| 101 | ... W !,N,?5,NUM,?17,NM,?71,$J(SP,9)
|
---|
| 102 | ... ;
|
---|
| 103 | ... ; If there is special code, display it
|
---|
| 104 | ... I SP="X" S N2=0 F S N2=$O(^BPSF(BPFILE,EN,SEG,N1,1,N2)) Q:N2="" D I BPQ Q
|
---|
| 105 | .... S CD=$G(^BPSF(BPFILE,EN,SEG,N1,1,N2,0))
|
---|
| 106 | .... S TB=19,L=61,WP=0
|
---|
| 107 | .... F D CHKP(1) Q:BPQ W ! D Q:CD=""
|
---|
| 108 | ..... W:N2=1 ?5,"Special Code: "
|
---|
| 109 | ..... W:WP=1 ?12,"<cont>"
|
---|
| 110 | ..... W ?19,$E(CD,1,L)
|
---|
| 111 | ..... S CD=$E(CD,L+1,200) Q:CD=""
|
---|
| 112 | ..... S WP=1
|
---|
| 113 | . I BPQ Q
|
---|
| 114 | .D CHKP(1) Q:BPQ W !
|
---|
| 115 | I 'BPSCR W !,@IOF
|
---|
| 116 | E I 'BPQ D PAUSE2
|
---|
| 117 | I $D(ZTQUEUED) S ZTREQ="@" Q
|
---|
| 118 | D ^%ZISC
|
---|
| 119 | XPRT Q
|
---|
| 120 | ;
|
---|
| 121 | ;Display Report Header
|
---|
| 122 | ;
|
---|
| 123 | HDR S BPPAGE=$G(BPPAGE)+1
|
---|
| 124 | W @IOF
|
---|
| 125 | W "Payer Sheet Detail Report"
|
---|
| 126 | W ?48,"Print Date: "_$E(DT,4,5)_"/"_$E(DT,6,7)_"/"_$E(DT,2,3)
|
---|
| 127 | W " Page:",$J(BPPAGE,3)
|
---|
| 128 | W !,$J("Payer Sheet Name: ",20),$G(BPSHDR(BPFILE,BPIEN,.01))
|
---|
| 129 | W ?40,$J("Version Number: ",20),$G(BPSHDR(BPFILE,BPIEN,1.14))
|
---|
| 130 | I BPPAGE=1 D
|
---|
| 131 | . W !,$J("Status: ",20),$G(BPSHDR(BPFILE,BPIEN,1.06))
|
---|
| 132 | . W ?40,$J("NCPDP Version: ",20),$G(BPSHDR(BPFILE,BPIEN,1.02))
|
---|
| 133 | . W !,$J("Reversal Format: ",20),$G(BPSHDR(BPFILE,BPIEN,1.07))
|
---|
| 134 | . W ?40,$J("Reversal Sheet: ",20),$G(BPSHDR(BPFILE,BPIEN,1001))
|
---|
| 135 | . W !,$J("Transaction Count: ",20),$G(BPSHDR(BPFILE,BPIEN,1.03))
|
---|
| 136 | . W ?40,$J("Certification ID: ",20),$G(BPSHDR(BPFILE,BPIEN,1.13))
|
---|
| 137 | ;
|
---|
| 138 | ; Display subheader
|
---|
| 139 | W !!,"Seq",?5,"Field",?17,"Field Name",?71,"Proc Mode"
|
---|
| 140 | W !,"---",?5,"-----",?17,"----------",?71,"---------"
|
---|
| 141 | I $G(SEGNM)]"" W !,?((60-$L(SEGNM)+8)/2),"*** ",SEGNM," ***"
|
---|
| 142 | Q
|
---|
| 143 | ;
|
---|
| 144 | ;Check for End of Page
|
---|
| 145 | ;
|
---|
| 146 | ; Input variable -> BPLINES - Number of lines from bottom
|
---|
| 147 | ; CONT - 0 = New Entry, 1 = Continue Entry
|
---|
| 148 | ;
|
---|
| 149 | CHKP(BPLINES) S BPLINES=BPLINES+1
|
---|
| 150 | I $G(BPSCR) S BPLINES=BPLINES+3
|
---|
| 151 | I $Y>(IOSL-BPLINES) D:$G(BPSCR) PAUSE Q:$G(BPQ) 0 D HDR Q 1
|
---|
| 152 | Q 0
|
---|
| 153 | ;
|
---|
| 154 | PAUSE ;
|
---|
| 155 | N X
|
---|
| 156 | U IO(0)
|
---|
| 157 | R !!,"Press RETURN to continue, '^' to exit: ",X:DTIME
|
---|
| 158 | I '$T S X="^"
|
---|
| 159 | I X["^" S BPQ=1
|
---|
| 160 | U IO
|
---|
| 161 | Q
|
---|
| 162 | ;
|
---|
| 163 | PAUSE2 ;
|
---|
| 164 | N X
|
---|
| 165 | U IO(0)
|
---|
| 166 | R !,"Press RETURN to continue: ",X:DTIME
|
---|
| 167 | U IO
|
---|
| 168 | Q
|
---|
| 169 | ;
|
---|
| 170 | INIT ; Create local array of segment header names
|
---|
| 171 | S NAME(100)="Transaction Header Segment",NAME(110)="Patient Segment"
|
---|
| 172 | S NAME(120)="Insurance Segment",NAME(130)="Claim Segment"
|
---|
| 173 | S NAME(140)="Pharmacy Provider Segment",NAME(150)="Prescriber Segment"
|
---|
| 174 | S NAME(160)="COB/Other Payments Segment",NAME(170)="Workers' Compensation Segment"
|
---|
| 175 | S NAME(180)="DUR/PPS Segment",NAME(190)="Pricing Segment"
|
---|
| 176 | S NAME(200)="Coupon Segment",NAME(210)="Compound Segment"
|
---|
| 177 | S NAME(220)="Prior Authorization Segment",NAME(230)="Clinical Segment"
|
---|
| 178 | Q
|
---|