#----------------------------------------------------#
#                                                    #
#  Navigator 3.1.2                                   #
#  ©2017-2023, Laurel Bridge Software                #
#                                                    #
#  Version History                                   #
#                                                    #
#----------------------------------------------------#


Changes in 3.1.2 (2023-11-07):

 - Fixed an issue with sending emails to an encrypted mail server.
 - Updated to .NET 6.0.23.
 - Fixed an issue with the contents of the periodic error report.
 - Changed the default retention policy for Completed Priors Workflow Duration from two hours to two days. This default value is only applicable to new installations; the retention policy for existing installations is not changed.
 - Improved the message displayed for a workflow when a workflow's Move Requests cannot be started within a reasonable amount of time.
 - Fixed an issue with not being able to toggle between the progress bar and the numbered counts on the Move Request table's Sub-Ops column.
 - Fixed an issue with not being able to remove a configured custom column.
 - The Destination's "Max Concurrent Associations" value is now taken into account when attempting to acquire the resources for running a Move Request.
 - Fixed an issue with the pagination text below the Move Requests table.
 - Fixed a display issue with certain date / time zone combinations.
 - Fixed an issue where Move Requests could become stuck in the Queued state on a heavily loaded system where job linking is also enabled.
 - Fixed an issue with rule conditions not getting property evaluated when the choice was set to MWL Properties, HL7 Properties, RESTful Properties, or CSV Properties.
 - Changed an HL7 trigger log message to occur only if logging is enabled for that trigger.
 - Added documentation to the user manual regarding the Move Request Sub-Ops.


Changes in 3.1.1 (2023-08-24):

 - Fixed an issue where "On Workflow Start" custom scripts were being run twice.
 - Fixed an issue where a failure to acquire a resource resulted in excessive logging.
 - Minor UI improvements.


Changes in 3.1.0 (2023-07-17):

 - The maximum size for a trigger event cache key was increased from nvarchar(256) to nvarchar(max).
 - Custom code is now executed as pending C-Find and C-Move responses are received.
 - Several custom code interfaces have been refactored for consistency and correctness.
 - "Patient Study Root" has been renamed to "Patient Study Only" on the Source configuration screen.
 - Added support for "Max Number of Results to Return" for Q/R Sources and MWL Triggers.
 - The Navigator service will now automatically restart up to two times if the service ever crashes. See the user manual for more details.
 - The Navigator service now creates a "crash dump" file if the service ever crashes. See the user manual for more details.
 - Added additional documentation to the user manual to describe the Trigger Event Cache and the Trigger Event History. See Appendix D and Appendix E.
 - Improved error handling for fuzzy name matching.
 - UI enhancements to support responsive browser behavior.
 - Fixed a selection issue with custom scripts of type "Dicom Move Request".
 - Updated to .NET 6.0.16.
 - Added an improved HL7 message viewer.
 - Added a confirmation dialog when starting and stopping Navigator via the Dashboard.
 - Added a "Query Now" button to the context menu for MWL triggers.
 - Added a viewer for the trigger event cache.
 - Common property mapping definitions for HL7 trigger events are no longer hard-coded to check only MSH|9.
 - Added a "Study Description" column to the Priors Info table.
 - Added the ability to configurably trim whitespace from trigger event common properties. The default behavior is to trim whitespace.
 - Corrected workflow timestamps in patient demographics.
 - Fixed export/import behavior to preserve relationships between various components.
 - Fixed an issue where a custom script for a CSV trigger event would process the header row even if "Skip Header Row" was enabled.
 - Fixed an issue where TLS 1.3 checkboxes were potentially disabled on an OS that supported TLS 1.3.
 - The "Retrieve AE Title" tag (0008,0054) was previously always present in a C-Find request. It is no longer included by default.


Changes in 3.0.2 (2023-03-02):

 - Corrected workflow timestamps in patient demographics.
 - Fixed a sorting issue after columns had been reordered and/or hidden.


Changes in 3.0.1 (2023-02-14):

 - Added a check for disallowing the HTTP and HTTPS port numbers to be the same.
 - Improved handling of exceptions when thrown from a custom script for workflows.
 - Fixed a custom script issue for CSV triggers.


Changes in 3.0.0 (2023-02-06):

 - Navigator 3.0.0 has been completely re-architected. See the user manual for more details.


Changes in 2.1.23 (2022-04-14):

 - Fixed an issue where the values on the Prior Studies Filtered table may have not been displayed correctly.
 - Updated the Tomcat version to 9.0.62.


Changes in 2.1.22 (2021-10-07):

 - Fixed an issue with the HL7ServiceHttpClient template file being overwritten if there are permissions problems accessing the config file.
 - Updated the Tomcat version to 9.0.53.
 - Enhancements to the Reset Administrator Password utility
 - Fixed an issue introduced in 2.1.15 where a Worklist Item Trigger that matched multiple Study Rules would create only one log file, with the result that log messages for the various jobs created by the Worklist Item Trigger would be intermingled.  This has been fixed, and each Job will have its own log file.
 - Added a new example Worklist-Item-Job on-stop script to show how to send e-mails when a Job finishes.

The file is Example_wij_stop_send_mail.groovy.
 - The installer will try to backup the class directories where any custom code may exist.  Custom code, if present, should be restored manually by the user after Navigator is started.

Consult the User Manual for more details.
 - When upgrading, the installer will now migrate your settings for HTTPS and non-default web ports.

Note that any settings for HSTS will need to be reconfigured manually.
 - Added a new example Study-Move-Request on-stop script to show how to change the Status to Failed if any of the sub-operations failed.

The file is Example_smrj_stop_set_status_failed_if_failed_subops.groovy.
 - Fixed an issue where notifications about the usage would be sent unnecessarily if the Number of Items Processed was 0.


Changes in 2.1.21 (2021-03-29):

 - Additional web methods have been added that also search on the Destination AE Title and Study Instance UID of prior.  Contact Laurel Bridge Software for additional information if needed.
 - Worklist items that do not match any configured study rules will not count against the maximum orders in the license. Also note that if a worklist item matches multiple study rules, that worklist item will only count once against the maximum orders in the license.


Changes in 2.1.20 (2021-01-13):

 - Priors in the future will now be rejected; PSI.reason_to_not_move_ will be "Prior is in the future"
 - WorklistItemJobs that are in the COMPLETED, FAILED, or COMPLETED_PARTIAL states can now be deleted without the need to stop the Navigator from the Web UI.
 - If a user deletes a Study Rule or a Worklist Reader that is referenced by a WorklistItemJob, the Job will try to identify the Rule or Reader that was deleted and display that information, not just "none".  This information will be logged in Navigator's log file and to the Audit Log.
 - Fixed an issue where Navigator could stop processing some data if a Worklist Item Job referenced a Worklist Reader configuration that no longer exists.

If this situation occurs, Navigator will delete the Completed job and log an error to Navigator's Audit Log and to the log files.


Changes in 2.1.19 (2020-10-22):

 - Fixed an issue introduced in 2.1.18 where Completed jobs that were triggered by a Modality Worklist Query were not deleted if the Navigator service was restarted before they could be purged.  They will now be purged according to the schedule.
 - Added new example Study-Move-Request on-stop scripts that show how to send an e-mail if the Study-Move-Request fails.  The scripts are:

