Resolved Issues

Server Build 9.0.9

Download PDF

Review and fix monitoring results

Some monitoring tool, specifically Time of SQL Query (s), Memory Usage and Memory Usage Actual, mishandled the input data format, resulting in invalid or no output graphs.

User data takeover is broken

Importing users and groups from v7.2 failed because the group table name changed, empty table checking was missing and the action filter table was missing an ID field.

Null pointer exception in FilterPanelBase

When applying a (worklist) table filter by dragging a value into the filter criteria area, the COLID could be missing, resulting in an exception and a failed query.

Handling of MySQL NULL values in joined tables

When applying compound lists, it was possible to miss records that satisfied one of the lists but not the other if the second list included criteria that excluded the records on the first list. By handling the query as a union of separate lists, all matching studies are included.

Creating a report saves empty Study Date/Time to the SRt object

Report submitted from the viewer failed to insert the Study Date and Study Time values since changing the database date/time record format.

Forgotten password vulnerability

A security vulnerability occurring when using the forgotten password feature has been eliminated.

Import device exclude option applies to dicom devices only

The option to exclude devices in the device import script, importdevices.sh, mistakenly applied to DICOM devices only. Now all devices are checked against the exclusion list.

GetMountPathForDirectory does not work if repository root is a link

Some calls to retrieve a repository’s absolute path failed if the repository root itself was a symbolic link.

Temporary DICOM objects did not get deleted from repository tmp

When the repository root is the same as the repository mount point, temporary files are placed in the repository root directory rather than the tmp directory. When the object was moved to the repository, the system attempted to remove the file from the data tmp directory, instead of the repository root directory, leaving unmanaged files in the data tmp directory.

Suboptimal movement of IQ images on filesystem during registration

The initial quality (IQ) images were saved to the processed repository on (slow) tier 3 storage rather than the local cache repository (on fast tier 1 storage).

Inefficient locking in native code

When a study is processed in parallel on multiple threads, locking controls were inefficient because they took a long time between retries.

Too many SessionException in the error.log

An open viewer with an open patient folder panel whose viewer session has timed out issues refresh calls, resulting in exceptions recorded in the error log.

SQL exception may cause unfiltered lists/actions

When an SQL exception occurred while searching the database, it could be mishandled and, in some cases, clear an action’s “done” list. The next time the action performed the query successfully, all the studies would get (re)processed.

The default user of new webservice device keeps old value

When creating a new web service device, the default user from an existing web services device would be inserted at the default user of the new device.

Stream server using too much cpu with idle connections

Idle stream connections were entering a sleep mode that was not yielding sufficient CPU cycles.

Purging not working on NFS mount points

If purging is enabled for an NFS shared drive, makespace() failed to run because the tool used to collect the disk usage data does not work with NFS-mounted devices. The tool now uses the mounted directory instead of the device.

Large number of completed tasks showing in tasks GUI

Under some conditions, perhaps mostly when reheating a study, when the system completes multiple tasks within a short period of time, the task counts were not updated correctly and some completed jobs remained visible on the Tasks page.

Study status changes to cooked even if errors force prepstudy into retry

When cache processing encountered an error, the error was handled correctly but the status was set to Cooked, regardless. Error values are checked now, assuring the status reflects the processing results.

Receiving new objects for a cold study result in a corrupted/incomplete cache

No solution was in place to trigger reheating a cold study after acquiring new objects.

Reheating 0-image studies does not work

Studies with no images were excluded from the cooking process, even though they require herpa data and empty blobs before a user can open them.

Server Build 9.0.8

Download PDF

Previous study disables next/previous buttons when the study has zero images

When passing information to the viewer about the next/previous studies on the user’s worklist, the server mishandled zero-image studies. As a result, the viewer might incorrectly disable the next/previous study buttons.

Begins and contains filter on Other Lists page action filters doesn't work

The action filter states in the Other Lists filter panel page have been changed from a text field to a list of enumerated values.

Tomcat deadlock by WL

Some toolbox functions call themselves redundantly, leading to a possible global locking issue. These locks have been changed to local locks to eliminate the possibility of a lock up.

Stream server limited to 16 connections

The number of connections a stream server supports has been increased to 8192. Note that each connection requires two threads, making 4096 the maximum number of simultaneous user connections.

Viewer is not included on a burned CD

