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

INTENV.m

Go to the documentation of this file.
  1. INTENV ; bar ; 19 Jun 96 15:57; Menu driver for GIS environment mgmt system
  1. ;;3.01;BHL IHS Interfaces with GIS;;JUL 01, 2001
  1. ;COPYRIGHT 1991-2000 SAIC
  1. EN ;Main entry point
  1. D ENV^UTIL
  1. Q:'$G(DUZ)
  1. INITO ;Build option list
  1. K OPT
  1. F OCO=1:1 S OPT=$P($T(OPT+OCO),";;",2) Q:OPT="" S OPT(OCO)=OPT
  1. PAINT ;Paint screen
  1. W #,!!?15,"GIS Development Environment Management",!
  1. S OCO=0
  1. F COUNT=0:1 S OCO=$O(OPT(OCO)) Q:'OCO D
  1. . W !,?10,OCO,".",?15,$P(OPT(OCO),U),?50 W $S($L($P(OPT(OCO),U,2)):"("_$P(OPT(OCO),U,2,3)_")",1:"*INACTIVE*")
  1. W !!,?20,"Select Option NUMBER (1-",COUNT,"): "
  1. R SEL:$G(DTIME,300)
  1. VAL ;Validate option
  1. I SEL=""!($E(SEL)=U) Q
  1. I '$D(OPT(SEL)) W *7 G PAINT
  1. EX ;Execute option
  1. W #,!!,?(80-$L($P(OPT(SEL),U))-8\2),"*** ",$P(OPT(SEL),U,1)," ***",!!
  1. I '$L($P(OPT(SEL),U,2)) W *7 G INITO
  1. D @($P(OPT(SEL),U,2,3))
  1. W ! S X=$$CR^INHU1
  1. G INITO
  1. Q
  1. ;
  1. OPT ;List of options <- max name length
  1. ;;General daily clean up (Green)^GREEN^INTENV
  1. ;;Major clean up/MFN purge (Yellow)^YELLOW^INTENV
  1. ;;Clear all GIS dynamic files (Red)^RED^INTENV
  1. ;;Purge transactions by type^PTT^INTENV
  1. ;;Purge transactions by destination^PDT^INTENV
  1. ;;Purge and/or consolidate errors^PERR^INTENV
  1. ;;
  1. PTT ; purge trans by TT
  1. L +^INRHB("PURGE"):1 E W !!,"Purge already running.",! Q
  1. L -^INRHB("PURGE")
  1. N INPURGE,INTT
  1. S INPURGE=$$DATA Q:'$L(INPURGE)
  1. Q:$$TTYPE(.INTT) Q:'$$SURE(2)
  1. D TASK("PTTT^INTENV","Purge GIS by type","INPURGE,INTT(")
  1. Q
  1. PTTT ;
  1. L +^INRHB("PURGE"):5 E Q
  1. D TPURGE^INTENV1(INPURGE,.INTT)
  1. L -^INRHB("PURGE")
  1. Q
  1. ;
  1. PDT ; purge trans by dest
  1. L +^INRHB("PURGE"):1 E W !!,"Purge already running.",! Q
  1. L -^INRHB("PURGE")
  1. N INPURGE,INDEST
  1. S INPURGE=$$DATA Q:'$L(INPURGE)
  1. S INDEST=$$DEST Q:'INDEST
  1. Q:'$$SURE(2)
  1. D TASK("PDTT^INTENV","Purge GIS by dest","INPURGE,INDEST")
  1. Q
  1. PDTT ;
  1. L +^INRHB("PURGE"):5 E Q
  1. D TDPURGE^INTENV1(INPURGE,INDEST)
  1. L -^INRHB("PURGE")
  1. Q
  1. ;
  1. PERR ; purge errors
  1. L +^INRHB("PURGE"):1 E W !!,"Purge already running.",! Q
  1. L -^INRHB("PURGE")
  1. N INPURGE,INCON
  1. S INPURGE=$$DATA Q:'$L(INPURGE)
  1. S INCON=$$YN^UTSRD("Do you want to consolidate the remaining errors? ;0","^D ECONH^INTENV")
  1. Q:INCON["^"
  1. Q:'$$SURE(2)
  1. D TASK("PERRT^INTENV","Purge GIS Errors","INPURGE,INCON")
  1. Q
  1. ;
  1. PERRT ;
  1. L +^INRHB("PURGE"):5 E Q
  1. D EPURGE^INTENV1(INPURGE,INCON)
  1. L -^INRHB("PURGE")
  1. Q
  1. ;
  1. GREEN ; general daily clean up - GREEN purge
  1. L +^INRHB("PURGE"):1 E W !!,"Purge already running.",! Q
  1. L -^INRHB("PURGE")
  1. S INPURGE=$$SITE
  1. W !!,"This option will purge GIS transactions and errors."
  1. W !,"It will keep "_(INPURGE*24)_" hours worth of transactions and errors."
  1. W !,"All broken entries in the destination queue will be removed.",!
  1. Q:'$$SURE(1)
  1. S INPURGE=INPURGE_"D"
  1. D TASK("YELLOWT^INTENV","Purge GIS Trans & Err","INPURGE")
  1. Q
  1. ;
  1. GREENT ;
  1. L +^INRHB("PURGE"):5 E Q
  1. D TPURGE^INTENV1(INPURGE),EPURGE^INTENV1(INPURGE),DPURGE^INTENV1
  1. L -^INRHB("PURGE")
  1. Q
  1. ;
  1. YELLOW ; purge all by time
  1. L +^INRHB("PURGE"):1 E W !!,"Purge already running.",! Q
  1. L -^INRHB("PURGE")
  1. W !!,"This option will purge GIS transactions and errors."
  1. W !,"It will keep 72 hours worth of transactions, purge all MFN's,"
  1. W !,"keep 24 hours of errors and consolidate remaining errors.",!
  1. W !,"All broken entries in the destination queue will be removed.",!
  1. Q:'$$SURE(2)
  1. D TASK("YELLOWT^INTENV","Purge GIS Trans & Err")
  1. Q
  1. ;
  1. YELLOWT ;
  1. L +^INRHB("PURGE"):5 E Q
  1. D TPURGE^INTENV1("3D"),TPURGE^INTENV1("0D","*MASTER FILE*"),EPURGE^INTENV1("1D",1),DPURGE^INTENV1
  1. L -^INRHB("PURGE")
  1. Q
  1. ;
  1. RED ; stop GIS and clean out all dynamic globals
  1. W !!,"This will STOP all processes of the GIS and COMPLETELY"
  1. W !,"DELETE all transactions, errors, and CLEAR all queues.",!
  1. Q:'$$SURE(3)
  1. W !!,"Shutting down GIS..."
  1. D SHUT^INTENV1
  1. W "done.",!!,"Clearing all transactions, errors, and queues..."
  1. D CLEAN^INTENV1
  1. W "done.",!
  1. Q
  1. ;
  1. DATA() ; ask for amount of data
  1. N INX,INOUT S INOUT=0
  1. F R !,"Enter amount of data to keep: ",INX:$G(DTIME,300) D Q:INOUT
  1. . I '$L(INX)!(INX["^") S INOUT=1,INX="" Q
  1. . I $E("NONE",1,$L(INX))=INX S INX="0D",INOUT=1 Q
  1. . I INX?1.N1U,"DHM"[$E(INX,$L(INX)) S INOUT=1 Q
  1. . W:INX'["?" *7," ??"
  1. . W !," Enter a code for the length of time to keep data."
  1. . W !," format: nL where n = number and L is a letter"
  1. . W !," D = days, H = hours, M = minute"
  1. . W !," You may also enter NONE to not keep any data.",!
  1. Q INX
  1. ;
  1. TTYPE(INTTA) ; get transaction types to delete
  1. ; output: INTTA = array of TTs
  1. ;
  1. N C,INTT,INOUT
  1. F R !,"Enter Transaction Type(s) to delete: ",INTT:$G(DTIME,300) D Q:$D(INOUT)
  1. . I INTT="^L" D TTLIST(.INTTA) Q
  1. . I '$L(INTT) S INOUT=0,INTT="" Q
  1. . I INTT["^" S INOUT=1,INTT="" Q
  1. . I INTT["?" D Q
  1. .. W !," Transactions can be deleted based on the Tranasaction"
  1. .. W !," Types entered here. You can use wild cards ""*"" to select"
  1. .. W !," many types. If you enter nothing, all transactions"
  1. .. W !," within the purge date range will be deleted."
  1. .. W !," Enter ""^L"" to see what is selected so far."
  1. .. W !," Enter ""^"" to exit."
  1. . S C=$$TTCONV^INTENV1(INTT,.INTTA)
  1. . W " "_$TR(C,"-")_" "_$S($E(INTT)="-":"de",1:"")_"selected"
  1. S:$D(INTTA)<10 INOUT=1
  1. Q INOUT
  1. ;
  1. TTLIST(INTTA) ; list out selected TT
  1. ; input: INTTA = array of Tranaaction Types
  1. N I,Y,L,%
  1. S I=0,L=$G(IOSL,24)-4,%=""
  1. F Y=1:1 S I=$O(INTTA(I)) Q:'I S:Y>L Y=0,%=$$CR^UTSRD Q:% W !,INTTA(I)
  1. Q
  1. ;
  1. DEST() ; select destination
  1. N DIC,Y
  1. S DIC="^INRHD(",DIC(0)="AEMQZ",DIC("S")="I $D(^INLHDEST(Y))"
  1. D ^DIC S:Y<0 Y=0
  1. Q +Y
  1. ;
  1. SURE(INREP) ; are you sure question
  1. ; input: INREP = number of times to ask, max is three for now
  1. N I,P,X
  1. F I=1:1:INREP D W ! S X=$$YN^UTSRD(" "_P_$C(7)_" ;0") Q:'X
  1. . S P=$S(I=1:"Is this ok?",I=2:"Are you sure?",1:"This is going to delete a lot of data. Are you really sure?")
  1. W ! Q X
  1. ;
  1. ECONH ; help for consolidate question
  1. W !," If YES, the error log will retain the most recent of each type of"
  1. W !," error and delete the duplicates after the purge date."
  1. W !," IF NO, only errors before the purge date will be deleted."
  1. Q
  1. ;
  1. TASK(ZTRTN,ZTDESC,INSAVE) ; send routine to background
  1. ; input: ZTRTN = routine to run
  1. ; ZTDESC = Description of task
  1. N X,I
  1. S X=$$YN^UTSRD("Do you want to run this in the background? ;1")
  1. I X K ZTDTH S ZTIO="NL:" D D ^%ZTLOAD W !,"Queued to background. ("_$G(ZTSK)_")" Q
  1. . F I=1:1 S X=$P($G(INSAVE),",",I) Q:'$L(X) S ZTSAVE(X)=""
  1. D @ZTRTN
  1. Q
  1. ;
  1. SITE() ; return # of days from GIS site parms
  1. N X
  1. S X=$P($G(^INRHSITE(1,0)),U,11) S:'X X=3
  1. Q X
  1. ;