Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Info |  Source |  Call Graph |  Caller Graph |  Entry Points |  External References |  Interaction Calls |  Global Variables Directly Accessed |  Label References |  Local Variables |  All
Print Page as PDF
Routine: LRUTIL

Package: Lab Service

Routine: LRUTIL


Information

LRUTIL ;DALOI/JDB -- Lab Utilities ;Aug 15, 2008

Source Information

Source file <LRUTIL.m>

Call Graph

Call Graph

Call Graph Total: 7

Package Total Call Graph
Kernel 4 (,HOME)^%ZIS  ^%ZTLOAD  $$GET^XUPARAM  OWNSKEY^XUSRB  
VA FileMan 2 CHK^DIE  ^DIR  
Lab Service 1 $$SELECT^LRUTIL1  

Caller Graph

Legends:

Legend of Colors

Package Component Superscript legend

protocol O screenman SM broker B event driver Ed print P extended action Ea limited protocol LP edit E server Se subscriber Su inquire I run routine RR action A

Caller Graph

Caller Graph Total: 19

Package Total Caller Graph
Lab Service 10 LR7OFAO  LRCAPFF  LRERT  LRERT1  LRMIPSZ1  LRSCTX1  LRSRVR8  LRUTIL2  
LRUTIL3  LRVR0  
Automated Lab Instruments 9 LA7SRPT1  LA7SRPT2  LA7SRPT4  LA7UTILA  LA7UTILB  LA7VLCM  LA7VLCM3  LA7VLCM7  
LA7VPFL  

Entry Points

