ACRF21EN ;IHS/OIRM/DSD/AEF - PATCH 21 ENVIRONMENT CHECK ROUTINE [ 10/02/2006 3:52 PM ]
;;2.1;ADMIN RESOURCE MGT SYSTEM;**21**;NOV 05, 2001
;
EN ;EP -- MAIN ENTRY POINT
;
;CALL GENERIC EN^ACRFPENV(ACRPCHN,ACRPCHS,.XPDQUIT) ENVIRONMENT
;CHECK ROUTINE
;
; WHERE:
; ACRPCHN = PATCH NAME
; ACRPCHS = PREREQUISITE PATCH NUMBERS
; XPDQUIT = KIDS INSTALL TERMINATOR VARIABLE OUTPUT
; 1 = QUIT
;
K XPDQUIT
;
K ACRAUTCK
;
S ACRAUTCK="" ;USE TO PERFORM ENVIRONMENT
; CHECK ON THE AUT PACKAGE. COMMENT
; OUT IF NOT NEEDED.
I $D(ACRAUTCK) D
.S ACRPCHN="AUT*98.1*21"
.S ACRPCHS="21" ;CHANGE AS NEEDED
.D CHKAUT(ACRPCHN,ACRPCHS,.XPDQUIT)
S ACRPCHN="ACR*2.1*21"
S ACRPCHS="1,2,3,4,5,6,7,8,12,13,14,15,16,17,18,19,20" ;CHANGE AS NEEDED
D EN^ACRFPENV(ACRPCHN,ACRPCHS,.XPDQUIT)
;
K ACRAUTCK ;ACR*2.1*20
;
Q
;ACR*2.1*20 FROM HERE DOWN WAS ADDED TO GIVE THE ABILITY TO
; DO AN ENVIRONMENT CHECK ON THE AUT PACKAGE
CHKAUT(ACRPCHN,ACRPCHS,XPDQUIT) ;EP ENVIRONMENT CHECK FOR AUT
;----- MAIN ENTRY POINT
;
; INPUT:
; ACRPCHN = PATCH NAME
; ACRPCHS = PREREQUISITE PATCH NUMBERS
;
; OUTPUT:
; XPDQUIT = KIDS INSTALL TERMINATOR VARIABLE
; 1 = QUIT
;
K XPDQUIT
;
D CHK(ACRPCHN,ACRPCHS,.XPDQUIT)
;
Q
CHK(ACRPCHN,ACRPCHS,XPDQUIT) ;EP
;----- DETERMINES IF PATCH VERSION MATCHES PACKAGE VERSION
;
; INPUT:
; ACRPCHN = PATCH NAME
; ACRPCHS = PREREQUISITE PATCH NUMBERS
;
; OUTPUT:
; XPDQUIT = KIDS INSTALL TERMINATOR VARIABLE
; 1 = QUIT
;
N D0,D1,I,J,P,X,Y,Z
;
S Y=$$VERSION^XPDUTL("IHS DICTIONARIES (POINTERS)")
;
;----- CHECK TO SEE IF AUT IS INSTALLED
;
S D0=$O(^DIC(9.4,"B","IHS DICTIONARIES (POINTERS)",0))
I 'D0 D Q
. S XPDQUIT=1
. D BMES^XPDUTL("Unable to find 'IHS DICTIONARIES (POINTERS)' package in the Package file.")
;
S D1=$O(^DIC(9.4,D0,22,"B",Y,0))
I 'D1 D Q
. S XPDQUIT=1
. S X="Unable to find 'IHS DICTIONARIES (POINTERS)' Version "_Y_" in the Package file"
. D BMES^XPDUTL(X)
;
;----- CHECK TO SEE IF PATCH MATCHES CURRENT VERSION
;
I Y'=$$VER^XPDUTL(ACRPCHN) D Q
. S XPDQUIT=1
. S X="This patch is for AUT version "_$$VER^XPDUTL(ACRPCHN)_" but you are running version "_Y_"."
. D BMES^XPDUTL(X)
;
;----- CHECK FOR REQUIRED PATCHES
;
Q:$G(ACRPCHS)']""
F I=1:1:$L(ACRPCHS,",") D
. S Z=$P(ACRPCHS,",",I)
. I Z["-" D Q
. . F J=$P(Z,"-"):1:$P(Z,"-",2) D
. . . I '$D(^DIC(9.4,D0,22,D1,"PAH","B",J)) D
. . . . S XPDQUIT=1
. . . . D PMSG(Y,J)
. I '$D(^DIC(9.4,D0,22,D1,"PAH","B",Z)) D
. . S XPDQUIT=1
. . D PMSG(Y,Z)
Q
PMSG(Y,P) ;
;----- ISSUE MISSING PATCH MESSAGE
;
; Y = VERSION NUMBER
; P = PATCH NUMBER
;
N X
S X="Patch AUT*"_Y_"*"_P_" is missing"
D BMES^XPDUTL(X)
Q
ACRF21EN ;IHS/OIRM/DSD/AEF - PATCH 21 ENVIRONMENT CHECK ROUTINE [ 10/02/2006 3:52 PM ]
+1 ;;2.1;ADMIN RESOURCE MGT SYSTEM;**21**;NOV 05, 2001
+2 ;
EN ;EP -- MAIN ENTRY POINT
+1 ;
+2 ;CALL GENERIC EN^ACRFPENV(ACRPCHN,ACRPCHS,.XPDQUIT) ENVIRONMENT
+3 ;CHECK ROUTINE
+4 ;
+5 ; WHERE:
+6 ; ACRPCHN = PATCH NAME
+7 ; ACRPCHS = PREREQUISITE PATCH NUMBERS
+8 ; XPDQUIT = KIDS INSTALL TERMINATOR VARIABLE OUTPUT
+9 ; 1 = QUIT
+10 ;
+11 KILL XPDQUIT
+12 ;
+13 KILL ACRAUTCK
+14 ;
+15 ;USE TO PERFORM ENVIRONMENT
SET ACRAUTCK=""
+16 ; CHECK ON THE AUT PACKAGE. COMMENT
+17 ; OUT IF NOT NEEDED.
+18 IF $DATA(ACRAUTCK)
Begin DoDot:1
+19 SET ACRPCHN="AUT*98.1*21"
+20 ;CHANGE AS NEEDED
SET ACRPCHS="21"
+21 DO CHKAUT(ACRPCHN,ACRPCHS,.XPDQUIT)
End DoDot:1
+22 SET ACRPCHN="ACR*2.1*21"
+23 ;CHANGE AS NEEDED
SET ACRPCHS="1,2,3,4,5,6,7,8,12,13,14,15,16,17,18,19,20"
+24 DO EN^ACRFPENV(ACRPCHN,ACRPCHS,.XPDQUIT)
+25 ;
+26 ;ACR*2.1*20
KILL ACRAUTCK
+27 ;
+28 QUIT
+29 ;ACR*2.1*20 FROM HERE DOWN WAS ADDED TO GIVE THE ABILITY TO
+30 ; DO AN ENVIRONMENT CHECK ON THE AUT PACKAGE
CHKAUT(ACRPCHN,ACRPCHS,XPDQUIT) ;EP ENVIRONMENT CHECK FOR AUT
+1 ;----- MAIN ENTRY POINT
+2 ;
+3 ; INPUT:
+4 ; ACRPCHN = PATCH NAME
+5 ; ACRPCHS = PREREQUISITE PATCH NUMBERS
+6 ;
+7 ; OUTPUT:
+8 ; XPDQUIT = KIDS INSTALL TERMINATOR VARIABLE
+9 ; 1 = QUIT
+10 ;
+11 KILL XPDQUIT
+12 ;
+13 DO CHK(ACRPCHN,ACRPCHS,.XPDQUIT)
+14 ;
+15 QUIT
CHK(ACRPCHN,ACRPCHS,XPDQUIT) ;EP
+1 ;----- DETERMINES IF PATCH VERSION MATCHES PACKAGE VERSION
+2 ;
+3 ; INPUT:
+4 ; ACRPCHN = PATCH NAME
+5 ; ACRPCHS = PREREQUISITE PATCH NUMBERS
+6 ;
+7 ; OUTPUT:
+8 ; XPDQUIT = KIDS INSTALL TERMINATOR VARIABLE
+9 ; 1 = QUIT
+10 ;
+11 NEW D0,D1,I,J,P,X,Y,Z
+12 ;
+13 SET Y=$$VERSION^XPDUTL("IHS DICTIONARIES (POINTERS)")
+14 ;
+15 ;----- CHECK TO SEE IF AUT IS INSTALLED
+16 ;
+17 SET D0=$ORDER(^DIC(9.4,"B","IHS DICTIONARIES (POINTERS)",0))
+18 IF 'D0
Begin DoDot:1
+19 SET XPDQUIT=1
+20 DO BMES^XPDUTL("Unable to find 'IHS DICTIONARIES (POINTERS)' package in the Package file.")
End DoDot:1
QUIT
+21 ;
+22 SET D1=$ORDER(^DIC(9.4,D0,22,"B",Y,0))
+23 IF 'D1
Begin DoDot:1
+24 SET XPDQUIT=1
+25 SET X="Unable to find 'IHS DICTIONARIES (POINTERS)' Version "_Y_" in the Package file"
+26 DO BMES^XPDUTL(X)
End DoDot:1
QUIT
+27 ;
+28 ;----- CHECK TO SEE IF PATCH MATCHES CURRENT VERSION
+29 ;
+30 IF Y'=$$VER^XPDUTL(ACRPCHN)
Begin DoDot:1
+31 SET XPDQUIT=1
+32 SET X="This patch is for AUT version "_$$VER^XPDUTL(ACRPCHN)_" but you are running version "_Y_"."
+33 DO BMES^XPDUTL(X)
End DoDot:1
QUIT
+34 ;
+35 ;----- CHECK FOR REQUIRED PATCHES
+36 ;
+37 IF $GET(ACRPCHS)']""
QUIT
+38 FOR I=1:1:$LENGTH(ACRPCHS,",")
Begin DoDot:1
+39 SET Z=$PIECE(ACRPCHS,",",I)
+40 IF Z["-"
Begin DoDot:2
+41 FOR J=$PIECE(Z,"-"):1:$PIECE(Z,"-",2)
Begin DoDot:3
+42 IF '$DATA(^DIC(9.4,D0,22,D1,"PAH","B",J))
Begin DoDot:4
+43 SET XPDQUIT=1
+44 DO PMSG(Y,J)
End DoDot:4
End DoDot:3
End DoDot:2
QUIT
+45 IF '$DATA(^DIC(9.4,D0,22,D1,"PAH","B",Z))
Begin DoDot:2
+46 SET XPDQUIT=1
+47 DO PMSG(Y,Z)
End DoDot:2
End DoDot:1
+48 QUIT
PMSG(Y,P) ;
+1 ;----- ISSUE MISSING PATCH MESSAGE
+2 ;
+3 ; Y = VERSION NUMBER
+4 ; P = PATCH NUMBER
+5 ;
+6 NEW X
+7 SET X="Patch AUT*"_Y_"*"_P_" is missing"
+8 DO BMES^XPDUTL(X)
+9 QUIT