#                                                    #
#  Waypoint 1.11.1                                   #
#  ©2017-2023, Laurel Bridge Software                #
#                                                    #
#  Version History                                   #
#                                                    #

Changes in 1.11.1 (2023-03-02):

 - Added an alert to Waypoint's toolbar if the number of orders has reached the configured "Max Orders Alert Threshold" value.
 - Added an app config setting to WaypointClient.exe.config and WaypointService.exe.config for specifying the GRPC port number for communication between the two processes, and changed the default from 10001 to 55600.
 - Removed the stringent email format validation check that occurred when setting up email recipients for notifications, in order to allow newer email recipient formats.
 - Removed the Max Orders purger, the Completed Orders purger, and the Unfinished Orders purger. They have been replaced with the Past Orders purger and the Max Orders Alert Threshold. See the user manual for more details.
 - Added an alert to Waypoint's toolbar if any orders containing a null study date are detected.
 - Added an option to configurably not store the HL7 message text in the database. See the user manual for more details.
 - The TLS Certificate and Password textfields on the DICOM Options->System and HL7 Options->System tabs are now enabled regardless of what DICOM/HL7/HTTPS options are enabled or disabled.
 - Added additional documentation to the user manual.
 - Disabled the as-yet unused blue "edit" hyperlink for Filters on the HL7 Options->HL7 Sources tab.
 - Increased the minimum size of the main UI window.
 - Consolidated the codeSequence and orderMessages database tables into the worklistOrders table.
 - Added numerous database indexes to improve performance.
 - Fixed an issue where a second C-Find request on a single DICOM association wouldn't get handled correctly.
 - Added improved trace logging to help troubleshoot any startup issues.

Changes in 1.11.0 (2022-11-23):

 - Mapping Groups in an HL7 MWL Mapping cannot have the same DicomTag.  On clicking OK, all duplicates are displayed and must be resolved before the configuration can be saved.
 - Both the Web UI and Waypoint Client provide a feature to view and search the log files by AE Title, Session ID, Thread ID and date/time ranges.
 - The "Orders" web page now allows the user to search any of the five custom columns.  The values in the custom columns are generated as new orders are created or updated.
 - The DICOM Rule option "Stop Rule Processing On Match"  is implemented, allowing multiple rules to be applied to C-Find requests and UPS-RS search queries.
 - Unlimited responses are no longer supported on DICOM System settings to prevent excessive usage of system and network resources.  The Max Responses value is now capped at 20,000.
 - Fixed a defect with UPS-RS search to process all DICOM rules that apply and honor the Stop Rule Processing On Match option.
 - Increased the default Database Long Query Timeout from 180 to 600 seconds to prevent SQL timeouts during database upgrades.
 - AE Rule regular expressions and replacement values support literal commas in the expression, e.g. regular expression: "^.{1,16}$", replacement "Laurel Bridge, Inc."
 - HL7 Rule option Stop Rule Processing On Match is fully functional.  This allows a single incoming HL7 message to create multiple worklist orders with different HL7 MWL Mappings.
 - Pressing the DICOM, Web, and HL7 "Start/Stop" buttons now displays a confirmation dialog prior to performing the selected action.
 - The "Search" bar on the "Patients" and "Orders" screens now allow for parameterized searching: the labels "equals:", "starts:", and "ends:" can precede a search term, which will restrict the matching according to the label. No label defaults to the current behavior, which performs a logical "contains" search.
 - The webserver is restarted now only if a setting that affects the webserver has changed.

Changes in 1.10.0 (2022-06-24):

 - The minimum system requirement for SQL Server is now SQL Server 2016.
 - Fixed defect with applying AE Rule pattern replacements to incoming C-Find requests.
 - Removed HL7Destinations from the Waypoint configuration because they are not used by Waypoint.
 - Improved the database upgrade process to prevent installation failures caused by other open connections to the Waypoint database, such as database mirroring.
 - Documented the DICOM Execute Rule condition in the User Manual; see sections 4.3.1 and 4.3.2 for more information.
 - Associations with a bad transfer syntax are now rejected.
 - Database upgrades now use the long query timeout.
 - Improved the application upgrade logic to ensure the database version and database schema are synchronized throughout each upgrade iteration.
 - Implemented new macros: ${NOW}, ${NOW-hours}, and ${NOW+hours}. See the User Manual section for more information.
 - Fixed defect with updating orders that have an accession number with the same pattern that the ${ACCESSION_NUMBER} macro auto-generates, i.e. "ANxxxxxxxxxxxxxx".
 - Fixed defect to prevent worklist updates from being blocked following a SQL exception from a previous database error.

