Attribute Coercion - dcm4che/dcm4chee-arc-light GitHub Wiki

This page explains how one can add an Attribute Coercion rule to an Archive Device or to an Application Entity of an Archive Device.

Configuration

Note :

  • Attribute Coercion can be configured on Archive Device level or on Archive Application Entity Extension level. The values configured on Archive Application Entity Extension level will supplement values configured on Archive Device level.
  • The use case mentioned below is that one wants to ensure that incoming DICOM objects to the archive from a particular application entity always has an issuer of patient ID. If it is missing, then the value configured in the stylesheet shall be applied to all the objects coming from this particular application entity. Once the configuration for attribute coercion is done, ensure that the Vendor Data is updated as well.

Using Archive UI

  1. Select the level on which the feature needs to be configured :
    • To configure on Archive device level, go to Menu->Configuration, then on Devices page, Edit the dcm4chee-arc device. Go to Extensions and Edit extension of Device Extension. Again go to its Extensions and Edit extension of Archive device. Go to Child Objects and select + for adding Attribute Coercion.
    • To configure on Archive Application Entity extension level, go to Menu->Configuration, then on Devices page and
      Edit the dcm4chee-arc device. Go to Child Objects and select the Network AE for which the Attribute Coercion needs to be configured. Go to Extensions and Edit extension of Network AE Extension. Again go to its Extensions and Edit extension of Archive Network AE. Go to Child Objects and select + for adding Attribute Coercion.
  2. Add values in the fields Name, DIMSE, DICOM Transfer Role as per one's requirements. One may choose to add optional fields like Conditions, SOP Class etc as well for the attribute coercion rule to be more specific. One may also use the URI field to point to the stylesheet which should be used for this attribute coercion rule and Save.

Using LDAP

One may create a LDIF file and import it to the LDAP Server by using the ldapmodify command line utility.

  • To configure on Archive device level,

      version: 1
      
      dn: cn=Ensure PID Issuer,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
      objectClass: dcmArchiveAttributeCoercion
      cn: Ensure PID Issuer
      dcmDIMSE: C_STORE_RQ
      dicomTransferRole: SCU
      dcmProperty: SendingApplicationEntityTitle=TESTAET
      dcmNoKeywords: TRUE
      dcmURI: ${jboss.server.temp.url}/dcm4chee-arc/ensure-pidIssuer.xsl
    
  • To configure on Archive application entity extension level,

      version: 1
      
      dn: cn=Ensure PID Issuer,dicomAETitle=DCM4CHEE,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
      objectClass: dcmArchiveAttributeCoercion
      cn: Ensure PID Issuer
      dcmDIMSE: C_STORE_RQ
      dicomTransferRole: SCU
      dcmProperty: SendingApplicationEntityTitle=TESTAET
      dcmNoKeywords: TRUE
      dcmURI: ${jboss.server.temp.url}/dcm4chee-arc/ensure-pidIssuer.xsl
    

Sample stylesheet

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="xml"/>
  <xsl:template match="/NativeDicomModel">
    <NativeDicomModel>
      <xsl:if test="not(DicomAttribute[@tag='00100021']/Value)">
        <DicomAttribute tag="00100021" vr="LO">
          <Value number="1">TESTIssuer</Value>
        </DicomAttribute>
      </xsl:if>
    </NativeDicomModel>
  </xsl:template>
</xsl:stylesheet>
⚠️ **GitHub.com Fallback** ⚠️