Example_smrj_stop_send_mail_on_failed.groovy
Example_smrj_stop_send_mail_on_failed_subops.groovy
 - When viewing a specific Worklist Entry, the table of priors at the end now shows the priors that were chosen along with the ones that were rejected.  This can be an aid in examining complex workflows and determining why some jobs were chosen and others weren't.
 - UI enhancements


Changes in 2.1.18 (2020-08-10):

 - Removed the Restart checkbox on the General Configuration page.  Use the Start/Stop buttons at the top of Navigator's UI.
 - There is a new state for StudyMoveRequestJobs: WAIT_FOR_FWD. This indicates that Navigator has received a confirmation that the DICOM C-Move request that was sent to the "Source" device has returned a successful status, and it is required to know when the study that was C-Move'ed has been forwarded to the next destination.

If the "Destination" device is a router (e.g. LBS Compass) we may want to know when that study has been forwarded to its next or ultimate destination. A Web call from the forwarding agent allows Navigator to change the state of the StudyMoveRequest from WAIT_FOR_FWD to COMPLETED (or FAILED). If no web call from the forwarding agent is received within the configured time, the StudyMoveRequestJob will be set to a FAILED status. The WorklistItemJob associated with this StudyMoveRequestJob will not be set to a final status until all associated StudyMoveRequestJobs have reached their final status. 

Each destination device may be configured to require this confirmation and also for how long Navigator should wait for that confirmation message. Note that the configuration settings for these options are only applicable to "Destination" devices.

Contact LBS support for more information regarding custom workflows involving this feature.
 - Improved performance for adding new WorklistItems and processing deletions of obsolete WorklistItems.
 - Users can now configure how frequently Navigator will look for completed jobs to consider for deletion.  This is the Worklist Purge Rate setting under General Configuration.


Changes in 2.1.17 (2020-06-19):

 - Navigator's Credentials Utility now has command-line options that allow it to update attributes in the application configuration file; this includes the ability to encrypt a string and write it to the configuration file.  These can be used if you need the ability to update attributes via an external application or service.

 Note that the Navigator service will probably need to be restarted after changing an attribute's value in order for the new value to take effect.
 - Fixed a problem where clicking the Reschedule button would stop the auto-refresh loop.


Changes in 2.1.16 (2020-04-14):

 - The queryContextInformation string is copied from each FindStudiesQuery in a FindStudiesRequest into the resulting FindStudiesResult in the returned FindStudiesResponse.

Additionally, the order of FindStudiesResult objects in the response list should match the order of the received FindStudiesQuery object in the request.


Changes in 2.1.15 (2020-04-02):

 - Navigator can now be configured such that a Worklist Item Trigger (Modality Worklist C-Find-Response, HL7 order or an order submitted via the restful web API) can match multiple Study Rules.

The web interface for editing study rules now provides a checkbox labeled "stop on match". To maintain the behavior of previous versions, the default for this setting is true. 

Certain workflows that previously would have needed custom scripts may be more easily configured by using this capability. Contact Laurel Bridge Support if you need more information on how to design complex workflows.
 - Orders that are received via the Navigator web API (which includes HL7 orders) will be added to the list of Worklist Items immediately so any errors will be reported back to the sender. Previously, HL7 or web orders were processed asynchronously.
 - The filter result_list_processing/Example_max_count_filter.groovy
can be used to limit the count of prior studies that are selected for fetching in cases where the GUI based filter does not work correctly.

If a custom result_list_processing filter has been deployed to select desired studies for fetching, it is often desirable to defer counting of the max studies to fetch until after that filter. Since the standard filters can not currently be reordered, this filter can be added as an additional script in whichever order is appropriate.  It may be necessary to edit the script to set the desired max study count.

Contact Laurel Bridge support if you need additional information.
 - The default filename for Navigator process-wide logging has been changed. The Process-ID is no longer included in the generated filename.
Previously, the filename was:
C:/ProgramData/Laurel Bridge Software/Navigator/tmp/log/${APPIBNAME}.${CNT}.log

Where APPIBNAME macro (Application Instance Binary Name) is expanded to "Navigator.5432" for the Navigator application with process ID 5432.   The CNT macro is expanded to an index starting at 1 for the current file. The index number continues to increase and earlier files are deleted once the count of log files reaches the configured maximum.

The new default log file name is:
C:/ProgramData/Laurel Bridge Software/Navigator/tmp/log/Navigator.${CNT}.log

This will eliminate the situation where each time that the Navigator service is restarted all of the log files from the previous process are left in the log directory.

If you want to return to the old style filename, see the "filename" attribute in the CFGGroup

[ java_lib/LOG_a/outputs/file_output_1 ]

in the file C:/ProgramData/Laurel Bridge Software/Navigator/cfg/apps/defaults/Navigator
 - Starting in Navigator version 2.1.15 the java keystore file has been changed from:
C:\LB Navigator\java\lib\security\cacerts
to
C:\ProgramData\Laurel Bridge Software\Navigator2\cfg\nav_cacerts

Any changes to the keystore file should be preserved during an install or upgrade.

The options for the java VM for Navigator are in the Windows registry under the key named:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\Navigator\Parameters\Java

After a typical install, the default values for these are:

-Dcatalina.home=C:\LB Navigator\tomcat
-Dcatalina.base=C:\LB Navigator\tomcat
-Dignore.endorsed.dirs=C:\LB Navigator\tomcat\endorsed
-Djava.io.tmpdir=C:\LB Navigator\tomcat\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=C:\LB Navigator\tomcat\conf\logging.properties
-Djavax.net.ssl.keyStore=C:\ProgramData\Laurel Bridge Software\Navigator2\cfg\nav_cacerts
-Djavax.net.ssl.keyStorePassword=changeit
-Djavax.net.ssl.trustStore=C:\ProgramData\Laurel Bridge Software\Navigator2\cfg\nav_cacerts
-Djavax.net.ssl.trustStorePassword=changeit
-Dcom.sun.jndi.ldap.object.disableEndpointIdentification=true
-XX:+CMSClassUnloadingEnabled
-XX:+UseConcMarkSweepGC


Note that the keystore password and truststore passwords are set to the default values for a new java install. If you have changed these using keytool, you can adjust these settings.

Also note the option com.sun.jndi.ldap.object.disableEndpointIdentification 

This must be set to TRUE to allow use of self signed certificates. If you are connecting to an LDAPS server using a certificate signed by an authority, you may want to change this setting.

There are two sample batch files in the installation directory root that use keytool to list the contents of the keystore in either the new or old location. The keytool utility is also used to install or remove certificates from the keystore.
 - The content of the periodic and daily job email reports has changed. The fixed length portions of those reports are still included in the email message body while the variable length portions of the reports are included in an email attachment. This addresses the issue where certain email client applications had trouble opening messages with large numbers of failed or completed job reports.
 - By default, the user003 field in StudyMoveRequest is now populated with the AccessionNumber (Dicom tag 0008,0050) from the corresponding C-Find-Response message. This field will be displayed on the WorklistItemJob detail view and the StudyMoveRequest table and detail views. 

NOTE that if any custom scripts expect StudyMoveRequest field user003 to be initially empty, those scripts may need to change.

