FBAASCB0 ;AISC/DMK - POST 1358 FOR INPATIENT 7078'S ;4/2/2012
;;3.5;FEE BASIS;**116,132**;JAN 30, 1995;Build 17
;;Per VHA Directive 2004-038, this routine should not be modified.
K FBERR,^TMP($J) S FBRJC=0,FBINTOT=$P(FZ,U,10)
I '$O(^FBAAI("AC",FBN,0)) W !,*7,"No invoices found for this batch. Unable to release.",! S FBERR=1 Q
;
S FBII=0 F S FBII=$O(^FBAAI("AC",FBN,FBII)) Q:'FBII!($D(FBERR)) S FBII78=$P($G(^FBAAI(FBII,0)),"^",5),FBAAMT=$P($G(^(0)),"^",9),FBMM=$E($P(^(0),U,6),4,5) D GETAP,GET78:FBII78["FB7078(",UC:FBII78["FB583("
I $G(FBRJC),FBRJC=FBINTOT S FBERR=1 D KILL Q
I $G(FBRJC) K FBERR S (FBRJC,FBII)=0 F S FBII=$O(^TMP($J,FBII)) Q:'FBII S X=$G(^FBAAI(FBII,0)),FBII78=$P(X,U,5),FBAAMT=$P(X,U,9),FBMM=$E($P(X,U,6),4,5) K X,^TMP($J,FBII) D GET78
I $G(FBRJC) S (FBAAMT,FBINTOT)=0 D NEWBT S FBII=0 F S FBII=$O(^TMP($J,FBII)) Q:'FBII D
.S DA=FBII,DIE="^FBAAI(",DR="20////^S X=FBBN" D ^DIE K DR,DA,DIE
.S FBAAMT=FBAAMT+$P(^FBAAI(FBII,0),U,9),FBINTOT=FBINTOT+1
D:$G(FBRJC) RESETBT
; FB*3.5*116 ; report zero dollar invoices
I $D(FBINV) D
. S FBII=0 F S FBII=$O(FBINV(FBII)) Q:'FBII W !!,"Invoice #: "_FBII_" totals $0.00"
. W $C(7),!!?2,"Batch cannot be released when zero dollar invoices exist."
. W !?2,"Invoices must be corrected or removed from the batch."
. S FBERR=1
Q
;
KILL K FBII,FBII78,FBAAMT,FBI78,FBMM,PRCSX,FBRJC,FBSTN,FBBN,FBINTOT,FBCNH,^TMP($J) Q
;
GET78 I '$D(^FB7078(+FBII78,0)) W !,*7,"No associated 7078 for invoice ",FBII,". Unable to release batch.",! S FBERR=1 Q
S FBI78=$P(^FB7078(+FBII78,0),"^"),DFN=+$P(^(0),"^",3),FBI78=$P(FZ,"^",8)_"-"_$P(FBI78,".")_"-"_$P(FBI78,".",2) D
. ;
. ;I $D(FBCNH),'$D(^PRC(424,"E",DFN_";"_+FBII78_";"_FBAAON_";"_FBMM)) D POST^FBAASCB
.D INPOST:$$INTER()
.I $D(FBCNH),'$$INTER S FBERR=1 W !!,$$NAME^FBCHREQ2(DFN)," ",$$SSN^FBAAUTL(DFN),!,*7,"Unable to locate reference number on 1358. Run Post Commitments for",!,"Obligation option."
.I $D(FBCNH),$D(FBERR) S ^TMP($J,+FBII)="",FBRJC=FBRJC+1 K FBERR
Q
;
INPOST ;PRCSX=INTERNAL DAILY REF #^INTERNAL DATE/TIME^AMT OF PAYMENT^COMMENTS^COMPLETE FLAG
;FBI78=AUTHORIZATION NAME IN 424 (STA-CXXXXX-REF #)
;FBERR RETURNED IF IFCAP CALL FAILS
;FBCOMM=COMMENT
;FBAAMT=ACTUAL AMOUNT OF PAYMENT
;INTERFACE ID = DFN_";"_INTERNAL ENTRY NUMBER OF 7078_";"_FBAAON (OBLIGATION)_";" if CNH _FBMM (month of service)
;INTERNAL DAILY REF # = $O(^PRC(424,"B","STA #-OBLIGATION #-REF #",0))
;NEW INTERNAL DAILY REF # LOOKUP=$O(^PRC(424,"E",INTERFACE ID,0))
I '$$INTER() W !,*7,"Unable to locate reference number on 1358.",! S FBERR=1 Q
S PRCS("X")=FBAAOB,PRCS("TYPE")="FB" D EN3^PRCS58 I Y=-1 W !!,*7,"1358 not available for posting!",! S FBERR=1 Q
D NOW^%DTC
S PRCSX=$$INTER()_"^"_%_"^"_FBAAMT_"^"_$S($D(FBCOMM):FBCOMM,1:"")_"^"_1
D ^PRCS58CC I Y'=1 W !!,$$NAME^FBCHREQ2(DFN)," (",$$SSN^FBAAUTL(DFN,1),")",!,*7,$P(Y,"^",2),! S FBERR=1 Q
Q
;
INTER() ;get internal entry number from file 424
;first check for new INTERFACE ID "E" x-ref in 424
;2nd check is to "B" x-ref to stay backward compatible with IFCAP 3.6
;
I '$D(FBCNH),$D(^PRC(424,"E",DFN_";"_+FBII78_";"_FBAAON)) Q $O(^(DFN_";"_+FBII78_";"_FBAAON,0))
I $D(FBCNH),$D(^PRC(424,"E",DFN_";"_+FBII78_";"_FBAAON_";"_FBMM)) Q $O(^(DFN_";"_+FBII78_";"_FBAAON_";"_FBMM,0))
I '$D(FBCNH),$D(^PRC(424,"B",FBI78)) Q $O(^(FBI78,0))
Q 0
;
NEWBT ;open new batch for cnh line items unable to post to 1358
S FBSTN=$P(FZ,U,8) W ! D GETNXB^FBAAUTL
S DIC="^FBAA(161.7,",DIC(0)="LQ",X=FBBN,DIC("DR")="1////^S X=FBAAON;2////^S X=""B9"";3////^S X=DT;4////^S X=$P(FZ,U,5);11////^S X=""O"";16////^S X=FBSTN",DLAYGO=161.7
K DD,DO D FILE^DICN S FBBN=+Y K DIC,DLAYGO
Q
RESETBT ;reset original batch total $ set new batch totals
S X=$G(^FBAA(161.7,FBBN,0)),$P(X,U,9)=FBAAMT,$P(X,U,10)=FBINTOT,$P(X,U,11)=FBINTOT,^(0)=X K X
S $P(FZ,U,9)=$P(FZ,U,9)-FBAAMT,$P(FZ,U,10)=$P(FZ,U,10)-FBINTOT,$P(FZ,U,11)=$P(FZ,U,11)-FBINTOT,^FBAA(161.7,FBN,0)=FZ
W !!,*7,"A new batch, number ",$P(^FBAA(161.7,FBBN,0),U),", was opened for invoices unable to post to 1358.",!,"Adjust 1358 and take action on new batch.",!
Q
;
GETAP ; FB*3.5*116 build array of invoices in batch
Q:$D(FBCNH) ; do not build array if CNH batch
Q:FBAAMT>0 ; do not place invoice reference in array if the amount paid is greater than 0.00
S FBINV(FBII)=""
Q
UC ; accumulate amount of unauthorized inpatient claims for later posting
S FBAARA=FBAARA+FBAAMT
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HFBAASCB0 4480 printed Oct 16, 2024@17:57:27 Page 2
FBAASCB0 ;AISC/DMK - POST 1358 FOR INPATIENT 7078'S ;4/2/2012
+1 ;;3.5;FEE BASIS;**116,132**;JAN 30, 1995;Build 17
+2 ;;Per VHA Directive 2004-038, this routine should not be modified.
+3 KILL FBERR,^TMP($JOB)
SET FBRJC=0
SET FBINTOT=$PIECE(FZ,U,10)
+4 IF '$ORDER(^FBAAI("AC",FBN,0))
WRITE !,*7,"No invoices found for this batch. Unable to release.",!
SET FBERR=1
QUIT
+5 ;
+6 SET FBII=0
FOR
SET FBII=$ORDER(^FBAAI("AC",FBN,FBII))
if 'FBII!($DATA(FBERR))
QUIT
SET FBII78=$PIECE($GET(^FBAAI(FBII,0)),"^",5)
SET FBAAMT=$PIECE($GET(^(0)),"^",9)
SET FBMM=$EXTRACT($PIECE(^(0),U,6),4,5)
DO GETAP
if FBII78["FB7078("
DO GET78
if FBII78["FB583("
DO UC
+7 IF $GET(FBRJC)
IF FBRJC=FBINTOT
SET FBERR=1
DO KILL
QUIT
+8 IF $GET(FBRJC)
KILL FBERR
SET (FBRJC,FBII)=0
FOR
SET FBII=$ORDER(^TMP($JOB,FBII))
if 'FBII
QUIT
SET X=$GET(^FBAAI(FBII,0))
SET FBII78=$PIECE(X,U,5)
SET FBAAMT=$PIECE(X,U,9)
SET FBMM=$EXTRACT($PIECE(X,U,6),4,5)
KILL X,^TMP($JOB,FBII)
DO GET78
+9 IF $GET(FBRJC)
SET (FBAAMT,FBINTOT)=0
DO NEWBT
SET FBII=0
FOR
SET FBII=$ORDER(^TMP($JOB,FBII))
if 'FBII
QUIT
Begin DoDot:1
+10 SET DA=FBII
SET DIE="^FBAAI("
SET DR="20////^S X=FBBN"
DO ^DIE
KILL DR,DA,DIE
+11 SET FBAAMT=FBAAMT+$PIECE(^FBAAI(FBII,0),U,9)
SET FBINTOT=FBINTOT+1
End DoDot:1
+12 if $GET(FBRJC)
DO RESETBT
+13 ; FB*3.5*116 ; report zero dollar invoices
+14 IF $DATA(FBINV)
Begin DoDot:1
+15 SET FBII=0
FOR
SET FBII=$ORDER(FBINV(FBII))
if 'FBII
QUIT
WRITE !!,"Invoice #: "_FBII_" totals $0.00"
+16 WRITE $CHAR(7),!!?2,"Batch cannot be released when zero dollar invoices exist."
+17 WRITE !?2,"Invoices must be corrected or removed from the batch."
+18 SET FBERR=1
End DoDot:1
+19 QUIT
+20 ;
KILL KILL FBII,FBII78,FBAAMT,FBI78,FBMM,PRCSX,FBRJC,FBSTN,FBBN,FBINTOT,FBCNH,^TMP($JOB)
QUIT
+1 ;
GET78 IF '$DATA(^FB7078(+FBII78,0))
WRITE !,*7,"No associated 7078 for invoice ",FBII,". Unable to release batch.",!
SET FBERR=1
QUIT
+1 SET FBI78=$PIECE(^FB7078(+FBII78,0),"^")
SET DFN=+$PIECE(^(0),"^",3)
SET FBI78=$PIECE(FZ,"^",8)_"-"_$PIECE(FBI78,".")_"-"_$PIECE(FBI78,".",2)
Begin DoDot:1
+2 ;
+3 ;I $D(FBCNH),'$D(^PRC(424,"E",DFN_";"_+FBII78_";"_FBAAON_";"_FBMM)) D POST^FBAASCB
+4 if $$INTER()
DO INPOST
+5 IF $DATA(FBCNH)
IF '$$INTER
SET FBERR=1
WRITE !!,$$NAME^FBCHREQ2(DFN)," ",$$SSN^FBAAUTL(DFN),!,*7,"Unable to locate reference number on 1358. Run Post Commitments for",!,"Obligation option."
+6 IF $DATA(FBCNH)
IF $DATA(FBERR)
SET ^TMP($JOB,+FBII)=""
SET FBRJC=FBRJC+1
KILL FBERR
End DoDot:1
+7 QUIT
+8 ;
INPOST ;PRCSX=INTERNAL DAILY REF #^INTERNAL DATE/TIME^AMT OF PAYMENT^COMMENTS^COMPLETE FLAG
+1 ;FBI78=AUTHORIZATION NAME IN 424 (STA-CXXXXX-REF #)
+2 ;FBERR RETURNED IF IFCAP CALL FAILS
+3 ;FBCOMM=COMMENT
+4 ;FBAAMT=ACTUAL AMOUNT OF PAYMENT
+5 ;INTERFACE ID = DFN_";"_INTERNAL ENTRY NUMBER OF 7078_";"_FBAAON (OBLIGATION)_";" if CNH _FBMM (month of service)
+6 ;INTERNAL DAILY REF # = $O(^PRC(424,"B","STA #-OBLIGATION #-REF #",0))
+7 ;NEW INTERNAL DAILY REF # LOOKUP=$O(^PRC(424,"E",INTERFACE ID,0))
+8 IF '$$INTER()
WRITE !,*7,"Unable to locate reference number on 1358.",!
SET FBERR=1
QUIT
+9 SET PRCS("X")=FBAAOB
SET PRCS("TYPE")="FB"
DO EN3^PRCS58
IF Y=-1
WRITE !!,*7,"1358 not available for posting!",!
SET FBERR=1
QUIT
+10 DO NOW^%DTC
+11 SET PRCSX=$$INTER()_"^"_%_"^"_FBAAMT_"^"_$SELECT($DATA(FBCOMM):FBCOMM,1:"")_"^"_1
+12 DO ^PRCS58CC
IF Y'=1
WRITE !!,$$NAME^FBCHREQ2(DFN)," (",$$SSN^FBAAUTL(DFN,1),")",!,*7,$PIECE(Y,"^",2),!
SET FBERR=1
QUIT
+13 QUIT
+14 ;
INTER() ;get internal entry number from file 424
+1 ;first check for new INTERFACE ID "E" x-ref in 424
+2 ;2nd check is to "B" x-ref to stay backward compatible with IFCAP 3.6
+3 ;
+4 IF '$DATA(FBCNH)
IF $DATA(^PRC(424,"E",DFN_";"_+FBII78_";"_FBAAON))
QUIT $ORDER(^(DFN_";"_+FBII78_";"_FBAAON,0))
+5 IF $DATA(FBCNH)
IF $DATA(^PRC(424,"E",DFN_";"_+FBII78_";"_FBAAON_";"_FBMM))
QUIT $ORDER(^(DFN_";"_+FBII78_";"_FBAAON_";"_FBMM,0))
+6 IF '$DATA(FBCNH)
IF $DATA(^PRC(424,"B",FBI78))
QUIT $ORDER(^(FBI78,0))
+7 QUIT 0
+8 ;
NEWBT ;open new batch for cnh line items unable to post to 1358
+1 SET FBSTN=$PIECE(FZ,U,8)
WRITE !
DO GETNXB^FBAAUTL
+2 SET DIC="^FBAA(161.7,"
SET DIC(0)="LQ"
SET X=FBBN
SET DIC("DR")="1////^S X=FBAAON;2////^S X=""B9"";3////^S X=DT;4////^S X=$P(FZ,U,5);11////^S X=""O"";16////^S X=FBSTN"
SET DLAYGO=161.7
+3 KILL DD,DO
DO FILE^DICN
SET FBBN=+Y
KILL DIC,DLAYGO
+4 QUIT
RESETBT ;reset original batch total $ set new batch totals
+1 SET X=$GET(^FBAA(161.7,FBBN,0))
SET $PIECE(X,U,9)=FBAAMT
SET $PIECE(X,U,10)=FBINTOT
SET $PIECE(X,U,11)=FBINTOT
SET ^(0)=X
KILL X
+2 SET $PIECE(FZ,U,9)=$PIECE(FZ,U,9)-FBAAMT
SET $PIECE(FZ,U,10)=$PIECE(FZ,U,10)-FBINTOT
SET $PIECE(FZ,U,11)=$PIECE(FZ,U,11)-FBINTOT
SET ^FBAA(161.7,FBN,0)=FZ
+3 WRITE !!,*7,"A new batch, number ",$PIECE(^FBAA(161.7,FBBN,0),U),", was opened for invoices unable to post to 1358.",!,"Adjust 1358 and take action on new batch.",!
+4 QUIT
+5 ;
GETAP ; FB*3.5*116 build array of invoices in batch
+1 ; do not build array if CNH batch
if $DATA(FBCNH)
QUIT
+2 ; do not place invoice reference in array if the amount paid is greater than 0.00
if FBAAMT>0
QUIT
+3 SET FBINV(FBII)=""
+4 QUIT
UC ; accumulate amount of unauthorized inpatient claims for later posting
+1 SET FBAARA=FBAARA+FBAAMT
+2 QUIT