|
From: <nr...@us...> - 2011-07-26 14:31:32
|
Revision: 15711
http://dcm4che.svn.sourceforge.net/dcm4che/?rev=15711&view=rev
Author: nroduit
Date: 2011-07-26 14:31:25 +0000 (Tue, 26 Jul 2011)
Log Message:
-----------
superuser preferences, suv calculation with new fields
Modified Paths:
--------------
weasis/weasis_framework/trunk/weasis-base/weasis-base-ui/src/main/java/org/weasis/base/ui/gui/PreferenceDialog.java
weasis/weasis_framework/trunk/weasis-core/weasis-core-api/src/main/java/org/weasis/core/api/media/data/TagW.java
weasis/weasis_framework/trunk/weasis-core/weasis-core-ui/src/main/java/org/weasis/core/ui/editor/image/DefaultView2d.java
weasis/weasis_framework/trunk/weasis-dicom/weasis-dicom-codec/src/main/java/org/weasis/dicom/codec/DicomMediaIO.java
weasis/weasis_framework/trunk/weasis-dicom/weasis-dicom-codec/src/main/java/org/weasis/dicom/codec/pref/DicomPrefFactory.java
weasis/weasis_framework/trunk/weasis-dicom/weasis-dicom-explorer/src/main/java/org/weasis/dicom/explorer/pref/WadoPrefFactory.java
Modified: weasis/weasis_framework/trunk/weasis-base/weasis-base-ui/src/main/java/org/weasis/base/ui/gui/PreferenceDialog.java
===================================================================
--- weasis/weasis_framework/trunk/weasis-base/weasis-base-ui/src/main/java/org/weasis/base/ui/gui/PreferenceDialog.java 2011-07-26 12:11:03 UTC (rev 15710)
+++ weasis/weasis_framework/trunk/weasis-base/weasis-base-ui/src/main/java/org/weasis/base/ui/gui/PreferenceDialog.java 2011-07-26 14:31:25 UTC (rev 15711)
@@ -11,12 +11,14 @@
package org.weasis.base.ui.gui;
import java.awt.Dimension;
+import java.util.Hashtable;
import javax.swing.tree.DefaultMutableTreeNode;
import org.weasis.base.ui.Messages;
import org.weasis.base.ui.internal.Activator;
import org.weasis.core.api.gui.PreferencesPageFactory;
+import org.weasis.core.api.gui.util.AbstractItemDialogPage;
import org.weasis.core.api.gui.util.AbstractWizardDialog;
public class PreferenceDialog extends AbstractWizardDialog {
@@ -31,11 +33,16 @@
@Override
protected void initializePages() {
pagesRoot.add(new DefaultMutableTreeNode(new GeneralSetting()));
+ Hashtable<String, Object> properties = new Hashtable<String, Object>();
+ properties.put("weasis.user.prefs", System.getProperty("weasis.user.prefs", "user"));
final Object[] servicesPref = Activator.getPreferencesPages();
for (int i = 0; (servicesPref != null) && (i < servicesPref.length); i++) {
if (servicesPref[i] instanceof PreferencesPageFactory) {
- pagesRoot.add(new DefaultMutableTreeNode(((PreferencesPageFactory) servicesPref[i])
- .createPreferencesPage(null)));
+ AbstractItemDialogPage page =
+ ((PreferencesPageFactory) servicesPref[i]).createPreferencesPage(properties);
+ if (page != null) {
+ pagesRoot.add(new DefaultMutableTreeNode(page));
+ }
}
}
iniTree();
Modified: weasis/weasis_framework/trunk/weasis-core/weasis-core-api/src/main/java/org/weasis/core/api/media/data/TagW.java
===================================================================
--- weasis/weasis_framework/trunk/weasis-core/weasis-core-api/src/main/java/org/weasis/core/api/media/data/TagW.java 2011-07-26 12:11:03 UTC (rev 15710)
+++ weasis/weasis_framework/trunk/weasis-core/weasis-core-api/src/main/java/org/weasis/core/api/media/data/TagW.java 2011-07-26 14:31:25 UTC (rev 15711)
@@ -17,6 +17,7 @@
import java.io.Serializable;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
+import java.util.Calendar;
import java.util.Date;
import java.util.concurrent.atomic.AtomicInteger;
@@ -499,6 +500,39 @@
return null;
}
+ public static Date dateTime(Date date, Date time) {
+ if (time == null)
+ return date;
+ else if (date == null)
+ return time;
+ Calendar calendarA = Calendar.getInstance();
+ calendarA.setTime(date);
+
+ Calendar calendarB = Calendar.getInstance();
+ calendarB.setTime(time);
+
+ calendarA.set(Calendar.HOUR_OF_DAY, calendarB.get(Calendar.HOUR_OF_DAY));
+ calendarA.set(Calendar.MINUTE, calendarB.get(Calendar.MINUTE));
+ calendarA.set(Calendar.SECOND, calendarB.get(Calendar.SECOND));
+ calendarA.set(Calendar.MILLISECOND, calendarB.get(Calendar.MILLISECOND));
+
+ return calendarA.getTime();
+ }
+
+ public static Date getOnlyDate(Date date) {
+ if (date == null)
+ return null;
+ Calendar calendarA = Calendar.getInstance();
+ calendarA.setTime(date);
+
+ calendarA.set(Calendar.HOUR_OF_DAY, 0);
+ calendarA.set(Calendar.MINUTE, 0);
+ calendarA.set(Calendar.SECOND, 0);
+ calendarA.set(Calendar.MILLISECOND, 0);
+
+ return calendarA.getTime();
+ }
+
public static String formatDate(Date date) {
if (date != null)
return formatDate.format(date);
Modified: weasis/weasis_framework/trunk/weasis-core/weasis-core-ui/src/main/java/org/weasis/core/ui/editor/image/DefaultView2d.java
===================================================================
--- weasis/weasis_framework/trunk/weasis-core/weasis-core-ui/src/main/java/org/weasis/core/ui/editor/image/DefaultView2d.java 2011-07-26 12:11:03 UTC (rev 15710)
+++ weasis/weasis_framework/trunk/weasis-core/weasis-core-ui/src/main/java/org/weasis/core/ui/editor/image/DefaultView2d.java 2011-07-26 14:31:25 UTC (rev 15711)
@@ -1251,16 +1251,15 @@
public List<Action> getExportToClipboardAction() {
List<Action> list = new ArrayList<Action>();
- AbstractAction exportToClipboardAction =
- new AbstractAction("Selected View to Clipboard (except demographics)") {
+ AbstractAction exportToClipboardAction = new AbstractAction("Selected View to Clipboard") {
- @Override
- public void actionPerformed(ActionEvent e) {
- final ViewTransferHandler imageTransferHandler = new ViewTransferHandler();
- imageTransferHandler.exportToClipboard(DefaultView2d.this, Toolkit.getDefaultToolkit()
- .getSystemClipboard(), TransferHandler.COPY);
- }
- };
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ final ViewTransferHandler imageTransferHandler = new ViewTransferHandler();
+ imageTransferHandler.exportToClipboard(DefaultView2d.this, Toolkit.getDefaultToolkit()
+ .getSystemClipboard(), TransferHandler.COPY);
+ }
+ };
exportToClipboardAction.putValue(Action.ACCELERATOR_KEY,
KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK));
list.add(exportToClipboardAction);
Modified: weasis/weasis_framework/trunk/weasis-dicom/weasis-dicom-codec/src/main/java/org/weasis/dicom/codec/DicomMediaIO.java
===================================================================
--- weasis/weasis_framework/trunk/weasis-dicom/weasis-dicom-codec/src/main/java/org/weasis/dicom/codec/DicomMediaIO.java 2011-07-26 12:11:03 UTC (rev 15710)
+++ weasis/weasis_framework/trunk/weasis-dicom/weasis-dicom-codec/src/main/java/org/weasis/dicom/codec/DicomMediaIO.java 2011-07-26 14:31:25 UTC (rev 15711)
@@ -544,20 +544,30 @@
if (dcm != null) {
Float totalDose = getFloatFromDicomElement(dcm, Tag.RadionuclideTotalDose, null);
Float halfLife = getFloatFromDicomElement(dcm, Tag.RadionuclideHalfLife, null);
- Date injectTime =
- getDateFromDicomElement(dcm, Tag.RadiopharmaceuticalStartDateTime,
- getDateFromDicomElement(dcm, Tag.RadiopharmaceuticalStartTime, null));
+ Date injectTime = getDateFromDicomElement(dcm, Tag.RadiopharmaceuticalStartTime, null);
+ Date injectDateTime = getDateFromDicomElement(dcm, Tag.RadiopharmaceuticalStartDateTime, null);
Date acqTime = (Date) tagList.get(TagW.AcquisitionTime);
if (weight != null && totalDose != null && halfLife != null && injectTime != null
&& acqTime != null) {
- // Difference is seconds divided by halfLife
- double time =
- (acqTime.getTime() % TagW.MILLIS_PER_DAY) - (injectTime.getTime() % TagW.MILLIS_PER_DAY);
- // Handle case over midnight
- // TODO NEED to be validated, time more than one day ?
- if (time < 0) {
- time += TagW.MILLIS_PER_DAY;
+ double time = 0.0;
+ if (injectDateTime != null) {
+ Date acqDate = (Date) tagList.get(TagW.AcquisitionDate);
+ if (acqDate != null) {
+ Date dateTime = TagW.dateTime(acqDate, acqTime);
+ time = dateTime.getTime() - injectDateTime.getTime();
+ }
}
+ if (time == 0.0) {
+ // Difference is seconds divided by halfLife
+ time =
+ (acqTime.getTime() % TagW.MILLIS_PER_DAY)
+ - (injectTime.getTime() % TagW.MILLIS_PER_DAY);
+ // Handle case over midnight
+ // TODO NEED to be validated, time more than one day ?
+ if (time < 0) {
+ time += TagW.MILLIS_PER_DAY;
+ }
+ }
double correctedDose = totalDose * Math.exp(-Math.log(2) * time / (1000.0 * halfLife));
// Weight convert in kg to g
setTag(tagList, TagW.SuvFactor, weight * 1000.0f / correctedDose);
Modified: weasis/weasis_framework/trunk/weasis-dicom/weasis-dicom-codec/src/main/java/org/weasis/dicom/codec/pref/DicomPrefFactory.java
===================================================================
--- weasis/weasis_framework/trunk/weasis-dicom/weasis-dicom-codec/src/main/java/org/weasis/dicom/codec/pref/DicomPrefFactory.java 2011-07-26 12:11:03 UTC (rev 15710)
+++ weasis/weasis_framework/trunk/weasis-dicom/weasis-dicom-codec/src/main/java/org/weasis/dicom/codec/pref/DicomPrefFactory.java 2011-07-26 14:31:25 UTC (rev 15711)
@@ -9,7 +9,10 @@
@Override
public AbstractItemDialogPage createPreferencesPage(Hashtable<String, Object> properties) {
- return new DicomPrefView();
+ if (properties != null) {
+ if ("superuser".equals(properties.get("weasis.user.prefs")))
+ return new DicomPrefView();
+ }
+ return null;
}
-
}
\ No newline at end of file
Modified: weasis/weasis_framework/trunk/weasis-dicom/weasis-dicom-explorer/src/main/java/org/weasis/dicom/explorer/pref/WadoPrefFactory.java
===================================================================
--- weasis/weasis_framework/trunk/weasis-dicom/weasis-dicom-explorer/src/main/java/org/weasis/dicom/explorer/pref/WadoPrefFactory.java 2011-07-26 12:11:03 UTC (rev 15710)
+++ weasis/weasis_framework/trunk/weasis-dicom/weasis-dicom-explorer/src/main/java/org/weasis/dicom/explorer/pref/WadoPrefFactory.java 2011-07-26 14:31:25 UTC (rev 15711)
@@ -9,7 +9,11 @@
@Override
public AbstractItemDialogPage createPreferencesPage(Hashtable<String, Object> properties) {
- return new WadoPrefView();
+ if (properties != null) {
+ if ("superuser".equals(properties.get("weasis.user.prefs")))
+ return new WadoPrefView();
+ }
+ return null;
}
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|