Contact Laurel Bridge Software support for information about changing these settings.
 - NOTE: The default setting for "Delete Per Job Log Files Automatically" has been changed from FALSE to TRUE. This means that when a WorklistItemJob is deleted, which happens for jobs in the COMPLETED state that have reached the configured age, then the log file (if any) for that job will also be deleted. This setting can be changed via the Navigator web UI: Click "Configuration", then "General Settings". See the checkbox under the logging section.
 - The display of the results of filtering priors has been improved - the results are now displayed in an easy-to-read table showing all the priors that were rejected and why.


Changes in 2.1.14 (2020-01-10):

 - Status update callbacks for a completed Worklist-Item-Job that matched the "Single-DICOM-Move" study rule will include information specific to the corresponding Study-Move-Request-Job.
 - For users of the restful dicomMove web service, there are two variants of the configuration data and the example scripts which sends status updates back to the client application.
These can be found in the scripts/worklist_item_job_processing folder:

DotNetFormatSingleStudyMoveUpdateStatusServerInfo.xml
DotNetFormatSingleStudyMove_wij_stop.groovy

SingleStudyMoveUpdateStatusServerInfo.xml
Single_Study_Move_wij_stop.groovy
 - The findStudies restful web service will not query any devices that are configured as not-enabled or not-scheduled based on the Navigator Devices configuration screens.
 - The StudyItem objects returned by the restful FindStudies web service now include modalitiesInStudy. This will be populated if the SCP that was queried supports this optional tag.
 - The simplified restful web services include dicomMove, findStudies, findSeries and dicomEcho.
 - The Body Parts Equivalent example file now includes "bone" in the "bone" group.
 - The home page for Navigator will now display a warning if there is a problem saving usage information.
 - Fixed a problem introduced in 2.1.13 where clicking Cancel when creating from scratch a new DicomVDevice, StudyRule, WorklistReader, or CustomScript would leave you on the same page.


Changes in 2.1.13 (2019-11-06):

 - The Navigator installation should be run by a user with administrator privileges. Also, be sure that the Navigator Windows service that is configured also has sufficient privileges to access both the configured SQL database server and the local Windows registry.
The installer will log additional errors or warnings if problems are encountered.
 - Navigator can now be configured to e-mail a report periodically if it detects that any Worklist Item jobs have failed.

It can also be configured to send a daily report of the status of jobs in Navigator.

Consult the User Manual for more details.
 - The MDS2 document is now shipped with Navigator.
 - Fixed an issue where you could not truncate or delete a WorklistItem's log file if you were accessing it via the Worklist Item page.
 - If the Reset Administrator Password utility does not work, the User Manual describes an alternate method to revert to the default password - see the Manual for details.
 - Users can now reorder how the list of devices are displayed on the Devices page.  For example, you can group all the Sources together for ease in reviewing the devices that exist.
 - Removed the setting for Number of Worklist Items to get on each Query - experience shows that this option was never used and is not needed.


Changes in 2.1.12 (2019-07-30):

 - An issue that was introduced in version 2.1.10 that caused restful web invocations (from the Compass Router or other client applications) of the methods:

WorklistItem.get[WorklistItem|UpdatedDemographics]ByAccessionNumberAs[JSON|XML]

to fail has been corrected.
 - Restful web api methods in Navigator (mostly in WorklistItemController) can now be security protected in a number of ways if desired.

The app config attribute: java_app/Navigator/allow_unsecure_web_methods

determines whether the caller needs to be authenticated. If this attribute is TRUE, various Compass job actions or other client code can invoke selected web methods with no authentication. If the attribute is FALSE, then the client must first obtain a valid session.

Currently the allow_unsecure_web_methods attribute must be edited manually in the application configuration file.

Contact Laurel Bridge Software for additional information regarding security configuration.
 - Response-processing and result-list-processing custom scripts that are configured via the study-rule configuration editor now have an additional parameter:

In addition to getting the domain class for the worklist item as in:

def worklist_item = x.worklist_item;

You can also get the WorklistItemJob object by using something like:

def worklist_item_job = x.worklist_item_job;
 - The filter and search parameters for WorklistItems and StudyMoveRequests are now remembered as long as you are logged in to Navigator.  You can clear them by clicking the Clear button on the panel that displays the filter/search parameters.
 - The data in the files in result_list_processing for Body Part Matching - body_part_equivelents_1.cfg, body_part_equivelents_with_includes_1.cfg, Example_body_part_equivalents.cfg, and Example_body_part_equivalents_with_includes.cfg - have been made more consistent.  The 1st and 3rd files are now the same, and the 2nd and 4th files are now the same.  The groups in files 2 and 4 differ from those in files 1 and 3 (since the files with "includes" use different groups to indicate adjacent body parts), but the data in the groups that are common to similar files is now the same.
 - The Body Part Matching configuration files may now contain numeric characters that can be matched against, not just alphabetic characters.  Note that this may lead to slightly different results than previous operations.
 - When creating a new DicomVDevice, the threads-per-role had defaulted to 0.  The value now defaults to 64.
 - Searches of Worklist Items will now include searching the Study Rule description.
 - Navigator now includes a utility to reset the administrator's password if it is forgotten.  See the User Manual for more details.
 - Encrypted connections to SQL Server are now supported and configurable.
 - Added example scripts to demonstrate performing SERIES level queries and moves as opposed to the default behavior of STUDY level. See the scripts:

result_list_processing/Example_Do_Series_Level_Queries_For_Each_Study_V1.groovy

and

study_move_request_job_processing/Example_smrj_start_change_study_move_to_series_move_V1.groovy
 - A new option for source devices has been added to the Configuration -> Devices configuration web UI.
When a source device is selected for editing, there is an additional option under the "Show Advanced Options" section. The checkbox labeled "Request relational query mode" controls whether the Navigator Query/Retrieve client or SCU code will request the Sop class specific option to enable relational queries. Some PACS or archive devices make use of this information to determine what parameters are required for a C-Find or C-Move request.
 - In addition to upgrading various third party components to incorporate security related improvements, the Navigator manual has been modified to provide more detailed information for configuring secure communications (e.g., https).
 - If the user has modified either a Dicom Device, Study Rule or Worklist Reader by way of the Web configuration UI, clicking the Copy button will now produce a warning that those changes will not be saved. Users should copy those objects first and then proceed to modify them.
 - Improvements have been made in the way that Navigator will recover from temporary SQL DB Server outages.
 - When web API methods (including those used by the HL7ServiceHttpClient application) fail due to an expired or otherwise bad license, the error status will be conveyed via the expected JSON or XML data rather than http failures.
 - Added "EVAR" (Endovascular aneurysm repair) to body part synonyms for the ABDOMEN, CHEST and HIPS groups in the body-part-matching filter configuration files:

scripts/result_list_processing/body_part_equivelents_1.cfg
scripts/result_list_processing/Example_body_part_equivalents.cfg
 - The Navigator HL7 Service (provided by HL7ServiceHttpClient.exe) has been modified to better handle temporary communication problems - i.e., when it can not forward HL7 order information or log messages to the Navigator web service.

If messages cannot be sent to the Navigator web service, HL7 requests will be acknowledged with a failure status, and error or other log messages will be written to the Windows Event Log. Event Log messages can be seen in the Event Viewer under "Windows logs" -> "Application".

This service is configured to be dependent on the Navigator web service, so the Windows Service Control Manager enforces the correct startup and shutdown sequence. The Navigator HL7 service can be stopped and started while the Navigator web service is running. The converse is not true.
 - Navigator now remembers the filter and search parameters you used when you return to the Audit Log index - this means that you will see the same filtered list that you saw previously.  You can click the Reset button to clear the parameters and see the default list.

