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.
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.
- Select the level on which the feature needs to be configured :
- To configure on Archive device level, go to
Menu->Configuration, then onDevicespage,Editthedcm4chee-arcdevice. Go toExtensionsandEdit extensionofDevice Extension. Again go to itsExtensionsandEdit extensionofArchive device. Go toChild Objectsand select+for addingAttribute Coercion. - To configure on Archive Application Entity extension level, go to
Menu->Configuration, then onDevicespage and
Editthedcm4chee-arcdevice. Go toChild Objectsand select the Network AE for which the Attribute Coercion needs to be configured. Go toExtensionsandEdit extensionofNetwork AE Extension. Again go to itsExtensionsandEdit extensionofArchive Network AE. Go toChild Objectsand select+for addingAttribute Coercion.
- To configure on Archive device level, go to
- Add values in the fields
Name,DIMSE,DICOM Transfer Roleas per one's requirements. One may choose to add optional fields likeConditions,SOP Classetc as well for the attribute coercion rule to be more specific. One may also use theURIfield to point to the stylesheet which should be used for this attribute coercion rule andSave.
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>