| 1 | IBCEDS  ;ALB/ESG - EDI CLAIM STATUS REPORT - SELECTION ;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 | EN      ; entry point
 | 
|---|
| 8 |         ;
 | 
|---|
| 9 |         NEW STOP,IBMETHOD,IBSORT1,IBSORT2,IBSORT3,IBSORTOR
 | 
|---|
| 10 |         S STOP=0
 | 
|---|
| 11 |         K ^TMP($J,"IBCEDS")
 | 
|---|
| 12 |         W @IOF,!,"EDI Claim Status Report"
 | 
|---|
| 13 |         ;
 | 
|---|
| 14 | DS10    D CLAIM I STOP G:$$STOP EX G DS10
 | 
|---|
| 15 |         I IBMETHOD="C" G DS70   ; skip down to the Sort questions
 | 
|---|
| 16 | DS20    D DIV I STOP G:$$STOP EX G DS10
 | 
|---|
| 17 | DS30    D PAYER I STOP G:$$STOP EX G DS20
 | 
|---|
| 18 | DS40    D TXDATE I STOP G:$$STOP EX G DS30
 | 
|---|
| 19 | DS50    D EDISTAT I STOP G:$$STOP EX G DS40
 | 
|---|
| 20 | DS60    D CANCEL I STOP G:$$STOP EX G DS50
 | 
|---|
| 21 | DS70    D SORT I STOP G:$$STOP EX G:IBMETHOD="C" DS10 G DS60
 | 
|---|
| 22 | DS80    D DEVICE I STOP G:$$STOP EX G DS70
 | 
|---|
| 23 |         ;
 | 
|---|
| 24 | EX      ; exit point
 | 
|---|
| 25 |         Q
 | 
|---|
| 26 |         ;
 | 
|---|
| 27 | STOP()  ; Determine if user wants to exit out of the whole option
 | 
|---|
| 28 |         ; 1=yes, get out entirely
 | 
|---|
| 29 |         ; 0=no, just go back to the previous question
 | 
|---|
| 30 |         N DIR,X,Y,DIRUT
 | 
|---|
| 31 |         ;
 | 
|---|
| 32 |         W !
 | 
|---|
| 33 |         S DIR(0)="Y"
 | 
|---|
| 34 |         S DIR("A")="Do you want to exit out of this option entirely"
 | 
|---|
| 35 |         S DIR("B")="YES"
 | 
|---|
| 36 |         S DIR("?",1)="  Enter YES to immediately exit out of this option."
 | 
|---|
| 37 |         S DIR("?")="  Enter NO to return to the previous question."
 | 
|---|
| 38 |         D ^DIR K DIR
 | 
|---|
| 39 |         I $D(DIRUT) S (STOP,Y)=1 G STOPX
 | 
|---|
| 40 |         I 'Y S STOP=0
 | 
|---|
| 41 |         ;
 | 
|---|
| 42 | STOPX   ; STOP exit pt
 | 
|---|
| 43 |         Q Y
 | 
|---|
| 44 |         ;
 | 
|---|
| 45 | CLAIM   ; enter in multiple claim#'s or generate a report
 | 
|---|
| 46 |         NEW DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT,IBDONE,Z
 | 
|---|
| 47 | CLM1    ;
 | 
|---|
| 48 |         W !!,"CLAIM SELECTION METHOD"
 | 
|---|
| 49 |         K ^TMP($J,"IBCEDS","CLAIM") S IBMETHOD=""
 | 
|---|
| 50 |         S DIR(0)="SA^C:Select Specific Claims;R:Regular Selection Criteria"
 | 
|---|
| 51 |         S DIR("A")="Method to Select Claims: "
 | 
|---|
| 52 |         S DIR("B")="Regular Selection Criteria"
 | 
|---|
| 53 |         D ^DIR K DIR
 | 
|---|
| 54 |         I $D(DIRUT) S STOP=1 G CLAIMX
 | 
|---|
| 55 |         S IBMETHOD=Y
 | 
|---|
| 56 |         I IBMETHOD="R" K ^TMP($J,"IBCEDS","CLAIM") G CLAIMX   ; regular selection method
 | 
|---|
| 57 |         ;
 | 
|---|
| 58 |         ; select specific claims
 | 
|---|
| 59 |         ;
 | 
|---|
| 60 |         W !
 | 
