MPPS Not Supported by Modality - dcm4che/dcm4chee-arc-light GitHub Wiki

Overview

Instance Availability Notification can be sent when Modality Performed Procedure Step is NOT supported by a modality. In this case, when the study is completely received and if below configurations are in place, an IAN notification will be sent out.

Configuration

Other properties/fields required for this feature can be configured either by :

  • Using Archive UI - Can be configured either on :
    • Archive Device level (Send IAN for instances received by any Application Entity of the Archive) :

      Go to Menu->Configuration, then on Devices page click on Edit of the dcm4chee-arc device. Go to Extensions and Edit extension of Device Extension. Again go to its Extensions and Edit extension of Archive Device. Enter values in fields Ian Destination (Remote AE Title configured as IAN destination), IAN Delay. To add more than one IAN Destination simply click + Add.

    • Archive Application Extension level (Send IAN for instances received by this Application Entity of the Archive) :

      Go to Menu->Configuration, then on Devices page click on Edit of the dcm4chee-arc device. Go to Child Objects and select an Application Entity from Network AEs dropdown. Go to its Extensions and Edit extension of Network AE Extension. Again go to its Extensions and Edit extension of Archive Network AE. Enter values in fields Ian Destination (Remote AE Title configured as IAN destination) and IAN Delay. To add more than one IAN Destination simply click + Add.

OR

  • Using LDAP - One may either create a LDIF file to add attributes either on :

    • Archive Device level (e.g.):

       version: 1
       dn: dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
       changetype: modify
       add: dcmIanDestination
       dcmIanDestination: IANSCP
      
       dn: dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
       changetype: modify
       add: dcmIanDelay
       dcmIanDelay: PT5M        
      

    OR

    • Archive AE level (e.g.):

       version: 1
       dn: dicomAETitle=DCM4CHEE,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
       changetype: modify
       add: dcmIanDestination
       dcmIanDestination: IANSCP
      
       dn: dicomAETitle=DCM4CHEE,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
       changetype: modify
       add: dcmIanDelay
       dcmIanDelay: PT5M
      

    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 Device Level (e.g.: dicomDeviceName=dcm4chee-arc) or on Application Entity Level (e.g: dicomAETitle=DCM4CHEE) of the Archive Configuration.

One may refer to Archive Device or Archive Network AE to understand the description of attributes.

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

Go to the Control tab on Configuration page in archive UI and reload the configuration.

Testing

Required dcm4che Tools

  • storescu simulating the external object source (e.g. modality) STORESCU, from which objects are being received.

Verification

  1. Store a study on archive

       storescu -c DCM4CHEE@localhost:11112 /pathToStudy
    
  2. Start IANSCP

       ianscp -b IANSCP:11117
    
  3. After configured IAN Delay, one can see in the ianscp tool window that the Instance Availability notification has been received.

12:12:27,570 INFO  - IANSCP<-DCM4CHEE(1) >> 1:N-CREATE-RQ[pcid=1
  cuid=1.2.840.10008.5.1.4.33 - Instance Availability Notification SOP Class
  iuid=2.25.231595008744213457665446840453625876754 - ?
  tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian
12:12:27,586 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.33] AffectedSOPClassUID
(0000,0100) US [320] CommandField
(0000,0110) US [1] MessageID
(0000,0800) US [0] CommandDataSetType
(0000,1000) UI [2.25.231595008744213457665446840453625876754] AffectedSOPInsta

12:12:27,587 DEBUG - Dataset:
(0008,1111) SQ [] ReferencedPerformedProcedureStepSequence
(0008,1115) SQ [1 Items] ReferencedSeriesSequence
>Item #1
>(0008,1199) SQ [1 Items] ReferencedSOPSequence
>>Item #1
>>(0008,0054) AE [STORESCP] RetrieveAETitle
>>(0008,0056) CS [ONLINE] InstanceAvailability
>>(0008,1150) UI [1.2.840.10008.5.1.4.1.1.7] ReferencedSOPClassUID
>>(0008,1155) UI [1.3.6.1.4.1.5962.1.1.0.1.1.1175775772.5723.0] ReferencedSOPI
>(0020,000E) UI [1.3.6.1.4.1.5962.1.3.0.1.1175775772.5723.0] SeriesInstanceUID
(0020,000D) UI [1.3.6.1.4.1.5962.1.2.0.1175775772.5723.0] StudyInstanceUID

12:12:27,588 INFO  - IANSCP<-DCM4CHEE(1) << 1:N-CREATE-RSP[pcid=1, status=0H
  cuid=1.2.840.10008.5.1.4.33 - Instance Availability Notification SOP Class
  iuid=2.25.231595008744213457665446840453625876754 - ?
  tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian
12:12:27,588 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.33] AffectedSOPClassUID
(0000,0100) US [33088] CommandField
(0000,0120) US [1] MessageIDBeingRespondedTo
(0000,0800) US [257] CommandDataSetType
(0000,0900) US [0] Status
(0000,1000) UI [2.25.231595008744213457665446840453625876754] AffectedSOPInsta

Monitoring IAN Tasks

Go to the Menu->Monitoring page and click on Queues tab.

  • Here you need to select IAN Tasks from Queue dropdown and may select one or more filters and query for the IAN tasks. You can also just get the Count of IAN tasks.
  • You also have the option to reschedule/cancel/delete a single IAN Task (icons available against each task, hover for info) or use bulk operations on IAN tasks i.e Reschedule all matching tasks/Cancel all matching tasks/Delete all matching tasks.
  • For doing bulk reschedule, one of the following status COMPLETED/WARNING/FAILED/CANCELED must always be selected in order to be able to see the option Reschedule all matching tasks in the All actions dropdown.
  • For doing bulk cancel, one of the following status SCHEDULED/IN PROCESS must always be selected in order to be able to see the option Cancel all matching tasks in the All actions dropdown.
  • For doing bulk delete, one can select Delete all matching tasks in the All actions dropdown.
⚠️ **GitHub.com Fallback** ⚠️