The default sorting order has been changed so that the newest items are displayed first.  This is more intuitive since users are likely to want to see the newest audit records first.
 - Workist Items and Study Move Requests can now display the date and time that they were last modified.  This can help a user to see that a job is being processed and even when it is done.
 - The Database Credentials utility has been modified so that the host and port fields are always editable.
 - The default sort order for Worklist Items and Study Move Requests has been changed to be from newest to oldest.  This seems more intuitive since users usually want to see the newest items first.  The data can still be sorted by clicking on a column header, and the sort order will be remembered as long as the user is logged in.
 - Navigator now uses Tomcat 9.0.19 to serve the web pages.


Changes in 2.1.11 (2019-03-01):

 - Navigator now optionally tracks the number of Worklist Items that are processed as well as the number of Study Move Requests that can be completed for each Worklist Item. These can be limited by way of the license allowing for different pricing levels depending on annual usage and other factors.

Contact Laurel Bridge Software before upgrading to this version or newer if you have questions, and also for assistance with changes to your license.
 - Please note the example scripts query_processing/Example_query_list_processing_script1.groovy and query_processing/Example_query_list_processing_script2.groovy.
Those scripts show how to know whether they are being called to set up the primary query (look for studies on all sources) or the optional secondary query (look for series under a particular study). For the secondary query, the query-identifier-list and source-vdevice-list parameters are not provided and should not be accessed.
 - If you set the advanced setting "Q/R Move Data Model"  for a source device to "P" or "PS" the C-Move-Request that is generated for study-move-requests to that source will now include the Patient-ID from the related worklist item. If this modification causes any issues, the C-Move-Request message can be modified by way of a Study-Move-Request-On-Job-Start custom script. Contact Laurel Bridge support if you need additional information.
 - You can now configure Navigator to send you a notification when your count of items processed has reached some threshold of the maximum number of items allowed by your license.
 - Fixed a problem where error messages did not appear when creating a new user.  This has been fixed and error messages, such as "invalid password", will now be displayed.
 - Fixed a problem that prevented you from updating a Study Rule if a missing Result List Processing Script was referenced.
 - Navigator now includes Java 1.8.0_192.


Changes in 2.1.10 (2018-11-16):

 - Custom query processing scripts (the groovy scripts that are selected in the section 2 of the Study-Rule configuration page) now have the ability to modify both the lists of sources and the query data that will be sent to those sources. A script may decide for example that one source should be queried multiple times (perhaps with alternate patient IDs) and that another source need not be queried at all. Contact Laurel Bridge technical support for additional information and examples.
 - The HL7 Client now supports TLS wildcard and SAN certificates.
 - Navigator now uses the version 3.3.1 jquery javascript library.
 - By default (for backward compatibility) the restful web methods accessed by the following URLs:
(with example parameters)

// http://localhost:8080/Navigator/WorklistItem/addWorklistItem?stationName=SOME_AE&studyDate=20130917&studyTime=180000&modality=MG&studyInstanceUid=1.2.3.4.5.6.7.8&accessionNumber=13579&patientsName=Doe^Jan01&patientId=2468&patientsBirthDate=19930903&patientsSex=F
// http://localhost:8080/Navigator/WorklistItem/getWorklistItemByAccessionNumberAsXML?accessionNumber=0_123401_0
// http://localhost:8080/Navigator/WorklistItem/getWorklistItemByAccessionNumberAsJSON?accessionNumber=0_123401_0
// http://localhost:8080/Navigator/WorklistItem/getUpdatedDemographicsByStudyInstanceUidOfPriorAsXML?destination=X&studyInstanceUid=6.1.1
// http://localhost:8080/Navigator/WorklistItem/getUpdatedDemographicsByStudyInstanceUidOfPriorAsJSON?destination=X&studyInstanceUid=6.1.1
// http://localhost:8080/Navigator/WorklistItem/getWorklistItemByStudyInstanceUidOfPriorAsXML?destination=X&studyInstanceUid=6.1.1
// http://localhost:8080/Navigator/WorklistItem/getWorklistItemByStudyInstanceUidOfPriorAsJSON?destination=X&studyInstanceUid=6.1.1
// http://localhost:8080/Navigator/WorklistItem/getUpdatedDemographicsByAccessionNumberAsXML?accessionNumber=0_123401_0
// http://localhost:8080/Navigator/WorklistItem/getUpdatedDemographicsByAccessionNumberAsJSON?accessionNumber=0_123401_0
// http://localhost:8080/Navigator/WorklistItem/getWorklistStatisticsAsJSON
// http://localhost:8080/Navigator/WorklistItem/getWorklistStatisticsAsXML

will work for clients that are not logged into the Navigator.

To make these require login credentials for any client (browser or other program)
Edit the configuration file  /cfg/apps/defaults/Navigator,
and change the attribute java_app/Navigator/allow_unsecure_web_methods
from TRUE to FALSE.
 - There is a new field on the Contact Information page - a configurable warning to be displayed to users on the login page.
 - In the Email Notification section of the General Configuration web UI page the fields "username" and "password" are now optional. This allows email notifications to be sent using an SMTP server that does not require the sending client (Navigator) to first log in.
 - If an external program invokes the web method:
getUpdatedDemographicsByStudyInstanceUidOfPriorAsXML
or 
getUpdatedDemographicsByStudyInstanceUidOfPriorAsJSON
and there are multiple WorklistItem's that contain a matching StudyMoveRequest, then the information that is returned will be from the newest of the matching WorklistItem's.
 - On-stop scripts for both WorklistItemJob's and StudyMoveRequestJob's can now safely modify the status for the job by calling setStatus() from custom script code. A typical use case for this functionality would be for a custom script to automatically schedule a COMPLETED worklist-item-job to run again at a later time to search for additional prior studies to fetch.
Contact Laurel Bridge technical support for additional information on custom scripting.
 - For customers who have custom scripts that use the static long user variables in StudyMoveRequestJob and WorklistItemJob, the methods to adjust those variables have been changed to return the new value.
So the new signatures are:

synchronized static long adjustUserSL001( int adjustment );
synchronized static long adjustUserSL002( int adjustment );

In both the WorklistItemJob and StudyMoveRequestJob classes. Previously these methods were declared as "void".
 - Updated User Manual with GDPR statement.
 - The SSL Configuration Utility can now disable SSL if you don't want it.
 - Many of the columns in the tables for Devices, Worklist Jobs, and Study Move Requests can now be resized by dragging the small dark triangle in the lower-right corner of each column.  (If a column is lacking the triangle, it cannot be resized.)
 - A utility is now included if you need to change the web ports that are used.
 - The function to test custom script code under configuration -> scripts will fail for certain valid scripts in version 2.1.9.
This has been fixed.
 - Navigator now does not require a username and password to authenticate with your SMTP server for sending e-mails.  Also, you can now specify the From address for your e-mails (previously, the username for authentication was used as the sender).


Changes in 2.1.9 (2018-07-19):

 - The DICOM Conformance Statement for Navigator is now installed in the Documentation directory under the installation folder.
 - The method expandTemplateWithMacros in the class com.LaurelBridge.Navigator.SimpleHL7Sender
