VistA-WorldVistAEHR/r/TOOLKIT-AWCM-XD-XIN-XPAR-XQ.../XTZRUTL.m

60 lines
2.3 KiB
Mathematica

XTZRUTL ;ISCSF/RWF - Developer Routine Utilities ;7/24/97 13:47 [3/22/00 4:16pm]
;;7.3;TOOLKIT;**20,L02**;Apr 25, 1995
;
Q ;No entry from the top.
BUILD ;
K ^UTILITY($J) D HOME^%ZIS
N BLDA,DIC,IX,X
I '$D(^XPD(9.6,0)) W !,"No BUILD file to work from." Q
S Y=$$BUILD^XTRUTL1 G EXIT:Y'>0 S BLDA=+Y
CALL D RTN^XTRUTL1(BLDA)
G EXIT:$O(^UTILITY($J,""))=""
D UCI^%ZOSV S AAQUCI=$P(Y,",",1) K Y S AAQDT=$$HTE^XLFDT($H,"1M")
W !!,"Post-Install Values from Build File "_AAQUCI_" Routines "_AAQDT
W !,"NOTE: Old and New values will be the same after XTRMON has run.",!,?6,"The Old value may look incorrect if a routine is patched more",!,?6,"than once in a day. See On-Line Documentation for more info."
S RN="" U IO W !!,?19,"Checksum",!,"Routine",?16,"Old",?26,"New",?35,"2nd Line Patches"
F S RN=$O(^UTILITY($J,RN)) Q:RN="" D
. S X=RN X ^%ZOSF("TEST") E W !,RN," is not on the system." Q
. S X=RN,XCNP=0,DIF="RTN(" K RTN X ^%ZOSF("LOAD") S LC=XCNP-1
. D RSUM S Y=$O(^DIC(9.8,"B",RN,0)) Q:Y'>0
. S OLDSUM=$P($G(^DIC(9.8,Y,0)),"^",5)
. S X=RTN(2,0) W !,RN,?13,$J(OLDSUM,8),?23,$J(RSUM,8),?35,$P(X,";",5)
. Q
EXIT K %,%N,AAQDT,AAQUCI,C,DIF,LC,OLDSUM,RN,RSUM,RSUM2,RTN,XCNP,Y
D ^%ZISC
Q
RSUM N Y,Y2,%,%1,%2,%3 S (Y,Y2)=0
F %=1,3:1:LC S %1=RTN(%,0),%3=$F(%1," "),%3=$S($E(%1,%3)'=";":$L(%1),$E(%1,%3+1)=";":$L(%1),1:%3-2) F %2=1:1:%3 S Y=$A(%1,%2)*%2+Y,Y2=$A(%1,%2)*(%2+%)+Y2
S RSUM=Y,RSUM2=Y2
Q
OLDSUM(X) ;Get the OLD Checksum
N Y S Y=$O(^DIC(9.8,"B",X,0)) Q:Y'>0 ""
S X=$G(^DIC(9.8,Y,4))
Q $P(X,"^",2)
UPDATE ;Update the ROUTINE file with current checksums
K ^UTILITY($J)
N BLDA,DIC,IX,X,NOW W !!,"This will update the ROUTINE file for the routines from a BUILD file."
I '$D(^XPD(9.6,0)) W !,"No BUILD file to work from." Q
S Y=$$BUILD^XTRUTL1 G EXIT:Y'>0 S BLDA=+Y
D RTN^XTRUTL1(BLDA)
S NOW=$$NOW^XLFDT()
G EXIT:$O(^UTILITY($J,""))=""
S RN=""
F S RN=$O(^UTILITY($J,RN)) Q:RN="" D UD1(RN)
W !,"Done"
Q
UD1(RN) ;
N X,XCNP,DIF,LC,RSUM,RSUM2,Y S:'$D(NOW) NOW=$$NOW^XLFDT
S X=RN,XCNP=0,DIF="RTN(" K RTN X ^%ZOSF("LOAD") S LC=XCNP-1
D RSUM
S X=RTN(2,0)
S Y=$$GETDA(RN) Q:Y'>0
S ^DIC(9.8,+Y,4)=NOW_U_RSUM_"/"_RSUM2_U_$P(X,";",5)
Q
SHOW(RN) ;Show current data
N Y,%0,%4 S Y=$$GETDA(RN) Q:Y'>0 S %0=^DIC(9.8,Y,0),%4=$G(^(4))
W !,$P(%0,U),?10,$P(%4,U),?28,$P(%4,U,2)
Q
GETDA(X) ;Find a DA in file
Q $O(^DIC(9.8,"B",X,0))