| [613] | 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 |         ;
 | 
|---|