| 1 | DVB458P ;ALB/RBS - ENV/PRE/POST-INSTALL FOR PATCH DVB*4*58 ; 1/11/07 1:34pm
 | 
|---|
| 2 |  ;;4.0;HINQ;**58**;03/25/92;Build 29
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;This routine is the main install routine that will update the
 | 
|---|
| 5 |  ;DISABILITY CONDITION (#31) file with the new mapping of Rated
 | 
|---|
| 6 |  ;Disabilities (VA) VBA DX CODES to specific ICD DIAGNOSIS codes.
 | 
|---|
| 7 |  ;There are 3,085 ICD9 codes that will be added to the (#31) file.
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  Q  ;no direct entry
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 | ENV ;Main entry point for Environment check point.
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 |  S XPDABORT=""
 | 
|---|
| 16 |  ;checks programmer variables
 | 
|---|
| 17 |  D PROGCHK(.XPDABORT)
 | 
|---|
| 18 |  ;check if patch install is running
 | 
|---|
| 19 |  D ISRUNING(.XPDABORT)
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 |  I XPDABORT="" K XPDABORT
 | 
|---|
| 22 |  Q
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 | PRE ;Main entry point for Pre-init items.
 | 
|---|
| 26 |  ;
 | 
|---|
| 27 |  Q
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 | POST ;Main entry point for Post-init items.
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 |  N DVBTOT  ;count of total ICD9 codes filed
 | 
|---|
| 33 |  N DVBTMP  ;Closed Root global reference for error reporting
 | 
|---|
| 34 |  ;remove data from #field 20 in file #31 and repopulate
 | 
|---|
| 35 |  I $$VFIELD^DILFD(31,20) D
 | 
|---|
| 36 |  .D DELETE^DVB458P1
 | 
|---|
| 37 |  S DVBTMP=$NA(^TMP("DVB458P",$J))
 | 
|---|
| 38 |  K @DVBTMP
 | 
|---|
| 39 |  S @DVBTMP@(0)="PATCH DVB*4*58 POST-INSTALL^"_$$NOW^XLFDT
 | 
|---|
| 40 |  S DVBTOT=0
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 |  D BMES^XPDUTL("  >>> *** Updating the DISABILITY CONDITION (#31) file...")
 | 
|---|
| 43 |  D MES^XPDUTL("      *** Please be patient, this should take less than 5 minutes.")
 | 
|---|
| 44 |  D MES^XPDUTL("  ")
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 |  ;call to process (#31) file updates
 | 
|---|
| 47 |  D POST^DVB458P1(DVBTMP,.DVBTOT)
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 |  S @DVBTMP@(0)=@DVBTMP@(0)_"^"_$$NOW^XLFDT_"^"_DVBTOT
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 |  I '$D(@DVBTMP@("ERROR")) D
 | 
|---|
| 52 |  . D BMES^XPDUTL("  >>> *** SUCCESS updating the DISABILITY CONDITION (#31) file.")
 | 
|---|
| 53 |  . D MES^XPDUTL("          Total RELATED ICD9 CODES filed: "_DVBTOT)
 | 
|---|
| 54 |  . ;
 | 
|---|
| 55 |  E  D
 | 
|---|
| 56 |  . D BMES^XPDUTL("  >>> *** FAILURE updating the DISABILITY CONDITION (#31) file.")
 | 
|---|
| 57 |  . D BMES^XPDUTL("      Filing error's have occurred when adding the new RELATED ICD9 CODES.")
 | 
|---|
| 58 |  . D MES^XPDUTL("      Immediate resolution is necessary to maintain database integrity.")
 | 
|---|
| 59 |  . D BMES^XPDUTL("  A MailMan message has been sent to the installer of this patch")
 | 
|---|
| 60 |  . D MES^XPDUTL("  with a listing of the error's.")
 | 
|---|
| 61 |  . D BMES^XPDUTL("  Once these filing error's have been resolved, please re-run")
 | 
|---|
| 62 |  . D MES^XPDUTL("  the Post-Installation routine directly from programmer mode")
 | 
|---|
| 63 |  . D MES^XPDUTL("  by entering the following command:")
 | 
|---|
| 64 |  . D MES^XPDUTL("  ")
 | 
|---|
| 65 |  . D MES^XPDUTL("  D POST^DVB458P")
 | 
|---|
| 66 |  . D MES^XPDUTL("  ")
 | 
|---|
| 67 |  . D BMES^XPDUTL("  >>> I'm now creating and sending the MailMan message...")
 | 
|---|
| 68 |  . ;
 | 
|---|
| 69 |  . D SENDMSG(DVBTMP,.DVBTOT)
 | 
|---|
| 70 |  . ;
 | 
|---|
| 71 |  . D MES^XPDUTL("  >>> All done.")
 | 
|---|
| 72 |  ;
 | 
|---|
| 73 |  ;cleanup temp file
 | 
|---|
| 74 |  K @DVBTMP
 | 
|---|
| 75 |  Q
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 | SENDMSG(DVBTMP,DVBTOT) ;send failure MailMan message to installer of patch
 | 
|---|
| 79 |  ;
 | 
|---|
| 80 |  N DIFROM,DVBMSG
 | 
|---|
| 81 |  N XMY,XMDUZ,XMSUB,XMTEXT,XMDUN,XMZ
 | 
|---|
| 82 |  S XMSUB="DVB*4.0*58 Patch Post-Install Error Listing"
 | 
|---|
| 83 |  S XMTEXT="DVBMSG("
 | 
|---|
| 84 |  S XMDUZ=.5,(XMY(DUZ),XMY(XMDUZ))=""
 | 
|---|
| 85 |  S DVBMSG(1)="Patch:  DVB*4.0*58 Automated Service Connected Designation"
 | 
|---|
| 86 |  S DVBMSG(2)=""
 | 
|---|
| 87 |  S DVBMSG(3)="The post-installation update of the DISABILITY CONDITION (#31) file"
 | 
|---|
| 88 |  S DVBMSG(4)="has FAILED to successfully complete.  Filing error's have occurred when"
 | 
|---|
| 89 |  S DVBMSG(5)="attempting to add the new data mapping of RELATED ICD9 CODES."
 | 
|---|
| 90 |  S DVBMSG(6)=""
 | 
|---|
| 91 |  S DVBMSG(7)="Immediate resolution of ALL error's is needed to maintain database integrity."
 | 
|---|
| 92 |  S DVBMSG(8)=""
 | 
|---|
| 93 |  S DVBMSG(9)="Once these filing error's have been resolved, please re-run"
 | 
|---|
| 94 |  S DVBMSG(10)="the Post-Installation routine directly from programmer mode"
 | 
|---|
| 95 |  S DVBMSG(11)="by entering the following command:"
 | 
|---|
| 96 |  S DVBMSG(12)=""
 | 
|---|
| 97 |  S DVBMSG(13)="D POST^DVB458P"
 | 
|---|
| 98 |  S DVBMSG(14)=""
 | 
|---|
| 99 |  S DVBMSG(15)="The new update run time should take less than 5 minutes to complete."
 | 
|---|
| 100 |  S DVBMSG(16)=""
 | 
|---|
| 101 |  S DVBMSG(17)=">>> Please review and resolve the following error's:"
 | 
|---|
| 102 |  S DVBMSG(18)=""
 | 
|---|
| 103 |  S DVBMSG(19)="*** DISABILITY CONDITION FILE (#31) FILING ERRORS ***"
 | 
|---|
| 104 |  S DVBMSG(20)="-----------------------------------------------------"
 | 
|---|
| 105 |  ;
 | 
|---|
| 106 |  ;loop and list error's
 | 
|---|
| 107 |  N DVBICD,DVBHDR,DVBHDR1,DVBIEN,DVBLN,DVBMSS,DVBVBA,DVBDESC
 | 
|---|
| 108 |  S DVBHDR="VBA DX CODE: ",DVBHDR1="    ICD DIAGNOSIS CODE: "
 | 
|---|
| 109 |  S DVBLN=21,DVBVBA=0
 | 
|---|
| 110 |  F  S DVBVBA=$O(@DVBTMP@("ERROR",DVBVBA)) Q:'DVBVBA  D
 | 
|---|
| 111 |  . I $D(@DVBTMP@("ERROR",DVBVBA,0)) D  Q
 | 
|---|
| 112 |  . . S DVBMSS=DVBHDR_DVBVBA_" - "_$G(@DVBTMP@("ERROR",DVBVBA,0))
 | 
|---|
| 113 |  . . S DVBMSG(DVBLN)=DVBMSS,DVBLN=DVBLN+1
 | 
|---|
| 114 |  . K DVBDESC D FIND^DIC(31,"","","X",DVBVBA,,"C","","","DVBDESC")
 | 
|---|
| 115 |  . S DVBMSS=DVBHDR_DVBVBA_" - "_$E($G(DVBDESC("DILIST",1,1)),1,50)
 | 
|---|
| 116 |  . S DVBMSG(DVBLN)=DVBMSS,DVBLN=DVBLN+1
 | 
|---|
| 117 |  . S DVBIEN=0
 | 
|---|
| 118 |  . F  S DVBIEN=$O(@DVBTMP@("ERROR",DVBVBA,DVBIEN)) Q:'DVBIEN  D
 | 
|---|
| 119 |  . . S DVBICD=""
 | 
|---|
| 120 |  . . F  S DVBICD=$O(@DVBTMP@("ERROR",DVBVBA,DVBIEN,DVBICD)) Q:DVBICD=""  D
 | 
|---|
| 121 |  . . . S DVBMSS=DVBHDR1_DVBICD_" - "_$G(@DVBTMP@("ERROR",DVBVBA,DVBIEN,DVBICD))
 | 
|---|
| 122 |  . . . S DVBMSG(DVBLN)=DVBMSS,DVBLN=DVBLN+1
 | 
|---|
| 123 |  S DVBMSG(DVBLN)="",DVBLN=DVBLN+1
 | 
|---|
| 124 |  S DVBMSG(DVBLN)="<End of Report>"
 | 
|---|
| 125 |  ;
 | 
|---|
| 126 |  D ^XMD
 | 
|---|
| 127 |  Q
 | 
|---|
| 128 |  ;
 | 
|---|
| 129 |  ;
 | 
|---|
| 130 | PROGCHK(XPDABORT) ;checks for necessary programmer variables
 | 
|---|
| 131 |  ;
 | 
|---|
| 132 |  I '$G(DUZ)!($G(DUZ(0))'="@")!('$G(DT))!($G(U)'="^") D
 | 
|---|
| 133 |  . D BMES^XPDUTL("*****")
 | 
|---|
| 134 |  . D MES^XPDUTL("Your programming variables are not set up properly.")
 | 
|---|
| 135 |  . D MES^XPDUTL("Installation aborted.")
 | 
|---|
| 136 |  . D MES^XPDUTL("*****")
 | 
|---|
| 137 |  . S XPDABORT=2
 | 
|---|
| 138 |  Q
 | 
|---|
| 139 |  ;
 | 
|---|
| 140 |  ;
 | 
|---|
| 141 | ISRUNING(XPDABORT) ;check if patch install is running
 | 
|---|
| 142 |  ;
 | 
|---|
| 143 |  I $D(^TMP("DVB458P")) D
 | 
|---|
| 144 |  . D BMES^XPDUTL("*****")
 | 
|---|
| 145 |  . D MES^XPDUTL("This patch is currently being Installed.  Try later.")
 | 
|---|
| 146 |  . D MES^XPDUTL("Installation aborted.")
 | 
|---|
| 147 |  . D MES^XPDUTL("*****")
 | 
|---|
| 148 |  . S XPDABORT=2
 | 
|---|
| 149 |  Q
 | 
|---|