Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DVB458P

DVB458P.m

Go to the documentation of this file.
DVB458P ;ALB/RBS - ENV/PRE/POST-INSTALL FOR PATCH DVB*4*58 ; 1/11/07 1:34pm
 ;;4.0;HINQ;**58**;03/25/92;Build 29
 ;
 ;This routine is the main install routine that will update the
 ;DISABILITY CONDITION (#31) file with the new mapping of Rated
 ;Disabilities (VA) VBA DX CODES to specific ICD DIAGNOSIS codes.
 ;There are 3,085 ICD9 codes that will be added to the (#31) file.
 ;
 ;
 Q  ;no direct entry
 ;
 ;
ENV ;Main entry point for Environment check point.
 ;
 S XPDABORT=""
 ;checks programmer variables
 D PROGCHK(.XPDABORT)
 ;check if patch install is running
 D ISRUNING(.XPDABORT)
 ;
 I XPDABORT="" K XPDABORT
 Q
 ;
 ;
PRE ;Main entry point for Pre-init items.
 ;
 Q
 ;
 ;
POST ;Main entry point for Post-init items.
 ;
 N DVBTOT  ;count of total ICD9 codes filed
 N DVBTMP  ;Closed Root global reference for error reporting
 ;remove data from #field 20 in file #31 and repopulate
 I $$VFIELD^DILFD(31,20) D
 .D DELETE^DVB458P1
 S DVBTMP=$NA(^TMP("DVB458P",$J))
 K @DVBTMP
 S @DVBTMP@(0)="PATCH DVB*4*58 POST-INSTALL^"_$$NOW^XLFDT
 S DVBTOT=0
 ;
 D BMES^XPDUTL("  >>> *** Updating the DISABILITY CONDITION (#31) file...")
 D MES^XPDUTL("      *** Please be patient, this should take less than 5 minutes.")
 D MES^XPDUTL("  ")
 ;
 ;call to process (#31) file updates
 D POST^DVB458P1(DVBTMP,.DVBTOT)
 ;
 S @DVBTMP@(0)=@DVBTMP@(0)_"^"_$$NOW^XLFDT_"^"_DVBTOT
 ;
 I '$D(@DVBTMP@("ERROR")) D
 . D BMES^XPDUTL("  >>> *** SUCCESS updating the DISABILITY CONDITION (#31) file.")
 . D MES^XPDUTL("          Total RELATED ICD9 CODES filed: "_DVBTOT)
 . ;
 E  D
 . D BMES^XPDUTL("  >>> *** FAILURE updating the DISABILITY CONDITION (#31) file.")
 . D BMES^XPDUTL("      Filing error's have occurred when adding the new RELATED ICD9 CODES.")
 . D MES^XPDUTL("      Immediate resolution is necessary to maintain database integrity.")
 . D BMES^XPDUTL("  A MailMan message has been sent to the installer of this patch")
 . D MES^XPDUTL("  with a listing of the error's.")
 . D BMES^XPDUTL("  Once these filing error's have been resolved, please re-run")
 . D MES^XPDUTL("  the Post-Installation routine directly from programmer mode")
 . D MES^XPDUTL("  by entering the following command:")
 . D MES^XPDUTL("  ")
 . D MES^XPDUTL("  D POST^DVB458P")
 . D MES^XPDUTL("  ")
 . D BMES^XPDUTL("  >>> I'm now creating and sending the MailMan message...")
 . ;
 . D SENDMSG(DVBTMP,.DVBTOT)
 . ;
 . D MES^XPDUTL("  >>> All done.")
 ;
 ;cleanup temp file
 K @DVBTMP
 Q
 ;
 ;
SENDMSG(DVBTMP,DVBTOT) ;send failure MailMan message to installer of patch
 ;
 N DIFROM,DVBMSG
 N XMY,XMDUZ,XMSUB,XMTEXT,XMDUN,XMZ
 S XMSUB="DVB*4.0*58 Patch Post-Install Error Listing"
 S XMTEXT="DVBMSG("
 S XMDUZ=.5,(XMY(DUZ),XMY(XMDUZ))=""
 S DVBMSG(1)="Patch:  DVB*4.0*58 Automated Service Connected Designation"
 S DVBMSG(2)=""
 S DVBMSG(3)="The post-installation update of the DISABILITY CONDITION (#31) file"
 S DVBMSG(4)="has FAILED to successfully complete.  Filing error's have occurred when"
 S DVBMSG(5)="attempting to add the new data mapping of RELATED ICD9 CODES."
 S DVBMSG(6)=""
 S DVBMSG(7)="Immediate resolution of ALL error's is needed to maintain database integrity."
 S DVBMSG(8)=""
 S DVBMSG(9)="Once these filing error's have been resolved, please re-run"
 S DVBMSG(10)="the Post-Installation routine directly from programmer mode"
 S DVBMSG(11)="by entering the following command:"
 S DVBMSG(12)=""
 S DVBMSG(13)="D POST^DVB458P"
 S DVBMSG(14)=""
 S DVBMSG(15)="The new update run time should take less than 5 minutes to complete."
 S DVBMSG(16)=""
 S DVBMSG(17)=">>> Please review and resolve the following error's:"
 S DVBMSG(18)=""
 S DVBMSG(19)="*** DISABILITY CONDITION FILE (#31) FILING ERRORS ***"
 S DVBMSG(20)="-----------------------------------------------------"
 ;
 ;loop and list error's
 N DVBICD,DVBHDR,DVBHDR1,DVBIEN,DVBLN,DVBMSS,DVBVBA,DVBDESC
 S DVBHDR="VBA DX CODE: ",DVBHDR1="    ICD DIAGNOSIS CODE: "
 S DVBLN=21,DVBVBA=0
 F  S DVBVBA=$O(@DVBTMP@("ERROR",DVBVBA)) Q:'DVBVBA  D
 . I $D(@DVBTMP@("ERROR",DVBVBA,0)) D  Q
 . . S DVBMSS=DVBHDR_DVBVBA_" - "_$G(@DVBTMP@("ERROR",DVBVBA,0))
 . . S DVBMSG(DVBLN)=DVBMSS,DVBLN=DVBLN+1
 . K DVBDESC D FIND^DIC(31,"","","X",DVBVBA,,"C","","","DVBDESC")
 . S DVBMSS=DVBHDR_DVBVBA_" - "_$E($G(DVBDESC("DILIST",1,1)),1,50)
 . S DVBMSG(DVBLN)=DVBMSS,DVBLN=DVBLN+1
 . S DVBIEN=0
 . F  S DVBIEN=$O(@DVBTMP@("ERROR",DVBVBA,DVBIEN)) Q:'DVBIEN  D
 . . S DVBICD=""
 . . F  S DVBICD=$O(@DVBTMP@("ERROR",DVBVBA,DVBIEN,DVBICD)) Q:DVBICD=""  D
 . . . S DVBMSS=DVBHDR1_DVBICD_" - "_$G(@DVBTMP@("ERROR",DVBVBA,DVBIEN,DVBICD))
 . . . S DVBMSG(DVBLN)=DVBMSS,DVBLN=DVBLN+1
 S DVBMSG(DVBLN)="",DVBLN=DVBLN+1
 S DVBMSG(DVBLN)="<End of Report>"
 ;
 D ^XMD
 Q
 ;
 ;
PROGCHK(XPDABORT) ;checks for necessary programmer variables
 ;
 I '$G(DUZ)!($G(DUZ(0))'="@")!('$G(DT))!($G(U)'="^") D
 . D BMES^XPDUTL("*****")
 . D MES^XPDUTL("Your programming variables are not set up properly.")
 . D MES^XPDUTL("Installation aborted.")
 . D MES^XPDUTL("*****")
 . S XPDABORT=2
 Q
 ;
 ;
ISRUNING(XPDABORT) ;check if patch install is running
 ;
 I $D(^TMP("DVB458P")) D
 . D BMES^XPDUTL("*****")
 . D MES^XPDUTL("This patch is currently being Installed.  Try later.")
 . D MES^XPDUTL("Installation aborted.")
 . D MES^XPDUTL("*****")
 . S XPDABORT=2
 Q