Changes in 1.9.4 (2022-05-24):

 - Fixed an issue with decrementing the HL7 active connections count due to a transient database connectivity outage.

Changes in 1.9.3 (2022-04-25):

 - Improved SQL query performance.  Note, there can be no open database connections the first time this release is launched, including SQL Server Management Studio.
 - Updated to HL7 1.4.0.

Changes in 1.9.2 (2022-03-21):

 - The configuration for HL7 MWL Mappings Pattern Replacements accepts an empty value or "" as the Replacement to return an blank value for the given DICOM element in the query responses.
 - Updated to .NET Core 3.1.417.

Changes in 1.9.1 (2022-03-08):

 - The Waypoint client application no longer attempts to modify a configuration file in Waypoint's installation folder. Prior to this change, elevated permissions were required to allow modification of the configuration file.

Changes in 1.9.0 (2022-01-27):

 - Import Configuration is disabled if DICOM, Web, or HL7 are running.  All input must be stopped to import a configuration file.
 - Fixed defect with importing DICOM rules to verify the selected AE Rule and HL7 MWL Mapping exist.
 - Fixed a defect with changing system settings while HL7 is running.
 - Fixed a TLS issue and removed the authentication timeout from the TLS configuration.
 - Fixed an SQL exception error that caused the Waypoint service to shutdown.  Failure to store an HL7 message increments the HL7 Aborted message count on the Waypoint client.
 - Fixed a defect when renaming HL7 MWL Mappings.
 - The database information at the bottom of Waypoint client uses the configured database name and does not require the database to be named "Waypoint".
 - Added support to enable HSTS to automatically redirect HTTP to HTTPS for the Web UI.
 - Patient Date Of Birth correctly matches patients when using the Equals filter.
 - Improved formatting and layout on the Web UI order creation form.
 - Various performance enhancements with DICOM queries.
 - The database update scripts use the configured database name and do not require the database to be named "Waypoint".
 - The database schema was updated to set the column type to nvarchar for all data that supports extended character sets.
 - The character set from HL7 messages, MSH|18, is stored in the database with the worklist order.  This allows queries to automatically set the corresponding specific character set in the response to ensure names are encoded correctly.

Changes in 1.8.1 (2021-10-11):

 - Modified the behavior for DICOM Rules that query selected worklist providers and update Waypoint's Database.  The new SQL worklist order column worklistProvider is used instead of the institutionName to store the name of the worklist provider.  Orders that no longer exist in the worklist provider are deleted from Waypoint's database.  Note, existing orders retrieved from worklist providers from previous versions of Waypoint will have the worklist provider's name stored in the institution name.
 - Independent of the System Log Verbosity, HL7 Source Nodes, DICOM Worklist Users and Worklist Providers can set Logging to "On" to enable verbose logging for the specific resource.
 - HL7 Sources can be added or removed while the Waypoint service is running.  Added HL7 sources will immediately accept messages on the configured port and removed HL7 sources will stop accepting messages on the removed port.
 - Fixed a defect in HL7 MWL Mappings to update the value for the ${TIMESTAMP} macro on each new HL7 message.
 - The query timeout to worklist providers is the Receive Timeout(s) from the Worklist Provider's Setting DIMSE Settings.  Previously, the query timeout was infinite.
 - Database performance improved by automatically detecting index fragmentation and rebuilding the NonClusteredIndexes on the worklistOrders table. This check is performed once a day while Waypoint is idle.
 - Improved HL7 and DICOM query performance on systems that have a large number of Waypoint configuration settings, such as Rules or HL7 MWL Mappings.
 - Worklist Users can now be configured to allow even context ids.
 - Updated to DCF 3.4.50.
 - Improved performance with handling requested and released associations from Worklist User Sources connecting to Waypoint.
 - Pattern/Replacements in both DICOM AE Rules and HL7 MWL Mappings are allowed to contain embedded comma characters.  For example, the regular expression pattern "^.{1,16}$" and the replacement value "Laurel Bridge, Inc.".
 - On a failure to query an external selected Worklist Provider, the query failure is propagated back to the calling SCU.
 - Worklist providers supports the After Failures logging mode to enable verbose logging for that Worklist Provider after reaching the error count threshold.

Changes in 1.8.0 (2021-06-22):

 - Added Import Configuration and Export Configuration to the Waypoint Client File menu.
 - Added ability to export and import DICOM: Worklist Users, Worklist Providers, Rules, and AE Rules, and HL7: HL7 Sources, HL7 Rules, and HL7 MWL Mappings to and from files.
 - AE Rule names are allowed to have special characters in the name, for example, the / character in "Modalities CR/DX".
 - Added an option to disable http/2 on the Web Interface for older Windows operating systems.
 - Worklist Providers with transport mode HTTP RESTFUL can now access WCF Web Services that require authentication.
 - Added support for group Managed Service Accounts (gMSA) by moving all SQL Server access to the Waypoint Service.
 - Waypoint uses Kestrel as its web server and no longer requires IIS Express.

Changes in 1.7.1 (2021-04-08):

 - In Verbose logging mode, a summary of the rule that matched is written to the Waypoint Service logs for DICOM queries and HL7 messages.
 - The ${ACCESSION_NUMBER} macro generates a unique accession number with the format “ANyyJJJhhmmssxxx”, where yy is year, JJJ is Julian day of year, hhmmss is hour, minute, second, and xxx is 3 digit counter that is incremented for each accession number generated in the same second.

Changes in 1.7.0 (2020-09-11):

 - Additional extended character sets are supported for both DICOM query responses and HL7 Messages. See section 6 of the Waypoint DICOM Conformance Statement for more details.
 - The Composer DICOM filter is available for incoming messages from Worklist Users and outgoing messages to Worklist Providers.
 - Memory improvements when querying external worklist providers.
 - Improvements to TLS encrypted connections for HL7.
 - Changed the default DICOM TLS listen port to 2764 in order to avoid conflict with Compass' default listen port.

Changes in 1.6.0 (2020-06-22):

 - Incoming Web Services can be enabled at startup from the DICOM or HL7 System configuration screens.
 - Patient birthdate, Study Date, Scheduled Procedure Step Start Date, Scheduled Procedure Step End Date, and Study Date in HL7 messages can be in DICOM format (yyyymmdd) or common format (mm/dd/yyyy).
 - Waypoint Client must always Run As Administrator because it updates WaypointClient.exe.config with the current log file name.
 - Added the macro ${NEWUID} that can be used to generate the value for Instance UID DICOM elements, e.g. Study Instance UID and Referenced Patient SOP Instance UID.  The value is generated by DCF 3.4 DataDictionary.CreateUid() and has the format 1.2.840.114089.
 - Improved the clean shutdown of both WaypointClient and WaypointService, allowing them to restart immediately after being shutdown.
 - Added Visits/ReferencedPatientSopClassUid (0008,1120.0008,1150) and Visits/ReferencedPatientSopInstanceUid (0008,1120.0008,1155) to the database.
 - Added HTTP RESTFUL, Web Service, and SQL Connections to the Waypoint Client to display connection statistics for each of the Worklist Provider transport modes.
 - For newly created HL7 MWL Mappings, the default value for WorklistOrders/ScheduledProtocolCodeSequence_CodingSchemeDesignator (0040,0100.0040,0008.0008,0102) and WorklistOrders/RequestedProcedureCodeSequence_CodingSchemeDesignator  (0032,1064.0008,0102) is "LOCAL". The default value for WorklistOrders/SpecificCharacterSet (0008,0005) is "ISO_IR 100".
 - Worklist Providers with transport mode HTTP RESTFUL support invoking both GET and POST HTTP methods.  Also, Web Service and HTTP RESTFUL worklist providers can specify an Authorization Worklist Provider that retrieves the access_token from the server to allow invoking HTTP methods that require authorization.

Changes in 1.5.1 (2020-04-22):

 - Improved robustness when the configuration for the Default DICOM Rule is edited.
 - Waypoint Client now saves the form window's size and location.
 - Waypoint Client DICOM Association Status table displays "SOP not enabled" with State Rejected if all requested SOP classes in the association request are not enabled.
 - Fixed a defect with queries that matched both the Scheduled Procedure Step Date range and Scheduled Procedure Step Time range.

Changes in 1.5.0 (2020-04-08):

 - Added compliance with DICOM Standard Part 2 section C. Sequence Matching, see DICOM Rules Action in User Manual for more information.

