Compression Service

Description

Compression Service. The Compression Service supports delayed, lossless compression of received images. This is an alternative to immediately compressing images when received. (The lossless compression rules are configured by the Storage SCP#CompressionRules attribute in the Storage SCP service.) The value of the attributes #MaxConcurrentCodec, #MaxBufferedImagePoolSize and #MaxBufferedImagePoolMemoryattribute of the Compression Service also effects the on-the-fly compression and decompression during the receive and retrieve of images by the Storage SCP and Query Retrieve SCP services. (For details, see the these attributes below.) Also see the CODECs page in the dcm4che14 documentation.

Dependencies

Attributes

MaxConcurrentCodec

Maximum number of concurrent tasks for compressing and decompressing images. With the default value of #MaxConcurrentCodec = 1, all compression and decompression operations are serialized. For example, if on-the-fly compression during an image receive is activated, and three modalities concurrently send uncompressed images to the archive, only one image received from one modality is compressed at the same time. This significantly reduces the receiving performance. The used codec allocates memory for uncompressed pixel data of at least one frame, so without limiting the maximum number of concurrent compression tasks, memory consumption could become unacceptable. You will receive an out of memory error if the memory consumption exceeds the configured -Xmx value in the $DCM4CHEE_HOME/bin/run.conf file).

Default Value: 1

MaxConcurrentCompression

Maximum number of concurrent tasks for compressing images. With the default value of #MaxConcurrentCompression = 1, all compression operations are serialized.

Default Value: 1

MaxConcurrentDecompression

Maximum number of concurrent tasks for decompressing images. With the default value of #MaxConcurrentDecompression = 1, all decompression operations are serialized.

Default Value: 1

MaxBufferedImagePoolSize

Maximum number of pooled BufferedImage objects. If #MaxBufferedImagePoolSize > 0, BufferedImage objects allocated for compression and decompression operations are pooled so they can be reused by subsequent compression and decompression operations with matching pixel matrix dimensions. The pool size is additional limited by #MaxBufferedImagePoolMemory, the maximum amount of memory allocated by pooled BufferedImage objects.

Default Value: 10

CurrentBufferedImagePoolSize

Current number of pooled BufferedImage objects.

MaxBufferedImagePoolMemory

Maximum amount of memory allocated by pooled BufferedImage objects. 1MB = 1000000 bytes. If #MaxBufferedImagePoolSize > 0, BufferedImage objects allocated for compression and decompression operations are pooled so they can be reused by subsequent compression and decompression operations with matching pixel matrix dimensions. The pool size is additional limited by #MaxBufferedImagePoolSize, the maximum number of pooled BufferedImage objects.

Default Value: 1MB

CurrentBufferedImagePoolMemory

Current amount of memory allocated by pooled BufferedImage objects. 1MB = 1000000 bytes.

BufferedImagePoolHitRate

Ratio of the number of BufferedImage objects reused from the pool to the total number of used (= reused or new allocated) BufferedImage objects.

TaskInterval

Interval in which the database is checked for images to compress. Format:

  • interval!from-to or NEVER
    • interval = ##s (in seconds), ##m (in minutes), ##h (in hours).
    • from = start hour (0-23) when no compression should be performed to = end hour (0-23) when no compression should be performed
    • NEVER = disable automatic compression
  • Example: 10s!9-17means every 10 seconds, poll the database and check for images to compress, except between the hours of 9:00am and 5:00pm. By setting this type of TaskInterval, you can ensure compression of images happens outside of peak imaging hours.

Default Value: NEVER

LimitNumberOfFilesPerTask

Maximum number of files that are compressed in one task.

Default Value: 1000

CompressionRules

Specifies compression rules and delay for individual SOP Classes. Format:

  • sop-class-name-or-uid:compression:delay** sop-class-name-or-uid = the UID of the SOP class, or a string name defined in the dictionary.xml file under uids type="SOPClass"
    • compression = JPLL|JLSL|J2KR
    • JPLL -JPEG lossless
    • JLSL - JPEG-LS lossless
    • J2KR - JPEG 2000 lossless
    • delay = ##d (in days)
  • Example:
    • ComputedRadiographyImageStorage:JLSL:5d means for the Computed Radiography Image Storage SOP class, compress with JPEG-LS lossless compression every 5 days.

Default Value:

ComputedRadiographyImageStorage:JLSL:5d
DigitalXRayImageStorageForPresentation:JLSL:5d
DigitalXRayImageStorageForProcessing:JLSL:5d
DigitalMammographyXRayImageStorageForPresentation:JLSL:5d
DigitalMammographyXRayImageStorageForProcessing:JLSL:5d
CTImageStorage:JLSL:5d
MRImageStorage:JLSL:5d
UltrasoundImageStorage:JLSL:5d
UltrasoundMultiframeImageStorage:JLSL:5d
UltrasoundImageStorageRetired:JLSL:5d
UltrasoundMultiframeImageStorageRetired:JLSL:5d
SecondaryCaptureImageStorage:JLSL:5d
XRayAngiographicImageStorage:JLSL:5d
XRayRadiofluoroscopicImageStorage:JLSL:5d
NuclearMedicineImageStorage:JLSL:5d

VerifyCompression

Enables the verification of the compressed file.

Default Value: true

TempDirectory

Directory used to spool decompressed files for compression verification. Relative path names are resolved relative to $DCM4CHEE_HOME/server/default/.

Default Value: tmp

KeepTempFileIfVerificationFails

Defines how long files that were decompressed for verification remain for further analysis before being deleted, if the decompressed pixel data differs from the pixel data in the original file. Normally, this value is set higher when adding a new modality, for example, so that you can do quality checking, or if the site only checks for problems once a day. Otherwise, the value can be set relatively low, such as 1 hour or 1 minute.

Format:

  • ##m (in minutes), ##h (in hours), ##d (in days)

Default Value: 1d

BufferSize

Size of write byte buffer.

Default Value: 8192

FileSystemMgtName

Used internally. Do NOT modify.

Default Value: dcm4chee.archive:service=FileSystemMgt

SchedulerServiceName

Used internally. Do NOT modify.

Default Value: dcm4chee.archive:service=Scheduler

TimerIDCheckFilesToCompress

Used internally. Do NOT modify.

Default Value: CheckFilesToCompress

Name

The class name of the MBean

State

The status of the MBean

StateString

The status of the MBean in text form

Operations

create

Standard MBean lifecycle method

start

The start lifecycle operation

stop

The stop lifecycle operation

destroy

The destroy lifecycle operation

jbossInternalLifecycle

The detyped lifecycle operation (for internal use only)

resetBufferedImagePoolHitRate

Reset #BufferedImagePoolHitRate.

checkForTempFilesToDelete

Check for temporary image files to delete.

checkForFilesToCompress

Check for files to compress.

compress

Compress specified object if it is uncompressed and if there is a Compression Rule for its SOP Class UID configured

Notifications