|
From: <gun...@us...> - 2007-12-04 22:47:07
|
Revision: 5584
http://dcm4che.svn.sourceforge.net/dcm4che/?rev=5584&view=rev
Author: gunterze
Date: 2007-12-04 14:47:04 -0800 (Tue, 04 Dec 2007)
Log Message:
-----------
[#DCMEE-657] Upgrade to Enhanced Multi-frame Image Service
Modified Paths:
--------------
dcm4chee/dcm4chee-arc/trunk/dcm4jboss-sar/src/etc/conf/dcm4chee-ae/CT_AET/upgrade-ct.xsl
dcm4chee/dcm4chee-arc/trunk/dcm4jboss-sar/src/etc/conf/xmdesc/dcm4chee-upgrade2emf-xmbean.xml
dcm4chee/dcm4chee-arc/trunk/dcm4jboss-sar/src/java/org/dcm4chex/archive/emf/UpgradeToEnhancedMFService.java
Modified: dcm4chee/dcm4chee-arc/trunk/dcm4jboss-sar/src/etc/conf/dcm4chee-ae/CT_AET/upgrade-ct.xsl
===================================================================
--- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-sar/src/etc/conf/dcm4chee-ae/CT_AET/upgrade-ct.xsl 2007-12-04 16:47:21 UTC (rev 5583)
+++ dcm4chee/dcm4chee-arc/trunk/dcm4jboss-sar/src/etc/conf/dcm4chee-ae/CT_AET/upgrade-ct.xsl 2007-12-04 22:47:04 UTC (rev 5584)
@@ -255,6 +255,11 @@
<xsl:template match="attr[@tag='00201041']" mode="PlanePosition">
<xsl:copy-of select="." />
</xsl:template>
+ <!-- Image Position (Retired)(+) -->
+ <xsl:template match="attr[@tag='00200030']" />
+ <xsl:template match="attr[@tag='00200030']" mode="PlanePosition">
+ <xsl:copy-of select="." />
+ </xsl:template>
<xsl:template match="attr" mode="PlanePosition" />
<!--
@@ -265,6 +270,11 @@
<xsl:template match="attr[@tag='00200037']" mode="PlaneOrientation">
<xsl:copy-of select="." />
</xsl:template>
+ <!-- Image Orientation (Retired)(+) -->
+ <xsl:template match="attr[@tag='00200035']" />
+ <xsl:template match="attr[@tag='00200035']" mode="PlaneOrientation">
+ <xsl:copy-of select="." />
+ </xsl:template>
<xsl:template match="attr" mode="PlaneOrientation" />
<!--
@@ -569,6 +579,18 @@
</xsl:template>
<xsl:template match="attr" mode="CTXrayDetails" />
+<!--
+ Attributes taken from DB records (=> allow to differ between source images)
+ -->
+ <!-- Study Time -->
+ <xsl:template match="attr[@tag='00080030']" />
+ <!-- Study Description -->
+ <xsl:template match="attr[@tag='00081030']" />
+ <!-- Series Time -->
+ <xsl:template match="attr[@tag='00080031']" />
+ <!-- Series Description -->
+ <xsl:template match="attr[@tag='0008103E']" />
+
<xsl:template match="attr">
<!-- exclude private elements -->
<xsl:if test="translate(substring(@tag,4,1),'13579BCF','')">
Modified: dcm4chee/dcm4chee-arc/trunk/dcm4jboss-sar/src/etc/conf/xmdesc/dcm4chee-upgrade2emf-xmbean.xml
===================================================================
--- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-sar/src/etc/conf/xmdesc/dcm4chee-upgrade2emf-xmbean.xml 2007-12-04 16:47:21 UTC (rev 5583)
+++ dcm4chee/dcm4chee-arc/trunk/dcm4jboss-sar/src/etc/conf/xmdesc/dcm4chee-upgrade2emf-xmbean.xml 2007-12-04 22:47:04 UTC (rev 5584)
@@ -41,6 +41,28 @@
<value value="conf/dcm4chee-ae" />
</descriptors>
</attribute>
+ <attribute access="read-write"
+ getMethod="isUsePatientStudySeriesAttributesFromDB"
+ setMethod="setUsePatientStudySeriesAttributesFromDB">
+ <description>
+ Defines, if Patient, Study and Series attributes are taken from
+ corresponding DB records, so the XSL stylesheets need not to copy such
+ attributes from the Single-frame images to the generated Multi-frame image.
+ As a side-effect, equality of values of such attributes over all source
+ images will not be verified and therefore the generation of the
+ Multi-frame image will not fail caused by inconsistency of Patient, Study
+ or Series attribute values inside the Series of source images.
+ <p>Copy of the Series Instance UID from the DB is always excluded, so
+ it can be defined by the style sheet - by copying the Series Instance UID
+ attribute into the output, or not - if the generated Multi-frame image
+ shall be put into the same Series as the source images, or not.
+ </description>
+ <name>UsePatientStudySeriesAttributesFromDB</name>
+ <type>boolean</type>
+ <descriptors>
+ <value value="true" />
+ </descriptors>
+ </attribute>
<attribute access="read-write" getMethod="isNoPixelData"
setMethod="setNoPixelData">
<description>
Modified: dcm4chee/dcm4chee-arc/trunk/dcm4jboss-sar/src/java/org/dcm4chex/archive/emf/UpgradeToEnhancedMFService.java
===================================================================
--- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-sar/src/java/org/dcm4chex/archive/emf/UpgradeToEnhancedMFService.java 2007-12-04 16:47:21 UTC (rev 5583)
+++ dcm4chee/dcm4chee-arc/trunk/dcm4jboss-sar/src/java/org/dcm4chex/archive/emf/UpgradeToEnhancedMFService.java 2007-12-04 22:47:04 UTC (rev 5584)
@@ -76,6 +76,8 @@
// not yet finally defined in Supp 117
private static final int PETFrameTypeSeqTag = 0x00189551;
+ private static final int[] SERIES_IUID = { Tags.SeriesInstanceUID };
+
private static final String UPGRADE_CT_XSL = "upgrade-ct.xsl";
private static final String UPGRADE_MR_XSL = "upgrade-mr.xsl";
@@ -90,6 +92,8 @@
private int concurrency = 1;
+ private boolean usePatientStudySeriesAttributesFromDB;
+
private boolean noPixelData;
private boolean deflate;
@@ -150,6 +154,15 @@
templates.setConfigDir(path);
}
+ public final boolean isUsePatientStudySeriesAttributesFromDB() {
+ return usePatientStudySeriesAttributesFromDB;
+ }
+
+ public final void setUsePatientStudySeriesAttributesFromDB(
+ boolean usePatientStudySeriesAttributesFromDB) {
+ this.usePatientStudySeriesAttributesFromDB = usePatientStudySeriesAttributesFromDB;
+ }
+
public final int getConcurrency() {
return concurrency;
}
@@ -308,6 +321,11 @@
builder.add(files[i] = locateInstance(iuid));
}
Dataset mfds = builder.build();
+ if (usePatientStudySeriesAttributesFromDB) {
+ mfds.putAll(seriesStored.getSeriesAttrs().exclude(SERIES_IUID));
+ mfds.putAll(seriesStored.getStudyAttrs());
+ mfds.putAll(seriesStored.getPatientAttrs());
+ }
String tsUID = mfds.getFileMetaInfo().getTransferSyntaxUID();
FileDTO fileDTO = makeFile(mfds);
File mffile = FileUtils.toFile(
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|