Changes in 1.4.0 (2020-03-27):

 - Added support for LDAPS.
 - Added ScheduledProcedureStepEndDate to the WorklistOrders database table.  This enables the DICOM elements Scheduled Procedure Step End Date and Scheduled Procedure Step End Time.  This field is used by the new ${SCHEDULED_STATUS} macro to automatically cancel new orders that are updated with an end date and have not yet started or completed.
 - Added capability to Worklist Providers to schedule polling requests with external devices using Web Service, HTTP RESTful, or SQL ODBC transport types in addition to the existing DICOM transport.

Changes in 1.3.2 (2020-03-06):

 - Database robustness improvements.

Changes in 1.3.1 (2020-02-10):

 - Stability improvements.

Changes in 1.3.0 (2020-02-05):

 - Waypoint has been updated to .NET Framework 4.8 and .NET Core 3.1.
 - Improvements to the display and handling of SOP classes listed in the supported SOP class list on the DICOM Options System tab. SOP classes not inherently supported by Waypoint will result in a DIMSE response error.
 - The Pattern Replacements in HL7 MWL Mappings now support regular expressions that contain commas, for example, ^(.{1,16}), to limit the Accession Number to 16 characters.
 - Added compliance for Modality Performed Procedure Step Retrieve SOP Class.
 - Added compliance for Modality Performed Procedure Step SOP Class.
 - The edit link on Worklist Users and Worklist Providers Filters has been disabled.  Please use AE Rules Pattern/Replacements editor which is tailored for the DICOM Elements used in the Modality Worklist Information Model.

Changes in 1.2.8 (2019-11-14):

 - The values GrpcMaxSendMessageLength and GrpcMaxReceiveMessageLength for communication between the  Waypoint client and service are now configurable via the file WaypointService.exe.Config.  If the Waypoint client displays the message "Unable to save the new configuration", increase the aforementioned values and restart the Waypoint service and client.

Changes in 1.2.7 (2019-10-29):

 - Patient name, patient birthdate, and patient sex are now allowed to change when updating an existing worklist order. Worklist queries will receive the latest updated values.  The matching criteria for an existing order is: Patient ID, Issuer of Patient ID, Accession Number, Study Instance UID, and Modality.
 - Minor UI improvements.
 - Improved robustness on purging the oldest worklist orders from the database when max orders is reached.

Changes in 1.2.6 (2019-06-04):

 - Improved database performance.
 - Waypoint DICOM System options now supports security options for the encrypted listener using TLS 1.0, 1.1. or 1.2.
 - HL7 Sources now support specifying security options for TLS 1.0, 1.1, and 1.2.
 - Fixed defect to set response for Scheduled Procedure Step Start Time to be in 24 hour time.  For example, if the worklist item was stored with Scheduled Procedure Step Start Time at 3:00 pm, the response is now correctly reported as 1500, not 0300.  Note, the time was stored correctly, but the data in the response message was not in 24 hour time.
 - Significantly improved performance creating and updating worklist items in the Waypoint database.
 - Added HL7 Execute rule condition to allow the execution of custom code before an HL7 message is inserted into the Waypoint DB.
 - Cleaned up the Waypoint Privacy and Security Statement (Appendix A in user manual) and created an MDS2 document.
 - Unfinished Order Purge Delay is a new System option to specify the retention time in days for unfinished orders by Modality and Scheduled Location.  This is useful for encounter based orders that were created but never completed.
 - A new System option was added to optionally limit the number of C-Find responses that are returned from a query.
 - Very often, field values in HL7 messages are longer than their corresponding DICOM Element allows.  The Regex pattern replacement has been enhanced to allow the value stored in Waypoint's database to be limited to the defined length for the DICOM element.  For example, Requested Procedure Description VR is SH which has a length of 16.  The following pattern is used to limit the value in the response to 16:


