$TXT Created by IVEY,JOEL at PAT-XWB.FO-OAKLAND.MED.VA.GOV (KIDS) on Monday, 08/09/04 at 11:34 ============================================================================= Run Date: AUG 13, 2004 Designation: XU*8*285 Package : XU - KERNEL Priority: Mandatory Version : 8 SEQ #284 Status: Released Compliance Date: SEP 13, 2004 ============================================================================= Subject: Correct Alert Processing for Inactive User Category: - Routine - Other - Data Dictionary Description: ============ Read the WARNING below carefully prior to installing this patch. This patch addresses a patient safety issue in which alerts sent to an inactive user were not received by anyone. If there are no active recipients or surrogates among the list of specified recipients the alert will be directed to the appropriate BACKUP REVIEWER as determined from the PARAMETERS file. If there is no identifiable BACKUP REVIEWER entry, the alert will be sent to members of the "XQAL UNPROCESSED ALERTS" mail group. If there are no active members specified for that mail group, the alert will be sent as a last resort to members of G.PATCH. *************************** WARNING ************************************ The number of alerts generated to inactive users may be very large. Your staff may need assistance in dealing with them and, in the case of unsigned documents, (many of the alerts) someone available to sign them. You will not see alerts to inactive users from CPRS unless patch OR*3*200 (which will be released shortly after this patch) has been installed. ************************************************************************* In the roll-and-scroll or List Manager environment, this patch causes alerts which contain the text "CRITICAL" or "ABNORMAL IMA" are displayed in reverse video to cause these alert to stand out in the midst of many other alerts. It was found that sending an alert to a mail group, only the individual members were identified. This has been modified to include other mail groups which are members of the mail group as well. The XQAL UNPROCESSED ALERTS mail group is created by this patch and during the Post-Init phase the individual installing the patch will be set up as a member of the mail group. We recommend that this mail group be populated with a few individuals who can forward otherwise undelivered alerts on to a proper individuals. An option was earlier provided for establishing individuals as BACKUP REVIEWER entries in the PARAMETER FILE, but the original option did not provide an easy way in which to delete or edit the entry. This has been corrected in this patch. This patch also corrects undefined errors which occur sporadically at DELETEA+7^XQALDEL and at DELA+1^XQALDEL. For Developers, a new input variable during generation of alerts is XQADFN. This value should contain the DFN value for the patient if the alert is patient related. Use of this variable will provide a more reliable indicator of the patient than that previously used (the second comma piece of the value of XQAID as used by CPRS). For Developers this patch adds the following APIs as Supported References: This patch creates a new entry point for setting up alerts. SETUP1^XQALERT is now recommended for creation of an alert. It is used in the form S RETVAL=$$SETUP1^XQALERT the value returned is a string with the first '^'-piece a 1 if the alert was delivered to at least one valid recipient or 0 if the alert could not be delivered. In the latter case, the variable XQALERR will be defined and contain a string explaining why the alert was not delivered. The second '^'-piece is the IEN in the Alert Tracking file for the alert and the third '^'-piece is the complete value of XQAID for the alert. The second or third piece values may be used by an application to retain a reference to the alert in the ALERT TRACKING file (#8992.1). The original entry point SETUP^XQALERT for creating an alert did not return any indication if an alert was not deliverable for any reason. This entry point is still valid for backward compatibility, but no longer recommended. $$ACTVSURO^XQALSURO(IENVALUE) - returns the currently active surrogate for the user specified. This includes potential surrogates of the current surrogate. To determine the currently active surrogate for the user with DUZ of IENVALUE, use S ACTIVE=$$ACTVSURO^XQALSURO(IENVALUE) If the returned value is greater than zero, it will indicate the active surrogate. If the returned value is not greater than zero (actually -1), it will indicate that there are no currently active surrogates for the user. $$CHEKUSER^XQALSET(IENVALUE) - Returns 0 if no valid user or surrogate, otherwise returns IEN of user or his currently active surrogate Addition of the ALERT RECIPIENT TYPE file (#8992.2) --------------------------------------------------- The ALERT RECIPIENT TYPE file was added to contain indicators as to why an alert was sent. 8992.2,.01 NAME 0;1 FREE TEXT (Required) INPUT TRANSFORM: K:$L(X)>45!($L(X)<3)!'(X'?1P.E) X LAST EDITED: OCT 17, 2003 HELP-PROMPT: Answer must be 3-45 characters in length. DESCRIPTION: This file is used to maintain a list of recipient types for alerts. It is used in tracking for what reason a user was sent an alert. CROSS-REFERENCE: 8992.2^B 1)= S ^XTV(8992.2,"B",$E(X,1,30),DA)="" 2)= K ^XTV(8992.2,"B",$E(X,1,30),DA) The following is the global map structure of the new multiple: ^XTV(8992.2,D0,0)= (#.01) NAME [1F] ^ Changes to the ALERT TRACKING file (#8992.1) -------------------------------------------- This patch adds the following three (3) multiples to the Alert Tracking file. 8992.11,1 RECIPIENT TYPE 1;0 POINTER Multiple #8992.111 (Add New Entry without Asking) 8992.111,.01 RECIPIENT TYPE 0;1 POINTER TO ALERT RECIPIENT TYPE FILE (#8992.2) (Required) LAST EDITED: OCT 20, 2003 HELP-PROMPT: This is a pointer to a file of different recipient types (i.e., the reason someone was sent the alert) DESCRIPTION: This field is used to track how a specific recipient was selected for receiving the alert. The initial recipients are those to whom the alert was initially directed (INITIAL RECIPIENT). Other recipients may be the result of forwarding. Recipients of the alert from forwarding are noted by the type of forwarding involved (FWD BY USER, EMAIL SURROGATE, CHIEF/ SUPERVISOR, BACKUP REVIEWER, or LAST HOPE). Marked as a specific category are those to whom the alert was directed, but who were not available to receive an alert due to lack of access (marked with the suffix "-UNDELIVERABLE" added to the basis for the alert being sent to the user). Those who have alerts forwarded to their surrogate or receive the alert while acting as a surrogate for another user are indicated by entries in fields #.02 (SENT TO SURROGATE) and #.03 (ACTING AS SURROGATE) respectively. In addition, those who are acting as surrogates are identified in the current field by the suffix "-SURROGATE" added to the basis for the alert being received. Since the recipient may be acting as surrogate for more than one user, the actual users for which the message was sent on a surrogate basis are indicated in the SURROGATE FOR sub-file (#8992.113) under the RECIPIENT sub-file. The values stored for this field are pointers to entries in the ALERT RECIPIENT TYPE file (#8992.2). CROSS-REFERENCE:8992.111^B 1)= S ^XTV(8992.1,DA(2),20,DA(1),1,"B",$E(X,1,3 0),DA)="" 2)= K ^XTV(8992.1,DA(2),20,DA(1),1,"B",$E(X,1,3 0),DA) 8992.111,.02 SENT TO SURROGATE 0;2 POINTER TO NEW PERSON FILE (#200) LAST EDITED: FEB 21, 2003 HELP-PROMPT: This is the individual that was sent the alert in a surrogate capacity instead of the originally specified recipient. DESCRIPTION: This field is used to identify the surrogate to whom the alert was sent instead of this originally specified recipient. 8992.111,.03 ACTING AS SURROGATE 0;3 SET 'Y' FOR YES; 'N' FOR NO; LAST EDITED: FEB 20, 2003 HELP-PROMPT: Enter Y (YES) if this recipient received the alert acting as surrogate for another user. DESCRIPTION: This field is used to identify those recipients who were sent the alert because they were selected as an active surrogate for the originally intended user. In most cases only the Y (YES) entries will be entered. 8992.111,.04 ALERT DATE/TIME 0;4 DATE INPUT TRANSFORM:S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X LAST EDITED: FEB 21, 2003 HELP-PROMPT: This is the date and time the alert was sent/forwarded to the current recipient with this recipient type DESCRIPTION: This is the date and time the alert was sent/forwarded to the current recipient with this recipient type The following is the global map structure of the new multiple: ^XTV(8992.1,D0,20,D1,1,0)=^8992.111PA^^ (#1) RECIPIENT TYPE ^XTV(8992.1,D0,20,D1,1,D2,0)= (#.01) RECIPIENT TYPE [1P] ^ (#.02) SENT TO ==>SURROGATE [2P] ^ (#.03) ACTING AS SURROGATE ==>[3S] ^ (#.04) ALERT DATE/TIME [4D] ^ 8992.11,2 FORWARDED DATE/TIME 2;0 DATE Multiple #8992.112 LAST EDITED: FEB 21, 2003 8992.112,.01 FORWARDED DATE/TIME 0;1 DATE (Multiply asked) INPUT TRANSFORM:S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X LAST EDITED: FEB 21, 2003 HELP-PROMPT: This is the date/time that the alert was forwarded to the current recipient DESCRIPTION: This field is used to track the date/time of forwarding of the alert to this recipient. This is a multiple field to track instances in which multiple copies of the alert may be forwarded to a single recipient for various reasons. This multiple field will indicate when it was forwarded and the basis for forwarding of the alert. CROSS-REFERENCE:8992.112^B 1)= S ^XTV(8992.1,DA(2),20,DA(1),2,"B",$E(X,1,3 0),DA)="" 2)= K ^XTV(8992.1,DA(2),20,DA(1),2,"B",$E(X,1,3 0),DA) 8992.112,.02 FORWARDING CATEGORY 0;2 POINTER TO ALERT RECIPIENT TYPE FILE (#8992.2) LAST EDITED: OCT 20, 2003 HELP-PROMPT:This field points to a file containing the different reasons for forwarding. DESCRIPTION:This field is used to track the basis on which the alert is forwarded to the current recipient. The alert might be forwarded to the recipient by a user directly, or by programmed forwarding related to alerts not being processed within a specified time to EMAIL SURROGATE, CHIEF/SUPERVISOR; BACKUP REVIEWER, or LAST RESORT. Entries for this field are pointers to the values in the ALERT RECIPIENT TYPE file (#8992.2). 8992.112,.03 FORWARDED BY OR FOR 0;3 POINTER TO NEW PERSON FILE (#200) LAST EDITED: APR 04, 2003 HELP-PROMPT:This is the individual that forwarded the alert, or the alert was forwarded for. DESCRIPTION:This is a record of the individual who forwarded the alert, or on whose behalf the alert was forwarded if it was forwarded automatically. 8992.112,1.01 FORWARDING COMMENT 1;1 FREE TEXT INPUT TRANSFORM:K:$L(X)>240!($L(X)<1) X LAST EDITED: FEB 20, 2003 HELP-PROMPT:Answer must be 1-240 characters in length. DESCRIPTION:This is the comment which was sent to the recipient along with the forwarded alert. The following is the global map structure of the new multiple: ^XTV(8992.1,D0,20,D1,2,0)=^8992.112D^^ (#2) FORWARDED DATE/TIME ^XTV(8992.1,D0,20,D1,2,D2,0)= (#.01) FORWARDED DATE/TIME [1D] ^ (#.02) ==>FORWARDING CATEGORY [2P] ^ (#.03) FORWARDED BY ==>OR FOR [3P] ^ ^XTV(8992.1,D0,20,D1,2,D2,1)= (#1.01) FORWARDING COMMENT [1F] ^ 8992.11,3 SURROGATE FOR 3;0 POINTER Multiple #8992.113 8992.113,.01 SURROGATE FOR 0;1 POINTER TO NEW PERSON FILE (#200) (Multiply asked) LAST EDITED: FEB 20, 2003 HELP-PROMPT:Enter the NEW PERSON entry for which the current recipient is acting as surrogate on this alert. DESCRIPTION:This field is used to track which user or users the current recipient is receiving the current alert while acting as surrogate. CROSS-REFERENCE:8992.113^B 1)= S ^XTV(8992.1,DA(2),20,DA(1),3,"B",$E(X,1,3 0),DA)="" 2)= K ^XTV(8992.1,DA(2),20,DA(1),3,"B",$E(X,1,3 0),DA) 8992.113,.02 DATE/TIME - SURROGATE FOR 0;2 DATE INPUT TRANSFORM:S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X LAST EDITED: FEB 20, 2003 HELP-PROMPT:Enter the date/time that this alert was received while acting as a surrogate for the intended recipient. DESCRIPTION: This field has the date/time when the alert was sent to the current recipient while acting as a surrogate for the originally intended recipient. The following is the global map structure of the new multiple: ^XTV(8992.1,D0,20,D1,3,0)=^8992.113P^^ (#3) SURROGATE FOR ^XTV(8992.1,D0,20,D1,3,D2,0)= (#.01) SURROGATE FOR [1P] ^ (#.02) DATE/TIME - ==>SURROGATE FOR [2D] ^ NOISs MON-0902-51640 LEX-1102-41218 OKL-0902-71635 HEH-0303-40570 DAY-0903-42005 NYH-1003-11010 MWV-1003-22265 MWV-1003-22662 SBY-1003-30092 SBY-1003-32710 ASH-1203-30593 HVH-0304-12467 LEX-0803-41741 SFC-1201-60229 ANN-0304-40985 HIN-0604-40728 ISH-1202-41625 DAY-0903-40490 MAR-0304-20707 E3Rs List of Test Sites ================== BIRMINGHAM, AL (Alpha/DSM) CLARKSBURG, WV (VMS/Cache) DAYTON, OH (Alpha/DSM) FARGO, ND (Alpha/ISM (NT)) LEXINGTON, KY (Alpha/DSM) NORTHERN CALIFORNIA HCS (Alpha/DSM) TOMAH,WI (VMS/Cache) Routine Summary: The following routines are included in this patch. The second line of each of these routines now looks like: ;;8.0;KERNEL;**[patch list]**;Jul 10, 1995 Checksums: ========== Checksums obtained using CHECK^XTSUMBLD Rtn Nm Chksum Before Chksum After Patch List ------ ------------- ------------ ---------- XQAL285P N/A 3472855 **285** XQALBUTL 8443097 23353614 **114,125,171,285** XQALDATA 3525117 3637657 **207,285** XQALDEL 26334655 21668304 **6,24,65,114,174,285** XQALERT 5560549 8063898 **1,65,125,173,285** XQALERT1 30919356 32870507 **20,65,114,123,125,164,173,285** XQALFWD 10746790 13242253 **6,65,91,111,114,128,129,285** XQALSET 16240502 29403670 **1,6,65,75,114,125,173,207,285** XQALSET1 N/A 1679250 **285** XQALSURO 12681484 14207055 **114,125,173,285** List of preceding patches: 129,171,173,174,207 Blood Bank Clearance: ============================= Clearance - Mar. 19, 2004 EFFECT ON BLOOD BANK FUNCTIONAL REQUIREMENTS: Patch XU*8*285 contains changes to a package referenced in VHA IO SEPG SOP 192-023 "Review of VISTA Patches for Effects on VISTA Blood Bank Software . This patch does not alter or modify any VistA Blood Bank software design safeguards or safety critical elements functions. RISK ANALYSIS: Changes made by patch XU*8*285 have no effect on Blood Bank software functionality, therefore RISK is none. Installation Instructions: 1. Users ARE allowed to be on the system during the installation. 2. DSM sites - Some of these routines are usually mapped, so you will need to disable mapping for the affected routines. 3. Use the 'INSTALL/CHECK MESSAGE' option on the PackMan menu. This option will load the KIDS (Kernel Installation and Distribution System) package onto your system. 4. You DO NOT need to stop TaskMan or the background filers. 5. The patch has now been loaded into a transport global on your system. On the KIDS menu, select the 'Installation' menu and use the following options: Verify Checksums in Transport Global Print Transport Global Compare Transport Global to Current System Backup a Transport Global Return to Programmers Prompt and use "D ^XPDKRN": Select KIDS OPTION: Install ======= Install Package(s) Select INSTALL NAME: XU*8.0*285 ========== Enter the Coordinator for Mail Group 'XQAL UNPROCESSED ALERTS': username ======== Want KIDS to INHIBIT LOGONs during the install? YES// NO == Want to DISABLE Scheduled Options, Menu Options, and Protocols? YES// NO == 6. AXP Sites - Answer 'NO' to the question 'Want to MOVE routines to other CPUs?'. 7. If the routines were unmapped as part of step 2, they should be returned to the mapped set once the installation has run to completion. Routine Information: ==================== Routine Name: - XQALERT Routine Checksum: Routine Name: - XQALERT1 Routine Checksum: Routine Name: - XQALDEL Routine Checksum: Routine Name: - XQALSURO Routine Checksum: Routine Name: - XQALBUTL Routine Checksum: Routine Name: - XQALSET Routine Checksum: Routine Name: - XQALFWD Routine Checksum: Routine Name: - XQAL285P Routine Checksum: Routine Name: - XQALDATA Routine Checksum: Routine Name: - XQALSET1 Routine Checksum: ============================================================================= User Information: Entered By : IVEY,JOEL Date Entered : FEB 03, 2003 Completed By: SINGH,GURBIR Date Completed: AUG 09, 2004 Released By : TILLIS,LEWIS Date Released : AUG 13, 2004 ============================================================================= Packman Mail Message: ===================== $END TXT