349 lines
13 KiB
XML
349 lines
13 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE mbean PUBLIC
|
|
"-//JBoss//DTD JBOSS XMBEAN 1.1//EN"
|
|
"http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_1.dtd">
|
|
|
|
<mbean>
|
|
<description><![CDATA[
|
|
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 <b>CompressionRules</b> attribute in the StorageSCP
|
|
service.) The value of the attributes <b>MaxConcurrentCodec</b>,
|
|
<b>MaxBufferedImagePoolSize</b> and <b>MaxBufferedImagePoolMemoryattribute</b>
|
|
of the Compression Service also effects the on-the-fly compression and
|
|
decompression during the receive and retrieve of images by the StorageSCP and
|
|
QueryRetrieveSCP services. (For details, see the these attributes below.)
|
|
]]></description>
|
|
|
|
<descriptors>
|
|
<persistence persistPolicy="OnUpdate" />
|
|
<persistence-manager
|
|
value="org.jboss.mx.persistence.DelegatingPersistenceManager" />
|
|
</descriptors>
|
|
|
|
<class>org.dcm4chex.archive.mbean.CompressionService</class>
|
|
|
|
<constructor>
|
|
|
|
<description>The default constructor</description>
|
|
<name>CompressionService</name>
|
|
</constructor>
|
|
|
|
<!-- Attributes -->
|
|
<attribute access="read-write" getMethod="getMaxConcurrentCodec"
|
|
setMethod="setMaxConcurrentCodec">
|
|
<description><![CDATA[
|
|
Maximum number of concurrent tasks for compressing and decompressing images.
|
|
With the default value of <b>MaxConcurrentCodec</b> = 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 $ABPACS_HOME/bin/run.conf file).
|
|
]]></description>
|
|
<name>MaxConcurrentCodec</name>
|
|
<type>int</type>
|
|
<descriptors>
|
|
<value value="1" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getMaxConcurrentCompression"
|
|
setMethod="setMaxConcurrentCompression">
|
|
<description><![CDATA[
|
|
Maximum number of concurrent tasks for compressing images. With the default value of
|
|
<b>MaxConcurrentCompression</b> = 1, all compression operations are serialized.
|
|
]]></description>
|
|
<name>MaxConcurrentCompression</name>
|
|
<type>int</type>
|
|
<descriptors>
|
|
<value value="1" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getMaxConcurrentDecompression"
|
|
setMethod="setMaxConcurrentDecompression">
|
|
<description><![CDATA[
|
|
Maximum number of concurrent tasks for decompressing images. With the default value of
|
|
<b>MaxConcurrentDecompression</b> = 1, all decompression operations are serialized.
|
|
]]></description>
|
|
<name>MaxConcurrentDecompression</name>
|
|
<type>int</type>
|
|
<descriptors>
|
|
<value value="1" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getFileSystemGroupIDs"
|
|
setMethod="setFileSystemGroupIDs">
|
|
<description><![CDATA[Group IDs of writable file systems which are scanned
|
|
for image files to compress in configured <b>TaskInterval</b>. Separate
|
|
multiple values by comma (',').
|
|
]]>
|
|
</description>
|
|
<name>FileSystemGroupIDs</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value value="ONLINE_STORAGE" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getMaxBufferedImagePoolSize"
|
|
setMethod="setMaxBufferedImagePoolSize">
|
|
<description><![CDATA[
|
|
Maximum number of pooled BufferedImage objects. If
|
|
<b>MaxBufferedImagePoolSize</b> > 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
|
|
<b>MaxBufferedImagePoolMemory</b>, the maximum amount of memory allocated by
|
|
pooled BufferedImage objects.
|
|
]]></description>
|
|
<name>MaxBufferedImagePoolSize</name>
|
|
<type>int</type>
|
|
<descriptors>
|
|
<value value="10" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-only" getMethod="getCurrentBufferedImagePoolSize">
|
|
<description> Current number of pooled BufferedImage objects.
|
|
</description>
|
|
<name>CurrentBufferedImagePoolSize</name>
|
|
<type>int</type>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getMaxBufferedImagePoolMemory"
|
|
setMethod="setMaxBufferedImagePoolMemory">
|
|
<description><![CDATA[
|
|
Maximum amount of memory allocated by pooled BufferedImage objects.
|
|
1MB = 1000000 bytes. If <b>MaxBufferedImagePoolSize</b> > 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
|
|
<b>MaxBufferedImagePoolSize</b>, the maximum number of pooled BufferedImage
|
|
objects.
|
|
]]></description>
|
|
<name>MaxBufferedImagePoolMemory</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value value="1MB" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-only" getMethod="getCurrentBufferedImagePoolMemory">
|
|
<description> Current amount of memory allocated by pooled
|
|
BufferedImage objects. 1MB = 1000000 bytes. </description>
|
|
<name>CurrentBufferedImagePoolMemory</name>
|
|
<type>java.lang.String</type>
|
|
</attribute>
|
|
|
|
<attribute access="read-only" getMethod="getBufferedImagePoolHitRate">
|
|
<description> Ratio of the number of BufferedImage objects reused
|
|
from the pool to the total number of used (= reused or new
|
|
allocated) BufferedImage objects. </description>
|
|
<name>BufferedImagePoolHitRate</name>
|
|
<type>float</type>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getTaskInterval"
|
|
setMethod="setTaskInterval">
|
|
<description><![CDATA[Interval in which the database is checked for image
|
|
files located on writeable file systems with one of the configured
|
|
<b>FileSystemGroupIDs</b> to compress.
|
|
<br>Format:
|
|
<br><i>interval</i>!<i>from</i>-<i>to</i> or NEVER
|
|
<br><i>interval</i> = ##s (in seconds), ##m (in minutes), ##h (in hours).
|
|
<br><i>from</i> = start hour (0-23) when no compression should be performed
|
|
<br><i>to</i> = end hour (0-23) when no compression should be performed
|
|
<br>NEVER = disable automatic compression
|
|
<br>Example:10s!9-17 means 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.]]>
|
|
</description>
|
|
<name>TaskInterval</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value value="NEVER" />
|
|
</descriptors>
|
|
</attribute>
|
|
<attribute access="read-only"
|
|
getMethod="isRunning">
|
|
<description>Current state if compression task is running. Used to avoid concurrency!
|
|
</description>
|
|
<name>isRunning</name>
|
|
<type>boolean</type>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getLimitNumberOfFilesPerTask"
|
|
setMethod="setLimitNumberOfFilesPerTask">
|
|
<description>Maximum number of files that are compressed in
|
|
one task.</description>
|
|
<name>LimitNumberOfFilesPerTask</name>
|
|
<type>int</type>
|
|
<descriptors>
|
|
<value value="1000" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getCompressionRules"
|
|
setMethod="setCompressionRules">
|
|
<description><![CDATA[Specifies compression rules and delay for individual
|
|
SOP Classes.
|
|
<br>Format:
|
|
<br><i>sop-class-name-or-uid</i>:<i>compression</i>:<i>delay</i>
|
|
<br><i>sop-class-name-or-uid</i> = the UID of the SOP class, or a string
|
|
name defined in the dictionary.xml file under uids type="SOPClass"
|
|
<br><i>compression</i> = JPLL|JLSL|J2KR
|
|
<br>JPLL -JPEG lossless
|
|
<br>JLSL - JPEG-LS lossless
|
|
<br>J2KR - JPEG 2000 lossless
|
|
<br><i>delay</i> = ##d (in days)
|
|
<br>Example:
|
|
<br>ComputedRadiographyImageStorage:JLSL:5d means compress Computed
|
|
Radiography Images with JPEG-LS lossless compression after 5 days.
|
|
]]>
|
|
</description>
|
|
<name>CompressionRules</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value
|
|
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
|
|
" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="isVerifyCompression"
|
|
setMethod="setVerifyCompression">
|
|
<description>Enables the verification of the compressed file.
|
|
</description>
|
|
<name>VerifyCompression</name>
|
|
<type>boolean</type>
|
|
<descriptors>
|
|
<value value="true" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getTempDir"
|
|
setMethod="setTempDir">
|
|
<description><![CDATA[Directory used to spool decompressed files for
|
|
compression verification. Relative path names are resolved relative to
|
|
$ABPACS_HOME/server/default/.]]>
|
|
</description>
|
|
<name>TempDirectory</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value value="tmp" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getKeepTempFileIfVerificationFails"
|
|
setMethod="setKeepTempFileIfVerificationFails">
|
|
<description><![CDATA[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.
|
|
<br>Format: <br>##m (in minutes), ##h (in hours), ##d (in days)]]>
|
|
</description>
|
|
<name>KeepTempFileIfVerificationFails</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value value="1d" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getCleanupTempFilesInterval"
|
|
setMethod="setCleanupTempFilesInterval">
|
|
<description><![CDATA[Interval in which temporary files (older than
|
|
KeepTempFileIfVerificationFails) are deleted from TempDirectory.]]>
|
|
</description>
|
|
<name>TempFileCleanupInterval</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value value="3d" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getBufferSize"
|
|
setMethod="setBufferSize">
|
|
<description>Size of write byte buffer. </description>
|
|
<name>BufferSize</name>
|
|
<type>int</type>
|
|
<descriptors>
|
|
<value value="8192" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getSchedulerServiceName"
|
|
setMethod="setSchedulerServiceName">
|
|
<description>Used internally. Do NOT modify. </description>
|
|
<name>SchedulerServiceName</name>
|
|
<type>javax.management.ObjectName</type>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getTimerIDCheckFilesToCompress"
|
|
setMethod="setTimerIDCheckFilesToCompress">
|
|
<description>Used internally. Do NOT modify. </description>
|
|
<name>TimerIDCheckFilesToCompress</name>
|
|
<type>java.lang.String</type>
|
|
</attribute>
|
|
|
|
&defaultAttributes;
|
|
|
|
<!-- Operations -->
|
|
&defaultOperations;
|
|
|
|
<operation impact="ACTION">
|
|
<description>
|
|
<![CDATA[Reset <b>BufferedImagePoolHitRate</b>.]]>
|
|
</description>
|
|
<name>resetBufferedImagePoolHitRate</name>
|
|
<return-type>void</return-type>
|
|
</operation>
|
|
|
|
<operation impact="ACTION">
|
|
<description>Check for temporary image files to delete.</description>
|
|
<name>checkForTempFilesToDelete</name>
|
|
<return-type>void</return-type>
|
|
</operation>
|
|
|
|
<operation impact="ACTION">
|
|
<description>Check for files to compress.</description>
|
|
<name>checkForFilesToCompress</name>
|
|
<return-type>void</return-type>
|
|
</operation>
|
|
|
|
<operation impact="ACTION">
|
|
<description>Compress specified object if it is uncompressed
|
|
and if there is a Compression Rule for its SOP Class UID
|
|
configured</description>
|
|
<name>compress</name>
|
|
<parameter>
|
|
<name>fileDTO</name>
|
|
<type>org.dcm4chex.archive.ejb.interfaces.FileDTO</type>
|
|
</parameter>
|
|
<return-type>boolean</return-type>
|
|
</operation>
|
|
|
|
</mbean>
|