None of the viewer files, including the viewer executable itself, were copied to DICOM media because after moving the media option settings to the database, the setting values were not converted properly to Boolean values and therefore misinterpreted when creating the media.

Batch open doesn't load but the first study

The access key inserted into the PBS file (to support stream server session authentication) was put in the wrong location, causing the viewer to misinterpret the study list when initiating a new session.

Stream server cannot authenticate web viewer client on farm

When configured as a server farm, the stream server and application server are separate and the session ID managed by the application server is unavailable to streaming connections. As a result, web viewer access from a stream server could not be authenticated until this change, which passes the session ID in the streaming protocol.

.wasm mime type error

The preferable web assembly code failed to load because the web viewer interface was missing a MIME type definition, forcing the web viewer to fall back to a sub-optimal technology.

WebViewer open slow for studies with many images

Redundant and time-consuming calls to obtain an object’s repository location were removed because the study location doesn’t change.

Herpa repository times out when called with resource time preserver

Herpa creation tasks preparing a study for cooking recursively locked the cache repository, causing timeout delays.

Taskd crashes in jni grpc call

Tasks that restore an object table record from the meta data could crash deep within JNI when invoking a gRPC client in JNI after database operations have also been performed in JNI. To avoid the situation, object cache mapping has been reimplemented in C/C++ to avoid invoking gRPC from JNI.

Printrep fails on infinite redirection

The inclusion of an unnecessary session ID when calling the PDF creation tool cause the conversion script into an infinite loop and ultimate failure when creating DICOM media.

Deadlock in taskd (LockMgrShared)

The inconsistent order of locking and unlocking of two different locks when reprocessing a study’s data could cause the task manager to become deadlocked.

Review/update java VM DB connection pool sizes

After increasing the default MySQL connection limits (see HPS-371, released in this build), it was determined a single default is not sufficient. A better connection limit default for the system was the original 4, so this setting has been restored. Default limits for Tomcat and Hermes are now set to 32. Also, the connection pool now creates connections as needed meaning none are initialized by default. Default limits for other java VMs can be defined using the override file ~/var/conf/modules.xml. See Jira for a list of affected java VMs and configuration details.

Server Build 9.0.7

Download PDF

MySQL version errors in info.log

The pattern used for matching MySQL’s version number changed in the current version, resulting in invalid error messages in the log file.

Worklist row currently on worklist acts as if it wasn't loaded

Study row selection on the worklist could become inconsistent, resulting in misapplication of a batch tool.

Study directory stuck in 'dead resource' state

Merging two or more studies into a new study which is then merged with a different study, followed by a delete request could leave invalid state data in the database due to a missing lock when processing the merge and delete requests, preventing the registration of the original studies if resent.

Load balancer displays MySQL error on stop/start

While the load balance server doesn’t use the remote database or a local database, it does generate logging data and that data is logged in the global database. As a result, the load balancer server requires the mysql component.

Import media feature is broken in server farm

Media import had not been updated to support the server farm roles, attempting to upload the data to the application server for processing. This feature has been updated to upload the media data to the shared temporary repository and the command to perform the import is submitted to the registration server.

Downloadable Worklist CSV with no Authentication

Exported worklists could be downloaded without an active user session if the user manually constructed the applicable URL in a browser window.

Uncompressed images having YBR_FULL_422 Photometric Interpretation fail to register

The updated DCMTK toolkit changed its behavior processing the sample per pixels value defined in YBR_FULL_422 multi-frame objects, resulting in an error calculating the full image size. A workaround has been applied that intercepts affected image objects and calculates the full image size as defined by the object.

OBJECT level logs on the Logs page when deleting study series/object

Object level log entries were incorrectly included in the log database. This has been corrected so they appear in the forever logs only.

Load balancer configuration using hostnames for backend servers

The load balancer server’s configuration used hostnames rather than IP addresses, which won’t work at sites which are not set up to resolve FQDN. The generator script now uses IP addresses when available and falls back on hostnames when not.

User action 'delete' can cause taskd lock

User-initiated study delete requests could cause taskd to lock up when a deleted task attempts to add a new cleanup task.

Can't open completed order from the RIS

A recent bug fix prevented a RIS user from opening Completed orders in the viewer or web viewer. Support for this behavior has been restored.

Hyperdirector does not start

When installing a server from scratch, the hyperdirector RPM is pulled in as a dependency but isn’t started, causing a failure during startup since it is expected to be running.

