Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: SD132EN

SD132EN.m

Go to the documentation of this file.
  1. SD132EN ;ALB/MJK - Patch SD*5.3*132 Environmental Check Routine ; 11/5/97
  1. ;;5.3;Scheduling;**132,1015**;Aug 13, 1993;Build 21
  1. ;
  1. EN ; --- main entry point
  1. S U="^"
  1. D HOME^%ZIS
  1. ;
  1. W !,"Environmental Checks Started..."
  1. ;
  1. ; -- main driver calls
  1. D EVT,PKG
  1. ;
  1. W !!,"Environmental Checks Completed."
  1. W " [",$S($G(XPDQUIT):"Failed",1:"Passed"),"]",!
  1. Q
  1. ;
  1. EVT ; -- check SDAM APPOINTMENT EVENTS protocol for dangling pointers
  1. N SDMAIN,SDITEM,SDIEN,SDBAD
  1. S SDBAD=0
  1. S SDMAIN=$O(^ORD(101,"B","SDAM APPOINTMENT EVENTS",0))
  1. IF 'SDMAIN G EVTQ
  1. S SDITEM=0
  1. F S SDITEM=$O(^ORD(101,SDMAIN,10,SDITEM)) Q:'SDITEM D Q:SDBAD
  1. . S SDIEN=+$G(^ORD(101,SDMAIN,10,SDITEM,0))
  1. . IF '$D(^ORD(101,SDIEN,0)) D
  1. . . S SDBAD=1
  1. . . W !!?5,"Item #",SDITEM," on the 'SDAM APPOINTMENT EVENTS' protocol"
  1. . . W !?5,"is a dangling pointer and must be corrected/removed"
  1. . . W !?5,"before patch SD*5.3*132 can be installed."
  1. . . W !!,?5,"Please contact the Customer Support Help Desk for assistance."
  1. . . D PAUSE
  1. IF SDBAD S XPDQUIT=2
  1. EVTQ Q
  1. ;
  1. PKG ; -- check if needed patches are installed
  1. N SDLIST
  1. ;
  1. ; -- build patch list info
  1. D BUILD(.SDLIST)
  1. ;
  1. ; -- display patch info
  1. D DISPLAY(.SDLIST)
  1. ;
  1. ; -- have all patches passed check
  1. IF '$$OK(.SDLIST) D
  1. . S XPDQUIT=2
  1. . W !!," -> At least one patch check failed."
  1. ELSE D
  1. . W !!," -> All patch checks passed."
  1. D PAUSE
  1. Q
  1. ;
  1. LINE(OK,REASON) ; -- print line of text
  1. W !," -> ",SDPKG,"...",$S(OK:"Ok",1:"not Ok"),?30,"Reason: ",REASON
  1. Q
  1. ;
  1. BUILD(SDLIST) ; -- scan patch list and build array
  1. N SDI,SDX,SDPATCH,SDPKG,SDPKGN,SDOVER,SDREASON,SDTEXT,SDPKGV
  1. F SDI=1:1 S SDX=$P($T(PKGS+SDI),";;",2) Q:SDX="$$END$$" D
  1. . S SDPKGN=$P(SDX,U)
  1. . S SDPKG=$P(SDX,U,2)
  1. . S SDPATCH=$P(SDX,U,3)
  1. . S SDPKGV=$P(SDX,U,4)
  1. . S SDOVER=+$P($G(^XTMP("SD*5.3*132 OVERRIDE FLAGS",SDPKG)),U)
  1. . ;
  1. . S SDREASON=$$REASON(SDPATCH,SDPKG,SDPKGV,SDOVER)
  1. . S SDTEXT=$P($T(REASONS+SDREASON),";;",2)
  1. . ;
  1. . S SDLIST(SDPKG,"PACKAGE NAME")=SDPKGN
  1. . S SDLIST(SDPKG,"PATCH")=SDPATCH
  1. . S SDLIST(SDPKG,"NEEDED VERSION")=SDPKGV
  1. . S SDLIST(SDPKG,"PASSED")=+SDTEXT
  1. . S SDLIST(SDPKG,"REASON TEXT")=$P(SDTEXT,U,2)
  1. . S SDLIST(SDPKG,"REASON NUMBER")=SDREASON
  1. . S SDLIST(SDPKG,"OVERRIDE")=SDOVER
  1. Q
  1. ;
  1. REASON(SDPATCH,SDPKG,SDPKGV,SDOVER) ; check if patch is loaded or not needed
  1. N SDREASON,SDVERS
  1. IF SDOVER S SDREASON=1 G REASONQ
  1. S SDVERS=$$VERSION^XPDUTL(SDPKG)
  1. IF SDVERS="" S SDREASON=2 G REASONQ
  1. IF $$PATCH^XPDUTL(SDPATCH) S SDREASON=3 G REASONQ
  1. IF SDPKGV]"",SDVERS=SDPKGV S SDREASON=5 G REASONQ
  1. S SDREASON=4
  1. REASONQ Q SDREASON
  1. ;
  1. DISPLAY(SDLIST) ; -- display patch info
  1. N SDPKGN,SDLINE
  1. S $P(SDLINE,"-",IOM)="-"
  1. ;
  1. W @IOF,!,"Information On Patches Needed For SD*5.3*132 Install",!,SDLINE
  1. W !?33,"Patch or",?50,"Passed"
  1. W !,"Package",?33,"Version",?50,"Check",?58,"Reason",!,SDLINE
  1. S SDPKG=""
  1. F S SDPKG=$O(SDLIST(SDPKG)) Q:SDPKG="" D
  1. . W !,SDLIST(SDPKG,"PACKAGE NAME")
  1. . W ?33,SDLIST(SDPKG,"PATCH")
  1. . IF SDLIST(SDPKG,"NEEDED VERSION")]"" W " / ",SDLIST(SDPKG,"NEEDED VERSION")
  1. . W ?50,$S($G(SDLIST(SDPKG,"PASSED")):"Yes",1:"No")
  1. . W ?58,$E($G(SDLIST(SDPKG,"REASON TEXT")),1,25)
  1. W !,SDLINE
  1. Q
  1. ;
  1. OK(SDLIST) ; -- have all patch checks passed
  1. N SDPKGN,SDOK
  1. S SDOK=1
  1. S SDPKG=""
  1. F S SDPKG=$O(SDLIST(SDPKG)) Q:SDPKG="" D Q:'SDOK
  1. . S SDOK=+$G(SDLIST(SDPKG,"PASSED"))
  1. Q SDOK
  1. ;
  1. PKGS ; -- packages to check [ package name ^ package namespace ^ patch designation ^ package version ]
  1. ;;AUTOMATED MED INFO EXCHANGE^DVBA^DVBA*2.7*14^
  1. ;;ADVERSE REACTION TRACKING^GMRA^GMRA*4.0*9^
  1. ;;HOSPITAL BASED HOME CARE^HBH^HBH*1.0*10^
  1. ;;INTEGRATED BILLING^IB^IB*2.0*91^
  1. ;;AUTOMATED INFO COLLECTION SYS^IBD^IBD*3.0*17^
  1. ;;ICR - IMMUNOLOGY CASE REGISTRY^IMR^IMR*2.0*25^2.1
  1. ;;INCOME VERIFICATION MATCH^IVM^IVM*2.0*11^
  1. ;;RECORD TRACKING^RT^RT*2.0*30^
  1. ;;$$END$$
  1. ;;REGISTRATION^DG^DG*5.3*151^
  1. ;
  1. REASONS ; -- reason list [ 0:failed ; 1:passed ^ reason text ]
  1. ;;1^Override Flag Set
  1. ;;1^Package Not Installed
  1. ;;1^Patch Installed
  1. ;;0^Patch Not Installed
  1. ;;1^New Version Installed
  1. ;;$$END$$
  1. ;
  1. QIK(SDQIK) ; -- create quick list
  1. N SDI,SDX
  1. F SDI=1:1 S SDX=$P($T(PKGS+SDI),";;",2) Q:SDX="$$END$$" D
  1. . S SDQIK($P(SDX,U,2))=""
  1. Q
  1. ;
  1. VALID(SDPKG) ; -- was a valid namespace pasted
  1. N SDQIK,SDOK
  1. S SDOK=0
  1. D QIK(.SDQIK)
  1. IF $G(SDPKG)]"",$D(SDQIK(SDPKG)) S SDOK=1
  1. IF 'SDOK W "...invalid namespace passed!",!
  1. Q SDOK
  1. ;
  1. PAUSE ; -- pause for return
  1. N Y
  1. R !!,"Press return to continue: ",Y:$G(DTIME,300)
  1. Q
  1. ;
  1. ;
  1. ; <<<<<<<<<<<<<<< Entry points for Customer Service >>>>>>>>>>>>>>>
  1. ;
  1. SET(SDPKG) ; -- set override for package namespace
  1. Q:'$$VALID($G(SDPKG))
  1. IF '$D(^XTMP("SD*5.3*132 OVERRIDE FLAGS",0)) S ^XTMP("SD*5.3*132 OVERRIDE FLAGS",0)="2991231^"_DT_"^Patch SD*5.3*132 Package Override Flags"
  1. S ^XTMP("SD*5.3*132 OVERRIDE FLAGS",SDPKG)=1
  1. W " ...override set for '",SDPKG,"'",!
  1. Q
  1. ;
  1. KILL(SDPKG) ; -- kill override for package namespace
  1. Q:'$$VALID($G(SDPKG))
  1. K ^XTMP("SD*5.3*132 OVERRIDE FLAGS",SDPKG)
  1. IF $O(^XTMP("SD*5.3*132 OVERRIDE FLAGS",0))="" K ^XTMP("SD*5.3*132 OVERRIDE FLAGS")
  1. W " ...override killed for '",SDPKG,"'",!
  1. Q
  1. ;
  1. KILLALL ; -- kill overrides for all package namespaces
  1. K ^XTMP("SD*5.3*132 OVERRIDE FLAGS")
  1. W " ...killed",!
  1. Q
  1. ;