- FBUCEX ;ALBISC/TET - EXPIRATION UPDATE &/OR OUTPUT ;10/07/2014
- ;;3.5;FEE BASIS;**32,154**;JAN 30, 1995;Build 12
- ;;Per VA Directive 6402, this routine should not be modified.
- ABAND ;background update to abandoned if expiration date is met
- ;on claims with status order of 10 or 55
- N FBDT,FBACT S FBACT="EDT"
- S FBO=0 F S FBO=$O(^FB583("AES",FBO)) Q:'FBO I "^10^55^"[FBO S FBDT=-(DT) F S FBDT=$O(^FB583("AES",FBO,FBDT)) Q:FBDT']"" S FBDA=0 F S FBDA=$O(^FB583("AES",FBO,FBDT,FBDA)) Q:'FBDA S FBZ=$G(^FB583(FBDA,0)) I FBZ]"" D
- .N FBUCA,FBUCAA,FBUCP,FBUCPA
- .D PRIOR^FBUCEVT(FBDA,"EDT") S DIE="^FB583(",DA=FBDA,DR="26///^S X=""@"";10////^S X=5"
- .D LOCK^FBUCUTL(DIE,DA,1) I FBLOCK D ^DIE L -^FB583(DA) K DIE,DR,DA
- .D AFTER^FBUCEVT(FBDA,"EDT"),UPDATE^FBUCUPD(FBUCP,FBUCPA,FBUCA,FBUCAA,FBDA,"EDT")
- .S ^TMP("FBEX",$J,$$VET^FBUCUTL($P(FBZ,U,4))_";"_$P(FBZ,U,4),FBDA)=$E($$VEN^FBUCUTL($P(FBZ,U,3)),1,20)_U_$E($P($$PTR^FBUCUTL("^FB(162.92,",$$STATUS^FBUCUTL(FBO)),U),1,16)_U_$$DATX^FBAAUTL($P(FBZ,U,5))_U_$$DATX^FBAAUTL($P(FBZ,U,6))
- .K FBLOCK
- G:'$D(^TMP("FBEX")) END S FBHDR="Unauthorized Claims Dispositioned to 'ABANDONED'"
- PRINT ;print claims which have been dispositioned to abandoned or fall within date range to expire
- U IO S FBPG=0,FBCRT=$S($E(IOST,1,2)="C-":1,1:0),FBOUT=0,$P(FBDASH,"=",80)="" D PAGE
- S FBVET="" F S FBVET=$O(^TMP("FBEX",$J,FBVET)) Q:FBVET']""!(FBOUT) S FBDA=0 F S FBDA=$O(^TMP("FBEX",$J,FBVET,FBDA)) Q:'FBDA!(FBOUT) S FBNODE=$G(^TMP("FBEX",$J,FBVET,FBDA)) D Q:FBOUT
- .I IOSL<($Y+5) D PAGE Q:FBOUT
- .W !,$E($P(FBVET,";"),1,20),?24,$P(FBNODE,U),?48,$P(FBNODE,U,3),?60,$P(FBNODE,U,4),?72,$E($P(FBNODE,U,2),1,8)
- END ;kill variables,tmp global and quit
- K FBCRT,FBDA,FBDASH,FBDT,FBFR,FBHDR,FBLOCK,FBNODE,FBO,FBOUT,FBPG,FBPOP,FBTO,FBVET,FBZ,BEGDATE,DIR,DIRUT,DTOUT,DUOUT,ENDDATE,PGM,POP,VAL,VAR,^TMP("FBEX",$J),FB1725R
- D CLOSE^FBAAUTL
- Q
- PAGE ;write new page
- D:FBCRT&(FBPG>0) CR Q:FBOUT
- HDR W:FBCRT!(FBPG>0) @IOF S FBPG=FBPG+1
- W !,FBHDR,!!,?48,"Treatment",?60,"Treatment",!,"Veteran",?24,"Vendor",?51,"FROM",?64,"TO",?72,"Status",!,FBDASH
- Q
- CR ;ask end of page prompt
- ;OUTPUT: FBOUT is set if time out or up arrow out
- W ! S DIR(0)="E" D ^DIR S:$D(DTOUT)!($D(DUOUT)) FBOUT=1
- Q
- EXPIRE ;called from print option to display/print claims due to expire within date range
- ;claim will print if expiration date falls within date range user selected,
- ;status order is 10 <incomplete> or 55 <appeal/stmt of case issued>,
- ;and has not been abandoned (ck needed?)
- ; ask if report for just mill-bill (1725) or just non-mill bill claims
- S FB1725R=$$ASKMB^FBUCUTL9 I FB1725R="" G END
- W !?3,"Select the date range within which an unauthorized claim will expire." S %DT="AEX" D DATE^FBAAUTL K %DT G:FBPOP END
- S VAR="BEGDATE^ENDDATE^FB1725R",VAL=VAR,PGM="DQ^FBUCEX" D ZIS^FBAAUTL G:FBPOP END
- DQ S FBFR=BEGDATE,FBTO=ENDDATE ;scratch
- S FBHDR="Unauthorized"_$S(FB1725R="M":" Mill Bill (1725)",FB1725R="N":" NON-Mill Bill",1:"")_" Claims Due to Expire between "_$$DATX^FBAAUTL(FBFR)_" and "_$$DATX^FBAAUTL(FBTO)
- S FBO=0 F S FBO=$O(^FB583("AES",FBO)) Q:'FBO I "^10^55^"[FBO S FBDT=-(FBTO-.1) F S FBDT=$O(^FB583("AES",FBO,FBDT)) Q:FBDT']""!(FBDT>-FBFR) S FBDA=0 F S FBDA=$O(^FB583("AES",FBO,FBDT,FBDA)) Q:'FBDA S FBZ=$G(^FB583(FBDA,0)) I FBZ]"" D
- .; if user requested just mill-bill (1725) or non-mill bill claims then
- .; check claim and skip when appropriate
- .Q:$S(FB1725R="M"&'+$P(FBZ,U,28):1,FB1725R="N"&+$P(FBZ,U,28):1,1:0)
- .S ^TMP("FBEX",$J,$$VET^FBUCUTL($P(FBZ,U,4))_";"_$P(FBZ,U,4),FBDA)=$E($$VEN^FBUCUTL($P(FBZ,U,3)),1,20)_U_$E($P($$PTR^FBUCUTL("^FB(162.92,",$$STATUS^FBUCUTL(FBO)),U),1,16)_U_$$DATX^FBAAUTL($P(FBZ,U,5))_U_$$DATX^FBAAUTL($P(FBZ,U,6))
- I '$D(^TMP("FBEX")) D G END
- .S FBPG=0,$P(FBDASH,"=",80)="",FBCRT=$S($E(IOST,1,2)="C-":1,1:0)
- .S FBOUT=0
- .U IO
- .D PAGE W !,"No claims will expire within selected date range."
- G PRINT
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HFBUCEX 3936 printed Mar 13, 2025@21:05:08 Page 2
- FBUCEX ;ALBISC/TET - EXPIRATION UPDATE &/OR OUTPUT ;10/07/2014
- +1 ;;3.5;FEE BASIS;**32,154**;JAN 30, 1995;Build 12
- +2 ;;Per VA Directive 6402, this routine should not be modified.
- ABAND ;background update to abandoned if expiration date is met
- +1 ;on claims with status order of 10 or 55
- +2 NEW FBDT,FBACT
- SET FBACT="EDT"
- +3 SET FBO=0
- FOR
- SET FBO=$ORDER(^FB583("AES",FBO))
- if 'FBO
- QUIT
- IF "^10^55^"[FBO
- SET FBDT=-(DT)
- FOR
- SET FBDT=$ORDER(^FB583("AES",FBO,FBDT))
- if FBDT']""
- QUIT
- SET FBDA=0
- FOR
- SET FBDA=$ORDER(^FB583("AES",FBO,FBDT,FBDA))
- if 'FBDA
- QUIT
- SET FBZ=$GET(^FB583(FBDA,0))
- IF FBZ]""
- Begin DoDot:1
- +4 NEW FBUCA,FBUCAA,FBUCP,FBUCPA
- +5 DO PRIOR^FBUCEVT(FBDA,"EDT")
- SET DIE="^FB583("
- SET DA=FBDA
- SET DR="26///^S X=""@"";10////^S X=5"
- +6 DO LOCK^FBUCUTL(DIE,DA,1)
- IF FBLOCK
- DO ^DIE
- LOCK -^FB583(DA)
- KILL DIE,DR,DA
- +7 DO AFTER^FBUCEVT(FBDA,"EDT")
- DO UPDATE^FBUCUPD(FBUCP,FBUCPA,FBUCA,FBUCAA,FBDA,"EDT")
- +8 SET ^TMP("FBEX",$JOB,$$VET^FBUCUTL($PIECE(FBZ,U,4))_";"_$PIECE(FBZ,U,4),FBDA)=$EXTRACT($$VEN^FBUCUTL($PIECE(FBZ,U,3)),1,20)_U_...
- ... $EXTRACT($PIECE($$PTR^FBUCUTL("^FB(162.92,",$$STATUS^FBUCUTL(FBO)),U),1,16)_U_$$DATX^FBAAUTL($PIECE(FBZ,U,5))_U_$$DATX^FBAAUTL($PIECE(FBZ,U,6))
- +9 KILL FBLOCK
- End DoDot:1
- +10 if '$DATA(^TMP("FBEX"))
- GOTO END
- SET FBHDR="Unauthorized Claims Dispositioned to 'ABANDONED'"
- PRINT ;print claims which have been dispositioned to abandoned or fall within date range to expire
- +1 USE IO
- SET FBPG=0
- SET FBCRT=$SELECT($EXTRACT(IOST,1,2)="C-":1,1:0)
- SET FBOUT=0
- SET $PIECE(FBDASH,"=",80)=""
- DO PAGE
- +2 SET FBVET=""
- FOR
- SET FBVET=$ORDER(^TMP("FBEX",$JOB,FBVET))
- if FBVET']""!(FBOUT)
- QUIT
- SET FBDA=0
- FOR
- SET FBDA=$ORDER(^TMP("FBEX",$JOB,FBVET,FBDA))
- if 'FBDA!(FBOUT)
- QUIT
- SET FBNODE=$GET(^TMP("FBEX",$JOB,FBVET,FBDA))
- Begin DoDot:1
- +3 IF IOSL<($Y+5)
- DO PAGE
- if FBOUT
- QUIT
- +4 WRITE !,$EXTRACT($PIECE(FBVET,";"),1,20),?24,$PIECE(FBNODE,U),?48,$PIECE(FBNODE,U,3),?60,$PIECE(FBNODE,U,4),?72,$EXTRACT($PIECE(FBNODE,U,2),1,8)
- End DoDot:1
- if FBOUT
- QUIT
- END ;kill variables,tmp global and quit
- +1 KILL FBCRT,FBDA,FBDASH,FBDT,FBFR,FBHDR,FBLOCK,FBNODE,FBO,FBOUT,FBPG,FBPOP,FBTO,FBVET,FBZ,BEGDATE,DIR,DIRUT,DTOUT,DUOUT,ENDDATE,PGM,POP,VAL,VAR,^TMP("FBEX",$JOB),FB1725R
- +2 DO CLOSE^FBAAUTL
- +3 QUIT
- PAGE ;write new page
- +1 if FBCRT&(FBPG>0)
- DO CR
- if FBOUT
- QUIT
- HDR if FBCRT!(FBPG>0)
- WRITE @IOF
- SET FBPG=FBPG+1
- +1 WRITE !,FBHDR,!!,?48,"Treatment",?60,"Treatment",!,"Veteran",?24,"Vendor",?51,"FROM",?64,"TO",?72,"Status",!,FBDASH
- +2 QUIT
- CR ;ask end of page prompt
- +1 ;OUTPUT: FBOUT is set if time out or up arrow out
- +2 WRITE !
- SET DIR(0)="E"
- DO ^DIR
- if $DATA(DTOUT)!($DATA(DUOUT))
- SET FBOUT=1
- +3 QUIT
- EXPIRE ;called from print option to display/print claims due to expire within date range
- +1 ;claim will print if expiration date falls within date range user selected,
- +2 ;status order is 10 <incomplete> or 55 <appeal/stmt of case issued>,
- +3 ;and has not been abandoned (ck needed?)
- +4 ; ask if report for just mill-bill (1725) or just non-mill bill claims
- +5 SET FB1725R=$$ASKMB^FBUCUTL9
- IF FB1725R=""
- GOTO END
- +6 WRITE !?3,"Select the date range within which an unauthorized claim will expire."
- SET %DT="AEX"
- DO DATE^FBAAUTL
- KILL %DT
- if FBPOP
- GOTO END
- +7 SET VAR="BEGDATE^ENDDATE^FB1725R"
- SET VAL=VAR
- SET PGM="DQ^FBUCEX"
- DO ZIS^FBAAUTL
- if FBPOP
- GOTO END
- DQ ;scratch
- SET FBFR=BEGDATE
- SET FBTO=ENDDATE
- +1 SET FBHDR="Unauthorized"_$SELECT(FB1725R="M":" Mill Bill (1725)",FB1725R="N":" NON-Mill Bill",1:"")_" Claims Due to Expire between "_$$DATX^FBAAUTL(FBFR)_" and "_$$DATX^FBAAUTL(FBTO)
- +2 SET FBO=0
- FOR
- SET FBO=$ORDER(^FB583("AES",FBO))
- if 'FBO
- QUIT
- IF "^10^55^"[FBO
- SET FBDT=-(FBTO-.1)
- FOR
- SET FBDT=$ORDER(^FB583("AES",FBO,FBDT))
- if FBDT']""!(FBDT>-FBFR)
- QUIT
- SET FBDA=0
- FOR
- SET FBDA=$ORDER(^FB583("AES",FBO,FBDT,FBDA))
- if 'FBDA
- QUIT
- SET FBZ=$GET(^FB583(FBDA,0))
- IF FBZ]""
- Begin DoDot:1
- +3 ; if user requested just mill-bill (1725) or non-mill bill claims then
- +4 ; check claim and skip when appropriate
- +5 if $SELECT(FB1725R="M"&'+$PIECE(FBZ,U,28)
- QUIT
- +6 SET ^TMP("FBEX",$JOB,$$VET^FBUCUTL($PIECE(FBZ,U,4))_";"_$PIECE(FBZ,U,4),FBDA)=$EXTRACT($$VEN^FBUCUTL($PIECE(FBZ,U,3)),1,20)_U_...
- ... $EXTRACT($PIECE($$PTR^FBUCUTL("^FB(162.92,",$$STATUS^FBUCUTL(FBO)),U),1,16)_U_$$DATX^FBAAUTL($PIECE(FBZ,U,5))_U_$$DATX^FBAAUTL($PIECE(FBZ,U,6))
- End DoDot:1
- +7 IF '$DATA(^TMP("FBEX"))
- Begin DoDot:1
- +8 SET FBPG=0
- SET $PIECE(FBDASH,"=",80)=""
- SET FBCRT=$SELECT($EXTRACT(IOST,1,2)="C-":1,1:0)
- +9 SET FBOUT=0
- +10 USE IO
- +11 DO PAGE
- WRITE !,"No claims will expire within selected date range."
- End DoDot:1
- GOTO END
- +12 GOTO PRINT
- +13 QUIT