Proxy query requests to another Archive - dcm4che/dcm4chee-arc-light GitHub Wiki

Brief Description

This feature can be enabled for the case wherein DCM4CHEE archive acts as a long term archive and there also exists a Leading archive which receives the regular DICOM/HL7 updates but doesn't forward the same to the long term archive. By enabling this feature, when the workstation/viewers query DCM4CHEE long term archive they will receive updated attributes of patient/study objects.

This can be achieved either using one of the following 2 ways :

Leading Archive Attribute Coercion

Using a coercion rule to coerce attributes from leading archive is useful for C-FIND requests as well as QIDO-RS services.

However, note that if one or more patient attributes for the study also differ on the two archives, when the coercion is applied (either triggered by C-FIND or by QIDO) the patient record attributes will also reflect that from the leading archive ONLY for study C-FIND responses / Studies tab whereas for patient level queries the attributes SHALL NOT be reflected from the leading archive in the patient C-FIND responses / Patients tab.

Configuration

Using Archive UI

  • Go to Menu -> Configuration -> Devices -> dcm4chee-arc -> Extensions -> Archive Device Extension -> Child Objects.

  • Add an Attribute Coercion with following values and Save :

      Name : Coerce C-FIND from Leading Archive
      DIMSE : C_FIND_RSP
      DICOM Transfer Role : SCU
      Leading C-FIND SCP : <C-FIND-SCP-AET>
    

    Replace <C-FIND-SCP-AET> withe the AET of the archive acting as leading archive. Optional values like Conditions etc. may be added as required.

Using LDAP

One may either

  • create a LDIF file (e.g.):

      version: 1
      dn: cn=Coerce C-FIND from Leading Archive,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
      dcmDIMSE: C_FIND_RSP
      dcmLeadingCFindSCP: C-FIND-SCP-AET
      dicomTransferRole: SCU
      objectClass: dcmArchiveAttributeCoercion
      cn: Coerce C-FIND from Leading Archive
    

    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 Device Level (e.g.: dicomDeviceName=dcm4chee-arc) of the Archive Configuration.

One may refer to Archive Attribute Coercion to understand the description of attributes.

Go to the Control tab on Configuration page in archive UI and reload the configuration.

Testing

Using dcm4che tools (C-FIND)

  • Ensure the study is available on your archive as well as on the archive which acts as a Leading Archive.

  • Ensure one (or more) attribute(s) have different values on the two archives.

  • Use findscu which implements a C-FIND SCU to get the result from Leading Archive. (In below example, we assume AccessionNumber is different on two archives and want to receive correct PatientName from Leading Archive)

    findscu -c DCM4CHEE@localhost:11112 -m StudyInstanceUID=<StudyInstanceUID> -r AccessionNumber
    

    Replace <StudyInstanceUID> with required value.

Using Archive UI (QIDO)

  • Ensure the study is available on your archive as well as on the archive which acts as a Leading Archive.
  • Ensure one (or more) attribute(s) have different values on the two archives.
  • On Navigation page -> Studies tab, select the Web Application of the external archive and do a Study query to see the result shows attribute(s) from the Leading Archive.

Spanning C-FIND

Configuration

Using Archive UI

  • Go to Menu -> Configuration -> Devices -> dcm4chee-arc -> Extensions -> Archive Device Extension -> Attributes.
  • Add C-FIND SCP AE Title for Spanning C-Find SCP field. As per one's requirement, select Spanning C-Find SCP Policy. If needed, select Spanning C-Find SCP Retrieve AE Title and Save.
  • Also it is advisable to set value for the field Query Max Number Of Results to avoid OutOfMemoryErrors which may occur for unlimited C-FIND requests.

Using LDAP

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: dcmSpanningCFindSCP
      dcmSpanningCFindSCP: LEADING_C_FIND_SCP
      -
      dn: dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
      changetype: modify
      add: dcmSpanningCFindSCPPolicy
      dcmSpanningCFindSCPPolicy: MERGE
      -
      dn: dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
      changetype: modify
      add: dcmQueryMaxNumberOfResults
      dcmQueryMaxNumberOfResults: 100
      -
    

    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 Device Level (e.g.: dicomDeviceName=dcm4chee-arc) of the Archive Configuration.

One may refer to Archive Device and Archive Attribute Coercion to understand the description of attributes.

Go to the Control tab on Configuration page in archive UI and reload the configuration.

Testing

Using dcm4che tools

  • Ensure the study or patient is available on your archive as well as on the archive which acts as a Leading Archive.

  • Ensure one (or more) attribute(s) have different values on the two archives.

  • Use findscu which implements a C-FIND SCU to get the result from Leading Archive. (In below example, we assume PatientName is different on two archives and want to receive correct PatientName from Leading Archive)

    findscu -c DCM4CHEE@localhost:11112 -m PatientID=<PatientID> -r PatientName -M PatientRoot -L PATIENT
    

    Replace <PatientID> with required value.

Using Archive UI

  • Ensure the study or patient is available on your archive as well as on the archive which acts as a Leading Archive.
  • Ensure one (or more) attribute(s) have different values on the two archives.
  • On Studies page, select the Web Application of the external archive and do a Study/Patient query to see the result shows attribute(s) from the Leading Archive.
⚠️ **GitHub.com Fallback** ⚠️