BPXRM209 ; IHS/MSC/MGH - Version 2.0 Patch 1009 post routine. ;16-Feb-2018 11:04;DU
;;2.0;CLINICAL REMINDERS;**1009**;Feb 04, 2005;Build 17
;
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
;
;Check for the installation of other patches
I '$$INSTALLD("PXRM*2.0*1008") D MES^XPDUTL($$CJ^XLFSTR("Requires pxrm V2.0 patch 1008. Not installed.",80)) D SORRY(2)
;Check for the installation of other patches
I '$$INSTALLD("BSTS*1.0*8") D MES^XPDUTL($$CJ^XLFSTR("Requires BSTS V1.0 patch 1008. Not installed.",80)) D SORRY(2)
I '$$INSTALLD("LEX*2.0*1007") D MES^XPDUTL($$CJ^XLFSTR("Requires lex V2.0 patch 1007. Not installed.",80)) D SORRY(2)
Q
INSTALLD(PXRMSTAL) ;EP - Determine if patch BJPCSTAL was installed, where
; PXRMSTAL is the name of the INSTALL. E.g "PXRM*2.0*1008".
;
NEW PXRMY,DIC,X,Y
S X=$P(PXRMSTAL,"*",1)
S DIC="^DIC(9.4,",DIC(0)="FM",D="C"
D IX^DIC
I Y<1 D IMES Q 0
S DIC=DIC_+Y_",22,",X=$P(PXRMSTAL,"*",2)
D ^DIC
I Y<1 D IMES Q 0
S DIC=DIC_+Y_",""PAH"",",X=$P(PXRMSTAL,"*",3)
D ^DIC
S PXRMY=Y
D IMES
Q $S(PXRMY<1:0,1:1)
IMES ;
D MES^XPDUTL($$CJ^XLFSTR("Patch """_PXRMSTAL_""" is"_$S(Y<1:" *NOT*",1:"")_" installed.",IOM))
Q
SORRY(X) ;
KILL DIFQ
I X=3 S XPDQUIT=2 Q
S XPDQUIT=X
W *7,!,$$CJ^XLFSTR("Sorry....FIX IT!",IOM)
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
Q
;===============================================================
POST ;Post-install
Q
;
BPXRM209 ; IHS/MSC/MGH - Version 2.0 Patch 1009 post routine. ;16-Feb-2018 11:04;DU
+1 ;;2.0;CLINICAL REMINDERS;**1009**;Feb 04, 2005;Build 17
+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 ;Check for the installation of other patches
+13 IF '$$INSTALLD("PXRM*2.0*1008")
DO MES^XPDUTL($$CJ^XLFSTR("Requires pxrm V2.0 patch 1008. Not installed.",80))
DO SORRY(2)
+14 ;Check for the installation of other patches
+15 IF '$$INSTALLD("BSTS*1.0*8")
DO MES^XPDUTL($$CJ^XLFSTR("Requires BSTS V1.0 patch 1008. Not installed.",80))
DO SORRY(2)
+16 IF '$$INSTALLD("LEX*2.0*1007")
DO MES^XPDUTL($$CJ^XLFSTR("Requires lex V2.0 patch 1007. Not installed.",80))
DO SORRY(2)
+17 QUIT
INSTALLD(PXRMSTAL) ;EP - Determine if patch BJPCSTAL was installed, where
+1 ; PXRMSTAL is the name of the INSTALL. E.g "PXRM*2.0*1008".
+2 ;
+3 NEW PXRMY,DIC,X,Y
+4 SET X=$PIECE(PXRMSTAL,"*",1)
+5 SET DIC="^DIC(9.4,"
SET DIC(0)="FM"
SET D="C"
+6 DO IX^DIC
+7 IF Y<1
DO IMES
QUIT 0
+8 SET DIC=DIC_+Y_",22,"
SET X=$PIECE(PXRMSTAL,"*",2)
+9 DO ^DIC
+10 IF Y<1
DO IMES
QUIT 0
+11 SET DIC=DIC_+Y_",""PAH"","
SET X=$PIECE(PXRMSTAL,"*",3)
+12 DO ^DIC
+13 SET PXRMY=Y
+14 DO IMES
+15 QUIT $SELECT(PXRMY<1:0,1:1)
IMES ;
+1 DO MES^XPDUTL($$CJ^XLFSTR("Patch """_PXRMSTAL_""" is"_$SELECT(Y<1:" *NOT*",1:"")_" installed.",IOM))
+2 QUIT
SORRY(X) ;
+1 KILL DIFQ
+2 IF X=3
SET XPDQUIT=2
QUIT
+3 SET XPDQUIT=X
+4 WRITE *7,!,$$CJ^XLFSTR("Sorry....FIX IT!",IOM)
+5 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 QUIT
+2 ;===============================================================
POST ;Post-install
+1 QUIT
+2 ;