| [613] | 1 | IBY377PO        ;ALB/ESG - Post Install for IB patch 377 ;29-Nov-2007
 | 
|---|
 | 2 |         ;;2.0;INTEGRATED BILLING;**377**;21-MAR-94;Build 23
 | 
|---|
 | 3 |         ;;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
 | 4 |         ;
 | 
|---|
 | 5 | EN      ;
 | 
|---|
 | 6 |         N XPDIDTOT S XPDIDTOT=5
 | 
|---|
 | 7 |         D XREF          ; 1. re-build DD cross reference
 | 
|---|
 | 8 |         D PND           ; 2. change one EDI reports menu mnemonic
 | 
|---|
 | 9 |         D REL2          ; 3. populate new field 2.312/4.03
 | 
|---|
 | 10 |         D REL355        ; 4. populate new field 355.33/60.14
 | 
|---|
 | 11 |         D EMAIL         ; 5. send email message to FSC
 | 
|---|
 | 12 |         ;
 | 
|---|
 | 13 |         ; remove identifier label from this field
 | 
|---|
 | 14 |         KILL ^DD(355.93,0,"ID",.09)    ; DBIA# 5131 
 | 
|---|
 | 15 | EX      ;
 | 
|---|
 | 16 |         Q
 | 
|---|
 | 17 |         ;
 | 
|---|
 | 18 | XREF    ; Re-build DD cross references
 | 
|---|
 | 19 |         NEW IBXR,IBRES,IBOUT,DIK
 | 
|---|
 | 20 |         D BMES^XPDUTL(" STEP 1 of "_XPDIDTOT)
 | 
|---|
 | 21 |         D MES^XPDUTL("-------------")
 | 
|---|
 | 22 |         D MES^XPDUTL("Re-building the ""C"" cross-reference in file 364.6 ...")
 | 
|---|
 | 23 |         KILL ^IBA(364.6,"C")                   ; kill whatever is there
 | 
|---|
 | 24 |         S IBXR("FILE")=364.6
 | 
|---|
 | 25 |         S IBXR("NAME")="C"
 | 
|---|
 | 26 |         S IBXR("TYPE")="R"
 | 
|---|
 | 27 |         S IBXR("USE")="LS"
 | 
|---|
 | 28 |         S IBXR("EXECUTION")="F"
 | 
|---|
 | 29 |         S IBXR("ACTIVITY")="IR"
 | 
|---|
 | 30 |         S IBXR("SHORT DESCR")="Field name lookup"
 | 
|---|
 | 31 |         S IBXR("VAL",1)=.1
 | 
|---|
 | 32 |         S IBXR("VAL",1,"SUBSCRIPT")=1
 | 
|---|
 | 33 |         S IBXR("VAL",1,"LENGTH")=40
 | 
|---|
 | 34 |         S IBXR("VAL",1,"COLLATION")="F"
 | 
|---|
 | 35 |         S IBXR("VAL",1,"XFORM FOR STORAGE")="S X=$$UP^XLFSTR(X)"
 | 
|---|
 | 36 |         D CREIXN^DDMOD(.IBXR,"SW",.IBRES,"IBOUT")
 | 
|---|
 | 37 |         S DIK="^IBA(364.6,",DIK(1)=".1^C"      ; set-up
 | 
|---|
 | 38 |         D ENALL^DIK                            ; rebuild it
 | 
|---|
 | 39 | XREFX   ;
 | 
|---|
 | 40 |         D MES^XPDUTL(" Done.")
 | 
|---|
 | 41 |         D UPDATE^XPDID(1)
 | 
|---|
 | 42 |         Q
 | 
|---|
 | 43 |         ;
 | 
|---|
 | 44 | PND     ; Change one EDI reports menu mnemonic
 | 
|---|
 | 45 |         NEW MENUIEN,ITEMIEN,STOP,IBX,DIE,DA,DR
 | 
|---|
 | 46 |         D BMES^XPDUTL(" STEP 2 of "_XPDIDTOT)
 | 
|---|
 | 47 |         D MES^XPDUTL("-------------")
 | 
|---|
 | 48 |         D MES^XPDUTL("Updating EDI reports menu mnemonic ....")
 | 
|---|
 | 49 |         ;
 | 
