$TXT Created by GINSBERG,ELIOT at MNTVBB.FO-ALBANY.MED.VA.GOV (KIDS) on Wednesday, 02/02/05 at 13:18 ============================================================================= Run Date: FEB 09, 2005 Designation: DG*5.3*585 Package : DG - REGISTRATION Priority: EMERGENCY Version : 5.3 SEQ #557 Status: Released Compliance Date: FEB 11, 2005 ============================================================================= Associated patches: (v)DG*5.3*568 <<= must be installed BEFORE `DG*5.3*585' Subject: FIX DGPRE DISPLAY CALL LIST Category: - Routine Description: ============ ISSUE # 1 Problem: If the Night task or manual entry into a Call List encountered a clinic or an eligibility exclusion, it would ignore all the other appointments after that. Resolution: Modified the routine to continue to look for the next appointment even after it encounters a clinic or eligibility exclusion. ISSUE # 2 Problem: There was a conflict in the evaluation of the error message in the temporary global vs actual appointment data for a patient or clinic. If there was an internal patient ID of 101, or an internal clinic ID of 101, then the routines would mistakenly treat those appointments as an error 101 (Appointment Database is Unavailable). Resolution: Modify the check for the error message, to correctly identify when the Appointment Database is Unavailable. ISSUE # 3 Problem: If the ADT parameter file was set to not run on weekends, and the appointment module was invoked via the Night task job, and if the end date of the calculated window (current date plus days to pull appointment) fell on a weekend, then the appointments would never be searched. Resolution: If these parameters were set, have the routine look at the begin date of the calculated window (current date) to make a decision to search for appointments. ISSUE # 4 Problem: There was a minor spelling problem in error message (Appointment Database is Unavilable) Resolution: This patch DG*5.3*585 has corrected the spelling mistake on the error message as follows: Before: Appointment Database is Unavilable. After: Appointment Database is Unavailable. ISSUE # 5 Problem: If you are trying to register a patient, and go to screen 14 (Appointments), you see both cancelled and non-cancelled appointments. Resolution: Filter out the cancelled appointments. This patch addresses the following New Service Request (NSR): ------------------------------------------------------------- There is no NSR associated with this patch. This patch addresses the following NOIS/Remedy ticket(s): --------------------------------------------------------- MAC-0105-60721 FIX DGPRE DISPLAY CALL LIST FAV-0105-70753 SDAMAPI - Appointment Database is Unavilable MAC-0105-60876 Screen 14 list cancelled appts. Overview of NOIS Message(s): ---------------------------- NOIS: MAC-0105-6072 FIX DGPRE DISPLAY CALL LIST See Issue # 1, #2 and # 3 above. Issue # 3 above was found when trying to replicate the problem. NOIS: FAV-0105-70753 SDAMAPI - Appointment Database is Unavilable See Issue # 2 and # 4 above. # 4 was found because could only replicate the problem at the client site which had a patient 101 with appointments and was treated incorrectly as 'Appointment Database Not Available'. NOIS: MAC-0105-60876 Screen 14 list cancelled appts. See Issue # 5 above Test Sites: ----------- Bronx Houston San Juan Tampa ================INSTALLATION INSTRUCTIONS ================= If installed during the normal workday, it is recommended that the following selection(s) in the OPTION (#19) file, and all of their descendants be disabled to prevent possible conflicts while running the KIDS Install. Other VISTA users will not be affected. Add New Appointments to Call List [DGPRE UPDATE CALL LIST] Preregistration Nightly Job [DGPRE PRE-REGISTER NIGHT JOB] Install Time - less than 5 minutes 1. LOAD TRANSPORT GLOBAL --------------------- Choose the PackMan message containing this patch and invoke the INSTALL/CHECK MESSAGE PackMan option. 2. DISABLE ROUTINE MAPPING (DSM for Open VMS sites only) ----------------------- Disable routine mapping on all systems for the routines listed in step 3 below. NOTE: If the routines included in this patch are not currently in your mapped routine set, please skip this step. 3. COMPONENTS SENT WITH PATCH -------------------------- The following is a list of the routines included in this patch. The second line of each of these routines now looks like: ;;5.3;Registration;**[patch list]**;Aug 13,1993 CHECK^XTSUMBLD results Routine Before Patch After Patch Patch List ------- ------------ ----------- ---------- DG1010S1 24344539 24359571 606,568,585 DGENRPD2 8204168 8208655 147,232,568,585 DGENRPT4 12232375 12246201 232,306,417,456,491 513,568,585 DGMTO1 9419264 9429873 33,182,358,568,585 DGPREBJ 5276148 5321969 109,581,568,585 DGPREBJ1 10349962 10356759 109,568,585 DGRP14 3318780 3632662 568,585 DGRPC 9983847 10232297 108,121,314,301,470 489,505,451,568,585 DGRPD 23632789 23644216 109,124,121,57,161 149,286,358,436,445 489,498,506,513,518 550,545,568,585 VAFCCCAP 10448594 10459276 91,179,553,582,568 585 VAFCCOPT 3629195 3896959 91,298,568,585 VAFHCCAP 9284466 9295148 91,582,568,585 VAFHCOPT 2811255 3083745 91,568,585 VAFHUTL 5510130 5746118 91,151,568,585 Total number of routines modified: 14 4. START UP KIDS ------------- Start up the Kernel Installation and Distribution System Menu [XPD MAIN]: Edits and Distribution ... Utilities ... Installation ... Select Kernel Installation & Distribution System Option: INStallation --- Load a Distribution Print Transport Global Compare Transport Global to Current System Verify Checksums in Transport Global Install Package(s) Restart Install of Package(s) Unload a Distribution Backup a Transport Global Select Installation Option: 5. Select Installation Option: --------------------------- NOTE: The following are OPTIONAL - (When prompted for the INSTALL NAME, enter DG*5.3*585): a. Backup a Transport Global - This option will create a backup message of any routines exported with this patch. It will not backup any other changes such as DD's or templates. b. Compare Transport Global to Current System - This option will allow you to view all changes that will be made when this patch is installed. It compares all components of this patch (routines, DD's, templates, etc.). c. Verify Checksums in Transport Global - This option will allow you to ensure the integrity of the routines that are in the transport global. 6. Select Installation Option: Install Package(s) ---------------- **This is the step to start the installation of this KIDS patch: a. Choose the Install Package(s) option to start the patch install. b. When prompted 'Want KIDS to INHIBIT LOGONs during the install? YES//' answer NO (unless otherwise indicated) c. When prompted 'Want to DISABLE Scheduled Options, Menu Options, and Protocols? YES//' answer YES (unless otherwise indicated) d. When prompted 'Enter options you wish to mark as 'Out Of Order':' Enter the following options: Add New Appointments to Call List [DGPRE UPDATE CALL LIST] Preregistration Nightly Job [DGPRE PRE-REGISTER NIGHT JOB] 7. REBUILD MAPPED ROUTINE(S) (DSM for Open VMS sites only) ------------------------- Optional - Include the routines distributed with this patch in the mapped routine set. NOTE: This step is only necessary if you performed step 2 or if you wish to include the routines in your mapped set. Routine Information: ==================== Routine Name: - DGPREBJ1 Before: 64) I $D(^TMP($J,"SDAMA301")) I $D(^TMP($J,"SDAMA301",101)) D SETTE XT^DGPREBJ("SDAMAPI - Appointment Database is Unavailable."),SETTEXT^DGPREBJ("Un able to update Call List.") Q 65) ; After: 64) ;if there is no lower level data from the 101 subscript, then i t 65) ;really is a valid error, otherwise, it could be a patient 66) ;or clinic eg 01/20/2005 67) I $D(^TMP($J,"SDAMA301")) I $D(^TMP($J,"SDAMA301",101))=1 D SET TEXT^DGPREBJ("SDAMAPI - Appointment Database is Unavailable."),SETTEXT^DGPREBJ(" Unable to update Call List.") Q 68) ; Before: 79) ...I DGPEXCL S DGPTCE=DGPTCE+1 Q 80) ...; *** Check for eligibility exclusions inthe MAS PARAMETER F ile 81) ...N DGPAELG S (DGPN5,DGPEXCL)=0 82) ...F S DGPN5=$O(^DG(43,1,"DGPREE",DGPN5)) Q:'DGPN5!(DGPEXCL) D 83) ....S DGPAELG=$P($G(^DPT(DGPPT,.36)),U) 84) ....S:$P(^DG(43,1,"DGPREE",DGPN5,0),U)=DGPAELG DGPEXCL=1 85) ...I DGPEXCL S DGPTPE=DGPTPE+1 Q 86) ...; *** Check for inpatient status 87) ...K DFN S DFN=DGPPT D INP^VADPT 88) ...I $G(VAIN(1))]"" S DGPINP=DGPINP+1 Q 89) ...; *** Check for last update in Pre-Registration Audit file 90) ...S DGPPRDT=DGPTOD+.9999,DGPPRDT=$O(^DGS(41.41,"ADC",DGPPT,DGP PRDT),-1) 91) ...S DGPNDTW=$P($G(^DG(43,1,"DGPRE")),U,2) 92) ...I DGPPRDT]""&(DGPNDTW]"") I $$FMDIFF^XLFDT(DGPDT,DGPPRDT,1)< DGPNDTW S DGPTNC=DGPTNC+1 Q 93) ...; *** Set up entries for adding to Pre-Registration Call Lis t file 94) ...K DFN S DFN=DGPPT D DEM^VADPT 95) ...S DGPPH=$P($P($G(^DPT(DGPPT,.13)),U),"~") 96) ...I DGPPH=""!(DGPPH["NO") D 97) ....S DGPPH=$P($G(^DPT(DGPPT,.33)),U,9) 98) ....I DGPPH]"" S DGPPH=$P(DGPPH,"~")_"(E)" 99) .... E S DGPPH="NO PHONE" 100) ...; 101) ...I '$D(^DGS(41.42,"B",DFN)) D 102) ....K DD,DO S DIC="^DGS(41.42,",DIC(0)="ML" 103) ....S X=DFN,DGPAPT=$O(^TMP($J,"SDAMA301",DGPN1,X,DGPDT1)) 104) ....S DIC("DR")=$P($T(FIELDS),";;",2) 105) ....D FILE^DICN 106) ....S DGPADD=DGPADD+1 107) ...E D 108) ....S DA="",DA=$O(^DGS(41.42,"B",DFN,DA),-1) 109) ....Q:$P($G(^DGS(41.42,DA,0)),U,6)="Y" 110) ....S DIE="^DGS(41.42," 111) ....S DGPAPT=$O(^TMP($J,"SDAMA301",DGPN1,DGPPT,DGPDT1)) 112) ....S DR=$P($T(FIELDS),";;",2) 113) ....D ^DIE 114) ....S DGPUPD=DGPUPD+1 115) ...K DA,DR,DIE,DIC,VADM,VA,DFN,VAERR,VAIN 116) ; After: 82) ..I DGPEXCL S DGPTCE=DGPTCE+1 Q 83) ..; *** Check for eligibility exclusions inthe MAS PARAMETER Fi le 84) ..N DGPAELG S (DGPN5,DGPEXCL)=0 85) ..F S DGPN5=$O(^DG(43,1,"DGPREE",DGPN5)) Q:'DGPN5!(DGPEXCL) D 86) ...S DGPAELG=$P($G(^DPT(DGPPT,.36)),U) 87) ...S:$P(^DG(43,1,"DGPREE",DGPN5,0),U)=DGPAELG DGPEXCL=1 88) ..I DGPEXCL S DGPTPE=DGPTPE+1 Q 89) ..; *** Check for inpatient status 90) ..K DFN S DFN=DGPPT D INP^VADPT 91) ..I $G(VAIN(1))]"" S DGPINP=DGPINP+1 Q 92) ..; *** Check for last update in Pre-Registration Audit file 93) ..S DGPPRDT=DGPTOD+.9999,DGPPRDT=$O(^DGS(41.41,"ADC",DGPPT,DGPP RDT),-1) 94) ..S DGPNDTW=$P($G(^DG(43,1,"DGPRE")),U,2) 95) ..I DGPPRDT]""&(DGPNDTW]"") I $$FMDIFF^XLFDT(DGPDT,DGPPRDT,1)0 W "NONE" G RMK After: 126) ;if there is lower subscripts hanging from the 101 node, 127) ;then it is a valid appointment, otherwise it is 128) ;an error eg 01/20/2005 129) I $D(^TMP($J,"SDAMA301",101))=1 W "Appointment Database is Unav ailable" G RMK 130) I $O(^TMP($J,"SDAMA301",DFN,DT))'>0 W "NONE" G RMK Routine Checksum: Routine Name: - VAFCCCAP Before: 80) I DGCOUNT<0,$D(^TMP($J,"SDAMA301",101)) Q PTR 81) I DGCOUNT<0,$D(^TMP($J,"SDAMA301",116)) Q PTR 82) I DGCOUNT>0 D After: 80) ;if there is data hanging from the 101 or 81) ;116 subscript, then it is a valid appointment 82) ;otherwise it is an error eg 01/20/2005 83) I DGCOUNT<0,$D(^TMP($J,"SDAMA301",101))=1 Q PTR 84) I DGCOUNT<0,$D(^TMP($J,"SDAMA301",116))=1 Q PTR 85) I DGCOUNT>0 D Routine Checksum: Routine Name: - VAFCCOPT Before: 37) .Q:$D(^TMP($J,"SDAMA301",101)) ; DATABASE IS UNAVAILABLE 38) .I DGCNT>0 S DFN=0 F S DFN=$O(^TMP($J,"SDAMA301",ENT,DFN)) Q:D FN="" D After: 37) .;if there is data hanging from the 101 subscript, then 38) .;it is a valid appointment, otherwise 39) .;it is an error eg 01/20/2005 40) .I $D(^TMP($J,"SDAMA301",101))=1 Q ; DATABASE IS UNAVAIL ABLE 41) .I DGCNT>0 S DFN=0 F S DFN=$O(^TMP($J,"SDAMA301",ENT,DFN)) Q:D FN="" D Routine Checksum: Routine Name: - VAFHCCAP Before: 79) I DGCOUNT<0,$D(^TMP($J,"SDAMA301",101)) Q PTR 80) I DGCOUNT<0,$D(^TMP($J,"SDAMA301",116)) Q PTR 81) I DGCOUNT>0 D After: 79) ;if there is data hanging from the 101 or 116 80) ;subscript, then it is a valid appointment 81) ;otherwise, it is an error eg 01/20/2005 82) I DGCOUNT<0,$D(^TMP($J,"SDAMA301",101))=1 Q PTR 83) I DGCOUNT<0,$D(^TMP($J,"SDAMA301",116))=1 Q PTR 84) I DGCOUNT>0 D Routine Checksum: Routine Name: - VAFHCOPT Before: 31) .Q:$D(^TMP($J,"SDAMA301",101)) 32) .I DGCNT>0 S DFN=0 F S DFN=$O(^TMP($J,"SDAMA301",ENT,DFN)) Q:D FN="" D After: 31) .;if there is data hanging from the 101 subscript, then 32) .;it is a valid appointment, otherwise, it 33) .;it is an error eg 01/20/2005 34) .I $D(^TMP($J,"SDAMA301",101))=1 Q 35) .I DGCNT>0 S DFN=0 F S DFN=$O(^TMP($J,"SDAMA301",ENT,DFN)) Q:D FN="" D Routine Checksum: Routine Name: - VAFHUTL Before: 36) .Q:$D(^TMP($J,"SDAMA301",101)) 37) .S SDCLIEN=0 After: 36) .;if there is data hanging from the 101 level, then 37) .;it is a valid appointment, otherwise 38) .;it is an error eg 01/20/2005 39) .I $D(^TMP($J,"SDAMA301",101))=1 Q 40) .S SDCLIEN=0 Routine Checksum: Routine Name: - DGPRC Routine Checksum: Routine Name: - DGPRD Routine Checksum: Routine Name: - DG101S1 Routine Checksum: Routine Name: - VAFCCAP Routine Checksum: ============================================================================= User Information: Entered By : MULLER,RICHARD Date Entered : FEB 17, 2004 Completed By: RUDINGER,NANCY L. Date Completed: FEB 07, 2005 Released By : GROOMS,ANTHONY E Date Released : FEB 09, 2005 ============================================================================= Packman Mail Message: ===================== $END TXT