FBAAVR0 ;AISC/GRR,SAB - REJECT ITEMS ;3/26/2012
;;3.5;FEE BASIS;**132**;JAN 30, 1995;Build 17
;;Per VHA Directive 2004-038, this routine should not be modified.
Q
;
VCHNH ; set DATE FINALIZED for batch type B9 line items
F J=0:0 S J=$O(^FBAAI("AC",B,J)) Q:J'>0 I '$D(^FBAAI(J,"FBREJ")),$D(^FBAAI(J,0)) S DA=J,DIE="^FBAAI(",DR="19////^S X=DT" D ^DIE
K DIE,DA
Q
;
DELC ; specify local rejects for batch type B9
N FBIENS
; select patient
S FBDFN=$$ASKVET^FBAAUTL1("I $D(^FBAAI(""AE"",B,+Y))")
Q:'FBDFN
K QQ
S (QQ,FBAAOUT)=0 W @IOF D HEDC^FBAACCB1 F I=0:0 S I=$O(^FBAAI("AE",B,FBDFN,I)) Q:I'>0!(FBAAOUT) I $D(^FBAAI(I,0)) S Z(0)=^(0),FBI=I D WRITC
;
RL S DIR(0)="Y",DIR("A")="Want all line items rejected for this patient",DIR("B")="YES" D ^DIR K DIR G DELC:$D(DIRUT),LOOP:Y
RL1 S DIR(0)="NO^1:"_QQ,DIR("A")="Reject which line item" D ^DIR K DIR G DELC:X=""!$D(DIRUT) S HX=X
I '$D(QQ(HX)) W !,*7,"You already rejected that one!!" G RL1
RJT S DIR(0)="Y",DIR("A")="Are you sure you want to reject item number: "_HX,DIR("B")="NO" D ^DIR K DIR G RL1:$D(DIRUT)!'Y
RDR1 S DIR(0)="F^2:40",DIR("A")="Enter reason for rejecting" D ^DIR K DIR W:$D(DIRUT) !!,"Required Response!!" G:$D(DIRUT) RDR1 S FBRR=X
S FBIENS=QQ(HX)_"," D REJLN
RDMORE S DIR(0)="Y",DIR("A")="Item rejected. Want to reject another",DIR("B")="YES" D ^DIR K DIR Q:$D(DIRUT) G RL1:Y
Q
;
WRITC S QQ=QQ+1,QQ(QQ)=I D CMORE^FBAACCB1
Q
;
LOOP S DIR(0)="F^2:40",DIR("A")="Reason for rejecting" D ^DIR K DIR W:$D(DIRUT) !!,"Required Response!!" G:$D(DIRUT) LOOP S FBRR=X
F HX=0:0 S HX=$O(QQ(HX)) Q:HX'>0 S FBIENS=QQ(HX)_"," D REJLN
W !,"...DONE!"
G DELC
;
REJLN ; flag line item as rejected
; input
; FBN - batch IEN
; FBTYPE - batch type
; FZ - zero node of batch (file 161.7)
; FBIENS - iens of line item
; FBRR - reject reason
; FBAARA - accumulated dollar amount to be posted to 1358 by batch
; QQ( - (optional) array of line items
; HX - (optional) line number selected from QQ( array
; output
; FZ - may be updated
; FBAARA - may be updated
; QQ(HX) - may be deleted
; FBRFLAG - will be set =1 if 1358 needs to be posted by batch
;
N FBX
; flag line as rejected
S FBX=$$SETREJ^FBAAVR4(FBN,FBTYPE,FBIENS,"",FBRR)
;
; if problem
I 'FBX D
. W !,"Error rejecting line with IENS "_FBIENS
. W !," "_$P(FBX,"^",2)
;
; if success
I FBX D
. N FBPBYINV
. I $G(HX)'="" K QQ(HX) ; remove from list
. ; determine if 1358 posted by invoice or batch
. S FBPBYINV=0
. I FBTYPE="B9",$$GET1^DIQ(162.5,FBIENS,4,"I")'["FB583" S FBPBYINV=1
. ;
. ; if by batch then accumulate amount for later posting
. I 'FBPBYINV S FBAARA=FBAARA+$P(FBX,"^",3),FBRFLAG=1
. ;
. ; if by B9 invoice then post it now
. I FBPBYINV D
. . N FBX1
. . S FBX1=$$POSTINV^FB1358(FBN,+FBIENS,"R")
. . I 'FBX1 D
. . . W !,"Error posting invoice "_+FBIENS_" to 1358"
. . . W !," "_$P(FBX1,"^",2)
;
; update variable FZ with current batch counts and totals
S FZ=^FBAA(161.7,FBN,0)
;
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HFBAAVR0 3094 printed Oct 16, 2024@17:58:01 Page 2
FBAAVR0 ;AISC/GRR,SAB - REJECT ITEMS ;3/26/2012
+1 ;;3.5;FEE BASIS;**132**;JAN 30, 1995;Build 17
+2 ;;Per VHA Directive 2004-038, this routine should not be modified.
+3 QUIT
+4 ;
VCHNH ; set DATE FINALIZED for batch type B9 line items
+1 FOR J=0:0
SET J=$ORDER(^FBAAI("AC",B,J))
if J'>0
QUIT
IF '$DATA(^FBAAI(J,"FBREJ"))
IF $DATA(^FBAAI(J,0))
SET DA=J
SET DIE="^FBAAI("
SET DR="19////^S X=DT"
DO ^DIE
+2 KILL DIE,DA
+3 QUIT
+4 ;
DELC ; specify local rejects for batch type B9
+1 NEW FBIENS
+2 ; select patient
+3 SET FBDFN=$$ASKVET^FBAAUTL1("I $D(^FBAAI(""AE"",B,+Y))")
+4 if 'FBDFN
QUIT
+5 KILL QQ
+6 SET (QQ,FBAAOUT)=0
WRITE @IOF
DO HEDC^FBAACCB1
FOR I=0:0
SET I=$ORDER(^FBAAI("AE",B,FBDFN,I))
if I'>0!(FBAAOUT)
QUIT
IF $DATA(^FBAAI(I,0))
SET Z(0)=^(0)
SET FBI=I
DO WRITC
+7 ;
RL SET DIR(0)="Y"
SET DIR("A")="Want all line items rejected for this patient"
SET DIR("B")="YES"
DO ^DIR
KILL DIR
if $DATA(DIRUT)
GOTO DELC
if Y
GOTO LOOP
RL1 SET DIR(0)="NO^1:"_QQ
SET DIR("A")="Reject which line item"
DO ^DIR
KILL DIR
if X=""!$DATA(DIRUT)
GOTO DELC
SET HX=X
+1 IF '$DATA(QQ(HX))
WRITE !,*7,"You already rejected that one!!"
GOTO RL1
RJT SET DIR(0)="Y"
SET DIR("A")="Are you sure you want to reject item number: "_HX
SET DIR("B")="NO"
DO ^DIR
KILL DIR
if $DATA(DIRUT)!'Y
GOTO RL1
RDR1 SET DIR(0)="F^2:40"
SET DIR("A")="Enter reason for rejecting"
DO ^DIR
KILL DIR
if $DATA(DIRUT)
WRITE !!,"Required Response!!"
if $DATA(DIRUT)
GOTO RDR1
SET FBRR=X
+1 SET FBIENS=QQ(HX)_","
DO REJLN
RDMORE SET DIR(0)="Y"
SET DIR("A")="Item rejected. Want to reject another"
SET DIR("B")="YES"
DO ^DIR
KILL DIR
if $DATA(DIRUT)
QUIT
if Y
GOTO RL1
+1 QUIT
+2 ;
WRITC SET QQ=QQ+1
SET QQ(QQ)=I
DO CMORE^FBAACCB1
+1 QUIT
+2 ;
LOOP SET DIR(0)="F^2:40"
SET DIR("A")="Reason for rejecting"
DO ^DIR
KILL DIR
if $DATA(DIRUT)
WRITE !!,"Required Response!!"
if $DATA(DIRUT)
GOTO LOOP
SET FBRR=X
+1 FOR HX=0:0
SET HX=$ORDER(QQ(HX))
if HX'>0
QUIT
SET FBIENS=QQ(HX)_","
DO REJLN
+2 WRITE !,"...DONE!"
+3 GOTO DELC
+4 ;
REJLN ; flag line item as rejected
+1 ; input
+2 ; FBN - batch IEN
+3 ; FBTYPE - batch type
+4 ; FZ - zero node of batch (file 161.7)
+5 ; FBIENS - iens of line item
+6 ; FBRR - reject reason
+7 ; FBAARA - accumulated dollar amount to be posted to 1358 by batch
+8 ; QQ( - (optional) array of line items
+9 ; HX - (optional) line number selected from QQ( array
+10 ; output
+11 ; FZ - may be updated
+12 ; FBAARA - may be updated
+13 ; QQ(HX) - may be deleted
+14 ; FBRFLAG - will be set =1 if 1358 needs to be posted by batch
+15 ;
+16 NEW FBX
+17 ; flag line as rejected
+18 SET FBX=$$SETREJ^FBAAVR4(FBN,FBTYPE,FBIENS,"",FBRR)
+19 ;
+20 ; if problem
+21 IF 'FBX
Begin DoDot:1
+22 WRITE !,"Error rejecting line with IENS "_FBIENS
+23 WRITE !," "_$PIECE(FBX,"^",2)
End DoDot:1
+24 ;
+25 ; if success
+26 IF FBX
Begin DoDot:1
+27 NEW FBPBYINV
+28 ; remove from list
IF $GET(HX)'=""
KILL QQ(HX)
+29 ; determine if 1358 posted by invoice or batch
+30 SET FBPBYINV=0
+31 IF FBTYPE="B9"
IF $$GET1^DIQ(162.5,FBIENS,4,"I")'["FB583"
SET FBPBYINV=1
+32 ;
+33 ; if by batch then accumulate amount for later posting
+34 IF 'FBPBYINV
SET FBAARA=FBAARA+$PIECE(FBX,"^",3)
SET FBRFLAG=1
+35 ;
+36 ; if by B9 invoice then post it now
+37 IF FBPBYINV
Begin DoDot:2
+38 NEW FBX1
+39 SET FBX1=$$POSTINV^FB1358(FBN,+FBIENS,"R")
+40 IF 'FBX1
Begin DoDot:3
+41 WRITE !,"Error posting invoice "_+FBIENS_" to 1358"
+42 WRITE !," "_$PIECE(FBX1,"^",2)
End DoDot:3
End DoDot:2
End DoDot:1
+43 ;
+44 ; update variable FZ with current batch counts and totals
+45 SET FZ=^FBAA(161.7,FBN,0)
+46 ;
+47 QUIT