$TXT Created by SCHRAM,JACK at NXT.KERNEL.ISC-SF.VA.GOV (KIDS) on FRIDAY, 04/24/98 at 12:34 ============================================================================= Run Date: JUN 24, 1998 Designation: XU*8*80 Package : XU - KERNEL Priority: Mandatory Version : 8 SEQ #70 Status: Released ============================================================================= Subject: Protocol File Clean-Up Category: - Routine - Informational Description: ============ IMPORTANT!!! IMPORTANT!!! IMPORTANT!!! DESCRIPTION: ============ KIDS patch XU*8*68 fixed a bug when protocols were "Deleted at Site" resulting in broken (dangling) pointers within the PROTOCOL file (#101). Patch XU*8*80 will give sites the ability to periodically search the PROTOCOL file for broken pointers and execute a routine (ENASK^XQ3) to automatically remove them. However, patches that were installed prior to XU*8*68 that deleted protocols will need to be MANUALLY checked to ensure that a newly-created protocol did not take the place of the deleted one, covering up the broken pointer. NOTE: It is important to note that the PROTOCOL file has the same structure as the OPTION file (#19) whereas field #10, ITEM corresponds to field #10, MENU, in the OPTION file. Field #10, ITEM is a multiple and a pointer to the .01 field of the parent file. Three patches that deleted protocols have been identified. The protocols deleted in these patches may have resulted in broken pointers. However, there is a possibility that a newly created protocol could reuse same IEN as the deleted one, and thus cover-up the broken pointer. Sites will need to manually ensure that a newly created protocol hasn't overwritten any of the broken ones. The three patches are identified below along with ITEM's (field #10 multiple) that one can reasonably expect to find attached to the protocols. Figures 1-5 below the ITEM listings are simulations where two broken pointers were created and one was covered up with a newly created protocol. The STEPs associated with the figures are the actions needed to cleanup the PROTOCOL file. PATCH DATE PROTOCOL (deleted) FOUND ON (file 101) ======================================================================= PX*1.0*14 2/98 PXCE ADD/EDIT STOP CODE PXCE ADD/EDIT MENU DVBA*2.7*12 9/97 DVBA C SUPER QUIT DVBA C VIEW EXAMS (MENU) DVBA C VIEW EXAMS (MENU) no parent known DVBA C VIEW JUMP (ACTION) DVBA C VIEW EXAMS (MENU) DG*5.3*140 2/98 EDR BDC CAPTURE EVENTS no parent known VAFED EDR INPATIENT CAPTURE DGPM MOVEMENT EVENTS VAFED EDR OUTPATIENT CAPTURE SDAM APPOINTMENT EVENTS NOTE: The parent protocol of the other two deleted AMIE protocols was also deleted, DVBA C VIEW EXAMS (MENU). There should have been no negative impact from the AMIE patch. The EDR BDC CAPTURE EVENTS protocol was also determined not to be a child of any known protocols. The following depicts ITEMs that may reasonably be found on the protocols identified above: ITEMS: FOUND ON: PXCE ADD/EDIT MENU PXCE ADD/EDIT DISPLAY BRIEF PXCE ADD/EDIT DISPLAY DETAIL PXCE CPT ADD PXCE DELETE V-FILE PXCE EDIT V-FILE PXCE ENCOUNTER EDIT PXCE EXAM ADD PXCE HEALTH FACTORS ADD PXCE IMMUNIZATION ADD PXCE PATIENT ED ADD PXCE POV ADD PXCE PROVIDER ADD PXCE QUIT PXCE SKIN TEST ADD PXCE TREATMENT ADD PXCE ADD/EDIT INTERVIEW DGPM MOVEMENT EVENTS ORU PATIENT MOVMT ORU AUTOLIST DGPM TREATING SPECIALTY EVENT DGJ INCOMPLETE EVENT DGOERR NOTE DG MEANS TEST DOM SD APPT STATUS IB CATEGORY C BILLING SC PCMM INPATIENT ACTIVITY SC ASSIGN PC TEAM ON DISCHARGE GMRADGPM MARK CHART PSJ OR PAT ADT DVB ADMISSION HINQ YS PATIENT MOVEMENT VSIT PATIENT STATUS PSD PAT ADT VAFH HL7 INPATIENT CAPTURE VAFC HL7 INPATIENT CAPTURE FHWMAS (not nationally released) OR GUA DC GENERIC ORDERS OCX ORDER CHECK PATIENT MOVE SDAM APPOINTMENT EVENTS ORU PATIENT MOVMT DG MEANS TEST REQUIRED SDAM LATE ENTRY IBACM OP LINK DVBA C&P SCHD EVENT PXK SDAM TO V-FILES RMPR SCH EVENT DGEN SD DISPLAY CURRENT ENROLLMENT VAFH HL7 OUTPATIENT CAPTURE VAFC HL7 OUTPATIENT CAPTURE NOTE: the "<==" represent comments made by the author and are not part of the captures. FIGURE 1: Using FM, a protocol, ZZKYLE MENU 1, is displayed with four protocols (ITEMs) attached. NXT,KDE>D P^DI VA FileMan 21.0 Select OPTION: 5 INQUIRE TO FILE ENTRIES OUTPUT FROM WHAT FILE: PROTOCOL// Select PROTOCOL NAME: ZZKYLE MENU 1 ItemText ANOTHER ONE: STANDARD CAPTIONED OUTPUT? Yes// (Yes) Include COMPUTED fields: (N/Y/R/B): NO// - No record number (IEN), no Computed Fields NAME: ZZKYLE MENU 1 ITEM TEXT: ItemText TYPE: menu CREATOR: DIMICELI,RON PACKAGE: 283 COLUMN WIDTH: 26 MNEMONIC WIDTH: 4 ITEM: ZZKYLE ACTION 1 MNEMONIC: ZZ <== 1st Item SEQUENCE: 1 ITEM: ZZKYLE ACTION 2 <== 2nd Item ITEM: ZZKYLE ACTION 3 <== 3rd Item ITEM: ZZKYLE ACTION 4 <== 4th Item HEADER: D SHOW^VALM MENU PROMPT: Select ZZ Action: TIMESTAMP: 57379,39444 STEP 1: Review the Protocols that were identified above as having a protocol deleted by a KIDS patch (i.e. PXCE ADD/EDIT MENU, DGPM MOVEMENT EVENTS, etc.). FIGURE 2: Here two protocols have been deleted, ZZKYLE ACTION 2 and ZZKYLE ACTION 3, similar to the way a KIDS patch would have deleted them prior to XU*8*68. NXT,KDE>D P^DI VA FileMan 21.0 Select OPTION: 5 INQUIRE TO FILE ENTRIES OUTPUT FROM WHAT FILE: PROTOCOL// Select PROTOCOL NAME: ZZKYLE MENU 1 ItemText ANOTHER ONE: STANDARD CAPTIONED OUTPUT? Yes// (Yes) Include COMPUTED fields: (N/Y/R/B): NO// - No record number (IEN), no Computed Fields NAME: ZZKYLE MENU 1 ITEM TEXT: ItemText TYPE: menu CREATOR: DIMICELI,RON PACKAGE: 283 COLUMN WIDTH: 26 MNEMONIC WIDTH: 4 ITEM: ZZKYLE ACTION 1 MNEMONIC: ZZ <== 1st Item SEQUENCE: 1 ITEM: 194 <== Broken Pointer ITEM: 195 <== Broken Pointer ITEM: ZZKYLE ACTION 4 <== 4th Item HEADER: D SHOW^VALM MENU PROMPT: Select ZZ Action: TIMESTAMP: 57379,39444 STEP 2: Broken pointers can be easily identified because a numeric will appear in the ITEM field. The routine XQ3 (shown in figure 4) will clean these up. You must verify that the others actually should be connected to this protocol. FIGURE 3: Here a new protocol was created, ZZJACK. However, the new protocol was created in IEN 194, covering up the previous broken pointer. NXT,KDE>D P^DI VA FileMan 21.0 Select OPTION: 5 INQUIRE TO FILE ENTRIES OUTPUT FROM WHAT FILE: PROTOCOL// Select PROTOCOL NAME: ZZKYLE MENU 1 ItemText ANOTHER ONE: STANDARD CAPTIONED OUTPUT? Yes// (Yes) Include COMPUTED fields: (N/Y/R/B): NO// - No record number (IEN), no Computed Fields NAME: ZZKYLE MENU 1 ITEM TEXT: ItemText TYPE: menu CREATOR: DIMICELI,RON PACKAGE: 283 COLUMN WIDTH: 26 MNEMONIC WIDTH: 4 ITEM: ZZKYLE ACTION 1 MNEMONIC: ZZ <== 1st Item SEQUENCE: 1 ITEM: ZZJACK <== 2nd Item (Bogus) ITEM: 195 <== Broken Pointer ITEM: ZZKYLE ACTION 4 <== 4th Item HEADER: D SHOW^VALM MENU PROMPT: Select ZZ Action: TIMESTAMP: 57379,3944 STEP 3: In the above figure (Figure 3), it was verify that the 1st ITEM, ZZKYLE ACTION 1, should be attached to this protocol. The 2nd ITEM, ZZJACK, is discovered to belong to a different protocol entry and should be removed from this entry. Use FM to manually remove it from the multiple attached to this protocol (shown in figure 5). The 3rd ITEM is broken and XQ3 will clean it out (shown in figure 4). The 4th ITEM is verified as valid. FIGURE 4: Execute ENASK^XQ3 setting "%=2" from programmers mode. NXT,KDE>S %=2 D ENASK^XQ3 Do you want to remove any 'Dangling Pointers' from your PROTOCOL File? Y// Y PLEASE WAIT while I check this out . . . Option ZZKYLE MENU 1 points to missing option 195 Your PROTOCOL File is OK now (1 pointer fixed). NXT,KDE>D P^DI VA FileMan 21.0 Select OPTION: 5 INQUIRE TO FILE ENTRIES OUTPUT FROM WHAT FILE: PROTOCOL// Select PROTOCOL NAME: ZZKYLE MENU 1 ItemText ANOTHER ONE: STANDARD CAPTIONED OUTPUT? Yes// (Yes) Include COMPUTED fields: (N/Y/R/B): NO// - No record number (IEN), no Computed Fields NAME: ZZKYLE MENU 1 ITEM TEXT: ItemText TYPE: menu CREATOR: DIMICELI,RON PACKAGE: 283 COLUMN WIDTH: 26 MNEMONIC WIDTH: 4 ITEM: ZZKYLE ACTION 1 MNEMONIC: ZZ <== 1st Item SEQUENCE: 1 ITEM: ZZJACK <== 2nd Item (Bogus) ITEM: ZZKYLE ACTION 4 <== 3rd Item (was 4th) HEADER: D SHOW^VALM MENU PROMPT: Select ZZ Action: TIMESTAMP: 57379,39444 FIGURE 5: Use FM to remove the bogus protocol, ZZJACK. NXT,KDE>D P^DI VA FileMan 21.0 Select OPTION: 1 ENTER OR EDIT FILE ENTRIES INPUT TO WHAT FILE: PROTOCOL// EDIT WHICH FIELD: ALL// 10 ITEM (multiple) EDIT WHICH ITEM SUB-FIELD: ALL// .01 ITEM THEN EDIT ITEM SUB-FIELD: THEN EDIT FIELD: Select PROTOCOL NAME: ZZKYLE MENU 1 ItemText Select ITEM: ZZKYLE ACTION 4// ZZJACK BOGUS PROTOCOL ENTRY ...OK? Yes// (Yes) ITEM: ZZJACK// @ SURE YOU WANT TO DELETE THE ENTIRE ITEM? Y (Yes) Select ITEM: Select PROTOCOL NAME: Select OPTION: 5 INQUIRE TO FILE ENTRIES OUTPUT FROM WHAT FILE: PROTOCOL// Select PROTOCOL NAME: ZZKYLE MENU 1 ItemText ANOTHER ONE: STANDARD CAPTIONED OUTPUT? Yes// (Yes) Include COMPUTED fields: (N/Y/R/B): NO// - No record number (IEN), no Computed Fields NAME: ZZKYLE MENU 1 ITEM TEXT: ItemText TYPE: menu CREATOR: DIMICELI,RON PACKAGE: 283 COLUMN WIDTH: 26 MNEMONIC WIDTH: 4 ITEM: ZZKYLE ACTION 1 MNEMONIC: ZZ <== 1st Item SEQUENCE: 1 ITEM: ZZKYLE ACTION 4 <== 2nd Item (Was 4th) HEADER: D SHOW^VALM MENU PROMPT: Select ZZ Action: TIMESTAMP: 57455,50320 These problems have been reported in the following NOIS's: GNH-0498-40260 FAV-0398-71664 LOU-0398-41409 PHI-0298-21787 ROUTINES: ========= Checksums obtained using CHECK^XTSUMBLD The second line of the routine now looks like: ;;8.0;KERNEL;**[patch list]**;Jul 10, 1995 Before After Patch Routine Checksum Checksum List ---------------------------------------------------------------------- XQ3 6117796 8192492 **80** INSTALLATION: ============= 1. These routines are usually mapped on systems that allow mapping. 2. Use the 'INSTALL/CHECK MESSAGE' option on the PackMan menu. This option will load the KIDS Distribution onto your system. 3. The patch has now been loaded into a Transport global on your system. You now need to use KIDS to install the patch in the Transport global. 4. Users can remain on the system. This patch can be queued and installed at any time. TaskMan can remain running. 5. On the KIDS menu, under the 'Installation' menu, use the following options: 2 Verify Checksums in Transport Global 3 Print Transport Global 4 Compare Transport Global to Current System 5 Backup a Transport Global 6. Return to Programmers Prompt and type 'D XPDKRN': INSTALL NAME: XU*8.0*80 ========= 7. AXP Sites, after patch has installed, rebuild your map set. Routine Information: ==================== Routine Name: - XQ3 Routine Checksum: ============================================================================= User Information: Entered By : SCHRAM,JACK D Date Entered : APR 21, 1998 Completed By: DAVIS,KENNETH L Date Completed: JUN 23, 1998 Released By : GIBBONS,JOE Date Released : JUN 24, 1998 ============================================================================= Packman Mail Message: ===================== $END TXT