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

A1VSCP.m

Go to the documentation of this file.
  1. A1VSCP ;Albany FO/GTS - VistA Package Sizing Manager; 12-JUL-2016
  1. ;;1.0;VistA Package Sizing;;Oct 10, 2016;Build 25
  1. ;
  1. EN(XPID) ; -- main entry point for A1VS PKG EXT CRT PARAM
  1. ;INPUT: XPID - $JOB value of ^XTMP("A1SIZE") array
  1. ;
  1. D EN^VALM("A1VS PKG EXT CRT PARAM")
  1. Q
  1. ;
  1. HDR ; -- header code
  1. NEW XSYSTEM,XDATE,DIRHEAD,SPCPAD
  1. ;
  1. SET XDATE=$P(^XTMP("A1SIZE",XPID,0),"^")
  1. SET XSYSTEM=$P(^XTMP("A1SIZE",XPID,0),"^",2)
  1. SET XDATE=$$FMTE^XLFDT(XDATE,"1P")
  1. SET:XDATE']"" XDATE="undefined"
  1. SET:XSYSTEM']"" XSYSTEM="undefined"
  1. ;
  1. SET VALMHDR(1)=" VistA Package Size Analysis Manager - Package Parameters"
  1. SET VALMHDR(2)=" Version: "_$$VERNUM^A1VSLM()_" Build: "_$$BLDNUM^A1VSLM()
  1. SET DIRHEAD="System: "_XSYSTEM_" Extract PID:"_XPID_" Date: "_XDATE
  1. SET $P(SPCPAD," ",(80-$L(DIRHEAD))/2)=""
  1. SET VALMHDR(3)=SPCPAD_DIRHEAD
  1. Q
  1. ;
  1. INIT ; -- init variables and list array
  1. NEW PARMROOT
  1. SET VALMCNT=0
  1. SET PARMROOT="^TMP(""A1SIZE"","_$J_")" ;Result Param File array
  1. FOR SET PARMROOT=$QUERY(@PARMROOT) QUIT:PARMROOT="" Q:$QSUBSCRIPT(PARMROOT,2)="IDX" Q:$QSUBSCRIPT(PARMROOT,1)'="A1SIZE" DO
  1. . DO SPLITADD^A1VSLAPI(.VALMCNT,@PARMROOT,1)
  1. Q
  1. ;
  1. HELP ; -- help code
  1. S X="?" D DISP^XQORM1 W !!
  1. Q
  1. ;
  1. EXIT ; -- exit code
  1. Q
  1. ;
  1. EXPND ; -- expand code
  1. Q
  1. ;
  1. KILL ; -- Cleanup local and global arrays
  1. DO CLEAN^VALM10 ;Kill data and video control arrays
  1. DO KILL^VALM10() ;Kill Video attributes
  1. KILL ^TMP("A1VS PKG MAN NEW PARAM",$JOB)
  1. KILL DIR,X,Y,DTOUT,DIRUT,DUOUT
  1. QUIT
  1. ;
  1. ;Action PROTOCOL entry points
  1. REDISPRM ; -- Redisplay Paramters file
  1. ; -- Protocol: A1VS PKG EXT REDISP PARAM ACTION
  1. ;
  1. SET VALMHDR(1)=" VistA Package Size Analysis Manager - Package Parameters"
  1. SET VALMBG=1
  1. DO KILL
  1. DO INIT
  1. SET VALMBCK="R"
  1. QUIT
  1. ;
  1. REDISCRT ; -- Redisplay Parameter file corrections list
  1. ; -- Protocol: A1VS PKG EXT DISP CORRECTIONS ACTION
  1. ;
  1. SET VALMHDR(1)=" VistA Package Size Analysis Manager - Package Parameter Corrections"
  1. SET VALMBG=1
  1. DO KILL
  1. SET VALMCNT=0
  1. SET PARMROOT="^TMP(""A1VS-FILERPT"","_$J_")"
  1. FOR SET PARMROOT=$QUERY(@PARMROOT) QUIT:PARMROOT="" Q:$QSUBSCRIPT(PARMROOT,1)'="A1VS-FILERPT" DO
  1. . IF @PARMROOT["file number notes" DO ADD^A1VSLAPI(.VALMCNT," ")
  1. . DO ADD^A1VSLAPI(.VALMCNT,@PARMROOT)
  1. SET VALMBCK="R"
  1. QUIT
  1. ;
  1. WRPARMFL ; Write Parameter File to VistA Package Size Default Directory
  1. ; -- Protocol: A1VS PKG EXT PARAM WRT ACTION
  1. ;
  1. NEW POPERR,PKGROOT,SUB3,SUB4,EXTDIR,FILENME,NOWDT,INITIAL
  1. SET POPERR=0
  1. SET NOWDT=$$FMTE^XLFDT($$NOW^XLFDT,"2M")
  1. SET NOWDT=$TR(NOWDT,"/","-")
  1. SET NOWDT=$TR(NOWDT,"@","_")
  1. SET NOWDT=$TR(NOWDT,":","")
  1. SET INITIAL=$P($G(^VA(200,DUZ,0)),"^",2)
  1. IF INITIAL']"" SET INITIAL="<unk>"
  1. SET EXTDIR=$$GET^XPAR("SYS","A1VS PACKAGE MGR DEFAULT DIR",1,"I")
  1. SET FILENME="XTMPSIZE"_"_"_INITIAL_NOWDT_".DAT"
  1. DO JUSTPAWS^A1VSLAPI("Parameter file: "_FILENME_", will be created.")
  1. DO OPEN^%ZISH("XTMP",EXTDIR,FILENME,"A")
  1. SET:POP POPERR=POP
  1. QUIT:POPERR
  1. U IO
  1. SET PKGROOT="^TMP(""A1SIZE"","_$J_")"
  1. SET INSCTRT="^TMP(""A1SIZE"","_$J_")"
  1. FOR SET PKGROOT=$QUERY(@PKGROOT) QUIT:PKGROOT']"" Q:$QSUBSCRIPT(PKGROOT,1)'="A1SIZE" DO
  1. . SET SUB3=$QSUBSCRIPT(PKGROOT,3)
  1. . SET SUB4=$QSUBSCRIPT(PKGROOT,4)
  1. . IF $G(SUB4)'="",$G(SUB3)'="",$G(@INSCTRT@(SUB4,SUB3))'="" W !,@INSCTRT@(SUB4,SUB3)_"^*"
  1. . WRITE !,@PKGROOT
  1. D CLOSE^%ZISH("XTMP")
  1. SET VALMBCK="R"
  1. QUIT
  1. ;
  1. SNDNPFLE ;Send New Paremater file & report
  1. ; -- Protocol: A1VS PKG MGR NEW PARAM MAIL ACTION
  1. ;
  1. NEW A1INSTMM,A1INSTVA,A1TASKMM,A1TASKVA,A1TOMM,A1TOVA,XMERR,XMZ,A1LPCNT,A1TYPE,A1SVSUBJ,XQSND
  1. ;
  1. ;A1SVSUBJ - Subject of message generated
  1. ;XQSND - User's DUZ, Group Name, or S.server name
  1. SET XQSND=DUZ
  1. SET A1SVSUBJ="VistA Package Parameter File"
  1. ;
  1. DO FULL^VALM1
  1. ;
  1. S A1INSTMM("ADDR FLAGS")="R" ;Do not Restrict addressing
  1. S A1TYPE="S"
  1. K XMERR
  1. D TOWHOM^XMXAPIU(DUZ,,A1TYPE,.A1INSTMM)
  1. ;
  1. ;Check Network addresses and mail attachmt
  1. S A1INSTVA("ADDR FLAGS")="R" ;Do not Restrict addressing
  1. S A1INSTVA("FROM")="VISTA_PACKAGE_MANAGER_RPT"
  1. S A1SVSUBJ=$E(A1SVSUBJ,1,65)
  1. S A1LPCNT=""
  1. F S A1LPCNT=$O(^TMP("XMY",$J,A1LPCNT)) Q:A1LPCNT="" S A1TOVA(A1LPCNT)=""
  1. ;
  1. I +$G(XMERR)'>0 DO
  1. .W !," [Creating attachments..."
  1. .D OUTLKARY("^TMP(""A1SIZE"","_$J_")","^TMP($J,""A1NETMSG"")",A1SVSUBJ,1)
  1. .D SENDMSG^XMXAPI(XQSND,A1SVSUBJ,"^TMP($J,""A1NETMSG"")",.A1TOVA,.A1INSTVA,.A1TASKVA)
  1. ;
  1. K ^TMP("XMY",$J),^TMP("XMY0",$J),^TMP($J,"A1NETMSG")
  1. ;
  1. SET VALMBCK="R"
  1. QUIT
  1. ;
  1. OUTLKARY(A1PMARY,A1OTLK,A1SVSUBJ,A1RT) ;Create attachmts array
  1. ;INPUT:
  1. ; A1PMARY - Array containing Package Parameter File text
  1. ; A1OTLK - Array containing message text for network addresses
  1. ; A1SVSUBJ - Message subject
  1. ; A1RT - Real Time processing from UI
  1. ;
  1. N A1FILNAM,A1DTTM,A1CRLF,A1STR,A1NODE,A1OUTNOD,A1NODATA,A1CHAR,NOWDT,INITIAL,OTLKNDE,ERROOT
  1. S:+$G(A1RT)=0 A1RT=0
  1. S:+$G(A1RT) A1CHAR=0
  1. S A1STR=""
  1. S A1NODATA=0
  1. S A1CRLF=$C(13,10)
  1. S A1DTTM=$$NOW^XLFDT
  1. K @A1OTLK
  1. S @A1OTLK@(1)="Attachment Generated......: "_$$FMTE^XLFDT(A1DTTM)_A1CRLF
  1. S @A1OTLK@(2)=" "
  1. S @A1OTLK@(3)="Extract Requested......: "_A1SVSUBJ_A1CRLF
  1. S @A1OTLK@(4)=" "
  1. ;
  1. SET NOWDT=$$FMTE^XLFDT(A1DTTM,"2M")
  1. SET NOWDT=$TR(NOWDT,"/","-")
  1. SET NOWDT=$TR(NOWDT,"@","_")
  1. SET NOWDT=$TR(NOWDT,":","")
  1. SET INITIAL=$P($G(^VA(200,DUZ,0)),"^",2)
  1. IF INITIAL']"" SET INITIAL="<unk>"
  1. SET A1FILNAM="XTMPSIZE"_"_"_INITIAL_NOWDT_".DAT"
  1. ;
  1. S @A1OTLK@(5)="Attached Package Parameter file.....: "_A1FILNAM_A1CRLF
  1. S:($O(@A1PMARY@(0))="") A1NODATA=1
  1. S @A1OTLK@(6)=" "
  1. S:(A1NODATA=0) @A1OTLK@(7)=" "
  1. S:(A1NODATA=1) @A1OTLK@(7)="No Parameter List to file and attach!"
  1. SET OTLKNDE=7
  1. ;
  1. SET ERROOT="^TMP(""A1VS-FILERPT"","_$J_")"
  1. IF ($O(@ERROOT@(0))'="") DO
  1. . SET @A1OTLK@(9)="Report of creating Package File Number Corrections made when creating "_A1FILNAM_"."
  1. . SET @A1OTLK@(10)=" "
  1. . SET @A1OTLK@(11)="NOTE: Undefined File Number Ranges and *High/*Low File Numbers are reported."
  1. . SET @A1OTLK@(12)="File Number multiple entries not included in File Number Ranges multiple are"
  1. . SET @A1OTLK@(13)="added to the Package file parameter ranges and indicated in this report."
  1. . SET @A1OTLK@(14)="*High/*Low File Numbers are NOT added to File Number Parameter range. If only"
  1. . SET @A1OTLK@(15)="*High/*Low numbers are defined for a Package's files then that is reported."
  1. . SET @A1OTLK@(16)=" "
  1. . SET OTLKNDE=16
  1. SET:($O(@ERROOT@(0))="") @A1OTLK@(8)="No File corrections made in "_A1FILNAM_"!"
  1. FOR SET ERROOT=$QUERY(@ERROOT) QUIT:ERROOT="" Q:$QSUBSCRIPT(ERROOT,1)'="A1VS-FILERPT" Q:$QSUBSCRIPT(ERROOT,2)'=$J DO
  1. . SET OTLKNDE=OTLKNDE+1
  1. . IF @ERROOT["file number notes" SET @A1OTLK@(OTLKNDE)=" " SET OTLKNDE=OTLKNDE+1
  1. . SET @A1OTLK@(OTLKNDE)=@ERROOT
  1. ;
  1. ;Begin file output
  1. SET OTLKNDE=OTLKNDE+1
  1. S @A1OTLK@(OTLKNDE)=$$UUBEGFN^A1VSLAPI(A1FILNAM)
  1. S A1NODE=A1PMARY
  1. S A1OUTNOD=OTLKNDE
  1. ;;
  1. FOR SET A1NODE=$QUERY(@A1NODE) QUIT:(A1NODE="") Q:($QSUBSCRIPT(A1NODE,1)'="A1SIZE") Q:($QSUBSCRIPT(A1NODE,2)'=$J) DO
  1. . I +$G(A1RT) D:A1NODE#100=0 HANGCHAR^A1VSLAPI(.A1CHAR) ; Display progress character
  1. . S A1STR=A1STR_@A1NODE_A1CRLF
  1. . D ENCODE^A1VSLAPI(.A1STR,.A1OUTNOD,A1OTLK)
  1. ;
  1. F Q:$L(A1STR<45) D ENCODE^A1VSLAPI(.A1STR,.A1OUTNOD,A1OTLK)
  1. S:(A1STR'="") @A1OTLK@(A1OUTNOD+1)=$$UUEN^A1VSLAPI(A1STR)
  1. S @A1OTLK@(A1OUTNOD+2)=" "
  1. S @A1OTLK@(A1OUTNOD+3)="end"
  1. ;
  1. QUIT