IBY621PO ;AITC/DM - Post-Installation for IB patch 621; 22-MAY-2018
;;2.0;INTEGRATED BILLING;**621**;21-MAR-94;Build 14
;;Per VA Directive 6402, this routine should not be modified.
;
POST ; POST ROUTINE(S)
N IBXPD,XPDIDTOT
S XPDIDTOT=3
;
; Create/update the EICD extract
D CHKEICD(1)
;
; Send site registration message to FSC
D REGMSG(2)
;
; Check/remove any link from an insurance to the National EICD Payer
D CHKLNK(3)
;
; Displays the 'Done' message and finishes the progress bar
D MES^XPDUTL("")
D MES^XPDUTL("POST-Install Completed.")
Q
;
REGMSG(IBXPD) ; send site registration message to FSC
D BMES^XPDUTL(" STEP "_IBXPD_" of "_XPDIDTOT)
D MES^XPDUTL("-------------")
D MES^XPDUTL("Sending site registration message to FSC ... ")
;
I '$$PROD^XUPROD(1) D MES^XPDUTL(" N/A - Not a production account - No site registration message sent") G REGMSGQ
D MES^XPDUTL("Sending site registration message to FSC ... ")
D ^IBCNEHLM
;
REGMSGQ ;
Q
;
CHKLNK(IBXPD) ; Due to a timing issue with the National EICD Payer
;It's possible that a client linked an insurance to the EICD payer
;This is not allowed. Any such link will be removed
N IBEICDPY,IBIEN
D BMES^XPDUTL(" STEP "_IBXPD_" of "_XPDIDTOT)
D MES^XPDUTL("-------------")
D MES^XPDUTL("Verifying Insurance links to payers...")
;
S IBEICDPY=0
S IBEICDPY=$O(^IBE(365.12,"B","ELECTRONIC COVERAGE DISCOVERY",IBEICDPY))
I 'IBEICDPY D BMES^XPDUTL("The Electronic Insurance Coverage Discovery Payer has not been established") G CHKLNKQ
S IBIEN=0
F S IBIEN=$O(^DIC(36,"AC",IBEICDPY,IBIEN)) Q:'IBIEN D
. S DIE="^DIC(36,",DA=IBIEN,DR="3.1///@" D ^DIE ; remove the link
. W !,"Insurance:"_IBIEN_" "_$$GET1^DIQ(36,IBIEN_",","NAME")
. K DIE,DA,DR
;
CHKLNKQ ;
Q
;
CHKEICD(IBXPD) ; Create or update the EICD Extract
N IBFDA,IBSETIEN,IBERR,IBEXT4,IBEXTIEN
D BMES^XPDUTL(" STEP "_IBXPD_" of "_XPDIDTOT)
D MES^XPDUTL("-------------")
D MES^XPDUTL("Create/update the EICD Extract parameters... ")
;
S IBEXT4=+$$FIND1^DIC(350.9002,",1,","BQX","4","B")
I 'IBEXT4 D G CHKEICDQ
. W !," Creating a new EICD batch extract record..."
. S IBEXTIEN="+1,1,"
. S IBSETIEN(1)=4 ;for safety, force new IEN to 4
. S IBFDA(350.9002,IBEXTIEN,.01)="4" ; BATCH EXTRACTS
. S IBFDA(350.9002,IBEXTIEN,.02)="1" ; Active?
. S IBFDA(350.9002,IBEXTIEN,.03)="" ; SELECTION CRITERIA #1
. S IBFDA(350.9002,IBEXTIEN,.04)="" ; SELECTION CRITERIA #2
. S IBFDA(350.9002,IBEXTIEN,.05)=99999 ; MAXIMUM EXTRACT NUMBER
. S IBFDA(350.9002,IBEXTIEN,.06)="1" ; SUPPRESS BUFFER CREATION
. S IBFDA(350.9002,IBEXTIEN,.07)=31 ; START DAYS
. S IBFDA(350.9002,IBEXTIEN,.08)=9 ; DAYS AFTER START
. S IBFDA(350.9002,IBEXTIEN,.09)=365 ; FREQUENCY
. ;
. D UPDATE^DIE(,"IBFDA","IBSETIEN","IBERR")
. I $G(IBERR("DIERR",1,"TEXT",1))'="" W !,"ISSUE CREATING EXTRACT: "_$G(IBERR("DIERR",1,"TEXT",1))
;
I IBEXT4 D G CHKEICDQ
. W !," Updating existing EICD batch extract record..."
. S IBEXTIEN=IBEXT4_",1,"
. S IBFDA(350.9002,IBEXTIEN,.02)="1" ; Active?
. S IBFDA(350.9002,IBEXTIEN,.03)="" ; SELECTION CRITERIA #1
. S IBFDA(350.9002,IBEXTIEN,.04)="" ; SELECTION CRITERIA #2
. S IBFDA(350.9002,IBEXTIEN,.05)=99999 ; MAXIMUM EXTRACT NUMBER
. S IBFDA(350.9002,IBEXTIEN,.06)="1" ; SUPPRESS BUFFER CREATION
. S IBFDA(350.9002,IBEXTIEN,.07)=31 ; START DAYS
. S IBFDA(350.9002,IBEXTIEN,.08)=9 ; DAYS AFTER START
. S IBFDA(350.9002,IBEXTIEN,.09)=365 ; FREQUENCY
. ;
. D FILE^DIE(,"IBFDA","IBERR")
. I $G(IBERR("DIERR",1,"TEXT",1))'="" W !,"ISSUE UPDATING EXTRACT: "_$G(IBERR("DIERR",1,"TEXT",1))
;
CHKEICDQ ;
Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIBY621PO 3713 printed Mar 13, 2025@21:40 Page 2
IBY621PO ;AITC/DM - Post-Installation for IB patch 621; 22-MAY-2018
+1 ;;2.0;INTEGRATED BILLING;**621**;21-MAR-94;Build 14
+2 ;;Per VA Directive 6402, this routine should not be modified.
+3 ;
POST ; POST ROUTINE(S)
+1 NEW IBXPD,XPDIDTOT
+2 SET XPDIDTOT=3
+3 ;
+4 ; Create/update the EICD extract
+5 DO CHKEICD(1)
+6 ;
+7 ; Send site registration message to FSC
+8 DO REGMSG(2)
+9 ;
+10 ; Check/remove any link from an insurance to the National EICD Payer
+11 DO CHKLNK(3)
+12 ;
+13 ; Displays the 'Done' message and finishes the progress bar
+14 DO MES^XPDUTL("")
+15 DO MES^XPDUTL("POST-Install Completed.")
+16 QUIT
+17 ;
REGMSG(IBXPD) ; send site registration message to FSC
+1 DO BMES^XPDUTL(" STEP "_IBXPD_" of "_XPDIDTOT)
+2 DO MES^XPDUTL("-------------")
+3 DO MES^XPDUTL("Sending site registration message to FSC ... ")
+4 ;
+5 IF '$$PROD^XUPROD(1)
DO MES^XPDUTL(" N/A - Not a production account - No site registration message sent")
GOTO REGMSGQ
+6 DO MES^XPDUTL("Sending site registration message to FSC ... ")
+7 DO ^IBCNEHLM
+8 ;
REGMSGQ ;
+1 QUIT
+2 ;
CHKLNK(IBXPD) ; Due to a timing issue with the National EICD Payer
+1 ;It's possible that a client linked an insurance to the EICD payer
+2 ;This is not allowed. Any such link will be removed
+3 NEW IBEICDPY,IBIEN
+4 DO BMES^XPDUTL(" STEP "_IBXPD_" of "_XPDIDTOT)
+5 DO MES^XPDUTL("-------------")
+6 DO MES^XPDUTL("Verifying Insurance links to payers...")
+7 ;
+8 SET IBEICDPY=0
+9 SET IBEICDPY=$ORDER(^IBE(365.12,"B","ELECTRONIC COVERAGE DISCOVERY",IBEICDPY))
+10 IF 'IBEICDPY
DO BMES^XPDUTL("The Electronic Insurance Coverage Discovery Payer has not been established")
GOTO CHKLNKQ
+11 SET IBIEN=0
+12 FOR
SET IBIEN=$ORDER(^DIC(36,"AC",IBEICDPY,IBIEN))
if 'IBIEN
QUIT
Begin DoDot:1
+13 ; remove the link
SET DIE="^DIC(36,"
SET DA=IBIEN
SET DR="3.1///@"
DO ^DIE
+14 WRITE !,"Insurance:"_IBIEN_" "_$$GET1^DIQ(36,IBIEN_",","NAME")
+15 KILL DIE,DA,DR
End DoDot:1
+16 ;
CHKLNKQ ;
+1 QUIT
+2 ;
CHKEICD(IBXPD) ; Create or update the EICD Extract
+1 NEW IBFDA,IBSETIEN,IBERR,IBEXT4,IBEXTIEN
+2 DO BMES^XPDUTL(" STEP "_IBXPD_" of "_XPDIDTOT)
+3 DO MES^XPDUTL("-------------")
+4 DO MES^XPDUTL("Create/update the EICD Extract parameters... ")
+5 ;
+6 SET IBEXT4=+$$FIND1^DIC(350.9002,",1,","BQX","4","B")
+7 IF 'IBEXT4
Begin DoDot:1
+8 WRITE !," Creating a new EICD batch extract record..."
+9 SET IBEXTIEN="+1,1,"
+10 ;for safety, force new IEN to 4
SET IBSETIEN(1)=4
+11 ; BATCH EXTRACTS
SET IBFDA(350.9002,IBEXTIEN,.01)="4"
+12 ; Active?
SET IBFDA(350.9002,IBEXTIEN,.02)="1"
+13 ; SELECTION CRITERIA #1
SET IBFDA(350.9002,IBEXTIEN,.03)=""
+14 ; SELECTION CRITERIA #2
SET IBFDA(350.9002,IBEXTIEN,.04)=""
+15 ; MAXIMUM EXTRACT NUMBER
SET IBFDA(350.9002,IBEXTIEN,.05)=99999
+16 ; SUPPRESS BUFFER CREATION
SET IBFDA(350.9002,IBEXTIEN,.06)="1"
+17 ; START DAYS
SET IBFDA(350.9002,IBEXTIEN,.07)=31
+18 ; DAYS AFTER START
SET IBFDA(350.9002,IBEXTIEN,.08)=9
+19 ; FREQUENCY
SET IBFDA(350.9002,IBEXTIEN,.09)=365
+20 ;
+21 DO UPDATE^DIE(,"IBFDA","IBSETIEN","IBERR")
+22 IF $GET(IBERR("DIERR",1,"TEXT",1))'=""
WRITE !,"ISSUE CREATING EXTRACT: "_$GET(IBERR("DIERR",1,"TEXT",1))
End DoDot:1
GOTO CHKEICDQ
+23 ;
+24 IF IBEXT4
Begin DoDot:1
+25 WRITE !," Updating existing EICD batch extract record..."
+26 SET IBEXTIEN=IBEXT4_",1,"
+27 ; Active?
SET IBFDA(350.9002,IBEXTIEN,.02)="1"
+28 ; SELECTION CRITERIA #1
SET IBFDA(350.9002,IBEXTIEN,.03)=""
+29 ; SELECTION CRITERIA #2
SET IBFDA(350.9002,IBEXTIEN,.04)=""
+30 ; MAXIMUM EXTRACT NUMBER
SET IBFDA(350.9002,IBEXTIEN,.05)=99999
+31 ; SUPPRESS BUFFER CREATION
SET IBFDA(350.9002,IBEXTIEN,.06)="1"
+32 ; START DAYS
SET IBFDA(350.9002,IBEXTIEN,.07)=31
+33 ; DAYS AFTER START
SET IBFDA(350.9002,IBEXTIEN,.08)=9
+34 ; FREQUENCY
SET IBFDA(350.9002,IBEXTIEN,.09)=365
+35 ;
+36 DO FILE^DIE(,"IBFDA","IBERR")
+37 IF $GET(IBERR("DIERR",1,"TEXT",1))'=""
WRITE !,"ISSUE UPDATING EXTRACT: "_$GET(IBERR("DIERR",1,"TEXT",1))
End DoDot:1
GOTO CHKEICDQ
+38 ;
CHKEICDQ ;
+1 QUIT
+2 ;