Import Instances on Storage - dcm4che/dcm4chee-arc-light GitHub Wiki

Overview

This page explains briefly how one can migrate study objects to Dcm4chee Archive 5.x without having to resend the objects to archive. This benefits the user as the objects could be on a storage system of an old archive, and user just has to reference this storage in a RESTful service. The invoked RESTful service then starts importing the objects from this storage system and creates database records for them.

Configuration

  • Configure the storage system containing the objects, as explained in Generic Storage

  • Sample storage configuration in DCM4CHEE archive v5.x referencing old storage directory

    dn: dcmStorageID=migrate-old-storage,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
    dcmProperty: pathFormat={now,date,yyyy/MM/dd}/{0020000D,hash}/{0020000E,hash}/{00080018,hash}
    dcmProperty: checkMountFile=NO_MOUNT
    dcmDigestAlgorithm: MD5
    objectClass: dcmStorage
    dcmStorageID: migrate-old-storage
    dcmURI: path/to/old/storage/directory
    

Test Steps

Assuming the objects present in path/to/old/storage/directory/2010 folder are to be imported and the Generic Storage which refers this storage directory path/to/old/storage/directory is configured as migrated-data, the Import Instances RESTful service can be invoked as follows :

$ cd path/to/old/storage/directory
$ find 2010 -type f | curl -v -H "Content-Type: text/plain" --data-binary @- http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/rs/instances/storage/migrated-data

Coerce attributes on Import of Instances on Storage

There may be scenarios wherein while importing objects from a storage you may want to coerce / correct one or more attributes to these objects on the insertion of their records in DCM4CHEE Archive 5.x database. Consider following examples where you may want to correct the Patient Name or supplement Issuer of Patient ID for certain studies while importing them from an older storage into the new archive.

  1. Correct the Patient Name for a particular CT Study (wherein the folder of this study is known on the old storage directory)

    $ cd path/to/old/storage/directory
    $ find 2020/11/13/4210C2A3 -type f | curl -v -H "Content-Type: text/plain" --data-binary @- 'http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/rs/instances/storage/migrated-data?PatientName=CorrectFN%5ECorrectGN&reasonForModification=CORRECT&sourceOfPreviousValues=DCM4CHEE2'
    
  2. Supplement Issuer Of Patient ID if it's not present for a particular study (wherein the folder of this study is known on the old storage directory)

    $ cd path/to/old/storage/directory
    $ find 2020/11/13/F18C0EF9 -type f | curl -v -H "Content-Type: text/plain" --data-binary @- 'http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/rs/instances/storage/migrated-data?IssuerOfPatientID=PIDIssuer&updatePolicy=SUPPLEMENT'
    
⚠️ **GitHub.com Fallback** ⚠️