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

BLRPRE28.m

Go to the documentation of this file.
  1. BLRPRE28 ; IHS/OIT/MPW - IHS Lab PATCH 1028 Environment/Post Install Routine ; [ 12/13/2010 07:30 AM ]
  1. ;;5.2;IHS LABORATORY;**1028**;NOV 01, 1997;Build 46
  1. ;
  1. PRE ; EP
  1. D BMES^XPDUTL("Beginning of Pre Check.")
  1. NEW CP,RPMS,RPMSVER
  1. NEW STR
  1. NEW LASTPTCH ; Last Patch of Lab
  1. NEW LSTPISTS ; Last Patch Install Status
  1. NEW ERRARRAY ; Array of errors
  1. ;
  1. I $G(XPDNM)="" D SORRY("XPDNM not defined or 0.") Q
  1. ;
  1. S CP=$P(XPDNM,"*",3) ; Current Patch Number
  1. S RPMS=$P(XPDNM,"*",1) ; RPMS Module
  1. S RPMSVER=$P(XPDNM,"*",2) ; Version of RPMS module being patched
  1. ;
  1. PTCHLAST ; EP - Check for previous patch
  1. D MES^XPDUTL(" Need LR*5.2*1027 Patch Installed.")
  1. I $$PATCH^XPDUTL("LR*5.2*1027")'=1 D SORRY("LR*5.2*1027 Patch Not Installed.") Q
  1. ;
  1. D OKAY^BLRKIDSU("LR*5.2*1027 Patch Installed.",10)
  1. ;
  1. S XPDNOQUE="NO QUE" ; No Queuing Allowed
  1. ;
  1. ; The following line prevents the "Disable Options..." and "Move
  1. ; Routines..." questions from being asked during the install.
  1. F X="XPO1","XPZ1","XPZ2","XPI1" S XPDDIQ(X)=0
  1. ;
  1. S XPDABORT=0 ; KIDS install Flag
  1. ;
  1. USERID ; EP - CHECK FOR USER ID
  1. I '$G(DUZ) D SORRY("DUZ UNDEFINED OR 0.") Q
  1. ;
  1. I '$L($G(DUZ(0))) D SORRY("DUZ(0) UNDEFINED OR NULL.") Q
  1. ;
  1. D HOME^%ZIS
  1. D DTNOLF^DICRW ; Set DT variable without Doing a Line Feed
  1. ;
  1. S X=$P($G(^VA(200,DUZ,0)),U)
  1. I $G(X) D SORRY^BLRKIDSU("Installer cannot be identified!",,,CP) Q
  1. ;
  1. D MES^XPDUTL("Pre Check complete.")
  1. ;
  1. LETSGO ; EP - USER IDENTIFIED -- LET'S GO
  1. D BMES^XPDUTL("Hello, "_$P(X,",",2)_" "_$P(X,","))
  1. ;
  1. D BMES^XPDUTL("Checking Environment for Patch "_CP_" of Version "_RPMSVER_" of "_RPMS_".")
  1. ;
  1. D NEEDIT("DI","22.0",,.ERRARRAY) ; FILEMAN 22.0
  1. D NEEDIT("XM","8.0",,.ERRARRAY) ; MAILMAN 8.0
  1. D NEEDIT("XU","8.0",1016,.ERRARRAY) ; KERNEL 8.0 & PATCH 1016
  1. ;
  1. D CHECKLMI(.ERRARRAY) ; LMI MAIL GROUP
  1. ;
  1. I XPDABORT<1 D BMES^XPDUTL("ENVIRONMENT OK.")
  1. ;
  1. I XPDABORT>0 D
  1. . D SORRYEND(.ERRARRAY) ; Environment has error(s)
  1. ;
  1. Q
  1. ;
  1. BACKUP ; EP
  1. NEW CP
  1. S CP=$P($T(+2),"*",3)
  1. ;
  1. D BACKUPS^BLRKIDSU(CP)
  1. Q
  1. ;
  1. POST ; EP -- POST INSTALL
  1. NEW CP
  1. ;
  1. S CP=$P($T(+2),"*",3)
  1. ;
  1. ; The following line prevents the "Disable Options..." and "Move
  1. ; Routines..." questions from being asked during the install.
  1. F X="XPO1","XPZ1","XPZ2","XPI1" S XPDDIQ(X)=0
  1. ;
  1. ; ---- BEGIN IHS/OIT/MKK additions
  1. S X=$$ADD^XPDMENU("BLRMENU","BLRCINDX INTERACTIVE","ORPH")
  1. D:X OKAY^BLRKIDSU("BLRCINDX INTERACTIVE OPTION ADDED TO BLRMENU",5)
  1. D:'X TABMESG^BLRKIDSU("BLRCINDX INTERACTIVE OPTION NOT ADDED TO BLRMENU",5)
  1. ;
  1. S X=$$ADD^XPDMENU("BLRMENU","BLRCINDX TASKMAN REPORT","ORPR")
  1. D:X OKAY^BLRKIDSU("BLRCINDX TASKMAN REPORT OPTION ADDED TO BLRMENU",5)
  1. D:'X TABMESG^BLRKIDSU("BLRCINDX TASKMAN REPORT OPTION NOT ADDED TO BLRMENU",5)
  1. ; ----- END IHS/OIT/MKK additions
  1. ;
  1. ;Add IHS LOINC/UCUM MENU to BLRMENU via Kernel utility
  1. S X=$$ADD^XPDMENU("BLRMENU","IHS LOINC/UCUM MENU","ILUM") I 'X D BMES^XPDUTL("Install of IHS LOINC/UCUM MENU Failed") Q
  1. ;
  1. ;Deactive old LOINC menus
  1. N DR,DIE,DA,BLSMSG
  1. S BLSMSG="DEACTIVATED BY IHS, PLEASE USE IHS LOINC/UCUM MENU"
  1. S DR="2////"_BLSMSG,DIE="^DIC(19,"
  1. S DA=$O(^DIC(19,"B","LRLOINC","")) D ^DIE
  1. S DA=$O(^DIC(19,"B","LR LOINC UTILITY","")) D ^DIE
  1. S DA=$O(^DIC(19,"B","LR LOINC HISTORICAL MAP MENU","")) D ^DIE
  1. S DA=$O(^DIC(19,"B","BLSMENU","")) D ^DIE
  1. K DR,DIE,DA,BLSMSG
  1. ;
  1. D MODEAGDC^BLRPR28P ; Modify EAG Delta Check
  1. ;
  1. ;
  1. D BMES^XPDUTL("Laboratory Patch "_CP_" INSTALL complete.")
  1. ;
  1. NEW STR
  1. S STR(1)="Laboratory Patch "_CP_" INSTALL completed at."
  1. S STR(2)=$$CJ^XLFSTR($$UP^XLFSTR($TR($$HTE^XLFDT($H,"MP"),"@"," ")),43)
  1. D SENDMAIL("IHS Lab Patch "_CP)
  1. D SNDALERT("Laboratory Patch "_CP_" INSTALL complete.")
  1. ;
  1. ; Store # of times installation occurred as well as person & date/time
  1. D ENDINSTL^BLRKIDSU(CP)
  1. ;
  1. Q
  1. ;
  1. DEBUG ; EP - Debugging Line Label for environment checker
  1. NEW CP,DEBUG,XPDNM
  1. S DEBUG="YES"
  1. S XPDNM="LR*5.2*1028"
  1. S CP=$P($T(+2),"*",3) ; Current Patch
  1. D PRE
  1. Q
  1. ;
  1. ; Error Message routine. It will send an ALERT and a MailMan message
  1. ; and it will also appear on the INSTALL LOG.
  1. SORRY(MSG,MODE,MSG2) ; EP
  1. S CP=$P($T(+2),"*",3)
  1. ;
  1. NEW MESSAGE
  1. I $G(MODE)=""!($G(MODE)'["NONFATAL") D
  1. . S MESSAGE="Install Aborting due to the following Systems Environment issue:"
  1. . S XPDABORT=1 ; Fatal Error Flag Set
  1. ;
  1. I $G(MODE)["NONFATAL" S MESSAGE="*** WARNING *** WARNING *** WARNING ***"
  1. ;
  1. K DIFQ
  1. ;
  1. NEW STR,LINECNT
  1. S LINECNT=1
  1. D ADDLINE(" ",.LINECNT)
  1. D ADDLINE($TR($J("",65)," ","*"),.LINECNT) ; Row of asterisks
  1. D ADDLINE(" ",.LINECNT)
  1. D ADDLINE($$CJ^XLFSTR("Site: "_$$LOC^XBFUNC,65),.LINECNT)
  1. D ADDLINE(" ",.LINECNT)
  1. D ADDLINE($$CJ^XLFSTR(MESSAGE,65),.LINECNT)
  1. D ADDLINE(" ",.LINECNT)
  1. D ADDLINE($$CJ^XLFSTR(">>> "_MSG_" <<<",65),.LINECNT)
  1. I $D(MSG2) D ADDLINE($$CJ^XLFSTR(">>> "_MSG2_" <<<",65),.LINECNT)
  1. D ADDLINE(" ",.LINECNT)
  1. ;
  1. I $G(MODE)["NONFATAL" D ADDLINE($$CJ^XLFSTR(MESSAGE,65),.LINECNT)
  1. ;
  1. I $G(MODE)'["NONFATAL" D
  1. . D ADDLINE($$CJ^XLFSTR("Please print/capture this screen and",65),.LINECNT)
  1. . D ADDLINE($$CJ^XLFSTR("notify the Support Center at",65),.LINECNT)
  1. . D ADDLINE(" ",.LINECNT)
  1. . D ADDLINE($$CJ^XLFSTR("1-888-830-7280.",65),.LINECNT)
  1. . D ADDLINE(" ",.LINECNT)
  1. ;
  1. D ADDLINE($TR($J("",65)," ","*"),.LINECNT) ; Row of asterisks
  1. D ADDLINE(" ",.LINECNT)
  1. ;
  1. D BMES^XPDUTL(.STR)
  1. ;
  1. Q
  1. ;
  1. ADDLINE(ASTR,LC) ; EP -- Add a line to the STR array
  1. I $G(ASTR)="" S ASTR=" "
  1. S STR(LC)=ASTR
  1. S LC=LC+1
  1. Q
  1. ;
  1. SNDALERT(ALERTMSG) ; EP -- Send alert to LMI group & Installer
  1. D SENDIT("G.LMI",ALERTMSG)
  1. D SENDIT(DUZ,ALERTMSG)
  1. Q
  1. ;
  1. SENDIT(WHO,WOTMSG) ; EP - Send the Alert
  1. S XQAMSG=WOTMSG
  1. S XQA(WHO)=""
  1. D SETUP^XQALERT
  1. K XQA,XQAMSG
  1. Q
  1. ;
  1. SENDMAIL(MAILMSG) ; EP -- Send MailMan E-mail to LMI group & Installer
  1. D MAILIT("G.LMI",MAILMSG)
  1. D MAILIT(DUZ,MAILMSG)
  1. Q
  1. ;
  1. MAILIT(WHO,MSG) ; EP -- Send the MailMan Message
  1. NEW CP,DIFROM,XMDUZ,XMMG,XMSUB,XMTEXT,XMY
  1. ;
  1. S CP=$P($T(+2),"*",3)
  1. ;
  1. S XMY(WHO)=""
  1. S XMSUB=MSG
  1. S XMTEXT="STR("
  1. S XMDUZ="IHS "_XPDNM
  1. D ^XMD
  1. ;
  1. I $G(XMMG)="" Q ; Message sent
  1. ;
  1. D BMES^XPDUTL("Error Sending MailMan Message.")
  1. D TABMESG^BLRKIDSU("Error Message:"_XMMG,10)
  1. ;
  1. Q
  1. ;
  1. CHECKLMI(ERRARRAY) ; EP -- CHECK FOR LMI MAIL GROUP
  1. NEW HEREYAGO
  1. ;
  1. D BMES^XPDUTL("Must have 'LMI' mail group present.")
  1. D FIND^DIC(3.8,"","","","LMI","","","","","HEREYAGO")
  1. ;
  1. I $G(HEREYAGO("DILIST",1,1))="LMI" D Q
  1. . D OKAY^BLRKIDSU("'LMI' mail group found.")
  1. ;
  1. D SORRY("'LMI' mail group NOT found!","FATAL")
  1. S ERRARRAY("XMB(3.8","Mail Group","3.8")="LMI Mail Group"
  1. Q
  1. ;
  1. ; Generic "Find RPMS Module's Version and (perhaps) Patch number"
  1. ; The MODULE variable MUST be the PREFIX name from the PACKAGE file (9.4).
  1. NEEDIT(MODULE,VERSION,PATCH,ERRARRAY) ; EP
  1. NEW NAME ; Name of PACKAGE
  1. NEW HEREYAGO,STR1,STR2 ; Scratch variables/arrays
  1. NEW SYSVER,SYSPATCH ; System Version & System Patch variables
  1. ;
  1. D FIND^DIC(9.4,"","","",MODULE,"","C","","","HEREYAGO")
  1. S NAME=$G(HEREYAGO("DILIST",1,1))
  1. ;
  1. D BMES^XPDUTL("Need at least "_NAME_" "_VERSION)
  1. ;
  1. S SYSVER=$$VERSION^XPDUTL(MODULE) ; Get the System's Version
  1. ; If System Version < Needed Version, write message and quit
  1. I SYSVER<VERSION D Q
  1. . S ERRARRAY(MODULE,NAME,VERSION)=SYSVER
  1. . D NEEDMSG("Need "_NAME_" "_VERSION_" & "_NAME_" "_SYSVER_" found!")
  1. ;
  1. D OKAY^BLRKIDSU(NAME_" "_SYSVER_" found.")
  1. I VERSION<SYSVER Q ; If Version needed is lower, skip Patch check
  1. ;
  1. I $G(PATCH)="" Q ; If no Patch check, just exit
  1. ;
  1. D BMES^XPDUTL(" Need "_NAME_" "_VERSION_" Patch "_PATCH_".")
  1. S SYSPATCH=$$PATCH^XPDUTL(MODULE_"*"_VERSION_"*"_PATCH)
  1. I SYSPATCH'=1 D Q
  1. . S ERRARRAY(MODULE,NAME,VERSION)=$G(PATCH)
  1. . D NEEDMSG(NAME_" "_VERSION_" & Patch "_PATCH_" WAS NOT installed!")
  1. ;
  1. D OKAY^BLRKIDSU(NAME_" "_VERSION_" Patch "_PATCH_" found.",10)
  1. ;
  1. Q
  1. ;
  1. NEEDMSG(MESSAGE) ; EP
  1. NEW STR1,STR2
  1. ;
  1. S STR1=MESSAGE
  1. I $L(STR1)<58 D SORRY^BLRKIDSU(STR1,,,CP) Q
  1. ;
  1. S STR1=$P(MESSAGE,"&")_" &"
  1. S STR2=$$TRIM^XLFSTR($P(MESSAGE,"&",2),"L"," ")
  1. D SORRY^BLRKIDSU(STR1,,STR2,CP)
  1. Q
  1. ;
  1. ; Output a listing of ALL the errors detected during the environment check.
  1. ; Also, send ALERT & E-Mail
  1. SORRYEND(WOTERR) ; EP
  1. NEW STR,MODULE,NAME,VERSION,PATCH,LINECNT,TMP,WHATMSG
  1. ;
  1. D SORRYHED^BLRKIDSU
  1. ;
  1. ; Add ALL the errors detected to the STR array
  1. S (MODULE,NAME,VERSION)=""
  1. F S MODULE=$O(WOTERR(MODULE)) Q:MODULE="" D
  1. . F S NAME=$O(WOTERR(MODULE,NAME)) Q:NAME="" D
  1. .. F S VERSION=$O(WOTERR(MODULE,NAME,VERSION)) Q:VERSION="" D
  1. ... D ADDMESG^BLRKIDSU
  1. ;
  1. D SORRYFIN^BLRKIDSU
  1. ;
  1. D BMES^XPDUTL(.STR) ; Display for INSTALL LOG
  1. ;
  1. S WHATMSG=$G(XPDNM)_" Install FATAL Error(s)"
  1. ;
  1. D SNDALERT(WHATMSG)
  1. D SENDMAIL(WHATMSG)
  1. ;
  1. D FATLSTOR(.WOTERR)
  1. Q
  1. ;
  1. FATLSTOR(WOTERR) ; Store Information concerning FATAL ERROR during Install
  1. NEW MODULE,NAME,NOW,VERSION
  1. ;
  1. ; The following line should NEVER happen, but if it does, fix XPDNM variable
  1. I $G(XPDNM)="" S XPDNM="LR*5.2*"_$P($T(+2),"*",3)
  1. ;
  1. S NOW=$H
  1. S ^BLRFATLI(XPDNM,NOW)=$$HTE^XLFDT(NOW,"2MZ")
  1. ;
  1. S (MODULE,NAME,VERSION)=""
  1. F S MODULE=$O(WOTERR(MODULE)) Q:MODULE="" D
  1. . F S NAME=$O(WOTERR(MODULE,NAME)) Q:NAME="" D
  1. .. F S VERSION=$O(WOTERR(MODULE,NAME,VERSION)) Q:VERSION="" D
  1. ... S ^BLRFATLI(XPDNM,NOW,MODULE,NAME,VERSION)=$G(WOTERR(MODULE,NAME,VERSION))
  1. ;
  1. Q