GMPL1004 ; IHS/MSC/MGH - Patch 1004 post routine. ;13-Aug-2015 14:56;DU
;;2.0;Problem List;**1004**;Aug 25, 1994;Build 10
;
ENV ;EP environment check
N IN,INSTDA,STAT
;Check for the installation of Reminders 2.0
S IN="CLINICAL REMINDERS 2.0",INSTDA=""
I '$D(^XPD(9.7,"B",IN)) D Q
.W !,"You must first install CLINICAL REMINDERS 2.0 before this patch" S XPDQUIT=2
S INSTDA=$O(^XPD(9.7,"B",IN,INSTDA),-1)
S STAT=+$P($G(^XPD(9.7,INSTDA,0)),U,9)
I STAT'=3 D Q
.W !,"CLINICAL REMINDERS 2.0 must be completely installed before installing this patch." S XPDQUIT=2
S (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
;
S IN="IHS CLINICAL REPORTING 14.0",INSTDA=""
I '$D(^XPD(9.7,"B",IN)) D Q
.W !,"You must first install IHS CLINICAL REPORTING 14.0 before this patch" S XPDQUIT=2
S INSTDA=$O(^XPD(9.7,"B",IN,INSTDA),-1)
S STAT=+$P($G(^XPD(9.7,INSTDA,0)),U,9)
I STAT'=3 D Q
.W !,"IHS CLINICAL REPORTING 14.0 must be completely installed before installing this patch." S XPDQUIT=2
S (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
S IN="AICD 4.0",INSTDA=""
I '$D(^XPD(9.7,"B",IN)) D Q
.W !,"You must first install AICD 4.0 before this patch" S XPDQUIT=2
S INSTDA=$O(^XPD(9.7,"B",IN,INSTDA),-1)
S STAT=+$P($G(^XPD(9.7,INSTDA,0)),U,9)
I STAT'=3 D Q
.W !,"AICD 4.0 must be completely installed before installing this patch." S XPDQUIT=2
S (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
;Check for the installation of other patches
S PATCH="PXRM*2.0*1003"
I '$$PATCH(PATCH) D Q
. W !,"You must first install "_PATCH_"." S XPDQUIT=2
S PATCH="GMPL*2.0*1003"
I '$$PATCH(PATCH) D Q
. W !,"You must first install "_PATCH_"." S XPDQUIT=2
S PATCH="BJPC*2.0*11"
I '$$PATCH(PATCH) D Q
. W !,"You must first install "_PATCH_"." S XPDQUIT=2
S PATCH="XU*8.0*539"
I '$$PATCH(PATCH) D Q
. W !,"You must first install "_PATCH_"." S XPDQUIT=2
Q
PATCH(X) ;return 1 if patch X was installed, X=aaaa*nn.nn*nnnn
;copy of code from XPDUTL but modified to handle 4 digit IHS patch numb
Q:X'?1.4UN1"*"1.2N1"."1.2N.1(1"V",1"T").2N1"*"1.4N 0
NEW NUM,I,J
S I=$O(^DIC(9.4,"C",$P(X,"*"),0)) Q:'I 0
S J=$O(^DIC(9.4,I,22,"B",$P(X,"*",2),0)),X=$P(X,"*",3) Q:'J 0
;check if patch is just a number
Q:$O(^DIC(9.4,I,22,J,"PAH","B",X,0)) 1
S NUM=$O(^DIC(9.4,I,22,J,"PAH","B",X_" SEQ"))
Q (X=+NUM)
;===============================================================
PRE ;EP pre-init
;Delete the old data dictionaries.
N DIU,TEXT
D EN^DDIOL("Removing old data dictionaries.")
S DIU(0)=""
S DIU=9000011
S TEXT=" Deleting data dictionary for file # "_DIU
D EN^DDIOL(TEXT)
D EN^DIU2
Q
;===============================================================
POST ;Post-install
;Update the cross-references.
D CPROBXR^GMPLP44I
;Rebuild the Index in the new format.
D REINDEX^GMPLP44I
Q
;
GMPL1004 ; IHS/MSC/MGH - Patch 1004 post routine. ;13-Aug-2015 14:56;DU
+1 ;;2.0;Problem List;**1004**;Aug 25, 1994;Build 10
+2 ;
ENV ;EP environment check
+1 NEW IN,INSTDA,STAT
+2 ;Check for the installation of Reminders 2.0
+3 SET IN="CLINICAL REMINDERS 2.0"
SET INSTDA=""
+4 IF '$DATA(^XPD(9.7,"B",IN))
Begin DoDot:1
+5 WRITE !,"You must first install CLINICAL REMINDERS 2.0 before this patch"
SET XPDQUIT=2
End DoDot:1
QUIT
+6 SET INSTDA=$ORDER(^XPD(9.7,"B",IN,INSTDA),-1)
+7 SET STAT=+$PIECE($GET(^XPD(9.7,INSTDA,0)),U,9)
+8 IF STAT'=3
Begin DoDot:1
+9 WRITE !,"CLINICAL REMINDERS 2.0 must be completely installed before installing this patch."
SET XPDQUIT=2
End DoDot:1
QUIT
+10 SET (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
+11 ;
+12 SET IN="IHS CLINICAL REPORTING 14.0"
SET INSTDA=""
+13 IF '$DATA(^XPD(9.7,"B",IN))
Begin DoDot:1
+14 WRITE !,"You must first install IHS CLINICAL REPORTING 14.0 before this patch"
SET XPDQUIT=2
End DoDot:1
QUIT
+15 SET INSTDA=$ORDER(^XPD(9.7,"B",IN,INSTDA),-1)
+16 SET STAT=+$PIECE($GET(^XPD(9.7,INSTDA,0)),U,9)
+17 IF STAT'=3
Begin DoDot:1
+18 WRITE !,"IHS CLINICAL REPORTING 14.0 must be completely installed before installing this patch."
SET XPDQUIT=2
End DoDot:1
QUIT
+19 SET (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
+20 SET IN="AICD 4.0"
SET INSTDA=""
+21 IF '$DATA(^XPD(9.7,"B",IN))
Begin DoDot:1
+22 WRITE !,"You must first install AICD 4.0 before this patch"
SET XPDQUIT=2
End DoDot:1
QUIT
+23 SET INSTDA=$ORDER(^XPD(9.7,"B",IN,INSTDA),-1)
+24 SET STAT=+$PIECE($GET(^XPD(9.7,INSTDA,0)),U,9)
+25 IF STAT'=3
Begin DoDot:1
+26 WRITE !,"AICD 4.0 must be completely installed before installing this patch."
SET XPDQUIT=2
End DoDot:1
QUIT
+27 SET (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
+28 ;Check for the installation of other patches
+29 SET PATCH="PXRM*2.0*1003"
+30 IF '$$PATCH(PATCH)
Begin DoDot:1
+31 WRITE !,"You must first install "_PATCH_"."
SET XPDQUIT=2
End DoDot:1
QUIT
+32 SET PATCH="GMPL*2.0*1003"
+33 IF '$$PATCH(PATCH)
Begin DoDot:1
+34 WRITE !,"You must first install "_PATCH_"."
SET XPDQUIT=2
End DoDot:1
QUIT
+35 SET PATCH="BJPC*2.0*11"
+36 IF '$$PATCH(PATCH)
Begin DoDot:1
+37 WRITE !,"You must first install "_PATCH_"."
SET XPDQUIT=2
End DoDot:1
QUIT
+38 SET PATCH="XU*8.0*539"
+39 IF '$$PATCH(PATCH)
Begin DoDot:1
+40 WRITE !,"You must first install "_PATCH_"."
SET XPDQUIT=2
End DoDot:1
QUIT
+41 QUIT
PATCH(X) ;return 1 if patch X was installed, X=aaaa*nn.nn*nnnn
+1 ;copy of code from XPDUTL but modified to handle 4 digit IHS patch numb
+2 IF X'?1.4UN1"*"1.2N1"."1.2N.1(1"V",1"T").2N1"*"1.4N
QUIT 0
+3 NEW NUM,I,J
+4 SET I=$ORDER(^DIC(9.4,"C",$PIECE(X,"*"),0))
IF 'I
QUIT 0
+5 SET J=$ORDER(^DIC(9.4,I,22,"B",$PIECE(X,"*",2),0))
SET X=$PIECE(X,"*",3)
IF 'J
QUIT 0
+6 ;check if patch is just a number
+7 IF $ORDER(^DIC(9.4,I,22,J,"PAH","B",X,0))
QUIT 1
+8 SET NUM=$ORDER(^DIC(9.4,I,22,J,"PAH","B",X_" SEQ"))
+9 QUIT (X=+NUM)
+10 ;===============================================================
PRE ;EP pre-init
+1 ;Delete the old data dictionaries.
+2 NEW DIU,TEXT
+3 DO EN^DDIOL("Removing old data dictionaries.")
+4 SET DIU(0)=""
+5 SET DIU=9000011
+6 SET TEXT=" Deleting data dictionary for file # "_DIU
+7 DO EN^DDIOL(TEXT)
+8 DO EN^DIU2
+9 QUIT
+10 ;===============================================================
POST ;Post-install
+1 ;Update the cross-references.
+2 DO CPROBXR^GMPLP44I
+3 ;Rebuild the Index in the new format.
+4 DO REINDEX^GMPLP44I
+5 QUIT
+6 ;