Name Comments DBIA/ICR reference
TASK(ZTRTN,ZTDESC,ZTSAVE,QUIET,ZTDTH,ZTIO) ;
; Tasks the specified routine
; Returns the task # or 0
; ZTSAVE:<byref>
DELRTNS(RTNS,USELRDEL) ;
; Delete routines
; Useful for deleting routines via TaskMan
; For easier use with TaskMan, the LRDELRTN array can also be
; setup prior to calling with TaskMan to delete multiple routines.
; Inputs
; RTNS : <byref> The routine(s) to delete
; : RTNS="rtn" or RTNS("rtn")="" or RTNS(#)=rtn
; USELRDEL : 1=use LRDELRTN array 0=dont use
; : Setup array LRDELRTN(rtn) or LRDELRTN(#)=rtn
; : and then call.
; LRDELRTN : <symtbl><opt> Array of routines to delete
SELECT(DIC,OUT,FNAME,SELS,SORT,NOALL,MODE) ;
; convenience method
; Package replacement for FIRST^VAUTOMA
; Allows user to select multiple entries from a file.
ISQUIET() ;
; Is "Quiet" or not (Should we Write output?)
QUE(ZTRTN,ZTDESC,ZTSAVE,NOQUE,QUIET) ;
; Prompts for Device and allows queueing a routine
; Inputs
; ZTRTN :
; ZTDESC :
; ZTSAVE : <byref>
; NOQUE : 1=no queue 0=allow queue
; Outputs
; Returns -1 if POP=1, 0 if not queued, or the QUEUED task #
OWNSKEY(KEY,IEN) ;
RDELTSK(LRDELRTN,ZTDESC,ZTDTH) ;
; Delete routines via a tasked job it creates
; Inputs
; LRDELRTN: <byref> Array that holds the routines to delete
; ZTDESC: <opt> Description to use for tasked job
; ZTDTH: <opt> Date/Time (in $H) for job to run
; Outputs
; The task number
GETLOCK(ZZZZTARG,ZZZZSECS,ZZZZSHOW) ;
; Acquire a Lock on the specified resource.
; Note: "ZZZ*" variable names used to avoid possible variable
; name clashes with @TARG -- "^GBL(1,X)" N X then @TARG would
; change the intended resource for lock since X would be different.
; Inputs
; TARG : The Resource to Lock (ie "^GBL(1)")
; SECS : Total # of seconds to wait for the lock
; : (Minimum value is 5 seconds)
; : Negative value means one solid wait (no breaks)
; SHOW : >0:show progress, 0:dont show progress
; : 1:dots 2:countdown 3: timeleft+dots
; Output
; 1 if lock obtained, 0 if not.
; If SHOW>0 API outputs progress info
MORE(PROMPT,ERASE) ;
; Prompts user to hit ENTER to continue
; Returns 1 if user enters "^" else returns 0
NP(ABORT,PGDATA) ;
; Next Page Handler
; Generic display utility. Prints HDR and FTR when needed.
; Caller should check ABORT and terminate when 1.
; Caller needs to make initial call to their HDR code
; and to call their FTR code at end if needed.
; Note: Header code should place cursor on start
; of newline when done.
; Inputs
; ABORT : <byref> Equals 1 if user enters "^" at "MORE" prompt
; PGDATA : <byref> Page Data array
; : "PGNUM": current page number
; : "BM": Bottom Margin (# of lines in footer)
; : "HDR": Executable M code for header
; : "FTR": Executable M code for footer
; : "NOPROMPT": Dont show "more" prompt (0 or 1) <dflt=0>
; : "PROMPT": (string) Replacement for "More" prompt
; : "PROMPTX": Executable M code to run for "More" prompt
; : The M Code must set var X equal to the prompt to use.
; : "WFTR": the footer was written (=1)
; : "ERASE": Erase MORE prompt (1=Erase 0=Dont erase dflt=1)
; : "IOF": <opt>IOF control.
; : IOF=0: IOF not issued for non "C-" type devices.
; : IOF=1: IOF issued for "C-" type devices.
DATAOK(LRFILE,LRFLD,LRVAL) ;
; Checks if a value is appropriate for storing in the field
; Inputs
; LRFILE : File #
; LRFLD : Field #
; LRVAL : Value of the field

External References

Name Field # of Occurrence
^%ZIS QUE+20
HOME^%ZIS QUE+21, QUE+24
^%ZTLOAD TASK+6
CHK^DIE DATAOK+11
^DIR MORE+10
$$SELECT^LRUTIL1 SELECT+4
$$GET^XUPARAM DELRTNS+16
OWNSKEY^XUSRB OWNSKEY+11

Interaction Calls

Name Line Occurrences
Function Call: WRITE
  • Prompt: " ",ZZZTRIES-1*ZZZZZZTO
  • Condition for execution: ZZZZZZZI=1
  • Line Location: GETLOCK+30
Function Call: WRITE
  • Prompt: "."
  • Line Location: GETLOCK+30
Function Call: WRITE
  • Prompt: " ",(ZZZTRIES-ZZZZZZZI)*ZZZZZZTO
  • Line Location: GETLOCK+31
Function Call: WRITE
  • Prompt: "."
  • Line Location: GETLOCK+32
Function Call: WRITE
  • Prompt: !,"Request "_$S($G(ZTSK):"queued - Task #"_ZTSK,1:"NOT queued")
  • Line Location: TASK+7
Function Call: WRITE
  • Prompt: !
  • Line Location: NP+37
Function Call: WRITE
  • Prompt: @IOF
  • Line Location: NP+66
Function Call: WRITE
  • Prompt: @IOF
  • Line Location: NP+68
Function Call: WRITE
  • Prompt: $C(13)_$J("",$G(IOM,80))_$C(13)
  • Line Location: MORE+11
Routine Call
  • %ZIS
  • Line Location:
    • QUE+21
    • QUE+24
Routine Call
  • DIE
  • Line Location:
    • DATAOK+11
Routine Call
  • DIR
  • Line Location:
    • MORE+10
Routine Call
  • %ZIS
  • Line Location:
    • QUE+20

Global Variables Directly Accessed

Name Line Occurrences  (* Changed,  ! Killed)
^%ZOSF("DEL" DELRTNS+36
^%ZOSF("TEST" DELRTNS+34

Label References

Name Line Occurrences
$$ISQUIET GETLOCK+29, TASK+7
$$MORE NP+79, NP+81
$$TASK QUE+23, RDELTSK+14

Local Variables

Legend:

>> Not killed explicitly
* Changed
! Killed
~ Newed

Name Field # of Occurrence
% QUE+11~
%A QUE+11~
%A0 QUE+13~
%B QUE+11~
%B1 QUE+11~
%B2 QUE+11~
%B3 QUE+11~
%BA QUE+11~
%BU QUE+13~
%C QUE+11~
%D1 QUE+13~
%D2 QUE+13~
%DT QUE+13~
%E QUE+11~
%G QUE+11~
%H QUE+11~
%I QUE+11~
%J QUE+11~
%J1 QUE+13~
%K QUE+13~
%M QUE+13~
%N QUE+11~
%P QUE+11~
%S QUE+11~
%T QUE+11~
%W QUE+11~
%W0 QUE+13~
%X QUE+9~, QUE+11~
%Y QUE+9~, QUE+11~
%ZIS QUE+9~, QUE+18*, QUE+19*
A0 QUE+12~
ABORT NP~, NP+41*, NP+47, NP+71, NP+79*, NP+81*
BM NP+40~, NP+43*, NP+48*, NP+49
C QUE+12~
D QUE+12~
DA TASK+4~
DD QUE+12~
DDH QUE+12~
DDQ QUE+12~
DDSV QUE+12~
DEL DELRTNS+12~, DELRTNS+19*
DEL( DELRTNS+22*, DELRTNS+23*, DELRTNS+27*, DELRTNS+28*, DELRTNS+31
DG QUE+12~
DH QUE+12~
DIC SELECT~, SELECT+4, QUE+12~, TASK+4~
DIE TASK+4~
DIERR DATAOK+9~
DIFLD QUE+12~
>> DILOCKTM GETLOCK+21
>> DIQUIET ISQUIET+5
DIR TASK+4~, MORE+3~
DIR("A" MORE+9*
DIR(0 MORE+8*, MORE+9*
DIRO QUE+12~
DIRUT MORE+3~, MORE+12
DISYS QUE+13~
DIX QUE+13~
DIY QUE+13~
DO QUE+12~
DP QUE+12~
DQ QUE+12~
DTOUT MORE+3~
DU QUE+12~
DUOUT MORE+3~
DUZ OWNSKEY+10
DZ QUE+12~
ERASE NP+40~, NP+53*, NP+79, NP+81, MORE~, MORE+5*, MORE+11
FNAME SELECT~, SELECT+4
FTR NP+40~, NP+52*, NP+57, NP+61
HDR NP+40~, NP+51*, NP+87, NP+89
I DELRTNS+12~, DELRTNS+20*, DELRTNS+21*, DELRTNS+22, DELRTNS+23, DELRTNS+25*, DELRTNS+26*, DELRTNS+27, DELRTNS+28
IEN OWNSKEY~, OWNSKEY+10*, OWNSKEY+11
INFTR NP+40~, NP+54*, NP+57, NP+60*, NP+63*
INHDR NP+40~, NP+54*, NP+87, NP+88*, NP+90*
IO("Q" QUE+22, QUE+25!
IOF NP+65, NP+66, NP+68
IOM MORE+11
IOSL NP+49
IOST NP+66, NP+68, NP+71, MORE+7
KEY OWNSKEY~, OWNSKEY+10
LRDELRTN RDELTSK~, DELRTNS+26
LRDELRTN( DELRTNS+26, DELRTNS+27, DELRTNS+28
LRFILE DATAOK~, DATAOK+11
LRFLD DATAOK~, DATAOK+11
LRLIST OWNSKEY+9~, OWNSKEY+11
LRLIST(1 OWNSKEY+10*
LRMSG DATAOK+9~, DATAOK+13
LROUT DATAOK+9~, DATAOK+11, DATAOK+12
LROWNS OWNSKEY+9~, OWNSKEY+11
LROWNS(1 OWNSKEY+13
>> LRQUIET ISQUIET+4
LRVAL DATAOK~, DATAOK+11
MODE SELECT~, SELECT+4
NOALL SELECT~, SELECT+4
NOQUE QUE~, QUE+15*, QUE+19
OUT SELECT~, SELECT+4
PGDATA NP~
PGDATA("BM" NP+43
PGDATA("ERASE" NP+53
PGDATA("FTR" NP+52
PGDATA("HDR" NP+51
PGDATA("IOF" NP+66, NP+68
PGDATA("NOPROMPT" NP+72
PGDATA("NP" NP+45*, NP+55*
PGDATA("PGNUM" NP+42, NP+46*, NP+86*
PGDATA("PROMPT" NP+81
PGDATA("PROMPTX" NP+75, NP+77, NP+81
PGDATA("WFTR" NP+44*, NP+62*
PGNUM NP+40~, NP+42*, NP+46*, NP+85*, NP+86
POP QUE+9~, QUE+21
POSY NP+58~, NP+59*, NP+65
PROMPT MORE~, MORE+4*, MORE+9
QUE RDELTSK+8~, RDELTSK+14*, RDELTSK+15
QUEUED QUE+9~, QUE+17*, QUE+23*, QUE+26
QUIET QUE~, QUE+16*, QUE+23, TASK~, TASK+5*, TASK+7, ISQUIET+2~, ISQUIET+3*, ISQUIET+4*, ISQUIET+5*
, ISQUIET+6
RTN DELRTNS+12~, DELRTNS+30*, DELRTNS+31*, DELRTNS+32, DELRTNS+33
RTNS DELRTNS~, DELRTNS+13*, DELRTNS+19
RTNS( DELRTNS+21, DELRTNS+22, DELRTNS+23
SELS SELECT~, SELECT+4
SORT SELECT~, SELECT+4
STATUS DATAOK+9~, DATAOK+10*, DATAOK+12*, DATAOK+13*, DATAOK+14
USELRDEL DELRTNS~, DELRTNS+14*, DELRTNS+26
X QUE+9~, TASK+4~, DELRTNS+12~, DELRTNS+33*, NP+40~, NP+73*, NP+76!, NP+78*, NP+79, MORE+3~
X1 QUE+12~, TASK+4~
X2 TASK+4~
>> XPDNM DELRTNS+16
XQH QUE+13~
Y QUE+9~, MORE+3~
ZTDESC QUE~, QUE+23, TASK~, RDELTSK~, RDELTSK+9*, RDELTSK+10*, RDELTSK+14
ZTDTH TASK~, RDELTSK~, RDELTSK+14
ZTIO TASK~
>> ZTQUEUED DELRTNS+17, DELRTNS+37, NP+74, MORE+6
>> ZTREQ DELRTNS+17*, DELRTNS+37*
ZTRTN QUE~, QUE+23, TASK~
ZTSAVE QUE~, QUE+23, TASK~, RDELTSK+8~, RDELTSK+14
ZTSAVE("LRDELRTN" RDELTSK+11*
ZTSAVE("LRDELRTN(" RDELTSK+12*
ZTSAVE("XPD*" RDELTSK+13*
ZTSK TASK+4~, TASK+7, TASK+8
ZZZTRIES GETLOCK+16~, GETLOCK+24*, GETLOCK+25*, GETLOCK+27, GETLOCK+28, GETLOCK+30, GETLOCK+31
ZZZZLOCK GETLOCK+16~, GETLOCK+17*, GETLOCK+27*, GETLOCK+38*, GETLOCK+40
ZZZZSECS GETLOCK~, GETLOCK+19*, GETLOCK+23*, GETLOCK+24, GETLOCK+27, GETLOCK+34, GETLOCK+35*, GETLOCK+36*, GETLOCK+37
ZZZZSHOW GETLOCK~, GETLOCK+20*, GETLOCK+28, GETLOCK+30, GETLOCK+31, GETLOCK+32
ZZZZTARG GETLOCK~, GETLOCK+18*, GETLOCK+27, GETLOCK+37
ZZZZZZTO GETLOCK+16~, GETLOCK+21*, GETLOCK+22*, GETLOCK+24, GETLOCK+27, GETLOCK+30, GETLOCK+31, GETLOCK+36
ZZZZZZZI GETLOCK+16~, GETLOCK+27*, GETLOCK+30, GETLOCK+31
Info |  Source |  Call Graph |  Caller Graph |  Entry Points |  External References |  Interaction Calls |  Global Variables Directly Accessed |  Label References |  Local Variables |  All