$TXT Created by G at CHY0077.FO-BAYPINES.DOMAIN.EXT (KIDS) on Wednesday, 11/19/25 at 16:59 ============================================================================= Run Date: DEC 16, 2025 Designation: SD*5.3*922 Package : SD - SCHEDULING Priority: Mandatory Version : 5.3 SEQ #775 Status: Released Compliance Date: JAN 06, 2026 ============================================================================= Associated patches: (v)SD*5.3*813 <<= must be installed BEFORE `SD*5.3*922' (v)SD*5.3*827 <<= must be installed BEFORE `SD*5.3*922' (v)SD*5.3*903 <<= must be installed BEFORE `SD*5.3*922' (v)SD*5.3*907 <<= must be installed BEFORE `SD*5.3*922' (v)SD*5.3*917 <<= must be installed BEFORE `SD*5.3*922' (v)SD*5.3*918 <<= must be installed BEFORE `SD*5.3*922' (v)SD*5.3*920 <<= must be installed BEFORE `SD*5.3*922' Subject: SCHEDULING UPDATES TO SUPPORT FRONT END APPS - SPRINTS 14.2 & 14.3 Category: - Routine - Enhancement (Mandatory) - Other Description: ============ VistA Scheduling (VS) patch SD*5.3*922 includes several defect corrections and enhancements including: The logic supporting the conversion of dates to and from International Organization for Standardization (ISO) format was optimized to enhance run time performance. The Scheduling letters were updated to remove Personally Identifiable Information (PII) from the upper right-hand portion of the letter. The logic supporting SDES2 SET CLINIC AVAILABILITY Remote Procedure Call (RPC) was updated to allow zero for the timeslot count range for Stop Code 130 - EMERGENCY DEPT. The SDES2 DISPOSITION RECALL REQ RPC was updated to allow all users the ability to disposition a recall request. The logic supporting the Contact Attempts has been updated to prevent duplicate entries in the "REQPTR" cross-references. The SDES922P Post install will clean up the duplicate "REQPTR" cross-references. The logic supporting the SDES2 CANCEL CLINIC AVAIL RPC was updated to strip out any control characters in the two input arrays prior to running the RPC. The SDES2 BLOCK AND MOVE RPC was updated to update the corresponding Parent Request when a child appointment is Block and Moved. The SDES922P Post Install routine will identify all Appointments with an Enterprise Appointment Services (EAS) number that were made prior to the installation of patch 910 whose start date is between 3/1/2026 and 3/8/2026. The SDES2 SEARCH CLINIC SLOTS RPC was updated to correctly return slots when the interval is 5 weeks. The SDES2 CANCEL CLINIC AVAIL RPC definition was updated to include additional details on the CANCEL("FULL PARTIAL FLAG") input parameter and to include more details in the returned JavaScript Object Notation (JSON) object related to the individual Internal Entry Number (IEN) of any scheduled appointments for the cancelled availability. The following RPCs were updated to include the NonCountClinic element in the returned JSON object: SDES GET APPTS BY CLIN IEN 3 SDES GET APPTS BY PATIENT DFN3 SDES2 GET APPT BY APPT IEN SDES2 GET APPTS BY APPT IENS SDES2 GET APPTS BY CLINIC IEN SDES2 GET APPTS BY CLINIC LIST SDES2 GET APPTS BY CLN RES IEN SDES2 GET APPTS BY PAT DFN2 SDES2 GET APPTS BY PATIENT DFN The logic supporting the following RPCs was updated so that if a child is missing from the parent and the parent still has a PID, this does not cause PIDs to show without the child: SDES2 GET APPT REQ BY DFN SDES2 GET APPT REQ BY IEN SDES2 GET APPT REQ BY TYP VET SDES2 GET APPT REQ LIST BY DFN EHRM Impact Statement: ---------------------- This patch should have no EHRM impact, and can be installed at all sites, including EHRM converted sites. Patch Components: New/Modified/Deleted ----------------- -------------------- Files & Fields Associated: New/Modified/Deleted -------------------------- -------------------- File Name (Number) Field Name New/Modified/Deleted ------------------ ---------- -------------------- N/A Forms Associated: ----------------- Form Name File Number New/Modified/Deleted --------- ----------- -------------------- N/A Mail Groups Associated: ----------------------- Mail Group Name New/Modified/Deleted --------------- -------------------- N/A Options Associated: ------------------- Option Name Type New/Modified/Deleted ----------- ---- -------------------- N/A Protocols Associated: --------------------- Protocol Name New/Modified/Deleted ------------- -------------------- N/A Security Keys Associated: ------------------------- Security Key Name ----------------- N/A Templates Associated: --------------------- Template Name Type File Name (Number) New/Modified/Deleted ------------- ----------------------- -------------------- N/A Remote Procedures Associated: ----------------------------- Remote Procedure Name New/Modified/Deleted --------------------- -------------------- SDES GET APPTS BY CLIN IEN 3 Modified SDES GET APPTS BY PATIENT DFN3 Modified SDES2 CANCEL CLINIC AVAIL Modified SDES2 GET APPT BY APPT IEN Modified SDES2 GET APPTS BY APPT IENS Modified SDES2 GET APPTS BY CLINIC IEN Modified SDES2 GET APPTS BY CLINIC LIST Modified SDES2 GET APPTS BY CLN RES IEN Modified SDES2 GET APPTS BY PAT DFN2 Modified SDES2 GET APPTS BY PATIENT DFN Modified Parameter Definitions Associated: --------------------------------- N/A Additional Information: ----------------------- N/A New Service Requests (NSRs): N/A Defect Tracking System Ticket(s) & Overview: -------------------------------------------- 1) VSE-10269: VistA: Rewrite date conversion logic in FMTISO^SDAMUTDT and ISOTFM^SDAMUTDT. Problem: The logic that converts FileMan dates to and from ISO format has been identified to needlessly, repeatedly loop over data and this has caused the function to run extremely slow at times which slows down RPC execution on the back end. Resolution: The logic supporting the conversion of dates to and from International Organization for Standardization (ISO) format was optimized to enhance run time performance. 2) VSE-10472: VistA: Remove the Initial of the Patient's Last Name and Last 4 Numbers of their SSN from Scheduling Letters. Problem: As a scheduler, I want to remove the initial of the patient's last name and last four numbers of their Social Security Number (SSN) so that PII is not displayed on the upper right-hand corner of the scheduling letters and postcards that are automatically generated and mailed to the Veterans. Resolution: The Scheduling letters were updated to remove Personally Identifiable Information (PII) from the upper right-hand portion of the letter. 3) VSE-10543: VistA: Modify the validation within create clinic availability to allow for a slot to be 0 if the stop code is 130 (EMERGENCY DEPT. Problem: Integrated Veteran Care (IVC) has shared that clinics with the stop code of 130 (Description: emergency clinic) are exempt from the 1-26 timeslot count range and are allowed zeros as a valid count. Resolution: The logic supporting SDES2 SET CLINIC AVAILABILITY Remote Procedure Call (RPC) was updated to allow zero for the timeslot count range for Stop Code 130 - EMERGENCY DEPT. 4) VSE-10566: VistA: Modify SDES2 DISPOSITION RECALL REQ to remove logic that validates that the user has permission to delete the request. Problem: SDES2 DISPOSITION RECALL REQ currently holds logic that validates that the user has permission to delete the request, when it should not have any logic preventing users from access/abilities. Resolution: The SDES2 DISPOSITION RECALL REQ Remote Procedure Call (RPC) was updated to allow all users the ability to disposition a recall request. 5) VSE-10892: VistA: Update SDEC logic that deals with creating a new contact attempt to use the SDES2 logic. Problem: An issue has been identified within the SDEC GUI logic (SDECCON and possibly other SDEC code) when a new SDEC CONTACT (#409.86) record is being created, it sometimes will overwrite an already existing SDEC CONTACT record and associate it with multiple contact attempts. This is due to improper coding practices to find/create the new SDEC CONTACT record. Because of this improper coding, there can be multiple "REQPTR" cross-references (for different patients) that point to the same SDEC CONTACT record. There is no way to determine which request the individual contact attempts are associated with, so a clean-up will be needed to remove the duplicate cross-reference, leaving the cross-reference that matches the SDEC REQUEST POINTER (#2.3) field in the main SDEC CONTACT record. Currently, with the duplicate cross-reference, the appointment request for the cross-reference that does not match the SDEC REQUEST POINTER in the main record will be locked from adding further contact attempt information. By removing the existing (bad) cross-reference, a new SDEC CONTACT record can be created to log additional contact attempts. Resolution: The logic supporting the Contact Attempts has been updated to prevent duplicate entries in the "REQPTR" cross-references. The SDES922P Post install will clean up the duplicate "REQPTR" cross-references. 6) VSE-10930: VistA: Modify SDES2 CANCEL CLINIC AVAIL to strip out any control character if it is sent in as an input parameter. Problem: Modify SDES2 CANCEL CLINIC AVAIL to strip out any control character if it is sent in as an input parameter. Resolution: The logic supporting the SDES2 CANCEL CLINIC AVAIL RPC was updated to strip out any control characters in the two input arrays prior to running the RPC. 7) VSE-10960: VistA: MRTC Parent Appt IEN is not updated when Blocking and Moving an existing appt. Problem: During research of numerous Multiple Return To Clinic (MRTCs) issues an issue with Block and Move was discovered. When an existing appointment is block and moved into a new appointment, the parent is not properly being update with the new appointment IEN. Resolution: The SDES2 BLOCK AND MOVE RPC was updated to update the corresponding Parent Request when a child appointment is Block and Moved. 8) VSE-10962: VistA: Create a Post install report of all Appointments with an EAS number that were made prior to the installation of patch 910 that start date is between 3/1/2026 and 3/8/2026. Problem: Prior to patch SD*5.3*910 the logic within the SDESUTIL and SDES2UTIL had an issue where the time for appointments made for dates between 3/1/2026 and 3/8/2026 was incorrectly changing the time by one hour. A report is needed to identify appointments that were possibly affected by this issue. A prior request created already created a post install for this report; however, it has been requested that we modify this post install to also verify that the appointment has an Enterprise Appointment Services (EAS) number which would help identify those appointments made via SDES code. Resolution: The SDES922P Post Install routine will identify all Appointments with an Enterprise Appointment Services (EAS) number that were made prior to the installation of patch 910 whose start date is between 3/1/2026 and 3/8/2026. 9) VSE-10967: VistA: Consecutive slots being returned are not being returned at a 5 week interval. Problem: Consecutive slots being returned are not being returned at a 5 week interval. Resolution: The SDES2 SEARCH CLINIC SLOTS RPC was updated to correctly return slots when the interval is 5 weeks. 10) VSE-11000: VistA: Update SDES2 CANCEL CLINIC AVAIL description. Problem: Acheron has reported that the documentation regarding SDES2 CANCEL CLINIC AVAIL does not inform the user what appointments were cancelled when availability is cancelled for the clinic. Resolution: The SDES2 CANCEL CLINIC AVAIL RPC definition was updated to include additional details on the CANCEL("FULL PARTIAL FLAG") input parameter and to include more details in the returned JavaScript Object Notation (JSON) object related to the individual Internal Entry Number (IEN) of any scheduled appointments for the cancelled availability. 11) VSE-11002: VistA: Modify SDES2 GET APPT RPCs to include the NonCount value in the clinic object. Problem: Due to a need to be able to identify appointments as NonCount, it was identified that the NonCount value from the clinic needs to be included in the Appointment object. Resolution: The following RPCs were updated to include the NonCountClinic element in the returned JavaScript Object Notation (JSON) object. SDES GET APPTS BY CLIN IEN 3 SDES GET APPTS BY PATIENT DFN3 SDES2 GET APPT BY APPT IEN SDES2 GET APPTS BY APPT IENS SDES2 GET APPTS BY CLINIC IEN SDES2 GET APPTS BY CLINIC LIST SDES2 GET APPTS BY CLN RES IEN SDES2 GET APPTS BY PAT DFN2 SDES2 GET APPTS BY PATIENT DFN 12) VSE-11058: VistA: Modify SDES2 GET APPT REQ RPCs to get the MRTC PatientIndicatedDate from the child request, not the parents list. Problem: During the research for the MRTC Null issue, it was discovered that the logic is pulling the Patient Indicated Date (PID) from the parent's MRTC CALC PREF DATE multiple vs. the Child request itself. In theory this should work, but with the data issues, this doesn't always align correctly with the patient indicated date on the child. It also, due to data issues, creates the null error that is preventing the user from taking action on the parent request. Resolution: The logic supporting the following RPCs was updated so that if a child is missing from the parent and the parent still has a PID, this does not cause PIDs to show without the child: SDES2 GET APPT REQ BY DFN SDES2 GET APPT REQ BY IEN SDES2 GET APPT REQ BY TYP VET SDES2 GET APPT REQ LIST BY DFN Test Sites: ----------- Fort Harrison, MT (FHM) Salt Lake City, UT (SLC) Test Sites - SNOW Change Order #: --------------------------------- Fort Harrison, MT (FHM): CHG0673502 Salt Lake City, UT (SLC): CHG0673499 Software and Documentation Retrieval Instructions: ---------------------------------------------------- Software is distributed by PackMan message. Other Software Files: This release also includes documentation and other software files. They can be obtained at: https://download.vista.domain.ext/index.html/SOFTWARE/ File Title File Name Format -------------------------------------------------------------------------- PIMS Technical Manual SD_PIMS_TM Binary Documentation describing the new functionality is included in this release. Documentation can be found on the VA Software Documentation Library at: https://www.domain.ext/vdl/. Documentation can also be obtained at https://download.vista.domain.ext/index.html/SOFTWARE. Documentation Title File Name --------------------------------------------------------------------- PIMS Technical Manual SD_PIMS_TM Patch Installation: ------------------- Pre/Post Installation Overview: ------------------------------- Sites will read the National Patch Module (NPM) MailMan message and extract the Kernel Installation & Distribution System (KIDS) build. Then sites will use the Kernel Installation & Distribution System [XPD MAIN] menu to perform checks and install the patch. Pre-Installation Instructions: ------------------------------ This patch may be installed with users on the system, although it is recommended that it be installed during non-peak hours to minimize potential disruption to users. This patch should take less than 5 minutes to install. Post-install routine SDES922P will perform the following actions: 1. Will identify all Appointments with an Enterprise Appointment Services (EAS) number that were made prior to the installation of patch 910 whose start date is between 3/1/2026 and 3/8/2026. 2. Will clean up Full Day cancellations on clinics. 3. Will clean up the duplicate "REQPTR" cross-references. Installation Instructions: 1. Choose the PackMan message containing this build. Then select the INSTALL/CHECK MESSAGE PackMan option to load the build. 2. From the Kernel Installation and Distribution System Menu, select the Installation Menu. From this menu, A. Select the Verify Checksums in Transport Global option to confirm the integrity of the routines that are in the transport global. When prompted for the INSTALL NAME enter SD*5.3*922. NOTE: Using will not bring up a Multi-Package build even if it was loaded immediately before this step. It will only bring up the last patch in the build. B. Select the Backup a Transport Global option to create a backup message. You must use this option and specify what to backup; the entire Build or just Routines. The backup message can be used to restore the routines and components of the build to the pre-patch condition. i. At the Installation option menu, select Backup a Transport Global ii. At the Select INSTALL NAME prompt, enter SD*5.3*922 iii. When prompted for the following, enter "R" for Routines or "B" for Build. Select one of the following: B Build (including Routines) R Routines Only Backup Type: B// iv. When prompted "Do you wish to secure your build? NO//", press and take the default response of "NO". v. When prompted with, "Send mail to: Last name, First Name", press to take default recipient. Add any additional recipients. vi. When prompted with "Select basket to send to: IN//", press and take the default IN mailbox or select a different mailbox. C. You may also elect to use the following options: i. Print Transport Global - This option will allow you to view the components of the KIDS build. ii. 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 of the components of this patch, such as routines, DDs, templates, etc. D. Select the Install Package(s) option and choose the patch to install. i. If prompted 'Want KIDS to Rebuild Menu Trees Upon Completion of Install? NO//', answer NO. ii. When prompted 'Want KIDS to INHIBIT LOGONs during the install? NO//', answer NO. iii. When prompted 'Want to DISABLE Scheduled Options, Menu Options, and Protocols? NO//', answer NO. Post-Installation Instructions: ------------------------------- Post install routine SDES922P will automatically run at the end of the installation process. After the post install has finished running, sites can delete the SDES922P routine using the Delete Routines [XTRDEL] if they wish. Back-Out Plan/Roll Back Plan: ----------------------------- 1. Load the Backup MailMan Message a. Go into MailMan and find the backup message created in step 3a of the installation process and read that message. b. At the "Type to continue or '^' to exit:" prompt enter ^ to get to the command prompt. c. At the command prompt enter X for eXtract and press enter. d. At the "Select PackMan function:" prompt enter 6 for INSTALL/CHECK MESSAGE and press enter. e. At the "OK to Continue with Load? NO//" prompt, type YES and press enter. f. At the "Want to Continue with Load? YES//" prompt, press enter. g. Exit MailMan. 2. Go Into the Kernel Installation & Distribution System (KIDS) and load and install the backup like you would a regular patch. a. Enter D ^XUP at the command prompt. b. At the "Select OPTION NAME:" prompt, enter Kernel Installation & Distribution System" and press enter. c. From the main KIDS menu, select the Installation ... option. d. From the Installation ... option, select 6 Install Package(s). e. At the "Select INSTALL NAME:" prompt enter SD*5.3*922b. f. If prompted for "Want KIDS to INHIBIT LOGONs during the install? NO//" take the default by pressing enter. g. If prompted for "Want to DISABLE Scheduled Options, Menu Options, and Protocols? NO//" take the default by pressing enter. h. At the DEVICE: prompt, enter the output device of your choice. i. Verify that the SD*5.3*922b backup installs without any issues. Routine Information: ==================== The second line of each of these routines now looks like: ;;5.3;Scheduling;**[Patch List]**;Aug 13, 1993;Build 7 The checksums below are new checksums, and can be checked with CHECK1^XTSUMBLD. Routine Name: SDC Before: B34869849 After: B35608914 **15,32,79,132,167,478,487,523, 545,627,684,724,758,780,864, 893,922** Routine Name: SDEC40 Before: B78135295 After: B76550637 **627,665,694,785,813,922** Routine Name: SDECCON Before: B48535110 After: B64774519 **669,686,781,785,827,922** Routine Name: SDES2APPTUTIL Before:B102041437 After:B102598081 **866,871,875,877,878,880,881, 890,893,905,907,922** Routine Name: SDES2APTLETTER Before:B129651188 After:B132022466 **895,898,899,901,903,922** Routine Name: SDES2BLDAPPT44 Before: B40712829 After: B41646984 **871,877,880,887,895,922** Routine Name: SDES2BLOCKANDMOV Before: B94550593 After: B94581242 **875,880,889,895,897,898,899, 920,922** Routine Name: SDES2CANCLNAVAIL Before: B74748003 After: B74952478 **869,873,875,880,886,893,898, 902,914,922** Routine Name: SDES2CRTCLNAVAL2 Before:B171955602 After:B175467196 **904,914,919,920,922** Routine Name: SDES2DISPRECALL Before: B17425158 After: B13360762 **866,895,922** Routine Name: SDES2GETAPPTREQ Before:B170183812 After:B158100230 **873,877,878,880,890,893,908,922** Routine Name: SDES2SEARCHSLOTS Before: B93085665 After: B95544319 **897,899,908,918,922** Routine Name: SDES2UTDT Before: n/a After: B65806356 **922** Routine Name: SDES2UTIL Before:B162283076 After:B166385697 **853,857,864,877,887,897,910, 907,922** Routine Name: SDES2UTIL1 Before:B197452417 After:B199373303 **870,861,873,890,919,922** Routine Name: SDES922P Before: n/a After: B51410546 **922** Routine Name: SDESAPPTLETTERS Before:B127032681 After:B128867061 **824,895,903,922** Routine Name: SDESAPPTLETTERSV Before: B49675533 After: B49895450 **825,917,922** Routine Name: SDLT Before: B31244894 After: B31508296 **185,213,281,330,398,523,441, 555,622,641,680,705,917,922** Routine list of preceding patches: 813, 827, 903, 907, 917, 918, 920 ============================================================================= User Information: Entered By : Date Entered : JUN 23, 2025 Completed By: Date Completed: DEC 16, 2025 Released By : Date Released : DEC 16, 2025 ============================================================================= Packman Mail Message: ===================== $END TXT