IBACCRPT ;EDE/JWS - RPC FOR IENS, ENCOUNTER DATA, and WRITEBACK FOR TAS ACC CLAIMS RECONCILIATION REPORT;
;;2.0;INTEGRATED BILLING;**770**;21-MAR-94;Build 119
;;Per VA Directive 6402, this routine should not be modified.
;
; Reference to ENCODE^XLFJSON in ICR #6682
Q
;
GET(RESULT,ARG) ;RPC ; ACC Reconciliation - get list of encounter iens to extract
;
N IBIEN,CT,STOP,IBSTT,IBSAVE,STOPCT
K RESULT
D DTNOLF^DICRW
; STOPCT is ienLimit if needed
S STOPCT=+$G(ARG("IENLIMIT"))
;set IBSTT = time stamp to check, needs to complete in < 30 seconds due to TAS-API express timeout
S IBSTT=$P($H,",",2)
S IBSAVE("site")=$P($$SITE^VASITE(),"^",3)
; "E" index in file 364.9 contains X12 file entries that are flagged READY FOR POWER BI EXTRACT, field .21 - this field is reset in WriteBack
S IBIEN="",STOP=0 F S IBIEN=$O(^IBA(364.9,"E",1,IBIEN)) Q:IBIEN="" D Q:STOP I STOPCT,CT>(STOPCT-1) Q
. S CT=$G(CT)+1
. S IBSAVE("ACCiens",CT,"ien")=IBIEN
. I ($P($H,",",2)-IBSTT)>25 S STOP=1
. Q
D ENCODE^XLFJSON("IBSAVE","RESULT") ;ICR #6682 (Supported)
D FINISH
Q
;
;
FINISH ; enclose message in '[ ]' when a Bundle
N X
I $G(RESULT(1))=""!($G(RESULT(1))="{}") S RESULT(1)="[{}]" Q
S RESULT(1)="["_RESULT(1)
S X=$O(RESULT("A"),-1)
S RESULT(X)=RESULT(X)_"]"
Q
;
GET1(RESULT,ARG) ;get claim data for ACC Power BI report
;
N IBSAVE,IBDATA,X,IBDATA2
K RESULT
D DTNOLF^DICRW
; Get IEN for ACC X12 CLAIMS file 364.9
S IBIEN=$G(ARG("IEN364.9"))
I IBIEN="" S IBIEN=$G(ARG("IEN3649"))
I IBIEN="" D FINISH Q
I '$D(^IBA(364.9,IBIEN,0)) D FINISH Q
; Collect Information
S IBDATA=$G(^IBA(364.9,IBIEN,0)),IBDATA2=$G(^(2))
S X=$$GET1^DIQ(364.9,IBIEN_",",.01,"I") I X'="" S IBSAVE("DateReceived")=$S($E(X)=3:20,1:19)_$E(X,2,3)_"-"_$E(X,4,5)_"-"_$E(X,6,7)
S IBSAVE("Site")=$P($$SITE^VASITE(),"^",3)
S IBSAVE("Division")=$P(IBDATA,"^",20)
S IBSAVE("VistaClaim")=$$GET1^DIQ(364.9,IBIEN_",",2.02)
S IBSAVE("PayerEDIclaimNum")=$P(IBDATA,"^",15)
S IBSAVE("FormType")=$P(IBDATA,"^",5)_"-"_$S($P(IBDATA,"^",6)=2:"P",$P(IBDATA,"^",6)=3:"I",$P(IBDATA,"^",6)=7:"D",1:"")
S IBSAVE("Insurance")=$$GET1^DIQ(364.9,IBIEN_",",.17)
; total charges field 201 from file 399
S IBSAVE("AmountBilled")=$S(IBSAVE("VistaClaim")="":"",1:$$GET1^DIQ(399,$P(IBDATA2,"^",2)_",",201))
S IBSAVE("Authorized")=$$GET1^DIQ(399,$P(IBDATA2,"^",2)_",",11)
S X=$$GET1^DIQ(399,$P(IBDATA2,"^",2)_",",10,"I") I X'="" S IBSAVE("AuthorizedDate")=$S($E(X)=3:20,1:19)_$E(X,2,3)_"-"_$E(X,4,5)_"-"_$E(X,6,7)
S IBSAVE("WorklistGroup")=$$GET1^DIQ(364.9,IBIEN_",",3.02,"I")
D ENCODE^XLFJSON("IBSAVE","RESULT") ;ICR #6682 (Supported)
D FINISH
Q
;
PUT(RESULT,ARG) ; successful posting of ACC X12 encounter data to Sql database for PowerBI ACC Reconciliation report
;; update data field in file 364.9
N IBIEN,RES
K RESULT
D DTNOLF^DICRW
; Get IEN for Claim File 399
S IBIEN=$G(ARG("IEN364.9")) ;$G not necessary for VistaLink provides the parameters defined
I IBIEN="" S IBIEN=$G(ARG("IEN3649"))
; execute code to set claim status as received at FSC
S RES=1
I IBIEN="" S RES=0
I '$D(^IBA(364.9,IBIEN,0)) S RES=0
I RES=1 D
. N DA,D0,DR,DIE,DIC
. S DA=IBIEN
. S DR=".21////0"
. S DIE="^IBA(364.9,"
. D ^DIE
. Q
S RES("site")=$P($$SITE^VASITE(),"^",3)
S RES("ien")=IBIEN
S RES("status")=RES ;result of update
D ENCODE^XLFJSONE("RES","RESULT") ;ICR #6682 (Supported)
D FINISH
Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIBACCRPT 3472 printed May 25, 2026@12:09:44 Page 2
IBACCRPT ;EDE/JWS - RPC FOR IENS, ENCOUNTER DATA, and WRITEBACK FOR TAS ACC CLAIMS RECONCILIATION REPORT;
+1 ;;2.0;INTEGRATED BILLING;**770**;21-MAR-94;Build 119
+2 ;;Per VA Directive 6402, this routine should not be modified.
+3 ;
+4 ; Reference to ENCODE^XLFJSON in ICR #6682
+5 QUIT
+6 ;
GET(RESULT,ARG) ;RPC ; ACC Reconciliation - get list of encounter iens to extract
+1 ;
+2 NEW IBIEN,CT,STOP,IBSTT,IBSAVE,STOPCT
+3 KILL RESULT
+4 DO DTNOLF^DICRW
+5 ; STOPCT is ienLimit if needed
+6 SET STOPCT=+$GET(ARG("IENLIMIT"))
+7 ;set IBSTT = time stamp to check, needs to complete in < 30 seconds due to TAS-API express timeout
+8 SET IBSTT=$PIECE($HOROLOG,",",2)
+9 SET IBSAVE("site")=$PIECE($$SITE^VASITE(),"^",3)
+10 ; "E" index in file 364.9 contains X12 file entries that are flagged READY FOR POWER BI EXTRACT, field .21 - this field is reset in WriteBack
+11 SET IBIEN=""
SET STOP=0
FOR
SET IBIEN=$ORDER(^IBA(364.9,"E",1,IBIEN))
if IBIEN=""
QUIT
Begin DoDot:1
+12 SET CT=$GET(CT)+1
+13 SET IBSAVE("ACCiens",CT,"ien")=IBIEN
+14 IF ($PIECE($HOROLOG,",",2)-IBSTT)>25
SET STOP=1
+15 QUIT
End DoDot:1
if STOP
QUIT
IF STOPCT
IF CT>(STOPCT-1)
QUIT
+16 ;ICR #6682 (Supported)
DO ENCODE^XLFJSON("IBSAVE","RESULT")
+17 DO FINISH
+18 QUIT
+19 ;
+20 ;
FINISH ; enclose message in '[ ]' when a Bundle
+1 NEW X
+2 IF $GET(RESULT(1))=""!($GET(RESULT(1))="{}")
SET RESULT(1)="[{}]"
QUIT
+3 SET RESULT(1)="["_RESULT(1)
+4 SET X=$ORDER(RESULT("A"),-1)
+5 SET RESULT(X)=RESULT(X)_"]"
+6 QUIT
+7 ;
GET1(RESULT,ARG) ;get claim data for ACC Power BI report
+1 ;
+2 NEW IBSAVE,IBDATA,X,IBDATA2
+3 KILL RESULT
+4 DO DTNOLF^DICRW
+5 ; Get IEN for ACC X12 CLAIMS file 364.9
+6 SET IBIEN=$GET(ARG("IEN364.9"))
+7 IF IBIEN=""
SET IBIEN=$GET(ARG("IEN3649"))
+8 IF IBIEN=""
DO FINISH
QUIT
+9 IF '$DATA(^IBA(364.9,IBIEN,0))
DO FINISH
QUIT
+10 ; Collect Information
+11 SET IBDATA=$GET(^IBA(364.9,IBIEN,0))
SET IBDATA2=$GET(^(2))
+12 SET X=$$GET1^DIQ(364.9,IBIEN_",",.01,"I")
IF X'=""
SET IBSAVE("DateReceived")=$SELECT($EXTRACT(X)=3:20,1:19)_$EXTRACT(X,2,3)_"-"_$EXTRACT(X,4,5)_"-"_$EXTRACT(X,6,7)
+13 SET IBSAVE("Site")=$PIECE($$SITE^VASITE(),"^",3)
+14 SET IBSAVE("Division")=$PIECE(IBDATA,"^",20)
+15 SET IBSAVE("VistaClaim")=$$GET1^DIQ(364.9,IBIEN_",",2.02)
+16 SET IBSAVE("PayerEDIclaimNum")=$PIECE(IBDATA,"^",15)
+17 SET IBSAVE("FormType")=$PIECE(IBDATA,"^",5)_"-"_$SELECT($PIECE(IBDATA,"^",6)=2:"P",$PIECE(IBDATA,"^",6)=3:"I",$PIECE(IBDATA,"^",6)=7:"D",1:"")
+18 SET IBSAVE("Insurance")=$$GET1^DIQ(364.9,IBIEN_",",.17)
+19 ; total charges field 201 from file 399
+20 SET IBSAVE("AmountBilled")=$SELECT(IBSAVE("VistaClaim")="":"",1:$$GET1^DIQ(399,$PIECE(IBDATA2,"^",2)_",",201))
+21 SET IBSAVE("Authorized")=$$GET1^DIQ(399,$PIECE(IBDATA2,"^",2)_",",11)
+22 SET X=$$GET1^DIQ(399,$PIECE(IBDATA2,"^",2)_",",10,"I")
IF X'=""
SET IBSAVE("AuthorizedDate")=$SELECT($EXTRACT(X)=3:20,1:19)_$EXTRACT(X,2,3)_"-"_$EXTRACT(X,4,5)_"-"_$EXTRACT(X,6,7)
+23 SET IBSAVE("WorklistGroup")=$$GET1^DIQ(364.9,IBIEN_",",3.02,"I")
+24 ;ICR #6682 (Supported)
DO ENCODE^XLFJSON("IBSAVE","RESULT")
+25 DO FINISH
+26 QUIT
+27 ;
PUT(RESULT,ARG) ; successful posting of ACC X12 encounter data to Sql database for PowerBI ACC Reconciliation report
+1 ;; update data field in file 364.9
+2 NEW IBIEN,RES
+3 KILL RESULT
+4 DO DTNOLF^DICRW
+5 ; Get IEN for Claim File 399
+6 ;$G not necessary for VistaLink provides the parameters defined
SET IBIEN=$GET(ARG("IEN364.9"))
+7 IF IBIEN=""
SET IBIEN=$GET(ARG("IEN3649"))
+8 ; execute code to set claim status as received at FSC
+9 SET RES=1
+10 IF IBIEN=""
SET RES=0
+11 IF '$DATA(^IBA(364.9,IBIEN,0))
SET RES=0
+12 IF RES=1
Begin DoDot:1
+13 NEW DA,D0,DR,DIE,DIC
+14 SET DA=IBIEN
+15 SET DR=".21////0"
+16 SET DIE="^IBA(364.9,"
+17 DO ^DIE
+18 QUIT
End DoDot:1
+19 SET RES("site")=$PIECE($$SITE^VASITE(),"^",3)
+20 SET RES("ien")=IBIEN
+21 ;result of update
SET RES("status")=RES
+22 ;ICR #6682 (Supported)
DO ENCODE^XLFJSONE("RES","RESULT")
+23 DO FINISH
+24 QUIT
+25 ;