|---|
 | 50 |         S MENUIEN=$O(^DIC(19,"B","IBCE TXMT MGMNT REPORTS",0)) I 'MENUIEN G PNDX
 | 
|---|
 | 51 |         S ITEMIEN=0,STOP=0
 | 
|---|
 | 52 |         F  S ITEMIEN=$O(^DIC(19,MENUIEN,10,ITEMIEN)) Q:'ITEMIEN  D  Q:STOP
 | 
|---|
 | 53 |         . S IBX=$P($G(^DIC(19,MENUIEN,10,ITEMIEN,0)),U,1) Q:'IBX
 | 
|---|
 | 54 |         . I $P($G(^DIC(19,IBX,0)),U,1)'="IBCE BATCHES PENDING TOO LONG" Q
 | 
|---|
 | 55 |         . S DIE="^DIC(19,"_MENUIEN_",10,"
 | 
|---|
 | 56 |         . S DA=ITEMIEN,DA(1)=MENUIEN
 | 
|---|
 | 57 |         . S DR="2////PND"
 | 
|---|
 | 58 |         . D ^DIE
 | 
|---|
 | 59 |         . S STOP=1
 | 
|---|
 | 60 |         . Q
 | 
|---|
 | 61 | PNDX    ;
 | 
|---|
 | 62 |         D MES^XPDUTL(" Done.")
 | 
|---|
 | 63 |         D UPDATE^XPDID(2)
 | 
|---|
 | 64 |         Q
 | 
|---|
 | 65 |         ;
 | 
|---|
 | 66 | REL2    ; Populate new pt. relation field 2.312/4.03
 | 
|---|
 | 67 |         ;
 | 
|---|
 | 68 |         N IBCNT,IEN2,IEN2312,NODE,WINS,X12CODE
 | 
|---|
 | 69 |         D BMES^XPDUTL(" STEP 3 of "_XPDIDTOT)
 | 
|---|
 | 70 |         D MES^XPDUTL("-------------")
 | 
|---|
 | 71 |         D MES^XPDUTL("Updating new patient relationship field in PATIENT file...")
 | 
|---|
 | 72 |         ; If this patch has been installed before, then this update has already been completed.
 | 
|---|
 | 73 |         I $$ICPLT() D MES^XPDUTL(" This field has already been updated. No further action.") G REL2X
 | 
|---|
 | 74 |         D MES^XPDUTL("Each ""."" represents 10,000 records.")
 | 
|---|
 | 75 |         D MES^XPDUTL("")
 | 
|---|
 | 76 |         S (IEN2,IBCNT)=0 F  S IEN2=$O(^DPT(IEN2)) Q:IEN2?1.A!(IEN2="")  D
 | 