SHARED_ROOT variable is not picked up after installation

Failure to pick up a modified environment variable before starting the hyperdirector caused the server validator to fail.

Server Build 9.0.6

Monitor.jsp is broken

Changes applied to user session management within a server farm were not applied to the performance monitor page, resulting in an exception.

Spinner causes artifact at global start in latin-1

The spinner graphic displayed in the terminal window when running the startup script dumped multiple newlines on the screen because the animated character required multibyte character set support, which wasn’t applied by default. The character has been replaced with three dots to indicate the task is in process.

Changing viewer version setting requires a manual page refresh

When the user changes some settings, a session refresh updates those settings so they take effect immediately. Changing the assigned viewer was missing from this list of settings. As a result, changes to the applicable viewer didn’t occur until the user initiated a new web session.

Misplaced button on the Edit Group Members page

The Move Left button on the group member edit page was placed at the midpoint in the group list. On systems with many groups, this placed the button off the initial screen. The button has been moved to the top of the list.

Notify action's email field is not filled for system user

When editing a notification action assigned to a system list, the target email list appeared blank rather than listing the notification recipients.

Attachment upload start page is wrong when no default type is configured

If no default document type was assigned to the server, the attachment upload GUI did not filter the other settings on the page, allowing users to assign unsupported combinations of settings and causing some uploads to fail.

External reports broken in viewer's patient folder

A recent change to display reports in the worklist patient folder was applied too broadly, affecting old style indexing used by the viewer’s patient folder, making external reports unavailable from the viewer's patient folder window.

Merging Studies failed due to truncated UID in dcmGenerateUniqueIdentifier

Changes in the DCMTK toolkit allowed the system to generate UIDs longer than the maximum field size. The algorithm for generating UIDs has been modified so all UIDs are unique and within the permitted length.

Taskd crash by std::exception from JNI

The repository handler uses database locking but when it cannot connect to the database, it results in an uncaught exception that screws up the locking mechanism.

Server Build 9.0.5

Don’t create cw1 data when a frozen study is reheated

When reprocessing a study containing no processed repository, the jit processing routine erroneously created legacy thumbnail images.

Corrected and Report Exist factory default Calculated fields do not work

The system default calculated fields for the Corrected state (p0000) and Report Exist state (p0002) failed to appear in the configuration page, could not be modified and were unavailable as a worklist column. The data field types changed but the new types were not handled by the database.

Can enable Notify without assigning an e-mail address

While an empty email address is optional in some notification email configurations, it is required when the list owner is the system account. In these cases, users are prevented from activating the action until an email address is provided.

Error log entry on window close

A client side exception occurred when the user logged out immediately after logging in, before the worklist could display.

Reportview.jsp reloads in patient folder

When a worklist refresh occurs (manual or automatic) while editing a report in the patient folder on a worklist on which a study disappears, reordering the worklist rows refreshed the report edit page as well, clearing report data that might have been entered.

Lock and Login Information for User Accounts do not display updated information

The user account lock status and the login details reported incorrect information when the user selected the account by checking the selection check box at the beginning of the row. The information was also inconsistent when multiple accounts were selected.

Error log entry from the client side during Dashlet page load

When loading a dashlet, an exception could occur after login due to failure to check for an initialized variable.

Taskd should not lock if an error occurs in some user action

When a user-initiated task-related action, such as changing the priority of a scheduled task, incurred an error, the return code was mischaracterized, leaving a lock in place. As a result, new tasks would not run.

Error in Autocorrection when Patient Name contains an apostrophe

Autocorrecting studies to orders using patient name as matching criteria and a patient name containing an apostrophe resulted in a search exception and a failure to autocorrect.

Pressing More could trigger partially inaccessible icon

The Partially Inaccessible indicator on the worklist could report an incorrect state if the user clicked the More button to display additional studies while the system was still acquiring them. The call to set the state failed because the page did not handle the request.

rc start exits with a Success status code even if medsrv could not be started

The startup script returned the global result variable rather than the local result variable after starting each service on each server in a server farm, resulting in a success status code even when one or more servers failed to start.

Global restriction for Worklist also applies to Logs page

Global restrictions were unintentionally blocking non-study related data from the Logs page.

Handle long filters coming from 7.2

When upgrading from v7.2 to v9, worklist filter lists whose names are too long to fit in the database are skipped, with a warning displayed on the console window. A problem in this handling caused the subsequent list to be ignored, causing the upgrade to drop it as well, without any warning.

