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 onDevices
page,Edit
thedcm4chee-arc
device. Go toExtensions
andEdit extension
ofDevice Extension
. Again go to itsExtensions
andEdit extension
ofArchive device
. Go toChild Objects
and select+
for addingAttribute Coercion
. - To configure on Archive Application Entity extension level, go to
Menu->Configuration
, then onDevices
page and
Edit
thedcm4chee-arc
device. Go toChild Objects
and select the Network AE for which the Attribute Coercion needs to be configured. Go toExtensions
andEdit extension
ofNetwork AE Extension
. Again go to itsExtensions
andEdit extension
ofArchive Network AE
. Go toChild Objects
and select+
for addingAttribute Coercion
.
- To configure on Archive device level, go to
- Add values in the fields
Name
,DIMSE
,DICOM Transfer Role
as per one's requirements. One may choose to add optional fields likeConditions
,SOP Class
etc as well for the attribute coercion rule to be more specific. One may also use theURI
field 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>