Note, the literal comma in the regular expression is denoted with 2-commas ,,
 - Order creation from the Web UI supports the following Requested Procedure Priorities: Routine, Low, Medium, High, and STAT.
 - To support encounter based worklist orders, Waypoint offers the feature to dynamically generate values for elements in the query response.  For example, if the mapping rule for Accession Number is configured with the macro ${ACCESSION_NUMBER}, Waypoint will generate a new unique accession number in the C-Find response.  Another example is setting Scheduled Procedure Start Date to the ${TODAY} macro.  This will set today's date in the Scheduled Procedure Step Start Date.
 - Added support for the single character wildcard '?'.  This is compliant with the DICOM Standard Part 4 section C. Wild Card Matching.
 - Admission ID column was added to the Visit table.  This is DICOM Tag 0038,0010.
 - Waypoint Worklist Providers have the option to be polled on regular intervals to retrieve worklist orders from the provider.  The Polling Rate/Hour options are: Never, Once per hour or Every 1, 5, 10, 15, 20, or 30 minutes.
 - Extended the data displayed for the association history on both the Waypoint Client and Web UI.  The columns are: Started, Ended, Called Title, Calling Title, Result, Source Name, Calling Host, Calling Port, and State of the association.
 - Requested Procedure Priority was added to the HL7 MWL Mappings for WorklistOrders.  The DICOM tag is 0040,1003 and the default HL7 tag is OBR|5.
 - UPS RESTful service requests require Web Running on the Waypoint client.  If Web is Stopped, all HTTP RESTful requests fail with HTTP Error 401, Unauthorized.

Changes in 1.2.5 (2019-01-28):

 - Added support for DICOM verbose logging.  When the log level is set to DICOM Verbose, DCF writes detailed logs of all association and PDU messages.
 - Added a configurable login warning banner.
 - Waypoint supports AE Rule configuration that can be applied to the UPS-RS SearchForUPS RESTful query.  See User Manual section 4.5.1 UPS-RS SearchForUPS for more information.
 - Memory improvements with the in-memory SQLite database context.
 - Waypoint client has been updated to accurately display Accepted, Released, Rejected and Aborted counts for association requests since startup.  The grid displays a summary of all associations.  Rejected associations will have one of the following reasons: Bad Calling Title, Bad Called Title, Bad IP Address, Bad Transfer Syntax, Source is Disabled, Limit Exceeded
 - Fixed an issue with the association counters on the Windows UI.
 - Fixed an issue with AE title mode with the Worklist provider.
 - Fixed an issue where DICOM logging could not be enabled on the Worklist provider.
 - Worklist User Source IP configuration must be either Allow Any or an IP Address.  Hostnames are no longer allowed because it makes Waypoint dependent on the DNS Server.
 - Orders page now supports multi-select to easily delete a group of orders.
 - Waypoint Web interface allows you to create and delete worklist items from the database.  This is used for encounter based exams that did not come from the HIS.
 - Responses are now populated with the Affected SOP Class UID field.
 - License information can now be displayed from the web interface.
 - The unencrypted DICOM listen port can be configurably disabled now. If disabled, the TLS DICOM listen port must be enabled.
 - Fixed an issue where changing the DICOM listen port required a restart of the service to take effect. The service no longer needs to be restarted.
 - Support for UPS-RS Web Service: SearchForUPS.  The response is compliant with DICIOM PS3.18 2017c section F.2 DICOM JSON Model.
 - Waypoint 1.2.3 and above require .NET Framework 4.7.2 to be installed.  Launching the Waypoint Client displays a dialog box that redirects you to the Microsoft Download Page for .NET Framework 4.7.2 if it is not already installed.

Changes in 1.2.4 (2018-12-05):

 - Extended the certificate validity period.

Changes in 1.2.3 (2018-10-31):

 - Added TLS support to the Modality Worklist SCU.
 - Waypoint now targets .NET Framework 4.7.2.

Changes in 1.2.2 (2018-10-09):

 - Cleaned up some incorrect audit log messages. Additionally, Audit log messages containing PHI can now be suppressed from the local Waypoint logs.
 - Waypoint now supports time range queries.  When specified, the study time range is appended to each date in the study date range to find the query responses.
 - Recommend setting Waypoint Database properties with Initial Size 3000 MB and Autogrowth By 64 MB, Unlimited.
 - Create an in-memory cache of worklist orders with Scheduled Procedure Step Start Date between yesterday and tomorrow for very fast query response.
 - AE rules now support filter replacement strings.

Changes in 1.2.1 (2018-09-12):

 - Performance enhancements.

Changes in 1.2.0 (2018-07-16):

 - Numerous stability and performance enhancements.
 - Enhancements to the display of dates and times.

Changes in 1.1.0 (2018-05-01):

 - Enhancements to rule processing logic.

Changes in 1.0.0 (2018-04-26):

 - Initial version.