Purge instance records from DB - dcm4che/dcm4chee-arc-light GitHub Wiki
Using this feature is beneficial when the archive would be receiving thousands of studies daily amounting to millions of records in few months or if there's a constraint on size/speed of the database. To use this feature one needs to accumulate the metadata on series level which will accumulate the metadata of all instances of series to a zip file which would be used later for query/retrieve of instance records which are to be purged.
- Go to
Menu->Configuration
, then onDevices
page,Edit
thedcm4chee-arc
device. Go toExtensions
and
Edit extension
ofDevice Extension
. Again go to itsExtensions
andEdit extension
ofArchive Device
. - Enter values in fields
Remove Instance Records Delay
,Remove Instance Records Polling Interval
,Remove Instance Records Fetch Size
,Aggregate Series Metadata Delay
,Series Metadata Storage ID
,Update Series Metadata Polling Interval
andUpdate Series Metadata Fetch Size
as required by one's application needs or with values as shown below andSave
. - On Archive Device level, create a new
Storage Descriptor
asChild Object
as required by one's application needs or with values as shown below andSave
.
One may either
-
create a LDIF file (e.g.):
version: 1 dn: dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org changetype: modify add: dcmPurgeInstanceRecordsDelay dcmPurgeInstanceRecordsDelay: PT1M dn: dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org changetype: modify add: dcmPurgeInstanceRecordsPollingInterval dcmPurgeInstanceRecordsPollingInterval: PT1M dn: dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org changetype: modify add: dcmPurgeInstanceRecordsFetchSize dcmPurgeInstanceRecordsFetchSize: 10 dn: dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org changetype: modify add: dcmSeriesMetadataStorageID dcmSeriesMetadataStorageID: series-metadata dn: dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org changetype: modify add: dcmSeriesMetadataDelay dcmSeriesMetadataDelay: PT1M dn: dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org changetype: modify add: dcmSeriesMetadataPollingInterval dcmSeriesMetadataPollingInterval: PT1M dn: dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org changetype: modify add: dcmSeriesMetadataFetchSize dcmSeriesMetadataFetchSize: 10 dn: dcmStorageID=series-metadata,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org objectClass: dcmStorage dcmStorageID: series-metadata dcmURI: ${jboss.server.data.url}/series-metadata/ dcmProperty: pathFormat={now,date,yyyy/MM/dd}/{0020000D}/{0020000E}/metadata.zip dcmProperty: checkMountFile=NO_MOUNT
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 Archive device, Application Entity levels (e.g.:
dicomDeviceName=dcm4chee-arc
,dicomAETitle=DCM4CHEE
) in the Archive Configuration. -
Refer Generic Storage for configuring storage of
series-metadata
.
One may refer to Archive Device, Archive Network AE and Storage 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.
One can test this feature using the archive UI and dcm4che tools as shown below :
-
Send studies to archive using storescu tool
storescu -c DCM4CHEE@localhost:11112 <path-to.study>
-
After waiting for the configured delays of
dcmSeriesMetadataDelay
anddcmPurgeInstanceRecordsDelay
; using archive UI, one can verify value of the private attributeInstance Record Purge State of Series
on series level to bePURGED
as shown below :
Note : If the archive is already containing millions of studies and one wants to accumulate the metadata and purge the
instance records from DB then one may set the series.metadata_update_time
and series.inst_purge_time
table columns to current date time
for the above feature to take effect.