STANDARD DATA DICTIONARY #9.9 -- PATCH MONITOR FILE 3/24/25 PAGE 1 STORED IN ^XPD(9.9, (5670 ENTRIES) SITE: WWW.BMIRWIN.COM UCI: VISTA,VISTA (VERSION 7.3) DATA NAME GLOBAL DATA ELEMENT TITLE LOCATION TYPE ----------------------------------------------------------------------------------------------------------------------------------- This file contains VistA patch information which is stored by a server option when a patch arrives to G.PATCHES at a site. The server extracts certain information and stores it here. A night-time program will then check the file, match it against the install file. If the current date is past the compliance date for patch installation (typically 30 days for regular patches, three days for emergency patches) it will do one of two things: 1. If the patch has been installed since last run and the parameter file is set in field 3 to delete installed patches, it will delete the entry from this file, regardless of the number of days in field 2. If the parameter file is set to leave patches, it is not deleted. 2. If the patch has NOT been installed, its information will be saved and reported via a mail message to a group. The person(s) who are in charge of monitoring patches at the site or perhaps for the VISN will be responsible for following up on delinquent patches. DD ACCESS: @ RD ACCESS: # WR ACCESS: @ DEL ACCESS: @ LAYGO ACCESS: @ AUDIT ACCESS: # CROSS REFERENCED BY: PATCH NAME(B), DATE OF RECEIPT(C), COMPLIANCE DATE(D), NON-KIDS INSTALL DATE(E) LAST MODIFIED: MAR 14,2024@19:43:23 9.9,.01 PATCH NAME 0;1 FREE TEXT (Required) INPUT TRANSFORM: K:$L(X)>20!($L(X)<3)!'(X'?1P.E) X LAST EDITED: JUL 21, 2005 HELP-PROMPT: Answer must be 3-20 characters in length. DESCRIPTION: This is the name of the patch as it comes in the mail message. Examples: RMIM*1*1 DG*5.3*211 CROSS-REFERENCE: 9.9^B 1)= S ^XPD(9.9,"B",$E(X,1,30),DA)="" 2)= K ^XPD(9.9,"B",$E(X,1,30),DA) 9.9,1 DATE OF RECEIPT 0;2 DATE INPUT TRANSFORM: S %DT="EX" D ^%DT S X=Y K:Y<1 X LAST EDITED: JUL 21, 2005 HELP-PROMPT: The date the patch was received in-house. DESCRIPTION: This is the date the patch was received in-house. CROSS-REFERENCE: 9.9^C 1)= S ^XPD(9.9,"C",$E(X,1,30),DA)="" 2)= K ^XPD(9.9,"C",$E(X,1,30),DA) Index by Date of Receipt. 9.9,2 PRIORITY 0;3 SET 'm' FOR MANDATORY; 'e' FOR EMERGENCY; LAST EDITED: JUL 21, 2005 HELP-PROMPT: Enter the priority of the patch. Type ? for help. DESCRIPTION: The priority assigned to this patch. Typical is "mandatory". 9.9,3 PARENT PACKAGE 0;4 FREE TEXT INPUT TRANSFORM: K:$L(X)>35!($L(X)<3) X LAST EDITED: JUL 21, 2005 HELP-PROMPT: The parent package of the patch. DESCRIPTION: This is the package for which the patch was issued. This field must be free text because of the possibility of having a patch issued for a new package without the package having been installed yet. 9.9,4 SEQUENCE NUMBER 0;5 NUMBER INPUT TRANSFORM: K:+X'=X!(X>999999999999)!(X<1)!(X?.E1"."1N.N) X LAST EDITED: JUL 21, 2005 HELP-PROMPT: The sequence number of the patch. DESCRIPTION: This is the sequence number assigned to the patch by the National Patch Module. 9.9,5 PACKAGE VERSION 0;6 FREE TEXT INPUT TRANSFORM: K:$L(X)>10!($L(X)<1) X LAST EDITED: JUL 21, 2005 HELP-PROMPT: The version assignment of the parent package. DESCRIPTION: This is the version of the parent package for which a patch is sent. It is determined from the patch information in the message. 9.9,6 PATCH SUBJECT 0;7 FREE TEXT INPUT TRANSFORM: K:$L(X)>50!($L(X)<3) X LAST EDITED: JUL 21, 2005 HELP-PROMPT: Answer must be 3-50 characters in length. DESCRIPTION: This is the subject of the patch. 9.9,7 INSTALL NAME 0;8 FREE TEXT INPUT TRANSFORM: K:$L(X)>35!($L(X)<3) X LAST EDITED: JUL 21, 2005 HELP-PROMPT: Answer must be 3-35 characters in length. DESCRIPTION: The installation information may or may not be in the INSTALL file for a patch. This may be because of: a. The package is new and may not yet be loaded but already has patches issued. b. The patch is a non-kids patch for executables, etc. 9.9,8 COMPLIANCE DATE 0;9 DATE INPUT TRANSFORM: S %DT="EX" D ^%DT S X=Y K:Y<1 X LAST EDITED: JUL 21, 2005 HELP-PROMPT: This is the date the patch must be installed by. DESCRIPTION: This is the date by which the patch must be installed. CROSS-REFERENCE: 9.9^D 1)= S ^XPD(9.9,"D",$E(X,1,30),DA)="" 2)= K ^XPD(9.9,"D",$E(X,1,30),DA) Index by Compliance Date. 9.9,9 DATE INSTALLED ; COMPUTED MUMPS CODE: D ^XTPMKPCF ALGORITHM: D ^XTPMKPCF LAST EDITED: JUN 14, 2007 DESCRIPTION: This is a computed field, driven by a mumps routine XTPMKPCF. This is a special routine to calculate the date installed from the INSTALL file. It reads the index backwards to find the last installed version by taking the $O(^XPD(9.7,"B",[INSTALL NAME],9999999999),-1). This is done because there may be several test versions on file in INSTALL file which may affect the true installation date determination. 9.9,10 INSTALLED BY ; COMPUTED MUMPS CODE: D WHO^XTPMKPCF ALGORITHM: D WHO^XTPMKPCF LAST EDITED: AUG 02, 2005 DESCRIPTION: This is a computed field driven also by the routine AWBCKPCF at entry point WHO. It tells who installed the patch. 9.9,11 NON-KIDS PATCH? 0;10 SET '1' FOR YES; LAST EDITED: JUL 21, 2005 HELP-PROMPT: Enter 1 if a Non-KIDS patch. DESCRIPTION: This field determines what happens in various areas of the package. A patch can be KIDs or non-KIDs. The data on a patch record can be either NULL (KIDs patch) or 1 (Non-KIDs patch). The field can actually be only set to a 1 or the information deleted (NULL). 9.9,12 NON-KIDS INSTALL DATE 0;11 DATE INPUT TRANSFORM: S %DT="ESTX" D ^%DT S X=Y K:X<1 X LAST EDITED: DEC 11, 2023 HELP-PROMPT: Enter date for NON-KIDS install. DESCRIPTION: Non-KIDs patches are those which do not have an accompanying KIDs install in the Packman message because: It may have an accompanying host file (too large for a mail message) or It may be a patch message referring to a .zip, .exe or other file which will not put an entry into the INSTALL file. Because of this, there is no install record to extract the install date and it must be entered (i.e., completed) by filling in this field. CROSS-REFERENCE: 9.9^E 1)= S ^XPD(9.9,"E",$E(X,1,30),DA)="" 2)= K ^XPD(9.9,"E",$E(X,1,30),DA) Index by Non-Kids Install Date. 9.9,13 NON-KIDS PATCH COMPLETED BY 0;12 POINTER TO NEW PERSON FILE (#200) LAST EDITED: JUL 21, 2005 HELP-PROMPT: This is the name of the person who completed the non-KIDs patch. DESCRIPTION: This is a pointer to file 200 to record who completed the non-KIDs patch. FILES POINTED TO FIELDS NEW PERSON (#200) NON-KIDS PATCH COMPLETED BY (#13) INPUT TEMPLATE(S): XTPM COMPLETE NON-KIDS PATCH JUL 21, 2005@06:43 USER #0 XTPM EDIT PATCH JUL 21, 2005@07:57 USER #0 PRINT TEMPLATE(S): CAPTIONED USER #0 XTPM COMPLETE PATCH HISTORY JUN 15, 2007@10:18 USER #0 COMPLETE PATCH INSTALLATION HISTORY XTPM UNINSTALLED BY COMPLIANCEJUL 21, 2005@09:30 USER #0 UNINSTALLED PATCHES BY COMPLIANCE DATE SORT TEMPLATE(S): XTPM COMPLETE PATCH HISTORY JUL 21, 2005@08:02 USER #0 SORT BY: @COMPLIANCE DATE;S1// ( COMPLIANCE DATE not null) WITHIN COMPLIANCE DATE, SORT BY: PATCH NAME// ( PATCH NAME not null) Prints a complete patch installation history. XTPM UNINSTALLED BY COMPLIANCEJUL 21, 2005@09:27 USER #0 SORT BY: @COMPLIANCE DATE;S// (COMPLIANCE DATE from Jan 1,1901 to Dec 31,2499@24:00) WITHIN COMPLIANCE DATE, SORT BY: PATCH NAME// ( PATCH NAME not null) WITHIN PATCH NAME, SORT BY: $S(NON-KIDS PATCH?="YES":NON-KIDS INSTALL DATE,1:DATE INSTALLED)="";L1// ($S(NON-KIDS PATCH?=""YES"":NON-KIDS INSTALL DATE,1:DATE INSTALLED)="""") Uninstalled patches by compliance date. FORM(S)/BLOCK(S):