- 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 ;