Open link in notification email doesn't prompt for credentials

The hyperlink in a notification email that launches the images in the web viewer was missing the login prompt. If a browser did not have a valid session cookie already, the web viewer failed to load images.

Cw4 compression error

REVERSIBILITY NOTICE: This change requires regenerating all processed and cached data to a format which is incompatible with previous software versions.

DEPENDENCY NOTICE: This change requires viewer 9.0.4.4 or later.

Under very specific and unlikely conditions, the compression algorithm could encounter a matrix boundary condition that caused the compression effort to fail, resulting in no processed image.

Blurry low-quality images in techview for some studies

The algorithm for resizing images to fit them in the available web viewer frame might terminate prematurely for images whose size is not a power of two. As a result, the image was improperly resized and blurry.

Server Build 9.0.4

Series forward, delete and edit works on multi-mount studies

The technologist view page failed to disable forwarding, editing and deleting partial studies residing on multiple mount points.

Study processing state incorrect when process is missing

Removing the processed data repository failed to change the processing status to frozen because the state change was not applied during the callback.

User dropdown search field and results inconsistency

The user name filter drop down menu used the user name and user ID interchangeable, both in display and database query, leading to confusing results. The field permits users to enter user names and both the user name and user ID are displayed, but when the command is invoked, the value applied is the user ID.

User dropdown unnecessary server queries

When some non-visible characters, such as the left and right arrows, were entered into a user name field drop down panel, such as when filtering on the user name, the web page triggered an unnecessary call to search the database.

User dropdown disappearing default values

Some default items in the user name drop down menus are supposed to remain, even when the type-ahead string is applied, but they were filtered out.

User dropdown css error

When clicking out of a text entry field when configuring the default user in a web services device edit page, the style sheet was cleared and when clicking back into the text field, the user’s custom color setting was not applied.

User dropdown search field blocked out by dropdown panel

On the manual forward setup page, the user name field (when forwarding to a folder) could become obstructed by the popup menu.

Report icons in the study details tab on the worklist page not working as expected

The report selection tools in the report view in the worklist’s patient folder were functioning incorrectly: the color scheme was hardcoded to dark theme; the report component icons failed to select the corresponding report component; and the delete button was highlighted instead of the report component icon. In addition to resolving these issues, a new button, Open All Reports, was added to load all the report components into a single view.

Mammo tools not working after upgrade

REVERSIBILITY NOTICE: To downgrade, the plugin license(s) must be regenerated.

The mammography, volume 3D and fusion plugins’ short names changed from the ones used in v7 so after upgrading, the plugin license was not recognized.

Calculated fields tag list should be ordered alphabetically

The tag list available when configuring calculated fields was unsorted, making it difficult to locate a specific tag.

Negated time of day filter not working as expected

A change to the time’s short format handler did not handle requests for negated search criteria.

Tech View carousel miscalculates on non-square images

Images having an aspect ratio other than 1:1 caused the technology view page’s carousel to show partial images and the scrolling tools to fail. They also rendered the page’s thumbnail image size options useless.

Herpa and blobs may be temporarily inconsistent for cooked study

Attempting to open a study while it was still being acquired across multiple registration servers resulted in a race condition, causing the herpa data in the blob to reference more images than have been processed.

Some web service calls may not work with the v9 server farm configuration

Attempting to collect the information in a PbR object failed from the app server because herelod only runs on the registration server. This affects some web services commands and other features such as editing a study from the worklist. A new intracom service was introduced to get PbR object content from a registration server.

Opening TechView or WebViewer pages from the RIS via WS displays login screen

A fix to the user manager added an unnecessary call to prompt for a login when loading the technologist view page or the web viewer page.

Attachment upload does not work

Uploading attachments to studies or orders completed without error but the attachment was not saved. This was due to a corrupted environment variable extended by the MCS component’s control script.

Server Build 9.0.3

Enhance error handling for activitysign

When collecting study data failed, the result did not contain a proper error, resulting in an exception.

Study state tracking doesn't work when the whole repository is a link

While linked repositories are not recommended – mount points should be linked, not repositories – the configuration is permitted. When present, the system did not always attempt to resolve the link, resulting in failures when checking the study state.

Reprocess and reheat actions delegated to the same registration server

