Resolved Issues

Viewer Build 5

Viewer crash getting image download percentage

The viewer could crash when collecting an image’s decompression rate for the download percentage calculation because the thread was not locked.

Viewer hang using spin count of CriticalSection

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.

Crash when creating plugin from not downloaded images

If no data has started downloading before the plugin checks to see how much data has arrived, the plugin would crash.

Deleting an image can cause viewer 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.

Multi finalizing call for a view at rare timing

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.

Viewer crash at stream table update

A failure to lock the streaming table when opening a study or appending a study to an existing session resulted in a crash.

Image created by plugins creates a file remaining on the Temporary directory

Image files created by plugin modules remained in the viewer’s temp directory after uploading them to the server.

Empty outline eye icon not shown on unviewed series in the thumbnail panel

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.

Unable to append a study to an open session

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.

Empty rescale slope attribute results in a black image

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.

Viewer crash on unsafe thread container initialization

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.

Viewer crash when Modality LUT data is not cleared

An uninitialized modality LUT structure in the viewer could cause the viewer to crash if the image object defined a modality LUT.

Viewer Build 4

Standalone (CD) viewer doesn't work

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.

Mammo CAD isn't shown in HP

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.

Viewer Build 3

Restoring a bookmarked study can cause crashes

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.

Key image not added properly when added to prior studies

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.

Viewer crash when scanning an image

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.

Print layouts crash

If the print layout manager panel is invoked before the viewer has established a connection with the server, the viewer would crash.

Incorrect image decompression completion detection

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 view icon on thumbnail panel isn't updated after the full image decompression

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.

Incorrect compression overlay value

The compression ratio overlay field misreported its value because the calculation was not using the full uncompressed image size.

Viewer doesn't create new image data in scanner mode

After refactoring the image storing process, some data was not initialized when scanning an image, resulting in a crash.

Annotations not preserved after restoring a bookmarked MG study

When restoring an annotated, bookmarked image to an image frame, the viewer would incorrectly clear saved annotations like it does when temporary annotations exist.

Releasing mechanism of memory manager doesn't lock the data

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.

Streaming issue: more robust error handling

When the streaming packet header is corrupted, data streaming stops and the channel needs to be reset.

Stream issue: performance measurement request cause broken packet

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.

Viewer crash when key image objects exist without image objects

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.

Incorrect priority for full decompression

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.

Viewer Build 2

DEPENDENCY NOTICE: Dependencies exist. See details below.

Herpa streaming

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.

Incorporate gwav4 compression

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.

Viewer Build 1

UDI for v9 viewer

The UDI displayed in the viewer details panel has been set to 0086699400025590.

Baseline viewer code base on v8.0

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.

Remove settings for retired features

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.

Series matching algorithm performance improvement

The series matching feature used by the hanging protocol manager and for series grouping has been optimized for performance, removing unnecessary calculations as well.

Server provided stream server addresses

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.