- ABSPOSEV ; IHS/SD/lwj - Point of Sale environment checker [ 05/28/2002 10:03 AM ]
- ;;1.0;PHARMACY POINT OF SALE;**20,23,28,31,32,33,34,36,37,38,39,40,42,43,44**;JUN 21, 2001;Build 38
- ;
- ;IHS/SD/RLT - 3/22/07 - Patch 20
- ; New environment checker. Replaced ABSPOSEC.
- ; Added patch 1014 check for Kernel.
- ;
- ;IHS/SD/RLT - 11/21/07 - Patch 23
- ; Added AICD v3.51 patch 7 check.
- ;
- ; This routine is an environment checker used with the installation
- ; of patches of the Point of Sale software.
- ; It will check for the following RPMS packages, their version
- ; and patch numbers before allowing the user to continue
- ; with the installation of patch 1 for Point of Sale:
- ;
- ; Fileman (DI) v21
- ; Kernel (XU) v8.0 patch 1014
- ; IHS Patient Dictionaries (AUPN) V99.1
- ; IHS Dictionary Pointers (AUT) V98.1 patch 8
- ; Outpatient Pharmacy (PSO) V6.0 patch 4
- ; Pharmacy Point of Sale (ABSP) V1.0
- ; Patient Registration (AG) V7.1 patch 1
- ; IHS ICD/CPT LOOKUP & GRPR (AICD) V3.51 patch 7
- ;
- ; (XPDQUIT will be set to 2 if the above mention packages are not
- ; at the require version and patch level. 2 indicates that
- ; the KIDS install will abort the installation, but will leave the
- ; ^XTMP global in place.)
- ;
- ;
- CHECK ;EP - called from Kids install routine
- ; First let's make sure they have DUZ(0) defined, and greet the user
- ;
- N ABSPMSG
- S ABSPMSG=""
- I '$G(DUZ) S ABSPMSG="DUZ UNDEFINED OR 0." D SORRY(ABSPMSG,2) Q
- I '$L($G(DUZ(0))) S ABSPMSG="DUZ(0) UNDEFINED OR NULL." D SORRY(ABSPMSG,2) Q
- ;
- N ABSPERS
- S ABSPERS=$P($G(^VA(200,DUZ,0)),U)
- W !!,$$CJ^XLFSTR("Hello, "_$P(ABSPERS,",",2)_" "_$P(ABSPERS,","),IOM)
- ;IHS/OIT/SCR - 09/22/08 Patch 28 ; replaced line
- ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **26**.",IOM),!
- ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **28**.",IOM),!
- ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **30**.",IOM),!
- ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **31**.",IOM),!
- ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **32**.",IOM),!
- ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **33**.",IOM),!
- ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **34**.",IOM),!
- ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **36**.",IOM),!
- ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **37**.",IOM),!
- ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **38**.",IOM),!
- ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **39**.",IOM),!
- ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **40**.",IOM),!
- ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **42**.",IOM),!
- ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **43**.",IOM),!
- W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **44**.",IOM),!
- ;
- ; Suppress the "Disable Options..." and "Move Routines..." install questions
- S (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
- ;
- ; check versions and patch if needed
- ;
- N ABSPSTOP
- S ABSPSTOP=0
- D VCHK("DI","21.0") ;Fileman
- D VPCHK("XU","8.0",1014) ;Kernel
- D VCHK("AUPN","99.1") ;IHS Patient Dictionaries
- ;D VCHK("AUT","98.1") ;IHS Dictionary Pointers ;IHS/OIT/CNI/SCR 042810 patch 39 replaced with line below
- D VPCHK("AUT","98.1",23) ;IHS Dictionary Pointers aut_9810.23k
- ;D SVPCHK("PSO","6.0",3) ;Outpatient Pharmacy
- D VCHK("ABSP","1.0") ;Pharmacy Point of Sale
- ;D VPCHK("AG","7.1",1) ;Patient Registration ;IHS/OIT/SCR 09/22/08 Patch 28: replaced line below
- ;D VPCHK("AG","7.1",2) ;Patient Registration
- D VPCHK("AG","7.1",10) ;Patient Registration ;OIT/CAS/RCS 07052012 - Patch 44 Update to latest A/R - HEAT #75114
- D VPCHK("AICD","3.51",7) ;IHS ICD/CPT LOOKUP & GRPR
- D VPCHK("APSP","7.0",1008) ;IHS PHARMACY MODIFICATIONS ;IHS/OIT/SCR 011210 PATCH 36
- ;IHS/OIT/SCR 09/23/08 PATCH 28 START CHANGES
- ;I ($$VERSION^XPDUTL("ABM")="2.5") D ;IHS/OIT/CNI/SCR 042810 Patch 39: replaced with 2 lines below
- ;D VCHK("ABM","2.6")
- I ($$VERSION^XPDUTL("ABM")="2.6") D
- .;D VPCHK("ABM","2.5",15)
- .D VPCHK("ABM","2.6",1)
- ;IHS Third Party Billing
- ;I $$VERSION^XPDUTL("BAR") '= "" D VCHK("BAR","1.8") -- IHS Accounts Receivable
- ;IHS/OIT/SCR 09/23/08 PATCH 28 END CHANGES
- W !!
- I ABSPSTOP=1 D Q
- . S ABSPMSG="You cannot continue, your environment does NOT meet all requirements."
- . D SORRY(ABSPMSG,2)
- Q
- ;
- VCHK(ABSPPRE,ABSPVER) ; Check version only
- ;
- N ABSPV
- S ABSPV=$$VERSION^XPDUTL(ABSPPRE)
- W !,"Required ",ABSPPRE," V",ABSPVER,?29
- W "... Present ",ABSPPRE," V",ABSPV
- I ABSPV<ABSPVER D Q
- . S ABSPSTOP=1
- . W ?65,"*** ERROR ***"
- W ?65,"OK"
- Q
- ;
- VPCHK(ABSPPRE,ABSPVER,ABSPPTCH) ; Check version and patch
- ;
- N ABSPV,ABSPP,ABSPIEN,ABSPPKG,ABSPLAST
- S ABSPV=$$VERSION^XPDUTL(ABSPPRE)
- S ABSPP=$$PATCH^XPDUTL(ABSPPRE_"*"_ABSPVER_"*"_ABSPPTCH)
- S ABSPIEN=$O(^DIC(9.4,"C",ABSPPRE,""))
- S ABSPPKG=$P($G(^DIC(9.4,ABSPIEN,0)),U)
- S ABSPLAST=$P($$LAST(ABSPPKG),U)
- W !,"Required ",ABSPPRE," V",ABSPVER," Patch ",ABSPPTCH,?29
- W "... Present ",ABSPPRE," V",ABSPV," Patch ",ABSPLAST
- I ABSPV<ABSPVER!(ABSPP'=1) D Q
- . S ABSPSTOP=1
- . W ?65,"*** ERROR ***"
- W ?65,"OK"
- Q
- ;
- SVPCHK(ABSPPRE,ABSPVER,ABSPPTCH) ;Special version and patch check for PSO
- ;
- N ABSPV,ABSPP,ABSPIEN,ABSPPKG,ABSPLAST
- S ABSPV=$$VERSION^XPDUTL(ABSPPRE)
- S ABSPP=$$PATCH^XPDUTL(ABSPPRE_"*"_ABSPVER_"*"_ABSPPTCH)
- I ABSPVER'>"6.0"&(ABSPPTCH'>3) D
- . S X="APSQUTL" X ^%ZOSF("TEST") ;check for Patch 3
- . S:$T ABSPP=1 ;found Patch 3
- S ABSPIEN=$O(^DIC(9.4,"C",ABSPPRE,""))
- S ABSPPKG=$P($G(^DIC(9.4,ABSPIEN,0)),U)
- S ABSPLAST=$P($$LAST(ABSPPKG),U)
- W !,"Required ",ABSPPRE," V",ABSPVER," Patch ",ABSPPTCH,?29
- W "... Present ",ABSPPRE," V",ABSPV," Patch ",ABSPLAST
- ;(current version < required version) or
- ; (required patch not found and last patch < required patch)
- I ABSPV<ABSPVER!((ABSPP'=1)&(ABSPLAST<ABSPPTCH)) D Q
- . S ABSPSTOP=1
- . W ?65,"*** ERROR ***"
- W ?65,"OK"
- Q
- ;
- LAST(PKG,VER) ;returns last patch applied for a Package, PATCH^DATE
- ; Patch includes Seq # if Released
- N PKGIEN,VERIEN,LATEST,PATCH,SUBIEN,PATCHDT
- I $G(VER)="" S VER=$$VERSION^XPDUTL(PKG) Q:'VER -1
- S PKGIEN=$O(^DIC(9.4,"B",PKG,"")) Q:'PKGIEN -1
- S VERIEN=$O(^DIC(9.4,PKGIEN,22,"B",VER,"")) Q:'VERIEN -1
- S LATEST=-1,PATCH=-1,SUBIEN=0
- F S SUBIEN=$O(^DIC(9.4,PKGIEN,22,VERIEN,"PAH",SUBIEN)) Q:SUBIEN'>0 D
- . S PATCHDT=$P(^DIC(9.4,PKGIEN,22,VERIEN,"PAH",SUBIEN,0),U,2)
- . S PATCHNO=$P(^DIC(9.4,PKGIEN,22,VERIEN,"PAH",SUBIEN,0),U)
- . I PATCHDT=LATEST&(PATCHNO>PATCH) D
- .. S LATEST=PATCHDT,PATCH=PATCHNO
- . I PATCHDT>LATEST D
- .. S LATEST=PATCHDT,PATCH=PATCHNO
- Q PATCH_U_LATEST
- ;
- SORRY(ABSPMSG,ABSPQUIT) ; let the user know we didn't have what we needed
- ;
- N ABSPV
- K DIFQ
- S XPDQUIT=$G(ABSPQUIT)
- W !,$$CJ^XLFSTR($G(ABSPMSG),IOM)
- W *7,!,$$CJ^XLFSTR("Sorry.....",IOM)
- Q:$D(ZTQUEUED)
- S ABSPV=$$DIR^XBDIR("E","Press RETURN")
- Q
- ABSPOSEV ; IHS/SD/lwj - Point of Sale environment checker [ 05/28/2002 10:03 AM ]
- +1 ;;1.0;PHARMACY POINT OF SALE;**20,23,28,31,32,33,34,36,37,38,39,40,42,43,44**;JUN 21, 2001;Build 38
- +2 ;
- +3 ;IHS/SD/RLT - 3/22/07 - Patch 20
- +4 ; New environment checker. Replaced ABSPOSEC.
- +5 ; Added patch 1014 check for Kernel.
- +6 ;
- +7 ;IHS/SD/RLT - 11/21/07 - Patch 23
- +8 ; Added AICD v3.51 patch 7 check.
- +9 ;
- +10 ; This routine is an environment checker used with the installation
- +11 ; of patches of the Point of Sale software.
- +12 ; It will check for the following RPMS packages, their version
- +13 ; and patch numbers before allowing the user to continue
- +14 ; with the installation of patch 1 for Point of Sale:
- +15 ;
- +16 ; Fileman (DI) v21
- +17 ; Kernel (XU) v8.0 patch 1014
- +18 ; IHS Patient Dictionaries (AUPN) V99.1
- +19 ; IHS Dictionary Pointers (AUT) V98.1 patch 8
- +20 ; Outpatient Pharmacy (PSO) V6.0 patch 4
- +21 ; Pharmacy Point of Sale (ABSP) V1.0
- +22 ; Patient Registration (AG) V7.1 patch 1
- +23 ; IHS ICD/CPT LOOKUP & GRPR (AICD) V3.51 patch 7
- +24 ;
- +25 ; (XPDQUIT will be set to 2 if the above mention packages are not
- +26 ; at the require version and patch level. 2 indicates that
- +27 ; the KIDS install will abort the installation, but will leave the
- +28 ; ^XTMP global in place.)
- +29 ;
- +30 ;
- CHECK ;EP - called from Kids install routine
- +1 ; First let's make sure they have DUZ(0) defined, and greet the user
- +2 ;
- +3 NEW ABSPMSG
- +4 SET ABSPMSG=""
- +5 IF '$GET(DUZ)
- SET ABSPMSG="DUZ UNDEFINED OR 0."
- DO SORRY(ABSPMSG,2)
- QUIT
- +6 IF '$LENGTH($GET(DUZ(0)))
- SET ABSPMSG="DUZ(0) UNDEFINED OR NULL."
- DO SORRY(ABSPMSG,2)
- QUIT
- +7 ;
- +8 NEW ABSPERS
- +9 SET ABSPERS=$PIECE($GET(^VA(200,DUZ,0)),U)
- +10 WRITE !!,$$CJ^XLFSTR("Hello, "_$PIECE(ABSPERS,",",2)_" "_$PIECE(ABSPERS,","),IOM)
- +11 ;IHS/OIT/SCR - 09/22/08 Patch 28 ; replaced line
- +12 ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **26**.",IOM),!
- +13 ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **28**.",IOM),!
- +14 ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **30**.",IOM),!
- +15 ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **31**.",IOM),!
- +16 ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **32**.",IOM),!
- +17 ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **33**.",IOM),!
- +18 ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **34**.",IOM),!
- +19 ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **36**.",IOM),!
- +20 ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **37**.",IOM),!
- +21 ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **38**.",IOM),!
- +22 ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **39**.",IOM),!
- +23 ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **40**.",IOM),!
- +24 ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **42**.",IOM),!
- +25 ;W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" Ver: "_$P($T(+2),";",3)_" Patch: **43**.",IOM),!
- +26 WRITE !!,$$CJ^XLFSTR("Checking Environment for "_$PIECE($TEXT(+2),";",4)_" Ver: "_$PIECE($TEXT(+2),";",3)_" Patch: **44**.",IOM),!
- +27 ;
- +28 ; Suppress the "Disable Options..." and "Move Routines..." install questions
- +29 SET (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
- +30 ;
- +31 ; check versions and patch if needed
- +32 ;
- +33 NEW ABSPSTOP
- +34 SET ABSPSTOP=0
- +35 ;Fileman
- DO VCHK("DI","21.0")
- +36 ;Kernel
- DO VPCHK("XU","8.0",1014)
- +37 ;IHS Patient Dictionaries
- DO VCHK("AUPN","99.1")
- +38 ;D VCHK("AUT","98.1") ;IHS Dictionary Pointers ;IHS/OIT/CNI/SCR 042810 patch 39 replaced with line below
- +39 ;IHS Dictionary Pointers aut_9810.23k
- DO VPCHK("AUT","98.1",23)
- +40 ;D SVPCHK("PSO","6.0",3) ;Outpatient Pharmacy
- +41 ;Pharmacy Point of Sale
- DO VCHK("ABSP","1.0")
- +42 ;D VPCHK("AG","7.1",1) ;Patient Registration ;IHS/OIT/SCR 09/22/08 Patch 28: replaced line below
- +43 ;D VPCHK("AG","7.1",2) ;Patient Registration
- +44 ;Patient Registration ;OIT/CAS/RCS 07052012 - Patch 44 Update to latest A/R - HEAT #75114
- DO VPCHK("AG","7.1",10)
- +45 ;IHS ICD/CPT LOOKUP & GRPR
- DO VPCHK("AICD","3.51",7)
- +46 ;IHS PHARMACY MODIFICATIONS ;IHS/OIT/SCR 011210 PATCH 36
- DO VPCHK("APSP","7.0",1008)
- +47 ;IHS/OIT/SCR 09/23/08 PATCH 28 START CHANGES
- +48 ;I ($$VERSION^XPDUTL("ABM")="2.5") D ;IHS/OIT/CNI/SCR 042810 Patch 39: replaced with 2 lines below
- +49 ;D VCHK("ABM","2.6")
- +50 IF ($$VERSION^XPDUTL("ABM")="2.6")
- Begin DoDot:1
- +51 ;D VPCHK("ABM","2.5",15)
- +52 DO VPCHK("ABM","2.6",1)
- End DoDot:1
- +53 ;IHS Third Party Billing
- +54 ;I $$VERSION^XPDUTL("BAR") '= "" D VCHK("BAR","1.8") -- IHS Accounts Receivable
- +55 ;IHS/OIT/SCR 09/23/08 PATCH 28 END CHANGES
- +56 WRITE !!
- +57 IF ABSPSTOP=1
- Begin DoDot:1
- +58 SET ABSPMSG="You cannot continue, your environment does NOT meet all requirements."
- +59 DO SORRY(ABSPMSG,2)
- End DoDot:1
- QUIT
- +60 QUIT
- +61 ;
- VCHK(ABSPPRE,ABSPVER) ; Check version only
- +1 ;
- +2 NEW ABSPV
- +3 SET ABSPV=$$VERSION^XPDUTL(ABSPPRE)
- +4 WRITE !,"Required ",ABSPPRE," V",ABSPVER,?29
- +5 WRITE "... Present ",ABSPPRE," V",ABSPV
- +6 IF ABSPV<ABSPVER
- Begin DoDot:1
- +7 SET ABSPSTOP=1
- +8 WRITE ?65,"*** ERROR ***"
- End DoDot:1
- QUIT
- +9 WRITE ?65,"OK"
- +10 QUIT
- +11 ;
- VPCHK(ABSPPRE,ABSPVER,ABSPPTCH) ; Check version and patch
- +1 ;
- +2 NEW ABSPV,ABSPP,ABSPIEN,ABSPPKG,ABSPLAST
- +3 SET ABSPV=$$VERSION^XPDUTL(ABSPPRE)
- +4 SET ABSPP=$$PATCH^XPDUTL(ABSPPRE_"*"_ABSPVER_"*"_ABSPPTCH)
- +5 SET ABSPIEN=$ORDER(^DIC(9.4,"C",ABSPPRE,""))
- +6 SET ABSPPKG=$PIECE($GET(^DIC(9.4,ABSPIEN,0)),U)
- +7 SET ABSPLAST=$PIECE($$LAST(ABSPPKG),U)
- +8 WRITE !,"Required ",ABSPPRE," V",ABSPVER," Patch ",ABSPPTCH,?29
- +9 WRITE "... Present ",ABSPPRE," V",ABSPV," Patch ",ABSPLAST
- +10 IF ABSPV<ABSPVER!(ABSPP'=1)
- Begin DoDot:1
- +11 SET ABSPSTOP=1
- +12 WRITE ?65,"*** ERROR ***"
- End DoDot:1
- QUIT
- +13 WRITE ?65,"OK"
- +14 QUIT
- +15 ;
- SVPCHK(ABSPPRE,ABSPVER,ABSPPTCH) ;Special version and patch check for PSO
- +1 ;
- +2 NEW ABSPV,ABSPP,ABSPIEN,ABSPPKG,ABSPLAST
- +3 SET ABSPV=$$VERSION^XPDUTL(ABSPPRE)
- +4 SET ABSPP=$$PATCH^XPDUTL(ABSPPRE_"*"_ABSPVER_"*"_ABSPPTCH)
- +5 IF ABSPVER'>"6.0"&(ABSPPTCH'>3)
- Begin DoDot:1
- +6 ;check for Patch 3
- SET X="APSQUTL"
- XECUTE ^%ZOSF("TEST")
- +7 ;found Patch 3
- IF $TEST
- SET ABSPP=1
- End DoDot:1
- +8 SET ABSPIEN=$ORDER(^DIC(9.4,"C",ABSPPRE,""))
- +9 SET ABSPPKG=$PIECE($GET(^DIC(9.4,ABSPIEN,0)),U)
- +10 SET ABSPLAST=$PIECE($$LAST(ABSPPKG),U)
- +11 WRITE !,"Required ",ABSPPRE," V",ABSPVER," Patch ",ABSPPTCH,?29
- +12 WRITE "... Present ",ABSPPRE," V",ABSPV," Patch ",ABSPLAST
- +13 ;(current version < required version) or
- +14 ; (required patch not found and last patch < required patch)
- +15 IF ABSPV<ABSPVER!((ABSPP'=1)&(ABSPLAST<ABSPPTCH))
- Begin DoDot:1
- +16 SET ABSPSTOP=1
- +17 WRITE ?65,"*** ERROR ***"
- End DoDot:1
- QUIT
- +18 WRITE ?65,"OK"
- +19 QUIT
- +20 ;
- LAST(PKG,VER) ;returns last patch applied for a Package, PATCH^DATE
- +1 ; Patch includes Seq # if Released
- +2 NEW PKGIEN,VERIEN,LATEST,PATCH,SUBIEN,PATCHDT
- +3 IF $GET(VER)=""
- SET VER=$$VERSION^XPDUTL(PKG)
- IF 'VER
- QUIT -1
- +4 SET PKGIEN=$ORDER(^DIC(9.4,"B",PKG,""))
- IF 'PKGIEN
- QUIT -1
- +5 SET VERIEN=$ORDER(^DIC(9.4,PKGIEN,22,"B",VER,""))
- IF 'VERIEN
- QUIT -1
- +6 SET LATEST=-1
- SET PATCH=-1
- SET SUBIEN=0
- +7 FOR
- SET SUBIEN=$ORDER(^DIC(9.4,PKGIEN,22,VERIEN,"PAH",SUBIEN))
- IF SUBIEN'>0
- QUIT
- Begin DoDot:1
- +8 SET PATCHDT=$PIECE(^DIC(9.4,PKGIEN,22,VERIEN,"PAH",SUBIEN,0),U,2)
- +9 SET PATCHNO=$PIECE(^DIC(9.4,PKGIEN,22,VERIEN,"PAH",SUBIEN,0),U)
- +10 IF PATCHDT=LATEST&(PATCHNO>PATCH)
- Begin DoDot:2
- +11 SET LATEST=PATCHDT
- SET PATCH=PATCHNO
- End DoDot:2
- +12 IF PATCHDT>LATEST
- Begin DoDot:2
- +13 SET LATEST=PATCHDT
- SET PATCH=PATCHNO
- End DoDot:2
- End DoDot:1
- +14 QUIT PATCH_U_LATEST
- +15 ;
- SORRY(ABSPMSG,ABSPQUIT) ; let the user know we didn't have what we needed
- +1 ;
- +2 NEW ABSPV
- +3 KILL DIFQ
- +4 SET XPDQUIT=$GET(ABSPQUIT)
- +5 WRITE !,$$CJ^XLFSTR($GET(ABSPMSG),IOM)
- +6 WRITE *7,!,$$CJ^XLFSTR("Sorry.....",IOM)
- +7 IF $DATA(ZTQUEUED)
- QUIT
- +8 SET ABSPV=$$DIR^XBDIR("E","Press RETURN")
- +9 QUIT