Released BPS*1*14 SEQ #13 Extracted from mail message **KIDS**:BPS*1.0*14^ **INSTALL NAME** BPS*1.0*14 "BLD",9087,0) BPS*1.0*14^E CLAIMS MGMT ENGINE^0^3120531^y "BLD",9087,1,0) ^^4^4^3120515^ "BLD",9087,1,1,0) This patch fixes random subscript errors, allows users to select "BLD",9087,1,2,0) a Drug Class Code as an option during the Payable Claims Report "BLD",9087,1,3,0) [BPS RPT PAYABLE] and fixes issues while sorting in the ECME "BLD",9087,1,4,0) User Screen [BPS USER SCREEN]. "BLD",9087,4,0) ^9.64PA^^ "BLD",9087,6.3) 2 "BLD",9087,"KRN",0) ^9.67PA^779.2^20 "BLD",9087,"KRN",.4,0) .4 "BLD",9087,"KRN",.401,0) .401 "BLD",9087,"KRN",.402,0) .402 "BLD",9087,"KRN",.403,0) .403 "BLD",9087,"KRN",.5,0) .5 "BLD",9087,"KRN",.84,0) .84 "BLD",9087,"KRN",3.6,0) 3.6 "BLD",9087,"KRN",3.8,0) 3.8 "BLD",9087,"KRN",9.2,0) 9.2 "BLD",9087,"KRN",9.8,0) 9.8 "BLD",9087,"KRN",9.8,"NM",0) ^9.68A^3^3 "BLD",9087,"KRN",9.8,"NM",1,0) BPSSCRCV^^0^B47413521 "BLD",9087,"KRN",9.8,"NM",2,0) BPSOSUC^^0^B8931865 "BLD",9087,"KRN",9.8,"NM",3,0) BPSRPT3^^^B39556380 "BLD",9087,"KRN",9.8,"NM","B","BPSOSUC",2) "BLD",9087,"KRN",9.8,"NM","B","BPSRPT3",3) "BLD",9087,"KRN",9.8,"NM","B","BPSSCRCV",1) "BLD",9087,"KRN",19,0) 19 "BLD",9087,"KRN",19,"NM",0) ^9.68A^^ "BLD",9087,"KRN",19.1,0) 19.1 "BLD",9087,"KRN",101,0) 101 "BLD",9087,"KRN",409.61,0) 409.61 "BLD",9087,"KRN",771,0) 771 "BLD",9087,"KRN",779.2,0) 779.2 "BLD",9087,"KRN",870,0) 870 "BLD",9087,"KRN",8989.51,0) 8989.51 "BLD",9087,"KRN",8989.52,0) 8989.52 "BLD",9087,"KRN",8994,0) 8994 "BLD",9087,"KRN","B",.4,.4) "BLD",9087,"KRN","B",.401,.401) "BLD",9087,"KRN","B",.402,.402) "BLD",9087,"KRN","B",.403,.403) "BLD",9087,"KRN","B",.5,.5) "BLD",9087,"KRN","B",.84,.84) "BLD",9087,"KRN","B",3.6,3.6) "BLD",9087,"KRN","B",3.8,3.8) "BLD",9087,"KRN","B",9.2,9.2) "BLD",9087,"KRN","B",9.8,9.8) "BLD",9087,"KRN","B",19,19) "BLD",9087,"KRN","B",19.1,19.1) "BLD",9087,"KRN","B",101,101) "BLD",9087,"KRN","B",409.61,409.61) "BLD",9087,"KRN","B",771,771) "BLD",9087,"KRN","B",779.2,779.2) "BLD",9087,"KRN","B",870,870) "BLD",9087,"KRN","B",8989.51,8989.51) "BLD",9087,"KRN","B",8989.52,8989.52) "BLD",9087,"KRN","B",8994,8994) "BLD",9087,"QDEF") ^^^^^^^^^^YES "BLD",9087,"QUES",0) ^9.62^^ "BLD",9087,"REQB",0) ^9.611^1^1 "BLD",9087,"REQB",1,0) BPS*1.0*11^1 "BLD",9087,"REQB","B","BPS*1.0*11",1) "MBREQ") 0 "PKG",570,-1) 1^1 "PKG",570,0) E CLAIMS MGMT ENGINE^BPS^ELECTRONIC CLAIMS MGT "PKG",570,22,0) ^9.49I^1^1 "PKG",570,22,1,0) 1.0^3041008^3041108^66481 "PKG",570,22,1,"PAH",1,0) 14^3120531 "PKG",570,22,1,"PAH",1,1,0) ^^4^4^3120531 "PKG",570,22,1,"PAH",1,1,1,0) This patch fixes random subscript errors, allows users to select "PKG",570,22,1,"PAH",1,1,2,0) a Drug Class Code as an option during the Payable Claims Report "PKG",570,22,1,"PAH",1,1,3,0) [BPS RPT PAYABLE] and fixes issues while sorting in the ECME "PKG",570,22,1,"PAH",1,1,4,0) User Screen [BPS USER SCREEN]. "QUES","XPF1",0) Y "QUES","XPF1","??") ^D REP^XPDH "QUES","XPF1","A") Shall I write over your |FLAG| File "QUES","XPF1","B") YES "QUES","XPF1","M") D XPF1^XPDIQ "QUES","XPF2",0) Y "QUES","XPF2","??") ^D DTA^XPDH "QUES","XPF2","A") Want my data |FLAG| yours "QUES","XPF2","B") YES "QUES","XPF2","M") D XPF2^XPDIQ "QUES","XPI1",0) YO "QUES","XPI1","??") ^D INHIBIT^XPDH "QUES","XPI1","A") Want KIDS to INHIBIT LOGONs during the install "QUES","XPI1","B") NO "QUES","XPI1","M") D XPI1^XPDIQ "QUES","XPM1",0) PO^VA(200,:EM "QUES","XPM1","??") ^D MG^XPDH "QUES","XPM1","A") Enter the Coordinator for Mail Group '|FLAG|' "QUES","XPM1","B") "QUES","XPM1","M") D XPM1^XPDIQ "QUES","XPO1",0) Y "QUES","XPO1","??") ^D MENU^XPDH "QUES","XPO1","A") Want KIDS to Rebuild Menu Trees Upon Completion of Install "QUES","XPO1","B") NO "QUES","XPO1","M") D XPO1^XPDIQ "QUES","XPZ1",0) Y "QUES","XPZ1","??") ^D OPT^XPDH "QUES","XPZ1","A") Want to DISABLE Scheduled Options, Menu Options, and Protocols "QUES","XPZ1","B") YES "QUES","XPZ1","M") D XPZ1^XPDIQ "QUES","XPZ2",0) Y "QUES","XPZ2","??") ^D RTN^XPDH "QUES","XPZ2","A") Want to MOVE routines to other CPUs "QUES","XPZ2","B") NO "QUES","XPZ2","M") D XPZ2^XPDIQ "RTN") 3 "RTN","BPSOSUC") 0^2^B8931865^B8834830 "RTN","BPSOSUC",1,0) BPSOSUC ;BHAM ISC/FCS/DRS/FLS - ECME utilities ;06/01/2004 "RTN","BPSOSUC",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,5,7,10,11,14**;JUN 2004;Build 2 "RTN","BPSOSUC",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSOSUC",4,0) Q "RTN","BPSOSUC",5,0) ; CATEG returns the status of a Transaction or Log of Transaction "RTN","BPSOSUC",6,0) ; entry. It is used mainly by STATUS^BPSOSRX but is also "RTN","BPSOSUC",7,0) ; called by some other routines as well as computed fields of BPS Log "RTN","BPSOSUC",8,0) ; of Transactions and BPS Tranasctions "RTN","BPSOSUC",9,0) CATEG(N,WANTREV) ; "RTN","BPSOSUC",10,0) ; N - If decimal, IEN from BPS Transaction "RTN","BPSOSUC",11,0) ; - If integer, IEN from BPS Log of Transactions "RTN","BPSOSUC",12,0) ; $G(WANTREV) = true if you care about reversals "RTN","BPSOSUC",13,0) ; (that's the default if lookup is on IEN59) "RTN","BPSOSUC",14,0) ; $G(WANTREV) = false if you want to ignore reversals "RTN","BPSOSUC",15,0) ; (that's the default if lookup is on IEN57) "RTN","BPSOSUC",16,0) ; "RTN","BPSOSUC",17,0) ; Many routines rely on these exact return values; do not change them: "RTN","BPSOSUC",18,0) ; Return values: "RTN","BPSOSUC",19,0) ; For all submissions: "RTN","BPSOSUC",20,0) ; CORRUPT - Should never happen "RTN","BPSOSUC",21,0) ; "RTN","BPSOSUC",22,0) ; For Billing Requests: "RTN","BPSOSUC",23,0) ; E PAYABLE, E CAPTURED, E DUPLICATE, E REJECTED, E OTHER, and "RTN","BPSOSUC",24,0) ; E UNSTRANDED "RTN","BPSOSUC",25,0) ; "RTN","BPSOSUC",26,0) ; For Reversals: "RTN","BPSOSUC",27,0) ; E REVERSAL ACCEPTED, E REVERSAL REJECTED, E REVERSAL OTHER, and "RTN","BPSOSUC",28,0) ; E REVERSAL UNSTRANDED "RTN","BPSOSUC",29,0) ; "RTN","BPSOSUC",30,0) ; For Eligibility: "RTN","BPSOSUC",31,0) ; E ELIGIBILITY ACCEPTED, E ELIGIBILITY REJECTED, E ELIGIBILITY OTHER, and "RTN","BPSOSUC",32,0) ; E ELIGIBILITY UNSTRANDED "RTN","BPSOSUC",33,0) ; "RTN","BPSOSUC",34,0) I N<1 Q "" ; Should not happen "RTN","BPSOSUC",35,0) N FILENUM,RETVAL,CLAIM,RESP,X,RESP500,TRANTYPE,STAT,DISYS "RTN","BPSOSUC",36,0) S FILENUM=$S(N[".":9002313.59,1:9002313.57) "RTN","BPSOSUC",37,0) I '$D(WANTREV) S WANTREV=$S(FILENUM=9002313.57:0,FILENUM=9002313.59:1) "RTN","BPSOSUC",38,0) I '$$GET1^DIQ(FILENUM,N_",",.01) Q "CORRUPT" "RTN","BPSOSUC",39,0) S CLAIM=$$GET1^DIQ(FILENUM,N_",",3,"I") "RTN","BPSOSUC",40,0) S RESP=$$GET1^DIQ(FILENUM,N_",",4,"I") "RTN","BPSOSUC",41,0) S TRANTYPE=$$GET1^DIQ(FILENUM,N_",",19,"I") "RTN","BPSOSUC",42,0) S STAT=$$GET1^DIQ(FILENUM,N_",",202,"I") "RTN","BPSOSUC",43,0) ; Stranded statuses "RTN","BPSOSUC",44,0) I $P(STAT,";")="E REVERSAL UNSTRANDED" Q "E REVERSAL UNSTRANDED" "RTN","BPSOSUC",45,0) I $P(STAT,";")="E UNSTRANDED" Q "E UNSTRANDED" "RTN","BPSOSUC",46,0) I $P(STAT,";")="E ELIGIBILITY UNSTRANDED" Q "E ELIGIBILITY UNSTRANDED" "RTN","BPSOSUC",47,0) ; Eligibility Statuses "RTN","BPSOSUC",48,0) I TRANTYPE="E" D Q RETVAL "RTN","BPSOSUC",49,0) . I 'CLAIM!'RESP S RETVAL="E ELIGIBILITY OTHER" Q "RTN","BPSOSUC",50,0) . S RESP500=$$RESP500^BPSOSQ4(RESP,"I") "RTN","BPSOSUC",51,0) . S X=$$RESP1000^BPSOSQ4(RESP,1,"I") "RTN","BPSOSUC",52,0) . S RETVAL="E ELIGIBILITY " "RTN","BPSOSUC",53,0) . I RESP500="R"!(X="R") S RETVAL=RETVAL_"REJECTED" Q "RTN","BPSOSUC",54,0) . I RESP500="A",X="A" S RETVAL=RETVAL_"ACCEPTED" Q "RTN","BPSOSUC",55,0) . S RETVAL=RETVAL_"OTHER" "RTN","BPSOSUC",56,0) ; During a reversal/resubmit, you may get the next line between the reversal and "RTN","BPSOSUC",57,0) ; and the resubmit "RTN","BPSOSUC",58,0) I 'CLAIM S RETVAL="E OTHER" Q RETVAL "RTN","BPSOSUC",59,0) I WANTREV,TRANTYPE="U" D Q RETVAL "RTN","BPSOSUC",60,0) . S RESP=$$GET1^DIQ(FILENUM,N_",",402,"I") "RTN","BPSOSUC",61,0) . S RETVAL="E REVERSAL " "RTN","BPSOSUC",62,0) . I 'RESP S RETVAL=RETVAL_"OTHER" Q "RTN","BPSOSUC",63,0) . S RESP500=$$RESP500^BPSOSQ4(RESP,"I") "RTN","BPSOSUC",64,0) . S X=$$RESP1000^BPSOSQ4(RESP,1,"I") "RTN","BPSOSUC",65,0) . I RESP500="R"!(X="R") S RETVAL=RETVAL_"REJECTED" Q "RTN","BPSOSUC",66,0) . ; Treat Duplicate of Accepted Reversal ("S") as Accepted "RTN","BPSOSUC",67,0) . I RESP500="A",X="A"!(X="S") S RETVAL=RETVAL_"ACCEPTED" Q "RTN","BPSOSUC",68,0) . S RETVAL=RETVAL_"OTHER" "RTN","BPSOSUC",69,0) ; Response not received yet "RTN","BPSOSUC",70,0) I 'RESP S RETVAL="E OTHER" Q RETVAL "RTN","BPSOSUC",71,0) S RESP500=$$RESP500^BPSOSQ4(RESP,"I") "RTN","BPSOSUC",72,0) N POS S POS=$$GET1^DIQ(FILENUM,N_",",14) "RTN","BPSOSUC",73,0) ;if POS comes back null set equal to 1 - BPS*14 ticket 367742 RRA "RTN","BPSOSUC",74,0) S:'POS POS=1 "RTN","BPSOSUC",75,0) S X=$$RESP1000^BPSOSQ4(RESP,POS,"I") "RTN","BPSOSUC",76,0) I X="P"!(X="DP") Q "E PAYABLE" "RTN","BPSOSUC",77,0) I X="D" Q "E DUPLICATE" ; SHOULD NEVER HAPPEN as of 02/06/2001 "RTN","BPSOSUC",78,0) I X="R" Q "E REJECTED" "RTN","BPSOSUC",79,0) I X="C"!(X="DC") Q "E CAPTURED" "RTN","BPSOSUC",80,0) ; 1000 indefinite, fall back to 500 "RTN","BPSOSUC",81,0) I RESP500="R" Q "E REJECTED" "RTN","BPSOSUC",82,0) Q "E OTHER" ; corrupt? "RTN","BPSRPT3") 0^3^B39556380^B38545074 "RTN","BPSRPT3",1,0) BPSRPT3 ;BHAM ISC/BEE - ECME REPORTS ;14-FEB-05 "RTN","BPSRPT3",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,3,5,7,11,14**;JUN 2004;Build 2 "RTN","BPSRPT3",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSRPT3",4,0) ; "RTN","BPSRPT3",5,0) Q "RTN","BPSRPT3",6,0) ; "RTN","BPSRPT3",7,0) ; Select the ECME Pharmacy or Pharmacies "RTN","BPSRPT3",8,0) ; "RTN","BPSRPT3",9,0) ; Input Variable -> none "RTN","BPSRPT3",10,0) ; Return Value -> "" = Valid Entry or Entries Selected "RTN","BPSRPT3",11,0) ; ^ = Exit "RTN","BPSRPT3",12,0) ; "RTN","BPSRPT3",13,0) ; Output Variable -> BPPHARM = 1 One or More Pharmacies Selected "RTN","BPSRPT3",14,0) ; = 0 User Entered 'ALL' "RTN","BPSRPT3",15,0) ; "RTN","BPSRPT3",16,0) ; If BPPHARM = 1 then the BPPHARM array will be defined where: "RTN","BPSRPT3",17,0) ; BPPHARM(ptr) = ptr ^ BPS PHARMACY NAME and "RTN","BPSRPT3",18,0) ; ptr = Internal Pointer to BPS PHARMACIES file (#9002313.56) "RTN","BPSRPT3",19,0) ; "RTN","BPSRPT3",20,0) SELPHARM() N DIC,DIR,DIRUT,DTOUT,DUOUT,X,Y "RTN","BPSRPT3",21,0) ; "RTN","BPSRPT3",22,0) ;Reset BPPHARM array "RTN","BPSRPT3",23,0) K BPPHARM "RTN","BPSRPT3",24,0) ; "RTN","BPSRPT3",25,0) ;First see if they want to enter individual divisions or ALL "RTN","BPSRPT3",26,0) S DIR(0)="S^D:DIVISION;A:ALL" "RTN","BPSRPT3",27,0) S DIR("A")="Select Certain Pharmacy (D)ivisions or (A)LL" "RTN","BPSRPT3",28,0) S DIR("L",1)="Select one of the following:" "RTN","BPSRPT3",29,0) S DIR("L",2)="" "RTN","BPSRPT3",30,0) S DIR("L",3)=" D DIVISION" "RTN","BPSRPT3",31,0) S DIR("L",4)=" A ALL" "RTN","BPSRPT3",32,0) D ^DIR K DIR "RTN","BPSRPT3",33,0) ; "RTN","BPSRPT3",34,0) ;Check for "^" or timeout, otherwise define BPPHARM "RTN","BPSRPT3",35,0) I ($G(DUOUT)=1)!($G(DTOUT)=1) S Y="^" "RTN","BPSRPT3",36,0) E S BPPHARM=$S(Y="A":0,1:1) "RTN","BPSRPT3",37,0) ; "RTN","BPSRPT3",38,0) ;If division selected, ask prompt "RTN","BPSRPT3",39,0) I $G(BPPHARM)=1 F D Q:Y="^"!(Y="") "RTN","BPSRPT3",40,0) .; "RTN","BPSRPT3",41,0) .;Prompt for entry "RTN","BPSRPT3",42,0) .K X S DIC(0)="QEAM",DIC=9002313.56,DIC("A")="Select ECME Pharmacy Division(s): " "RTN","BPSRPT3",43,0) .W ! D ^DIC "RTN","BPSRPT3",44,0) .; "RTN","BPSRPT3",45,0) .;Check for "^" or timeout "RTN","BPSRPT3",46,0) .I ($G(DUOUT)=1)!($G(DTOUT)=1) K BPPHARM S Y="^" Q "RTN","BPSRPT3",47,0) .; "RTN","BPSRPT3",48,0) .;Check for blank entry, quit if no previous selections "RTN","BPSRPT3",49,0) .I $G(X)="" S Y=$S($D(BPPHARM)>9:"",1:"^") K:Y="^" BPPHARM Q "RTN","BPSRPT3",50,0) .; "RTN","BPSRPT3",51,0) .;Handle Deletes "RTN","BPSRPT3",52,0) .I $D(BPPHARM(+Y)) D Q:Y="^" I 1 "RTN","BPSRPT3",53,0) ..N P "RTN","BPSRPT3",54,0) ..S P=Y ;Save Original Value "RTN","BPSRPT3",55,0) ..S DIR(0)="S^Y:YES;N:NO",DIR("A")="Delete "_$P(P,U,2)_" from your list?" "RTN","BPSRPT3",56,0) ..S DIR("B")="NO" D ^DIR "RTN","BPSRPT3",57,0) ..I ($G(DUOUT)=1)!($G(DTOUT)=1) K BPPHARM S Y="^" Q "RTN","BPSRPT3",58,0) ..I Y="Y" K BPPHARM(+P),BPPHARM("B",$P(P,U,2),+P) "RTN","BPSRPT3",59,0) ..S Y=P ;Restore Original Value "RTN","BPSRPT3",60,0) ..K P "RTN","BPSRPT3",61,0) .E D "RTN","BPSRPT3",62,0) ..;Define new entries in BPPHARM array "RTN","BPSRPT3",63,0) ..S BPPHARM(+Y)=Y "RTN","BPSRPT3",64,0) ..S BPPHARM("B",$P(Y,U,2),+Y)="" "RTN","BPSRPT3",65,0) .; "RTN","BPSRPT3",66,0) .;Display a list of selected divisions "RTN","BPSRPT3",67,0) .I $D(BPPHARM)>9 D "RTN","BPSRPT3",68,0) ..N X "RTN","BPSRPT3",69,0) ..W !,?2,"Selected:" "RTN","BPSRPT3",70,0) ..S X="" F S X=$O(BPPHARM("B",X)) Q:X="" W !,?10,X "RTN","BPSRPT3",71,0) ..K X "RTN","BPSRPT3",72,0) .Q "RTN","BPSRPT3",73,0) ; "RTN","BPSRPT3",74,0) K BPPHARM("B") "RTN","BPSRPT3",75,0) Q Y "RTN","BPSRPT3",76,0) ; "RTN","BPSRPT3",77,0) ; Select to Include Eligibility of (V)ETERAN, (T)RICARE, (C)HAMPVA or (A)ll "RTN","BPSRPT3",78,0) ; "RTN","BPSRPT3",79,0) ; Input Variable -> DFLT = 0 = All "RTN","BPSRPT3",80,0) ; 1 = VETERAN "RTN","BPSRPT3",81,0) ; 2 = TRICARE "RTN","BPSRPT3",82,0) ; 3 = CHAMPVA "RTN","BPSRPT3",83,0) ; "RTN","BPSRPT3",84,0) ; Return Value -> V, T, C or 0 for All "RTN","BPSRPT3",85,0) ; "RTN","BPSRPT3",86,0) SELELIG(DFLT) N DIC,DIR,DIRUT,DUOUT,DTOUT,DIROUT,X,Y "RTN","BPSRPT3",87,0) S DFLT=$S($G(DFLT)=1:"V",$G(DFLT)=2:"T",$G(DFLT)=3:"C",1:"A") "RTN","BPSRPT3",88,0) S DIR(0)="S^V:VETERAN;T:TRICARE;C:CHAMPVA;A:ALL" "RTN","BPSRPT3",89,0) S DIR("A")="Include Certain Eligibility Type or (A)ll",DIR("B")=DFLT "RTN","BPSRPT3",90,0) D ^DIR "RTN","BPSRPT3",91,0) I ($G(DUOUT)=1)!($G(DTOUT)=1) S Y="^" "RTN","BPSRPT3",92,0) S Y=$S(Y="A":0,1:Y) "RTN","BPSRPT3",93,0) Q Y "RTN","BPSRPT3",94,0) ; "RTN","BPSRPT3",95,0) ; Display (S)ummary or (D)etail Format "RTN","BPSRPT3",96,0) ; "RTN","BPSRPT3",97,0) ; Input Variable -> DFLT = 1 Summary "RTN","BPSRPT3",98,0) ; 2 Detail "RTN","BPSRPT3",99,0) ; "RTN","BPSRPT3",100,0) ; Return Value -> 1 = Summary "RTN","BPSRPT3",101,0) ; 0 = Detail "RTN","BPSRPT3",102,0) ; ^ = Exit "RTN","BPSRPT3",103,0) ; "RTN","BPSRPT3",104,0) SELSMDET(DFLT) N DIR,DIRUT,DTOUT,DUOUT,X,Y "RTN","BPSRPT3",105,0) S DFLT=$S($G(DFLT)=1:"Summary",$G(DFLT)=0:"Detail",1:"Detail") "RTN","BPSRPT3",106,0) S DIR(0)="S^S:Summary;D:Detail",DIR("A")="Display (S)ummary or (D)etail Format",DIR("B")=DFLT "RTN","BPSRPT3",107,0) D ^DIR "RTN","BPSRPT3",108,0) I ($G(DUOUT)=1)!($G(DTOUT)=1) S Y="^" "RTN","BPSRPT3",109,0) S Y=$S(Y="S":1,Y="D":0,1:Y) "RTN","BPSRPT3",110,0) Q Y "RTN","BPSRPT3",111,0) ; "RTN","BPSRPT3",112,0) ; Display (C)MOP or (M)ail or (W)indow or (A)ll "RTN","BPSRPT3",113,0) ; "RTN","BPSRPT3",114,0) ; Input Variable -> DFLT = C CMOP "RTN","BPSRPT3",115,0) ; W Window "RTN","BPSRPT3",116,0) ; M Mail "RTN","BPSRPT3",117,0) ; A All "RTN","BPSRPT3",118,0) ; "RTN","BPSRPT3",119,0) ; Return Value -> C = CMOP "RTN","BPSRPT3",120,0) ; W = Window "RTN","BPSRPT3",121,0) ; M = Mail "RTN","BPSRPT3",122,0) ; A = All "RTN","BPSRPT3",123,0) ; ^ = Exit "RTN","BPSRPT3",124,0) ; "RTN","BPSRPT3",125,0) SELMWC(DFLT) N DIR,DIRUT,DTOUT,DUOUT,X,Y "RTN","BPSRPT3",126,0) S DFLT=$S($G(DFLT)="C":"CMOP",$G(DFLT)="W":"Window",$G(DFLT)="M":"Mail",1:"ALL") "RTN","BPSRPT3",127,0) S DIR(0)="S^C:CMOP;M:Mail;W:Window;A:ALL" "RTN","BPSRPT3",128,0) S DIR("A")="Display (C)MOP or (M)ail or (W)indow or (A)LL",DIR("B")=DFLT "RTN","BPSRPT3",129,0) D ^DIR "RTN","BPSRPT3",130,0) I ($G(DUOUT)=1)!($G(DTOUT)=1) S Y="^" "RTN","BPSRPT3",131,0) Q Y "RTN","BPSRPT3",132,0) ; "RTN","BPSRPT3",133,0) ; Display (R)ealTime Fills or (B)ackbills or (A)LL "RTN","BPSRPT3",134,0) ; "RTN","BPSRPT3",135,0) ; Input Variable -> DFLT = 4 PRO Option "RTN","BPSRPT3",136,0) ; 3 Backbill "RTN","BPSRPT3",137,0) ; 2 Real Time Fills "RTN","BPSRPT3",138,0) ; 1 ALL "RTN","BPSRPT3",139,0) ; "RTN","BPSRPT3",140,0) ; Return Value -> 4 = PRO Option "RTN","BPSRPT3",141,0) ; 3 = Backbill (manually) "RTN","BPSRPT3",142,0) ; 2 = Real Time Fills (automatically during FINISH) "RTN","BPSRPT3",143,0) ; 1 = ALL "RTN","BPSRPT3",144,0) ; ^ = Exit "RTN","BPSRPT3",145,0) ; "RTN","BPSRPT3",146,0) SELRTBCK(DFLT) N DIR,DIRUT,DTOUT,DUOUT,DIROUT,X,Y "RTN","BPSRPT3",147,0) S DFLT=$S($G(DFLT)=2:"Real Time",$G(DFLT)=3:"Backbill",$G(DFLT)=4:"PRO Option",1:"ALL") "RTN","BPSRPT3",148,0) S DIR(0)="S^R:Real Time Fills;B:Backbill;P:PRO Option;A:ALL" "RTN","BPSRPT3",149,0) S DIR("A")="Display (R)ealTime Fills or (B)ackbills or (P)RO Option or (A)LL",DIR("B")=DFLT "RTN","BPSRPT3",150,0) D ^DIR "RTN","BPSRPT3",151,0) I ($G(DUOUT)=1)!($G(DTOUT)=1) S Y="^" "RTN","BPSRPT3",152,0) S Y=$S(Y="A":1,Y="R":2,Y="B":3,Y="P":4,1:Y) "RTN","BPSRPT3",153,0) Q Y "RTN","BPSRPT3",154,0) ; "RTN","BPSRPT3",155,0) ; Display Specific (D)rug or Drug (C)lass "RTN","BPSRPT3",156,0) ; "RTN","BPSRPT3",157,0) ; Input Variable -> DFLT = 3 Drug Class "RTN","BPSRPT3",158,0) ; 2 Drug "RTN","BPSRPT3",159,0) ; 1 ALL "RTN","BPSRPT3",160,0) ; "RTN","BPSRPT3",161,0) ; Return Value -> 3 = Drug Class "RTN","BPSRPT3",162,0) ; 2 = Drug "RTN","BPSRPT3",163,0) ; 1 = ALL "RTN","BPSRPT3",164,0) ; ^ = Exit "RTN","BPSRPT3",165,0) ; "RTN","BPSRPT3",166,0) SELDRGAL(DFLT) N DIR,DIRUT,DTOUT,DUOUT,X,Y "RTN","BPSRPT3",167,0) S DFLT=$S($G(DFLT)=2:"Drug",$G(DFLT)=3:"Drug Class",1:"ALL") "RTN","BPSRPT3",168,0) S DIR(0)="S^D:Drug;C:Drug Class;A:ALL" "RTN","BPSRPT3",169,0) S DIR("A")="Display Specific (D)rug or Drug (C)lass or (A)LL",DIR("B")=DFLT "RTN","BPSRPT3",170,0) D ^DIR "RTN","BPSRPT3",171,0) I ($G(DUOUT)=1)!($G(DTOUT)=1) S Y="^" "RTN","BPSRPT3",172,0) S Y=$S(Y="A":1,Y="D":2,Y="C":3,1:Y) "RTN","BPSRPT3",173,0) Q Y "RTN","BPSRPT3",174,0) ; "RTN","BPSRPT3",175,0) ; Select Drug "RTN","BPSRPT3",176,0) ; "RTN","BPSRPT3",177,0) ; Input Variable -> none "RTN","BPSRPT3",178,0) ; "RTN","BPSRPT3",179,0) ; Return Value -> ptr = pointer to DRUG file (#50) "RTN","BPSRPT3",180,0) ; ^ = Exit "RTN","BPSRPT3",181,0) ; "RTN","BPSRPT3",182,0) SELDRG() N DIC,DIRUT,DUOUT,X,Y "RTN","BPSRPT3",183,0) ; "RTN","BPSRPT3",184,0) ;Prompt for entry "RTN","BPSRPT3",185,0) W ! D SELDRG^BPSRPT6 "RTN","BPSRPT3",186,0) ; "RTN","BPSRPT3",187,0) ;Check for "^", timeout, or blank entry "RTN","BPSRPT3",188,0) I ($G(DUOUT)=1)!($G(DTOUT)=1) S Y="^" "RTN","BPSRPT3",189,0) ; "RTN","BPSRPT3",190,0) ;Check for Valid Entry "RTN","BPSRPT3",191,0) I +Y>0 S Y=+Y "RTN","BPSRPT3",192,0) ; "RTN","BPSRPT3",193,0) Q Y "RTN","BPSRPT3",194,0) ; "RTN","BPSRPT3",195,0) ; Select Drug Class "RTN","BPSRPT3",196,0) ; "RTN","BPSRPT3",197,0) ; Input Variable -> none "RTN","BPSRPT3",198,0) ; "RTN","BPSRPT3",199,0) ; Return Value -> ptr = pointer to VA DRUG CLASS file (#50.605) "RTN","BPSRPT3",200,0) ; ^ = Exit "RTN","BPSRPT3",201,0) ; "RTN","BPSRPT3",202,0) SELDRGCL() N DIC,DIRUT,DUOUT,Y "RTN","BPSRPT3",203,0) ; "RTN","BPSRPT3",204,0) ;Prompt for entry "RTN","BPSRPT3",205,0) ;W ! D SELDRGC^BPSRPT6 "RTN","BPSRPT3",206,0) ;Using DIC^PSNDI per ICR 4554 - BPS*1*14 ticket 313337 "RTN","BPSRPT3",207,0) S DIC="50.605",DIC(0)="QEAMZ" D DIC^PSNDI(DIC,"BPS",.DIC,,,) "RTN","BPSRPT3",208,0) ; "RTN","BPSRPT3",209,0) ;call returns DRUG CLASS CODE, need to extract DRUG CLASSIFICATION "RTN","BPSRPT3",210,0) I +$G(Y)>0 S Y=$P($G(Y(0)),"^",2) I $G(Y)="" S Y=-1 "RTN","BPSRPT3",211,0) ; "RTN","BPSRPT3",212,0) ;If nothing was returned set Y="-1" so report knows "RTN","BPSRPT3",213,0) I $G(Y)=-1 S Y="^" "RTN","BPSRPT3",214,0) ; "RTN","BPSRPT3",215,0) Q Y "RTN","BPSRPT3",216,0) ; "RTN","BPSRPT3",217,0) ; Enter Date Range "RTN","BPSRPT3",218,0) ; "RTN","BPSRPT3",219,0) ; Input Variable -> TYPE = 7 CLOSE REPORT "RTN","BPSRPT3",220,0) ; 1-6 OTHER REPORTS "RTN","BPSRPT3",221,0) ; "RTN","BPSRPT3",222,0) ; Return Value -> P1^P2 "RTN","BPSRPT3",223,0) ; "RTN","BPSRPT3",224,0) ; where P1 = From Date "RTN","BPSRPT3",225,0) ; = ^ Exit "RTN","BPSRPT3",226,0) ; P2 = To Date "RTN","BPSRPT3",227,0) ; = blank for Exit "RTN","BPSRPT3",228,0) ; "RTN","BPSRPT3",229,0) SELDATE(TYPE) N BPSIBDT,DIR,DIRUT,DTOUT,DUOUT,VAL,X,Y "RTN","BPSRPT3",230,0) S TYPE=$S($G(TYPE)=7:"CLOSE",1:"TRANSACTION") "RTN","BPSRPT3",231,0) SELDATE1 S VAL="",DIR(0)="DA^:DT:EX",DIR("A")="START WITH "_TYPE_" DATE: ",DIR("B")="T-1" "RTN","BPSRPT3",232,0) W ! D ^DIR "RTN","BPSRPT3",233,0) ; "RTN","BPSRPT3",234,0) ;Check for "^", timeout, or blank entry "RTN","BPSRPT3",235,0) I ($G(DUOUT)=1)!($G(DTOUT)=1)!($G(X)="") S VAL="^" "RTN","BPSRPT3",236,0) ; "RTN","BPSRPT3",237,0) I VAL="" D "RTN","BPSRPT3",238,0) .S $P(VAL,U)=Y "RTN","BPSRPT3",239,0) .S DIR(0)="DA^"_VAL_":DT:EX",DIR("A")=" GO TO "_TYPE_" DATE: ",DIR("B")="T" "RTN","BPSRPT3",240,0) .D ^DIR "RTN","BPSRPT3",241,0) .; "RTN","BPSRPT3",242,0) .;Check for "^", timeout, or blank entry "RTN","BPSRPT3",243,0) .I ($G(DUOUT)=1)!($G(DTOUT)=1)!($G(X)="") S VAL="^" Q "RTN","BPSRPT3",244,0) .; "RTN","BPSRPT3",245,0) .;Define Entry "RTN","BPSRPT3",246,0) .S $P(VAL,U,2)=Y "RTN","BPSRPT3",247,0) ; "RTN","BPSRPT3",248,0) Q VAL "RTN","BPSRPT3",249,0) ; "RTN","BPSRPT3",250,0) ; Select to Include Open or Closed or All claims "RTN","BPSRPT3",251,0) ; "RTN","BPSRPT3",252,0) ; Input Variable -> DFLT = 0 = All "RTN","BPSRPT3",253,0) ; 1 = Closed "RTN","BPSRPT3",254,0) ; 2 = Open "RTN","BPSRPT3",255,0) ; "RTN","BPSRPT3",256,0) ; Return Value -> 0 = All, 1 = Closed, 2 = Open "RTN","BPSRPT3",257,0) SELOPCL(DFLT) N DIC,DIR,DIRUT,DUOUT,X,Y "RTN","BPSRPT3",258,0) ; "RTN","BPSRPT3",259,0) S DFLT=$S($G(DFLT)=1:"C",$G(DFLT)=2:"O",1:"A") "RTN","BPSRPT3",260,0) S DIR(0)="S^O:OPEN;C:CLOSED;A:ALL" "RTN","BPSRPT3",261,0) S DIR("A")="Include (O)pen, (C)losed, or (A)ll Claims",DIR("B")=DFLT "RTN","BPSRPT3",262,0) D ^DIR "RTN","BPSRPT3",263,0) I ($G(DUOUT)=1)!($G(DTOUT)=1) S Y="^" "RTN","BPSRPT3",264,0) ; "RTN","BPSRPT3",265,0) S Y=$S(Y="C":1,Y="O":2,1:0) "RTN","BPSRPT3",266,0) Q Y "RTN","BPSRPT3",267,0) ; "RTN","BPSSCRCV") 0^1^B47413521^B46628770 "RTN","BPSSCRCV",1,0) BPSSCRCV ;BHAM ISC/SS - ECME SCREEN CHANGE VIEW ;05-APR-05 "RTN","BPSSCRCV",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,5,7,11,14**;JUN 2004;Build 2 "RTN","BPSSCRCV",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSSCRCV",4,0) ;USER SCREEN "RTN","BPSSCRCV",5,0) Q "RTN","BPSSCRCV",6,0) ;**** "RTN","BPSSCRCV",7,0) ;This software is using PARAMETER TOOLS (see XT*7.3*26) to store user's settings: "RTN","BPSSCRCV",8,0) ;PARAMETER DEFINITION NAME="BPS USRSCR" (file #8989.51, IA# 2263) "RTN","BPSSCRCV",9,0) ;ENTITY is "USR" , i.e. IEN in ^VA(200 -- see definition for "BPS USRSCR" "RTN","BPSSCRCV",10,0) ;INSTANCEs are as follows: "RTN","BPSSCRCV",11,0) ;1.01 ONE/ALL USERS --'U' ONE USER, 'A' ALL; Display claims for ONE or ALL users "RTN","BPSSCRCV",12,0) ;1.02 ONE/ALL PATIENTS --'P' FOR ONE PATIENT; 'A' FOR ALL; Display claims for ONE/ALL PATIENTS "RTN","BPSSCRCV",13,0) ;1.03 ONE/ALL RX --'R' FOR ONE RX; 'A' FOR ALL; Display claims for ONE or ALL RX "RTN","BPSSCRCV",14,0) ;1.04 HOURS/DAYS -- 'D' FOR DAYS; 'H' FOR HOURS; Use HOURS or DAYS to specify timeframe "RTN","BPSSCRCV",15,0) ;1.05 TIMEFRAME -- NUMBER Depends on the value of the field "USR SCR HOURS/DAYS" this field will "RTN","BPSSCRCV",16,0) ;store the default number of HOURS from NOW or DAYS from TODAY to select claims to display "RTN","BPSSCRCV",17,0) ;1.06 REJECTED/PAYABLE --'R' FOR REJECTS; 'P' FOR PAYABLES; 'U' FOR UNSTRANDED; 'A' FOR ALL; Display Rejects or Payables or Unstranded or ALL claims "RTN","BPSSCRCV",18,0) ;1.07 RELEASED/NOT RELEASED --'R' FOR RELEASED; 'N' FOR NON-RELEASED; 'A' FOR ALL; Display Released Rxs or Non-Released Rxs or ALL "RTN","BPSSCRCV",19,0) ;1.08 CMOP/MAIL/WINDOW --'C' FOR CMOP; 'M' FOR MAIL;'W' FOR WINDOW;'A' FOR ALL; Display CMOP or Mail or Window or ALL Rxs "RTN","BPSSCRCV",20,0) ;1.09 REALTIME/BACKBILL --'R' FOR REALTIME; 'B' FOR BACKBILLS; 'P' FOR PRO Option; 'A' FOR ALL; Display RealTime Fills or Backbills or PRO Option or ALL "RTN","BPSSCRCV",21,0) ;1.1 REJECT CODE/ALL --'R' FOR REJECT CODE; 'A' FOR ALL; Display Specific Reject Code or ALL Reject "RTN","BPSSCRCV",22,0) ;Codes 0 means ALL Reject Codes otherwise - Reject Code value "RTN","BPSSCRCV",23,0) ;1.11 SPECIFIC/ALL INSURANCES --'I' FOR SPECIFIC INSURANCE(S);'A' FOR ALL; Display Specific Insurance Company(s) or All null - ALL otherwise - pointer to INSURANCE COMPANY file #36 "RTN","BPSSCRCV",24,0) ;1.12 SORT LIST --'T' FOR TRANSACTION DATE;'D' FOR DIVISION; 'I' FOR INSURANCE; 'C' FOR REJECT CODE; "RTN","BPSSCRCV",25,0) ;'P' FOR PATIENT NAME -- 'N' FOR DRUG NAME; 'B' FOR BILL TYPE (BB/P2/RT); 'L' FOR FILL LOCATION; "RTN","BPSSCRCV",26,0) ;'R' FOR RELEASED/NON-RELEASED -- 'A' FOR ACTIVE/DISCONTINUED; the field used to sort claims in the list "RTN","BPSSCRCV",27,0) ;1.13 ALL ECME PHARMACY DIVISIONS --'D' FOR DIVISION; 'A' FOR ALL; "RTN","BPSSCRCV",28,0) ;1.14 SELECTED INSURANCE -- Single, or multiple, insurance(s) to select claims for the User Screen, to store INSURANCE COMPANY pointer (#36) "RTN","BPSSCRCV",29,0) ;1.15 SELECTED REJECTED CODE --POINTER TO BPS NCPDP REJECT CODES FILE (#9002313.93) Reject code selected by the user to filter claims. "RTN","BPSSCRCV",30,0) ;1.16 SELECTED USER -- POINTER TO NEW PERSON FILE (#200) Selected user for the user screen "RTN","BPSSCRCV",31,0) ;1.17 SELECTED PATIENT -- POINTER TO PATIENT FILE (#2) Selected patient for the User Screen "RTN","BPSSCRCV",32,0) ;1.18 SELECTED RX -- POINTER TO PRESCRIPTION FILE (#52) Selected RX "RTN","BPSSCRCV",33,0) ;2 ECME PHARMACY DIVISION -- the list of POINTERs TO BPS PHARMACIES FILE (#9002313.56) separated by ";" "RTN","BPSSCRCV",34,0) ;should start and end with ";", example: ";4;5;" "RTN","BPSSCRCV",35,0) ;2.01 ELIGIBILITY TYPE --'V' FOR VETERAN;'T' FOR TRICARE;'C' FOR CHAMPVA;'A' FOR ALL; Display claims for specific Eligibility Type or ALL (BNT BPS*1.0*7) "RTN","BPSSCRCV",36,0) ;2.02 OPEN/CLOSED/ALL --'O' OPEN CLAIMS;'C' CLOSED CLAIMS;'A' FOR ALL; Display Open, Closed, or ALL claims (BNT BPS*1.0*7) "RTN","BPSSCRCV",37,0) ;2.03 SUBMISSION TYPE --'B' BILLING REQUESTS;'R' REVERSALS;'A' FOR ALL; Display specific submission type claims or ALL (BNT BPS*1.0*7) "RTN","BPSSCRCV",38,0) ;2.04 INSURANCES -- List of POINTERs to the INSURANCE COMPANY FILE (#36) separated by ";" "RTN","BPSSCRCV",39,0) ;should start and end with ";", example: ";4;5;" "RTN","BPSSCRCV",40,0) ;NOTE: use D ^XPAREDIT to add/edit values "RTN","BPSSCRCV",41,0) ; "RTN","BPSSCRCV",42,0) ;***** "RTN","BPSSCRCV",43,0) ; "RTN","BPSSCRCV",44,0) CV ; "RTN","BPSSCRCV",45,0) D FULL^VALM1 "RTN","BPSSCRCV",46,0) W @IOF "RTN","BPSSCRCV",47,0) K BPARR "RTN","BPSSCRCV",48,0) I +$G(DUZ)=0 D ERRMSG^BPSSCRCV("Unknown User") Q "RTN","BPSSCRCV",49,0) N BPDUZ7 "RTN","BPSSCRCV",50,0) S BPDUZ7=+DUZ "RTN","BPSSCRCV",51,0) ;always get current profile from the file "RTN","BPSSCRCV",52,0) D READPROF^BPSSCRSL(.BPARR,BPDUZ7) "RTN","BPSSCRCV",53,0) D SAVEVIEW^BPSSCR01(.BPARR) "RTN","BPSSCRCV",54,0) ;edit current profile "RTN","BPSSCRCV",55,0) D EDITPROF(.BPARR,.BPDUZ7) "RTN","BPSSCRCV",56,0) ;ask user if need to save everything in USR PROFILE file "RTN","BPSSCRCV",57,0) ;(except SORT LIST field) "RTN","BPSSCRCV",58,0) N BPSRT S BPSRT=BPARR(1.12) "RTN","BPSSCRCV",59,0) K BPARR(1.12) "RTN","BPSSCRCV",60,0) D ENDEDIT^BPSSCRSL(.BPARR,+BPDUZ7) "RTN","BPSSCRCV",61,0) S BPARR(1.12)=BPSRT "RTN","BPSSCRCV",62,0) D SAVEVIEW^BPSSCR01(.BPARR) "RTN","BPSSCRCV",63,0) S VALMBG=1 "RTN","BPSSCRCV",64,0) D REDRAW^BPSSCRUD("Updating screen...") "RTN","BPSSCRCV",65,0) Q "RTN","BPSSCRCV",66,0) ;edit user profile for CHANGE VIEW "RTN","BPSSCRCV",67,0) EDITPROF(BPARR,BPDUZ7) ; "RTN","BPSSCRCV",68,0) I +$G(DUZ)=0 D ERRMSG("Unknown User") Q "RTN","BPSSCRCV",69,0) N BP1,BPTF,BPQ,BPINP "RTN","BPSSCRCV",70,0) N BPRET "RTN","BPSSCRCV",71,0) N DIR,DR,DIE,DA "RTN","BPSSCRCV",72,0) ;get ONE/ALL USERS? "RTN","BPSSCRCV",73,0) ;EDITFLD(FILENO,FLDNO,RECIEN,CODESET,PRMTMSG,DFLTCODE) ; "RTN","BPSSCRCV",74,0) S BPRET=$$DS^BPSSCRDS(.BPARR,+BPDUZ7) ;get divisions "RTN","BPSSCRCV",75,0) Q:BPRET=-2 ;quit due to timeout or ^ "RTN","BPSSCRCV",76,0) Q:$$EDITFLD(2.01,+BPDUZ7,"S^V:VETERAN;T:TRICARE;C:CHAMPVA;A:ALL","Select Certain Eligibility Type or (A)ll","V",.BPARR)=-1 "RTN","BPSSCRCV",77,0) S BPQ=0 F D Q:BPQ'=0 "RTN","BPSSCRCV",78,0) . S BPINP=$$EDITFLD(1.01,+BPDUZ7,"S^U:ONE USER;A:ALL","Display One ECME (U)ser or (A)LL","ALL",.BPARR) "RTN","BPSSCRCV",79,0) . S:BPINP=-1 BPQ=-1 S:$P(BPINP,U,2)="A" BPQ=1 I BPQ'=0 Q "RTN","BPSSCRCV",80,0) . S BPINP=$$EDITFLD(1.16,+BPDUZ7,"P^VA(200,","Select User","",.BPARR) "RTN","BPSSCRCV",81,0) . S:BPINP=-1 BPQ=-1 S:$P(BPINP,U,2)'="" BPQ=1 I BPQ'=0 Q "RTN","BPSSCRCV",82,0) Q:BPQ=-1 ;quit due to timeout or ^ "RTN","BPSSCRCV",83,0) S BPQ=0 F D Q:BPQ'=0 "RTN","BPSSCRCV",84,0) . S BPINP=$$EDITFLD(1.02,+BPDUZ7,"S^P:ONE PATIENT;A:ALL","Display One (P)atient or (A)LL","ALL",.BPARR) "RTN","BPSSCRCV",85,0) . S:BPINP=-1 BPQ=-1 S:$P(BPINP,U,2)="A" BPQ=1 I BPQ'=0 Q "RTN","BPSSCRCV",86,0) . S BPINP=$$EDITFLD(1.17,+BPDUZ7,"P^DPT(","Select Patient","",.BPARR) "RTN","BPSSCRCV",87,0) . S:BPINP=-1 BPQ=-1 S:$P(BPINP,U,2)'="" BPQ=1 I BPQ'=0 Q "RTN","BPSSCRCV",88,0) Q:BPQ=-1 ;quit due to timeout or ^ "RTN","BPSSCRCV",89,0) S BPQ=0 F D Q:BPQ'=0 "RTN","BPSSCRCV",90,0) . S BPINP=$$EDITFLD(1.03,+BPDUZ7,"S^R:ONE RX;A:ALL","Display One (R)x or (A)LL","ALL",.BPARR) "RTN","BPSSCRCV",91,0) . S:BPINP=-1 BPQ=-1 S:$P(BPINP,U,2)="A" BPQ=1 I BPQ'=0 Q "RTN","BPSSCRCV",92,0) . S BPINP=$$EDITRX^BPSSCRPR(1.18,+BPDUZ7,"Select RX","",.BPARR) "RTN","BPSSCRCV",93,0) . S:BPINP=-1 BPQ=-1 S:$P(BPINP,U,2)'="" BPQ=1 I BPQ'=0 Q "RTN","BPSSCRCV",94,0) Q:BPQ=-1 ;quit due to timeout or ^ "RTN","BPSSCRCV",95,0) S BPINP=$$EDITFLD(1.04,+BPDUZ7,"S^D:DAYS;H:HOURS","Activity Timeframe (H)ours or (D)ays","DAYS",.BPARR) "RTN","BPSSCRCV",96,0) I BPINP=-1 Q ;quit due to timeout or ^ "RTN","BPSSCRCV",97,0) S BPTF=$P(BPINP,U,2) "RTN","BPSSCRCV",98,0) Q:$$EDITFLD(1.05,+BPDUZ7,"N^1:999:0","Activity Timeframe Value",$S(BPTF="H":24,1:7),.BPARR)=-1 "RTN","BPSSCRCV",99,0) Q:$$EDITFLD(2.02,+BPDUZ7,"S^O:OPEN CLAIMS;C:CLOSED CLAIMS;A:ALL","Select Open/Closed or All Claims","O",.BPARR)=-1 "RTN","BPSSCRCV",100,0) Q:$$EDITFLD(2.03,+BPDUZ7,"S^B:BILLING REQUESTS;R:REVERSALS;A:ALL","Select Submission Type","A",.BPARR)=-1 "RTN","BPSSCRCV",101,0) Q:$$EDITFLD(1.06,+BPDUZ7,"S^R:REJECTS;P:PAYABLES;U:UNSTRANDED;A:ALL","Display (R)ejects or (P)ayables or (U)nstranded or (A)LL","REJECTS",.BPARR)=-1 "RTN","BPSSCRCV",102,0) Q:$$EDITFLD(1.07,+BPDUZ7,"S^R:RELEASED;N:NON-RELEASED;A:ALL","Display (R)eleased Rxs or (N)on-Released Rxs or (A)LL","RELEASED",.BPARR)=-1 "RTN","BPSSCRCV",103,0) Q:$$EDITFLD(1.08,+BPDUZ7,"S^C:CMOP;M:MAIL;W:WINDOW;A:ALL","Display (C)MOP or (M)ail or (W)indow or (A)LL","ALL",.BPARR)=-1 "RTN","BPSSCRCV",104,0) Q:$$EDITFLD(1.09,+BPDUZ7,"S^R:REALTIME;B:BACKBILLS;P:PRO OPTION;A:ALL","Display (R)ealTime Fills or (B)ackbills or (P)RO Option or (A)LL","ALL",.BPARR)=-1 "RTN","BPSSCRCV",105,0) S BPQ=0 F D Q:BPQ'=0 "RTN","BPSSCRCV",106,0) . S BPINP=$$EDITFLD(1.1,+BPDUZ7,"S^R:REJECT CODE;A:ALL","Display Specific (R)eject Code or (A)LL","ALL",.BPARR) "RTN","BPSSCRCV",107,0) . S:BPINP=-1 BPQ=-1 S:$P(BPINP,U,2)="A" BPQ=1 I BPQ'=0 Q "RTN","BPSSCRCV",108,0) . S BPINP=$$EDITFLD(1.15,+BPDUZ7,"P^BPSF(9002313.93,","Select Reject Code","",.BPARR) "RTN","BPSSCRCV",109,0) . S:BPINP=-1 BPQ=-1 S:$P(BPINP,U,2)'="" BPQ=1 I BPQ'=0 Q "RTN","BPSSCRCV",110,0) Q:BPQ=-1 ;quit due to timeout or ^ "RTN","BPSSCRCV",111,0) Q:$$INSURSEL^BPSSCRCU(.BPARR,+BPDUZ7)=-1 "RTN","BPSSCRCV",112,0) Q "RTN","BPSSCRCV",113,0) ; "RTN","BPSSCRCV",114,0) ERRMSG(BPMSG) ; "RTN","BPSSCRCV",115,0) W !,"***",BPMSG,"***",! "RTN","BPSSCRCV",116,0) D PAUSE^VALM1 "RTN","BPSSCRCV",117,0) Q "RTN","BPSSCRCV",118,0) ;/** "RTN","BPSSCRCV",119,0) ;FLDNO - PARAMETERS INSTANCE "RTN","BPSSCRCV",120,0) ;RECIEN - User DUZ "RTN","BPSSCRCV",121,0) ;DIR0 - like DIR(0) node for ^DIR - i.e. field type, etc "RTN","BPSSCRCV",122,0) ;PRMTMSG - user prompt "RTN","BPSSCRCV",123,0) ;DFLTVAL - pass the default value for the case if there is no value in database "RTN","BPSSCRCV",124,0) ;BPARRAY - array to store and change values in profile "RTN","BPSSCRCV",125,0) ;returns: "RTN","BPSSCRCV",126,0) ;as return value: "RTN","BPSSCRCV",127,0) ; "1^value" - if selected "RTN","BPSSCRCV",128,0) ; "-1" if timeout or uparrow "RTN","BPSSCRCV",129,0) ;via BPARRAY "RTN","BPSSCRCV",130,0) ; BPARRAY(filedno)=value "RTN","BPSSCRCV",131,0) EDITFLD(FLDNO,RECIEN,DIR0,PRMTMSG,DFLTVAL,BPARRAY) ;*/ "RTN","BPSSCRCV",132,0) N DIR,RETV,RETARR "RTN","BPSSCRCV",133,0) N RECIENS,FDA,LCK,ERRARR "RTN","BPSSCRCV",134,0) S RETV=$$GETPARAM^BPSSCRSL(FLDNO,RECIEN) "RTN","BPSSCRCV",135,0) I FLDNO=1.17 S RETV=$P($G(^DPT(+RETV,0)),U) "RTN","BPSSCRCV",136,0) ;if data then use it, otherwise use data from parameter "RTN","BPSSCRCV",137,0) I $L($G(RETV))>0 S DFLTVAL=RETV E S DFLTVAL=$G(DFLTVAL) "RTN","BPSSCRCV",138,0) ;prompt the user "RTN","BPSSCRCV",139,0) S RETV=$$PROMPT(DIR0,PRMTMSG,DFLTVAL) "RTN","BPSSCRCV",140,0) Q:RETV<0 -1 "RTN","BPSSCRCV",141,0) ;save it in the database "RTN","BPSSCRCV",142,0) S BPARRAY(FLDNO)=RETV "RTN","BPSSCRCV",143,0) Q "1^"_RETV "RTN","BPSSCRCV",144,0) ; "RTN","BPSSCRCV",145,0) ; "RTN","BPSSCRCV",146,0) FILEIT(FILENO,FLDNO,RECIEN,NEWVAL) ; "RTN","BPSSCRCV",147,0) N RECIENS "RTN","BPSSCRCV",148,0) S RECIENS=RECIEN_"," "RTN","BPSSCRCV",149,0) S FDA(FILENO,RECIENS,FLDNO)=NEWVAL "RTN","BPSSCRCV",150,0) L +^BPS(FILENO,RECIEN,1):10 S LCK=$T I 'LCK Q "0^"_NEWVAL_"^LOCKED" ;quit "RTN","BPSSCRCV",151,0) D FILE^DIE("","FDA","ERRARR") "RTN","BPSSCRCV",152,0) I LCK L -^BPS(FILENO,RECIEN,1) "RTN","BPSSCRCV",153,0) I $D(ERRARR) Q "0^"_NEWVAL_"^"_ERRARR("DIERR",1,"TEXT",1) "RTN","BPSSCRCV",154,0) Q "1^"_NEWVAL "RTN","BPSSCRCV",155,0) ; "RTN","BPSSCRCV",156,0) ;prompts for selection "RTN","BPSSCRCV",157,0) ;returns selection "RTN","BPSSCRCV",158,0) ;OR -1 when timeout and uparrow "RTN","BPSSCRCV",159,0) PROMPT(ZERONODE,PRMTMSG,DFLTVAL) ; "RTN","BPSSCRCV",160,0) N Y,DUOUT,DTOUT,BPQUIT,DIROUT "RTN","BPSSCRCV",161,0) S BPQUIT=0 "RTN","BPSSCRCV",162,0) I $E(ZERONODE,1,1)="P" D "RTN","BPSSCRCV",163,0) . N DIC "RTN","BPSSCRCV",164,0) . S DIC="^"_$P(ZERONODE,U,2) "RTN","BPSSCRCV",165,0) . S DIC(0)="AEMNQ" "RTN","BPSSCRCV",166,0) . S:$L($G(DFLTVAL))>0 DIC("B")=DFLTVAL "RTN","BPSSCRCV",167,0) . S DIC("A")=PRMTMSG_": " "RTN","BPSSCRCV",168,0) . D ^DIC "RTN","BPSSCRCV",169,0) . I (Y=-1)!$D(DUOUT)!$D(DTOUT) S BPQUIT=1 "RTN","BPSSCRCV",170,0) E D "RTN","BPSSCRCV",171,0) . N DIR "RTN","BPSSCRCV",172,0) . S DIR(0)=ZERONODE "RTN","BPSSCRCV",173,0) . S DIR("A")=PRMTMSG "RTN","BPSSCRCV",174,0) . S:$L($G(DFLTVAL))>0 DIR("B")=DFLTVAL "RTN","BPSSCRCV",175,0) . D ^DIR "RTN","BPSSCRCV",176,0) . I (Y=-1)!$D(DIROUT)!$D(DUOUT)!$D(DTOUT) S BPQUIT=1 "RTN","BPSSCRCV",177,0) I BPQUIT=1 Q -1 "RTN","BPSSCRCV",178,0) Q $P(Y,U) "RTN","BPSSCRCV",179,0) ; "RTN","BPSSCRCV",180,0) GETFLD(FILENO,FLDNO,RECIEN) ; "RTN","BPSSCRCV",181,0) N RETV,RETARR "RTN","BPSSCRCV",182,0) N RECIENS "RTN","BPSSCRCV",183,0) S RECIENS=RECIEN_"," "RTN","BPSSCRCV",184,0) ; first try to get the value from file "RTN","BPSSCRCV",185,0) D GETS^DIQ(FILENO,RECIENS,FLDNO,"E","RETARR") "RTN","BPSSCRCV",186,0) S RETV=$G(RETARR(FILENO,RECIENS,FLDNO,"E")) "RTN","BPSSCRCV",187,0) Q $G(RETV) "RTN","BPSSCRCV",188,0) ; "RTN","BPSSCRCV",189,0) ;save all profile array to file "RTN","BPSSCRCV",190,0) ;BPARRAY - arrays with pointers to 9002313.56 "RTN","BPSSCRCV",191,0) ;BPDUZ7 - DUZ "RTN","BPSSCRCV",192,0) FILEALL(BPARRAY,BPDUZ7) ; "RTN","BPSSCRCV",193,0) ;BPS*14 - RRA changed API, because previously it was re-writing Division "RTN","BPSSCRCV",194,0) ;and Insurance parameter regardless if it was modified and had a value "RTN","BPSSCRCV",195,0) ;ticket 337299 "RTN","BPSSCRCV",196,0) N BPFLD,BP2 "RTN","BPSSCRCV",197,0) S BPFLD=0 "RTN","BPSSCRCV",198,0) F S BPFLD=$O(BPARRAY(BPFLD)) Q:$G(BPFLD)="" D "RTN","BPSSCRCV",199,0) . I BPFLD="DIVS" I $$SAVEPAR^BPSSCRSL(2,BPDUZ7,$G(BPARRAY("DIVS"))) "RTN","BPSSCRCV",200,0) . I BPFLD="INS" I $$SAVEPAR^BPSSCRSL(2.04,BPDUZ7,$G(BPARRAY("INS"))) "RTN","BPSSCRCV",201,0) . Q:+BPFLD=0 I $$SAVEPAR^BPSSCRSL(BPFLD,+BPDUZ7,$G(BPARRAY(BPFLD))) "RTN","BPSSCRCV",202,0) ;I $$SAVEPAR^BPSSCRSL(2,BPDUZ7,$G(BPARRAY("DIVS"))) "RTN","BPSSCRCV",203,0) ;I $$SAVEPAR^BPSSCRSL(2.04,BPDUZ7,$G(BPARRAY("INS"))) "RTN","BPSSCRCV",204,0) Q "VER") 8.0^22.0 "BLD",9087,6) ^13 **END** **END**