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

A1VSLPER.m

Go to the documentation of this file.
  1. A1VSLPER ;Albany FO/GTS - VistA Package Sizing Manager; 7-JUL-2016
  1. ;;1.0;VistA Package Sizing;;Oct 10, 2016;Build 25
  1. EN ; -- main entry point for A1VS PKG MGR PARAM ERROR DISP
  1. D EN^VALM("A1VS PKG MGR PARAM ERROR DISP")
  1. Q
  1. ;
  1. HDR ; -- header code
  1. NEW DEFDIR,SPCPAD,DIRHEAD
  1. SET SPCPAD=""
  1. SET DEFDIR=$$GET^XPAR("SYS","A1VS PACKAGE MGR DEFAULT DIR",1,"I")
  1. SET VALMHDR(1)=" VistA Package Size Analysis Manager - Prefix/File Overlap"
  1. SET VALMHDR(2)=" Version: "_$$VERNUM^A1VSLM()_" Build: "_$$BLDNUM^A1VSLM()
  1. SET DIRHEAD="Default Directory: "_DEFDIR
  1. SET $P(SPCPAD," ",(80-$L(DIRHEAD))/2)=""
  1. SET VALMHDR(3)=SPCPAD_DIRHEAD
  1. SET SPCPAD=""
  1. SET DIRHEAD="Parameter file: "_A1VPSPRM
  1. SET $P(SPCPAD," ",(80-$L(DIRHEAD))/2)=""
  1. SET VALMHDR(4)=SPCPAD_DIRHEAD
  1. QUIT
  1. ;
  1. INIT ; -- init variables and list array
  1. DO KILL
  1. DO INCONSCK ; Check for package Prefix/File Range Overlaps
  1. ;
  1. NEW CMBLP
  1. SET CMBLP=""
  1. SET VALMCNT=0
  1. FOR SET CMBLP=$O(^TMP("A1VS-ERROR",$J,"COMB-PFX-FLRNG",CMBLP)) Q:CMBLP="" DO ADD^A1VSLAPI(.VALMCNT,^TMP("A1VS-ERROR",$J,"COMB-PFX-FLRNG",CMBLP))
  1. QUIT
  1. ;
  1. HELP ; -- help code
  1. S X="?" D DISP^XQORM1 W !!
  1. Q
  1. ;
  1. EXIT ; -- exit code
  1. DO KILL
  1. Q
  1. ;
  1. EXPND ; -- expand code
  1. Q
  1. ;
  1. KILL ; - Clean up local and global display arrays
  1. DO CLEAN^VALM10 ;Kill data and video control arrays
  1. DO KILL^VALM10() ;Kill Video attributes
  1. KILL ^TMP("A1VS PKG MGR PARAM ERROR DISP",$JOB),^TMP("A1VS-ERROR",$J)
  1. QUIT
  1. ;
  1. ;APIs
  1. INCONSCK ;Check for overlaps in Forum Package file data
  1. NEW TMPROOT,PKGNME,PREFIX,ADPFXIND,OLDPKG
  1. SET TMPROOT="^TMP(""A1VS-PKGEDIT"","_$J_")"
  1. SET OLDPKG=$QSUBSCRIPT($QUERY(@TMPROOT),3)
  1. SET ADPFXIND=0
  1. FOR SET TMPROOT=$QUERY(@TMPROOT) QUIT:TMPROOT="" Q:$QSUBSCRIPT(TMPROOT,1)'="A1VS-PKGEDIT" Q:$QSUBSCRIPT(TMPROOT,2)'=$JOB DO
  1. . SET PKGNME=$QSUBSCRIPT(TMPROOT,3)
  1. . SET PREFIX=$QSUBSCRIPT(TMPROOT,4)
  1. . ; Execute "If" code when a new package is encountered
  1. . IF (OLDPKG'=PKGNME) DO
  1. .. ;1st loop on pkg, check primary prefix
  1. .. IF ('ADPFXIND) DO CHKPFX(PKGNME,PREFIX,"^TMP(""A1VS-PKGEDIT"","_$J_","""_PKGNME_""","""_PREFIX_""")",PREFIX)
  1. .. SET ADPFXIND=0 ;Reset the Add Prefix list found indicator after the first pass on the latest package
  1. . SET OLDPKG=PKGNME
  1. . DO FLDDATLP(TMPROOT,PKGNME,PREFIX,.ADPFXIND) ; Loop fields and data to check Prefix and File ranges
  1. KILL ^TMP("A1VS-PKGRPT-PFX-IDX",$J),^TMP("A1VS-PKGRPT-FRNG-IDX",$J),^TMP("A1VS-PKGRPT-CMB-IDX",$J)
  1. QUIT
  1. ;
  1. FLDDATLP(TMPROOT,PKGNME,PREFIX,ADPFXIND) ;Check Fields and Data for 'ADDPFX' and 'FLERNG'
  1. ; Input: TMPROOT - Package "A1VS-PKGEDIT" array root [^TMP("A1VS-PKGEDIT",$J,PKGNME,PREFIX)]
  1. ; PKGNME - Package Name using Prefix
  1. ; PREFIX - Additional Prefix used by Package
  1. ; ADPFXIND - Indicates that prefix has been checked
  1. ;
  1. NEW FLDSUB,DATASUB
  1. SET FLDSUB=""
  1. FOR SET FLDSUB=$O(@TMPROOT@(FLDSUB)) Q:FLDSUB="" DO
  1. . SET DATASUB=""
  1. . FOR SET DATASUB=$O(@TMPROOT@(FLDSUB,DATASUB)) Q:DATASUB="" DO
  1. .. IF FLDSUB="ADDPFX" DO CHKPFX(PKGNME,DATASUB,TMPROOT,PREFIX) SET ADPFXIND=1
  1. .. IF FLDSUB="FLERNG" DO CHKFILE(PKGNME,DATASUB,TMPROOT,PREFIX)
  1. QUIT
  1. ;
  1. CHKPFX(PKGNME,PREFIX,TMPROOT,PKGPFX) ; Check Prefix for multiple use
  1. ; Input: PKGNME - Package Name using Prefix
  1. ; PREFIX - Additional Prefix used by Package
  1. ; TMPROOT - Package "A1VS-PKGEDIT" array root [^TMP("A1VS-PKGEDIT",J,PKGNME,PREFIX)]
  1. ; PKGPFX - Package Prefix
  1. ;
  1. ; Output: ^TMP("A1VS-ERROR",$J,"PREFIX") array
  1. ;
  1. NEW IDXROOT,PKGSUB,ERRARYCT,FILERPRT,ADDREMPX
  1. SET FILERPRT=0
  1. SET IDXROOT="^TMP(""A1VS-PFXIDX"","_$J_","""_PREFIX_""")" ;Use "PFXIDX" index
  1. SET ADDREMPX=@IDXROOT@(PKGNME)
  1. SET ERRARYCT=+$O(^TMP("A1VS-ERROR",$J,"PREFIX",""),-1)
  1. FOR SET IDXROOT=$QUERY(@IDXROOT) Q:IDXROOT="" Q:$QSUBSCRIPT(IDXROOT,1)'="A1VS-PFXIDX" Q:$QSUBSCRIPT(IDXROOT,3)'[PREFIX Q:$QSUBSCRIPT(IDXROOT,2)'=$JOB DO
  1. . SET PKGSUB=$QSUBSCRIPT(IDXROOT,4)
  1. . IF PKGSUB'=PKGNME DO
  1. .. NEW IDXRT3
  1. .. SET IDXRT3=$QSUBSCRIPT(IDXROOT,3)
  1. .. IF IDXRT3=PREFIX DO MLTPFX(TMPROOT,PKGSUB,PKGNME,IDXRT3,.ERRARYCT,.FILERPRT)
  1. .. IF (IDXRT3'=PREFIX),(ADDREMPX'[IDXRT3) DO MLTPFX(TMPROOT,PKGSUB,PKGNME,IDXRT3,.ERRARYCT,.FILERPRT)
  1. ;
  1. QUIT
  1. ;
  1. CHKFILE(PKGNME,FLERNG,TMPROOT,PKGPFX) ; Check File range for multiple use
  1. ; Input: PKGNME - Package Name using Prefix
  1. ; FILRNG - File Range used by Package Name
  1. ; TMPROOT - Package "A1VS-PKGEDIT" array root
  1. ; PKGPFX - Package Prefix
  1. ;
  1. ; Output: ^TMP("A1VS-ERROR",$J,"FILERNG") array
  1. ;
  1. NEW IDXROOT,STARTSUB,ENDSUB,PKGSUB,ERRARYCT,RNGBEG,RNGEND,PKGRPRT,RNGIND,PARENT,PREFIX,NODETXT,CMBARCT,NDTXTCMB
  1. SET PKGRPRT=0
  1. SET RNGBEG=$P(FLERNG,"-")
  1. SET RNGEND=$P(FLERNG,"-",2)
  1. SET ERRARYCT=+$O(^TMP("A1VS-ERROR",$J,"FILERNG",""),-1)
  1. SET IDXROOT="^TMP(""A1VS-FRIDX"","_$J_")" ;;Use "FRIDX" index
  1. FOR SET IDXROOT=$QUERY(@IDXROOT) Q:IDXROOT="" Q:$QSUBSCRIPT(IDXROOT,1)'="A1VS-FRIDX" Q:$QSUBSCRIPT(IDXROOT,2)'=$JOB DO
  1. . SET STARTSUB=$QSUBSCRIPT(IDXROOT,3)
  1. . SET ENDSUB=$QSUBSCRIPT(IDXROOT,4)
  1. . SET PKGSUB=$QSUBSCRIPT(IDXROOT,5)
  1. . IF PKGSUB'=PKGNME DO
  1. .. SET RNGIND=$$RNGCHK(RNGBEG,RNGEND,STARTSUB,ENDSUB)
  1. .. IF RNGIND DO
  1. ... SET ERRARYCT=ERRARYCT+1
  1. ... IF ERRARYCT=1 DO SETFLHDR("FILERNG",.ERRARYCT)
  1. ... ;
  1. ... SET CMBARCT=+$O(^TMP("A1VS-ERROR",$J,"COMB-PFX-FLRNG",""),-1)
  1. ... IF +CMBARCT=0 DO CMBARST(.CMBARCT)
  1. ... ;
  1. ... IF 'PKGRPRT DO NOPKGRT(PKGNME,PKGPFX,.ERRARYCT,.CMBARCT,.PKGRPRT) ;Output Package being reported
  1. ... SET PREFIX=$O(^TMP("A1VS-PKGEDIT",$J,PKGSUB,""))
  1. ... SET PARENT=^TMP("A1VS-PKGEDIT",$J,PKGSUB,PREFIX,"PARENT")
  1. ... SET NODETXT=" . "_PKGSUB_" ["_STARTSUB_"-"_ENDSUB_"]"_$S(PARENT]"":" (Parent: "_PARENT_")",1:"")
  1. ... SET NDTXTCMB=NODETXT
  1. ... IF ($L(NODETXT)>79),(NODETXT["(Parent") SET NODETXT=$$SPLITNDE(NODETXT,"FILERNG",.ERRARYCT)
  1. ... SET ^TMP("A1VS-ERROR",$J,"FILERNG",ERRARYCT)=NODETXT
  1. ... SET CMBARCT=CMBARCT+1
  1. ... IF ($L(NDTXTCMB)>79),(NDTXTCMB["(Parent") SET NODETXT=$$SPLITNDE(NDTXTCMB,"COMB-PFX-FLRNG",.CMBARCT)
  1. ... SET ^TMP("A1VS-ERROR",$J,"COMB-PFX-FLRNG",CMBARCT)=NODETXT
  1. QUIT
  1. ;
  1. MLTPFX(TMPROOT,PKGSUB,PKGNME,SUBPFX,ERRARYCT,FILERPRT) ; Report multiple use of prefix
  1. NEW PARENT,CMBARCT,NODETXT,CMBHDR
  1. SET (CMBHDR,PKGHDOUT)=0
  1. SET PARENT=""
  1. SET ERRARYCT=ERRARYCT+1
  1. IF ERRARYCT=1 DO
  1. . SET ^TMP("A1VS-ERROR",$J,"PREFIX",1)="The following Prefixes are multiply used by the indicated packages:"
  1. . SET ERRARYCT=2
  1. ;
  1. SET CMBARCT=+$O(^TMP("A1VS-ERROR",$J,"COMB-PFX-FLRNG",""),-1)
  1. IF +CMBARCT=0 DO CMBARST(.CMBARCT)
  1. ;
  1. SET PKGPFX=$O(^TMP("A1VS-PKGEDIT",$J,PKGSUB,""))
  1. ;
  1. ; IF not printed package header, print header
  1. IF 'FILERPRT DO
  1. . SET ^TMP("A1VS-ERROR",$J,"PREFIX",ERRARYCT)=" "
  1. . SET CMBARCT=CMBARCT+1
  1. . SET ^TMP("A1VS-ERROR",$J,"A1VS-PKGRPT-CMB-IDX",ERRARYCT)=" "
  1. . SET ERRARYCT=ERRARYCT+1
  1. . IF '$D(^TMP("A1VS-PKGRPT-PFX-IDX",$J,PKGNME)) DO PKGERHDR(TMPROOT,"^TMP(""A1VS-ERROR"","_$J_",""PREFIX"")",PKGNME,.ERRARYCT)
  1. . IF '$D(^TMP("A1VS-PKGRPT-CMB-IDX",$J,PKGNME)) DO
  1. .. SET CMBARCT=CMBARCT+1
  1. .. SET ^TMP("A1VS-ERROR",$J,"COMB-PFX-FLRNG",CMBARCT)=" "
  1. .. SET CMBARCT=CMBARCT+1
  1. .. DO PKGERHDR(TMPROOT,"^TMP(""A1VS-ERROR"","_$J_",""COMB-PFX-FLRNG"")",PKGNME,.CMBARCT)
  1. .. SET CMBHDR=1
  1. . ;
  1. . IF 'CMBHDR DO
  1. .. SET CMBARCT=CMBARCT+1
  1. .. SET ^TMP("A1VS-ERROR",$J,"COMB-PFX-FLRNG",CMBARCT)=" "
  1. . ;
  1. . SET NODETXT=" Prefix: "_PREFIX_" ; intersects the following packages..."
  1. . SET ^TMP("A1VS-ERROR",$J,"PREFIX",ERRARYCT)=NODETXT
  1. . SET ERRARYCT=ERRARYCT+1
  1. . SET CMBARCT=CMBARCT+1
  1. . SET ^TMP("A1VS-ERROR",$J,"COMB-PFX-FLRNG",CMBARCT)=NODETXT
  1. . SET FILERPRT=1
  1. SET PARENT=^TMP("A1VS-PKGEDIT",$J,PKGSUB,PKGPFX,"PARENT")
  1. ;
  1. SET NODETXT=" . "_PKGSUB_" ["_SUBPFX_"] "_$S(PARENT]"":" (Parent: "_PARENT_")",1:"")
  1. SET CMBARCT=CMBARCT+1
  1. IF ($L(NODETXT)>79),(NODETXT["(Parent") DO
  1. . NEW NDTXTCMB
  1. . SET NDTXTCMB=NODETXT
  1. . SET NODETXT=$$SPLITNDE(NODETXT,"PREFIX",.ERRARYCT)
  1. . SET NODETXT=$$SPLITNDE(NDTXTCMB,"COMB-PFX-FLRNG",.CMBARCT)
  1. SET ^TMP("A1VS-ERROR",$J,"PREFIX",ERRARYCT)=NODETXT
  1. SET ^TMP("A1VS-ERROR",$J,"COMB-PFX-FLRNG",CMBARCT)=NODETXT
  1. QUIT
  1. ;
  1. ;
  1. PKGERHDR(TMPROOT,ERRAYRT,PKGNME,ERRARYCT) ; Output Header info for PREFIX and FILE RANGE overlap arrays
  1. NEW PKGPFX
  1. SET:$QSUBSCRIPT(ERRAYRT,3)="PREFIX" ^TMP("A1VS-PKGRPT-PFX-IDX",$J,PKGNME)="" ;Temporary index of Prefix overlap packages reported
  1. SET:$QSUBSCRIPT(ERRAYRT,3)="FILERNG" ^TMP("A1VS-PKGRPT-FRNG-IDX",$J,PKGNME)="" ;Temporary index of File overlap packages reported
  1. SET:$QSUBSCRIPT(ERRAYRT,3)="COMB-PFX-FLRNG" ^TMP("A1VS-PKGRPT-CMB-IDX",$J,PKGNME)="" ;Temporary index of File overlap packages reported
  1. ;
  1. SET PKGPFX=$QSUBSCRIPT(TMPROOT,4)
  1. SET @ERRAYRT@(ERRARYCT)=" "
  1. SET ERRARYCT=ERRARYCT+1
  1. SET @ERRAYRT@(ERRARYCT)=" "_PKGNME_" [Primary Prefix: "_PKGPFX_"]"
  1. SET PARENT=@TMPROOT@("PARENT")
  1. SET ERRARYCT=ERRARYCT+1
  1. SET @ERRAYRT@(ERRARYCT)=" Parent: "_$S(PARENT]"":PARENT,1:"None indicated")
  1. SET ERRARYCT=ERRARYCT+1
  1. QUIT
  1. ;
  1. CMBARST(CMBARCT) ;Add Header to Combined Prefix and File Range overlap error array
  1. SET ^TMP("A1VS-ERROR",$J,"COMB-PFX-FLRNG",1)="The following Prefixes are multiply used by the indicated packages."
  1. SET CMBARCT=2
  1. DO SETFLHDR("COMB-PFX-FLRNG",.CMBARCT)
  1. QUIT
  1. ;
  1. SETFLHDR(NODETYPE,ERRARYCT) ;Set File Header
  1. SET ^TMP("A1VS-ERROR",$J,NODETYPE,ERRARYCT)="The Primary Package file ranges are used by the listed packages."
  1. SET ERRARYCT=ERRARYCT+1
  1. SET ^TMP("A1VS-ERROR",$J,NODETYPE,ERRARYCT)="NOTE: The Primary Package defines Ranges from the Forum LOW-HIGH RANGE'"
  1. SET ERRARYCT=ERRARYCT+1
  1. SET ^TMP("A1VS-ERROR",$J,NODETYPE,ERRARYCT)=" Multiple or included in the FILE multiple. *LOWEST & *HIGHEST FILE NUMBER"
  1. SET ERRARYCT=ERRARYCT+1
  1. SET ^TMP("A1VS-ERROR",$J,NODETYPE,ERRARYCT)=" data is included with LOW-HIGH Range and FILE multiple data in the list"
  1. SET ERRARYCT=ERRARYCT+1
  1. SET ^TMP("A1VS-ERROR",$J,NODETYPE,ERRARYCT)=" of packages overlapping LOW-HIGH Range and FILE multiple data."
  1. SET ERRARYCT=ERRARYCT+1
  1. QUIT
  1. ;
  1. SPLITNDE(TEXT,NODESUB,ERRARYCT) ;Split Error Node
  1. NEW PARNTPLC,TXTSLICE,NODETXT
  1. SET PARNTPLC=$FIND(TEXT,"(Parent")-7
  1. SET TXTSLICE=$E(TEXT,1,PARNTPLC-1)
  1. SET ^TMP("A1VS-ERROR",$J,NODESUB,ERRARYCT)=TXTSLICE
  1. SET ERRARYCT=ERRARYCT+1
  1. SET NODETXT=" "_$E(TEXT,PARNTPLC,$L(TEXT))
  1. QUIT NODETXT
  1. ;
  1. NOPKGRT(PKGNME,PKGPFX,ERRARYCT,CMBARCT,PKGRPRT) ;Report Package for File section
  1. NEW NODETXT,FLEHDR
  1. SET FLEHDR=0
  1. SET ^TMP("A1VS-ERROR",$J,"FILERNG",ERRARYCT)=" "
  1. SET ERRARYCT=ERRARYCT+1
  1. SET CMBARCT=CMBARCT+1
  1. IF ('$D(^TMP("A1VS-PKGRPT-FRNG-IDX",$J,PKGNME))) DO PKGERHDR(TMPROOT,"^TMP(""A1VS-ERROR"","_$J_",""FILERNG"")",PKGNME,.ERRARYCT)
  1. IF ('$D(^TMP("A1VS-PKGRPT-CMB-IDX",$J,PKGNME))) DO
  1. . SET ^TMP("A1VS-ERROR",$J,"COMB-PFX-FLRNG",CMBARCT)=" "
  1. . SET CMBARCT=CMBARCT+1
  1. . DO PKGERHDR(TMPROOT,"^TMP(""A1VS-ERROR"","_$J_",""COMB-PFX-FLRNG"")",PKGNME,.CMBARCT)
  1. . SET FLEHDR=1
  1. ;
  1. IF 'FLEHDR DO
  1. . SET ^TMP("A1VS-ERROR",$J,"COMB-PFX-FLRNG",CMBARCT)=" "
  1. . SET CMBARCT=CMBARCT+1
  1. ;
  1. SET NODETXT=" File range, "_FLERNG_", overlaps with the following packages..."
  1. SET ^TMP("A1VS-ERROR",$J,"FILERNG",ERRARYCT)=NODETXT
  1. SET ERRARYCT=ERRARYCT+1
  1. SET ^TMP("A1VS-ERROR",$J,"COMB-PFX-FLRNG",CMBARCT)=NODETXT
  1. SET CMBARCT=CMBARCT+1
  1. SET PKGRPRT=1
  1. QUIT
  1. ;
  1. ;TO DO: GTS - Code here as follows:
  1. ; Create ^TMP("A1VS-ERROR",$J,"COMBINE",<pkgnme>) array in the form:
  1. ; <pkgname> <prefix>
  1. ; Parent: <pkgname> or "none indicated"
  1. ; [If Prefix overlap exists]
  1. ; Prefix: <prefix> used by
  1. ; . <pkgname> (Parent: <pkgname>)
  1. ; . <pkgname> (Parent: <pkgname>)
  1. ; [If File Range overlap exists]
  1. ; File Range:
  1. ; . <pkgname> [has range {begin num - end num}]
  1. ; . <pkgname> [has range {begin num - end num}]
  1. ;
  1. ;
  1. RNGCHK(RNGBEG,RNGEND,STARTSUB,ENDSUB) ;Check Package file ranges against Range index
  1. ;Input:
  1. ; RNGBEG - Package File begin range to check
  1. ; RNGEND - Package File end range to check
  1. ; STARTSUB - Range Index - Start file Subscript
  1. ; ENDSUB - Range Index - End file Subscript
  1. ;
  1. ;Output:
  1. ; 1: Package file number OVERLAPS range
  1. ; 0: Package file number out of range
  1. ;
  1. NEW INRNG
  1. SET INRNG=0
  1. IF RNGBEG'<STARTSUB,RNGBEG'>ENDSUB SET INRNG=1
  1. IF RNGEND'<STARTSUB,RNGEND'>ENDSUB SET INRNG=1
  1. IF RNGBEG<STARTSUB,RNGEND>ENDSUB SET INRNG=1
  1. IF RNGBEG=STARTSUB,RNGEND=ENDSUB SET INRNG=1
  1. QUIT INRNG
  1. ;
  1. ;Action Protocol APIs
  1. DPFXERR ; Display prefix overlap list
  1. ; -- Protocol: A1VS PKG MGR PREFIX OVERLAP ACTION
  1. ;
  1. NEW LPITEM
  1. SET VALMHDR(1)=" VistA Package Size Analysis Manager - Prefix Overlap"
  1. KILL ^TMP("A1VS PKG MGR PARAM ERROR DISP",$JOB)
  1. SET VALMCNT=0
  1. NEW LPITEM
  1. SET LPITEM=""
  1. FOR SET LPITEM=$O(^TMP("A1VS-ERROR",$J,"PREFIX",LPITEM)) Q:LPITEM="" DO ADD^A1VSLAPI(.VALMCNT,^TMP("A1VS-ERROR",$J,"PREFIX",LPITEM))
  1. SET VALMBG=1
  1. SET VALMBCK="R"
  1. QUIT
  1. ;
  1. DRNGERR ; Display File range errors
  1. ; -- Protocol: A1VS PKG MGR FILE OVERLAP ACTION
  1. ;
  1. NEW LPITEM
  1. SET VALMHDR(1)=" VistA Package Size Analysis Manager - File Overlap"
  1. KILL ^TMP("A1VS PKG MGR PARAM ERROR DISP",$JOB)
  1. SET VALMCNT=0
  1. SET LPITEM=""
  1. FOR SET LPITEM=$O(^TMP("A1VS-ERROR",$J,"FILERNG",LPITEM)) Q:LPITEM="" DO ADD^A1VSLAPI(.VALMCNT,^TMP("A1VS-ERROR",$J,"FILERNG",LPITEM))
  1. SET VALMBG=1
  1. SET VALMBCK="R"
  1. QUIT
  1. ;
  1. CMBERR ; Redisplay Prefix/File Range overlaps
  1. ; -- Protocol: A1VS PKG MGR PARAM OVRLP REDISP ACTION
  1. ;
  1. NEW CMBLP ;NEW CODE
  1. ;
  1. SET VALMHDR(1)=" VistA Package Size Analysis Manager - Prefix/File Overlap"
  1. KILL ^TMP("A1VS PKG MGR PARAM ERROR DISP",$JOB)
  1. SET VALMCNT=0
  1. SET CMBLP=0
  1. FOR SET CMBLP=$O(^TMP("A1VS-ERROR",$J,"COMB-PFX-FLRNG",CMBLP)) Q:CMBLP="" DO ADD^A1VSLAPI(.VALMCNT,^TMP("A1VS-ERROR",$J,"COMB-PFX-FLRNG",CMBLP))
  1. SET VALMBG=1
  1. SET VALMBCK="R"
  1. QUIT
  1. ;
  1. ERPT ; Email ^TMP("A1VS PKG MGR PARAM ERROR DISP") displayed report
  1. ; -- Protocol: A1VS PKG MGR EMAIL OVRLAP RPT ACTION
  1. ;
  1. NEW A1INSTMM,A1TOMM,XMERR,XMZ,A1TYPE
  1. DO FULL^VALM1
  1. KILL XMERR
  1. SET A1INSTMM("ADDR FLAGS")="R" ;Do not Restrict addressing
  1. SET A1TYPE="S"
  1. DO TOWHOM^XMXAPIU(DUZ,,A1TYPE,.A1INSTMM)
  1. IF +$G(XMERR)'>0 DO
  1. . NEW XMY,XMTEXT,XMDUZ,XMSUB,A1LPCNT
  1. . SET A1LPCNT=""
  1. . FOR SET A1LPCNT=$O(^TMP("XMY",$J,A1LPCNT)) QUIT:A1LPCNT="" SET XMY(A1LPCNT)=""
  1. . SET XMDUZ=DUZ
  1. . SET XMSUB=$P(VALMHDR(4),":",2)_" ("_$P(VALMHDR(1)," - ",2)_")"
  1. . SET XMTEXT="^TMP(""A1VS PKG MGR PARAM ERROR DISP"","_$JOB_","
  1. . DO ^XMD
  1. . IF +XMZ>0 DO JUSTPAWS^A1VSLAPI($P(VALMHDR(1)," - ",2)_" E-Mailed. [MSG #:"_XMZ_"]")
  1. . IF +XMZ'>0 DO JUSTPAWS^A1VSLAPI("Error: ^TMP(""A1VS PKG MGR PARAM ERROR DISP"","_$JOB_") not E-Mailed! ["_XMZ_"]")
  1. ;
  1. SET VALMBCK="R"
  1. QUIT