PACS
Desktop Viewer
REVERSIBILITY NOTICE: If there are reports saved locally, due to a bookmarked study or crashed viewer session, these cannot be recovered if reverting to a prior version.
The viewer failed to check for an error after it submitted presentation states to the server and always reported the send completed successfully. The viewer now checks the status returned by the server. When there are errors, the message indicates which presentation states failed. The user can decide to continue without them or to delete the presentation state in the viewer and recreate it.
When using some language settings, the backup management panel failed to convert some characters to UTF-8 properly, resulting in invalid characters in place of accented characters in labels, dates and other text details.
When multiple studies reside on DICOM media created by eRAD PACS, the viewer might miscalculate the number of series or objects it’s been asked to open. As a result, only some of the series would be loaded.
When the user initiates a viewer session (Evo7 only) with the study currently being prefetched, the viewer might unlock the pump manager more than once, causing other threads to unlock prematurely and result in a hang or crash.
When the user interrupts image downloading, e.g., by closing a study while it is loading, the viewer fails to release some cache object references, leading to a resource leak. This has been resolved.
If the scheduler is interrupted when the CD viewer is loading images, the study being processed might not complete because the scheduler thread didn’t get restarted. As a result, some images would not be fully processed/decompressed.
If study load was interrupted when parsing the pbs file, the viewer might not free the study data container, leading to a memory resource leak.
If the call to draw an image failed to acquire a lock, it returned an error code the viewer didn’t recognize, resulting in inconsistent behavior.
For non-image data downloads, the temp pump was set to make a single request for data. If the data was greater than the requested size (32K), the remaining data was not downloaded.
An uninitialized lock age parameter could result in misleading data in a broken log message. To accommodate very old locks, the lock age variable was increased from 32-bits to 64-bits.
The viewer’s login dialog box was not started by the main thread. When the user logged in from the browser while this dialog was displayed, the viewer could hang or crash if they also attempted to enter data in the viewer’s login dialog box.
When the viewer resampled a thumbnail image using the image in memory (rather than from the herpa data), the viewer failed to set the thumbnail image size.
Links embedded on the settings panel failed when the applied language profile was not English because the links referenced the page by name, which changed after selecting another language.
The handshake between the cache manager and the viewer (specifically the study pump) could fail if the study pump is blocked but the pump manager removes a study from the list. The cache manager could remove the references after the study closes, but the viewer might attempt to use them when it opens the same study again.
The viewer failed to handle an exception, likely the result of a broken network connection, when logging in and out of a server, resulting in a viewer crash.
If the user received a popup notice while in the persistent recording state, the viewer could become stuck in that state after the popup clears and the user releases the record button.
When the viewer attempted to submit a report containing a status change, it could fail to include the impression data which would cause the server to hang, waiting for it. As a result, the viewer would get stuck in the closing state. This has been resolved.
When the viewer is running very slowly, for example, when a misconfigured antivirus solution is running, decompression, thumbnail creation and saving is delayed. As the viewer continues downloading the remaining compressed thumbnail data, the packets could get out-of-sync and some data can get released before it is used, causing the viewer to crash. This has been resolved.
The viewer failed to confirm a streaming task record still existed before attempting to access it. This has been resolved.
The scale at the bottom of the window/level distribution graph failed to recognize the greyscale photometric interpretation setting and always assumed zero was black, resulting in an inverted distribution graph when the image is defined as MONOCHROME1.
When using streaming protocol and the visible image frame in the original layout is set to use more tiles than there are images in the series rendered to that frame, the viewer would crash.
After the viewer stored the study UID in the stream server table, it incorrectly removed it when the session closed rather than when the study container was removed. If the viewer attempted to access the study referenced by the study container, it could crash.
The availability of a configurable user name and password to include in the XML file when dropped was applied to external reporting solutions with the specific label “XML Interface Speech Recognition” rather than any XML file drop solution.
When updating the thumbnail panel after receiving a request to add a study to the session, the viewer would allocate a structure to store the new studies, overriding the previous structure. However, the viewer did not properly remove the original structure, resulting in a read/write lock conflict and a deadlock condition.
If the reader thread and processing thread complete at the same time, the event signal can get crossed, causing one of the threads to miss the signal and hang indefinitely.
The locking mechanism could fail when the viewer attempted to allocate multiple read locks, causing a deadlock condition.
The application name is taken from the resource file but not until after the resource file was loaded. As a result, the application name was missing from the session log file.
If the herpa data is cached on the workstation and the open request is redirected to a server (for example, from a hub server to a child server when the open request was submitted to the worklist server), the viewer failed to initiate a function causing the study parsing to remain incomplete. And when the viewer session ended, the viewer would not close because it was waiting for the thread to close first.
If the thumbnail panel’s overlay information setting changed during or after closing the study, the pointer to the thumbnail header object became invalid and caused a crash when accessed.
After changing the grid mode setting to reuse data in populated image frames when eight or more image frames are on the screen with the selected frame being the last frame, and then changing the layout to one frame per screen, the viewer could crash because the viewer failed to update the selected image frame which no longer existed, even as a frame on a virtual monitor.
Some attempts have been made to address an unidentified crash in low-level Windows libraries when using the viewer’s patient folder.
If the server sent the viewer an invalid or empty stream server URL, an exception occurred but the viewer failed to catch it and crashed.
If the DICOM printer configuration contains an empty value for the true size flag setting, the viewer could crash when printing to the DICOM printer.
Spine labeling configuration data was mismanaged and the application of spine labels was mishandled, resulting in unavailable features or unintended behavior. This included the inconsistent storage of spine labels in the current XML-based storage format, improper application of spine label sets when modifying their configuration, and failure to update applied spine label values and connector lines after modifying their settings.
Continuing dictation recording after restoring a bookmarked session with a partial dictation popped up a progress panel that would not disappear after reloading completed.
Managing the streaming table failed to recognize a condition in which the study being removed from the table was also in the current sending list, resulting in a viewer crash.
After removing an auto-generated presentation state image, the viewer might still attempt to update it in the thumbnail panel, causing the viewer to crash.
When reloading a viewer session containing an image that was updated on the server, and for which a modality-specific preset W/L setting was applied, the viewer could crash because the viewer attempted to use the general preset values instead.
When populated virtual monitors exist, the viewer is configured to reuse populated frames, and the user sets the grid layout to some value twice, the second refresh displays no image in the first monitor’s frames.
When the LUT table provided in an image object contained zeroes in both the first and last position, calculating the minimum and maximum values resulted in an error causing the viewer to crash.
The viewer could crash when collecting an image’s decompression rate for the download percentage calculation because the thread was not locked.
A recent fix applied to restoring a bookmarked study resulted in the viewer blocking Windows application messages. One of these messages attempted to refresh a locked image, but the viewer didn’t receive the message.
If no data has started downloading before the plugin checks to see how much data has arrived, the plugin would crash.
After deleting an image or series that was exported from a plugin, the viewer failed to update the thumbnail panel. When the viewer refreshed the thumbnail panel, for any reason, the viewer would crash.
When the viewer is loading multiple studies and processing for the last two (or more) completes at the same time, the viewer can make multiple calls declaring the session is ready to use when only one is needed.
A failure to lock the streaming table when opening a study or appending a study to an existing session resulted in a crash.
Image files created by plugin modules remained in the viewer’s temp directory after uploading them to the server.
When creating a hanging protocol, the viewer failed to recognize the state of non-visible frames. As a result, series loading into non-visible frames when applying a hanging protocol displayed the incorrect viewed image icon on the thumbnail image.
A recent change eliminated a required thumbnail panel refresh. As a result, some data failed to appear in the thumbnail panel after appending a study to an active viewer session.
A change in the DICOM library resulted in a different return code when the viewer extracted the rescale slope value from the object. As a result, a default value wasn’t applied when no value was present, causing all pixel values to set to black.
The process for initializing large studies with many objects was not thread-safe, causing the viewer to crash when multiple threads attempted to initialize the same container.
An uninitialized modality LUT structure in the viewer could cause the viewer to crash if the image object defined a modality LUT.
Changes to the caching mechanism broke the DICOM processing mechanism in the standalone viewer, causing the standalone viewer to fail image loading. Note that the standalone viewer uses the thumbnail image until the full image has been fully processed and ready for display.
The fix for missing CAD markers when restoring a bookmarked viewer session disabled automatic application of CAD markers for stored data. As a result, the viewer failed to recognize the default CAD display setting saved in hanging protocols.
If the viewer received an open request, such as a second restore request, while still processing a bookmark restore request, the viewer could crash when the open request completed because it mismanaged the interrupted process.
When adding a key image to a prior study, as a report addendum, the viewer failed to submit it to the server because the mechanism for sending the key image had not been updated to make the call.
When the viewer-based scanning panel is opened from the Scan button on the worklist, some modules required the character set containers but they were not loaded, causing the viewer to crash.
If the print layout manager panel is invoked before the viewer has established a connection with the server, the viewer would crash.
The viewer was not checking the image data type so if it was the initial quality (IQ) image only and the remaining data did not follow (for some reason), the viewer could mislabel the image as full resolution.
The viewer called a refresh for every decompression event, even for images that were not visible. The large number of events might cause the viewer to miss a refresh, causing the image in the thumbnail panel to remain unchanged. Now, refresh events are called for visible images only.
The compression ratio overlay field misreported its value because the calculation was not using the full uncompressed image size.
After refactoring the image storing process, some data was not initialized when scanning an image, resulting in a crash.
When restoring an annotated, bookmarked image to an image frame, the viewer would incorrectly clear saved annotations like it does when temporary annotations exist.
Because the memory manager unnecessarily accessed the image data without locking it, it could use the image data while the viewer was closing the session. If the viewer released the image first, the viewer might crash.
When the streaming packet header is corrupted, data streaming stops and the channel needs to be reset.
When the viewer requested the performance measurement data from the server, it submitted the request on the data streaming connection. When the server submitted the response on the same connection, the data interfered with the streaming data, resulting in corrupted data. The viewer now requests performance data using the control stream connection.
The viewer failed to handle (empty) herpa data when the study consisted of non-image objects only, resulting in a crash. Now, the viewer displays the study details in the thumbnail header and indicates no image objects exist.
When prioritizing data for decompression, the viewer could download some non-visible images before fully downloading and decompressing visible images, causing a delay in rendering the visible images.
DEPENDENCY NOTICE: Dependencies exist. See details below.
DEPENDENCY
NOTICE: This feature requires medsrv-9.0.2.
The herpa download uses streaming through the stream server rather than
HTTP from the application server.
DEPENDENCY
NOTICE: This feature requires medsrv-9.0.2.
The streaming technology has added support for gwav version 4, permitting
better initial quality from smaller thumbnail images. The viewer still
accepts gwav3 and gwav1, if offered by the server.
The UDI displayed in the viewer details panel has been set to 0086699400025590.
The baseline code base for version 9.0 viewer is viewer-8.0.85, desktopApp-8.0.31 and plugins-8.0.8 and includes the new (v9) caching mechanism (cache into memory, only), optimized image loading and only hyper+ streaming support.
All configurable settings and visible indications for and about retired features have been removed, including prefetch settings, cache management settings and HTTP-based streaming settings.
The series matching feature used by the hanging protocol manager and for series grouping has been optimized for performance, removing unnecessary calculations as well.
The viewer uses the stream server assigned by the server when streaming data during the session. If no stream server is provided, the viewer uses the server that sent the session (PBS) data.