|---|
| 61 |         S IBDONE=0
 | 
|---|
| 62 |         F  D  Q:IBDONE!STOP
 | 
|---|
| 63 |         . S DIR(0)="PAO^364:AEMQZ"
 | 
|---|
| 64 |         . S DIR("S")="I '$O(^IBA(364,""B"",+$G(^(0)),Y))"   ; prevent multiple 364 entries from listing
 | 
|---|
| 65 |         . S DIR("A")="   Select a Claim: "
 | 
|---|
| 66 |         . I $O(^TMP($J,"IBCEDS","CLAIM","")) S DIR("A")="   Select Another Claim: "
 | 
|---|
| 67 |         . D ^DIR K DIR
 | 
|---|
| 68 |         . I $D(DUOUT)!$D(DTOUT) S STOP=1 Q    ; up arrow or timeout
 | 
|---|
| 69 |         . I +Y'>0 S IBDONE=1 Q                ; null response
 | 
|---|
| 70 |         . S Z=$G(^IBA(364,+Y,0))
 | 
|---|
| 71 |         . I $P(Z,U,7) W *7,!!?3,"Test Claim Transmissions are not Allowed.",! Q
 | 
|---|
| 72 |         . I $P(Z,U,3)="X" W *7,!!?3,"This Claim is still in a READY FOR EXTRACT status.",! Q
 | 
|---|
| 73 |         . I '$P(Z,U,2) W *7,!!?3,"This Claim has no Batch#.",! Q
 | 
|---|
| 74 |         . I '$P(Z,U,1) W *7,!!?3,"This Claim is Corrupted.",! Q
 | 
|---|
| 75 |         . ;
 | 
|---|
| 76 |         . S ^TMP($J,"IBCEDS","CLAIM",+Z)=+Y
 | 
|---|
| 77 |         . Q
 | 
|---|
| 78 |         ;
 | 
|---|
| 79 |         I STOP G CLAIMX
 | 
|---|
| 80 |         ;
 | 
|---|
| 81 |         I '$O(^TMP($J,"IBCEDS","CLAIM","")) D  G CLM1
 | 
|---|
| 82 |         . W *7,!!?3,"No claims have been selected.  Please try again."
 | 
|---|
| 83 |         . Q
 | 
|---|
| 84 |         ;
 | 
|---|
| 85 | CLAIMX  ;
 | 
|---|
| 86 |         Q
 | 
|---|
| 87 |         ;
 | 
|---|
| 88 | DIV     ; division selection
 | 
|---|
| 89 |         NEW DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT,IBDONE,DIC
 | 
|---|
| 90 | DV1     ;
 | 
|---|
| 91 |         K ^TMP($J,"IBCEDS","DIV")
 | 
|---|
| 92 |         W !!,"DIVISION SELECTION"
 | 
|---|
| 93 |         S DIR(0)="SA^A:All Divisions;S:Selected Divisions"
 | 
|---|
| 94 |         S DIR("A")="Include All Divisions or Selected Divisions? "
 | 
|---|
| 95 |         S DIR("B")="All Divisions"
 | 
|---|
| 96 |         D ^DIR K DIR
 | 
|---|
| 97 |         I $D(DIRUT) S STOP=1 G DIVX
 | 
|---|
| 98 |         I Y="A" K ^TMP($J,"IBCEDS","DIV") G DIVX
 | 
|---|
| 99 |         ;
 | 
|---|
| 100 |         W !
 | 
|---|
| 101 |         S IBDONE=0
 | 
|---|
| 102 |         F  D  Q:IBDONE!STOP
 | 
|---|
| 103 |         . S DIC=40.8,DIC(0)="AEMQ",DIC("A")="   Select Division: "
 | 
|---|
| 104 |         . I $O(^TMP($J,"IBCEDS","DIV","")) S DIC("A")="   Select Another Division: "
 | 
|---|
| 105 |         . D ^DIC K DIC                       ; lookup
 | 
|---|
| 106 |         . I $D(DUOUT)!$D(DTOUT) S STOP=1 Q   ; up arrow or timeout
 | 
|---|
| 107 |         . I +Y'>0 S IBDONE=1 Q               ; user is done
 | 
|---|
| 108 |         . S ^TMP($J,"IBCEDS","DIV",+Y)=$P(Y,U,2)
 | 