has been modified to support additional macros for automatically generating text fields. In addition to the worklist-item, study-move-request and prior-study-info related macros, the macros ${TIMESTAMP}, ${GUID} and ${CONTROLID} are now supported.

The SimpleHL7Sender class is available for use in custom scripts. Contact Laurel Bridge support for additional information.
 - Fixed a bug where certain misconfigurations might cause errors that will prevent a user from logging in.
 - Navigator now supports Windows Authentication as well as SQL Server Authentication for connecting to the SQL Server database.  The manual has more information about how to configure SQL Server and Navigator to use Windows Authentication.
 - Navigator can now be configured to use LDAP / Active Directory to handle the logins for access.  Navigator currently supports only "simple authentication".
 - The StudyMoveRequestJob class no longer holds the WorklistQueryService lock during setStatus or other related methods. We needed to refactor synchronization code in the area of linking study-move-request-jobs - i.e. where one job will attach itself as a listener to another similar job (same study-instance-uid, source and destination) rather than duplicate the effort. When the last study-move-request for a particular worklist-item job was complete, the worklist-item job on-stop script is run. If the thread informing the worklist-item-job of its completed (or failed) status is holding the WorklistQueryService lock (effectively a system wide mutex) then those scripts may block certain other system activity while they are running.
 - The minimum value for autologout time has been modified to be 60 seconds.
 - Fixed a bug where a lot of data was logged when Navigator was queried for a non-existent job.  Now you will just see a simple statement that no such job was found.
 - Changes to query timeout and related general configuration settings will now be in effect after a GUI level Navigator restart. Previously, these changes did not take effect until the Windows service (Navigator/Tomcat) was restarted.
 - The installer can now be run in "quiet mode" with no user interaction.  Consult the Navigator User Manual for more information.
 - Fixed a bug where the Start/Stop scripts on WorklistItemJobs and StudyMoveRequestJobs in a StudyRule were not being copied correctly.
 - Multiple e-mail notification recipients may now be specified by separating them with commas, e.g., "bob@bogus.com,mary@bogus.com".
 - In Step 4 of a Study Rule, you can now specify a relative date as the value for "Oldest Prior Study".  This is expressed as "-number" followed by D, M, or Y to indicates Days, Months, or Years; for example, "-7M" means "7 months ago from today".  

The original behavior is still valid if you don't want to specify a relative date.  Set the value to "-1" for no limit, or specify a positive integer, such as 8, to go back to January 1st eight years ago.
 - In Step 4 of a Study Rule, you can now specify a relative date as the value for "Don't move studies newer than this date".  This is expressed as "-number" followed by D, M, or Y to indicates Days, Months, or Years; for example, "-5D" means "5 days ago".
 - Navigator can now be configured to prevent simultaneous logins by the same user from different machines.

Also, the default values for time to auto-logout have been reduced - administrators are now 5 minutes, users and viewonly are 3 minutes.
 - Added support for DICOM audit logging (to a syslog server) using UDP, TCP, or TLS.


Changes in 2.1.8 (2018-01-24):

 - GUI improvements for navigating lists of Audit records.
 - The problem where study rule changes were not properly saved if the system had been stopped and then re-started prior to performing study rule modifications has been fixed.
 - UI enhancements
 - Updated the build tools to Grails 2.5.6.
 - The HL7 Service's configuration file has been modified to not require the root certificate be found and validated, as that can cause long delays on startup without Internet access.
 - Installer modifications.


Changes in 2.1.7 (2017-11-13):

 - There is now an option on the StudyRule in the section 4 of the configuration screen that indicates that user interaction is required prior to scheduling studies for moving from source to destination.

Clicking on the detail view for the worklist item will show the studies that have passed other filtering criterion. The user is required to approve or reject each study in the list. Once the selection is made, study-move-request jobs for the approved studies are queued for execution.

A new status value for WorklistItem objects has been added: "WAITING_FOR_USER". That indicates that operator intervention is required. The study rule configuration page allows set up for an email notification to be sent for each worklist item requiring action.

A new status value for StudyMoveRequest objects has been added: "REJECTED". That indicates that the study  was manually rejected.
 - Updated HL7 code is included in this Navigator release.

Summary of the release notes information for the
HL7 cases closed with this release:

22250: No release notes info relevant for Navigator

22249: No release notes info relevant for Navigator

22248: HL7 log output now prints "|", "^" and "~" chars in the hex dump format. Previously those characters showed up in the text section of the message as "."

21740, 21670: HL7 logging has been improved and simplified. There are now options which will result in a single log message being written for each message received or sent. Options exist to log a message with the hex bytes of each received and sent message, and/or to log the text of each received and sent message in a form that could be cut and pasted into something like the PowerTools HL7 Sender application.

11953: No release notes info relevant for Navigator

22244: Executable and DLL files are now signed for better security

21673: When HL7ServiceHttpClient forwards HL7 information to Navigator or some other web service, the data in the defined parameters is now properly escaped. Previously, problems occurred if for example the procedureDescription field contained a "&" character, or any other text not allowed in a URL. 

21669: There is now a property in HL7CommonReaderWriterSettings called SendFinalSegmentTrailer. If this is true, then every segment including the last will be written with the configured segment separator pattern at the end. If this is false, then all but the last segment will be followed by the segment separator.
 - The IP Address is now logged when a user tries to login.
 - Passwords are now required to be at least 8 characters long and have both upper and lower case characters.  A configuration setting can be enabled that requires them to be at least 12 characters long and also to have numbers or special characters.
 - Worklist Items now have two user-defined text fields of unlimited size - userText001 and userText002.  These can be used to store data in DICOM elements that are larger than 255 characters.
 - Fixed a bug in Study Rules where nothing would be moved if max_priors_to_fetch and num_oldest_to_fetch had the same value.
 - Additional Query SCU timeout values can now be configured on the General Settings page.
 - Navigator can now be configured to send an e-mail to a person for certain circumstances.  An administrator must specify an SMTP mail server for Navigator to connect to for sending messages.
 - You can now specify multiple Result List Processing Scripts in a Study Rule.  This lets you use several smaller scripts to modify which Priors are chosen instead of one giant, monolithic script.
 - Many UI enhancements
 - Fixed a problem where the wrong default values for the WLI User 00* tags were being used.  This only occurred if the tags were not specified in Navigator's configuration file.
 - Added an additional "fuzzy name" matching function for all of the last name and the first initial, e.g., "Doe^J*" for "Doe^John".
 - Users can now configure a Study Rule so that it will not remove duplicate Study Instance UIDs.  (By default, this filtering step is done.)  Usually, a user will then want to have a custom script in Step 4 to decide which duplicates should be processed.
 - The installer and database credentials utility have been modified to replace using sqlcmd.exe to check the database connection, with a Java-based utility.  This lets a user install Navigator on a box without MS SQL installed.

NOTE:  You should know your database credentials before installing or upgrading Navigator, since you will be asked for the username and password.


Changes in 2.1.6 (2017-03-30):

 - An indicator is now displayed next to the ID of a Study Move Request that is "linked" to another Study Move Request.
 - Fixed a problem where the custom matching script ignored the results of the GUI-based conditions for choosing a Study Rule.  This meant that the conditions might not choose the rule but the script would choose the rule.  This behavior has been corrected.

