IBCEDS ;ALB/ESG - EDI CLAIM STATUS REPORT - SELECTION ;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 ; EN ; entry point ; NEW STOP,IBMETHOD,IBSORT1,IBSORT2,IBSORT3,IBSORTOR S STOP=0 K ^TMP($J,"IBCEDS") W @IOF,!,"EDI Claim Status Report" ; DS10 D CLAIM I STOP G:$$STOP EX G DS10 I IBMETHOD="C" G DS70 ; skip down to the Sort questions DS20 D DIV I STOP G:$$STOP EX G DS10 DS30 D PAYER I STOP G:$$STOP EX G DS20 DS40 D TXDATE I STOP G:$$STOP EX G DS30 DS50 D EDISTAT I STOP G:$$STOP EX G DS40 DS60 D CANCEL I STOP G:$$STOP EX G DS50 DS70 D SORT I STOP G:$$STOP EX G:IBMETHOD="C" DS10 G DS60 DS80 D DEVICE I STOP G:$$STOP EX G DS70 ; EX ; exit point Q ; STOP() ; Determine if user wants to exit out of the whole option ; 1=yes, get out entirely ; 0=no, just go back to the previous question N DIR,X,Y,DIRUT ; W ! S DIR(0)="Y" S DIR("A")="Do you want to exit out of this option entirely" S DIR("B")="YES" S DIR("?",1)=" Enter YES to immediately exit out of this option." S DIR("?")=" Enter NO to return to the previous question." D ^DIR K DIR I $D(DIRUT) S (STOP,Y)=1 G STOPX I 'Y S STOP=0 ; STOPX ; STOP exit pt Q Y ; CLAIM ; enter in multiple claim#'s or generate a report NEW DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT,IBDONE,Z CLM1 ; W !!,"CLAIM SELECTION METHOD" K ^TMP($J,"IBCEDS","CLAIM") S IBMETHOD="" S DIR(0)="SA^C:Select Specific Claims;R:Regular Selection Criteria" S DIR("A")="Method to Select Claims: " S DIR("B")="Regular Selection Criteria" D ^DIR K DIR I $D(DIRUT) S STOP=1 G CLAIMX S IBMETHOD=Y I IBMETHOD="R" K ^TMP($J,"IBCEDS","CLAIM") G CLAIMX ; regular selection method ; ; select specific claims ; W ! S IBDONE=0 F D Q:IBDONE!STOP . S DIR(0)="PAO^364:AEMQZ" . S DIR("S")="I '$O(^IBA(364,""B"",+$G(^(0)),Y))" ; prevent multiple 364 entries from listing . S DIR("A")=" Select a Claim: " . I $O(^TMP($J,"IBCEDS","CLAIM","")) S DIR("A")=" Select Another Claim: " . D ^DIR K DIR . I $D(DUOUT)!$D(DTOUT) S STOP=1 Q ; up arrow or timeout . I +Y'>0 S IBDONE=1 Q ; null response . S Z=$G(^IBA(364,+Y,0)) . I $P(Z,U,7) W *7,!!?3,"Test Claim Transmissions are not Allowed.",! Q . I $P(Z,U,3)="X" W *7,!!?3,"This Claim is still in a READY FOR EXTRACT status.",! Q . I '$P(Z,U,2) W *7,!!?3,"This Claim has no Batch#.",! Q . I '$P(Z,U,1) W *7,!!?3,"This Claim is Corrupted.",! Q . ; . S ^TMP($J,"IBCEDS","CLAIM",+Z)=+Y . Q ; I STOP G CLAIMX ; I '$O(^TMP($J,"IBCEDS","CLAIM","")) D G CLM1 . W *7,!!?3,"No claims have been selected. Please try again." . Q ; CLAIMX ; Q ; DIV ; division selection NEW DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT,IBDONE,DIC DV1 ; K ^TMP($J,"IBCEDS","DIV") W !!,"DIVISION SELECTION" S DIR(0)="SA^A:All Divisions;S:Selected Divisions" S DIR("A")="Include All Divisions or Selected Divisions? " S DIR("B")="All Divisions" D ^DIR K DIR I $D(DIRUT) S STOP=1 G DIVX I Y="A" K ^TMP($J,"IBCEDS","DIV") G DIVX ; W ! S IBDONE=0 F D Q:IBDONE!STOP . S DIC=40.8,DIC(0)="AEMQ",DIC("A")=" Select Division: " . I $O(^TMP($J,"IBCEDS","DIV","")) S DIC("A")=" Select Another Division: " . D ^DIC K DIC ; lookup . I $D(DUOUT)!$D(DTOUT) S STOP=1 Q ; up arrow or timeout . I +Y'>0 S IBDONE=1 Q ; user is done . S ^TMP($J,"IBCEDS","DIV",+Y)=$P(Y,U,2) . Q ; I STOP G DIVX ; I '$O(^TMP($J,"IBCEDS","DIV","")) D G DV1 . W *7,!!?3,"No divisions have been selected. Please try again." . Q ; DIVX ; Q ; PAYER ; payer selection NEW IBPAYER,DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT,IBDONE,DIC,EDI,PROF,INST PY1 ; K ^TMP($J,"IBCEDS","INS") W !!,"PAYER SELECTION" S IBPAYER="" S DIR(0)="SA^A:All Payers;S:Selected Payers" S DIR("A")="Include All Payers or Selected Payers? " S DIR("B")="All Payers" D ^DIR K DIR I $D(DIRUT) S STOP=1 G PAYERX I Y="A" K ^TMP($J,"IBCEDS","INS") G PAYERX W ! S DIR(0)="Y" S DIR("A")=" Include all payers with the same electronic Payer ID" S DIR("B")="Yes" D ^DIR K DIR I $D(DIRUT) S STOP=1 G PAYERX S IBPAYER=Y W ! ; S IBDONE=0 F D Q:IBDONE!STOP . S DIC=36,DIC(0)="AEMQ",DIC("A")=" Select Insurance Company: " . I $O(^TMP($J,"IBCEDS","INS",1,"")) S DIC("A")=" Select Another Insurance Company: " . S DIC("W")="D INSLIST^IBCEMCA(Y)" . D ^DIC K DIC ; lookup . I $D(DUOUT)!$D(DTOUT) S STOP=1 Q ; up arrow or timeout . I +Y'>0 S IBDONE=1 Q ; user is done . S ^TMP($J,"IBCEDS","INS",1,+Y)=$P(Y,U,2) . I 'IBPAYER Q . S EDI=$$UP^XLFSTR($G(^DIC(36,+Y,3))) . S PROF=$P(EDI,U,2) . S INST=$P(EDI,U,4) . I PROF'="",PROF'["PRNT" S ^TMP($J,"IBCEDS","INS",2,PROF,+Y)="" . I INST'="",INST'["PRNT" S ^TMP($J,"IBCEDS","INS",2,INST,+Y)="" . Q ; I STOP G PAYERX ; I '$O(^TMP($J,"IBCEDS","INS",1,"")) D G PY1 . W *7,!!?3,"No payers have been selected. Please try again." . Q ; PAYERX ; Q ; TXDATE ; date range for the last transmission date NEW DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT,TDEF K ^TMP($J,"IBCEDS","ALTDT") W !!,"LAST TRANSMIT DATE RANGE SELECTION" S DIR(0)="DAO^:"_DT_":AEX" S DIR("A")=" Start with Date Last Transmitted: " S DIR("B")=$$FMTE^XLFDT($$FMADD^XLFDT(DT,-14),"5Z") D ^DIR K DIR I $D(DIRUT)!'Y S STOP=1 G TXDATEX S $P(^TMP($J,"IBCEDS","ALTDT"),U,1)=Y ; S DIR(0)="DAO^"_Y_":"_DT_":AEX" S DIR("A")=" Go to Date Last Transmitted: " S TDEF=$$FMADD^XLFDT(DT,-7) ; normal to date default I TDEF'>Y S TDEF=DT ; if to date default is on or before from date, set default=today S DIR("B")=$$FMTE^XLFDT(TDEF,"5Z") D ^DIR K DIR I $D(DIRUT)!'Y S STOP=1 G TXDATEX S $P(^TMP($J,"IBCEDS","ALTDT"),U,2)=Y TXDATEX ; Q ; EDISTAT ; selection of one or all of the EDI claim statuses NEW DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT,IBDONE,EDILST EDI1 ; W !!,"EDI CLAIM STATUS SELECTION" K ^TMP($J,"IBCEDS","EDI") S DIR(0)="SA^A:All EDI Statuses;S:Selected EDI Statuses" S DIR("A")="Include All EDI Statuses or Selected EDI Statuses? " S DIR("B")="Selected EDI Statuses" D ^DIR K DIR I $D(DIRUT) S STOP=1 G EDISTATX I Y="A" K ^TMP($J,"IBCEDS","EDI") G EDISTATX ; W ! K EDILST D FIELD^DID(364,.03,,"POINTER","EDILST") S IBDONE=0 F D Q:IBDONE!STOP . S DIR(0)="364,.03AO" . I $G(EDILST("POINTER"))'="" S DIR(0)="SAO^"_EDILST("POINTER") . S DIR("A")=" Select Status: " . I $O(^TMP($J,"IBCEDS","EDI",""))'="" S DIR("A")=" Select Another Status: " . I $O(^TMP($J,"IBCEDS","EDI",""))="" S DIR("B")="RECEIVED IN AUSTIN" . D ^DIR K DIR . I $D(DUOUT)!$D(DTOUT) S STOP=1 Q ; up arrow or timeout . I Y="" S IBDONE=1 Q . S ^TMP($J,"IBCEDS","EDI",Y)=$G(Y(0)) . Q ; I STOP G EDISTATX ; I $O(^TMP($J,"IBCEDS","EDI",""))="" D G EDI1 . W *7,!!?3,"No EDI statuses have been selected. Please try again." . Q ; EDISTATX ; Q ; CANCEL ; Include cancelled claims? W !!,"CANCELLED CLAIM SELECTION" K ^TMP($J,"IBCEDS","CANCEL") S DIR(0)="Y" S DIR("A")="Include Cancelled Claims" S DIR("B")="YES" S DIR("?",1)=" Enter No to omit claims that have been cancelled in IB and/or AR." S DIR("?")=" Enter Yes to include claims that have been cancelled in IB and/or AR." D ^DIR K DIR I $D(DIRUT) S STOP=1 G CANCELX S ^TMP($J,"IBCEDS","CANCEL")=Y CANCELX ; Q ; SORT ; Gather the primary, secondary, and tert sorts W @IOF W !!,"SORT CRITERIA" K IBSORTOR D SORTSEL^IBCEDS1(1) I STOP G SORTX D SORTSEL^IBCEDS1(2) I STOP G SORTX I $G(IBSORT2)'="" D SORTSEL^IBCEDS1(3) I STOP G SORTX SORTX ; Q ; DEVICE ; Device selection NEW ZTRTN,ZTDESC,ZTSAVE,POP W !!!,"This report is 132 characters wide. Please choose an appropriate device.",! S ZTRTN="EN^IBCEDC" S ZTDESC="COMPILE/PRINT EDI CLAIM STATUS DETAIL REPORT" S ZTSAVE("IBMETHOD")="" S ZTSAVE("IBSORT1")="" S ZTSAVE("IBSORT2")="" S ZTSAVE("IBSORT3")="" S ZTSAVE("IBSORTOR")="" S ZTSAVE("^TMP($J,""IBCEDS"",")="" D EN^XUTMDEVQ(ZTRTN,ZTDESC,.ZTSAVE,"QM") I POP S STOP=1 DEVICEX ; Q ;