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

BLRP25PC.m

Go to the documentation of this file.
  1. BLRP25PC ; IHS/OIT/MKK - IHS Lab Patch 1025 Post install Checksum checker ;DEC 09, 2008 8:30 AM
  1. ;;5.2;IHS LABORATORY;**1025**;NOV 01, 1997
  1. ;;
  1. EP ; EP -- Start here
  1. NEW CP ; Current Patch
  1. NEW CSSTR ; Checksum String
  1. NEW ERR ; Error Count
  1. NEW HEAD ; HEADer array
  1. NEW RCNT ; Routine Count
  1. NEW PATCH ; Latest Patch Number
  1. NEW SSTR ; String to hold $S results
  1. NEW STR ; String variable
  1. NEW VERSION ; Version Number
  1. NEW %1,%2,%3,X,Y,XT1,XT2,XT3,XT4 ; Looping variables
  1. ;
  1. S CP=$TR($P($T(+2),";",5),"*") ; Current Patch
  1. ;
  1. S HEAD(1)=$$CJ^XLFSTR($$LOC^XBFUNC,IOM) ; Location
  1. S HEAD(2)=$$CJ^XLFSTR("IHS Lab Patch "_CP_" Checksum routine",IOM)
  1. ;
  1. S STR="Run Date: "_$$UP^XLFSTR($TR($$HTE^XLFDT($H,"2MPZ"),"@"," "))
  1. S HEAD(3)=$$CJ^XLFSTR(STR,IOM)
  1. ;
  1. S HEAD(4)=" "
  1. ;
  1. S $E(HEAD(5),6)="Routine"
  1. S $E(HEAD(5),16)="Checksum"
  1. S $E(HEAD(5),26)="Status"
  1. S $E(HEAD(5),36)="Ver"
  1. S $E(HEAD(5),46)="Patch"
  1. S HEAD(6)=$TR($J("",IOM)," ","-")
  1. ;
  1. D ^XBCLS ; Clear Screen & "Home" cursor
  1. D MES^XPDUTL(.HEAD)
  1. ;
  1. CONT ;
  1. S (ERR,RCNT)=0
  1. S XT4="I 1",X=$T(+9)
  1. F XT1=1:1 S XT2=$T(ROU+XT1) Q:XT2=""!($P(XT2,";",2)="") D
  1. . S X=$TR($P(XT2,";",2)," ")
  1. . S XT3=$TR($P(XT2,";",4)," ")
  1. . X XT4 I '$T Q
  1. . S RCNT=RCNT+1
  1. . K CSSTR
  1. . S CSSTR=$J(RCNT,3)
  1. . S $E(CSSTR,6)=X
  1. . X ^%ZOSF("RSUM")
  1. . S $E(CSSTR,16)=XT3
  1. . S SSTR=$S('XT3:"Not in UCI",XT3'=Y:"**Error**",1:"OK")
  1. . S $E(CSSTR,26)=SSTR
  1. . I XT3'=0 D
  1. .. S STR=$G(^ROUTINE(X,0,2))
  1. .. S VERSION=$P(STR,";",3)
  1. .. S $E(CSSTR,36)=VERSION
  1. .. S PATCH=$RE($P($RE($P($P(STR,";",5),"*",3)),",",1))
  1. .. S $E(CSSTR,46)=PATCH
  1. .. I XT3'=Y D
  1. ... K CSSTR
  1. ... S $E(CSSTR,1,4)="****"
  1. ... S $E(CSSTR,6)=X
  1. ... S $E(CSSTR,26)=SSTR
  1. ... S $E(CSSTR,46)="Calc "_Y_", off by "_(Y-XT3)
  1. ... S $E(CSSTR,77,80)="****"
  1. . D MES^XPDUTL(CSSTR)
  1. . I $$UP^XLFSTR(SSTR)="OK" Q
  1. . ;
  1. . ; Checksum error detected
  1. . S ERR=ERR+1
  1. . S ERR(ERR)=$$LJ^XLFSTR(X,8)_$J("",8)_$J(XT3,8)_$J("",10)_$J(Y,8)_$J("",10)_$J((Y-XT3),8)
  1. ;
  1. K CSSTR
  1. S CSSTR(1)=" "
  1. S CSSTR(2)="Number of Routines = "_RCNT
  1. S CSSTR(3)=" "
  1. D BMES^XPDUTL(.CSSTR)
  1. ;
  1. I ERR<1 D
  1. . S CSSTR(2)="No Checksum Errors detected"
  1. . D MES^XPDUTL(.CSSTR)
  1. ;
  1. I ERR>0 D RPTERROR
  1. ;
  1. W !
  1. Q
  1. ;
  1. ; Checksum Errors detected: produce report and send E-mail to LMI Mail Group
  1. RPTERROR ;
  1. NEW NUMAGREE
  1. S NUMAGREE=$S(ERR>1:"Errors",1:"Error")
  1. W !,ERR," Checksum ",NUMAGREE," detected",!!
  1. ;
  1. NEW LINECNT,HOWMANY,RTNN
  1. K STR
  1. S LINECNT=1
  1. D ADDLINE($TR($J("",65)," ","*"),.STR,.LINECNT)
  1. D ADDLINE(" ",.STR,.LINECNT)
  1. D ADDLINE($$CJ^XLFSTR("IHS Lab Patch 1023",65),.STR,.LINECNT)
  1. S HOWMANY=$S(ERR>1:"Errors",1:"Error")
  1. S RTNN=$S(ERR>1:"Routines",1:"Routine")
  1. D ADDLINE($$CJ^XLFSTR("Systems Environment "_HOWMANY_" Detected.",65),.STR,.LINECNT)
  1. D ADDLINE($$CJ^XLFSTR(RTNN_" with CHECKSUM "_HOWMANY,65),.STR,.LINECNT)
  1. D ADDLINE(" ",.STR,.LINECNT)
  1. D ADDLINE($J("",3)_$RE($J($RE(RTNN),8))_$J("",8)_"Checksum"_$J("",8)_"Calculated"_$J("",9)_$J("Off by",9),.STR,.LINECNT)
  1. D ADDLINE($J("",3)_"--------"_$J("",8)_"--------"_$J("",8)_"----------"_$J("",9)_$J("------",9),.STR,.LINECNT)
  1. S ERR=0
  1. F S ERR=$O(ERR(ERR)) Q:ERR="" D
  1. . D ADDLINE($J("",3)_$G(ERR(ERR)),.STR,.LINECNT)
  1. D ADDLINE(" ",.STR,.LINECNT)
  1. D ADDLINE($$CJ^XLFSTR("Please print/capture this screen and",65),.STR,.LINECNT)
  1. D ADDLINE($$CJ^XLFSTR("notify the Support Center at",65),.STR,.LINECNT)
  1. D ADDLINE(" ",.STR,.LINECNT)
  1. D ADDLINE($$CJ^XLFSTR("1-999-999-9999.",65),.STR,.LINECNT)
  1. D ADDLINE(" ",.STR,.LINECNT)
  1. D ADDLINE($G(STR(1)),.STR,.LINECNT)
  1. D BMES^XPDUTL(.STR)
  1. ;
  1. Q
  1. ;
  1. D SENDMAIL("CHECKSUM ERROR DETECTED",.STR)
  1. Q
  1. ;
  1. ; Routine to build STR array for display
  1. ADDLINE(DISPSTR,ARRAY,COUNTER) ;
  1. S ARRAY(COUNTER)=DISPSTR
  1. S COUNTER=COUNTER+1
  1. Q
  1. ;
  1. ONE S XT4="I $D(^UTILITY($J,X))",X=$T(+3) W !!,"Checksum routine created on ",$P(X,";",4)," by KERNEL V",$P(X,";",3),!
  1. W !,"Check a subset of routines:" K ^UTILITY($J) X ^%ZOSF("RSEL")
  1. W ! G CONT
  1. ;
  1. SENDMAIL(SUBJECT,MAILMSG) ;
  1. D KILL^XM ; Kill any MAILMAN variables
  1. N XMSUB,XMTO,XMINSTR,XMZ
  1. I '$G(DUZ) N DUZ D DUZ^XUP(.5)
  1. S XMSUB=SUBJECT
  1. S XMTO="G.LMI"
  1. S XMINSTR("FROM")=.5 ; POSTMASTER DUZ
  1. S XMINSTR("ADDR FLAGS")="R" ; Ignore any restrictions (domain closed or protected by security key)
  1. S XMZ="" ; Initialize variable
  1. D SENDMSG^XMXAPI(DUZ,XMSUB,"MAILMSG",XMTO,.XMINSTR,.XMZ)
  1. I $G(XMZ)="" D
  1. . W !!,"SENDMSG^XMXAPI failed",!!
  1. ;
  1. K X,XMDUZ,XMSUB,XMTEXT,Y ; Cleanup
  1. Q
  1. ;
  1. ROU ;;
  1. ;BLREXEC2;;5628952
  1. ;BLRMENU;;447878
  1. ;BLRMMRPT;;3417134
  1. ;BLRP41UI;;11319880
  1. ;BLRP41UP;;7639709
  1. ;BLRPCCBD;;1306119
  1. ;BLRPOC;;21027406
  1. ;BLRPRE25;;25330757
  1. ;BLRUTIL3;;3276664
  1. ;BLRVPTCH;;1896846
  1. ;LRVRPOCU;;8922327
  1. ;BLRALBA;;9158370
  1. ;BLRLINK2;;6773921
  1. ;BLRLINK3;;13802313
  1. ;BLRLINKP;;15982489
  1. ;BLRPCCVC;;2813203
  1. ;BLRPST;;7736873
  1. ;BLRTNB;;16690204
  1. ;BLRTNM;;29685300
  1. ;LREXPD;;5043997
  1. ;LRMIPC;;4289609
  1. ;LRMISEZB;;9753528
  1. ;LRMISR1;;3325470
  1. ;LRMITSPE;;6984513
  1. ;LRORD;;21951290
  1. ;LRORDK;;14521313
  1. ;LRRP1;;14957981
  1. ;LRRP2;;19052582
  1. ;LRSORC1A;;7595298
  1. ;LRTT5P1;;14263908
  1. ;LRUPAD;;7881930
  1. ;LRWLST;;18706544
  1. ;LRWRKLS1;;5404205
  1. ;LRX;;18631413
  1. ;;;