GUI-initiated requests to reprocess or reheat a study were always performed by a single registration server. Now the system allocates these tasks in a round-robin fashion to distribute the load.

Local cache repository creation should occur even when cases component doesn't run

The local cache repository and its default configuration files are created during startup by the cases ctrl script, but the cases ctrl script isn’t invoked on the registration or stream servers. This function has been moved to the dcviewer ctrl script.

Switching back and forth between the Server Configuration pages

When toggling between the Security Settings page and other server configuration pages, the security page contents may refresh and overwrite the other page’s data because an asynchronous call might have taken too long to complete.

Technologist View causes error in browser debug mode

When adding cw3 support to the web viewer and technologist view pages, some new javascript pages were not included when running in debug mode.

Login information green checkmark is not present on Users page

The indicator on the user accounts page showing a user is logged in failed because the timestamp field type was changed in the database but the check wasn’t updated accordingly.

SQL exceptions with final report and addendum

A retired function called when manipulating a report, such as unfinaling a report or removing an addendum, resulted in an exception. The retired function has been replaced with one supported by v9.

Q/R C-Move does not apply soft edit changes to images

When a DICOM AE requests a study using a DICOM Retrieve request, the forward tasks could fail to apply the soft edit changes causing the data to be sent without the latest updates.

Local MCS media creation error when adding studies from different hubs

When using the local MCS service from a worklist server to create DICOM media containing studies from two or more different hub servers, the temporary directory names created on the hub servers did not always match the directory names on the worklist server. If the names were not unique, the conflict resulted in missing files. Additionally, the MCS started constructing the DICOMDIR file after the transfer from the first hub server completed, without waiting for transfers from all hub servers to complete.

User unlock doesn't work

A change to handing Boolean fields in the database was not extended to the user account lock state field, causing attempts to unlock a locked user account to fail.

Can't open orders or zero-image studies

While users are not supposed to open order or zero-image studies, requests to do so can occur and are handled. But the stream server failed to process these studies, resulting in a hang when attempting to open the viewer.

Tasks in future queue not going to Scheduled

When the top item in the future queue was a prepstudy task for an active dcregupdate task, the task was postponed but the system failed to remove it from the top of the queue. Since the task manager only looked at the top item in the queue, task processing became deadlocked.

Reconnection to stream server hangs

When the stream connection encounters an exception, such as an unexpected SSL exception, the viewer attempts to reestablish the connection by issuing a fast-connection token, but the server returns an invalid response, hanging the viewer as it waits indefinitely for the appropriate response.

Streaminfo.log not rotated with other logs

The streaminfo log file was not rotated and continued to grow. The file has been added to the forever log rotation schedule.

Websocket frame corruption for large packet sizes

Concurrent writes to the stream channel caused by the inclusion of streaming metric data in the data stream resulted in data corruption on the channel. This has been mitigated by submitting synchronous responses to incoming commands on a dedicated outbound queue. Additionally, a mechanism is in place to limit the data packet size. This control setting, if needed, would be assigned by the viewer.

Server Build 9.0.2

Orders prevent opening studies via EPWS interface

When a hub server is backed up, the command to purge an order across the dotcom after correcting it to an image failed to propagate. As a result, the study could not be opened from the RIS because the search for the study returned multiple items (the study and the lingering orders).

Special V7 filters should work the same way in V9

Worklist filters for name fields, study size and multi-value fields have been updated to support features available in earlier versions, including the ability to search on individual name components.

Database field length is not restricted in Customized Label list values

The length of enumerated values assigned to a database field were not checked and resulted in unexpected values and results. The length is defined on the setup page and values lengths are enforced before saving them.

Uncaught client exception from IE is obfuscated

Uncaught exceptions coming from Internet Explorer were not handled properly, resulting in a web page exception.

The Help button in the User's menu is not working if popups are blocked

The method used to open the help pages in a new window blocked pop-ups by default. The setting has been changed to allow the new tab to open without user acknowledgement.

Outbound Report notification missing fields when the report is saved at a child

In a dotcom where the master is the child server, a report edit could get processed on the child and propagated to the parent before the parent registered the original report. If a report notification event arrived at the parent before the report was registered, the event notification failed to trigger before all the fields were updated.

Exportusers.sh fails to export all users due to @system

Given the special handling of static user accounts, such as the system account, the user account export script failed to export any information. The script now ignores static accounts.

Study "Changed" field not working as expected

