| [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 | ; | 
|---|