- BLRPRE24 ; IHS/OIT/MKK - LAB PATCH 1024 ENVIRONMENT/POST INSTALL ROUTINE; [ 01/04/2008 8:00 AM ]
- ;;5.2;LR;**1024**;May 02, 2008
- ;
- PRECHK ; EP
- D BMES^XPDUTL("Beginning of Pre Check.")
- NEW CP ; Current Patch
- NEW LINE2 ; Second line of THIS Routine
- NEW RPMS ; RPMS module being patched
- NEW RPMSVER ; Version of RPMS module being patched
- NEW STR ; String -- used as an array for messages.
- NEW LASTPTCH ; Last Patch of Lab
- NEW LRSTATUS ; Last Patch Install Status
- NEW WOTERR ; Array of errors detected
- ;
- S LINE2=$T(+2)
- ;
- ; Current Patch
- S CP=$TR($P(LINE2,";",5),"*")
- ;
- ; Check for Cache environment
- I $$UP^XLFSTR($$VERSION^%ZOSV(1))'["CACHE" D SORRY("NOT A CACHE ENVIRONMENT.",,,CP) Q
- ;
- ; Last Patch
- S LASTPTCH=+$TR($P(LINE2,";",5),"*")-2
- ;
- ; RPMS Module
- S RPMS=$P(LINE2,";",4)
- ;
- ; Version of RPMS module being patched
- S RPMSVER=$P(LINE2,";",3)
- ;
- S XPDNOQUE="NO QUE" ; No Queuing Allowed
- ;
- ; The following line prevents the "Disable Options..." and "Move
- ; Routines..." questions from being asked during the install.
- I $G(XPDENV)=1 S (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
- I $G(XPDENV)=1 S (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
- F X="XPO1","XPZ1","XPZ2","XPI1" S XPDDIQ(X)=0
- ;
- S XPDABORT=0 ; KIDS install Flag
- ;
- USERID ; CHECK FOR USER ID
- I '$G(DUZ) D SORRY("DUZ UNDEFINED OR 0.",,,CP) Q
- ;
- I '$L($G(DUZ(0))) D SORRY("DUZ(0) UNDEFINED OR NULL.",,,CP) Q
- ;
- D HOME^%ZIS ; IO Defaults
- D DTNOLF^DICRW ; Set DT variable without Doing a Line Feed
- ;
- S X=$P($G(^VA(200,DUZ,0)),U)
- I $G(X) D SORRY("Installer cannot be identified!",,,CP) Q
- ;
- D OKAY("Pre Check complete.",5)
- ;
- LETSGO ; USER IDENTIFIED -- LET'S GO
- D BMES^XPDUTL("Hello, "_$P(X,",",2)_" "_$P(X,","))
- ;
- D BMES^XPDUTL("Checking Environment for Patch "_CP_" of Version "_RPMSVER_" of "_RPMS_".")
- ;
- FILEMAN ; CHECK FOR FILEMAN 22.0
- D NEEDIT("DI","22.0",,.WOTERR,CP)
- ;
- KERNEL ; CHECK FOR KERNEL 8.0 & PATCH 1013
- D NEEDIT("XU","8.0",1013,.WOTERR,CP)
- ;
- LABVER ; CHECK FOR LAB 5.2 & PREVIOUS PATCH
- D NEEDIT("LR","5.2",LASTPTCH,.WOTERR,CP)
- ;
- LMIMAIL ; CHECK FOR LMI MAIL GROUP
- D CHECKLMI(.WOTERR,CP)
- ;
- MAILMAN ; CHECK FOR MAILMAN 7.1
- D NEEDIT("XM","7.1",,.WOTERR,CP)
- ;
- ENVOK ; ENVIRONMENT OK
- I XPDABORT<1 D BMES^XPDUTL("ENVIRONMENT OK.")
- ;
- I XPDABORT>0 D SORRYEND(.WOTERR,CP)
- ;
- Q
- ;
- BACKUP ; EP
- D BACKUPS(1024)
- Q
- ;
- POST ; EP -- POST INSTALL
- NEW CP ; Current Patch
- S CP=$TR($P($T(+2),";",5),"*")
- ;
- D MODBLRM(CP) ; Modify BLRMENU option(s)
- ;
- D ALLDONE(CP) ; Complete Message
- ;
- ; Store # of times installation occurred as well as person & date/time
- D ENDINSTL(CP)
- ;
- Q
- ;
- DEBUG ; Debugging Mode for environment checker
- NEW DEBUG
- S DEBUG="YES"
- D PRECHK
- Q
- ;
- ; Modify menu items on the BLRMENU option
- MODBLRM(CP) ;
- ; Remove EDT from BLRMENU
- D DELFMENU("BLRMENU","BLREPOLR","Edit Provider/Ordering Location",CP)
- ;
- ; Add option to run the new IHS LOINC reports to BLRMENU
- D ADDTMENU("BLRMENU","BLRLOINC","LOI","IHS LOINC Percentage report",CP)
- D ADDTMENU("BLRMENU","BLRNOLER","NLO","Lab Tests Without LOINC Entries Report",CP)
- ;
- ; Add option to clear ALL BLR errors from error log regardless
- ; when the error occurred.
- D ADDTMENU("BLRMENU","BLR CLEAR ALL LINK ERRORS","RBE",,CP)
- Q
- ;
- NEEDIT(MODULE,VERSION,PATCH,WOTERR,CP) ; EP
- ; Generic "Find RPMS Module's Version and (perhaps) Patch number"
- ;
- ; NOTE: The MODULE variable MUST be the PREFIX name
- ; from the PACKAGE file (9.4).
- ;
- NEW NAME ; NAME of RPMS Module
- NEW PTR ; PoinTeR to PACKAGE file
- NEW HEREYAGO ; Array to store returned values from FIND^DIC
- NEW STR1,STR2 ; Temporary Strings
- ;
- ; Use FileMan API to get information
- D FIND^DIC(9.4,"","","",MODULE,"","C","","","HEREYAGO")
- S PTR=$G(HEREYAGO("DILIST",2,1))
- S NAME=$G(HEREYAGO("DILIST",1,1))
- ;
- S X=$$VERSION^XPDUTL(MODULE) ; Get the Version
- D BMES^XPDUTL("Need at least "_NAME_" "_VERSION)
- I X<VERSION D Q
- . S WOTERR(MODULE,NAME,VERSION)=""
- . S STR1="Need "_NAME_" "_VERSION_" & "_NAME_" "_X_" found!"
- . I $L(STR1)<58 D SORRY(STR1,,,CP)
- . I $L(STR1)>57 D
- .. S STR1="Need "_NAME_" "_VERSION_" & "
- .. S STR2=NAME_" "_X_" found!"
- .. D SORRY(STR1,,STR2,CP)
- ;
- D OKAY(NAME_" "_X_" found.")
- ;
- I $G(PATCH)="" Q ; If no Patch check, just exit
- ;
- D BMES^XPDUTL(" Need "_NAME_" "_VERSION_" Patch "_PATCH_".")
- S X=$$PATCH^XPDUTL(MODULE_"*"_VERSION_"*"_PATCH)
- I X'=1 D Q
- . S WOTERR(MODULE,NAME,VERSION)=$G(PATCH)
- . S STR1=NAME_" "_VERSION_" Patch "_PATCH_" WAS NOT installed!"
- . I $L(STR1)<58 D SORRY(STR1,,,CP)
- . I $L(STR1)>57 D
- .. S STR1=NAME_" "_VERSION
- .. S STR2="Patch "_PATCH_" WAS NOT installed!"
- .. D SORRY(STR1,,STR2,CP)
- ;
- D OKAY(NAME_" "_VERSION_" Patch "_PATCH_" found.",10)
- ;
- Q
- ;
- SORRY(MSG,MODE,MSG2,CP) ; EP
- ; Error Message routine. It will send an ALERT and a MailMan message
- ; to the people who are assigned to the LMI Mail group (if it exists).
- ;
- ; The STR array is built so that the error/warning message will
- ; also appear on the INSTALL LOG via the D BMES^XPDUTL(.STR) call.
- ;
- NEW MESSAGE
- I $G(MODE)'["NONFATAL" D
- . S MESSAGE="Install Aborting due to the following Systems Environment issue:"
- . S XPDABORT=1 ; Fatal Error Flag Set
- ;
- I $G(MODE)["NONFATAL" S MESSAGE="*** WARNING *** WARNING *** WARNING ***"
- ;
- K DIFQ
- ;
- NEW STR,LINECNT
- S LINECNT=1
- D ADDLINE($TR($J("",65)," ","*"),.LINECNT) ; Row of asterisks
- D ADDLINE(" ",.LINECNT)
- D ADDLINE($$CJ^XLFSTR("Site: "_$$LOC^XBFUNC,65),.LINECNT)
- D ADDLINE(" ",.LINECNT)
- D ADDLINE($$CJ^XLFSTR(MESSAGE,65),.LINECNT)
- D ADDLINE(" ",.LINECNT)
- D ADDLINE($$CJ^XLFSTR(">>> "_MSG_" <<<",65),.LINECNT)
- I $D(MSG2) D ADDLINE($$CJ^XLFSTR(">>> "_MSG2_" <<<",65),.LINECNT)
- D ADDLINE(" ",.LINECNT)
- ;
- I $G(MODE)["NONFATAL" D ADDLINE($$CJ^XLFSTR(MESSAGE,65),.LINECNT)
- ;
- I $G(MODE)'["NONFATAL" D
- . D ADDLINE($$CJ^XLFSTR("Please print/capture this screen and",65),.LINECNT)
- . D ADDLINE($$CJ^XLFSTR("notify the Support Center at",65),.LINECNT)
- . D ADDLINE(" ",.LINECNT)
- . D ADDLINE($$CJ^XLFSTR("1-999-999-9999.",65),.LINECNT)
- . D ADDLINE(" ",.LINECNT)
- ;
- D ADDLINE($TR($J("",65)," ","*"),.LINECNT) ; Row of asterisks
- D ADDLINE(" ",.LINECNT)
- ;
- D BMES^XPDUTL(.STR) ; Display the message
- ;
- ; If Debugging, just exit -- Don't send e-mail nor alert
- I $G(DEBUG)="YES" Q
- ;
- I $G(MODE)'="NONFATAL" D Q
- . D SNDALERT("Laboratory Patch "_CP_" >> FATAL >> "_MSG)
- . D SENDMAIL("IHS Lab Patch "_CP_" Install FATAL Error")
- ;
- I $G(MODE)="NONFATAL" D
- . D SNDALERT("Laboratory Patch "_CP_" - "_MODE_" - "_MSG)
- . D SENDMAIL("IHS Lab Patch "_CP_" Install NONFATAL Error")
- Q
- ;
- SNDALERT(ALERTMSG) ; EP
- ; Send alert to LMI group
- S XQAMSG=ALERTMSG
- S XQA("G.LMI")=""
- D SETUP^XQALERT
- K XQA,XQAMSG
- Q
- ;
- SENDMAIL(MAILMSG) ; EP
- ; Send MailMan E-mail to LMI group -- message is in the STR array
- K XMY
- S XMY("G.LMI")="" ; Group
- S %DT="T"
- S X="NOW"
- D ^%DT
- D DD^LRX
- S LRBLNOW=Y
- ;
- S XMSUB=MAILMSG
- S XMTEXT="STR("
- S XMDUZ=$P($G(^VA(200,DUZ,0)),U)
- ;
- D ^XMD ; Send the MailMan e-mail
- ;
- K X,XMDUZ,XMSUB,XMTEXT,Y ; Cleanup
- Q
- ;
- SORRYEND(WOTERR,CP) ; EP
- ; Output a listing of ALL the errors detected during
- ; the environment check. The STR array will be
- ; displayed by the BMES^XPDUTL call.
- ;
- NEW STR,MODULE,NAME,VERSION,PATCH,LINECNT,TMP
- ;
- D SORRYHED
- ;
- ; Add ALL the errors detected to the STR array
- S (MODULE,NAME,VERSION)=""
- F S MODULE=$O(WOTERR(MODULE)) Q:MODULE="" D
- . F S NAME=$O(WOTERR(MODULE,NAME)) Q:NAME="" D
- .. F S VERSION=$O(WOTERR(MODULE,NAME,VERSION)) Q:VERSION="" D
- ... D ADDMESG
- ;
- D SORRYFIN
- ;
- D BMES^XPDUTL(.STR) ; Display the message in the STR array
- ;
- Q
- ;
- SORRYHED ; EP
- ; "Header" of Final Fatal Message
- S LINECNT=1
- D ADDLINE(" ",.LINECNT)
- D ADDLINE($TR($J("",65)," ","*"),.LINECNT)
- D ADDLINE(" ",.LINECNT)
- D ADDLINE($$CJ^XLFSTR("Systems Environment Error Detected",65),.LINECNT)
- D ADDLINE($$CJ^XLFSTR("KIDS build will be deleted",65),.LINECNT)
- D ADDLINE(" ",.LINECNT)
- D ADDLINE($$CJ^XLFSTR("Modules with Version or Patch errors",65),.LINECNT)
- D ADDLINE(" ",.LINECNT)
- Q
- ;
- SORRYFIN ; EP
- ; "Fin" of Final Fatal Message
- D ADDLINE($$CJ^XLFSTR("Re-Installation will be necessary.",65),.LINECNT)
- D ADDLINE(" ",.LINECNT)
- D ADDLINE($$CJ^XLFSTR("If assistance is needed, please call 1-999-999-9999.",65),.LINECNT)
- D ADDLINE(" ",.LINECNT)
- D ADDLINE($TR($J("",65)," ","*"),.LINECNT)
- D ADDLINE(" ",.LINECNT)
- Q
- ;
- ADDMESG ; EP
- ; Add to the STR array
- S PATCH=$G(WOTERR(MODULE,NAME,VERSION))
- D ADDLINE($$CJ^XLFSTR(NAME_" ("_MODULE_")",65),.LINECNT)
- ;
- S TMP="Version:"_VERSION
- I $G(PATCH)'="" S TMP=TMP_" Patch:"_$G(PATCH)
- ;
- D ADDLINE($$CJ^XLFSTR(TMP,65),.LINECNT)
- D ADDLINE(" ",.LINECNT)
- Q
- ;
- ADDLINE(ASTR,LC) ; EP
- ; Add a line to the STR array
- I $G(ASTR)="" S ASTR=" "
- S STR(LC)=ASTR
- S LC=LC+1
- Q
- ;
- OKAY(MSG,TAB) ; EP
- ; Write out "OKAY" message
- NEW MESSAGE
- I $G(TAB)="" S TAB=5
- S MESSAGE=$J("",TAB)_MSG_" OK."
- D MES^XPDUTL(MESSAGE)
- Q
- ;
- CHECKLMI(WOTERR,CP) ; EP
- ;CHECK FOR LMI MAIL GROUP
- NEW OKAY
- D BMES^XPDUTL("Must have 'LMI' mail group present.")
- S DIC="^XMB(3.8,"
- S X="LMI"
- D ^DIC
- S OKAY=+Y
- I OKAY>0 D OKAY("'LMI' mail group found.")
- I OKAY<1 D
- . D SORRY("'LMI' mail group NOT found!",,,CP)
- . S WOTERR("XMB(3.8","Mail Group","3.8")="LMI Mail Group"
- Q
- ;
- BACKUPS(CP) ; EP - CHECK TO CONFIRM BACKUPS HAVE BEEN DONE
- ; CP = Current Patch
- ;
- D BMES^XPDUTL("BACKUPS Check Next.")
- ;
- W !!
- D ^XBFMK ; Clear all FileMan variables
- S DIR(0)="Y"
- S DIR("B")="NO"
- S DIR("A")="Has a SUCCESSFUL system backup been performed??"
- D ^DIR
- ;
- ; IF and ONLY IF backups not confirmed, send NONFATAL alert & e-mail.
- I $D(DIRUT)!($G(Y)=0) D Q
- . D SORRY("Please perform a successful backup before continuing!!","NONFATAL")
- ;
- ; User stated Backup has been Done, so display message.
- NEW DTT
- S DTT=$$UP^XLFSTR($$HTE^XLFDT($H,"MZ"))
- S STR="BACKUPS CONFIRMED BY "_$P($G(^VA(200,DUZ,0)),U)_" ON "
- S STR=STR_$P(DTT,"@")_" AT "_$P(DTT,"@",2)
- D BMES^XPDUTL(STR)
- D MES^XPDUTL(" ")
- ;
- ; Store backup confirmation person & date/time
- NEW BCKUPCNT ; Current Patch,Backup count
- S BCKUPCNT=1+$O(^BLRINSTL("LAB PATCH",CP,"BACKUP CONFIRMED BY",""),-1)
- S ^BLRINSTL("LAB PATCH",CP,"BACKUP CONFIRMED BY",BCKUPCNT)=$P($G(^VA(200,DUZ,0)),U)
- S ^BLRINSTL("LAB PATCH",CP,"BACKUP CONFIRMED BY",BCKUPCNT,"DATE/TIME")=$$HTE^XLFDT($H,"5MZ")
- ;
- Q
- ;
- TABMESG(MSG,TAB,TAIL) ; EP
- ; Generic message output WITH blank line BEFORE messsage & TAB
- NEW MESSAGE
- I $G(TAB)="" S TAB=5
- S MESSAGE=$J("",TAB)_MSG
- I $G(TAIL)'="" S MESSAGE=MESSAGE_" "_TAIL
- D BMES^XPDUTL(MESSAGE)
- Q
- ;
- ; Generic message output WITHOUT blank line BEFORE messsage & TAB
- NEW MESSAGE
- I $G(TAB)="" S TAB=5
- S MESSAGE=$J("",TAB)_MSG
- I $G(TAIL)'="" S MESSAGE=MESSAGE_" "_TAIL
- D MES^XPDUTL(MESSAGE)
- Q
- ;
- ; Procedure that adds the options to Menus.
- ; Uses Kernel's ADD^XPDMENU function
- NEW ADDOPT,CHKIT,STR1,STR2,STR3
- ;
- ; ADDOPT String set to ADDEE string or Interactive MeSsaGe string
- S ADDOPT=$S($D(IMSG):IMSG,1:ADDEE)
- ;
- D BMES^XPDUTL("Adding "_ADDOPT_" to "_ADDER_".")
- ;
- S CHKIT=$$ADD^XPDMENU(ADDER,ADDEE,ITM)
- ;
- I CHKIT=1 D Q
- . D OKAY(ADDOPT_" added to "_ADDER_".",5)
- . D MES^XPDUTL(" ")
- ;
- I CHKIT'=1 D
- . S STR1="Error in adding "_ADDOPT_" to "_ADDER_"."
- . I $L(STR1)<58 D SORRY(STR1,"NONFATAL",,CP)
- . I $L(STR1)>57 D
- .. S STR1="Error in adding "_ADDOPT
- .. S STR2="to "_ADDER
- .. D SORRY(STR1,"NONFATAL",STR2,,CP)
- ;
- Q
- ;
- ; Procedure that deletes from a Menu.
- ; It is OKAY if the option doesn't exist on the Menu.
- ; Uses Kernel's DELETE^XPDMENU function
- NEW CHKIT,DELOPT,STR1,STR2
- NEW DMENUIEN,HEREYAGO
- ;
- ; DELOPT String set to DOPTION string or Interactive MeSsaGe string
- S DELOPT=$S($D(IMSG):IMSG,1:DOPTION)
- ;
- D BMES^XPDUTL("Removing "_DELOPT_" from "_DMENU_".")
- ;
- ; First, Find IEN of MENU from which option will be deleted
- D FIND^DIC(19,,,,"BLRMENU",,,,,"HEREYAGO")
- S DMENUIEN=+$G(HEREYAGO("DILIST",2,1))
- ;
- ; If MENU doesn't exist, just write a message and return
- I DMENUIEN<1 D Q
- . D OKAY("MENU "_DMENU_" NOT Found in Option File.",5)
- . D MES^XPDUTL(" ")
- ;
- ; Find out if Option still on the MENU from which it is to be deleted.
- K HEREYAGO
- D FIND^DIC(19.01,","_DMENUIEN_",",,,DOPTION,,,,,"HEREYAGO")
- ;
- ; If Option is not on MENU, then just write a message and return
- I +$G(HEREYAGO("DILIST",2,1))<1 D Q
- . S STR1=DELOPT_" not found on "_DMENU_"."
- . I $L(STR1)<58 D Q
- .. D OKAY(STR1,5)
- .. D MES^XPDUTL(" ")
- . ;
- . S STR1=DELOPT_" not found"
- . S STR2="on "_DMENU_"."
- . D TABMESG(STR1,5)
- . D OKAY(STR2,5)
- . D MES^XPDUTL(" ")
- ;
- S CHKIT=$$DELETE^XPDMENU(DMENU,DOPTION)
- ;
- I CHKIT=1 D Q
- . D OKAY(DELOPT_" removed from "_DMENU_".",5)
- . D MES^XPDUTL(" ")
- ;
- I CHKIT'=1 D
- . S STR1="Error removing "_DELOPT_" from "_DMENU_"."
- . I $L(STR1)<58 D SORRY(STR1,"NONFATAL",,CP)
- . I $L(STR1)>57 D
- .. S STR1="Error removing "_DELOPT
- .. S STR2="from "_DMENU
- .. D SORRY(STR1,"NONFATAL",STR2,CP)
- ;
- Q
- ;
- ALLDONE(CURPATCH) ; EP
- ; Complete Message
- NEW STR,LINECNT,MSG
- ;
- S MSG="Laboratory Patch "_CURPATCH_" INSTALL complete."
- ;
- K STR
- S LINECNT=1
- D ADDLINE($TR($J("",65)," ","*"),.LINECNT) ; Row of asterisks
- D ADDLINE(" ",.LINECNT)
- D ADDLINE($$CJ^XLFSTR("Site: "_$$LOC^XBFUNC,65),.LINECNT)
- D ADDLINE(" ",.LINECNT)
- D ADDLINE($$CJ^XLFSTR(MSG,65),.LINECNT)
- D ADDLINE(" ",.LINECNT)
- D ADDLINE($TR($J("",65)," ","*"),.LINECNT)
- D ADDLINE(" ",.LINECNT)
- ;
- D BMES^XPDUTL(.STR) ; Display the message
- D SNDALERT(MSG)
- D SENDMAIL(MSG)
- ;
- Q
- ;
- ENDINSTL(CURPATCH) ; EP
- ; Procedure that stores information into the ^BLRINSTL global
- ; regarding # of times instllation occurred as well as the
- ; person who is installaing and the date/time of the install.
- ;
- NEW INSTCNT ; Installation count
- ;
- S INSTCNT=1+$O(^BLRINSTL("LAB PATCH",CURPATCH,"INSTALLED BY",""),-1)
- ;
- S ^BLRINSTL("LAB PATCH",CURPATCH,"INSTALLED BY",INSTCNT)=$P($G(^VA(200,DUZ,0)),U)
- S ^BLRINSTL("LAB PATCH",CURPATCH,"INSTALLED BY",INSTCNT,"DATE/TIME")=$$HTE^XLFDT($H,"5Z")
- Q
- BLRPRE24 ; IHS/OIT/MKK - LAB PATCH 1024 ENVIRONMENT/POST INSTALL ROUTINE; [ 01/04/2008 8:00 AM ]
- +1 ;;5.2;LR;**1024**;May 02, 2008
- +2 ;
- PRECHK ; EP
- +1 DO BMES^XPDUTL("Beginning of Pre Check.")
- +2 ; Current Patch
- NEW CP
- +3 ; Second line of THIS Routine
- NEW LINE2
- +4 ; RPMS module being patched
- NEW RPMS
- +5 ; Version of RPMS module being patched
- NEW RPMSVER
- +6 ; String -- used as an array for messages.
- NEW STR
- +7 ; Last Patch of Lab
- NEW LASTPTCH
- +8 ; Last Patch Install Status
- NEW LRSTATUS
- +9 ; Array of errors detected
- NEW WOTERR
- +10 ;
- +11 SET LINE2=$TEXT(+2)
- +12 ;
- +13 ; Current Patch
- +14 SET CP=$TRANSLATE($PIECE(LINE2,";",5),"*")
- +15 ;
- +16 ; Check for Cache environment
- +17 IF $$UP^XLFSTR($$VERSION^%ZOSV(1))'["CACHE"
- DO SORRY("NOT A CACHE ENVIRONMENT.",,,CP)
- QUIT
- +18 ;
- +19 ; Last Patch
- +20 SET LASTPTCH=+$TRANSLATE($PIECE(LINE2,";",5),"*")-2
- +21 ;
- +22 ; RPMS Module
- +23 SET RPMS=$PIECE(LINE2,";",4)
- +24 ;
- +25 ; Version of RPMS module being patched
- +26 SET RPMSVER=$PIECE(LINE2,";",3)
- +27 ;
- +28 ; No Queuing Allowed
- SET XPDNOQUE="NO QUE"
- +29 ;
- +30 ; The following line prevents the "Disable Options..." and "Move
- +31 ; Routines..." questions from being asked during the install.
- +32 IF $GET(XPDENV)=1
- SET (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
- +33 IF $GET(XPDENV)=1
- SET (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
- +34 FOR X="XPO1","XPZ1","XPZ2","XPI1"
- SET XPDDIQ(X)=0
- +35 ;
- +36 ; KIDS install Flag
- SET XPDABORT=0
- +37 ;
- USERID ; CHECK FOR USER ID
- +1 IF '$GET(DUZ)
- DO SORRY("DUZ UNDEFINED OR 0.",,,CP)
- QUIT
- +2 ;
- +3 IF '$LENGTH($GET(DUZ(0)))
- DO SORRY("DUZ(0) UNDEFINED OR NULL.",,,CP)
- QUIT
- +4 ;
- +5 ; IO Defaults
- DO HOME^%ZIS
- +6 ; Set DT variable without Doing a Line Feed
- DO DTNOLF^DICRW
- +7 ;
- +8 SET X=$PIECE($GET(^VA(200,DUZ,0)),U)
- +9 IF $GET(X)
- DO SORRY("Installer cannot be identified!",,,CP)
- QUIT
- +10 ;
- +11 DO OKAY("Pre Check complete.",5)
- +12 ;
- LETSGO ; USER IDENTIFIED -- LET'S GO
- +1 DO BMES^XPDUTL("Hello, "_$PIECE(X,",",2)_" "_$PIECE(X,","))
- +2 ;
- +3 DO BMES^XPDUTL("Checking Environment for Patch "_CP_" of Version "_RPMSVER_" of "_RPMS_".")
- +4 ;
- FILEMAN ; CHECK FOR FILEMAN 22.0
- +1 DO NEEDIT("DI","22.0",,.WOTERR,CP)
- +2 ;
- KERNEL ; CHECK FOR KERNEL 8.0 & PATCH 1013
- +1 DO NEEDIT("XU","8.0",1013,.WOTERR,CP)
- +2 ;
- LABVER ; CHECK FOR LAB 5.2 & PREVIOUS PATCH
- +1 DO NEEDIT("LR","5.2",LASTPTCH,.WOTERR,CP)
- +2 ;
- LMIMAIL ; CHECK FOR LMI MAIL GROUP
- +1 DO CHECKLMI(.WOTERR,CP)
- +2 ;
- MAILMAN ; CHECK FOR MAILMAN 7.1
- +1 DO NEEDIT("XM","7.1",,.WOTERR,CP)
- +2 ;
- ENVOK ; ENVIRONMENT OK
- +1 IF XPDABORT<1
- DO BMES^XPDUTL("ENVIRONMENT OK.")
- +2 ;
- +3 IF XPDABORT>0
- DO SORRYEND(.WOTERR,CP)
- +4 ;
- +5 QUIT
- +6 ;
- BACKUP ; EP
- +1 DO BACKUPS(1024)
- +2 QUIT
- +3 ;
- POST ; EP -- POST INSTALL
- +1 ; Current Patch
- NEW CP
- +2 SET CP=$TRANSLATE($PIECE($TEXT(+2),";",5),"*")
- +3 ;
- +4 ; Modify BLRMENU option(s)
- DO MODBLRM(CP)
- +5 ;
- +6 ; Complete Message
- DO ALLDONE(CP)
- +7 ;
- +8 ; Store # of times installation occurred as well as person & date/time
- +9 DO ENDINSTL(CP)
- +10 ;
- +11 QUIT
- +12 ;
- DEBUG ; Debugging Mode for environment checker
- +1 NEW DEBUG
- +2 SET DEBUG="YES"
- +3 DO PRECHK
- +4 QUIT
- +5 ;
- +6 ; Modify menu items on the BLRMENU option
- MODBLRM(CP) ;
- +1 ; Remove EDT from BLRMENU
- +2 DO DELFMENU("BLRMENU","BLREPOLR","Edit Provider/Ordering Location",CP)
- +3 ;
- +4 ; Add option to run the new IHS LOINC reports to BLRMENU
- +5 DO ADDTMENU("BLRMENU","BLRLOINC","LOI","IHS LOINC Percentage report",CP)
- +6 DO ADDTMENU("BLRMENU","BLRNOLER","NLO","Lab Tests Without LOINC Entries Report",CP)
- +7 ;
- +8 ; Add option to clear ALL BLR errors from error log regardless
- +9 ; when the error occurred.
- +10 DO ADDTMENU("BLRMENU","BLR CLEAR ALL LINK ERRORS","RBE",,CP)
- +11 QUIT
- +12 ;
- NEEDIT(MODULE,VERSION,PATCH,WOTERR,CP) ; EP
- +1 ; Generic "Find RPMS Module's Version and (perhaps) Patch number"
- +2 ;
- +3 ; NOTE: The MODULE variable MUST be the PREFIX name
- +4 ; from the PACKAGE file (9.4).
- +5 ;
- +6 ; NAME of RPMS Module
- NEW NAME
- +7 ; PoinTeR to PACKAGE file
- NEW PTR
- +8 ; Array to store returned values from FIND^DIC
- NEW HEREYAGO
- +9 ; Temporary Strings
- NEW STR1,STR2
- +10 ;
- +11 ; Use FileMan API to get information
- +12 DO FIND^DIC(9.4,"","","",MODULE,"","C","","","HEREYAGO")
- +13 SET PTR=$GET(HEREYAGO("DILIST",2,1))
- +14 SET NAME=$GET(HEREYAGO("DILIST",1,1))
- +15 ;
- +16 ; Get the Version
- SET X=$$VERSION^XPDUTL(MODULE)
- +17 DO BMES^XPDUTL("Need at least "_NAME_" "_VERSION)
- +18 IF X<VERSION
- Begin DoDot:1
- +19 SET WOTERR(MODULE,NAME,VERSION)=""
- +20 SET STR1="Need "_NAME_" "_VERSION_" & "_NAME_" "_X_" found!"
- +21 IF $LENGTH(STR1)<58
- DO SORRY(STR1,,,CP)
- +22 IF $LENGTH(STR1)>57
- Begin DoDot:2
- +23 SET STR1="Need "_NAME_" "_VERSION_" & "
- +24 SET STR2=NAME_" "_X_" found!"
- +25 DO SORRY(STR1,,STR2,CP)
- End DoDot:2
- End DoDot:1
- QUIT
- +26 ;
- +27 DO OKAY(NAME_" "_X_" found.")
- +28 ;
- +29 ; If no Patch check, just exit
- IF $GET(PATCH)=""
- QUIT
- +30 ;
- +31 DO BMES^XPDUTL(" Need "_NAME_" "_VERSION_" Patch "_PATCH_".")
- +32 SET X=$$PATCH^XPDUTL(MODULE_"*"_VERSION_"*"_PATCH)
- +33 IF X'=1
- Begin DoDot:1
- +34 SET WOTERR(MODULE,NAME,VERSION)=$GET(PATCH)
- +35 SET STR1=NAME_" "_VERSION_" Patch "_PATCH_" WAS NOT installed!"
- +36 IF $LENGTH(STR1)<58
- DO SORRY(STR1,,,CP)
- +37 IF $LENGTH(STR1)>57
- Begin DoDot:2
- +38 SET STR1=NAME_" "_VERSION
- +39 SET STR2="Patch "_PATCH_" WAS NOT installed!"
- +40 DO SORRY(STR1,,STR2,CP)
- End DoDot:2
- End DoDot:1
- QUIT
- +41 ;
- +42 DO OKAY(NAME_" "_VERSION_" Patch "_PATCH_" found.",10)
- +43 ;
- +44 QUIT
- +45 ;
- SORRY(MSG,MODE,MSG2,CP) ; EP
- +1 ; Error Message routine. It will send an ALERT and a MailMan message
- +2 ; to the people who are assigned to the LMI Mail group (if it exists).
- +3 ;
- +4 ; The STR array is built so that the error/warning message will
- +5 ; also appear on the INSTALL LOG via the D BMES^XPDUTL(.STR) call.
- +6 ;
- +7 NEW MESSAGE
- +8 IF $GET(MODE)'["NONFATAL"
- Begin DoDot:1
- +9 SET MESSAGE="Install Aborting due to the following Systems Environment issue:"
- +10 ; Fatal Error Flag Set
- SET XPDABORT=1
- End DoDot:1
- +11 ;
- +12 IF $GET(MODE)["NONFATAL"
- SET MESSAGE="*** WARNING *** WARNING *** WARNING ***"
- +13 ;
- +14 KILL DIFQ
- +15 ;
- +16 NEW STR,LINECNT
- +17 SET LINECNT=1
- +18 ; Row of asterisks
- DO ADDLINE($TRANSLATE($JUSTIFY("",65)," ","*"),.LINECNT)
- +19 DO ADDLINE(" ",.LINECNT)
- +20 DO ADDLINE($$CJ^XLFSTR("Site: "_$$LOC^XBFUNC,65),.LINECNT)
- +21 DO ADDLINE(" ",.LINECNT)
- +22 DO ADDLINE($$CJ^XLFSTR(MESSAGE,65),.LINECNT)
- +23 DO ADDLINE(" ",.LINECNT)
- +24 DO ADDLINE($$CJ^XLFSTR(">>> "_MSG_" <<<",65),.LINECNT)
- +25 IF $DATA(MSG2)
- DO ADDLINE($$CJ^XLFSTR(">>> "_MSG2_" <<<",65),.LINECNT)
- +26 DO ADDLINE(" ",.LINECNT)
- +27 ;
- +28 IF $GET(MODE)["NONFATAL"
- DO ADDLINE($$CJ^XLFSTR(MESSAGE,65),.LINECNT)
- +29 ;
- +30 IF $GET(MODE)'["NONFATAL"
- Begin DoDot:1
- +31 DO ADDLINE($$CJ^XLFSTR("Please print/capture this screen and",65),.LINECNT)
- +32 DO ADDLINE($$CJ^XLFSTR("notify the Support Center at",65),.LINECNT)
- +33 DO ADDLINE(" ",.LINECNT)
- +34 DO ADDLINE($$CJ^XLFSTR("1-999-999-9999.",65),.LINECNT)
- +35 DO ADDLINE(" ",.LINECNT)
- End DoDot:1
- +36 ;
- +37 ; Row of asterisks
- DO ADDLINE($TRANSLATE($JUSTIFY("",65)," ","*"),.LINECNT)
- +38 DO ADDLINE(" ",.LINECNT)
- +39 ;
- +40 ; Display the message
- DO BMES^XPDUTL(.STR)
- +41 ;
- +42 ; If Debugging, just exit -- Don't send e-mail nor alert
- +43 IF $GET(DEBUG)="YES"
- QUIT
- +44 ;
- +45 IF $GET(MODE)'="NONFATAL"
- Begin DoDot:1
- +46 DO SNDALERT("Laboratory Patch "_CP_" >> FATAL >> "_MSG)
- +47 DO SENDMAIL("IHS Lab Patch "_CP_" Install FATAL Error")
- End DoDot:1
- QUIT
- +48 ;
- +49 IF $GET(MODE)="NONFATAL"
- Begin DoDot:1
- +50 DO SNDALERT("Laboratory Patch "_CP_" - "_MODE_" - "_MSG)
- +51 DO SENDMAIL("IHS Lab Patch "_CP_" Install NONFATAL Error")
- End DoDot:1
- +52 QUIT
- +53 ;
- SNDALERT(ALERTMSG) ; EP
- +1 ; Send alert to LMI group
- +2 SET XQAMSG=ALERTMSG
- +3 SET XQA("G.LMI")=""
- +4 DO SETUP^XQALERT
- +5 KILL XQA,XQAMSG
- +6 QUIT
- +7 ;
- SENDMAIL(MAILMSG) ; EP
- +1 ; Send MailMan E-mail to LMI group -- message is in the STR array
- +2 KILL XMY
- +3 ; Group
- SET XMY("G.LMI")=""
- +4 SET %DT="T"
- +5 SET X="NOW"
- +6 DO ^%DT
- +7 DO DD^LRX
- +8 SET LRBLNOW=Y
- +9 ;
- +10 SET XMSUB=MAILMSG
- +11 SET XMTEXT="STR("
- +12 SET XMDUZ=$PIECE($GET(^VA(200,DUZ,0)),U)
- +13 ;
- +14 ; Send the MailMan e-mail
- DO ^XMD
- +15 ;
- +16 ; Cleanup
- KILL X,XMDUZ,XMSUB,XMTEXT,Y
- +17 QUIT
- +18 ;
- SORRYEND(WOTERR,CP) ; EP
- +1 ; Output a listing of ALL the errors detected during
- +2 ; the environment check. The STR array will be
- +3 ; displayed by the BMES^XPDUTL call.
- +4 ;
- +5 NEW STR,MODULE,NAME,VERSION,PATCH,LINECNT,TMP
- +6 ;
- +7 DO SORRYHED
- +8 ;
- +9 ; Add ALL the errors detected to the STR array
- +10 SET (MODULE,NAME,VERSION)=""
- +11 FOR
- SET MODULE=$ORDER(WOTERR(MODULE))
- IF MODULE=""
- QUIT
- Begin DoDot:1
- +12 FOR
- SET NAME=$ORDER(WOTERR(MODULE,NAME))
- IF NAME=""
- QUIT
- Begin DoDot:2
- +13 FOR
- SET VERSION=$ORDER(WOTERR(MODULE,NAME,VERSION))
- IF VERSION=""
- QUIT
- Begin DoDot:3
- +14 DO ADDMESG
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +15 ;
- +16 DO SORRYFIN
- +17 ;
- +18 ; Display the message in the STR array
- DO BMES^XPDUTL(.STR)
- +19 ;
- +20 QUIT
- +21 ;
- SORRYHED ; EP
- +1 ; "Header" of Final Fatal Message
- +2 SET LINECNT=1
- +3 DO ADDLINE(" ",.LINECNT)
- +4 DO ADDLINE($TRANSLATE($JUSTIFY("",65)," ","*"),.LINECNT)
- +5 DO ADDLINE(" ",.LINECNT)
- +6 DO ADDLINE($$CJ^XLFSTR("Systems Environment Error Detected",65),.LINECNT)
- +7 DO ADDLINE($$CJ^XLFSTR("KIDS build will be deleted",65),.LINECNT)
- +8 DO ADDLINE(" ",.LINECNT)
- +9 DO ADDLINE($$CJ^XLFSTR("Modules with Version or Patch errors",65),.LINECNT)
- +10 DO ADDLINE(" ",.LINECNT)
- +11 QUIT
- +12 ;
- SORRYFIN ; EP
- +1 ; "Fin" of Final Fatal Message
- +2 DO ADDLINE($$CJ^XLFSTR("Re-Installation will be necessary.",65),.LINECNT)
- +3 DO ADDLINE(" ",.LINECNT)
- +4 DO ADDLINE($$CJ^XLFSTR("If assistance is needed, please call 1-999-999-9999.",65),.LINECNT)
- +5 DO ADDLINE(" ",.LINECNT)
- +6 DO ADDLINE($TRANSLATE($JUSTIFY("",65)," ","*"),.LINECNT)
- +7 DO ADDLINE(" ",.LINECNT)
- +8 QUIT
- +9 ;
- ADDMESG ; EP
- +1 ; Add to the STR array
- +2 SET PATCH=$GET(WOTERR(MODULE,NAME,VERSION))
- +3 DO ADDLINE($$CJ^XLFSTR(NAME_" ("_MODULE_")",65),.LINECNT)
- +4 ;
- +5 SET TMP="Version:"_VERSION
- +6 IF $GET(PATCH)'=""
- SET TMP=TMP_" Patch:"_$GET(PATCH)
- +7 ;
- +8 DO ADDLINE($$CJ^XLFSTR(TMP,65),.LINECNT)
- +9 DO ADDLINE(" ",.LINECNT)
- +10 QUIT
- +11 ;
- ADDLINE(ASTR,LC) ; EP
- +1 ; Add a line to the STR array
- +2 IF $GET(ASTR)=""
- SET ASTR=" "
- +3 SET STR(LC)=ASTR
- +4 SET LC=LC+1
- +5 QUIT
- +6 ;
- OKAY(MSG,TAB) ; EP
- +1 ; Write out "OKAY" message
- +2 NEW MESSAGE
- +3 IF $GET(TAB)=""
- SET TAB=5
- +4 SET MESSAGE=$JUSTIFY("",TAB)_MSG_" OK."
- +5 DO MES^XPDUTL(MESSAGE)
- +6 QUIT
- +7 ;
- CHECKLMI(WOTERR,CP) ; EP
- +1 ;CHECK FOR LMI MAIL GROUP
- +2 NEW OKAY
- +3 DO BMES^XPDUTL("Must have 'LMI' mail group present.")
- +4 SET DIC="^XMB(3.8,"
- +5 SET X="LMI"
- +6 DO ^DIC
- +7 SET OKAY=+Y
- +8 IF OKAY>0
- DO OKAY("'LMI' mail group found.")
- +9 IF OKAY<1
- Begin DoDot:1
- +10 DO SORRY("'LMI' mail group NOT found!",,,CP)
- +11 SET WOTERR("XMB(3.8","Mail Group","3.8")="LMI Mail Group"
- End DoDot:1
- +12 QUIT
- +13 ;
- BACKUPS(CP) ; EP - CHECK TO CONFIRM BACKUPS HAVE BEEN DONE
- +1 ; CP = Current Patch
- +2 ;
- +3 DO BMES^XPDUTL("BACKUPS Check Next.")
- +4 ;
- +5 WRITE !!
- +6 ; Clear all FileMan variables
- DO ^XBFMK
- +7 SET DIR(0)="Y"
- +8 SET DIR("B")="NO"
- +9 SET DIR("A")="Has a SUCCESSFUL system backup been performed??"
- +10 DO ^DIR
- +11 ;
- +12 ; IF and ONLY IF backups not confirmed, send NONFATAL alert & e-mail.
- +13 IF $DATA(DIRUT)!($GET(Y)=0)
- Begin DoDot:1
- +14 DO SORRY("Please perform a successful backup before continuing!!","NONFATAL")
- End DoDot:1
- QUIT
- +15 ;
- +16 ; User stated Backup has been Done, so display message.
- +17 NEW DTT
- +18 SET DTT=$$UP^XLFSTR($$HTE^XLFDT($HOROLOG,"MZ"))
- +19 SET STR="BACKUPS CONFIRMED BY "_$PIECE($GET(^VA(200,DUZ,0)),U)_" ON "
- +20 SET STR=STR_$PIECE(DTT,"@")_" AT "_$PIECE(DTT,"@",2)
- +21 DO BMES^XPDUTL(STR)
- +22 DO MES^XPDUTL(" ")
- +23 ;
- +24 ; Store backup confirmation person & date/time
- +25 ; Current Patch,Backup count
- NEW BCKUPCNT
- +26 SET BCKUPCNT=1+$ORDER(^BLRINSTL("LAB PATCH",CP,"BACKUP CONFIRMED BY",""),-1)
- +27 SET ^BLRINSTL("LAB PATCH",CP,"BACKUP CONFIRMED BY",BCKUPCNT)=$PIECE($GET(^VA(200,DUZ,0)),U)
- +28 SET ^BLRINSTL("LAB PATCH",CP,"BACKUP CONFIRMED BY",BCKUPCNT,"DATE/TIME")=$$HTE^XLFDT($HOROLOG,"5MZ")
- +29 ;
- +30 QUIT
- +31 ;
- TABMESG(MSG,TAB,TAIL) ; EP
- +1 ; Generic message output WITH blank line BEFORE messsage & TAB
- +2 NEW MESSAGE
- +3 IF $GET(TAB)=""
- SET TAB=5
- +4 SET MESSAGE=$JUSTIFY("",TAB)_MSG
- +5 IF $GET(TAIL)'=""
- SET MESSAGE=MESSAGE_" "_TAIL
- +6 DO BMES^XPDUTL(MESSAGE)
- +7 QUIT
- +8 ;
- +1 ; Generic message output WITHOUT blank line BEFORE messsage & TAB
- +2 NEW MESSAGE
- +3 IF $GET(TAB)=""
- SET TAB=5
- +4 SET MESSAGE=$JUSTIFY("",TAB)_MSG
- +5 IF $GET(TAIL)'=""
- SET MESSAGE=MESSAGE_" "_TAIL
- +6 DO MES^XPDUTL(MESSAGE)
- +7 QUIT
- +8 ;
- +1 ; Procedure that adds the options to Menus.
- +2 ; Uses Kernel's ADD^XPDMENU function
- +3 NEW ADDOPT,CHKIT,STR1,STR2,STR3
- +4 ;
- +5 ; ADDOPT String set to ADDEE string or Interactive MeSsaGe string
- +6 SET ADDOPT=$SELECT($DATA(IMSG):IMSG,1:ADDEE)
- +7 ;
- +8 DO BMES^XPDUTL("Adding "_ADDOPT_" to "_ADDER_".")
- +9 ;
- +10 SET CHKIT=$$ADD^XPDMENU(ADDER,ADDEE,ITM)
- +11 ;
- +12 IF CHKIT=1
- Begin DoDot:1
- +13 DO OKAY(ADDOPT_" added to "_ADDER_".",5)
- +14 DO MES^XPDUTL(" ")
- End DoDot:1
- QUIT
- +15 ;
- +16 IF CHKIT'=1
- Begin DoDot:1
- +17 SET STR1="Error in adding "_ADDOPT_" to "_ADDER_"."
- +18 IF $LENGTH(STR1)<58
- DO SORRY(STR1,"NONFATAL",,CP)
- +19 IF $LENGTH(STR1)>57
- Begin DoDot:2
- +20 SET STR1="Error in adding "_ADDOPT
- +21 SET STR2="to "_ADDER
- +22 DO SORRY(STR1,"NONFATAL",STR2,,CP)
- End DoDot:2
- End DoDot:1
- +23 ;
- +24 QUIT
- +25 ;
- +1 ; Procedure that deletes from a Menu.
- +2 ; It is OKAY if the option doesn't exist on the Menu.
- +3 ; Uses Kernel's DELETE^XPDMENU function
- +4 NEW CHKIT,DELOPT,STR1,STR2
- +5 NEW DMENUIEN,HEREYAGO
- +6 ;
- +7 ; DELOPT String set to DOPTION string or Interactive MeSsaGe string
- +8 SET DELOPT=$SELECT($DATA(IMSG):IMSG,1:DOPTION)
- +9 ;
- +10 DO BMES^XPDUTL("Removing "_DELOPT_" from "_DMENU_".")
- +11 ;
- +12 ; First, Find IEN of MENU from which option will be deleted
- +13 DO FIND^DIC(19,,,,"BLRMENU",,,,,"HEREYAGO")
- +14 SET DMENUIEN=+$GET(HEREYAGO("DILIST",2,1))
- +15 ;
- +16 ; If MENU doesn't exist, just write a message and return
- +17 IF DMENUIEN<1
- Begin DoDot:1
- +18 DO OKAY("MENU "_DMENU_" NOT Found in Option File.",5)
- +19 DO MES^XPDUTL(" ")
- End DoDot:1
- QUIT
- +20 ;
- +21 ; Find out if Option still on the MENU from which it is to be deleted.
- +22 KILL HEREYAGO
- +23 DO FIND^DIC(19.01,","_DMENUIEN_",",,,DOPTION,,,,,"HEREYAGO")
- +24 ;
- +25 ; If Option is not on MENU, then just write a message and return
- +26 IF +$GET(HEREYAGO("DILIST",2,1))<1
- Begin DoDot:1
- +27 SET STR1=DELOPT_" not found on "_DMENU_"."
- +28 IF $LENGTH(STR1)<58
- Begin DoDot:2
- +29 DO OKAY(STR1,5)
- +30 DO MES^XPDUTL(" ")
- End DoDot:2
- QUIT
- +31 ;
- +32 SET STR1=DELOPT_" not found"
- +33 SET STR2="on "_DMENU_"."
- +34 DO TABMESG(STR1,5)
- +35 DO OKAY(STR2,5)
- +36 DO MES^XPDUTL(" ")
- End DoDot:1
- QUIT
- +37 ;
- +38 SET CHKIT=$$DELETE^XPDMENU(DMENU,DOPTION)
- +39 ;
- +40 IF CHKIT=1
- Begin DoDot:1
- +41 DO OKAY(DELOPT_" removed from "_DMENU_".",5)
- +42 DO MES^XPDUTL(" ")
- End DoDot:1
- QUIT
- +43 ;
- +44 IF CHKIT'=1
- Begin DoDot:1
- +45 SET STR1="Error removing "_DELOPT_" from "_DMENU_"."
- +46 IF $LENGTH(STR1)<58
- DO SORRY(STR1,"NONFATAL",,CP)
- +47 IF $LENGTH(STR1)>57
- Begin DoDot:2
- +48 SET STR1="Error removing "_DELOPT
- +49 SET STR2="from "_DMENU
- +50 DO SORRY(STR1,"NONFATAL",STR2,CP)
- End DoDot:2
- End DoDot:1
- +51 ;
- +52 QUIT
- +53 ;
- ALLDONE(CURPATCH) ; EP
- +1 ; Complete Message
- +2 NEW STR,LINECNT,MSG
- +3 ;
- +4 SET MSG="Laboratory Patch "_CURPATCH_" INSTALL complete."
- +5 ;
- +6 KILL STR
- +7 SET LINECNT=1
- +8 ; Row of asterisks
- DO ADDLINE($TRANSLATE($JUSTIFY("",65)," ","*"),.LINECNT)
- +9 DO ADDLINE(" ",.LINECNT)
- +10 DO ADDLINE($$CJ^XLFSTR("Site: "_$$LOC^XBFUNC,65),.LINECNT)
- +11 DO ADDLINE(" ",.LINECNT)
- +12 DO ADDLINE($$CJ^XLFSTR(MSG,65),.LINECNT)
- +13 DO ADDLINE(" ",.LINECNT)
- +14 DO ADDLINE($TRANSLATE($JUSTIFY("",65)," ","*"),.LINECNT)
- +15 DO ADDLINE(" ",.LINECNT)
- +16 ;
- +17 ; Display the message
- DO BMES^XPDUTL(.STR)
- +18 DO SNDALERT(MSG)
- +19 DO SENDMAIL(MSG)
- +20 ;
- +21 QUIT
- +22 ;
- ENDINSTL(CURPATCH) ; EP
- +1 ; Procedure that stores information into the ^BLRINSTL global
- +2 ; regarding # of times instllation occurred as well as the
- +3 ; person who is installaing and the date/time of the install.
- +4 ;
- +5 ; Installation count
- NEW INSTCNT
- +6 ;
- +7 SET INSTCNT=1+$ORDER(^BLRINSTL("LAB PATCH",CURPATCH,"INSTALLED BY",""),-1)
- +8 ;
- +9 SET ^BLRINSTL("LAB PATCH",CURPATCH,"INSTALLED BY",INSTCNT)=$PIECE($GET(^VA(200,DUZ,0)),U)
- +10 SET ^BLRINSTL("LAB PATCH",CURPATCH,"INSTALLED BY",INSTCNT,"DATE/TIME")=$$HTE^XLFDT($HOROLOG,"5Z")
- +11 QUIT