The Study Changed field did not recognize saving report objects. As a result, the study fingerprint wasn’t updated and the change state remained untouched.

Device cannot be forced to save when a conflicting AE was found

When creating or modifying a DICOM device entry using a duplicate AE Title and the user decides to ignore the warning and save it anyway, the software failed to apply the change because the override flag was ignored.

Study update messages may suppress study acquisition messages

When a study update and study acquisition event occur within the same period, the study acquisition notification message could be suppressed due to the message reduction process. Now, study acquisition events are no longer collapsed with study update events.

Handle lost SQL connections/reconnects from java reliably

The mechanism used to reconnect the persistent database connection was not implemented, resulting in database access errors.

Blob creation corrupts content for entries larger than 1MB

Studies with compressed images greater than 1MB displayed corrupted (noisy) images because processing failed to buffer pages correctly.

Taskd stops sending notifications for a study

The task manager could stop sending order notification messages to web service devices if the web services device is inaccessible and a message task was sent to retry but then deleted or suspended. When the web services device is again accessible, future messages would be collapsed behind the deleted retry task.

Add action buttons to in-place upgraded V7 layouts

After correcting the importation of custom worklist layouts when upgrading from v7.2 to v8, the action buttons and lock indicator were dropped because v7.2 does not store them in the worklist configuration. By default, upgrades include the default v8 worklist action buttons.

Using conditional coloring on hidden field causes error

If a saved worklist contains conditional coloring on a hidden column, an error occurs because the coloring tool cannot locate the column and the worklist appears as an empty list.

Password Change At First Login active with LDAP authentication

A user account’s password settings could be applied after making temporary changes to the account’s LDAP settings, even when the account was configured to use an LDAP authentication agent.

Pressing More on the WL replicates studies

Pressing the More bar to display the next page of worklist entries could result in duplicate rows if the user has no default worklist defined and is in a group with an unsorted, unfiltered default worklist defined.

Herpa pre-generation may triggers jit image processing when sending late objects

Processing a late-arriving object resulted in reprocessing existing objects’ initial quality blob (thumbnail) data because the herpa creator did not yet check for existing data.

Webviewer doesn't open on a farm setup

The web viewer failed to launch on a Hyper+ farm system in which the stream server runs on a different server than the application/web server because the web viewer was passed only the web service ports and not the full server URL.

Processing of large objects may result in corrupted cache blob creation

Processing large objects into blobs could result in corrupt data due to a missed lock.

Unhandled exception: SO_KEEPALIVE not supported

The java component upgrade applied in Hyper+, replacing the old unix socket implementation, does not support the same socket options. When attempting to forward studies under certain conditions, an unsupported option caused an exception and the request failed.

Errors and exceptions in the logs when viewing a report

Report view templates using a field with the VR of SI, such as the Interpretation Status ID field, would log errors and display the raw data because support for the VR type was removed.

Copying study to worklist fails

Copying a study to the worklist folder failed because the data directory was not created, a result of moving the storestate.rec file from DICOM repository to the meta repository.

Issues reading blobs larger than 2GB

UPGRADE NOTICE: This change invalidates all blob (processed) data in the cache. A data value overflow condition existed in the blob header when the blob size exceeded 2GBs, causing blob creation (processing) to miss some images.

Taskd ws interface client can't connect

The taskd client canceled the keepalive timer when terminating the connection which prevented it from being restarted, causing the failure of reprocessing and reindexing requests.

Clear cache from tech view does not always work

When requesting to clear the cache from the Tech View page very quickly after loading the web page, a maintenance procedure might fail to complete before starting clearing the cache, resulting in an error and the cache data remaining in the repository.

Date field displays an incorrect value

When registering the PbR before the image objects, the value of the Date field could display the PbR’s creation date-time rather than the image object’s study date-time because the calculation of the Date field from the minimum SOP instance was not performed.

Release reference counter fails due to semaphore timeout

A low level lock timer created a condition that limited the number of times the system could attempt to release a reference counter, yet during certain real world scenarios, more attempts are needed. As a result, reference counts were not released, causing an inconsistent state in the data.

Handle mysql deadlock exceptions

Some documented MySQL exceptions occurred but the recommended solution – retry the query/update – was not applied.

Sometimes prepStudy tasks are not collapsing

Multiple collapsed prepStudy tasks could exist in the task queue at the same time due to a racing condition when creating these tasks.