NOTE that this may cause different behavior depending on your Navigator configuration.  Contact Laurel Bridge Software for assistance if you have questions.
 - Fixed a problem where Navigator's behavior was uncertain when "number to get" was not -1.
 - Fixed a problem where the servers appeared to be offline after restarting priors processing.
 - Added a button to the Device's tab to initiate the DICOM ping test for all devices.
 - Fixed a problem where the Calling IP Address was being ignored in C-Echo-Requests.
 - Fixed a problem where the Study Move Request jobs Status was not being correctly color-coded in Internet Explorer.


Changes in 2.1.5 (2017-02-27):

 - A new sample script was added to scripts/match_conditions to demonstrate selecting a study rule if the scheduled study date is less than a fixed number of days in the future. This can be used to select between a high and a low priority study rule, so that pre-fetching for studies further in the future happens at a lower priority than nearby studies.
 - The defaults for various DICOM query and move related timeout settings have been changed to more appropriate values. In certain cases previously, a C-Move operation might hang forever if the source device left the DICOM association open but never returned even a pending C-Move-Response message.

Certain settings can be changed by modifying the application configuration file
(/cfg/apps/defaults/Navigator).
The value of query-timeout-seconds (from the General-Settings configuration) is stored in the
configuration attribute java_lib/DSS/default_session_cfg/query_timeout_seconds.

For the following attributes:

java_lib/DCS/default_session_cfg/pdu_read_timeout_seconds
java_lib/DCS/default_session_cfg/pdu_write_timeout_seconds
java_lib/DCS/default_session_cfg/receive_dimse_timeout_seconds
java_lib/DSS/default_session_cfg/progress_timeout_seconds

If the value read from the configuration for any of these is the default
value of -1 (meaning wait forever), the value will be changed to the value
of query-timeout-seconds.

If the value read from the configuration file for the attribute:
   java_lib/DSS/default_session_cfg/max_returned_results
is any number less than or equal to 100, the value will be changed to 5000.
 - Navigator now provides support for multiple priorities for both Worklist Item Jobs and Study Move Request Jobs. In the 2.1.5 release, jobs can have one of 3 priorities. Numerically, priority can be 0, 1 or 2, 0 being the highest priority and 2 being the lowest.

The priority for a Worklist Item Job determines the order in which it will execute in the presence of other jobs. A Worklist Item Job gets its priority from the Study Rule that it has matched, if any. The Study Rule create/edit pages now allow the selection of priority. A Study Rule might be created that matches emergency department studies. That Study Rule could have a priority of HIGH, where other rules select MEDIUM or LOW. When an order matches the emergency Study Rule, queries and study moves relating to that order will run before lower priority operations.

When a Worklist Item Job runs, it queries source devices and creates 0 or more Study Move Request Jobs. By default the created Study Move Request Jobs will inherit the priority of the Worklist Item Job that created them. A custom result list filter script might choose to modify the priority of various Worklist Item Jobs. For example, a Study Rule might specify that corresponding Worklist Item and Study Move Request Jobs run at MEDIUM priority; a custom script might examine the modality or study-description field from a selected prior exam and change the priority to LOW for exams that are expected to be very large.

In addition to job priorities, the order of execution of Worklist Item and Study Move Request Jobs is affected by the max-threads setting for a given device. In the Configuration -> Devices -> edit/create pages there is a new setting called "max threads". For Worklist Item Jobs, the maximum allowed number of concurrently running jobs that are querying a particular source device is determined by that device's max-threads setting. For Study Move Request Jobs, a job will only be eligible to run if both the source and destination devices have not had their max-threads count exceeded by other running jobs.  The number-of-threads setting on the Configuration -> General Settings page determines the number of threads that will be available to run eligible Worklist Item Job and Study Move Request Jobs. Each of the two job types has its own set of priority queues and its own thread pool.

A job will only be eligible to run if there are no higher priority jobs that are eligible, and if the max-threads settings of devices that are used by that job have not been exceeded.
 - The web UI for the Study Move Request table view will now display the C-Move sub-operation counters while a Move operation is in progress. The fields that are returned by intermediate C-Move-Response messages (number of completed/remaining/failed/warning sub-operations) will be displayed as the job progresses. This can be valuable to monitor progress of very large or very slow study moves.
 - The "remove duplicate accession number" filtering stage for the prior study relevancy process now runs before the list of potential studies to fetch has been sorted by study-date in the newest to oldest order. A problem existed when multiple source devices returned the same study. In certain cases, the preferred source was not selected resulting in unneeded study moves.
 - The Worklist Item table display on the web UI now will display a status of COMPLETED_PARTIAL for worklist items that have completed with some successful study move requests and some failed study move requests.
Since status is a sortable or searchable field it is now easy to isolate partially failed worklist item jobs so they may be deleted or retried.
 - Worklist Item Jobs and Study Move Request Jobs are now loaded from the DB at system initialization time.
Previously, this happened only after the "start" button was clicked (or after an auto-start if that was configured in the general settings).

Also, all jobs are loaded from the DB and re-queued in priority order prior to starting of the Spooler thread pools which will execute them. This may result in a significant performance improvement during startup if the number of jobs is large.
 - A script can now be configured to manipulate the C-Find-Request messages that is sent to a Modality Worklist server.

In the Configuration -> Worklist Readers create/edit pages you can now select a script for both web/HL7 and MWL worklist reader types. For an HL7 reader, the script is used to manipulate the worklist item that will result from a received HL7 message. For a MWL reader, the script is used to manipulate the C-Find-Request that will be sent to the configured modality worklist server devices. An example script is provided.
 - Navigator now displays a small blinking icon if it cannot confirm that the HL7 Service is running.
 - Fixed a problem where the devices were not appearing correctly when creating a Study Rule or Worklist Reader from scratch.
 - UI enhancements


Changes in 2.1.4 (2016-12-09):

 - The WorklistItemJob and StudyMoveRequestJob classes now have 2 numeric and 2 string user definable variables that are static - that is global to all instances of those job types. Custom scripts might make use of these data items to provide ways for jobs to interact with one another. Thread safe accessors for get/set and atomic numeric adjust are available. Contact Laurel Bridge support for information regarding this.
 - UI enhancements
 - The script Example_CreateNewWorklistItem.groovy has been updated to show how a single HL7 trigger event (e.g. ORM message) can be cloned into multiple events, allowing different studyRules to be applied to a single order.
 - All string values that are interpolated into HL7 templates via the SimpleHL7Sender class are now trimmed of all leading and trailing whitespace (java.lang.String.trim()). If previous logic expected DICOM pad characters on odd length fields for example, adjustments may need to be made.
 - To enable certain behavior where custom scripts might affect the execution order of WorklistItem or StudyMoveRequest Jobs, the logic of how custom on-job-start and on-job-stop scripts are invoked has been changed.
On-start scripts for both types of jobs will now be invoked when the job status is changed to either RUNNING or QUEUED.
On-stop scripts for both types of jobs will now be invoked when the job status is changed to either COMPLETED, FAILED or WAITING.
This behavior is subject to change in future releases. Contact Laurel Bridge technical support if you plan to implement any of these scripts.
 - Text that describes which priors were or were not selected and why has been improved.
 - The utility to change the SQL credentials has been modified in case you are in a clustered environment and do not have SQLCMD.EXE on the specific machine - you can now uncheck a box if you don't want the utility to verify that the new credentials work.
 - Per-Job log file names now include both accession-number and study-instance-uid.