|---|
 | 77 |         .S IBCNT=IBCNT+1 W:(IBCNT#10000=0)&'$D(ZTQUEUED) "."
 | 
|---|
 | 78 |         .Q:'$D(^DPT(IEN2,.312))  ; make sure file 2.312 exists for this patient
 | 
|---|
 | 79 |         .S IEN2312=0 F  S IEN2312=$O(^DPT(IEN2,.312,IEN2312)) Q:IEN2312?1.A!(IEN2312="")  D
 | 
|---|
 | 80 |         ..S NODE=$G(^DPT(IEN2,.312,IEN2312,0)),X12CODE=$$PRELCNV^IBCNSP1($P(NODE,U,16),1)
 | 
|---|
 | 81 |         ..; if we couldn't find a match, try to use WHOSE INSURANCE field
 | 
|---|
 | 82 |         ..S:X12CODE="" WINS=$P(NODE,U,6),X12CODE=$S(WINS="v":"18",WINS="s":"01",1:"")
 | 
|---|
 | 83 |         ..Q:X12CODE=""  ; still no valid code - skip this record
 | 
|---|
 | 84 |         ..N DIE,DR,DA
 | 
|---|
 | 85 |         ..S DIE="^DPT("_IEN2_",.312,",DA=IEN2312,DA(1)=IEN2,DR="4.03////"_X12CODE D ^DIE
 | 
|---|
 | 86 |         ..Q
 | 
|---|
 | 87 |         .Q
 | 
|---|
 | 88 |         D MES^XPDUTL(" Done.")
 | 
|---|
 | 89 | REL2X   ;
 | 
|---|
 | 90 |         D UPDATE^XPDID(3)
 | 
|---|
 | 91 |         D CLEAN^DILF
 | 
|---|
 | 92 |         Q
 | 
|---|
 | 93 |         ;
 | 
|---|
 | 94 | REL355  ; Populate new pt. relation field 355.33/60.14
 | 
|---|
 | 95 |         ;
 | 
|---|
 | 96 |         N IEN355,NODE,WINS,X12CODE
 | 
|---|
 | 97 |         D BMES^XPDUTL(" STEP 4 of "_XPDIDTOT)
 | 
|---|
 | 98 |         D MES^XPDUTL("-------------")
 | 
|---|
 | 99 |         D MES^XPDUTL("Updating new patient relationship field in INSURANCE BUFFER file...")
 | 
|---|
 | 100 |         ; If this patch has been installed before, then this update has already been completed.
 | 
|---|
 | 101 |         I $$ICPLT() D MES^XPDUTL(" This field has already been updated. No further action.") G REL355X
 | 
|---|
 | 102 |         S IEN355=0 F  S IEN355=$O(^IBA(355.33,IEN355)) Q:IEN355?1.A!(IEN355="")  D
 | 
|---|
 | 103 |         .S NODE=$G(^IBA(355.33,IEN355,60)) Q:NODE=""  ; make sure that node 60 of file 355.33 exists
 | 
|---|
 | 104 |         .S X12CODE=$$PRELCNV^IBCNSP1($P(NODE,U,6),1)
 | 
|---|
 | 105 |         .; if we couldn't find a match, try to use WHOSE INSURANCE field
 | 
|---|
 | 106 |         .S:X12CODE="" WINS=$P(NODE,U,5),X12CODE=$S(WINS="v":"18",WINS="s":"01",1:"")
 | 
|---|
 | 107 |         .Q:X12CODE=""  ; still no valid code - skip this record
 | 
|---|
 | 108 |         .N DIE,DR,DA
 | 
|---|
 | 109 |         .S DIE=355.33,DA=IEN355,DR="60.14////"_X12CODE D ^DIE
 | 
|---|
 | 110 |         .Q
 | 
|---|
 | 111 |         D MES^XPDUTL(" Done.")
 | 
|---|
 | 112 | REL355X ;
 | 
|---|
 | 113 |         D UPDATE^XPDID(4)
 | 
|---|
 | 114 |         D CLEAN^DILF
 | 
|---|
 | 115 |         Q
 | 
|---|
 | 116 |         ;
 | 
|---|
 | 117 | ICPLT() ; Returns 1 if this patch has been successfully installed before, 0 otherwise
 | 
|---|
 | 118 |         N I,ICPLT,INST
 | 
|---|
 | 119 |         D FIND^DIC(9.7,,"@;.02I","QPX","IB*2.0*377",,,,,"INST")
 | 
|---|
 | 120 |         S (I,ICPLT)=0 F  S I=$O(INST("DILIST",I)) Q:I=""  S:+$P(INST("DILIST",I,0),U,2)=3 ICPLT=1 Q:ICPLT
 | 
|---|
 | 121 |         Q ICPLT
 | 
|---|
 | 122 |         ;
 | 
|---|
 | 123 | EMAIL   ; Send an email message to Austin FSC to let them know this site has installed IB patch 377
 | 
|---|
 | 124 |         NEW SITE,SUBJ,MSG,XMTO,LN,GLO,GLB
 | 
|---|
 | 125 |         D BMES^XPDUTL(" STEP 5 of "_XPDIDTOT)
 | 
|---|
 | 126 |         D MES^XPDUTL("-------------")
 | 
|---|
 | 127 |         D MES^XPDUTL("Sending email notification to Austin FSC ... ")
 | 
|---|
 | 128 |         I '$$PROD^XUPROD(1) D MES^XPDUTL("No email sent for test account installation.") G EMAILX
 | 
|---|
 | 129 |         S SITE=$$SITE^VASITE
 | 
|---|
 | 130 |         S SUBJ="IB*2*377 installed at Station# "_$P(SITE,U,3)_" - "_$P(SITE,U,2)
 | 
|---|
 | 131 |         S SUBJ=$E(SUBJ,1,65)
 | 
|---|
 | 132 |         S MSG(1)="VistA patch IB*2.0*377 was installed successfully at the following site:"
 | 
|---|
 | 133 |         S MSG(2)=""
 | 
|---|
 | 134 |         S MSG(3)="        Name: "_$P(SITE,U,2)
 | 
|---|
 | 135 |         S MSG(4)="    Station#: "_$P(SITE,U,3)
 | 
|---|
 | 136 |         S MSG(5)="      Domain: "_$G(^XMB("NETNAME"))
 | 
|---|
 | 137 |         S MSG(6)="   Date/Time: "_$$FMTE^XLFDT($$NOW^XLFDT,"5ZPM")
 | 
|---|
 | 138 |         S MSG(7)=""
 | 
|---|
 | 139 |         S MSG(8)="This patch is eClaims Plus Iteration 3, Phase 2."
 | 
|---|
 | 140 |         ;
 | 
|---|
 | 141 |         S XMTO("fsc.edi-team@va.gov")=""
 | 
|---|
 | 142 |         S XMTO("Eric.Gustafson@va.gov")=""
 | 
|---|
 | 143 |         S XMTO("Yan.Gurtovoy@va.gov")=""
 | 
|---|
 | 144 |         S XMTO("Mary.Simons@va.gov")=""
 | 
|---|
 | 145 |         ;
 | 
|---|
 | 146 |         D SENDMSG^XMXAPI(DUZ,SUBJ,"MSG",.XMTO)
 | 
|---|
 | 147 |         I '$D(^TMP("XMERR",$J)) G EMAILX    ; no email problems
 | 
|---|
 | 148 |         ;
 | 
|---|
 | 149 |         D MES^XPDUTL("MailMan problem reported.  Please review messages.")
 | 
|---|
 | 150 |         S SUBJ="IB*2*377 email notification failure"
 | 
|---|
 | 151 |         K MSG S LN=0
 | 
|---|
 | 152 |         S LN=LN+1,MSG(LN)="MailMan reported the following error(s) when attempting to send the"
 | 
|---|
 | 153 |         S LN=LN+1,MSG(LN)="installation notification message for IB patch 377."
 | 
|---|
 | 154 |         S LN=LN+1,MSG(LN)=""
 | 
|---|
 | 155 |         S (GLO,GLB)="^TMP(""XMERR"","_$J
 | 
|---|
 | 156 |         S GLO=GLO_")"
 | 
|---|
 | 157 |         F  S GLO=$Q(@GLO) Q:GLO'[GLB  S LN=LN+1,MSG(LN)="   "_GLO_" = "_$G(@GLO)
 | 
|---|
 | 158 |         S LN=LN+1,MSG(LN)=""
 | 
|---|
 | 159 |         S LN=LN+1,MSG(LN)="Please contact EPS and report this problem by entering a Remedy ticket"
 | 
|---|
 | 160 |         S LN=LN+1,MSG(LN)="or by calling the VA Service Desk (ph. 1-888-596-4357)."
 | 
|---|
 | 161 |         S LN=LN+1,MSG(LN)=""
 | 
|---|
 | 162 |         S LN=LN+1,MSG(LN)="Austin FSC needs to be notified when this patch is installed."
 | 
|---|
 | 163 |         S LN=LN+1,MSG(LN)=""
 | 
|---|
 | 164 |         K XMTO
 | 
|---|
 | 165 |         S XMTO(DUZ)=""
 | 
|---|
 | 166 |         S XMTO("G.PATCHES")=""
 | 
|---|
 | 167 |         D SENDMSG^XMXAPI(DUZ,SUBJ,"MSG",.XMTO)
 | 
|---|
 | 168 |         D MES^XPDUTL(.MSG)
 | 
|---|
 | 169 |         ;
 | 
|---|
 | 170 | EMAILX  ;
 | 
|---|
 | 171 |         D MES^XPDUTL(" Done.")
 | 
|---|
 | 172 |         D UPDATE^XPDID(5)
 | 
|---|
 | 173 |         D CLEAN^DILF
 | 
|---|
 | 174 |         Q
 | 
|---|
 | 175 |         ;
 | 
|---|