From: <aw...@us...> - 2016-06-06 07:36:25
|
Revision: 18612 http://sourceforge.net/p/dcm4che/svn/18612 Author: awsjn Date: 2016-06-06 07:36:23 +0000 (Mon, 06 Jun 2016) Log Message: ----------- [artf229719] ExportManager: Support definition of deidentification tags by tag keys as well as numbers Modified Paths: -------------- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-sar/src/java/org/dcm4chex/archive/tce/ExportManagerService.java Modified: dcm4chee/dcm4chee-arc/trunk/dcm4jboss-sar/src/java/org/dcm4chex/archive/tce/ExportManagerService.java =================================================================== --- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-sar/src/java/org/dcm4chex/archive/tce/ExportManagerService.java 2016-06-01 07:25:24 UTC (rev 18611) +++ dcm4chee/dcm4chee-arc/trunk/dcm4jboss-sar/src/java/org/dcm4chex/archive/tce/ExportManagerService.java 2016-06-06 07:36:23 UTC (rev 18612) @@ -961,7 +961,7 @@ String key = (String) e.getKey(); if (key.startsWith(prefix)) { String tagName = key.substring(prefix.length()); - if ( Tags.RetrieveAET == Tags.forName(tagName)) + if ( Tags.RetrieveAET == resolveTag(tagName)) coerceRetrieveAET(attrs, (String) e.getValue()); else coerceAttribute(attrs, tagName, @@ -1267,7 +1267,7 @@ } private void coerceAttribute(Dataset attrs, String key, String pattern) { - int tag = Tags.forName(key); + int tag = resolveTag(key); if (pattern.length() == 0) deleteValue(attrs, tag); else if (pattern.equals("firstDayOfMonth()")) @@ -1275,6 +1275,21 @@ else changeValue(attrs, tag, pattern); } + + private int resolveTag( String keyOrNumber ) { + try { + int tag = Tags.valueOf( keyOrNumber ); + return tag > 0 ? tag : Tags.forName( keyOrNumber ); + } + catch ( IllegalArgumentException e ) { + try { + return Integer.parseInt( keyOrNumber ); + } + catch ( NumberFormatException nfE ) { + throw e; + } + } + } private void deleteValue(Dataset attrs, int tag) { attrs.putXX(tag); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |