- A1VSLPC ;Albany FO/GTS - VistA Package Sizing Manager; 17-NOV-2016
- ;;1.0;VistA Package Sizing;;Oct 10, 2016;Build 25
- EN(CMPRFNME) ; -- main entry point for A1VS PKG MGR PARAM COMPARE
- ; Input: CMPRFNME - File to compare current XTMPSIZE.DAT file
- ;
- IF CMPRFNME'["XTMPSIZE" DO QUIT
- . DO JUSTPAWS^A1VSLAPI("Comparison XTMPSIZE.DAT file NOT selected!")
- ;
- D EN^VALM("A1VS PKG MGR PARAM COMPARE")
- Q
- ;
- HDR ; -- header code
- NEW DEFDIR,SPCPAD,DIRHEAD
- SET SPCPAD=""
- SET DEFDIR=$$GET^XPAR("SYS","A1VS PACKAGE MGR DEFAULT DIR",1,"I")
- SET VALMHDR(1)=" VistA Package Size Analysis Manager - Parameter Compare"
- SET VALMHDR(2)=" Version: "_$$VERNUM^A1VSLM()_" Build: "_$$BLDNUM^A1VSLM()
- SET DIRHEAD="Default Directory: "_DEFDIR
- SET $P(SPCPAD," ",(80-$L(DIRHEAD))/2)=""
- SET VALMHDR(3)=SPCPAD_DIRHEAD
- SET SPCPAD=""
- SET DIRHEAD="Current [New] file: "_A1VPSPRM
- SET $P(SPCPAD," ",(80-$L(DIRHEAD))/2)=""
- SET VALMHDR(4)=SPCPAD_DIRHEAD
- SET DIRHEAD="Comparison [Old] file: "_CMPRFNME
- SET $P(SPCPAD," ",(80-$L(DIRHEAD))/2)=""
- SET VALMHDR(5)=SPCPAD_DIRHEAD
- QUIT
- ;
- INIT ; - Build Current and Comparison XTMPSIZE parameter arrays
- NEW DEFDIR,NODENUM,NODECUR,CURNDNM,CPRNDNM,PKGRPTD,PKGDEL,DELSTATE
- DO KILL ;Kill all processing & data arrays and video attributes & control arrays
- SET DEFDIR=$$GET^XPAR("SYS","A1VS PACKAGE MGR DEFAULT DIR",1,"I")
- ;
- ;Build current XTMPSIZE parameter array
- DO OPEN^%ZISH("XTMP",DEFDIR,A1VPSPRM,"R")
- U IO
- SET NODENUM=0
- FOR S LINEITEM="" READ LINEITEM:5 Q:$$STATUS^%ZISH DO
- . IF LINEITEM]"" DO
- .. SET NODENUM=NODENUM+1
- .. SET ^TMP("A1VS CUR PARAM",$JOB,NODENUM)=LINEITEM ;Creates ^TMP("A1VS CUR PARAM",$JOB) array
- D CLOSE^%ZISH("XTMP")
- ;
- ;Build comparison XTMPSIZE parameter array
- DO OPEN^%ZISH("XTMP2",DEFDIR,CMPRFNME,"R")
- U IO
- SET NODENUM=0
- FOR S LINEITEM="" READ LINEITEM:5 Q:$$STATUS^%ZISH DO
- . IF LINEITEM]"" DO
- .. SET NODENUM=NODENUM+1
- .. SET ^TMP("A1VS CPR PARAM",$JOB,NODENUM)=LINEITEM ;Creates ^TMP("A1VS CPR PARAM",$JOB) array
- D CLOSE^%ZISH("XTMP2")
- ;
- ;Create ^TMP("A1VS PKG MAN PARM COMPARE",$JOB) comparison result array for ListMan display
- SET (PKGRPTD,VALMCNT)=0
- ;
- DO ADD^A1VSLAPI(.VALMCNT," ")
- DO ADD^A1VSLAPI(.VALMCNT,"CHANGED PACKAGES",1,1,16) ;Output Header for Changed Package list
- ;Loop through each "Current" (latest) Package Lineitem
- SET CURNDNM=0
- FOR SET CURNDNM=$O(^TMP("A1VS CUR PARAM",$JOB,CURNDNM)) QUIT:CURNDNM="" SET NODECUR=^TMP("A1VS CUR PARAM",$JOB,CURNDNM) DO
- . SET DELSTATE=0
- . IF NODECUR=$G(^TMP("A1VS CPR PARAM",$JOB,CURNDNM)) DO DELPKG(CURNDNM,CURNDNM) SET DELSTATE=1 ;;Remove unedited package from CPR & CUR globals
- . IF (NODECUR'=$G(^TMP("A1VS CPR PARAM",$JOB,CURNDNM))),('DELSTATE) DO ;;If Current Package '= same node on Compare Package lineitem
- .. SET (PKGDEL,CPRNDNM)=0
- .. FOR SET CPRNDNM=$O(^TMP("A1VS CPR PARAM",$JOB,CPRNDNM)) QUIT:CPRNDNM="" QUIT:PKGDEL DO COMPARE(CPRNDNM,NODECUR,.VALMCNT,.PKGDEL,.PKGRPTD)
- IF PKGRPTD=0 DO
- . DO ADD^A1VSLAPI(.VALMCNT," No edited packages!")
- ;
- DO ADDDELRP("CUR",.VALMCNT) ;Report packages added new to Current package extract
- DO ADDDELRP("CPR",.VALMCNT) ;Report packages deleted from Current package extract
- SET PKGRPTD=0
- ;
- QUIT
- ;
- COMPARE(CPRNDNM,NODECUR,VALMCNT,PKGDEL,PKGRPTD) ; Compare current & selected parameter files, report diff's and cleanup ^TMP globals
- NEW NODECPR,CURPKG,CPRPKG,FNDCHG,CPRPCS,CURPCS
- SET CURPKG=$P(NODECUR,"^")
- SET NODECPR=^TMP("A1VS CPR PARAM",$JOB,CPRNDNM)
- SET CPRPKG=$P(NODECPR,"^")
- ;
- ; Set CPRPCS and CURPCS to compare new Parameter file to Old Parameter file
- ; (pce 10 = * on old parameter files indicated circular Parent/Child relationship)
- SET CPRPCS=$L(NODECPR,"^")
- SET CURPCS=$L(NODECUR,"^")
- IF $P(NODECPR,"^",CPRPCS)="*" SET CPRPCS=CPRPCS-1
- IF $P(NODECUR,"^",CURPCS)="*" SET CURPCS=CURPCS-1
- ;
- IF ($P(NODECUR,"^",1,CURPCS)=$P(NODECPR,"^",1,CPRPCS)) DO DELPKG(CURNDNM,CPRNDNM) SET PKGDEL=1 ;Remove unedited Pkg from TMP globals, set PKGDEL to QUIT CPR loop
- IF ($P(NODECUR,"^",1,CURPCS)'=$P(NODECPR,"^",1,CPRPCS)),(CPRPKG=CURPKG) DO
- . SET FNDCHG=$$CHNGCHK(NODECUR,NODECPR,.VALMCNT) ;NOTE: FNDCHG not used
- . DO DELPKG(CURNDNM,CPRNDNM) ;Remove edited Pkg from globals
- . SET PKGRPTD=1 ;PKGRPTD prevents 'No edited packages' msg
- . SET PKGDEL=1 ; Quit CPR Node loop
- QUIT
- ;
- CHNGCHK(NODECUR,NODECPR,VALMCNT) ; Check latest extract (CUR) against a comparison extract (CPR)
- NEW FNDCHNG,PKGHDRPT,PKGNAME
- NEW CURPPFX,CPRPPFX,CURHF,CPRHF,CURLF,CPRLF,CURADPFX,CPRADPFX,CUREXPFX,CPREXPFX,CURFL,CPRFL,CURFRL,CPRFRL,CURPP,CPRPP
- ;Variable doc key:
- ; CPR* is compare file data
- ; CUR* is current file data
- ; *PPFX - Primary Prefix
- ; *HF - *Highest file number
- ; *LF - *Lowest file number
- ; *ADPFX - Additional Prefices
- ; *EXPFX - Excluded Prefices
- ; *FL - File List
- ; *FRL - File Range List
- ; *PP - Parent Package
- ;
- SET (FNDCHNG,PKGHDRPT)=0
- SET PKGNAME=$P(NODECUR,"^")
- SET STRVLMCT=VALMCNT
- ;
- ;Prefix
- SET CURPPFX=$P(NODECUR,"^",2)
- SET CPRPPFX=$P(NODECPR,"^",2)
- IF CURPPFX'=CPRPPFX DO
- .DO:'PKGHDRPT HDROUT(PKGNAME,.PKGHDRPT,.VALMCNT)
- .DO ADD^A1VSLAPI(.VALMCNT,"New Prefix: "_$S(CURPPFX]"":CURPPFX,1:"{none}")_" Old Prefix: "_$S(CPRPPFX]"":CPRPPFX,1:"{none}"))
- ;
- ;Low File
- SET CURLF=$P(NODECUR,"^",3)
- SET CPRLF=$P(NODECPR,"^",3)
- IF CURLF'=CPRLF DO
- .DO:'PKGHDRPT HDROUT(PKGNAME,.PKGHDRPT,.VALMCNT)
- .DO ADD^A1VSLAPI(.VALMCNT,"New Low File #: "_$S(CURLF]"":CURLF,1:"{none}")_" Old Low File #: "_$S(CPRLF]"":CPRLF,1:"{none}"))
- ;
- ;High File
- SET CURHF=$P(NODECUR,"^",4)
- SET CPRHF=$P(NODECPR,"^",4)
- IF CURHF'=CPRHF DO
- .DO:'PKGHDRPT HDROUT(PKGNAME,.PKGHDRPT,.VALMCNT)
- .DO ADD^A1VSLAPI(.VALMCNT,"New High File #: "_$S(CURHF]"":CURHF,1:"{none}")_" Old High File #: "_$S(CPRHF]"":CPRHF,1:"{none}"))
- ;
- ;Additional Prefixes
- SET CURADPFX=$P(NODECUR,"^",5)
- SET CPRADPFX=$P(NODECPR,"^",5)
- IF CURADPFX'=CPRADPFX DO
- .DO:'PKGHDRPT HDROUT(PKGNAME,.PKGHDRPT,.VALMCNT)
- .DO LISTDIF("Additional Prefixes",CURADPFX,CPRADPFX,.VALMCNT)
- ;
- ;Excluded Prefixes
- SET CUREXPFX=$P(NODECUR,"^",6)
- SET CPREXPFX=$P(NODECPR,"^",6)
- IF CUREXPFX'=CPREXPFX DO
- .DO:'PKGHDRPT HDROUT(PKGNAME,.PKGHDRPT,.VALMCNT)
- .DO LISTDIF("Excepted Prefixes",CUREXPFX,CPREXPFX,.VALMCNT)
- ;
- ;File List
- SET CURFL=$P(NODECUR,"^",7)
- SET CPRFL=$P(NODECPR,"^",7)
- IF CURFL'=CPRFL DO
- .DO:'PKGHDRPT HDROUT(PKGNAME,.PKGHDRPT,.VALMCNT)
- .DO LISTDIF("Files",CURFL,CPRFL,.VALMCNT)
- ;
- ;File Range List
- SET CURFRL=$P(NODECUR,"^",8)
- SET CPRFRL=$P(NODECPR,"^",8)
- IF CURFRL'=CPRFRL DO
- .DO:'PKGHDRPT HDROUT(PKGNAME,.PKGHDRPT,.VALMCNT)
- .DO LISTDIF("File Ranges",CURFRL,CPRFRL,.VALMCNT)
- ;
- ;Parent
- SET CURPP=$P(NODECUR,"^",9)
- SET CPRPP=$P(NODECPR,"^",9)
- IF CURPP'=CPRPP DO
- .DO:'PKGHDRPT HDROUT(PKGNAME,.PKGHDRPT,.VALMCNT)
- .DO ADD^A1VSLAPI(.VALMCNT,"Parent")
- .DO ADD^A1VSLAPI(.VALMCNT," New: "_$S(CURPP]"":CURPP,1:"{none}"))
- .DO ADD^A1VSLAPI(.VALMCNT," Old: "_$S(CPRPP]"":CPRPP,1:"{none}"))
- ;
- IF VALMCNT'=STRVLMCT SET FNDCHNG=1
- QUIT FNDCHNG
- ;
- ADDDELRP(EXTRCT,VALMCNT) ;Report packages Added/Deleted to/from current extract
- NEW HDRTXT,NODENM,NODEVAL,DATAELMT,PKGFND
- ;
- SET HDRTXT=$S(EXTRCT="CUR":"ADDED",1:"DELETED")_" PACKAGES:"
- DO ADD^A1VSLAPI(.VALMCNT," ")
- DO ADD^A1VSLAPI(.VALMCNT," ")
- DO ADD^A1VSLAPI(.VALMCNT,HDRTXT,1,1,$L(HDRTXT))
- ;
- SET PKGFND=0
- SET NODENM=""
- FOR SET NODENM=$O(^TMP("A1VS "_EXTRCT_" PARAM",$JOB,NODENM)) QUIT:NODENM="" SET NODEVAL=^TMP("A1VS "_EXTRCT_" PARAM",$JOB,NODENM) DO
- . SET PKGFND=1
- . DO HDROUT($P(NODEVAL,"^",1),.PKGHDRPT,.VALMCNT) ;Output package name
- . ;
- . SET DATAELMT=$P(NODEVAL,"^",2)
- . DO ADD^A1VSLAPI(.VALMCNT,"Prefix: "_$S(DATAELMT]"":DATAELMT,1:"{none}"))
- . ;
- . SET DATAELMT=$P(NODEVAL,"^",3)
- . DO ADD^A1VSLAPI(.VALMCNT,"Low File #: "_$S(DATAELMT]"":DATAELMT,1:"{none}"))
- . ;
- . SET DATAELMT=$P(NODEVAL,"^",4)
- . DO ADD^A1VSLAPI(.VALMCNT,"High File #: "_$S(DATAELMT]"":DATAELMT,1:"{none}"))
- . ;
- . DO ADD^A1VSLAPI(.VALMCNT,"Additional Prefixes: ")
- . SET DATAELMT=$P(NODEVAL,"^",5)
- . DO EVENSPLT(.VALMCNT,$S(DATAELMT]"":DATAELMT,1:"{none}"))
- . ;
- . DO ADD^A1VSLAPI(.VALMCNT,"Excepted Prefixes: ")
- . SET DATAELMT=$P(NODEVAL,"^",6)
- . DO EVENSPLT(.VALMCNT,$S(DATAELMT]"":DATAELMT,1:"{none}"))
- . ;
- . DO ADD^A1VSLAPI(.VALMCNT,"File List: ")
- . SET DATAELMT=$P(NODEVAL,"^",7)
- . DO EVENSPLT(.VALMCNT,$S(DATAELMT]"":DATAELMT,1:"{none}"))
- . ;
- . DO ADD^A1VSLAPI(.VALMCNT,"File Range list: ")
- . SET DATAELMT=$P(NODEVAL,"^",8)
- . DO EVENSPLT(.VALMCNT,$S(DATAELMT]"":DATAELMT,1:"{none}"))
- . ;
- . SET DATAELMT=$P(NODEVAL,"^",9)
- . DO ADD^A1VSLAPI(.VALMCNT,"Parent: "_$S(DATAELMT]"":DATAELMT,1:"{none}"))
- ;
- DO:'PKGFND ADD^A1VSLAPI(.VALMCNT," No "_$S(EXTRCT="CUR":"added",EXTRCT="CPR":"deleted",1:"")_" packages!")
- QUIT
- ;
- HELP ; -- help code
- SET X="?" D DISP^XQORM1
- ;SET VALMBCK="R"
- Q
- ;
- EXIT ; -- exit code
- DO KILL
- Q
- ;
- EXPND ; -- expand code
- Q
- ;
- REFRESH ; -- refresh display
- DO INIT
- SET VALMBCK="R"
- QUIT
- ;
- MSG(TEXT) ; -- set default message
- ;SET VALMSG=TEXT
- QUIT
- ;
- KILL ; - Cleanup local and global display arrays
- DO CLEAN^VALM10 ;Kill data and video control arrays
- DO KILL^VALM10() ;Kill Video attributes
- DO CLNTMPGB
- KILL ^TMP("A1VS PKG MAN PARM COMPARE",$JOB)
- KILL DIR,X,Y,DTOUT,DIRUT,DUOUT
- QUIT
- ;
- CLNTMPGB ;Kill temporary globals
- KILL ^TMP("A1VS CUR PARAM",$JOB),^TMP("A1VS CPR PARAM",$JOB)
- QUIT
- ;
- HDROUT(PKGNAME,PKGHDRPT,VALMCNT) ; Output package header
- SET PKGHDRPT=1
- DO ADD^A1VSLAPI(.VALMCNT," ")
- DO ADD^A1VSLAPI(.VALMCNT,"Package: "_PKGNAME,1,10,$L(PKGNAME)) ;ADD^A1VSLAPI parameters: VALMCNT,MSG,LRBOLD,STRTBLD,ENDBLD
- QUIT
- ;
- LISTDIF(ELMTNME,CURDAT,CPRDAT,VALMCNT) ; Output differences in parameter lists
- NEW PCENUM,DATAELMT
- DO ADD^A1VSLAPI(.VALMCNT," "_ELMTNME)
- ;
- IF (CURDAT]""),(CPRDAT']"") DO
- . DO EVENSPLT(.VALMCNT,"Added entire list in New file: ",1)
- . DO EVENSPLT(.VALMCNT,CURDAT)
- IF (CURDAT']""),(CPRDAT]"") DO
- . DO EVENSPLT(.VALMCNT,"Deleted entire list in New file: ",1)
- . DO EVENSPLT(.VALMCNT,CPRDAT)
- ;
- IF (CURDAT]""),(CPRDAT]"") DO ;List changes as lineitems
- . DO EVENSPLT(.VALMCNT,"Old List: "_$S(CPRDAT]"":CPRDAT,1:"{none}"),1)
- . ;
- . ;Check for deletions
- . FOR PCENUM=1:1 SET DATAELMT=$P(CPRDAT,"|",PCENUM) Q:DATAELMT="" DO
- .. IF CURDAT'[DATAELMT_"|" DO EVENSPLT(.VALMCNT,DATAELMT_" ...deleted in New file")
- . IF PCENUM=1 DO ADD^A1VSLAPI(.VALMCNT," {none} ...deleted in New file")
- . ;
- . ;Check for additions
- . FOR PCENUM=1:1 SET DATAELMT=$P(CURDAT,"|",PCENUM) Q:DATAELMT="" DO
- .. IF CPRDAT'[DATAELMT_"|" DO EVENSPLT(.VALMCNT,DATAELMT_" ...added in New file")
- . IF PCENUM=1 DO ADD^A1VSLAPI(.VALMCNT," {none} ...added in New file")
- . ;
- . DO EVENSPLT(.VALMCNT,"New List: "_$s(CURDAT]"":CURDAT,1:"{none}"),1)
- ;
- QUIT
- ;
- EVENSPLT(VALMCNT,MSG,DTANODE) ; Add line to build display split on piece
- ; VALMCNT - Current array node number
- ; MSG - Message to add to ListMan Display
- ; DTANODE - Indicates raw data node or data element changed
- ; 1 : Raw data node
- ; 0 : data element changed
- ;
- NEW PCENUM,MSGPCE,LINEOUT,START
- SET DTANODE=+$G(DTANODE)
- SET LINEOUT=""
- SET START=1
- ;
- FOR PCENUM=1:1 SET MSGPCE=$P(MSG,"|",PCENUM) SET LINEOUT=LINEOUT_MSGPCE_$$DELIMEND(MSGPCE) QUIT:MSGPCE="" DO
- . IF ($L(LINEOUT)>$S(DTANODE:75,1:73))!(LINEOUT["...") DO ;$Select DTANODE determines if leading spaces are added to LINEOUT
- .. IF $L(LINEOUT)>$S(DTANODE:75,1:73) DO
- ... SET PCENUM=PCENUM-1
- ... SET LINEOUT=$P(MSG,"|",START,PCENUM)
- .. DO ADD^A1VSLAPI(.VALMCNT," "_$S('DTANODE:" ",1:"")_LINEOUT)
- .. SET LINEOUT=""
- .. SET START=PCENUM+1
- DO:LINEOUT]"" ADD^A1VSLAPI(.VALMCNT," "_$S('DTANODE:" ",1:"")_LINEOUT)
- ;
- QUIT
- ;
- DELIMEND(MSGPCE) ; Return ending delimiter for LINEOUT in EVENSPLT^A1VSLPC
- NEW RESULT
- SET RESULT=$S((MSGPCE'["...")&(MSGPCE'="")&(MSGPCE'["{none}")&(MSGPCE'["file:"):"|",1:"")
- QUIT RESULT
- ;
- DELPKG(CURNDNM,CPRNDNM) ; Delete Package from Current and Compare parameter files
- KILL ^TMP("A1VS CUR PARAM",$JOB,CURNDNM),^TMP("A1VS CPR PARAM",$JOB,CPRNDNM)
- QUIT
- ;
- ;PROTOCOL entry points
- ;
- MAILRPT ; Email ^TMP("A1VS PKG MGR PARAM ERROR DISP") comparison report
- ; -- Protocol: A1VS PKG MGR PARAM COMPR MAIL ACTION
- NEW A1INSTMM,A1TOMM,XMERR,XMZ,A1TYPE,SUBSCPT
- DO FULL^VALM1
- KILL XMERR
- SET A1INSTMM("ADDR FLAGS")="R" ;Do not Restrict addressing
- SET A1TYPE="S"
- DO TOWHOM^XMXAPIU(DUZ,,A1TYPE,.A1INSTMM)
- IF +$G(XMERR)'>0 DO
- . NEW XMY,XMTEXT,XMDUZ,XMSUB,A1LPCNT
- . SET A1LPCNT=""
- . FOR SET A1LPCNT=$O(^TMP("XMY",$J,A1LPCNT)) QUIT:A1LPCNT="" SET XMY(A1LPCNT)=""
- . SET XMDUZ=DUZ
- . SET XMSUB=$P(VALMHDR(4),":",2)_" ("_$P(VALMHDR(1)," - ",2)_")"
- . ;SET XMTEXT="^TMP(""A1VS PKG MAN PARM COMPARE"","_$JOB_","
- . SET ^TMP("A1VS PKG MAN CMPR MSG",$JOB,1)="Parameter Files comparison: "_$P(VALMHDR(4),":",2)_" [New] vs "_$P(VALMHDR(5),":",2)_" [Old]"
- . SET SUBSCPT=0
- . FOR SET SUBSCPT=$O(^TMP("A1VS PKG MAN PARM COMPARE",$JOB,SUBSCPT)) QUIT:+SUBSCPT=0 DO
- .. SET ^TMP("A1VS PKG MAN CMPR MSG",$JOB,SUBSCPT+1)=^TMP("A1VS PKG MAN PARM COMPARE",$JOB,SUBSCPT,0)
- . SET XMTEXT="^TMP(""A1VS PKG MAN CMPR MSG"","_$JOB_","
- . DO ^XMD
- . IF +XMZ>0 DO JUSTPAWS^A1VSLAPI($P(VALMHDR(1)," - ",2)_" E-Mailed. [MSG #:"_XMZ_"]")
- . IF +XMZ'>0 DO JUSTPAWS^A1VSLAPI("Error: "_$P(VALMHDR(1)," - ",2)_" not E-Mailed! ["_XMZ_"]")
- . KILL ^TMP("A1VS PKG MAN CMPR MSG",$JOB)
- ;
- SET VALMBCK="R"
- QUIT
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HA1VSLPC 13701 printed Feb 18, 2025@23:05:08 Page 2
- A1VSLPC ;Albany FO/GTS - VistA Package Sizing Manager; 17-NOV-2016
- +1 ;;1.0;VistA Package Sizing;;Oct 10, 2016;Build 25
- EN(CMPRFNME) ; -- main entry point for A1VS PKG MGR PARAM COMPARE
- +1 ; Input: CMPRFNME - File to compare current XTMPSIZE.DAT file
- +2 ;
- +3 IF CMPRFNME'["XTMPSIZE"
- Begin DoDot:1
- +4 DO JUSTPAWS^A1VSLAPI("Comparison XTMPSIZE.DAT file NOT selected!")
- End DoDot:1
- QUIT
- +5 ;
- +6 DO EN^VALM("A1VS PKG MGR PARAM COMPARE")
- +7 QUIT
- +8 ;
- HDR ; -- header code
- +1 NEW DEFDIR,SPCPAD,DIRHEAD
- +2 SET SPCPAD=""
- +3 SET DEFDIR=$$GET^XPAR("SYS","A1VS PACKAGE MGR DEFAULT DIR",1,"I")
- +4 SET VALMHDR(1)=" VistA Package Size Analysis Manager - Parameter Compare"
- +5 SET VALMHDR(2)=" Version: "_$$VERNUM^A1VSLM()_" Build: "_$$BLDNUM^A1VSLM()
- +6 SET DIRHEAD="Default Directory: "_DEFDIR
- +7 SET $PIECE(SPCPAD," ",(80-$LENGTH(DIRHEAD))/2)=""
- +8 SET VALMHDR(3)=SPCPAD_DIRHEAD
- +9 SET SPCPAD=""
- +10 SET DIRHEAD="Current [New] file: "_A1VPSPRM
- +11 SET $PIECE(SPCPAD," ",(80-$LENGTH(DIRHEAD))/2)=""
- +12 SET VALMHDR(4)=SPCPAD_DIRHEAD
- +13 SET DIRHEAD="Comparison [Old] file: "_CMPRFNME
- +14 SET $PIECE(SPCPAD," ",(80-$LENGTH(DIRHEAD))/2)=""
- +15 SET VALMHDR(5)=SPCPAD_DIRHEAD
- +16 QUIT
- +17 ;
- INIT ; - Build Current and Comparison XTMPSIZE parameter arrays
- +1 NEW DEFDIR,NODENUM,NODECUR,CURNDNM,CPRNDNM,PKGRPTD,PKGDEL,DELSTATE
- +2 ;Kill all processing & data arrays and video attributes & control arrays
- DO KILL
- +3 SET DEFDIR=$$GET^XPAR("SYS","A1VS PACKAGE MGR DEFAULT DIR",1,"I")
- +4 ;
- +5 ;Build current XTMPSIZE parameter array
- +6 DO OPEN^%ZISH("XTMP",DEFDIR,A1VPSPRM,"R")
- +7 USE IO
- +8 SET NODENUM=0
- +9 FOR
- SET LINEITEM=""
- READ LINEITEM:5
- if $$STATUS^%ZISH
- QUIT
- Begin DoDot:1
- +10 IF LINEITEM]""
- Begin DoDot:2
- +11 SET NODENUM=NODENUM+1
- +12 ;Creates ^TMP("A1VS CUR PARAM",$JOB) array
- SET ^TMP("A1VS CUR PARAM",$JOB,NODENUM)=LINEITEM
- End DoDot:2
- End DoDot:1
- +13 DO CLOSE^%ZISH("XTMP")
- +14 ;
- +15 ;Build comparison XTMPSIZE parameter array
- +16 DO OPEN^%ZISH("XTMP2",DEFDIR,CMPRFNME,"R")
- +17 USE IO
- +18 SET NODENUM=0
- +19 FOR
- SET LINEITEM=""
- READ LINEITEM:5
- if $$STATUS^%ZISH
- QUIT
- Begin DoDot:1
- +20 IF LINEITEM]""
- Begin DoDot:2
- +21 SET NODENUM=NODENUM+1
- +22 ;Creates ^TMP("A1VS CPR PARAM",$JOB) array
- SET ^TMP("A1VS CPR PARAM",$JOB,NODENUM)=LINEITEM
- End DoDot:2
- End DoDot:1
- +23 DO CLOSE^%ZISH("XTMP2")
- +24 ;
- +25 ;Create ^TMP("A1VS PKG MAN PARM COMPARE",$JOB) comparison result array for ListMan display
- +26 SET (PKGRPTD,VALMCNT)=0
- +27 ;
- +28 DO ADD^A1VSLAPI(.VALMCNT," ")
- +29 ;Output Header for Changed Package list
- DO ADD^A1VSLAPI(.VALMCNT,"CHANGED PACKAGES",1,1,16)
- +30 ;Loop through each "Current" (latest) Package Lineitem
- +31 SET CURNDNM=0
- +32 FOR
- SET CURNDNM=$ORDER(^TMP("A1VS CUR PARAM",$JOB,CURNDNM))
- if CURNDNM=""
- QUIT
- SET NODECUR=^TMP("A1VS CUR PARAM",$JOB,CURNDNM)
- Begin DoDot:1
- +33 SET DELSTATE=0
- +34 ;;Remove unedited package from CPR & CUR globals
- IF NODECUR=$GET(^TMP("A1VS CPR PARAM",$JOB,CURNDNM))
- DO DELPKG(CURNDNM,CURNDNM)
- SET DELSTATE=1
- +35 ;;If Current Package '= same node on Compare Package lineitem
- IF (NODECUR'=$GET(^TMP("A1VS CPR PARAM",$JOB,CURNDNM)))
- IF ('DELSTATE)
- Begin DoDot:2
- +36 SET (PKGDEL,CPRNDNM)=0
- +37 FOR
- SET CPRNDNM=$ORDER(^TMP("A1VS CPR PARAM",$JOB,CPRNDNM))
- if CPRNDNM=""
- QUIT
- if PKGDEL
- QUIT
- DO COMPARE(CPRNDNM,NODECUR,.VALMCNT,.PKGDEL,.PKGRPTD)
- End DoDot:2
- End DoDot:1
- +38 IF PKGRPTD=0
- Begin DoDot:1
- +39 DO ADD^A1VSLAPI(.VALMCNT," No edited packages!")
- End DoDot:1
- +40 ;
- +41 ;Report packages added new to Current package extract
- DO ADDDELRP("CUR",.VALMCNT)
- +42 ;Report packages deleted from Current package extract
- DO ADDDELRP("CPR",.VALMCNT)
- +43 SET PKGRPTD=0
- +44 ;
- +45 QUIT
- +46 ;
- COMPARE(CPRNDNM,NODECUR,VALMCNT,PKGDEL,PKGRPTD) ; Compare current & selected parameter files, report diff's and cleanup ^TMP globals
- +1 NEW NODECPR,CURPKG,CPRPKG,FNDCHG,CPRPCS,CURPCS
- +2 SET CURPKG=$PIECE(NODECUR,"^")
- +3 SET NODECPR=^TMP("A1VS CPR PARAM",$JOB,CPRNDNM)
- +4 SET CPRPKG=$PIECE(NODECPR,"^")
- +5 ;
- +6 ; Set CPRPCS and CURPCS to compare new Parameter file to Old Parameter file
- +7 ; (pce 10 = * on old parameter files indicated circular Parent/Child relationship)
- +8 SET CPRPCS=$LENGTH(NODECPR,"^")
- +9 SET CURPCS=$LENGTH(NODECUR,"^")
- +10 IF $PIECE(NODECPR,"^",CPRPCS)="*"
- SET CPRPCS=CPRPCS-1
- +11 IF $PIECE(NODECUR,"^",CURPCS)="*"
- SET CURPCS=CURPCS-1
- +12 ;
- +13 ;Remove unedited Pkg from TMP globals, set PKGDEL to QUIT CPR loop
- IF ($PIECE(NODECUR,"^",1,CURPCS)=$PIECE(NODECPR,"^",1,CPRPCS))
- DO DELPKG(CURNDNM,CPRNDNM)
- SET PKGDEL=1
- +14 IF ($PIECE(NODECUR,"^",1,CURPCS)'=$PIECE(NODECPR,"^",1,CPRPCS))
- IF (CPRPKG=CURPKG)
- Begin DoDot:1
- +15 ;NOTE: FNDCHG not used
- SET FNDCHG=$$CHNGCHK(NODECUR,NODECPR,.VALMCNT)
- +16 ;Remove edited Pkg from globals
- DO DELPKG(CURNDNM,CPRNDNM)
- +17 ;PKGRPTD prevents 'No edited packages' msg
- SET PKGRPTD=1
- +18 ; Quit CPR Node loop
- SET PKGDEL=1
- End DoDot:1
- +19 QUIT
- +20 ;
- CHNGCHK(NODECUR,NODECPR,VALMCNT) ; Check latest extract (CUR) against a comparison extract (CPR)
- +1 NEW FNDCHNG,PKGHDRPT,PKGNAME
- +2 NEW CURPPFX,CPRPPFX,CURHF,CPRHF,CURLF,CPRLF,CURADPFX,CPRADPFX,CUREXPFX,CPREXPFX,CURFL,CPRFL,CURFRL,CPRFRL,CURPP,CPRPP
- +3 ;Variable doc key:
- +4 ; CPR* is compare file data
- +5 ; CUR* is current file data
- +6 ; *PPFX - Primary Prefix
- +7 ; *HF - *Highest file number
- +8 ; *LF - *Lowest file number
- +9 ; *ADPFX - Additional Prefices
- +10 ; *EXPFX - Excluded Prefices
- +11 ; *FL - File List
- +12 ; *FRL - File Range List
- +13 ; *PP - Parent Package
- +14 ;
- +15 SET (FNDCHNG,PKGHDRPT)=0
- +16 SET PKGNAME=$PIECE(NODECUR,"^")
- +17 SET STRVLMCT=VALMCNT
- +18 ;
- +19 ;Prefix
- +20 SET CURPPFX=$PIECE(NODECUR,"^",2)
- +21 SET CPRPPFX=$PIECE(NODECPR,"^",2)
- +22 IF CURPPFX'=CPRPPFX
- Begin DoDot:1
- +23 if 'PKGHDRPT
- DO HDROUT(PKGNAME,.PKGHDRPT,.VALMCNT)
- +24 DO ADD^A1VSLAPI(.VALMCNT,"New Prefix: "_$SELECT(CURPPFX]"":CURPPFX,1:"{none}")_" Old Prefix: "_$SELECT(CPRPPFX]"":CPRPPFX,1:"{none}"))
- End DoDot:1
- +25 ;
- +26 ;Low File
- +27 SET CURLF=$PIECE(NODECUR,"^",3)
- +28 SET CPRLF=$PIECE(NODECPR,"^",3)
- +29 IF CURLF'=CPRLF
- Begin DoDot:1
- +30 if 'PKGHDRPT
- DO HDROUT(PKGNAME,.PKGHDRPT,.VALMCNT)
- +31 DO ADD^A1VSLAPI(.VALMCNT,"New Low File #: "_$SELECT(CURLF]"":CURLF,1:"{none}")_" Old Low File #: "_$SELECT(CPRLF]"":CPRLF,1:"{none}"))
- End DoDot:1
- +32 ;
- +33 ;High File
- +34 SET CURHF=$PIECE(NODECUR,"^",4)
- +35 SET CPRHF=$PIECE(NODECPR,"^",4)
- +36 IF CURHF'=CPRHF
- Begin DoDot:1
- +37 if 'PKGHDRPT
- DO HDROUT(PKGNAME,.PKGHDRPT,.VALMCNT)
- +38 DO ADD^A1VSLAPI(.VALMCNT,"New High File #: "_$SELECT(CURHF]"":CURHF,1:"{none}")_" Old High File #: "_$SELECT(CPRHF]"":CPRHF,1:"{none}"))
- End DoDot:1
- +39 ;
- +40 ;Additional Prefixes
- +41 SET CURADPFX=$PIECE(NODECUR,"^",5)
- +42 SET CPRADPFX=$PIECE(NODECPR,"^",5)
- +43 IF CURADPFX'=CPRADPFX
- Begin DoDot:1
- +44 if 'PKGHDRPT
- DO HDROUT(PKGNAME,.PKGHDRPT,.VALMCNT)
- +45 DO LISTDIF("Additional Prefixes",CURADPFX,CPRADPFX,.VALMCNT)
- End DoDot:1
- +46 ;
- +47 ;Excluded Prefixes
- +48 SET CUREXPFX=$PIECE(NODECUR,"^",6)
- +49 SET CPREXPFX=$PIECE(NODECPR,"^",6)
- +50 IF CUREXPFX'=CPREXPFX
- Begin DoDot:1
- +51 if 'PKGHDRPT
- DO HDROUT(PKGNAME,.PKGHDRPT,.VALMCNT)
- +52 DO LISTDIF("Excepted Prefixes",CUREXPFX,CPREXPFX,.VALMCNT)
- End DoDot:1
- +53 ;
- +54 ;File List
- +55 SET CURFL=$PIECE(NODECUR,"^",7)
- +56 SET CPRFL=$PIECE(NODECPR,"^",7)
- +57 IF CURFL'=CPRFL
- Begin DoDot:1
- +58 if 'PKGHDRPT
- DO HDROUT(PKGNAME,.PKGHDRPT,.VALMCNT)
- +59 DO LISTDIF("Files",CURFL,CPRFL,.VALMCNT)
- End DoDot:1
- +60 ;
- +61 ;File Range List
- +62 SET CURFRL=$PIECE(NODECUR,"^",8)
- +63 SET CPRFRL=$PIECE(NODECPR,"^",8)
- +64 IF CURFRL'=CPRFRL
- Begin DoDot:1
- +65 if 'PKGHDRPT
- DO HDROUT(PKGNAME,.PKGHDRPT,.VALMCNT)
- +66 DO LISTDIF("File Ranges",CURFRL,CPRFRL,.VALMCNT)
- End DoDot:1
- +67 ;
- +68 ;Parent
- +69 SET CURPP=$PIECE(NODECUR,"^",9)
- +70 SET CPRPP=$PIECE(NODECPR,"^",9)
- +71 IF CURPP'=CPRPP
- Begin DoDot:1
- +72 if 'PKGHDRPT
- DO HDROUT(PKGNAME,.PKGHDRPT,.VALMCNT)
- +73 DO ADD^A1VSLAPI(.VALMCNT,"Parent")
- +74 DO ADD^A1VSLAPI(.VALMCNT," New: "_$SELECT(CURPP]"":CURPP,1:"{none}"))
- +75 DO ADD^A1VSLAPI(.VALMCNT," Old: "_$SELECT(CPRPP]"":CPRPP,1:"{none}"))
- End DoDot:1
- +76 ;
- +77 IF VALMCNT'=STRVLMCT
- SET FNDCHNG=1
- +78 QUIT FNDCHNG
- +79 ;
- ADDDELRP(EXTRCT,VALMCNT) ;Report packages Added/Deleted to/from current extract
- +1 NEW HDRTXT,NODENM,NODEVAL,DATAELMT,PKGFND
- +2 ;
- +3 SET HDRTXT=$SELECT(EXTRCT="CUR":"ADDED",1:"DELETED")_" PACKAGES:"
- +4 DO ADD^A1VSLAPI(.VALMCNT," ")
- +5 DO ADD^A1VSLAPI(.VALMCNT," ")
- +6 DO ADD^A1VSLAPI(.VALMCNT,HDRTXT,1,1,$LENGTH(HDRTXT))
- +7 ;
- +8 SET PKGFND=0
- +9 SET NODENM=""
- +10 FOR
- SET NODENM=$ORDER(^TMP("A1VS "_EXTRCT_" PARAM",$JOB,NODENM))
- if NODENM=""
- QUIT
- SET NODEVAL=^TMP("A1VS "_EXTRCT_" PARAM",$JOB,NODENM)
- Begin DoDot:1
- +11 SET PKGFND=1
- +12 ;Output package name
- DO HDROUT($PIECE(NODEVAL,"^",1),.PKGHDRPT,.VALMCNT)
- +13 ;
- +14 SET DATAELMT=$PIECE(NODEVAL,"^",2)
- +15 DO ADD^A1VSLAPI(.VALMCNT,"Prefix: "_$SELECT(DATAELMT]"":DATAELMT,1:"{none}"))
- +16 ;
- +17 SET DATAELMT=$PIECE(NODEVAL,"^",3)
- +18 DO ADD^A1VSLAPI(.VALMCNT,"Low File #: "_$SELECT(DATAELMT]"":DATAELMT,1:"{none}"))
- +19 ;
- +20 SET DATAELMT=$PIECE(NODEVAL,"^",4)
- +21 DO ADD^A1VSLAPI(.VALMCNT,"High File #: "_$SELECT(DATAELMT]"":DATAELMT,1:"{none}"))
- +22 ;
- +23 DO ADD^A1VSLAPI(.VALMCNT,"Additional Prefixes: ")
- +24 SET DATAELMT=$PIECE(NODEVAL,"^",5)
- +25 DO EVENSPLT(.VALMCNT,$SELECT(DATAELMT]"":DATAELMT,1:"{none}"))
- +26 ;
- +27 DO ADD^A1VSLAPI(.VALMCNT,"Excepted Prefixes: ")
- +28 SET DATAELMT=$PIECE(NODEVAL,"^",6)
- +29 DO EVENSPLT(.VALMCNT,$SELECT(DATAELMT]"":DATAELMT,1:"{none}"))
- +30 ;
- +31 DO ADD^A1VSLAPI(.VALMCNT,"File List: ")
- +32 SET DATAELMT=$PIECE(NODEVAL,"^",7)
- +33 DO EVENSPLT(.VALMCNT,$SELECT(DATAELMT]"":DATAELMT,1:"{none}"))
- +34 ;
- +35 DO ADD^A1VSLAPI(.VALMCNT,"File Range list: ")
- +36 SET DATAELMT=$PIECE(NODEVAL,"^",8)
- +37 DO EVENSPLT(.VALMCNT,$SELECT(DATAELMT]"":DATAELMT,1:"{none}"))
- +38 ;
- +39 SET DATAELMT=$PIECE(NODEVAL,"^",9)
- +40 DO ADD^A1VSLAPI(.VALMCNT,"Parent: "_$SELECT(DATAELMT]"":DATAELMT,1:"{none}"))
- End DoDot:1
- +41 ;
- +42 if 'PKGFND
- DO ADD^A1VSLAPI(.VALMCNT," No "_$SELECT(EXTRCT="CUR":"added",EXTRCT="CPR":"deleted",1:"")_" packages!")
- +43 QUIT
- +44 ;
- HELP ; -- help code
- +1 SET X="?"
- DO DISP^XQORM1
- +2 ;SET VALMBCK="R"
- +3 QUIT
- +4 ;
- EXIT ; -- exit code
- +1 DO KILL
- +2 QUIT
- +3 ;
- EXPND ; -- expand code
- +1 QUIT
- +2 ;
- REFRESH ; -- refresh display
- +1 DO INIT
- +2 SET VALMBCK="R"
- +3 QUIT
- +4 ;
- MSG(TEXT) ; -- set default message
- +1 ;SET VALMSG=TEXT
- +2 QUIT
- +3 ;
- KILL ; - Cleanup local and global display arrays
- +1 ;Kill data and video control arrays
- DO CLEAN^VALM10
- +2 ;Kill Video attributes
- DO KILL^VALM10()
- +3 DO CLNTMPGB
- +4 KILL ^TMP("A1VS PKG MAN PARM COMPARE",$JOB)
- +5 KILL DIR,X,Y,DTOUT,DIRUT,DUOUT
- +6 QUIT
- +7 ;
- CLNTMPGB ;Kill temporary globals
- +1 KILL ^TMP("A1VS CUR PARAM",$JOB),^TMP("A1VS CPR PARAM",$JOB)
- +2 QUIT
- +3 ;
- HDROUT(PKGNAME,PKGHDRPT,VALMCNT) ; Output package header
- +1 SET PKGHDRPT=1
- +2 DO ADD^A1VSLAPI(.VALMCNT," ")
- +3 ;ADD^A1VSLAPI parameters: VALMCNT,MSG,LRBOLD,STRTBLD,ENDBLD
- DO ADD^A1VSLAPI(.VALMCNT,"Package: "_PKGNAME,1,10,$LENGTH(PKGNAME))
- +4 QUIT
- +5 ;
- LISTDIF(ELMTNME,CURDAT,CPRDAT,VALMCNT) ; Output differences in parameter lists
- +1 NEW PCENUM,DATAELMT
- +2 DO ADD^A1VSLAPI(.VALMCNT," "_ELMTNME)
- +3 ;
- +4 IF (CURDAT]"")
- IF (CPRDAT']"")
- Begin DoDot:1
- +5 DO EVENSPLT(.VALMCNT,"Added entire list in New file: ",1)
- +6 DO EVENSPLT(.VALMCNT,CURDAT)
- End DoDot:1
- +7 IF (CURDAT']"")
- IF (CPRDAT]"")
- Begin DoDot:1
- +8 DO EVENSPLT(.VALMCNT,"Deleted entire list in New file: ",1)
- +9 DO EVENSPLT(.VALMCNT,CPRDAT)
- End DoDot:1
- +10 ;
- +11 ;List changes as lineitems
- IF (CURDAT]"")
- IF (CPRDAT]"")
- Begin DoDot:1
- +12 DO EVENSPLT(.VALMCNT,"Old List: "_$SELECT(CPRDAT]"":CPRDAT,1:"{none}"),1)
- +13 ;
- +14 ;Check for deletions
- +15 FOR PCENUM=1:1
- SET DATAELMT=$PIECE(CPRDAT,"|",PCENUM)
- if DATAELMT=""
- QUIT
- Begin DoDot:2
- +16 IF CURDAT'[DATAELMT_"|"
- DO EVENSPLT(.VALMCNT,DATAELMT_" ...deleted in New file")
- End DoDot:2
- +17 IF PCENUM=1
- DO ADD^A1VSLAPI(.VALMCNT," {none} ...deleted in New file")
- +18 ;
- +19 ;Check for additions
- +20 FOR PCENUM=1:1
- SET DATAELMT=$PIECE(CURDAT,"|",PCENUM)
- if DATAELMT=""
- QUIT
- Begin DoDot:2
- +21 IF CPRDAT'[DATAELMT_"|"
- DO EVENSPLT(.VALMCNT,DATAELMT_" ...added in New file")
- End DoDot:2
- +22 IF PCENUM=1
- DO ADD^A1VSLAPI(.VALMCNT," {none} ...added in New file")
- +23 ;
- +24
- *** ERROR ***
- DO EVENSPLT(.VALMCNT,"New List: "_$s(CURDAT]"":CURDAT,1:"{none}"),1)
- End DoDot:1
- +25 ;
- +26 QUIT
- +27 ;
- EVENSPLT(VALMCNT,MSG,DTANODE) ; Add line to build display split on piece
- +1 ; VALMCNT - Current array node number
- +2 ; MSG - Message to add to ListMan Display
- +3 ; DTANODE - Indicates raw data node or data element changed
- +4 ; 1 : Raw data node
- +5 ; 0 : data element changed
- +6 ;
- +7 NEW PCENUM,MSGPCE,LINEOUT,START
- +8 SET DTANODE=+$GET(DTANODE)
- +9 SET LINEOUT=""
- +10 SET START=1
- +11 ;
- +12 FOR PCENUM=1:1
- SET MSGPCE=$PIECE(MSG,"|",PCENUM)
- SET LINEOUT=LINEOUT_MSGPCE_$$DELIMEND(MSGPCE)
- if MSGPCE=""
- QUIT
- Begin DoDot:1
- +13 ;$Select DTANODE determines if leading spaces are added to LINEOUT
- IF ($LENGTH(LINEOUT)>$SELECT(DTANODE:75,1:73))!(LINEOUT["...")
- Begin DoDot:2
- +14 IF $LENGTH(LINEOUT)>$SELECT(DTANODE:75,1:73)
- Begin DoDot:3
- +15 SET PCENUM=PCENUM-1
- +16 SET LINEOUT=$PIECE(MSG,"|",START,PCENUM)
- End DoDot:3
- +17 DO ADD^A1VSLAPI(.VALMCNT," "_$SELECT('DTANODE:" ",1:"")_LINEOUT)
- +18 SET LINEOUT=""
- +19 SET START=PCENUM+1
- End DoDot:2
- End DoDot:1
- +20 if LINEOUT]""
- DO ADD^A1VSLAPI(.VALMCNT," "_$SELECT('DTANODE:" ",1:"")_LINEOUT)
- +21 ;
- +22 QUIT
- +23 ;
- DELIMEND(MSGPCE) ; Return ending delimiter for LINEOUT in EVENSPLT^A1VSLPC
- +1 NEW RESULT
- +2 SET RESULT=$SELECT((MSGPCE'["...")&(MSGPCE'="")&(MSGPCE'["{none}")&(MSGPCE'["file:"):"|",1:"")
- +3 QUIT RESULT
- +4 ;
- DELPKG(CURNDNM,CPRNDNM) ; Delete Package from Current and Compare parameter files
- +1 KILL ^TMP("A1VS CUR PARAM",$JOB,CURNDNM),^TMP("A1VS CPR PARAM",$JOB,CPRNDNM)
- +2 QUIT
- +3 ;
- +4 ;PROTOCOL entry points
- +5 ;
- MAILRPT ; Email ^TMP("A1VS PKG MGR PARAM ERROR DISP") comparison report
- +1 ; -- Protocol: A1VS PKG MGR PARAM COMPR MAIL ACTION
- +2 NEW A1INSTMM,A1TOMM,XMERR,XMZ,A1TYPE,SUBSCPT
- +3 DO FULL^VALM1
- +4 KILL XMERR
- +5 ;Do not Restrict addressing
- SET A1INSTMM("ADDR FLAGS")="R"
- +6 SET A1TYPE="S"
- +7 DO TOWHOM^XMXAPIU(DUZ,,A1TYPE,.A1INSTMM)
- +8 IF +$GET(XMERR)'>0
- Begin DoDot:1
- +9 NEW XMY,XMTEXT,XMDUZ,XMSUB,A1LPCNT
- +10 SET A1LPCNT=""
- +11 FOR
- SET A1LPCNT=$ORDER(^TMP("XMY",$JOB,A1LPCNT))
- if A1LPCNT=""
- QUIT
- SET XMY(A1LPCNT)=""
- +12 SET XMDUZ=DUZ
- +13 SET XMSUB=$PIECE(VALMHDR(4),":",2)_" ("_$PIECE(VALMHDR(1)," - ",2)_")"
- +14 ;SET XMTEXT="^TMP(""A1VS PKG MAN PARM COMPARE"","_$JOB_","
- +15 SET ^TMP("A1VS PKG MAN CMPR MSG",$JOB,1)="Parameter Files comparison: "_$PIECE(VALMHDR(4),":",2)_" [New] vs "_$PIECE(VALMHDR(5),":",2)_" [Old]"
- +16 SET SUBSCPT=0
- +17 FOR
- SET SUBSCPT=$ORDER(^TMP("A1VS PKG MAN PARM COMPARE",$JOB,SUBSCPT))
- if +SUBSCPT=0
- QUIT
- Begin DoDot:2
- +18 SET ^TMP("A1VS PKG MAN CMPR MSG",$JOB,SUBSCPT+1)=^TMP("A1VS PKG MAN PARM COMPARE",$JOB,SUBSCPT,0)
- End DoDot:2
- +19 SET XMTEXT="^TMP(""A1VS PKG MAN CMPR MSG"","_$JOB_","
- +20 DO ^XMD
- +21 IF +XMZ>0
- DO JUSTPAWS^A1VSLAPI($PIECE(VALMHDR(1)," - ",2)_" E-Mailed. [MSG #:"_XMZ_"]")
- +22 IF +XMZ'>0
- DO JUSTPAWS^A1VSLAPI("Error: "_$PIECE(VALMHDR(1)," - ",2)_" not E-Mailed! ["_XMZ_"]")
- +23 KILL ^TMP("A1VS PKG MAN CMPR MSG",$JOB)
- End DoDot:1
- +24 ;
- +25 SET VALMBCK="R"
- +26 QUIT