Post-collapsing should work for retry tasks

prepStudy tasks in the retry queue could not be terminated by the post-collapse cleanup function.

Chromium 106 breaks drag/drop after browser upgrade

After upgrading Chromium (used by Chrome, Edge, Safari and other browsers) to Version 106.0.5249.103 or later, some of the browser’s drag and drop features such as applying a worklist filter from a column header or column value corrupted the web page contents resulting in a disorganized layout.

Server Build 9.0.1

Download PDF

Configured device timeouts did not get picked up properly

A change in the DCMKT toolkit required connection timeouts to be assigned earlier than they were. As a result, all but the first send request and all the receive requests used the built-in timeout value.

Users can forward or delete studies that aren’t on their access list

Some operations could be copied from the browser’s network panel and invoked from another browser by a user with different permissions, allowing users to perform unpermitted operations. The missing permission check has been applied.

MySQL escaping problem in Viewer's previous/next study

If the Institution Name value contains an apostrophe and the field is used in the filter criteria applied on the worklist, the open next/previous study command results in an exception due to an improperly formed query.

User's forward targets can be ignored

Some operations could be copied from the browser’s network panel and invoked from another browser by a user with different permissions, allowing users to perform unpermitted operations. The missing permission check has been applied.

Global restriction is ignored by Viewer's previous/next buttons

The system ignored global restrictions when selecting the next/previous study. If the user does not have permission to view the study selected, he/she ends up with an invalid study error.

Users can delete their own .access list

Some operations could be copied from the browser’s network panel and invoked from another browser by a user with different permissions, allowing users to perform unpermitted operations. The missing permission check has been applied.

The forward study process is misspelled in the epws.log

A typo existed in the term “ForwardStudy” in log file entries for a web services study forward event.

Page does not refresh after editing/creating DocType

Newly created document types failed to show up on the document type configuration page until after a browser page refresh.

Viewer log version information parsing wrong

The viewer version number in the uploaded viewer logs was incorrect because the data was taken from the wrong object.

Extra exception thrown by CacheStateToolbox

When a registered viewer device issues a cache state request to the server and the server does not have an explicitly defined prior study cache state setting, the parsing algorithm misinterprets the parsing results and registers an unnecessary exception in the log file.

Messaging recipients’ limits can be ignored

Some operations could be copied from the browser’s network panel and invoked from another browser by a user with different permissions, allowing users to perform unpermitted operations. The missing permission check has been applied.

User Account page not displayed for support user

The initial dotcom setup processed failed to include the server’s self ID setting in the default configuration file. As a result, the support account was not recognized.

AE title keeps reverting back to PBUILDER

A reorganization of the component start up scripts broke the setup of the default pb-scp configuration file, resulting in appending the wrong defaults to the end of the configured settings which were then taken as the configured value.

Curl doesn't exist where it should, actions can't run

Actions failed to run because the path used to identify the curl script used the removed custom component. The path has been updated to use the OS-supplied curl tools.

Persistent native database connections not reconnecting after timeout

The persistent database connections would not reconnect if the connection was lost or timed out, resulting in retried attempts to register objects, among other incomplete database requests.

Herelod daemons stop processing

When attempting to acquire and register large numbers of objects in a short period of time, herelod processes failed to terminate cleanly, waiting unnecessarily on the release of conditional variables, resulting in failed registration tasks and dropped objects.

Possible class/jar file missing

After upgrading java, an incompatible JAX-WS file caused all web services commands to fail. Upgraded JAX-WS to version 2.3.5.

Exportusers.sh won't function - java doesn't exist where it should

The location of java has moved but the path variable using in multiple scripts, including the user account import and export tools, still pointed to the former location.

Taskd crashes in jni in libmysqlclient.so during registration

Persistent and non-persistent database connections would release the SQL library object when terminating, invalidating the persistent connection and causing unstable behavior in other threads.

Default behavior in mysql 8 treats truncation as error

The updated version of MySQL, using the carry-over settings, treats truncation as an error as opposed to truncating the value automatically. The settings have been updated to default to the previous truncation behavior.

Cache blob creation task failing on a study with no image objects

A study with no cache or processed data directories, e.g., a study with just a PbR object, encountered an exception when preparing the meta data because of a failure to examine the return code value.

UserManager fails to run separately

If the user manager runs on an independent server, login attempts fail because the software was not properly prepared to pass data between discrete objects correctly.