|---|
| 109 |         . Q
 | 
|---|
| 110 |         ;
 | 
|---|
| 111 |         I STOP G DIVX
 | 
|---|
| 112 |         ;
 | 
|---|
| 113 |         I '$O(^TMP($J,"IBCEDS","DIV","")) D  G DV1
 | 
|---|
| 114 |         . W *7,!!?3,"No divisions have been selected.  Please try again."
 | 
|---|
| 115 |         . Q
 | 
|---|
| 116 |         ;
 | 
|---|
| 117 | DIVX    ;
 | 
|---|
| 118 |         Q
 | 
|---|
| 119 |         ;
 | 
|---|
| 120 | PAYER   ; payer selection
 | 
|---|
| 121 |         NEW IBPAYER,DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT,IBDONE,DIC,EDI,PROF,INST
 | 
|---|
| 122 | PY1     ;
 | 
|---|
| 123 |         K ^TMP($J,"IBCEDS","INS")
 | 
|---|
| 124 |         W !!,"PAYER SELECTION"
 | 
|---|
| 125 |         S IBPAYER=""
 | 
|---|
| 126 |         S DIR(0)="SA^A:All Payers;S:Selected Payers"
 | 
|---|
| 127 |         S DIR("A")="Include All Payers or Selected Payers? "
 | 
|---|
| 128 |         S DIR("B")="All Payers"
 | 
|---|
| 129 |         D ^DIR K DIR
 | 
|---|
| 130 |         I $D(DIRUT) S STOP=1 G PAYERX
 | 
|---|
| 131 |         I Y="A" K ^TMP($J,"IBCEDS","INS") G PAYERX
 | 
|---|
| 132 |         W !
 | 
|---|
| 133 |         S DIR(0)="Y"
 | 
|---|
| 134 |         S DIR("A")="   Include all payers with the same electronic Payer ID"
 | 
|---|
| 135 |         S DIR("B")="Yes"
 | 
|---|
| 136 |         D ^DIR K DIR
 | 
|---|
| 137 |         I $D(DIRUT) S STOP=1 G PAYERX
 | 
|---|
| 138 |         S IBPAYER=Y
 | 
|---|
| 139 |         W !
 | 
|---|
| 140 |         ;
 | 
|---|
| 141 |         S IBDONE=0
 | 
|---|
| 142 |         F  D  Q:IBDONE!STOP
 | 
|---|
| 143 |         . S DIC=36,DIC(0)="AEMQ",DIC("A")="   Select Insurance Company: "
 | 
|---|
| 144 |         . I $O(^TMP($J,"IBCEDS","INS",1,"")) S DIC("A")="   Select Another Insurance Company: "
 | 
|---|
| 145 |         . S DIC("W")="D INSLIST^IBCEMCA(Y)"
 | 
|---|
| 146 |         . D ^DIC K DIC                       ; lookup
 | 
|---|
| 147 |         . I $D(DUOUT)!$D(DTOUT) S STOP=1 Q   ; up arrow or timeout
 | 
|---|
| 148 |         . I +Y'>0 S IBDONE=1 Q               ; user is done
 | 
|---|
| 149 |         . S ^TMP($J,"IBCEDS","INS",1,+Y)=$P(Y,U,2)
 | 
|---|
| 150 |         . I 'IBPAYER Q
 | 
|---|
| 151 |         . S EDI=$$UP^XLFSTR($G(^DIC(36,+Y,3)))
 | 
|---|
| 152 |         . S PROF=$P(EDI,U,2)
 | 
|---|
| 153 |         . S INST=$P(EDI,U,4)
 | 
