| [613] | 1 | IBCNERPE ;DAOU/BHS - IBCNE IIV RESPONSE REPORT (cont'd);03-JUN-2002 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**271,300**;21-MAR-94 | 
|---|
|  | 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | ; Must call at tag | 
|---|
|  | 6 | Q | 
|---|
|  | 7 | ; | 
|---|
|  | 8 | ; This tag is only called from IBCNERP2 | 
|---|
|  | 9 | ; | 
|---|
|  | 10 | GETDATA(IEN,RPTDATA) ; Retrieve response data | 
|---|
|  | 11 | ; Init | 
|---|
|  | 12 | N EBCT,NOTECT,EBPTR,PC,CNCT,CNPTR,NWNTCT,IBNOTES,IBERR | 
|---|
|  | 13 | N %,DIW,DIWI,DIWT,DIWTC,DIWX,DN,I,Z,ERRTEXT,II,FUTDT,TQIEN | 
|---|
|  | 14 | N FRST,IIVSTR,IIVSTAT | 
|---|
|  | 15 | ; | 
|---|
|  | 16 | ; Insured Info from IIV Response #365 | 
|---|
|  | 17 | S RPTDATA(0)=$G(^IBCN(365,IEN,0)),TQIEN=$P(RPTDATA(0),U,5) | 
|---|
|  | 18 | ; Trans dates to ext format | 
|---|
|  | 19 | S $P(RPTDATA(0),U,7)=$$FMTE^XLFDT($P(RPTDATA(0),U,7)\1,"5Z") | 
|---|
|  | 20 | S RPTDATA(1)=$G(^IBCN(365,IEN,1)) | 
|---|
|  | 21 | ; Trans ext values for SET of CODES values | 
|---|
|  | 22 | S $P(RPTDATA(1),U,8)=$$GET1^DIQ(365,IEN_",",1.08,"E")   ; Whose Ins | 
|---|
|  | 23 | S $P(RPTDATA(1),U,9)=$$GET1^DIQ(365,IEN_",",1.09,"E")   ; Pt Rel to Sub | 
|---|
|  | 24 | S $P(RPTDATA(1),U,13)=$$GET1^DIQ(365,IEN_",",1.13,"E")  ; COB | 
|---|
|  | 25 | ; Trans err actions/codes to ext | 
|---|
|  | 26 | S $P(RPTDATA(1),U,14)=$$X12^IBCNERP2(365.017,$P(RPTDATA(1),U,14)) | 
|---|
|  | 27 | S $P(RPTDATA(1),U,15)=$$X12^IBCNERP2(365.018,$P(RPTDATA(1),U,15)) | 
|---|
|  | 28 | ; Trans dates to ext format - check format | 
|---|
|  | 29 | F PC=2,9:1:12,16,17,19 S $P(RPTDATA(1),U,PC)=$$FMTE^XLFDT($P(RPTDATA(1),U,PC),"5Z") | 
|---|
|  | 30 | ; | 
|---|
|  | 31 | ; Loop thru mult Elig/Ben segs | 
|---|
|  | 32 | S EBCT=0,IIVSTAT="" | 
|---|
|  | 33 | ; Check to see if the IIV STATUS flag was passed | 
|---|
|  | 34 | ; If so, set IIVSTAT to its value and update RPTDATA | 
|---|
|  | 35 | S FRST=$O(^IBCN(365,IEN,2,0)) | 
|---|
|  | 36 | I FRST D | 
|---|
|  | 37 | . S IIVSTR=$G(^IBCN(365,IEN,2,FRST,0)) | 
|---|
|  | 38 | . I $P(IIVSTR,U,6)="IIV Eligibility Determination" D | 
|---|
|  | 39 | ..  S EBCT=FRST,IIVSTAT=$P(IIVSTR,U) | 
|---|
|  | 40 | ..  ; Convert IEN to X12 code | 
|---|
|  | 41 | ..  S IIVSTAT=$$GET1^DIQ(365.02,EBCT_","_IEN_",","ELIGIBILITY/BENEFIT INFO:CODE") | 
|---|
|  | 42 | ..  S IIVSTAT=$S(IIVSTAT=1:"Active",IIVSTAT=6:"Inactive",1:"U") | 
|---|
|  | 43 | ..  S RPTDATA(2,0)=IIVSTAT,RPTDATA(2,EBCT)="" | 
|---|
|  | 44 | ; Error action/condition shd be flagged as Undetermined - no EC flg sent | 
|---|
|  | 45 | I IIVSTAT="",$P(RPTDATA(1),U,14)]""!($P(RPTDATA(1),U,15)]"") S (IIVSTAT,RPTDATA(2,0))="U" | 
|---|
|  | 46 | F  S EBCT=$O(^IBCN(365,IEN,2,EBCT)) Q:'EBCT  D | 
|---|
|  | 47 | .  S RPTDATA(2,EBCT)=$G(^IBCN(365,IEN,2,EBCT,0)) | 
|---|
|  | 48 | .  ; Elig/Ben Info (ptr to EB01 table) | 
|---|
|  | 49 | .  S $P(RPTDATA(2,EBCT),U,2)=$$X12^IBCNERP2(365.011,$P(RPTDATA(2,EBCT),U,2)) | 
|---|
|  | 50 | .  ; Cov Lvl Code (ptr to EB02 table) | 
|---|
|  | 51 | .  S $P(RPTDATA(2,EBCT),U,3)=$$X12^IBCNERP2(365.012,$P(RPTDATA(2,EBCT),U,3)) | 
|---|
|  | 52 | .  ; Svc Type Code (ptr to EB03 table) | 
|---|
|  | 53 | .  S $P(RPTDATA(2,EBCT),U,4)=$$X12^IBCNERP2(365.013,$P(RPTDATA(2,EBCT),U,4)) | 
|---|
|  | 54 | .  ; Ins Type Code (ptr to EB04 table) | 
|---|
|  | 55 | .  S $P(RPTDATA(2,EBCT),U,5)=$$X12^IBCNERP2(365.014,$P(RPTDATA(2,EBCT),U,5)) | 
|---|
|  | 56 | .  ; Plan Cov Desc - free text | 
|---|
|  | 57 | .  ; Time Pd Qual (ptr to EB06 table) | 
|---|
|  | 58 | .  S $P(RPTDATA(2,EBCT),U,7)=$$X12^IBCNERP2(365.015,$P(RPTDATA(2,EBCT),U,7)) | 
|---|
|  | 59 | .  ; Monetary Amt | 
|---|
|  | 60 | .  I $P(RPTDATA(2,EBCT),U,8)'="" S $P(RPTDATA(2,EBCT),U,8)="$"_$FN(+$P(RPTDATA(2,EBCT),U,8),",",2) | 
|---|
|  | 61 | .  ; Percent | 
|---|
|  | 62 | .  I $P(RPTDATA(2,EBCT),U,9)'="" S $P(RPTDATA(2,EBCT),U,9)=$S($P(RPTDATA(2,EBCT),U,9)<1:$P(RPTDATA(2,EBCT),U,9)*100,1:$P(RPTDATA(2,EBCT),U,9))_"%" | 
|---|
|  | 63 | .  ; Qty Qual (ptr to EB09) | 
|---|
|  | 64 | .  S $P(RPTDATA(2,EBCT),U,10)=$$X12^IBCNERP2(365.016,$P(RPTDATA(2,EBCT),U,10)) | 
|---|
|  | 65 | .  ; Qty | 
|---|
|  | 66 | .  I $P(RPTDATA(2,EBCT),U,11)'="" S $P(RPTDATA(2,EBCT),U,10)=$P(RPTDATA(2,EBCT),U,11)_" "_$P(RPTDATA(2,EBCT),U,10),$P(RPTDATA(2,EBCT),U,11)="" | 
|---|
|  | 67 | .  ; Auth/Cert Ind (Y/N/U) | 
|---|
|  | 68 | .  I $P(RPTDATA(2,EBCT),U,12)'="" S $P(RPTDATA(2,EBCT),U,12)=$$GET1^DIQ(365.02,EBCT_","_IEN_",",.12,"E") | 
|---|
|  | 69 | .  ; In-Plan Network Ind (Y/N/U) | 
|---|
|  | 70 | .  I $P(RPTDATA(2,EBCT),U,13)'="" S $P(RPTDATA(2,EBCT),U,13)=$$GET1^DIQ(365.02,EBCT_","_IEN_",",.13,"E") | 
|---|
|  | 71 | .  ; Loop thru Notes (wp) - format to 70 chars | 
|---|
|  | 72 | .  S (NOTECT,NWNTCT)=0 | 
|---|
|  | 73 | .  F  S NOTECT=$O(^IBCN(365,IEN,2,EBCT,2,NOTECT)) Q:'NOTECT  D | 
|---|
|  | 74 | .  .  D FSTRNG^IBJU1($G(^IBCN(365,IEN,2,EBCT,2,NOTECT,0)),70,.IBNOTES) | 
|---|
|  | 75 | .  .  ; Loop thru text (70 chars wide) | 
|---|
|  | 76 | .  .  S II=0 | 
|---|
|  | 77 | .  .  F  S II=$O(IBNOTES(II)) Q:'II  I $G(IBNOTES(II))'="" D | 
|---|
|  | 78 | .  .  .  S NWNTCT=NWNTCT+1 | 
|---|
|  | 79 | .  .  .  S RPTDATA(2,EBCT,NWNTCT)=$G(IBNOTES(II)) | 
|---|
|  | 80 | ; | 
|---|
|  | 81 | ; Loop thru mult Contact segs | 
|---|
|  | 82 | S CNCT=0 | 
|---|
|  | 83 | F  S CNCT=$O(^IBCN(365,IEN,3,CNCT)) Q:'CNCT  D | 
|---|
|  | 84 | .  S RPTDATA(3,CNCT)=$G(^IBCN(365,IEN,3,CNCT,0)) | 
|---|
|  | 85 | .  ; Disp. blank if NOT SPECIFIED | 
|---|
|  | 86 | .  I $P(RPTDATA(3,CNCT),U)="NOT SPECIFIED" S $P(RPTDATA(3,CNCT),U)="" | 
|---|
|  | 87 | .  ; Comm Qual #1-3 | 
|---|
|  | 88 | .  F II=1:1:3 D | 
|---|
|  | 89 | .  . S CNPTR=$$X12^IBCNERP2(365.021,$P(RPTDATA(3,CNCT),U,II*2)) | 
|---|
|  | 90 | .  . I CNPTR'="" S $P(RPTDATA(3,CNCT),U,II*2)=CNPTR_": "_$P(RPTDATA(3,CNCT),U,II*2+1),$P(RPTDATA(3,CNCT),U,II*2+1)="" | 
|---|
|  | 91 | ; | 
|---|
|  | 92 | ; Error Txt | 
|---|
|  | 93 | S ERRTEXT=$G(^IBCN(365,IEN,4)) | 
|---|
|  | 94 | ; Error text shd be flagged as Undetermined - no EC flg sent | 
|---|
|  | 95 | I IIVSTAT="" S (IIVSTAT,RPTDATA(2,0))="U" | 
|---|
|  | 96 | I ERRTEXT="" G FUTDT | 
|---|
|  | 97 | D FSTRNG^IBJU1(ERRTEXT,60,.IBERR) | 
|---|
|  | 98 | ; Loop thru text (60 chars) | 
|---|
|  | 99 | S II=0 | 
|---|
|  | 100 | F  S II=$O(IBERR(II)) Q:'II  I $G(IBERR(II))'="" D | 
|---|
|  | 101 | .  S RPTDATA(4,II)=$G(IBERR(II)) | 
|---|
|  | 102 | FUTDT I TQIEN D  ; If there is a future date, display it | 
|---|
|  | 103 | . S FUTDT=$P($G(^IBCN(365.1,TQIEN,0)),U,9) Q:FUTDT="" | 
|---|
|  | 104 | . S II=$O(RPTDATA(5,""),-1)+1 | 
|---|
|  | 105 | . S RPTDATA(5,II)=" ",II=II+1 | 
|---|
|  | 106 | . S RPTDATA(5,II)="Inquiry will be automatically resubmitted on "_$$FMTE^XLFDT(FUTDT,"5Z")_"." | 
|---|
|  | 107 | ; | 
|---|
|  | 108 | GETDATX ; GETDATA exit point | 
|---|
|  | 109 | Q | 
|---|
|  | 110 | ; | 
|---|
|  | 111 | ; This tag is only called from IBCNERP3 | 
|---|
|  | 112 | ; | 
|---|
|  | 113 | DATA(DISPDATA)  ;  Build disp lines | 
|---|
|  | 114 | N LCT,EBCT,CT,SEGCT,ITEM,CT2,NTCT,CNCT,ERCT,RPTDATA | 
|---|
|  | 115 | ; Merge into local array | 
|---|
|  | 116 | ;M RPTDATA=^TMP($J,RTN,SORT1,SORT2,CNT) | 
|---|
|  | 117 | N %X,%Y | 
|---|
|  | 118 | S %X="^TMP($J,RTN,SORT1,SORT2,CNT," | 
|---|
|  | 119 | S %Y="RPTDATA(" | 
|---|
|  | 120 | I $D(^TMP($J,RTN,SORT1,SORT2,CNT))#10=1 S RPTDATA=^TMP($J,RTN,SORT1,SORT2,CNT) | 
|---|
|  | 121 | D %XY^%RCR K %X,%Y | 
|---|
|  | 122 | ; Build | 
|---|
|  | 123 | S LCT=1,DISPDATA(LCT)=$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.01),17,"R")_$P(RPTDATA(1),U,1) | 
|---|
|  | 124 | S LCT=LCT+1,DISPDATA(LCT)=$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.05),17,"R")_$$FO^IBCNEUT1($P(RPTDATA(1),U,5),20)_$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.02),22,"R")_$P(RPTDATA(1),U,2) | 
|---|
|  | 125 | S LCT=LCT+1,DISPDATA(LCT)=$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.03),17,"R")_$$FO^IBCNEUT1($P(RPTDATA(1),U,3),20)_$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.04),22,"R")_$P(RPTDATA(1),U,4) | 
|---|
|  | 126 | S LCT=LCT+1,DISPDATA(LCT)=$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.06),17,"R")_$$FO^IBCNEUT1($P(RPTDATA(1),U,6),20)_$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.07),22,"R")_$P(RPTDATA(1),U,7) | 
|---|
|  | 127 | S LCT=LCT+1,DISPDATA(LCT)=$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.08),17,"R")_$$FO^IBCNEUT1($P(RPTDATA(1),U,8),20)_$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.09),22,"R")_$P(RPTDATA(1),U,9) | 
|---|
|  | 128 | S LCT=LCT+1,DISPDATA(LCT)=$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.18),17,"R")_$$FO^IBCNEUT1($P(RPTDATA(1),U,18),20)_$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.13),22,"R")_$P(RPTDATA(1),U,13) | 
|---|
|  | 129 | S LCT=LCT+1,DISPDATA(LCT)=$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.1),17,"R")_$$FO^IBCNEUT1($P(RPTDATA(1),U,10),20)_$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.16),22,"R")_$P(RPTDATA(1),U,16) | 
|---|
|  | 130 | S LCT=LCT+1,DISPDATA(LCT)=$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.11),17,"R")_$$FO^IBCNEUT1($P(RPTDATA(1),U,11),20)_$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.17),22,"R")_$P(RPTDATA(1),U,17) | 
|---|
|  | 131 | S LCT=LCT+1,DISPDATA(LCT)=$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.12),17,"R")_$$FO^IBCNEUT1($P(RPTDATA(1),U,12),20)_$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.19),22,"R")_$P(RPTDATA(1),U,19) | 
|---|
|  | 132 | S LCT=LCT+1,DISPDATA(LCT)=$$FO^IBCNEUT1($$LBL^IBCNERP2(365,.07),17,"R")_$$FO^IBCNEUT1($P(RPTDATA(0),U,7),20)_$$FO^IBCNEUT1($$LBL^IBCNERP2(365,.09),22,"R")_$P(RPTDATA(0),U,9) | 
|---|
|  | 133 | S LCT=LCT+1,DISPDATA(LCT)=$$FO^IBCNEUT1($$LBL^IBCNERP2(365,1.2),17,"R")_$$FO^IBCNEUT1($P(RPTDATA(1),U,20),20) | 
|---|
|  | 134 | S LCT=LCT+1 | 
|---|
|  | 135 | ; Elig/Ben - added sorted EB notes to DISPDATA and update LCT (line ct) | 
|---|
|  | 136 | D EBDISP^IBCNERPA(.RPTDATA,.DISPDATA,.LCT) | 
|---|
|  | 137 | ; | 
|---|
|  | 138 | ; Contacts | 
|---|
|  | 139 | CONT S CNCT=+$O(RPTDATA(3,""),-1) I 'CNCT G ERR | 
|---|
|  | 140 | S DISPDATA(LCT)="",LCT=LCT+1,DISPDATA(LCT)="Contact Information:",LCT=LCT+1 | 
|---|
|  | 141 | ; Build | 
|---|
|  | 142 | F CT=1:1:CNCT D | 
|---|
|  | 143 | . S DISPDATA(LCT)="",LCT=LCT+1,DISPDATA(LCT)=" " | 
|---|
|  | 144 | . S SEGCT=$L(RPTDATA(3,CT),U) | 
|---|
|  | 145 | . F CT2=1:1:SEGCT S ITEM=$P(RPTDATA(3,CT),U,CT2) I $L(ITEM)>0 D | 
|---|
|  | 146 | . . I $L(ITEM)+$L(DISPDATA(LCT))>74 S LCT=LCT+1,DISPDATA(LCT)=" "_ITEM Q | 
|---|
|  | 147 | . . I DISPDATA(LCT)'=" " S DISPDATA(LCT)=DISPDATA(LCT)_",  "_ITEM Q | 
|---|
|  | 148 | . . S DISPDATA(LCT)=" "_ITEM | 
|---|
|  | 149 | . S LCT=LCT+1 | 
|---|
|  | 150 | ; Err Info | 
|---|
|  | 151 | ERR I $P(RPTDATA(1),U,14)="",$P(RPTDATA(1),U,15)="",'$O(RPTDATA(4,""),-1) G DATAX | 
|---|
|  | 152 | S DISPDATA(LCT)="",LCT=LCT+1 | 
|---|
|  | 153 | S DISPDATA(LCT)="Error Information:",LCT=LCT+1 | 
|---|
|  | 154 | S DISPDATA(LCT)="",LCT=LCT+1 | 
|---|
|  | 155 | I $P(RPTDATA(1),U,14)'="" D | 
|---|
|  | 156 | . ; Split text, if necessary | 
|---|
|  | 157 | . N IBERR,IBTOT,IBCT | 
|---|
|  | 158 | . D FSTRNG^IBJU1($P(RPTDATA(1),U,14),60,.IBERR) | 
|---|
|  | 159 | . S IBTOT=$O(IBERR(""),-1) | 
|---|
|  | 160 | . F IBCT=1:1:IBTOT S DISPDATA(LCT)=" "_$$FO^IBCNEUT1($S(IBCT=1:$$LBL^IBCNERP2(365,1.14),1:" "),17,"R")_$G(IBERR(IBCT)),LCT=LCT+1 | 
|---|
|  | 161 | I $P(RPTDATA(1),U,15)'="" D | 
|---|
|  | 162 | . ; Split text, if necessary | 
|---|
|  | 163 | . N IBERR,IBTOT,IBCT | 
|---|
|  | 164 | . D FSTRNG^IBJU1($P(RPTDATA(1),U,15),60,.IBERR) | 
|---|
|  | 165 | . S IBTOT=$O(IBERR(""),-1) | 
|---|
|  | 166 | . F IBCT=1:1:IBTOT S DISPDATA(LCT)=" "_$$FO^IBCNEUT1($S(IBCT=1:$$LBL^IBCNERP2(365,1.15),1:" "),17,"R")_$G(IBERR(IBCT)),LCT=LCT+1 | 
|---|
|  | 167 | ; Disp Err Txt | 
|---|
|  | 168 | F CT=1:1:+$O(RPTDATA(4,""),-1) D | 
|---|
|  | 169 | . I CT=1 S DISPDATA(LCT)=" "_$$FO^IBCNEUT1($$LBL^IBCNERP2(365,4.01),17,"R")_$G(RPTDATA(4,CT)),LCT=LCT+1 Q | 
|---|
|  | 170 | . S DISPDATA(LCT)=" "_$$FO^IBCNEUT1("",17,"R")_$G(RPTDATA(4,CT)),LCT=LCT+1 | 
|---|
|  | 171 | DATAX ; | 
|---|
|  | 172 | ; Disp Future Date and Misc. Comments | 
|---|
|  | 173 | I $O(RPTDATA(5,0))'="" D | 
|---|
|  | 174 | . F CT=1:1:+$O(RPTDATA(5,""),-1) D | 
|---|
|  | 175 | .. S DISPDATA(LCT)=" "_$$FO^IBCNEUT1("",7,"R")_$G(RPTDATA(5,CT)),LCT=LCT+1 | 
|---|
|  | 176 | ; | 
|---|
|  | 177 | Q | 
|---|