This addresses an issue where systems that are HL7 triggered, and do not get a study-instance-uid in the order may not generate unique file names for the per-worklist-item-job log files. In some cases, this was fixed by copying the accession-number into the study-instance-uid in an HL7 input processing script.
 - Sample scripts were renamed to all start with Example_
 - Installer has been modified so that its utilities now have permissions set to Run as Administrator.
 - The option to perform a SERIES level query for each result returned by the initial STUDY level query has been removed from the StudyRule configuration page.
A new option has been added to the advanced options section of the Device configuration page.
By selecting the "Query for Series Information" option a series level query will be performed for each study level result returned by this device. The modality fields contained in each series query response will be combined into a modalities-in-study attribute in the study response. This feature allows study rule logic to filter potential prior studies based on the modalities-in-study attribute even if one of the source PACS devices does not support that attribute.


Changes in 2.1.3 (2016-08-16):



Changes in 2.1.2 (2016-08-11):

 - Code in the WorklistQueryService has been refactored to provide significantly increased performance when the number of items retrieved from each poll of a modality worklist server becomes large (1000's or more)
 - The script scripts/result_list_processing/multi_part_study_select.groovy performs several prior filtering operations.
The most significant of these is sorting the results from a previous application of the BodyPartResultListFilter into graded categories and selecting a defined number of priors from each grade.
 - The script scripts/result_list_processing/skip_studies_with_specific_terms_in_description can be used along with a configuration file in the form of scripts/result_list_processing/terms_to_skip.cfg to reject priors that contain certain keywords in the study-description
 - Custom scripts can now access com.LaurelBridge.Navigator.SimpleHL7Sender to generate and send HL7 messages to other applications or devices.
Contact Laurel Bridge support for more information about generating HL7 messages as part of a custom workflow configuration.
 - Users can now view the web server log files through the UI.
 - Navigator now installs the correct Java as one of its components.
 - Users can now set the labels to be displayed for the MWL and SMR User specific tags.
 - Users can now run custom scripts when a Worklist Item Job or a Study Move Request Job starts or stops.
 - Navigator now supports remote license activation and has a utility to activate licenses.
 - GUI enhancements.
 - A member variable: relevance_quality has been added to the PriorStudyInfo object which is passed to custom result list filters for each prior study under consideration. The higher the number, the greater the relevance of a prior study. Filters and custom scripts can communicate more information with this. In particular, the enhanced BodyPartResultListFilter sets this value to 1 for an adjacent body part match, and to 2 for a direct body part match.
The example custom result list filter script "select_studies_based_on_relevance_quality.groovy" uses this data.
 - To support more advanced prior study relevancy filtering, the BodyPartResultListFilter (accesed via the study-rules config dialog) has been extended to allow linking of body-part synonym groups.

For example, with an updated configuration file like this:

[ LUMBAR ]
eq = LUMBAR
eq = L-SPine 
eq = LSPINE
include = THORACIC

[ THORACIC ]
eq = T-SPINE
eq = THORACIC  
eq = TSPINE
include = CERVICAL
include = LUMBAR

[ CERVICAL ]
eq = CERVICAL
eq = C-SPINE
eq = CSPINE
include = THORACIC



The filter can now be configured to fetch exams from adjacent body parts. For example, for a new exam for the lower back (e.q. L-SPINE) the customer may want both LUMBAR related exams as well as middle-back (THORACIC) related exams to be fetched. For a CERVICAL exam, perhaps CERVICAL and again THORACIC exams may be considered relevant. For a THORACIC exam, with this configuration, all three groups of back related description keywords would indicate relevancy.

If the "include" attribute is not present in the config file, the filter behaves as in earlier releases.
 - The Navigator Service Manager now logs to the Windows Event Log when it is used to start or stop the Navigator service or its HL7 service.
The Windows Event Log can be found via Control Panel->Administrative Tools->Event Viewer.  The logs from Navigator are found under Windows Logs->Application.


Changes in 2.1.1 (2016-05-03):

 - UI enhancements.


Changes in 2.1.0 (2016-04-22):

 - There is a configuration attribute: 
apps/defaults/Navigator/java_app/Navigator/enable_study_move_request_job_linking

It is true by default (if not present).

If set to true, study-move-request jobs will check for equivalent jobs that are running or have completed before running. This can reduce the duplication of c-move requests for a particular study from the same source to the same destination.

Navigator remembers what StudyMoveRequests have been completed for as long as it remembers the related WorklistItems. You may want to consider adjusting the retention period in the WorklistReader configuration to take advantage of this feature.

Note also that this logic does not take into account the fact that the destination device may have deleted a previously moved study.
 - On the WorklistReader configuration screen multiple Modality Worklist devices (marked with the "Trigger" attribute in the Device configuration) can now be selected for a single WorklistReader. This allows orders from a collection of MWL servers to be combined before applying the StudyRule logic.
 - Odd length patient names that have one or more trailing spaces after the first name (and do not contain a middle name or suffix) are properly trimmed by the special functions that generate fuzzy match queries.
For example, the name "Doe^Joe " would have previously been sent as "Doe^Joe *" if the Last-Name-First-Four-Chars-In-First-Name function was selected. Now, the query string will be "Doe^Joe*".
 - Two significant changes to the policy for deleting completed WorklistItemJobs have been implemented:

1) The retention period for COMPLETED jobs can now be configured in days and hours. Previously the period was configured only in days. These parameters are entered in the WorklistReader configuration page.

2) Both WorklistItemJobs triggered by HL7/Web messages *and* Modality Worklist queries can now be retained for a configurable period after they reach the COMPLETED state. Previously MWL triggered jobs that were COMPLETED would be deleted as soon as they were no longer found on the worklist.
 - This release of Navigator requires that Java JRE or JDK  version 1.8.72 or later to be installed. 

The Tomcat application server has been upgraded to version 7.

LaurelBridge components DCF and HL7 have been upgraded to latest released version.

Other components used internally by Navigator have also been updated.
 - HL7 utilities now include a way to receive test HL7 messages, and other HL7 utilities are now provided.
 - The mechanism that checks for new versions of software has been updated to use HTTPS.


Changes in 2.0.4 (2016-04-15):



Changes in 2.0.3 (2015-04-17):

 - Fixed problem introduced in v 2.0.2 where the study-date range for the Modality Worklist Query was being computed once at startup and then reused forever.
We now recompute the date range just before each query.


Changes in 2.0.2 (2015-04-14):

 - The default body part configuration file now includes Mammography as a part.
 - The Max-Days-To-Keep-Completed-Jobs setting for Worklist Readers was lowered from 7 to 2, since testing in the field showed that the job list could get annoyingly long with 7 days of jobs in it.
 - When manually adding a Worklist Item Job, a user can now specify "ALL" for the Requested Procedure Description to skip the body part matching and filtering.
 - The body part configuration files will be be automatically reloaded if they are changed - you no longer need to restart Navigator.
 - Added new special function for Patient Name to match last name only.
 - Users can now select a range of worklist item via shift-clicking the checkboxes.
 - A user can now choose the name for Navigator's database and use a non-administrator user to access it.
 - The default value for max_job_retries was changed from 20 to 3.  20 was too high for initial configuration.