|---|
| 154 |         . I PROF'="",PROF'["PRNT" S ^TMP($J,"IBCEDS","INS",2,PROF,+Y)=""
 | 
|---|
| 155 |         . I INST'="",INST'["PRNT" S ^TMP($J,"IBCEDS","INS",2,INST,+Y)=""
 | 
|---|
| 156 |         . Q
 | 
|---|
| 157 |         ;
 | 
|---|
| 158 |         I STOP G PAYERX
 | 
|---|
| 159 |         ;
 | 
|---|
| 160 |         I '$O(^TMP($J,"IBCEDS","INS",1,"")) D  G PY1
 | 
|---|
| 161 |         . W *7,!!?3,"No payers have been selected.  Please try again."
 | 
|---|
| 162 |         . Q
 | 
|---|
| 163 |         ;
 | 
|---|
| 164 | PAYERX  ;
 | 
|---|
| 165 |         Q
 | 
|---|
| 166 |         ;
 | 
|---|
| 167 | TXDATE  ; date range for the last transmission date
 | 
|---|
| 168 |         NEW DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT,TDEF
 | 
|---|
| 169 |         K ^TMP($J,"IBCEDS","ALTDT")
 | 
|---|
| 170 |         W !!,"LAST TRANSMIT DATE RANGE SELECTION"
 | 
|---|
| 171 |         S DIR(0)="DAO^:"_DT_":AEX"
 | 
|---|
| 172 |         S DIR("A")="   Start with Date Last Transmitted: "
 | 
|---|
| 173 |         S DIR("B")=$$FMTE^XLFDT($$FMADD^XLFDT(DT,-14),"5Z")
 | 
|---|
| 174 |         D ^DIR K DIR
 | 
|---|
| 175 |         I $D(DIRUT)!'Y S STOP=1 G TXDATEX
 | 
|---|
| 176 |         S $P(^TMP($J,"IBCEDS","ALTDT"),U,1)=Y
 | 
|---|
| 177 |         ;
 | 
|---|
| 178 |         S DIR(0)="DAO^"_Y_":"_DT_":AEX"
 | 
|---|
| 179 |         S DIR("A")="   Go to Date Last Transmitted: "
 | 
|---|
| 180 |         S TDEF=$$FMADD^XLFDT(DT,-7)       ; normal to date default
 | 
|---|
| 181 |         I TDEF'>Y S TDEF=DT               ; if to date default is on or before from date, set default=today
 | 
|---|
| 182 |         S DIR("B")=$$FMTE^XLFDT(TDEF,"5Z")
 | 
|---|
| 183 |         D ^DIR K DIR
 | 
|---|
| 184 |         I $D(DIRUT)!'Y S STOP=1 G TXDATEX
 | 
|---|
| 185 |         S $P(^TMP($J,"IBCEDS","ALTDT"),U,2)=Y
 | 
|---|
| 186 | TXDATEX ;
 | 
|---|
| 187 |         Q
 | 
|---|
| 188 |         ;
 | 
|---|
| 189 | EDISTAT ; selection of one or all of the EDI claim statuses
 | 
|---|
| 190 |         NEW DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT,IBDONE,EDILST
 | 
|---|
| 191 | EDI1    ;
 | 
|---|
| 192 |         W !!,"EDI CLAIM STATUS SELECTION"
 | 
|---|
| 193 |         K ^TMP($J,"IBCEDS","EDI")
 | 
|---|
| 194 |         S DIR(0)="SA^A:All EDI Statuses;S:Selected EDI Statuses"
 | 
|---|
| 195 |         S DIR("A")="Include All EDI Statuses or Selected EDI Statuses? "
 | 
|---|
| 196 |         S DIR("B")="Selected EDI Statuses"
 | 
|---|
| 197 |         D ^DIR K DIR
 | 
|---|
| 198 |         I $D(DIRUT) S STOP=1 G EDISTATX
 | 
|---|
| 199 |         I Y="A" K ^TMP($J,"IBCEDS","EDI") G EDISTATX
 | 
|---|
| 200 |         ;
 | 
|---|
| 201 |         W !
 | 
|---|
| 202 |         K EDILST D FIELD^DID(364,.03,,"POINTER","EDILST")
 | 
|---|
| 203 |         S IBDONE=0
 | 
|---|
| 204 |         F  D  Q:IBDONE!STOP
 | 
|---|
| 205 |         . S DIR(0)="364,.03AO"
 | 
|---|
| 206 |         . I $G(EDILST("POINTER"))'="" S DIR(0)="SAO^"_EDILST("POINTER")
 | 
|---|
| 207 |         . S DIR("A")="   Select Status: "
 | 
|---|
| 208 |         . I $O(^TMP($J,"IBCEDS","EDI",""))'="" S DIR("A")="   Select Another Status: "
 | 
|---|
| 209 |         . I $O(^TMP($J,"IBCEDS","EDI",""))="" S DIR("B")="RECEIVED IN AUSTIN"
 | 
|---|
| 210 |         . D ^DIR K DIR
 | 
|---|
| 211 |         . I $D(DUOUT)!$D(DTOUT) S STOP=1 Q   ; up arrow or timeout
 | 
|---|
| 212 |         . I Y="" S IBDONE=1 Q
 | 
|---|
| 213 |         . S ^TMP($J,"IBCEDS","EDI",Y)=$G(Y(0))
 | 
|---|
| 214 |         . Q
 | 
|---|
| 215 |         ;
 | 
|---|
| 216 |         I STOP G EDISTATX
 | 
|---|
| 217 |         ;
 | 
|---|
| 218 |         I $O(^TMP($J,"IBCEDS","EDI",""))="" D  G EDI1
 | 
|---|
| 219 |         . W *7,!!?3,"No EDI statuses have been selected.  Please try again."
 | 
|---|
| 220 |         . Q
 | 
|---|
| 221 |         ;
 | 
|---|
| 222 | EDISTATX        ;
 | 
|---|
| 223 |         Q
 | 
|---|
| 224 |         ;
 | 
|---|
| 225 | CANCEL  ; Include cancelled claims?
 | 
|---|
| 226 |         W !!,"CANCELLED CLAIM SELECTION"
 | 
|---|
| 227 |         K ^TMP($J,"IBCEDS","CANCEL")
 | 
|---|
| 228 |         S DIR(0)="Y"
 | 
|---|
| 229 |         S DIR("A")="Include Cancelled Claims"
 | 
|---|
| 230 |         S DIR("B")="YES"
 | 
|---|
| 231 |         S DIR("?",1)="  Enter No to omit claims that have been cancelled in IB and/or AR."
 | 
|---|
| 232 |         S DIR("?")="  Enter Yes to include claims that have been cancelled in IB and/or AR."
 | 
|---|
| 233 |         D ^DIR K DIR
 | 
|---|
| 234 |         I $D(DIRUT) S STOP=1 G CANCELX
 | 
|---|
| 235 |         S ^TMP($J,"IBCEDS","CANCEL")=Y
 | 
|---|
| 236 | CANCELX ;
 | 
|---|
| 237 |         Q
 | 
|---|
| 238 |         ;
 | 
|---|
| 239 | SORT    ; Gather the primary, secondary, and tert sorts
 | 
|---|
| 240 |         W @IOF
 | 
|---|
| 241 |         W !!,"SORT CRITERIA"
 | 
|---|
| 242 |         K IBSORTOR
 | 
|---|
| 243 |         D SORTSEL^IBCEDS1(1) I STOP G SORTX
 | 
|---|
| 244 |         D SORTSEL^IBCEDS1(2) I STOP G SORTX
 | 
|---|
| 245 |         I $G(IBSORT2)'="" D SORTSEL^IBCEDS1(3) I STOP G SORTX
 | 
|---|
| 246 | SORTX   ;
 | 
|---|
| 247 |         Q
 | 
|---|
| 248 |         ;
 | 
|---|
| 249 | DEVICE  ; Device selection
 | 
|---|
| 250 |         NEW ZTRTN,ZTDESC,ZTSAVE,POP
 | 
|---|
| 251 |         W !!!,"This report is 132 characters wide.  Please choose an appropriate device.",!
 | 
|---|
| 252 |         S ZTRTN="EN^IBCEDC"
 | 
|---|
| 253 |         S ZTDESC="COMPILE/PRINT EDI CLAIM STATUS DETAIL REPORT"
 | 
|---|
| 254 |         S ZTSAVE("IBMETHOD")=""
 | 
|---|
| 255 |         S ZTSAVE("IBSORT1")=""
 | 
|---|
| 256 |         S ZTSAVE("IBSORT2")=""
 | 
|---|
| 257 |         S ZTSAVE("IBSORT3")=""
 | 
|---|
| 258 |         S ZTSAVE("IBSORTOR")=""
 | 
|---|
| 259 |         S ZTSAVE("^TMP($J,""IBCEDS"",")=""
 | 
|---|
| 260 |         D EN^XUTMDEVQ(ZTRTN,ZTDESC,.ZTSAVE,"QM")
 | 
|---|
| 261 |         I POP S STOP=1
 | 
|---|
| 262 | DEVICEX ;
 | 
|---|
| 263 |         Q
 | 
|---|
| 264 |         ;
 | 
|---|