Clear cache from Tech View doesn't update processing status

Clearing cache from the Technologist view page deleted the data but failed to update the internal processing state value because the feature to track processing status across multiple servers was not yet implemented.

Tech view's reprocess doesn't work on a server farm

Reindexing a study fails when the ingestion and application components run on separate servers because the application server has no registration abilities. The registration request is submitted to one of the registration servers.

Viewer gets the server name variable from server memory (quickfix)

The stream server the viewer uses to download the data is defined in the herpa data but the early v9 viewer does not use the value yet. Until this is available, the server will leave the setting empty if it determines the stream service and the web service are running on the same server, forcing the viewer to fall back on its assumption they are the same. Note this solution only works when running stream and web services on the same server. When the services are separated, an updated viewer is required.

Server Build 9.0.0

Download PDF

Static user login broken

Static user passwords failed to account for the updated hash format.

Change password throws an error

Updating the password hash format missed a few places, including the Change Password page.

SQLException during action run clears done table

Improper handling of a return code resulted in clearing the action history file when a database query encountered an anomaly or simply failed to complete.

Timestamp on note incorrect if time is 12:XX:XX

Parsing the date-time values in patient folder notes assumed a 12-hour clock rather than a 24-hour clock.

CWL does not allow merging a study to an order

Correcting a study to an order might fail because orders don’t have an owner hub, which is required to determine where the combined study resides. As a result, manual corrections from the GUI reported a failure to the user.

Late corrects don’t update data if the correcting device is not the study owner

A missing RMI call caused the server correcting a late-arriving order to a study to not update the study data with the order data if the correcting server was not the study owner.

Hermes java VM remains after ~/etc/rc stop

If the shutdown process encountered an exception, which could be legitimate depending on the timing/sequencing, it could exit before terminating hermes.

Cannot forward from patient folder

Back-end support for forwarding studies from the patient folder was incomplete, resulting in no action when the button was clicked.

Slow query log entries use ms instead of seconds

The query time reported in a slow query log entry was in seconds but tagged as being in milliseconds.

User with empty password cannot be edited

User accounts with empty passwords, which is not a valid state, could not be corrected because the missing password was not handled and caused an error when editing.

Task collapsing doesn't work for retry tasks

Duplicate tasks that weren’t collapsed were not returned to the duplicate task map, causing them to remain in the retry queue until executed. Under certain conditions, the retry queue could grow large with unnecessary duplicate tasks.

Handle non-dll filenames for plugins

While looking for plugin license files, the system failed to recognize plugins that were not distributed as DLL files.

Notify action error message

Identifying the email address offered as the default when configuring a Notify action failed for internally-defined accounts, such as the system account. In this case, the default comes up empty, requiring the user to explicitly declare the email recipient.

Tasks filter window allows user to go to another web page without closing

If the tasks page’s filter panel was open when the user called up a different web page, the filter panel was not closed and remained on the screen.

Session type changed on apache

Viewer sessions were not recognized after restarting Apache, causing the cached data fields (eg, Percent Loaded) to report no data until the user logged out and back in.

QueryQualifier doesn't properly handle PDOB quick filter

Searching a worklist using a date value in the quick filter field that would result in a query qualifier exception returned an error message and no data because the date filter was improperly encoded in the database search request.

CompressDataTask should not use static path

The compress data action used a static pathname to the study rather than using the repository’s location finder. If the study was moved from its original location, the compress action could not locate it and therefore failed to process the data.

Can't break stuck system lock from the worklist GUI

A system lock failed to be released because of a missing constructor. The constructor has been added to avoid the stuck lock. Also, when a user attempted to break the system lock, which is not permitted, the user received no explanation of why the lock remained. Now the user is informed he has no permissions to break a system lock.

Webviewer does not start if custom http port is used

When using a custom port to launch the web viewer, the server would mishandle parsing the URL to locate the host name, causing the request to fail.

Custom plugin doesn't work with new license

The plugin licensing enhancements failed to recognize custom plugin modules because the new naming rules were not applied correctly to custom plugin file names.

epws createUser broken when using PasswordOptions parameter

When using the web services command to create a user and including the password option tag but specifying no options, the request would fail because the server could not parse the empty string from the request.

Delete report with addendum

The delete button was not available from the patient folder if the study contained more than one report object (i.e., there was an addendum to the main report).