Attribute Coercion - DCM4CHEE 5

767 views
Skip to first unread message

ChadN

unread,
Feb 21, 2018, 2:09:05 PM2/21/18
to dcm4che
Hi,

Using DCM4CHEE 5.11.0, I am trying to coerce the value of the series description for all series stored to a particular AE title. I'm roughly following https://github.com/dcm4che/dcm4chee-arc-light/wiki/Ensure-DICOM-VR-compliance-of-attribute-values, but running into some issues.

  • Under dcm4chee-arc > DCM4CHEE > Network AE Extension I have added "LAB_EXPORT" under Other AE Title
    • This properly allows me to store images to either DCM4CHEE or LAB_EXPORT AE titles.
  • Under dcm4chee-arc > Device Extension > Archive Device, I add a new Attribute Coercion
    • DIMSE is C_STORE_RQ
    • DICOM Transfer Role is SCP
    • AE title is LAB_EXPORT
    • XSL Stylesheet URI is file:///C:/custom/prefix-desc.xsl
When storing to LAB_EXPORT, there is no indication in the logs that an attempt is made to use the coercion. I would expect something. I may also have an issue with the xsl file itself as I cannot find an example of what I fully wish to do:

<?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>
     
<DicomAttribute tag="0008103E" vr="LO">
       
<Value number="1">Lab - <xsl:copy-of select="DicomAttribute[@tag='0008103E']/Value"/></Value>
     
</DicomAttribute>
   
</NativeDicomModel>
 
</xsl:template>
</xsl:stylesheet>


Thanks for your help,
-C


ChadN

unread,
Feb 22, 2018, 5:02:23 PM2/22/18
to dcm4che
I'm getting closer, but I fear I may not be able to get precisely what I need this way. I've determined that:

  • transfer role = SCU indicates to do the coercion on incoming messages from the AE title specified.
  • transfer role = SCP indicates to do the coercion on outgoing messages to the AE title specified.
  • I don't know how to indicate to do the coercion on incoming messages to the AE title specified. Is there a way to do this??

For completeness, I've also set the No Attribute Keyword to true, put the stealth-coerce.xsl into the vendor data (and refreshed the server), and then changed the XSL Stylesheet URI to $jboss.server.tmp.url}/dcm4chee-arc/stealth-coerce.xsl as those seem to be the standard methods.

Further, I've changed the XSL sheet to use:

<?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:variable name="serDes" select="DicomAttribute[@tag='0008103E']/Value"/>
   
<xsl:variable name="coercedSD">
       
<xsl:value-of select="'Lab - '"/><xsl:value-of select="$serDes"/>
   
</xsl:variable>

     
<DicomAttribute tag="0008103E" vr="LO">

       
<Value number="1"><xsl:value-of select="$coercedSD"/></Value>

     
</DicomAttribute>
   
</NativeDicomModel>
 
</xsl:template>
</xsl:stylesheet>


Thanks for your help on the remaining above question.



vrinda...@j4care.com

unread,
Feb 23, 2018, 8:26:34 AM2/23/18
to dcm4che
Hello,

- To check if your Upload Vendor Data from Configuration worked properly, ensure that your stylesheet is present in location $Wildfly_Home/standalone/tmp/dcm4chee-arc/
- The AE title field on Archive Attribute Coercion is used in the conditions while searching for a matching coercion. This is beneficial when you want to limit coercion to be applied to objects coming only from specific AE(s), in above case from LAB_EXPORT. There is no need to add LAB_EXPORT as Other AE Title to Application Entity DCM4CHEE for coercing attributes.
- Also, if the Series Description is empty or has no value, the final attribute value will be "LAB - " in above case.
- Regarding logging, I have added them, refer issue : https://github.com/dcm4che/dcm4chee-arc-light/issues/1243  which shall be available from next release onwards.

ChadN

unread,
Feb 23, 2018, 9:06:30 AM2/23/18
to dcm4che
Thank you.

I've check the vendor data upload and that is working correctly.

The problem if I don't use the AE field is that everything gets coerced - storing to DCM4CHEE gets coerced with the "Lab -" prefix. Is there a way I can only run the coercion for an AE title listed in the Other AE Title list under dcm4chee-arc > DCM4CHEE > Network AE Extension?

Thanks for all your help.
-C

vrinda...@j4care.com

unread,
Feb 23, 2018, 9:47:40 AM2/23/18
to dcm4che
There are two ways, depending on what exactly you need for your application :
- You can add the attribute coercion on AE level instead of on device level. You may add the above Attribute coercion on DCM4CHEE Application Entity level (and remove it from device level). The coercion will now get applied to the object(s) received by DCM4CHEE and/or LAB_EXPORT (Other AE Title). With this solution, there is no way to apply coercion to object(s) received only by LAB_EXPORT and not by DCM4CHEE. Note that, Other AE Title is just working as an Alias for DCM4CHEE.
- If the requirement is to apply coercion to object(s) received only by LAB_EXPORT and not by DCM4CHEE, then it is better to create a separate AE as LAB_EXPORT (remove this value from Other AE Title of DCM4CHEE) and then add the attribute coercion to LAB_EXPORT Application Entity (remove the attribute coercion from DCM4CHEE AE level and/or device level, if added).

ChadN

unread,
Feb 23, 2018, 11:44:51 AM2/23/18
to dcm4che
Thanks again,

Making separate AE's instead of using the alias worked for me. 


For the record, dcm4chee-arc-5 is great. I've been transitioning from 2 and finding most of the features I use are still available and usually easier to manage once I figure it out.

Cheers,
-C


Reply all
Reply to author
Forward
0 new messages