Changes in 2.0.1 (2014-11-04):

 - Added a configuration option (in Study Rule) to let users decide what do if a source doesn't respond to the C-Find-RQ.
 - Fixed issue where aborts weren't reducing the counter of Active Associations.
 - Users can now select special functions for "fuzzy matching" of certain tags in the Query Element matching phase of a Study Rule.
 - Users can search the worklist entries.  Not all of the fields are searched, and date fields should be searched using DICOM's DT format, not as the dates are actually displayed.
 - Default polling time is now 60 seconds.
 - Users at User level and Admin level can now specify the parameters of a study whose priors should be moved.  The manual entry form is accessible on the main Worklist Entries page.
 - Admin users can now search the Audit Records.
 - Administrative users can now download the Audit Records into a CSV file.
 - Study Instance UID, Study Date, and Retrieve AE Title are now shown in the appropriate select lists for Study Rules.
 - Users can now filter Study Move Requests by status.


Changes in 2.0.0 (2014-07-25):

 - Fixed problem with OEM logos not showing up well.  Note that OEM logos should not have transparent portions or should show up well against a white background.
 - Navigator can be configured to load an object that implements the MPIClient interface. This interface is used during the processing of Worklist Item Jobs. It is called once at the start of processing to perform any desired query for the job (perhaps to obtain a list of patient-id/location pairs for cross referencing). It is called again once before each query is sent to a source PACS to apply any translation that may have been discovered in the first phase. Contact Laurel Bridge for more information about this capability.
 - The GUI display for StudyMoveRequest jobs now shows the modality and study-description.
 - The StudyRule configuration GUI now allows for much more control in describing matching criterion for a potential Prior study that has been returned from a source query. This is now similar to how the initial rule matching configuration is done.
 - The General Configuration edit screen now allows the operator to enter values for max-job-retries and seconds-between-job-retries. The values are used for both the C-Find and C-Move operations.
 - Starting the navigator from the Web UI when there are large numbers of jobs in the DB is now significantly faster.
 - The StudyRule configuration edit GUI now supports editing the content of the C-Find-Request sent to the sources. There are default values if none are specified. Scripts can still be used to override the contents of these messages. MPIClient plugins can also modify the C-Find messages on a per-source basis.
 - Improved the filtering GUI for status.
 - Added a utility to help users change the HL7 logging level and other configuration options.
 - When selecting a tag in a Study Rule, commonly used tags can be selected from a drop-down list.  Users can also specify custom tags if those are desired.
 - GUI enhancements


Changes in 1.1.5 (2014-07-25):



Changes in 1.1.4 (2014-05-08):

 - The result-list custom processing script can indicate that certain studies can be moved to a subset of the destination devices that are configured for a study-rule.
See the example script: result_list_filter_with_per_destination_logic.groovy
 - The body part configuration file can now be edited through the script GUI.
 - GUI improvements
 - User changes to the data will be detected, and the user will be asked to confirm if those changes would be lost by changing pages.
 - The following attributes can be added to the Navigator
application configuration under the java_app/Navigator
group:

mwl_user001_tag = 0777,0001
mwl_user002_tag = 0777,0002
mwl_user003_tag = 0777,0003
mwl_user004_tag = 0777,0004
mwl_user005_tag = 0040,0100.0008,0060

These indicate the DICOM tag that will be used to populate the corresponding user001 .. user005 fields in the WorklistItem DB object.
 - GUI improvements


Changes in 1.1.3 (2014-04-24):



Changes in 1.1.2 (2014-04-24):

 - Users can now set a value above which log files will not be parsed - this lets them see if there are errors in smaller files but not take a lot of time with bigger files.
 - Log Parsing is now turned off by default, since the log files can get big and it takes time to parse them.  A user can still choose to turn the parsing on.
 - Updated user manual.
 - A GUI is now available from the Start menu to edit the HL7 Configuration template file.
 - The body party configuration file will be reloaded when Navigator's priors processing is restarted.


Changes in 1.1.1 (2014-03-19):

 - Fixed bug in JavaScript code.


Changes in 1.1.0 (2014-03-17):

 - There are now Previous and Next links to log files with similar names.
 - GUI modifications
 - Administrative users can now set how much time Navigator can be inactive before the user is automatically logged out.  The maximum duration is 3600 seconds (1 hour).
 - To aid in using Navigator, the screens have been modified so that the dashboard will remain on top and the rest of the page can be scrolled.
 - GUI enhancements
 - Added the user viewonly - he can monitor Navigator's progress but cannot change anything.
 - GUI enhancements


Changes in 1.0.8 (2014-11-04):



Changes in 1.0.7 (2014-01-15):

 - Clicking the Stop button from the main Navigator screen will now stop running worklist-item-jobs and study-move-request jobs more promptly. The stop process will still wait for any active DICOM associations to be completed.
 - Gui enhancements
 - The service names for Navigator and HL7 now start with "Navigator" - this makes them easier to find on the Control Panel's Services menu.
 - The problem was JavaScript code that FireFox didn't recognize - the code has been modified to use code that is not browser-specific.


Changes in 1.0.6 (2013-12-19):

 - HL7 extractor template may need to populate procedureDescription element.
 - Modalities-In-Study is now included in study level query by default.
It will be populated with the value from the Modality element from the MWL C-Find-Response (or the equivalent HL7 message). If you don't want to include this tag - or you don't want a match-value in it, you can fix the query up in the custom query processing script.
Additionally, in the Study-Rule configuration screen,
there is a check-box to select whether the second level of queries at the series level should be performed.
 - Modalities-In-Study is now included in study level query by default.
It will be populated with the value from the Modality element from the MWL C-Find-Response (or the equivalent HL7 message). If you don't want to include this tag - or you don't want a match-value in it, you can fix the query up in the custom query processing script.
 - Enhanced the UI for creating and viewing Navigator users.
 - Custom scripts that are defined within Study-Rules will log output to the per job log files if the debug flag df_DISPLAY_SCRIPT_OUTPUT is set on the java_app/Navigator component. This is enabled for all but the "show-warnings" short-cut log settings in the GUI.
 - Both study and series level query results are processed to remove items with the same Study-Instance-UID. This happens prior to any date sorting, date filtering or total count filtering.

The individual result filtering happens before the duplicates are deleted. That means you can still select a particular Series level C-Find-Response based on modality for instance.

This case may be revisited if we decide to support C-Move's at the SERIES level.
 - Fixed issue where some value was needed for the storage-group-name field in a Device configuration. Two devices with no name were incorrectly considered to be in the same storage-group which meant a c-move between them would be suppressed.
 - If the source and destination device are the same, a StudyMoveRequestJob will still be created, but when it is run no C-Move-Request will be issued.  If the extended-data-2 (displayed as Storage-Group-Name in the Device configuration screen) for the source and destination are the same (e.g. for two devices that appear to be different, but that share the same backing DB) no C-Move will be issued.


Changes in 1.0.5 (2013-11-20):

 - Display additional statistics
 - Pagination of Worklist Entries to reduce page size
 - GUI enhancements
 - Added configurable limit to DICOM worklist item query
 - Added custom attributes for DICOM devices.


Changes in 1.0.4 (2013-11-13):



Changes in 1.0.3 (2013-11-01):



Changes in 1.0.2 (2013-10-18):



Changes in 1.0.1 (2013-10-18):



Changes in 1.0.0 (2013-10-17):