Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: IBACCWLAIVIEW

IBACCWLAIVIEW.m

Go to the documentation of this file.
IBACCWLAIVIEW ;EDE/TPF - ACC (Automated Community Care) Encounters - Action Items related to Viewing Bill or Encounter data ; 12-SEP-2023
 ;;2.0;INTEGRATED BILLING;**770**;21-MAR-2024;Build 119
 ;;Per VA Directive 6402, this routine should not be modified.
 Q
 ;
 ;D VIEWSERCON^IBACCWLAI
 ;CALLED BY ACTION PROTOCOLS:
 ;IBACC WL IBACCCOMMON VIEW SERV CONNECTED
VIEWSERCON(IBDA) ;EP - VIEW SERVICE CONNECTED DATA
 N CNT,DFN,GREF,IBBILL,IBDATE,IBIFN,IBNAME,IBENCIFN,IBCLELIG
 ;
 S VALMSG="* = In progress| ! = Patient not in VistA |??=Help"
 ;
 I '$G(IBDA) N IBDA D SEL(.IBDA)
 ;
 I '$D(IBDA) S VALMBCK="R" Q
 ;
 I $G(IBDA(IBDA))["----------------------",'$O(IBDA(IBDA)) S VALMBCK="R" Q
 ;
 ;I VALMAR[("IBACCWLEE") D
 I $G(IBPARENT)=0 D  ;TPF;IB*2*770v38;EBILL-5485
 .S IBENCIFN=$G(@VALMAR@("IEN3649",1))
 .S IBIFN=$G(@VALMAR@("IEN399",1))
 E  D
 .S IBIFN=$G(@VALMAR@(IBDA,"IEN399",1))
 .S IBENCIFN=$G(@VALMAR@(IBDA,"IEN3649",1))
 ;
 I IBENCIFN,'$G(DFN) S DFN=$P($G(^IBA(364.9,IBENCIFN,2)),U)
 E  S DFN="NOT FOUND"
 ;
 ;TPF;IB*2*770v12;BEGIN EBILL-5131
 I IBIFN'="" D
 .S DFN=$P($G(^DGCR(399,+$G(IBIFN),0)),U,2)
 .S IBBILL=$P($G(^DGCR(399,IBIFN,0)),U)
 E  W !!,"This encounter does not have a K#."
 ;
 I '$G(DFN) D  Q
 .W !,"This encounter does not have a Patient record in VistA."
 .W !,"THIS ACTION CANNOT BE EXECUTED!!"
 .S DFN="NOT FOUND"
 .N DIR  ;TPF;IB*2*770v47;EBILL-6042
 .D PAUSE^VALM1
 .S VALMBCK="R"
 ;TPF;IB*2*770v25;BEGIN EBILL-5131
 ;
 W:$G(IBBILL)'="" !,"ACC ENCOUNTER/CLAIM "_IBBILL_" SELECTED" H 2
 W:$G(DFN) !,"PATIENT FOUND: ",$P($G(^DPT(DFN,0)),U)
 ;
 D EN^IBACCWLVS(DFN)
 S VALMBCK="R"
 ;
 Q
 ;
 ;D VIEWENCOUNTER^IBACCWLAI Gives user a view only screen that displays Encounter (#364.9) displayed on the Worklist
 ;CALLED BY ACTION PROTOCOLS:
 ;IBACC WL IBACCCOMMON VIEW ENCOUNTER
VIEWENCOUNTER ;EP - VIEW READABLE ACC ENCOUNTER. ISN'T THIS IN EE?
 N DFN,IBBILL,IBENCIFN,IBIFN,IBENCIEN
 N STOP  ;TPF;IB*2*770v53;EBILL-6203
 ;
 ;CHECK TO SEE IF USER ALREADY HAS INSTANTIATED VE
 ;TPF;IB*2*770v38;EBILL-5485
 ;BEGIN;TPF;BEGIN;IB*2*770v53;EBILL-6262
 I $G(SESSIONKEY)'="IBACCBILL" I $D(^TMP("IBACCWLVE",$J)) S VALMBCK="R" Q
 ;
 I $G(SESSIONKEY)="IBACCBILL" D  Q:$G(STOP)
 .I ($G(IBREGVE)=1),$D(^TMP("IBACCWLVE",$J)) S VALMBCK="R" S STOP=1 Q
 .I ($G(IBREGVE)=0),$D(^TMP("IBACCWLBILLVE",$J)) S VALMBCK="R" S STOP=1 Q
 ;END;TPF;BEGIN;IB*2*770v53;EBILL-6262
 ;
 S VALMSG="* = In progress| ! = Patient not in VistA |??=Help"
 ;
 I '$G(IBDA) N IBDA D SEL(.IBDA)
 ;
 I '$D(IBDA) S VALMBCK="R" Q
 ;
 I $G(IBDA(IBDA))["----------------------",'$O(IBDA(IBDA)) S VALMBCK="R" Q
 ;
 I $G(IBPARENT)=0 D  ;TPF;IB*2*770v38;EBILL-5485
 .S IBENCIFN=$G(@VALMAR@("IEN3649",1))
 .S IBIFN=$G(@VALMAR@("IEN399",1))
 E  D
 .S IBIFN=$G(@VALMAR@(IBDA,"IEN399",1))
 .S IBENCIFN=$G(@VALMAR@(IBDA,"IEN3649",1))
 ;
 I IBENCIFN S DFN=$P($G(^IBA(364.9,IBENCIFN,2)),U)
 E  S DFN="NOT FOUND"
 ;
 D FULL^VALM1
 ;
 ;RUR GETS VE PLUS ALL ACTIONS THEY HAVE ON EE
 ;WE COULD SPLIT THE FLOW HERE FOR TWO DIFFERENT VEs FOR RUR AND ALL OTHERS.
 ;OR SPLIT IT IN D EN^IBACCWLVE AND CALL A DIFFERENT LIST TEMPLATE THERE?
 ;I VALMAR[("IBACCWLRUR")!($G(IBFROMVALMDDF(1,"NAME"))[("RUR")) D EN^IBACCWLVERUR(.IBDA,.IBFROMVALMDDF) S VALMBCK="R" Q  ;TPF;IB*2*770v38;EBILL-5485
 ;
 ;BEGIN TPF;IB*2*770v38;EBILL-5485 ADDED BECAUSE VE IS ACCESSBLE FROM BOTH PARENT WL AND EE
 ;M IBFROMVALMDDF=VALMDDF   ;PASS THE COLUMN SPECS AND ORIGINATING DATA ARRAY FOR UPDATING WHEN ACTION DONE IN EE
 ;M IBFROMVALMDDF("HDR")=VALMHDR  ;TPF;IB*2*770v48;EBILL-6100 NOT USED
 ;S IBFROMVALMDDF(1,"NAME")=$G(NAME)
 ;S IBFROMVALMDDF(1,"VALMAR")=$G(VALMAR)
 I $G(IBPARENT) D   ;TPF;IB*2*770v49;EBILL-6100 THE PARENT COL DEFINITION SETS SHOULD ONLY OCCUR IF COMING IN FROM THE PARENT NOT A CHILD SCREEN
 .M IBFROMVALMDDF=VALMDDF
 .S IBFROMVALMDDF(1,"NAME")=$G(NAME)
 .S IBFROMVALMDDF(1,"VALMAR")=$G(VALMAR)
 M DETRETURN=ENCRETURN(IBDA)
 S PREVVALMAR=$P($NA(@VALMAR),")")_")"
 ;END TPF;IB*2*770v38;EBILL-5485
 ;
 ;TPF;IB*2*770v48;EBILL-6100 MOVED FROM ABOVE IBFROMVALMDDF SETTING 
 I VALMAR[("IBACCWLRUR")!($G(IBFROMVALMDDF(1,"NAME"))[("RUR")) D EN^IBACCWLVERUR(.IBDA,.IBFROMVALMDDF) S VALMBCK="R" Q  ;TPF;IB*2*770v38;EBILL-5485
 ;
 I $G(IBREGVE)'=1,($G(SESSIONKEY)="IBACCBILL") D EN^IBACCWLBILLVE S VALMBCK="R" Q  ;TPF;IB*2*770v53;EBILL-6203
 ;
 ;ALL OTHER WORKGROUPS USE THIS CALL FOR VIEW RAW X12 ENCOUNTER
 D EN^IBACCWLVE
 ;
 S IBICAMEFROMEE=1
 ;S IBACCWLBILLVELEV=1  ;TPF;IB*2*770v53;EBILL-6203;TPF;IB*2*770v62;EBILL-6615
 S VALMBCK="R"
 Q
 ;
 ;D REVSTATUS^IBACCWLAI
 ;CALLED BY ACTION PROTOCOLS:
 ;IBACC WL IBACCCOMMON REVIEW STATUS
REVSTATUS(IBDA) ;EP - REVIEW/EDIT ACC CLAIM STATUS
 N BATCHITEM,BATCHSTATUS,BATCHCOMMENT,CURASSIGGRP,DA,DIE,DR,IBDAIEN
 ;
 S VALMSG="* = In progress| ! = Patient not in VistA |??=Help"
 ;
 I '$G(IBDA) N IBDA D SEL(.IBDA,"L")
 ;
 I '$D(IBDA) S VALMBCK="R" Q
 ;
 I $G(IBDA(IBDA))["----------------------",'$O(IBDA(IBDA)) S VALMBCK="R" Q
 ;
 ;CHECK SELECTED RECORDS TO SEE IF THEY HAVE BEEN REASSIGNED. IF IN THE "UNAVAILABLE STATUS' REMOVE FROM BATCH
 D AVAILABLECHK^IBACCWLUTIL1(.IBDA)
 I '$D(IBDA) S VALMBCK="R" Q
 I IBDA("TOTAL")=1,('$D(IBDA(IBDA))) S VALMBCK="R" Q   ;TPF;IB*2*770v22;BEGIN EBILL-4920 CORRECTION TO ERROR RESOLUTION FOUND DURING EBILL-4055
 ;
 I IBDA("TOTAL")>1 S BATCHSTATUS=$$ASKSTATUS^IBACCWLUTIL1(1) I BATCHSTATUS=0 S VALMBCK="R" Q  ;GET STATUS THE USER WISHES TO APPLY TO THE BATCH. 1=REQUIRED
 ;
 W !!,"PROCESSING RECORD(S): " N CNT,IEN S IEN=0 F CNT=1:1 S IEN=$O(IBDA(IEN)) Q:'IEN  W $S(CNT'=1:",",1:"")_IEN
 ;
 S IBDAIEN=""
 F BATCHITEM=1:1 S IBDAIEN=$O(IBDA(IBDAIEN)) Q:'IBDAIEN  D
 .Q:$G(IBDA(IBDAIEN))["----------------------"
 .D REVSTATUSLOOP(.IBDAIEN,BATCHITEM,.BATCHCOMMENT,$G(BATCHSTATUS))
 ;
 S VALMBCK="R"  ;TPF;IB*2*770v10;EBILL-4490
 ;
 Q
 ;
REVSTATUSLOOP(IBDAIEN,BATCHITEM,BATCHCOMMENT,BATCHSTATUS) ;EP - LOOP REVSTATUS
 ;
 N ADDERR,ADDIENS,ADDFDA,ADDERR,CURASSIGGRP,CURINDICATOR,FROMSTATUS,TOSTATUS,IBIFN,IBENCIEN,DFN,IBBILL
 ;
 S VALMSG="* = In progress| ! = Patient not in VistA |??=Help"
 ;
 W !!,"PROCESSING RECORD: ",$G(IBDAIEN)
 ;
 I $G(IBPARENT)=0 D  ;TPF;IB*2*770v38;EBILL-5485
 .S IBENCIFN=$G(@VALMAR@("IEN3649",1))
 .S IBIFN=$G(@VALMAR@("IEN399",1))
 E  D
 .S IBIFN=$G(@VALMAR@(IBDAIEN,"IEN399",1))
 .S IBENCIFN=$G(@VALMAR@(IBDAIEN,"IEN3649",1))
 ;
 I IBENCIFN S DFN=$P($G(^IBA(364.9,IBENCIFN,2)),U)
 E  S DFN="NOT FOUND"
 ;
 I IBIFN'="" D
 .S DFN=$P($G(^DGCR(399,+$G(IBIFN),0)),U,2)
 .S IBBILL=$P($G(^DGCR(399,IBIFN,0)),U)
 E  D
 .W !!,"This encounter does not have a K#."
 W:$G(IBBILL)'="" !,"ACC CLAIM/BILL "_IBBILL_" SELECTED" H 2
 ;
 D FULL^VALM1
 S CURASSIGGRP=$$GET1^DIQ(364.9,IBENCIFN_",",3.01)
 S FROMSTATUS=$$GET1^DIQ(364.9,IBENCIFN_",",.16)
 ;
 S CURASSIGGRP=$$GET1^DIQ(364.9,IBENCIFN_",",3.01,"")
 W !,"CURRENT ASSIGNED TO GROUP: "_CURASSIGGRP
 ;
 W !,"CURRENT STATUS "_$G(FROMSTATUS)   ;_" TO "_$G(TOSTATUS)
 I IBDA("TOTAL")>1 D UPDSTATUS^IBACCWLUTIL(IBENCIFN,BATCHSTATUS)
 ;
 I IBDA("TOTAL")=1 D
 .D EDITSTATUS^IBACCWLUTIL(IBENCIFN,FROMSTATUS,0)
 ;
 S TOSTATUS=$$GET1^DIQ(364.9,IBENCIFN_",",.16)
 I IBDA("TOTAL")=1,(FROMSTATUS=TOSTATUS) S VALMBCK="R" Q  ;NO NEED FOR AN AUDIT ENTRY IN PREVIOUS ACTIVITY IF NO CHANGE IN STATUS
 ;
 I IBDA("TOTAL")>1,(FROMSTATUS=BATCHSTATUS) S VALMBCK="R" Q  ;EBILL-9999  no change in STATUS creates PREV ACT - should not
 ;
 ;UPDATE THIS USER'S SCREEN LIST
 M IBDAIEN(IBDAIEN)=IBDA(IBDAIEN)
 ;
 ;I $G(IBPARENT)=0 D  ;TPF;IB*2*770v38;EBILL-5485
 I $G(IBPARENT)=1 D  ;TPF;IB*2*770v38;EBILL-6087
 .S CURINDICATOR=$TR($$GETFLD^IBACCWLUTIL(VALMDDF("INDICATOR"),.IBDAIEN)," ")    ;GET THE CURRENT VALUE IN THE FIELD.
 .D:$D(VALMDDF("INDICATOR"))&(TOSTATUS="IN PROGRESS") FLDTEXT^VALM10(IBDAIEN,"INDICATOR",CURINDICATOR_"*")
 .D:$D(VALMDDF("INDICATOR"))&(TOSTATUS="OPEN") FLDTEXT^VALM10(IBDAIEN,"INDICATOR",$TR(CURINDICATOR,"*"))
 .D:$D(VALMDDF("INDICATOR"))&(TOSTATUS="CLOSED") FLDTEXT^VALM10(IBDAIEN,"INDICATOR","C")
 ;
 ;
 ;I $G(IBPARENT)=0 D  ;TPF;IB*2*770v38;EBILL-5485
 I $G(IBPARENT)=1 D  ;TPF;IB*2*770v38;EBILL-6087
 .S CURINDICATOR=$TR($$GETFLD^IBACCWLUTIL(VALMDDF("INDICATOR"),.IBDAIEN)," ")    ;GET THE CURRENT VALUE IN THE FIELD.
 .S PUBSUCCESS=0 D:$G(PUBLISHINGON) FIELDPUBLISH^IBACCWLUTIL1(VALMDDF("INDICATOR"),CURINDICATOR,IBENCIFN,PUBSUCCESS)  ;UPDATE OTHER USERS WITH THIS ENCOUNTER IN THEIR DISPLAY
 ;
 ;TPF;IB*2*770v25;BEGIN EBILL-5122
 I $G(IBPARENT)=0 D  ;TPF;IB*2*770v38;EBILL-5485  
 .N VALMAR,VALMDDF  ;NEEDED FOR CALLS TO LM APIs
 .S VALMAR=IBFROMVALMDDF(1,"VALMAR")
 .M VALMDDF=IBFROMVALMDDF
 .S CURINDICATOR=$TR($$GETFLD^IBACCWLUTIL(IBFROMVALMDDF("INDICATOR"),.IBDAIEN)," ")    ;GET THE CURRENT VALUE IN THE FIELD.
 .D:$D(IBFROMVALMDDF("INDICATOR"))&(TOSTATUS="IN PROGRESS") FLDTEXT^VALM10(IBDAIEN,"INDICATOR",CURINDICATOR_"*")
 .D:$D(IBFROMVALMDDF("INDICATOR"))&(TOSTATUS="OPEN") FLDTEXT^VALM10(IBDAIEN,"INDICATOR",$TR(CURINDICATOR,"*"))
 .D:$D(IBFROMVALMDDF("INDICATOR"))&(TOSTATUS="CLOSED") FLDTEXT^VALM10(IBDAIEN,"INDICATOR","C")
 .S PUBSUCCESS=0 D:$G(PUBLISHINGON) FIELDPUBLISH^IBACCWLUTIL1(IBFROMVALMDDF("INDICATOR"),CURINDICATOR,IBENCIFN,PUBSUCCESS)  ;UPDATE OTHER USERS WITH THIS ENCOUNTER IN THEIR DISPLAY
 ;TPF;IB*2*770v25;END EBILL-5122
 ;
 ;SET PREV ACVIVITY ENTRY FOR AUDIT WITH CODE 507
 ;UPDATE PREVIOUS ACTIVITY
 S ADDIENS="+1,"_IBENCIFN_","
 S ADDFDA(364.94,ADDIENS,.01)="NOW"
 S ADDFDA(364.94,ADDIENS,.02)="`"_$G(DUZ)
 S ADDFDA(364.94,ADDIENS,.03)=507   ;507 STATUS UPDATE USING 'RS Review Status' ACTION ITEM 
 S ADDFDA(364.94,ADDIENS,.04)=$G(USERGROUP)
 ;
 D UPDATE^DIE("ES","ADDFDA","ADDIENS","ADDERR")
 ;
 I $D(ADDERR) D  Q  ;TPF;IB*2*770v11;EBILL-4523  ;CHANGE TO SOP FOR ERROR CHECKS IN WL
 .W !!,"Problem adding Previous Activity Multiple for Encounter. Report to eBilling"
 .S VALMBCK="R"
 .W !,$G(ADDERR("DIERR",1,"TEXT",1))
 .N DIR,DIRUT,DUOUT,DTOUT
 .D PAUSE^VALM1
 ;
 S DA=ADDIENS(1)
 S DA(1)=IBENCIFN
 ;
 S PREVACTIENS=$$IENS^DILF(.DA)
 I BATCHITEM=1 D  Q
 .W !!,"Enter a reason for updating the status without reassigning the encounter."
 .W !,"This comment will be applied to "_$S($G(IBDA("TOTAL"))>1:"the entire batch.",1:"this encounter.")  ;TPF;IB*2*770v38;EBILL-5825
 .W !
 .;
 .S DIE="^IBA(364.9,"_DA(1)_",4,"
 .S DR=""
 .S DR=DR_"10"
 .D ^DIE
 .D GETS^DIQ(364.94,PREVACTIENS,"**","EIR","PREVACTRET","ERROR")
 .M BATCHCOMMENT=PREVACTRET(364.94,PREVACTIENS,"PREVIOUS ACTIVITY COMMENTS")
 .K BATCHCOMMENT("E")
 .K BATCHCOMMENT("I")
 ;
 I BATCHITEM>1,$D(BATCHCOMMENT)  D  Q  ;THIS MEANS WE HAVE ALREADY CREATED A COMMENT WHEN BATCHITEM=1
 .K WPERR D EDITPREVACT^IBACCWLUTIL(PREVACTIENS,.BATCHCOMMENT,.WPERR)
 .I $D(WPERR) D  ;TPF;IB*2*770v11;EBILL-4523  ;CHANGE TO SOP FOR ERROR CHECKS IN WL
 ..W !!,"Problem adding comment to Encounter. Report to eBilling"
 ..S VALMBCK="R"
 ..W !,$G(WPERR("DIERR",1,"TEXT",1))
 ..N DIR,DIRUT,DUOUT,DTOUT
 ..D PAUSE^VALM1
 ;
 S VALMBCK="R"
 ;
 Q
 ;
 ;D PATINSUR^IBACCWLAI
 ;CALLED BY ACTION PROTOCOLS:
 ;IBACC WL IBACCCOMMON VIEW PT INSURANCE
PATINSUR ;EP - VIEW/EDIT PATIENT INSURANCE
 N DFN,IBVIEW,IBIFN,IBENCIEN,IBBILL
 ;
 N VALMSG ; WCJ;v39;purple;IB*2.0*770;EBILL-5623
 S VALMSG="Enter ?? for more actions" ;IB*2.0*770;EBILL-5623
 ;
 I '$G(IBDA) N IBDA D SEL(.IBDA)
 ;
 I '$D(IBDA) S VALMBCK="R" Q  ;ONLY IF ONE SELECTION. NEED FOR LOOP FOR MULTIPLES
 ;
 I $G(IBDA(IBDA))["----------------------",'$O(IBDA(IBDA)) S VALMBCK="R" Q
 ;
 I $G(IBPARENT)=0 D  ;TPF;IB*2*770v38;EBILL-5485
 .S IBENCIFN=$G(@VALMAR@("IEN3649",1))
 .S IBIFN=$G(@VALMAR@("IEN399",1))
 E  D
 .S IBIFN=$G(@VALMAR@(IBDA,"IEN399",1))
 .S IBENCIFN=$G(@VALMAR@(IBDA,"IEN3649",1))
 ;
 I IBENCIFN S DFN=$P($G(^IBA(364.9,IBENCIFN,2)),U)
 E  S DFN="NOT FOUND"
 ;
 I IBIFN'="" D
 .S DFN=$P($G(^DGCR(399,+$G(IBIFN),0)),U,2)
 .S IBBILL=$P($G(^DGCR(399,IBIFN,0)),U)
 E  W !!,"This encounter does not have a K#."
 ;
 I '$G(DFN) D  Q  ;TPF;IB*2*770V6 ;PI API DOES NOT REQUIRE A K# ONLY A DFN  ;TPF;IB*2*770v12;EBILL-4533
 .W !,"This encounter does not have a Patient record in VistA."  ;TPF;IB*2*770v12;EBILL-4533
 .W !,"THIS ACTION CANNOT BE EXECUTED!!"
 .S DFN="NOT FOUND"
 .N DIR  ;TPF;IB*2*770v47;EBILL-6042
 .D PAUSE^VALM1
 .S VALMBCK="R"
 ;
 W:$G(IBBILL)'="" !,"ACC CLAIM/BILL "_IBBILL_" SELECTED" H 2
 ;
 D FULL^VALM1
 ;
 ;TAZ*IB*2*770v24;EBILL-5064 - Only IV can edit insurance
 I SESSIONKEY="IBACCIV" S IBVIEW=0 D EN^VALM("IBCNS PATIENT INSURANCE") S VALMBCK="R" Q   ;EDIT
 S IBVIEW=1 D EN^VALM("IBCNS VIEW PAT INS")                             ;VIEW ONLY
 ;
 S VALMBCK="R"
 Q
 ;
 ;D PROVMAIN^IBACCWLAI
 ;CALLED BY ACTION PROTOCOLS:
 ;IBACC WL IBACCFRT PROV MAIN
PROVMAIN ;EP - Takes the user to the Provider ID Maintenance Menu
 ;
 N DFN,IBIFN,IBENCIEN,IBBILL  ;TPF;IB*2*770v12 
 N VALMSG ; WCJ;v39;purple;IB*2.0*770;EBILL-5623
 S VALMSG="* = In progress| ! = Patient not in VistA |??=Help"  ;WCJ;v39;purple;IB*2.0*770;EBILL-5623
 S VALMSG="Enter ?? for more actions" ;IB*2.0*770;EBILL-5623
 ;
 ;THERE IS NO NEED FOR THE USER TO SELECT A RECORD FOR THE PM ACTION ITEM BUT CJ FELT
 ;WE SHOULD NOT THROW A CURVE AT THEM
 I '$G(IBDA) N IBDA D SEL(.IBDA)
 ;
 I '$D(IBDA) S VALMBCK="R" Q
 ;
 I $G(IBDA(IBDA))["----------------------",'$O(IBDA(IBDA)) S VALMBCK="R" Q
 ;
 I $G(IBPARENT)=0 D  ;TPF;IB*2*770v38;EBILL-5485
 .S IBENCIFN=$G(@VALMAR@("IEN3649",1))
 .S IBIFN=$G(@VALMAR@("IEN399",1))
 E  D
 .S IBIFN=$G(@VALMAR@(IBDA,"IEN399",1))
 .S IBENCIFN=$G(@VALMAR@(IBDA,"IEN3649",1))
 ;
 I IBENCIFN S DFN=$P($G(^IBA(364.9,IBENCIFN,2)),U)
 E  S DFN="NOT FOUND"
 ;
 W:$G(IBBILL)'="" !,"ACC CLAIM/BILL "_IBBILL_" SELECTED" H 2
 ;
 D NEWPROVMAIN^IBACCWLUTIL4   ;TPF;IB*2*770v32;EBILL-5411 SAC SIZE LIMIT
 ;
 S VALMBCK="R"
 Q
 ;
 ;CALLED BY OPTION [IBACC WL PREVIOUS ACT. REVIEW
PREVREVIEW ;EP - PREVIOUS ACTIVITY REVIEW FOR AUDITING
 ;
 N DASHLINE,DIC,I,IBDA,IBQUIT,IEN,LINENUM,LISTTEMP,LISTTEMPIEN,VALMAR,VALMDDF,Y  ;TPF;IB*2*770v14:EBILL-4580
 N IBIFN  ;TPF;IB*2*770v51;EBILL-6178
 N VALMEVL  ;TPF;IB*2*770v52;EBILL-6230
 ;
 S VALMSG="* = In progress| ! = Patient not in VistA |??=Help"
 ;
 S DIC="^IBA(364.9,"
 ;ALLOW THE DISPLAY OF ENCOUNTERS WITH A K# NO MATTER WHAT STATUS
 ;               STATUS 2=CLOSED 3=PURGED         CLAIM NUMBER NULL (K#)
 ;S DIC("S")="I ($P(^(0),U,16)=2!($P(^(0),U,16)=3)),($P($G(^(2)),U,2)="""")"   ;$P(^IBA(364,9,IEN,0,U,16) STATUS MUST BE CLOSED OR PURGED
 ;                                                        ;$P(^IBA(364.9,IEN,2),U,2)  AND NO K#
 S DIC("S")="I ($P(^(0),U,16)=2!($P(^(0),U,16)=3))"  ;TPF;IB*2*770v51;EBILL-6178
 ;
 S DIC(0)="AEMBQ"
 S DIC("A")="Select PATIENT NAME:"
 D ^DIC
 Q:Y<0
 ;
 S IBENCIFN=+Y
 ;
 ;FIRST DO A DETAIL REPORT #364.9
 ;THIS WILL PULL ANY IELD  STILL POPULATED EVEN IF PARTIALLY PURGED
 S $P(DASHLINE,"-",IOM)=""
 S LISTTEMP="IBACC WL PREV. ACTIVITY VIEWER"
 S LISTTEMPIEN=$O(^SD(409.61,"B",LISTTEMP,""))
 I 'LISTTEMPIEN D  Q
 .W !!,"REQUIRED LIST TEMPLATE "_LISTTEMP_" NOT FOUND!!"
 .N DIR
 .D PAUSE^VALM1
 ;
 S VALMAR=$P($G(^SD(409.61,LISTTEMPIEN,"ARRAY"))," ",2)
 K @VALMAR
 ;
 S I=0
 F  S I=$O(^SD(409.61,LISTTEMPIEN,"COL",I)) Q:'I  I $D(^(I,0)) S VALMDDF($P(^(0),U))=^(0)
 ;
 S IBIFN=""  ;THERE IS NO BILL INFO. WE SCREENED THOSE OUT
 S IBDA=""  ;OBSOLETE
 N DETRETURN
 D INIT^IBACCWLEE(IBDA,IBENCIFN,IBIFN)
 ;
 ;BEGIN TPF;IB*2*770v51;EBILL-6178  ADD VE TO AWL
 ;
 S LISTTEMP="IBACC WL VE"
 S LISTTEMPIEN=$O(^SD(409.61,"B",LISTTEMP,""))
 I 'LISTTEMPIEN D  Q
 .W !!,"REQUIRED LIST TEMPLATE "_LISTTEMP_" NOT FOUND!!"
 .N DIR
 .D PAUSE^VALM1
 ;
 K VALMDDF
 S I=0
 F  S I=$O(^SD(409.61,LISTTEMPIEN,"COL",I)) Q:'I  I $D(^(I,0)) S VALMDDF($P(^(0),U))=^(0)
 ;
 S VALMEVL=1  ;TPF;IB*2*770v52;EBILL-????;THIS IS A LM VAR. SET BECAUSE WE ENTERED INIT^IBACCWLVE AND IT USES LM SPECIAL VARS
 S (IORVON,IORVOFF)=""  ;SINCE THIS DISPLAY DOES NOT USE A LM SCREEN SPECIAL CHAR VARS WILL NOT WORK
 S IBIFN=$$GET1^DIQ(364.9,IBENCIFN_",",2.02,"I")
 ;
 ;I $G(IBIFN)'=""
 D INIT^IBACCWLVE  ;TPF:IB*2*770v53;EBILL-6262 AMY TESTED AND SAID THEY WANT THE VE REGARDLESS OF k# OR NOT
 ; 
 ;END TPF;IB*2*770v51;EBILL-6178
 S PAGE=1
 S SUBHEADER="ACC ENCOUNTER FIELDS #364.9"
 D HDR(.PAGE,SUBHEADER)
 S IEN=0
 F LINENUM=1:1 S IEN=$O(@VALMAR@(IEN)) Q:'IEN  D  Q:$G(IBQUIT)
 .I $Y>(IOSL-5) D PAUSE(.IBQUIT) Q:$G(IBQUIT)  D HDR(.PAGE,SUBHEADER)
 .;W !,@VALMAR@(IEN,0)
 .I ($L(@VALMAR@(IEN,0))>80),($E(@VALMAR@(IEN,0),81)'=" ") D  ;TPF;IB*2*770v50;EBILL-6174
 ..D WORDWRAP^IBACCWLPREV(@VALMAR@(IEN,0),29)  ;MOVED THIS LINE DOWN TO PRESERVE $T FOR ELSE  10 IS AN INDEMT FOR THE SECOND LINE. VALUE OUT OF THE AIR 
 .E  W !,$E(@VALMAR@(IEN,0),1,80)  ;TPF;IB*2*770v51;EBILL-6174
 ;
 W !!,$$CJ^XLFSTR("****END OF "_SUBHEADER_"****",IOM)
 W !,$$CJ^XLFSTR("END OF REPORT",IOM)
 ;
 K ^TMP("IBACCWLVE",$J)    ;IB*2*770v53;EBILL-6264
 K ^TMP("IBACCWLPREV",$J)  ;IB*2*770v53;EBILL-6264  
 K ^TMP("VALM VIDEO",$J)   ;IB*2*770v53;EBILL-6264
 ;
 N DIR
 D PAUSE^VALM1
 ;
 Q
 ;
SEL(IBDA,OPTION) ;EP - 
 K IBDA,VALMY
 D FULL^VALM1
 D EN^VALM2($G(XQORNOD(0)),$S($G(OPTION)'="":OPTION,1:"S"))
 Q:'$D(VALMY)
 ;
 S IBDA("TOTAL")=0
 S IBDA=0
 F  S IBDA=$O(VALMY(IBDA)) Q:'IBDA  D
 .S IBDA(IBDA)=$G(@VALMAR@(+IBDA,0))
 .S IBDA("TOTAL")=IBDA("TOTAL")+1
 S IBDA=$O(IBDA(""))  ;ONLY IF ONE SELECTION. NEED FOR LOOP FOR MULTIPLES
 ;
 Q
 ;
PAUSE(IBQUIT) ; CONT?
 W !
 N DIR,DIRUT,DUOUT,DTOUT
 S DIR(0)="E"
 D ^DIR
 I $D(DIRUT)!($D(DUOUT))!($D(DTOUT)) S IBQUIT=1
 Q
 ;
HDR(PAGE,SUBHEADER) ;EP - HEADER
 W @IOF
 W !!,$$CJ^XLFSTR("IBACC WL PREVIOUS ACT. REVIEW",IOM)
 W !,$$CJ^XLFSTR(SUBHEADER,IOM),?55,$$RJ^XLFSTR("PAGE: "_PAGE,IOM)
 W !,DASHLINE
 W !
 S PAGE=PAGE+1
 Q