How to configure Storage Commitment

vrindanayak edited this page Oct 12, 2016 · 10 revisions
Clone this wiki locally

Overview

Storage Commitment can be configured in following two ways.

1. Store Objects

Storage commitment can be triggered once the objects have been stored to the archive as shown below :

stgcmt.puml

For the Storage Commitment test remote application entity STORESCU needs to be configured because it starts accepting association requests with STORESCU as called AE Title for receiving the storage commitment results. Refer How to configure remote Application Entities

You may modify the default configuration for retries of failed attempts to return Storage Commitment Results by changing values of attributes of the Queue Entry dcmQueueName=StgCmtSCP

  • by creating a LDIF file (e.g.):

    version: 1
    dn: dcmQueueName=StgCmtSCP,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
    changetype: modify
    # Specifies initial interval between retries in ISO-8601 Duration format PnDTnHnMn.nS
    replace: dcmRetryDelay
    dcmRetryDelay: PT30S
    -
    
    # Specifies multiplier of interval between retries from retry to retry in procent
    replace: dcmRetryDelayMultiplier
    dcmRetryDelayMultiplier: 200
    -
    
    # Specifies maximal interval between retries in ISO-8601 Duration format PnDTnHnMn.nS
    replace: dcmMaxRetryDelay
    dcmMaxRetryDelay: PT10M
    -
    
    # Specifies maximal number of retries
    replace: dcmMaxRetries
    dcmMaxRetries: 10
    -
    

    and import it to the LDAP Server by using the ldapmodify command line utility

  • or use the Edit Entry... function of Apache Directory Studio.

One may refer to Queue Descriptor to understand the description of attributes.

Refer ISO-8601 Duration format for more know-how on Durations.

Verification

Required dcm4che Tools

  • storescu simulating the external object source (e.g. modality) STORESCU, from which objects are getting received
  • stgcmtscu implements a Service Class User (SCU) for the Storage Commitment Push Model SOP Class.

Procedure

  1. Store the image in archive using the STORESCU tool as shown below
    storescu -c DCM4CHEE@localhost:11112 /image.dcm
    Below is the snippet of Request - Response logs

       15:55:03,442 INFO  - STORESCU->DCM4CHEE(1) << 1:C-STORE-RQ[pcid=7, prior=0
         cuid=1.2.840.10008.1.20.1 - Computed Radiography Image Storage
         iuid=1.2.840.10008.1.20.1.1 - ?
         tsuid=1.2.840.10008.1.2 - JPEG-LS Lossless Image Compression
    
       15:55:03,705 INFO  - STORESCU->DCM4CHEE(1) >> 1:C-STORE-RSP[pcid=7, status=0H
         cuid=1.2.840.10008.5.1.4.1.1.1 - Computed Radiography Image Storage
         iuid=1.2.840.10008.1.20.1.1 - ?
         tsuid=1.2.840.10008.1.2  - JPEG-LS Lossless Image Compression
    
  2. Run the Storage Commitment test using the STGCMTSCU tool as shown below
    stgcmtscu -b STGCMTSCU:11114 -c DCM4CHEE@localhost:11112 /image.dcm
    Below is the snippet of Request - Response logs

       15:59:30,171 INFO  - STGCMTSCU<-DCM4CHEE(2) >> 1:N-EVENT-REPORT-RQ[pcid=1, eventID=1
         cuid=1.2.840.10008.1.20.1 - Storage Commitment Push Model SOP Class
         iuid=1.2.840.10008.1.20.1.1 - Storage Commitment Push Model SOP Instance
         tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian
    
       15:59:30,172 INFO  - STGCMTSCU<-DCM4CHEE(2) << 1:N-EVENT-REPORT-RSP[pcid=1, status=0H
         cuid=1.2.840.10008.1.20.1 - Storage Commitment Push Model SOP Class
         iuid=1.2.840.10008.1.20.1.1 - Storage Commitment Push Model SOP Instance
         tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian
    
  3. Once the Storage Commitment is complete, it can be checked in the Queues tab in the StgCmtSCP queue with status as Completed as shown below

2. Export Triggered

If configured in LDAP to be triggered on export, storage commitment can be sent automatically if the export of objects has been completed successfully.

You may either

  • create a LDIF file (e.g.):

    version: 1
    dn: dcmExporterID=STORESCP,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
    changetype: modify
    replace: dcmURI
    dcmURI: dicom:DCMQRSCP
    -
    
    dn: dcmExporterID=STORESCP,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
    changetype: modify
    add: dcmStgCmtSCP
    dcmStgCmtSCP: DCMQRSCP
    -
    

    and import it to the LDAP Server by using the ldapmodify command line utility.

  • or use the Add Attribute... and Add Value... function of Apache Directory Studio to add attributes on Exporter Descriptor level (e.g.: dcmExporterID=STORESCP) in the Archive Configuration.

One may refer to Exporter Descriptor to understand the description of attributes.

Note : Only for testing purpose explained below, one needs to modify the value of dcmURI attribute as shown in above ldif example.

Verification

Required dcm4che tools

  • dcmqrscp simulating the storage commitment SCP

Procedure

  1. Add (as shown below) to your $dcm4che-tools/etc/dcmqrscp/ae.properties

         DCM4CHEE=localhost:11112
    
  2. Start the dcmqrscp tool as shown below

         dcmqrscp -b DCMQRSCP:11113 --dicomdir /tmp/DICOMDIR
    
  3. Using the archive user interface, export the objects to STORESCP destination. One can see in the dcmqrscp tool window that the storage commitment is successfully received. Below is a snippet of the request-response logs

     11:45:35,658 INFO  - DCMQRSCP<-DCM4CHEE(2) >> 1:N-ACTION-RQ[pcid=1, actionID=1
       cuid=1.2.840.10008.1.20.1 - Storage Commitment Push Model SOP Class
       iuid=1.2.840.10008.1.20.1.1 - Storage Commitment Push Model SOP Instance
       tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian
     11:45:35,698 INFO  - DCMQRSCP<-DCM4CHEE(2) << 1:N-ACTION-RSP[pcid=1, status=0H
       cuid=1.2.840.10008.1.20.1 - Storage Commitment Push Model SOP Class
       iuid=1.2.840.10008.1.20.1.1 - Storage Commitment Push Model SOP Instance
       tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian
     .........
     11:45:35,972 INFO  - DCMQRSCP->DCM4CHEE(3) << 1:N-EVENT-REPORT-RQ[pcid=1, eventID=1
       cuid=1.2.840.10008.1.20.1 - Storage Commitment Push Model SOP Class
       iuid=1.2.840.10008.1.20.1.1 - Storage Commitment Push Model SOP Instance
       tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian
     11:45:36,203 INFO  - DCMQRSCP->DCM4CHEE(3) >> 1:N-EVENT-REPORT-RSP[pcid=1, status=0H
       cuid=1.2.840.10008.1.20.1 - Storage Commitment Push Model SOP Class
       iuid=1.2.840.10008.1.20.1.1 - Storage Commitment Push Model SOP Instance
       tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian
    
  4. One may also verify the result by seeing it in the Storage Commitment SCU Tasks queue in the Queues tab of the archive UI as shown below :