eRAD
PACS Server
When collecting study data failed, the result did not contain a proper error, resulting in an exception.
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.
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.
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.
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.
When adding cw3 support to the web viewer and technologist view pages, some new javascript pages were not included when running in debug mode.
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.
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.
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.
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.
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.
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.
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.
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.
The streaminfo log file was not rotated and continued to grow. The file has been added to the forever log rotation schedule.
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.
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).
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.
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 exceptions coming from Internet Explorer were not handled properly, resulting in a web page exception.
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.
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.
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.
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.
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.
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.
The mechanism used to reconnect the persistent database connection was not implemented, resulting in database access errors.
Studies with compressed images greater than 1MB displayed corrupted (noisy) images because processing failed to buffer pages correctly.
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.
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.
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.
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 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.
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.
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 large objects into blobs could result in corrupt data due to a missed lock.
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.
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 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.
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.
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.
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.
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.
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.
Some documented MySQL exceptions occurred but the recommended solution – retry the query/update – was not applied.
Multiple collapsed prepStudy tasks could exist in the task queue at the same time due to a racing condition when creating these tasks.
prepStudy tasks in the retry queue could not be terminated by the post-collapse cleanup function.
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.
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.
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.
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.
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 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.
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.
A typo existed in the term “ForwardStudy” in log file entries for a web services study forward event.
Newly created document types failed to show up on the document type configuration page until after a browser page refresh.
The viewer version number in the uploaded viewer logs was incorrect because the data was taken from the wrong object.
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.
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 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.
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.
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.
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.
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.
After upgrading java, an incompatible JAX-WS file caused all web services commands to fail. Upgraded JAX-WS to version 2.3.5.
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.
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.
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.
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.
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.
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.
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.
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.
Static user passwords failed to account for the updated hash format.
Updating the password hash format missed a few places, including the Change Password page.
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.
Parsing the date-time values in patient folder notes assumed a 12-hour clock rather than a 24-hour clock.
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.
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.
If the shutdown process encountered an exception, which could be legitimate depending on the timing/sequencing, it could exit before terminating hermes.
Back-end support for forwarding studies from the patient folder was incomplete, resulting in no action when the button was clicked.
The query time reported in a slow query log entry was in seconds but tagged as being in milliseconds.
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.
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.
While looking for plugin license files, the system failed to recognize plugins that were not distributed as DLL files.
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.
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.
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.
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.
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.
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.
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.
The plugin licensing enhancements failed to recognize custom plugin modules because the new naming rules were not applied correctly to custom plugin file names.
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.
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).