Migrated to DCM4CHE Arc Light - Import archive from v2.18.3

715 views
Skip to first unread message

lrh.heal...@gmail.com

unread,
Jul 10, 2021, 1:27:10 AM7/10/21
to dcm4che
Dear community,

We have used DCM4CHEE v2.18.3 in our hospital for several years. Our archive is stored in a separate NAS and has grown to about 5TB. We recently upgraded to DCM4che Arc Light with the guidance here: Run secured archive services on a single host · dcm4che/dcm4chee-arc-light Wiki · GitHub

The instructions worked flawlessly and we managed to get the modalities to continue sending new images to the PACS because we used the same AET and other configurations. 

Our concern now is importing the previous Archive in to the Arc Light instance. Can someone suggest the best way to do this?  We configured the new instance to use the same NAS as the archive. I found these instructions using dcmsnd at https://groups.google.com/g/dcm4che/c/i9uELNYzhqA/m/wGetWnccBQAJ, but would not that create and additional copy of the same dicom file? That would be problematic because the NAS has only about 1.5 TB left.

Is there a way to just import the metadata from the local storage device (NAS) so that the actual DICOM images are not moved from one place to another?

Thank you for your assistance.

Vrinda Nayak

unread,
Jul 10, 2021, 4:08:14 AM7/10/21
to dcm4che
Configure a Storage Descriptor for the storage system where DICOM files are present and use Import Instances from Storage service. - See Import Instances on Storage wiki.
Message has been deleted
Message has been deleted
Message has been deleted

lrh.heal...@gmail.com

unread,
Jul 29, 2021, 5:07:38 AM7/29/21
to dcm4che
  Dear Vrinda,

Thank you for your help. I have tried to follow the instructions given but have some problems.

As instructed I configured another storage descriptor for the source images stored in the NAS with the name nas01 (screenshot 1)
My current Dcm4chee Arc Light installation storage descriptor is named fs1 (screenshot 2).
As you can see, both are pointing to the same location because I want to import the images saved in the same NAS from the previous version of Dcm4Chee, in to the new Dcm4Chee Arc instance. I hope this is not an issue.

At first I tried to follow the instructions given here as is - Import Instances on Storage wiki. However, I realized because I have installed the secure version (Run secured archive services on a single host) I need to get the access token. So, I registered curl as a OIDC client in Keycloak. Then used the following commands for the access token.

RESULT=`curl -k --data "grant_type=client_credentials&client_id=curl&client_secret=ca46e87c-d2c9-40f8-a36e-b1f9d495326b" https://pacs.lrh:8843/auth/realms/dcm4che/protocol/openid-connect/token`

 TOKEN=`echo $RESULT | sed 's/.*access_token":"\([^"]*\).*/\1/'`

Then I first tried with http://
find 2021/2 -type f | curl -v -H "Authorization: Bearer $TOKEN" "Content-Type: text/plain" --data-binary @- http://pacs.lrh:8080/dcm4chee-arc/aets/DCM4CHEE/rs/instances/storage/nas01
This resulted in the following errors (screenshot 3 and screenshot 4). No images were transferred.

and then with https://
find 2021/2 -type f | curl -v -k -H "Authorization: Bearer $TOKEN" "Content-Type: text/plain" --data-binary @- https://pacs.lrh:8843/dcm4chee-arc/aets/DCM4CHEE/rs/instances/storage/nas01
But this also resulted in errors (Screenshot 5 and screenshot 6)

I am probably doing something wrong, but cannot figure out what it is. I would greatly appreciate any help from the community.

Thank you

Vrinda Nayak

unread,
Jul 29, 2021, 6:37:16 AM7/29/21
to dcm4che
To import instances from old storage (nas01) to archive, it is not required to point fs1 also to the same storage path - because on importing the instances, the directory structure of the old storage directory is imported into location table in the new archive.
Eg. according to your screenshots and assuming DICOM object file names as img1.dcm, img2.dcm etc, on successful import the location table would have
- storage_id column value as nas01 (for each associated instance)
and
- storage_path column value as
   2021/2/img1.dcm
   2021/2/img2.dcm
   and so on

Regarding
> Then I first tried with http://
find 2021/2 -type f | curl -v -H "Authorization: Bearer $TOKEN" "Content-Type: text/plain" --data-binary @- http://pacs.lrh:8080/dcm4chee-arc/aets/DCM4CHEE/rs/instances/storage/nas01
This resulted in the following errors (screenshot 3 and screenshot 4). No images were transferred.

You have missed specifying "Content-Type: text/plain" as a header.
> find 2021/2 -type f | curl -v -H "Authorization: Bearer $TOKEN" "-H Content-Type: text/plain" --data-binary @- http://pacs.lrh:8080/dcm4chee-arc/aets/DCM4CHEE/rs/instances/storage/nas01

lrh.heal...@gmail.com

unread,
Jul 30, 2021, 4:59:30 AM7/30/21
to dcm4che
Thank you very much Vrinda. It worked. 
It may be useful for others too I think, if we can touch on the requirement of the access token in the   Import Instances on Storage wiki. I would be happy to update it if you want me to.
Best regards,

Vrinda Nayak

unread,
Jul 30, 2021, 12:10:47 PM7/30/21
to dcm4che
Reply all
Reply to author
Forward
0 new messages