Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Description 

The Compression Service supports delayed (asynchronous to the C-STORE), lossless compression of images that have been received.  The original file is deleted after it has been compressed into a new file.

Interface 

<!-- Attributes -->
    <attribute access="read-write" getMethod="getMaxConcurrentCodec" setMethod="setMaxConcurrentCodec">
        <description>
            Maximum number of concurrent tasks for compressing and decompressing images.
            When the default value is of MaxConcurrentCodec is 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 archive-install-directory/bin/run.conf file).
        </description>
        <name>MaxConcurrentCodec</name>
        <type>int</type>
        <descriptors>
            <value value="1"/>
        </descriptors>
    </attribute>
  
    <attribute access="read-write" getMethod="getTaskInterval" setMethod="setTaskInterval">
        <description>
            Interval in which the database is checked for images to compress.
                Format: 
                    interval!from-to or NEVER
                Where:
                    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-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-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>
            Specifies compression rules and delay for individual SOP Classes.
            Format:
                sop-class-name-or-uid:compression:delay
            Where:
                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.
        </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,
                .
                .
                .
                "/>
        </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>
            Directory used to spool decompressed files for
            compression verification. Relative path names are resolved relative to
            archive-install-directory/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>
            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.
            Format: 
                ##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="getBufferSize" setMethod="setBufferSize">
        <description>Size of write byte buffer.</description>
        <name>BufferSize</name>
        <type>int</type>
        <descriptors>
            <value value="8192"/>
        </descriptors>
    </attribute>

<!-- Operations -->
    <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>
  • No labels