Multiple Archives with Direct Attached Storage sharing one DB - dcm4che/dcm4chee-arc-light GitHub Wiki
On Application Entity level of 1st Archive - dcmAltCMoveSCP attribute needs to be created and set to DCM4CHEE2 which is the AE Title of 2nd Archive. When images or studies are stored on the 1st archive, it is also available on 2nd archive because both archives are sharing the same database.
One may either
-
create a LDIF file (e.g.):
version: 1 dn: dicomAETitle=DCM4CHEE1,dicomDeviceName=dcm4chee-arc1,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org changetype: modify add: dcmAltCMoveSCP dcmAltCMoveSCP: DCM4CHEE2 -
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 Application Entity Level (e.g:
dicomAETitle=DCM4CHEE1
) in the Archive Configuration.
Go to the Control tab on Configuration page in archive UI and reload the configuration.
On Application Entity level of 2nd Archive - dcmAltCMoveSCP attribute needs to be created and set to DCM4CHEE1 which is the AE Title of 1st Archive. When images or studies are stored on the 2nd archive, it is also available on 1st archive because both archives are sharing the same database.
One may either
-
create a LDIF file (e.g.):
version: 1 dn: dicomAETitle=DCM4CHEE2,dicomDeviceName=dcm4chee-arc2,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org changetype: modify add: dcmAltCMoveSCP dcmAltCMoveSCP: DCM4CHEE1 -
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 Application Entity Level (e.g:
dicomAETitle=DCM4CHEE2
) in the Archive Configuration.
Go to the Control tab on Configuration page in archive UI and reload the configuration.
One may refer to Archive Network AE to understand the description of attributes.
Note : The dcmAltCMoveSCP
attribute can be added also on device level, but by doing so one will not be able to achieve consistency specific to Application Entity level for the MOVESCU requests. Hence in above configuration it is added at Application Entity level.
- storescu simulating the external object source (e.g. modality) STORESCU, from which objects are being received
- storescp simulating the external object destination (e.g. workstation) STORESCP, to which received objects are forwarded
- movescu implements both an SCU for the Query/Retrieve Service Class and an SCP for the Storage Service Class
- Remote application entity STORESCP needs to be configured because it acts as a destination for MOVESCU requests. Refer Remote Application Entity
Note : STORESCU is respective to the node, but MOVESCU is not. This implies that since the archives are sharing one DB, the images can be retrieved from any of the nodes irrespective of where it was stored.
-
Store the images on archive1 using STORESCU tool as shown below
storescu -c DCM4CHEE1@hostname:port1 /image1.dcm
(image1.dcm StudyInstanceUID=1.2.3.4)
Below is a snippet of Request - Response logs14:35:03,442 INFO - STORESCU->DCM4CHEE1(1) << 1:C-STORE-RQ[pcid=7, prior=0 cuid=1.2.840.10008.5.1.4.1.1.1 - Computed Radiography Image Storage iuid=1.3.51.0.7.1265535119.17104.33870.32953.8838.26602.20894 - ? tsuid=1.2.840.10008.1.2.4.80 - JPEG-LS Lossless Image Compression 14:35:03,705 INFO - STORESCU->DCM4CHEE1(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.3.51.0.7.1265535119.17104.33870.32953.8838.26602.20894 - ? tsuid=1.2.840.10008.1.2.4.80 - JPEG-LS Lossless Image Compression
-
Store the images on archive2 using STORESCU tool as shown below
storescu -c DCM4CHEE2@hostname:port2 /image2.dcm
(image2.dcm StudyInstanceUID=1.2.3.5)
Below is a snippet of Request - Response logs14:36:25,965 INFO - STORESCU->DCM4CHEE2(1) << 197:C-STORE-RQ[pcid=7, prior=0 cuid=1.2.840.10008.5.1.4.1.1.2 - CT Image Storage iuid=1.3.12.2.1107.5.8.2.485251.834849.68674954.2000021711431873 - ? tsuid=1.2.840.10008.1.2.4.80 - JPEG-LS Lossless Image Compression 14:36:27,146 INFO - STORESCU->DCM4CHEE2(1) >> 197:C-STORE-RSP[pcid=7, status=0H cuid=1.2.840.10008.5.1.4.1.1.2 - CT Image Storage iuid=1.3.12.2.1107.5.8.2.485251.834849.68674954.2000021711431873 - ? tsuid=1.2.840.10008.1.2.4.80 - JPEG-LS Lossless Image Compression
-
Start storescp using STORESCP tool as shown below
storescp -b STORESCP:port
Below is a snippet for the same
14:38:58,005 INFO - Start TCP Listener on 0.0.0.0/0.0.0.0:104
-
Retrieve the images stored on Archive1 using either of the AE titles
movescu -c DCM4CHEE1@hostname1:port1 -m StudyInstanceUID=1.2.3.4 --dest STORESCP
OR
movescu -c DCM4CHEE2@hostname1:port1 -m StudyInstanceUID=1.2.3.4 --dest STORESCP
Below is a snippet of Request - Response logs14:48:27,686 INFO - MOVESCU->DCM4CHEE1(1) << 1:C-MOVE-RQ[pcid=1, prior=0 cuid=1.2.840.10008.5.1.4.1.1.1 - Study Root Query/Retrieve Information Model - MOVE tsuid=1.2.840.10008.1.2.4.80 - Implicit VR Little Endian 14:48:27,747 INFO - MOVESCU->DCM4CHEE1(1) >> 1:C-MOVE-RSP[pcid=1, completed=1, failed=0, warning=0, status=0H cuid=1.2.840.10008.5.1.4.1.1.1 - Study Root Query/Retrieve Information Model - MOVE tsuid=1.2.840.10008.1.2.4.80 - Implicit VR Little Endian
-
Snippet of Request - Response logs on storescp side
14:48:47,730 INFO - STORESCP<-DCMQRSCP(2) >> 1:C-STORE-RQ[pcid=1, prior=0 orig=MOVESCU >> 1:C-MOVE-RQ cuid=1.2.840.10008.5.1.4.1.1.1 - Computed Radiography Image Storage iuid=1.3.51.0.7.1265535119.17104.33870.32953.8838.26602.20894 - ? tsuid=1.2.840.10008.1.2.4.80 - JPEG-LS Lossless Image Compression 14:48:47,730 INFO - STORESCP<-DCMQRSCP(2) << 1:C-STORE-RSP[pcid=1, status=0H cuid=1.2.840.10008.5.1.4.1.1.1 - Computed Radiography Image Storage iuid=1.3.51.0.7.1265535119.17104.33870.32953.8838.26602.20894 - ? tsuid=1.2.840.10008.1.2.4.80 - JPEG-LS Lossless Image Compression
-
Retrieve the images stored on Archive2 using either of the AE titles movescu -c DCM4CHEE2@hostname2:port2 -m StudyInstanceUID=1.2.3.5 --dest STORESCP
OR
movescu -c DCM4CHEE1@hostname2:port2 -m StudyInstanceUID=1.2.3.5 --dest STORESCP
Below is a snippet of Request - Response logs14:58:27,686 INFO - MOVESCU->DCM4CHEE2(1) << 1:C-MOVE-RQ[pcid=1, prior=0 cuid=1.2.840.10008.5.1.4.1.1.2 - Study Root Query/Retrieve Information Model - MOVE tsuid=1.2.840.10008.1.2.4.80 - Implicit VR Little Endian 14:58:27,747 INFO - MOVESCU->DCM4CHEE2(1) >> 1:C-MOVE-RSP[pcid=1, completed=1, failed=0, warning=0, status=0H cuid=1.2.840.10008.5.1.4.1.1.2 - Study Root Query/Retrieve Information Model - MOVE tsuid=1.2.840.10008.1.2.4.80 - Implicit VR Little Endian
-
Snippet of Request - Response logs on storescp side
14:58:47,730 INFO - STORESCP<-DCMQRSCP(2) >> 1:C-STORE-RQ[pcid=1, prior=0 orig=MOVESCU >> 1:C-MOVE-RQ cuid=1.2.840.10008.5.1.4.1.1.2 - CT Image Storage iuid=1.3.12.2.1107.5.8.2.485251.834849.68674954.2000021711431873 - ? tsuid=1.2.840.10008.1.2.4.80 - JPEG-LS Lossless Image Compression 14:58:47,730 INFO - STORESCP<-DCMQRSCP(2) << 1:C-STORE-RSP[pcid=1, status=0H cuid=1.2.840.10008.5.1.4.1.1.2 - CT Image Storage iuid=1.3.12.2.1107.5.8.2.485251.834849.68674954.2000021711431873 - ? tsuid=1.2.840.10008.1.2.4.80 - JPEG-LS Lossless Image Compression