BPSREOP1 ;BHAM ISC/SS - REOPEN CLOSED CLAIMS ;03/07/08 14:54
;;1.0;E CLAIMS MGMT ENGINE;**3,7,10,11,20**;JUN 2004;Build 27
;;Per VA Directive 6402, this routine should not be modified.
;Reopen closed claims
;
;create an ^TMP for the list manager
;
COLLECT(BPDFN,BPSTRT,BPEND) ;
D CLEAN^VALM10
N LINE
N BPIEN02,BPIEN59
S LINE=1
S BPIEN59=0
F S BPIEN59=$O(^BPST("AC",BPDFN,BPIEN59)) Q:+BPIEN59=0 D
. I $P($G(^BPST(BPIEN59,12)),U,2)<BPSTRT Q
. I $P($G(^BPST(BPIEN59,12)),U,2)>BPEND Q
. ; Don't display deleted prescriptions
. I $$RXDEL^BPSOS($P(^BPST(BPIEN59,1),U,11),$P(^BPST(BPIEN59,1),U,1)) Q
. S BPIEN02=+$P($G(^BPST(BPIEN59,0)),U,4)
. ;if the is no BPS CLAIMS - error
. Q:BPIEN02=0
. ;if NOT closed
. I +$P($G(^BPSC(BPIEN02,900)),U)=0 Q
. D SET^VALM10(LINE,$$LJ^BPSSCR02(LINE,6)_$$CLAIMINF(BPIEN59),BPIEN59)
. S LINE=LINE+1
S VALMCNT=LINE-1 ;"of PAGE" fix - VALMCNT should be EXACT number of lines on the screen
Q
;claim info for list manager screen
CLAIMINF(BP59) ;*/
Q $$CLAIMINF^BPSSCR02(BP59)
;
;patient info for header
PATINF(BPDFN) ;*/
N X
S X=$E($$PATNAME(BPDFN),1,22)_" "_$$SSN4^BPSSCRU2(BPDFN)
Q $$LJ^BPSSCR02(X,29) ;name
;
;------------ patient's name
PATNAME(BPDFN) ;
Q $E($P($G(^DPT(BPDFN,0)),U),1,30)
;
;/**
;ECME User Screen Reopen Closed Claim Hidden Action (ROC)
;**/
EUSCREOP ;
N BPREOP,BP59,BPDFN,BPDISP,BPCNT,BPI,BPJ,BPCOMM,BPRETV,BPIEN02,BPSRXNUM
; Check for BPS MANAGER security key
I '$D(^XUSEC("BPS MANAGER",DUZ)) D Q
. W !,"You must hold the BPS MANAGER Security Key to access the",!,"Reopen Closed Claims option."
. S VALMBCK="R"
. D PAUSE^VALM1
S (BP59,BPCNT,BPI,BPJ)=0
I '$D(@(VALMAR)) G REOP
D FULL^VALM1
; Select the claim(s) to reopen
W !,"Enter the line number for the claim you want to reopen."
I $$ASKLINES^BPSSCRU4("","C",.BPREOP,VALMAR) D
. ; Build array to display to user
. F S BP59=$O(BPREOP(BP59)) Q:BP59="" D
. . S BPDFN=+$P($G(^BPST(BP59,0)),U,6)
. . S BPCNT=BPCNT+1
. . I '$D(BPDISP(BPDFN)) S BPDISP(BPDFN,BPCNT)=$$LJ^BPSSCR02($$PATNAME(BPDFN)_" :",50),BPCNT=BPCNT+1
. . S BPDISP(BPDFN,BPCNT)=@VALMAR@($P(BPREOP(BP59),U,1),0)
. . ;
. . ; check for non-billable entry
. . I $$NB^BPSSCR03(BP59) D Q
. . . S BPCNT=BPCNT+1
. . . S BPDISP(BPDFN,BPCNT)="Entry is NON BILLABLE. There is no claim to reopen."
. . . K BPREOP(BP59)
. . . Q
. . ;
. . ; Make sure this claim is closed
. . I '$$CLOSED02^BPSSCR03($P($G(^BPST(BP59,0)),U,4)) D
. . . S BPCNT=BPCNT+1
. . . S BPDISP(BPDFN,BPCNT)="Claim NOT closed and cannot be reopened."
. . . K BPREOP(BP59)
. . ; Make sure the Prescription isn't deleted
. . I $$RXDEL^BPSOS($P(^BPST(BP59,1),U,11),$P(^BPST(BP59,1),U,1)) D
. . . S BPCNT=BPCNT+1
. . . S BPDISP(BPDFN,BPCNT)="The prescription has been marked DELETED and cannot be reopened."
. . . K BPREOP(BP59)
. ; Display the selected claims from the display array
. W !!,"You've chosen to reopen the following prescriptions(s) for"
. F S BPI=$O(BPDISP(BPI)) Q:BPI="" D
. . F S BPJ=$O(BPDISP(BPI,BPJ)) Q:BPJ="" D
. . . W !,BPDISP(BPI,BPJ)
. . Q
. Q
; If there are any closed claims selected, verify if the users still wants to reopen
I $D(BPREOP) D
. W !!,"All Selected Rxs will be reopened using the same information gathered in the",!,"following prompts.",!!
. I $$YESNO^BPSSCRRS("Are you sure?(Y/N)")=1 D
. . ; Get the Reopen Comments to be stored in the BPS CLAIMS file
. . S BPCOMM=$$PROMPT("REOPEN COMMENTS","","F",1,40)
. . Q:BPCOMM["^"
. . ; Do we REALLY want to reopen the claims?
. . I $$YESNO^BPSSCRRS("ARE YOU SURE YOU WANT TO RE-OPEN THIS CLAIM? (Y/N)","No")=1 D
. . . S (BPCNT,BP59)=0
. . . ; Loop through all selected claims and reopen them one at a time
. . . ; using the same comments
. . . F S BP59=$O(BPREOP(BP59)) Q:BP59="" D
. . . . S BPIEN02=+$P($G(^BPST(BP59,0)),U,4)
. . . . S BPRETV=$$REOPEN^BPSBUTL(BP59,BPIEN02,$$NOW^XLFDT,+DUZ,BPCOMM)
. . . . W !,$P(BPRETV,U,2)
. . . . I +BPRETV S BPCNT=BPCNT+1
. . . . Q
. . . I BPCNT>1 W !!,BPCNT_" claims have been reopened.",! Q
. . . I BPCNT=1 W !!,"1 claim has been reopened.",! Q
. . . I BPCNT=0 W !!,"Unable to reopen claim" Q
I '$D(BPREOP) S VALMBCK="R" D PAUSE^VALM1 Q
D PAUSE^VALM1
D REDRAW^BPSSCRUD("Updating screen for reopened claims...")
Q
;
SELECT ;
I VALMCNT<1 D Q
. W !,"No claims to select." D PAUSE^VALM1 S VALMBCK="R"
N BP59,BPQ
D FULL^VALM1
S BP59=0
S BPQ=0
F S BPLINE=$$PROMPT("Select item","","A") D Q:BPQ
. I BPLINE="^" S BPQ=1 Q
. I '(BPLINE?1N.N) W !,"Please select a SINGLE Rx Line Item." Q
. S BP59=+$$GET59(+BPLINE) I BP59>0 S BPQ=1 Q
. W !,"Please select a VALID Rx Line Item."
I BPLINE="^" S VALMBCK="R" Q
I BP59=0 S VALMBCK="R" W !,"Invalid selection." D PAUSE^VALM1 Q
I $$SELCLAIM(BP59)<1 S VALMBCK="R" Q
;D RE^VALM4
D REDRAW
S VALMBCK="R"
Q
;
GET59(BPLINE) ;
Q +$O(^TMP("BPSREOP",$J,"VALM","IDX",BPLINE,0))
;
;display selected claim information
SELCLAIM(BP59) ;
D FULL^VALM1
W @IOF
N BPX,BPX1,BPDFN,BPIEN02,BPCLDATA,BPCOMM,BPRETV,BPQ
S BPDFN=+$P($G(^BPST(BP59,0)),U,6)
S BPX1=$$RXREF^BPSSCRU2(BP59)
W !,?1,$$LJ^BPSSCR02("PATIENT NAME: "_$$PATNAME(BPDFN),30)
W ?33,$$LJ^BPSSCR02("RX#: "_$$RXNUM^BPSSCRU2(+BPX1)_" "_$P(BPX1,U,2),22)
W ?57,$$LJ^BPSSCR02("DRUG: "_$$DRGNAME^BPSSCRU2(BP59),22)
;ien in BPS CLAIMS
S BPIEN02=+$P($G(^BPST(BP59,0)),U,4)
I BPIEN02=0 W !,"BPS CLAIMS file error!" D PAUSE^VALM1 Q -1
;Close info
S BPCLDATA=$G(^BPSC(BPIEN02,900))
;if the is no BPS CLAIMS - error
W !,?3,"CLOSED ",$$FORMDATE^BPSSCRU6(+$P($G(^BPSC(BPIEN02,900)),U,2),2)
W !,?4,"ECME#: "_$$ECMENUM^BPSSCRU2(BP59)_", DOS: "_$$LASTDOS^BPSUTIL2(BP59,1)
W ", RELEASE DATE: "_$$FORMDATE^BPSSCRU6($$RELDATE^BPSSCRU6(+BPX1,+$P(BPX1,U,2)),2)
W !,?4,"PLAN: ",$$PLANNAME^BPSSCRU6(BP59)," INSURANCE: ",$$INSNAME^BPSSCRU6(BP59)
W !,?4,"CLOSE REASON: ",$$CLREASON^BPSSCRU6(+$P(BPCLDATA,U,4))
W !,?4,"DROP TO PAPER: ",$S(+$P(BPCLDATA,U,5)=1:"YES",1:"NO")
W !,?4,"CLOSE USER: ",$P($G(^VA(200,+$P(BPCLDATA,U,3),0)),U)
W !!,"You have selected the CLOSED electronic claim listed above.",!
S BPCOMM=$$PROMPT("REOPEN COMMENTS","","F",1,40)
Q:BPCOMM["^" 0
S BPQ=$$YESNO^BPSSCRRS("ARE YOU SURE YOU WANT TO RE-OPEN THIS CLAIM? (Y/N)","No")
Q:BPQ<1 0
S BPRETV=$$REOPEN^BPSBUTL(BP59,BPIEN02,$$NOW^XLFDT,+DUZ,BPCOMM)
W !,$P(BPRETV,U,2),!
W !,"1 claim has been reopened.",!
D PAUSE^VALM1
Q 1
;
REDRAW ;
N BPARR
D CLEAN^VALM10
D COLLECT^BPSREOP1(BPDFN,BPSTRT,BPEND)
S VALMBCK="R"
Q
;input:
;BPSPROM - prompt text
;BPSDFVL - default value (optional)
;BPMODE - N- to enter numbers, F - free text, A - free text w/o limitations
;returns:
; "response"
; or "^" for quit
PROMPT(BPSPROM,BPSDFVL,BPMODE,MINLEN,MAXLEN) ;
N IR,X,Y,DIRUT,DIR
I BPMODE="N" S DIR(0)="N^::2"
I BPMODE="A" S DIR(0)="F^::2"
I BPMODE="F" S DIR(0)="F^"_MINLEN_":"_MAXLEN_":2^K:(X?1"" ""."" "") X"
S DIR("A")=BPSPROM
I $L($G(BPSDFVL))>0 S DIR("B")=$G(BPSDFVL)
D ^DIR I $D(DIRUT) Q "^"
I Y["^" Q "^"
Q Y
;
;Update reopen record in BPS CLAIM
;Input:
; BP02 - ien in BPS CLAIMS file
; BPCLOSED - value for CLOSED field
; BPREOPDT - reopen date/time
; BPDUZ - user DUZ (#200 ien)
; BPCOMM - reopen comment text
;Output:
; 0^message_error - error
; 1 - success
UPDREOP(BP02,BPCLOSED,BPREOPDT,BPDUZ,BPCOMM) ;
;Now update ECME database
N RECIENS,BPDA,BPLCK,ERRARR
S RECIENS=BP02_","
S BPDA(9002313.02,RECIENS,901)=BPCLOSED ;CLOSED = "NO"
S BPDA(9002313.02,RECIENS,906)=BPREOPDT ;reopen date/time
S BPDA(9002313.02,RECIENS,907)=+BPDUZ ;user
S BPDA(9002313.02,RECIENS,908)=BPCOMM ;comment
L +^BPST(9002313.02,+BP02):10
S BPLCK=$T
I 'BPLCK Q "0^Locked record" ;quit
D FILE^DIE("","BPDA","ERRARR")
I BPLCK L -^BPST(9002313.02,+BP02)
I $D(ERRARR) Q "0^"_ERRARR("DIERR",1,"TEXT",1)
Q 1
;
; Reopen Closed Claim displayed in ECME User Screen
REOP ;
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HBPSREOP1 8039 printed Nov 22, 2024@17:02:43 Page 2
BPSREOP1 ;BHAM ISC/SS - REOPEN CLOSED CLAIMS ;03/07/08 14:54
+1 ;;1.0;E CLAIMS MGMT ENGINE;**3,7,10,11,20**;JUN 2004;Build 27
+2 ;;Per VA Directive 6402, this routine should not be modified.
+3 ;Reopen closed claims
+4 ;
+5 ;create an ^TMP for the list manager
+6 ;
COLLECT(BPDFN,BPSTRT,BPEND) ;
+1 DO CLEAN^VALM10
+2 NEW LINE
+3 NEW BPIEN02,BPIEN59
+4 SET LINE=1
+5 SET BPIEN59=0
+6 FOR
SET BPIEN59=$ORDER(^BPST("AC",BPDFN,BPIEN59))
if +BPIEN59=0
QUIT
Begin DoDot:1
+7 IF $PIECE($GET(^BPST(BPIEN59,12)),U,2)<BPSTRT
QUIT
+8 IF $PIECE($GET(^BPST(BPIEN59,12)),U,2)>BPEND
QUIT
+9 ; Don't display deleted prescriptions
+10 IF $$RXDEL^BPSOS($PIECE(^BPST(BPIEN59,1),U,11),$PIECE(^BPST(BPIEN59,1),U,1))
QUIT
+11 SET BPIEN02=+$PIECE($GET(^BPST(BPIEN59,0)),U,4)
+12 ;if the is no BPS CLAIMS - error
+13 if BPIEN02=0
QUIT
+14 ;if NOT closed
+15 IF +$PIECE($GET(^BPSC(BPIEN02,900)),U)=0
QUIT
+16 DO SET^VALM10(LINE,$$LJ^BPSSCR02(LINE,6)_$$CLAIMINF(BPIEN59),BPIEN59)
+17 SET LINE=LINE+1
End DoDot:1
+18 ;"of PAGE" fix - VALMCNT should be EXACT number of lines on the screen
SET VALMCNT=LINE-1
+19 QUIT
+20 ;claim info for list manager screen
CLAIMINF(BP59) ;*/
+1 QUIT $$CLAIMINF^BPSSCR02(BP59)
+2 ;
+3 ;patient info for header
PATINF(BPDFN) ;*/
+1 NEW X
+2 SET X=$EXTRACT($$PATNAME(BPDFN),1,22)_" "_$$SSN4^BPSSCRU2(BPDFN)
+3 ;name
QUIT $$LJ^BPSSCR02(X,29)
+4 ;
+5 ;------------ patient's name
PATNAME(BPDFN) ;
+1 QUIT $EXTRACT($PIECE($GET(^DPT(BPDFN,0)),U),1,30)
+2 ;
+3 ;/**
+4 ;ECME User Screen Reopen Closed Claim Hidden Action (ROC)
+5 ;**/
EUSCREOP ;
+1 NEW BPREOP,BP59,BPDFN,BPDISP,BPCNT,BPI,BPJ,BPCOMM,BPRETV,BPIEN02,BPSRXNUM
+2 ; Check for BPS MANAGER security key
+3 IF '$DATA(^XUSEC("BPS MANAGER",DUZ))
Begin DoDot:1
+4 WRITE !,"You must hold the BPS MANAGER Security Key to access the",!,"Reopen Closed Claims option."
+5 SET VALMBCK="R"
+6 DO PAUSE^VALM1
End DoDot:1
QUIT
+7 SET (BP59,BPCNT,BPI,BPJ)=0
+8 IF '$DATA(@(VALMAR))
GOTO REOP
+9 DO FULL^VALM1
+10 ; Select the claim(s) to reopen
+11 WRITE !,"Enter the line number for the claim you want to reopen."
+12 IF $$ASKLINES^BPSSCRU4("","C",.BPREOP,VALMAR)
Begin DoDot:1
+13 ; Build array to display to user
+14 FOR
SET BP59=$ORDER(BPREOP(BP59))
if BP59=""
QUIT
Begin DoDot:2
+15 SET BPDFN=+$PIECE($GET(^BPST(BP59,0)),U,6)
+16 SET BPCNT=BPCNT+1
+17 IF '$DATA(BPDISP(BPDFN))
SET BPDISP(BPDFN,BPCNT)=$$LJ^BPSSCR02($$PATNAME(BPDFN)_" :",50)
SET BPCNT=BPCNT+1
+18 SET BPDISP(BPDFN,BPCNT)=@VALMAR@($PIECE(BPREOP(BP59),U,1),0)
+19 ;
+20 ; check for non-billable entry
+21 IF $$NB^BPSSCR03(BP59)
Begin DoDot:3
+22 SET BPCNT=BPCNT+1
+23 SET BPDISP(BPDFN,BPCNT)="Entry is NON BILLABLE. There is no claim to reopen."
+24 KILL BPREOP(BP59)
+25 QUIT
End DoDot:3
QUIT
+26 ;
+27 ; Make sure this claim is closed
+28 IF '$$CLOSED02^BPSSCR03($PIECE($GET(^BPST(BP59,0)),U,4))
Begin DoDot:3
+29 SET BPCNT=BPCNT+1
+30 SET BPDISP(BPDFN,BPCNT)="Claim NOT closed and cannot be reopened."
+31 KILL BPREOP(BP59)
End DoDot:3
+32 ; Make sure the Prescription isn't deleted
+33 IF $$RXDEL^BPSOS($PIECE(^BPST(BP59,1),U,11),$PIECE(^BPST(BP59,1),U,1))
Begin DoDot:3
+34 SET BPCNT=BPCNT+1
+35 SET BPDISP(BPDFN,BPCNT)="The prescription has been marked DELETED and cannot be reopened."
+36 KILL BPREOP(BP59)
End DoDot:3
End DoDot:2
+37 ; Display the selected claims from the display array
+38 WRITE !!,"You've chosen to reopen the following prescriptions(s) for"
+39 FOR
SET BPI=$ORDER(BPDISP(BPI))
if BPI=""
QUIT
Begin DoDot:2
+40 FOR
SET BPJ=$ORDER(BPDISP(BPI,BPJ))
if BPJ=""
QUIT
Begin DoDot:3
+41 WRITE !,BPDISP(BPI,BPJ)
End DoDot:3
+42 QUIT
End DoDot:2
+43 QUIT
End DoDot:1
+44 ; If there are any closed claims selected, verify if the users still wants to reopen
+45 IF $DATA(BPREOP)
Begin DoDot:1
+46 WRITE !!,"All Selected Rxs will be reopened using the same information gathered in the",!,"following prompts.",!!
+47 IF $$YESNO^BPSSCRRS("Are you sure?(Y/N)")=1
Begin DoDot:2
+48 ; Get the Reopen Comments to be stored in the BPS CLAIMS file
+49 SET BPCOMM=$$PROMPT("REOPEN COMMENTS","","F",1,40)
+50 if BPCOMM["^"
QUIT
+51 ; Do we REALLY want to reopen the claims?
+52 IF $$YESNO^BPSSCRRS("ARE YOU SURE YOU WANT TO RE-OPEN THIS CLAIM? (Y/N)","No")=1
Begin DoDot:3
+53 SET (BPCNT,BP59)=0
+54 ; Loop through all selected claims and reopen them one at a time
+55 ; using the same comments
+56 FOR
SET BP59=$ORDER(BPREOP(BP59))
if BP59=""
QUIT
Begin DoDot:4
+57 SET BPIEN02=+$PIECE($GET(^BPST(BP59,0)),U,4)
+58 SET BPRETV=$$REOPEN^BPSBUTL(BP59,BPIEN02,$$NOW^XLFDT,+DUZ,BPCOMM)
+59 WRITE !,$PIECE(BPRETV,U,2)
+60 IF +BPRETV
SET BPCNT=BPCNT+1
+61 QUIT
End DoDot:4
+62 IF BPCNT>1
WRITE !!,BPCNT_" claims have been reopened.",!
QUIT
+63 IF BPCNT=1
WRITE !!,"1 claim has been reopened.",!
QUIT
+64 IF BPCNT=0
WRITE !!,"Unable to reopen claim"
QUIT
End DoDot:3
End DoDot:2
End DoDot:1
+65 IF '$DATA(BPREOP)
SET VALMBCK="R"
DO PAUSE^VALM1
QUIT
+66 DO PAUSE^VALM1
+67 DO REDRAW^BPSSCRUD("Updating screen for reopened claims...")
+68 QUIT
+69 ;
SELECT ;
+1 IF VALMCNT<1
Begin DoDot:1
+2 WRITE !,"No claims to select."
DO PAUSE^VALM1
SET VALMBCK="R"
End DoDot:1
QUIT
+3 NEW BP59,BPQ
+4 DO FULL^VALM1
+5 SET BP59=0
+6 SET BPQ=0
+7 FOR
SET BPLINE=$$PROMPT("Select item","","A")
Begin DoDot:1
+8 IF BPLINE="^"
SET BPQ=1
QUIT
+9 IF '(BPLINE?1N.N)
WRITE !,"Please select a SINGLE Rx Line Item."
QUIT
+10 SET BP59=+$$GET59(+BPLINE)
IF BP59>0
SET BPQ=1
QUIT
+11 WRITE !,"Please select a VALID Rx Line Item."
End DoDot:1
if BPQ
QUIT
+12 IF BPLINE="^"
SET VALMBCK="R"
QUIT
+13 IF BP59=0
SET VALMBCK="R"
WRITE !,"Invalid selection."
DO PAUSE^VALM1
QUIT
+14 IF $$SELCLAIM(BP59)<1
SET VALMBCK="R"
QUIT
+15 ;D RE^VALM4
+16 DO REDRAW
+17 SET VALMBCK="R"
+18 QUIT
+19 ;
GET59(BPLINE) ;
+1 QUIT +$ORDER(^TMP("BPSREOP",$JOB,"VALM","IDX",BPLINE,0))
+2 ;
+3 ;display selected claim information
SELCLAIM(BP59) ;
+1 DO FULL^VALM1
+2 WRITE @IOF
+3 NEW BPX,BPX1,BPDFN,BPIEN02,BPCLDATA,BPCOMM,BPRETV,BPQ
+4 SET BPDFN=+$PIECE($GET(^BPST(BP59,0)),U,6)
+5 SET BPX1=$$RXREF^BPSSCRU2(BP59)
+6 WRITE !,?1,$$LJ^BPSSCR02("PATIENT NAME: "_$$PATNAME(BPDFN),30)
+7 WRITE ?33,$$LJ^BPSSCR02("RX#: "_$$RXNUM^BPSSCRU2(+BPX1)_" "_$PIECE(BPX1,U,2),22)
+8 WRITE ?57,$$LJ^BPSSCR02("DRUG: "_$$DRGNAME^BPSSCRU2(BP59),22)
+9 ;ien in BPS CLAIMS
+10 SET BPIEN02=+$PIECE($GET(^BPST(BP59,0)),U,4)
+11 IF BPIEN02=0
WRITE !,"BPS CLAIMS file error!"
DO PAUSE^VALM1
QUIT -1
+12 ;Close info
+13 SET BPCLDATA=$GET(^BPSC(BPIEN02,900))
+14 ;if the is no BPS CLAIMS - error
+15 WRITE !,?3,"CLOSED ",$$FORMDATE^BPSSCRU6(+$PIECE($GET(^BPSC(BPIEN02,900)),U,2),2)
+16 WRITE !,?4,"ECME#: "_$$ECMENUM^BPSSCRU2(BP59)_", DOS: "_$$LASTDOS^BPSUTIL2(BP59,1)
+17 WRITE ", RELEASE DATE: "_$$FORMDATE^BPSSCRU6($$RELDATE^BPSSCRU6(+BPX1,+$PIECE(BPX1,U,2)),2)
+18 WRITE !,?4,"PLAN: ",$$PLANNAME^BPSSCRU6(BP59)," INSURANCE: ",$$INSNAME^BPSSCRU6(BP59)
+19 WRITE !,?4,"CLOSE REASON: ",$$CLREASON^BPSSCRU6(+$PIECE(BPCLDATA,U,4))
+20 WRITE !,?4,"DROP TO PAPER: ",$SELECT(+$PIECE(BPCLDATA,U,5)=1:"YES",1:"NO")
+21 WRITE !,?4,"CLOSE USER: ",$PIECE($GET(^VA(200,+$PIECE(BPCLDATA,U,3),0)),U)
+22 WRITE !!,"You have selected the CLOSED electronic claim listed above.",!
+23 SET BPCOMM=$$PROMPT("REOPEN COMMENTS","","F",1,40)
+24 if BPCOMM["^"
QUIT 0
+25 SET BPQ=$$YESNO^BPSSCRRS("ARE YOU SURE YOU WANT TO RE-OPEN THIS CLAIM? (Y/N)","No")
+26 if BPQ<1
QUIT 0
+27 SET BPRETV=$$REOPEN^BPSBUTL(BP59,BPIEN02,$$NOW^XLFDT,+DUZ,BPCOMM)
+28 WRITE !,$PIECE(BPRETV,U,2),!
+29 WRITE !,"1 claim has been reopened.",!
+30 DO PAUSE^VALM1
+31 QUIT 1
+32 ;
REDRAW ;
+1 NEW BPARR
+2 DO CLEAN^VALM10
+3 DO COLLECT^BPSREOP1(BPDFN,BPSTRT,BPEND)
+4 SET VALMBCK="R"
+5 QUIT
+6 ;input:
+7 ;BPSPROM - prompt text
+8 ;BPSDFVL - default value (optional)
+9 ;BPMODE - N- to enter numbers, F - free text, A - free text w/o limitations
+10 ;returns:
+11 ; "response"
+12 ; or "^" for quit
PROMPT(BPSPROM,BPSDFVL,BPMODE,MINLEN,MAXLEN) ;
+1 NEW IR,X,Y,DIRUT,DIR
+2 IF BPMODE="N"
SET DIR(0)="N^::2"
+3 IF BPMODE="A"
SET DIR(0)="F^::2"
+4 IF BPMODE="F"
SET DIR(0)="F^"_MINLEN_":"_MAXLEN_":2^K:(X?1"" ""."" "") X"
+5 SET DIR("A")=BPSPROM
+6 IF $LENGTH($GET(BPSDFVL))>0
SET DIR("B")=$GET(BPSDFVL)
+7 DO ^DIR
IF $DATA(DIRUT)
QUIT "^"
+8 IF Y["^"
QUIT "^"
+9 QUIT Y
+10 ;
+11 ;Update reopen record in BPS CLAIM
+12 ;Input:
+13 ; BP02 - ien in BPS CLAIMS file
+14 ; BPCLOSED - value for CLOSED field
+15 ; BPREOPDT - reopen date/time
+16 ; BPDUZ - user DUZ (#200 ien)
+17 ; BPCOMM - reopen comment text
+18 ;Output:
+19 ; 0^message_error - error
+20 ; 1 - success
UPDREOP(BP02,BPCLOSED,BPREOPDT,BPDUZ,BPCOMM) ;
+1 ;Now update ECME database
+2 NEW RECIENS,BPDA,BPLCK,ERRARR
+3 SET RECIENS=BP02_","
+4 ;CLOSED = "NO"
SET BPDA(9002313.02,RECIENS,901)=BPCLOSED
+5 ;reopen date/time
SET BPDA(9002313.02,RECIENS,906)=BPREOPDT
+6 ;user
SET BPDA(9002313.02,RECIENS,907)=+BPDUZ
+7 ;comment
SET BPDA(9002313.02,RECIENS,908)=BPCOMM
+8 LOCK +^BPST(9002313.02,+BP02):10
+9 SET BPLCK=$TEST
+10 ;quit
IF 'BPLCK
QUIT "0^Locked record"
+11 DO FILE^DIE("","BPDA","ERRARR")
+12 IF BPLCK
LOCK -^BPST(9002313.02,+BP02)
+13 IF $DATA(ERRARR)
QUIT "0^"_ERRARR("DIERR",1,"TEXT",1)
+14 QUIT 1
+15 ;
+16 ; Reopen Closed Claim displayed in ECME User Screen
REOP ;
+1 QUIT