Supplement MPPS Attributes - dcm4che/dcm4chee-arc-light GitHub Wiki

Overview

Modality Performed Procedure Steps sent 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.

This howto will provide configuration, test and verification steps for :

See Important Notes.

Additionally, refer Where to configure Archive Attribute Coercion rules

Configuration

Supplement from Device

Device which will be used in coercion. DICOM attributes specific fields configured on this device will be supplemented in DICOM MPPS sent to archive, when the coercion gets applied.

In Configuration menu - Devices tab, add a device (eg. mppsscu) containing attributes to be supplemented which will be referenced by the archive device dcm4chee-arc

Using archive UI

Using Apache LDAP Directory Studio / ldif scripts

Create an LDIF file for following device

version: 1

dn: dicomDeviceName=mppsscu,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: mppsscu
objectClass: dicomDevice
objectClass: dcmDevice
dicomPrimaryDeviceType: CT
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

and import it into LDAP using ldapmodify command line utility

ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f config.ldif

Coercion using New Archive Attribute Coercion

Using archive UI

Using Apache LDAP Directory Studio / ldif scripts

Create an LDIF file for following coercion

version: 1

dn: cn=Supplement MPPS,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
changetype: add
dcmSOPClass: 1.2.840.10008.3.1.2.3.3
dcmDIMSE: N_CREATE_RQ
dicomTransferRole: SCU
dcmProperty: SendingApplicationEntityTitle=MPPSSCU
objectClass: dcmArchiveAttributeCoercion2
dcmSupplementFromDeviceReference: dicomDeviceName=mppsscu,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
dcmURI: sup-from-dev:
cn: Supplement MPPS

and import it into LDAP using ldapmodify command line utility

ldapmodify -xW -Dcn=admin,dc=dcm4che,dc=org -f config.ldif

Test

Send MPPS for a test study to archive using mppsscu tool.

mppsscu -s AdmissionID=ADM123 -s AccessionNumber=ACC123 -c DCM4CHEE@localhost:11112 ~/work/testdata/DICOM/modality/US/US2

Verification

In archive server log at $WILDFLY_HOME/standalone/log/server.log

22:35:49,092 INFO  [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-1) Accept connection Socket[addr=/127.0.0.1,port=41549,localport=11112]
22:35:49,124 INFO  [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-MPPSSCU(4) >> A-ASSOCIATE-RQ
22:35:49,125 INFO  [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-MPPSSCU(4) << A-ASSOCIATE-AC
22:35:49,164 INFO  [org.dcm4che3.net.Dimse] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-MPPSSCU(4) >> 1:N-CREATE-RQ[pcid=3
  cuid=1.2.840.10008.3.1.2.3.3 - Modality Performed Procedure Step SOP Class
  tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian]
22:35:49,167 INFO  [org.dcm4chee.arc.coerce.impl.SupplementFromDeviceCoercionProcessor] (EE-ManagedExecutorService-default-Thread-14) Supplement MPPS from device: mppsscu using coercion ArchiveAttributeCoercion2[cn=Supplement MPPS, priority=0, DIMSE=N_CREATE_RQ, role=SCU, cuids=[1.2.840.10008.3.1.2.3.3], conditions={SendingApplicationEntityTitle=MPPSSCU}, uri=sup-from-dev:, description=null, onFailure=RETHROW, sufficient=false, attributeUpdatePolicy=MERGE, mergeAttributes=[], deviceCoercionParam=mppsscu, otherCoercionParams={}]
22:35:49,180 INFO  [org.dcm4chee.arc.patient.impl.PatientServiceEJB] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-MPPSSCU(4): Create Patient[pk=111, id=PatientID[pk=111, id=54321, issuer=Site A&1.2.40.0.13.1.1.999.111.1111&ISO], name=HD11^SAMPLE IMAGES]
22:35:49,311 INFO  [org.dcm4chee.arc.hl7.psu.HL7PSUScheduler] (EE-ManagedExecutorService-default-Thread-14) Missing MPPS attributes PlacerOrderNumberImagingServiceRequest and FillerOrderNumberImagingServiceRequest in ScheduledStepAttributesSequence
22:35:49,311 INFO  [org.dcm4che3.net.Dimse] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-MPPSSCU(4) << 1:N-CREATE-RSP[pcid=3, status=0H
  cuid=1.2.840.10008.3.1.2.3.3 - Modality Performed Procedure Step SOP Class
  iuid=2.25.294807648384915830090954751481454189660 - ?
  tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian]
22:35:49,316 INFO  [org.dcm4che3.net.Dimse] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-MPPSSCU(4) >> 2:N-SET-RQ[pcid=3
  cuid=1.2.840.10008.3.1.2.3.3 - Modality Performed Procedure Step SOP Class
  iuid=2.25.294807648384915830090954751481454189660 - ?
  tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian]
22:35:49,340 INFO  [org.dcm4chee.arc.hl7.psu.HL7PSUScheduler] (EE-ManagedExecutorService-default-Thread-14) Missing MPPS attributes PlacerOrderNumberImagingServiceRequest and FillerOrderNumberImagingServiceRequest in ScheduledStepAttributesSequence
22:35:49,340 INFO  [org.dcm4che3.net.Dimse] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-MPPSSCU(4) << 2:N-SET-RSP[pcid=3, status=0H
  cuid=1.2.840.10008.3.1.2.3.3 - Modality Performed Procedure Step SOP Class
  iuid=2.25.294807648384915830090954751481454189660 - ?
  tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian]
22:35:49,342 INFO  [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-MPPSSCU(4) >> A-RELEASE-RQ
22:35:49,342 INFO  [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-MPPSSCU(4) << A-RELEASE-RP
22:35:49,393 INFO  [org.dcm4che3.net.Association] (EE-ManagedScheduledExecutorService-default-Thread-7) DCM4CHEE<-MPPSSCU(4): close Socket[addr=view-localhost/127.0.0.1,port=41549,localport=11112]

In archive UI

⚠️ **GitHub.com Fallback** ⚠️