Supplement DICOM Object Attributes - dcm4che/dcm4chee-arc-light GitHub Wiki
DICOM objects stored from modalities to the archive may not contain certain DICOM attributes in it. Configure following coercion to supplement missing attributes information.
The attributes supplemented to the dataset are only present in the database. It is not coerced in the DICOM files stored on the storage system.
This howto will provide configuration, test and verification steps for :
See Important Notes.
Additionally, refer Where to configure Archive Attribute Coercion rules
Device which will be used in coercion. DICOM attributes specific fields configured on this device will be supplemented in stored DICOM objects when the coercion gets applied.
In Configuration
menu - Devices
tab, add a device (eg. storescu) containing attributes to be supplemented which will be referenced by the archive device dcm4chee-arc
Create an LDIF file for following device
version: 1
dn: dicomDeviceName=storescu,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
changetype: add
dicomInstalled: TRUE
dicomIssuerOfPatientID: Site A&1.2.40.0.13.1.1.999.111.1111&ISO
dicomDeviceName: storescu
dicomIssuerOfAdmissionID: Site A&1.2.40.0.13.1.1.999.111.1111&ISO
dicomIssuerOfAccessionNumber: Site A&1.2.40.0.13.1.1.999.111.1111&ISO
dicomInstitutionName: Site A
dicomInstitutionCode: (111.1111, 99DCM4CHEE, "Site A")
objectClass: dicomDevice
objectClass: dcmDevice
dicomPrimaryDeviceType: CT
and import it into LDAP using ldapmodify command line utility
ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f config.ldif
Create an LDIF file for following coercion
version: 1
dn: cn=coerce-c-store-rq - all2vna - supplementMissingAttrsFromDev - new,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
changetype: add
objectClass: dcmArchiveAttributeCoercion2
cn: coerce-c-store-rq - all2vna - supplementMissingAttrsFromDev - new
dcmDIMSE: C_STORE_RQ
dcmURI: sup-from-dev:
dicomTransferRole: SCU
dcmProperty: SendingApplicationEntityTitle=SUP_MISS_NEW
dcmRulePriority: 1
dcmSupplementFromDeviceReference: dicomDeviceName=storescu,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
and import it into LDAP using ldapmodify command line utility
ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f config.ldif
Send test study to archive using storescu tool.
storescu -b SUP_MISS_NEW -s PatientID=P123 -s "IssuerOfPatientID=" -s AccessionNumber=ACC123 -s AdmissionID=ADM123 -s "InstitutionName=" -c DCM4CHEE@localhost:11112 ~/work/testdata/DICOM/modality/CT/CT2
In archive server log at $WILDFLY_HOME/standalone/log/server.log
22:26:58,278 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-1) Accept connection Socket[addr=/127.0.0.1,port=59353,localport=11112]
22:26:58,302 INFO [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3) >> A-ASSOCIATE-RQ
22:26:58,303 INFO [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3) << A-ASSOCIATE-AC
22:26:58,329 INFO [org.dcm4che3.net.Dimse] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3) >> 1:C-STORE-RQ[pcid=5, prior=0
cuid=1.2.840.10008.5.1.4.1.1.2 - CT Image Storage
iuid=1.3.12.2.1107.5.8.1.12345678.199508041416590861483 - ?
tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian]
22:26:58,337 INFO [org.dcm4chee.arc.coerce.impl.SupplementFromDeviceCoercionProcessor] (EE-ManagedExecutorService-default-Thread-16) Supplement composite object from device: storescu using coercion ArchiveAttributeCoercion2[cn=coerce-c-store-rq - all2vna - supplementMissingAttrsFromDev - new, priority=1, DIMSE=C_STORE_RQ, role=SCU, cuids=[], conditions={SendingApplicationEntityTitle=SUP_MISS_NEW}, uri=sup-from-dev:, description=null, onFailure=RETHROW, sufficient=false, attributeUpdatePolicy=MERGE, mergeAttributes=[], deviceCoercionParam=storescu, otherCoercionParams={}]
22:26:58,366 INFO [org.dcm4chee.arc.patient.impl.PatientServiceEJB] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3): Create Patient[pk=28, id=PatientID[pk=28, id=P123, issuer=Site A&1.2.40.0.13.1.1.999.111.1111&ISO], name=COTTA^ANNA]
22:26:58,369 INFO [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3): Create Study[pk=25, uid=1.3.12.2.1107.5.8.1.12345678.199508041416590859569, id=000001]
22:26:58,371 INFO [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3): Create Series[pk=25, uid=1.3.12.2.1107.5.8.1.12345678.199508041416590860429, no=0, mod=CT]
22:26:58,373 INFO [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3): Create Instance[pk=92, uid=1.3.12.2.1107.5.8.1.12345678.199508041416590861483, class=1.2.840.10008.5.1.4.1.1.2, no=1]
22:26:58,374 INFO [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3): Create Location[pk=183, systemID=fs1, path=2023/04/17/5E9204E8/5E9C00D5/61ED4E7E, tsuid=1.2.840.10008.1.2, size=529498, status=OK, objectType=DICOM_FILE]
22:26:58,374 INFO [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3): Create Location[pk=184, systemID=metadata, path=2023/04/17/5E9204E8/5E9C00D5/E8E833B4, tsuid=null, size=10396, status=OK, objectType=METADATA]
22:26:58,428 INFO [org.dcm4chee.arc.store.impl.StoreServiceImpl] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3): Updated DB in 91 ms
22:26:58,432 INFO [org.dcm4chee.arc.patient.impl.PatientServiceEJB] (EE-ManagedExecutorService-default-Thread-16) No duplicate record with equal Patient ID found Patient[pk=28, id=PatientID[pk=28, id=P123, issuer=Site A&1.2.40.0.13.1.1.999.111.1111&ISO], name=COTTA^ANNA]
22:26:58,434 INFO [org.dcm4che3.net.Dimse] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3) << 1:C-STORE-RSP[pcid=5, status=0H
cuid=1.2.840.10008.5.1.4.1.1.2 - CT Image Storage
iuid=1.3.12.2.1107.5.8.1.12345678.199508041416590861483 - ?
tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian]
22:26:58,436 INFO [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3) >> A-RELEASE-RQ
22:26:58,436 INFO [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-16) DCM4CHEE<-SUP_MISS_NEW(3) << A-RELEASE-RP
22:26:58,487 INFO [org.dcm4che3.net.Association] (EE-ManagedScheduledExecutorService-default-Thread-3) DCM4CHEE<-SUP_MISS_NEW(3): close Socket[addr=view-localhost/127.0.0.1,port=59353,localport=11112]
In archive UI