Class JDialogFileInfoDICOM

  • All Implemented Interfaces:
    ScriptableActionInterface, DialogDefaultsInterface, java.awt.event.ActionListener, java.awt.event.FocusListener, java.awt.event.ItemListener, java.awt.event.WindowListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

    public class JDialogFileInfoDICOM
    extends JDialogScriptableBase
    implements java.awt.event.ActionListener
    This class shows the dialog which contains the DICOM header information as contained in the FileInfoDicom class. It merely brings up the dialog and does whatever preparation to make the file-info readable in the table.
    Version:
    0.2
    Author:
    parsonsd; (mostly) cut and pasted from Neva Cherniavsky's FileInfoDicom
    See Also:
    FileInfoDicom, Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      JDialogFileInfoDICOM()
      Default Constructor
      JDialogFileInfoDICOM​(java.awt.Frame parent, java.lang.String title)
      Constructs new dialog with given title and parent, non modal.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void actionPerformed​(java.awt.event.ActionEvent e)
      Closes the dialog when the user clicks close and toggles private tags on and off when the user hits the "Show Private" button.
      private static void addRow​(ViewTableModel tagsModel, java.lang.Object[] rowData, boolean show)
      Determines whether the given row should be shown.
      private boolean bringToFront​(java.lang.String tagKey)
      Checks whether or not the dialog exists; if it does, it brings the dialog to front.
      private void buildAnchorPane()  
      private void buildColorMap()
      Builds which cells to display as light blue and green.
      private void buildTableScrollPane()
      A helper method to build a JScrollPane out of tagsTable
      private void buildTagsModel()
      A helper method to build a ViewTableModel and fill in DICOM tag info
      private void buildTagsTable()
      A helper method to build a JTable out of a ViewTableModel
      private void buildTagsTableListSelector()
      A helper method to build the tagsTable list selection method
      private void buildToolBarPanel()
      A helper method to build the toolbar with various buttons to help in the editing of DICOM tags
      protected void callAlgorithm()
      call algorithm
      private static java.lang.String convertType​(byte[] bytesValue, boolean endianess, int vm)
      Converts type.
      void displayAboutInfo​(ModelImage _image, FileInfoDicom _info, int sIndex)
      This method displays all the valid variables, that is, the ones that are no longer equal to their default values.
      private static void parseSQTags​(ViewTableModel tagsModel, java.lang.String baseTag, FileDicomSQ sq, boolean show)  
      private void saveTags()
      Save tags to a file in ASCII format.
      protected void setGUIFromParams()
      set gui from parameters
      static void showTags​(ViewTableModel tagsModel, FileDicomTagTable DicomInfo, boolean show)
      Shows the "Other Image Information", with or without private tags.
      static void showTags​(ViewTableModel tagsModel, FileInfoDicom DicomInfo, boolean show)
      Shows the "Other Image Information", with or without private tags.
      static void showTagsNoCheckbox​(ViewTableModel tagsModel, FileInfoDicom DicomInfo, boolean show)
      Shows the "Other Image Information", with or without private tags.
      static void sort​(ViewTableModel model, int col, boolean reverse, boolean isInfoDialog)
      Sort the tag column or name column of the table model.
      protected void storeParamsFromGUI()
      store parameters from gui
      • Methods inherited from class javax.swing.JDialog

        addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
      • Methods inherited from class java.awt.Dialog

        addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, show, toBack
      • Methods inherited from class java.awt.Window

        addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, toFront
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
      • Methods inherited from class java.awt.Component

        action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • serialVersionUID

        private static final long serialVersionUID
        Use serialVersionUID for interoperability.
        See Also:
        Constant Field Values
      • editorDialogDicomList

        private java.util.Vector<JDialogDICOMTagEditor> editorDialogDicomList
        DOCUMENT ME!
      • listSelectorDicom

        private javax.swing.ListSelectionModel listSelectorDicom
        DOCUMENT ME!
      • tablePane

        private javax.swing.JScrollPane tablePane
        DOCUMENT ME!
      • anchorPane

        private javax.swing.JScrollPane anchorPane
        DOCUMENT ME!
      • splitPane

        private javax.swing.JSplitPane splitPane
      • selectedRowDicom

        private int selectedRowDicom
        DOCUMENT ME!
      • showPrivate

        private boolean showPrivate
        DOCUMENT ME!
      • tagsTable

        private javax.swing.JTable tagsTable
        DOCUMENT ME!
      • isAppend

        private boolean isAppend
        DOCUMENT ME!
      • toolbarPanel

        private javax.swing.JPanel toolbarPanel
        DOCUMENT ME!
      • saveCheckedButton

        private javax.swing.JButton saveCheckedButton
        buttons for toolbar *
      • saveCheckedAppendButton

        private javax.swing.JButton saveCheckedAppendButton
        buttons for toolbar *
      • checkAllButton

        private javax.swing.JButton checkAllButton
        buttons for toolbar *
      • uncheckAllButton

        private javax.swing.JButton uncheckAllButton
        buttons for toolbar *
      • editTagButton

        private javax.swing.JButton editTagButton
        buttons for toolbar *
      • deleteTagButton

        private javax.swing.JButton deleteTagButton
        buttons for toolbar *
      • overlayButton

        private javax.swing.JButton overlayButton
        buttons for toolbar *
      • anonymizeButton

        private javax.swing.JButton anonymizeButton
        buttons for toolbar *
      • breakDownArea

        private javax.swing.JTextArea breakDownArea
      • toolBar

        private javax.swing.JToolBar toolBar
        tool bar *
      • showPrivateButton

        private javax.swing.JToggleButton showPrivateButton
      • bogusShowPrivateButton

        private javax.swing.JToggleButton bogusShowPrivateButton
      • fileName

        private java.lang.String fileName
        fileName of where dicom tags are save to *
      • directory

        private java.lang.String directory
        directory of where dicom tags are save to *
      • sliceIndex

        private int sliceIndex
        slice index for which fileInfo is saved *
      • launchFileChooser

        private boolean launchFileChooser
      • groupColorMap

        private java.util.TreeMap<java.lang.String,​java.awt.Color> groupColorMap
        Maps the group word to a displayed color, private tags are not specified. *
      • newTagButton

        private javax.swing.JButton newTagButton
        Button for inserting new tags
      • lightRed

        private static final java.awt.Color lightRed
        Light red color (used for private tags).
      • columnNames

        private final java.util.ArrayList<java.lang.String> columnNames
    • Constructor Detail

      • JDialogFileInfoDICOM

        public JDialogFileInfoDICOM​(java.awt.Frame parent,
                                    java.lang.String title)
        Constructs new dialog with given title and parent, non modal.
        Parameters:
        parent - Parent of the dialog.
        title - Title of the dialog.
      • JDialogFileInfoDICOM

        public JDialogFileInfoDICOM()
        Default Constructor
    • Method Detail

      • showTags

        public static void showTags​(ViewTableModel tagsModel,
                                    FileInfoDicom DicomInfo,
                                    boolean show)
        Shows the "Other Image Information", with or without private tags.
        Parameters:
        tagsModel - DOCUMENT ME!
        DicomInfo - DOCUMENT ME!
        show - boolean that indicates whether or not to show private tags
      • showTagsNoCheckbox

        public static void showTagsNoCheckbox​(ViewTableModel tagsModel,
                                              FileInfoDicom DicomInfo,
                                              boolean show)
        Shows the "Other Image Information", with or without private tags.
        Parameters:
        tagsModel - DOCUMENT ME!
        DicomInfo - DOCUMENT ME!
        show - boolean that indicates whether or not to show private tags
      • showTags

        public static void showTags​(ViewTableModel tagsModel,
                                    FileDicomTagTable DicomInfo,
                                    boolean show)
        Shows the "Other Image Information", with or without private tags.
        Parameters:
        tagsModel - DOCUMENT ME!
        DicomInfo - DOCUMENT ME!
        show - boolean that indicates whether or not to show private tags
      • parseSQTags

        private static void parseSQTags​(ViewTableModel tagsModel,
                                        java.lang.String baseTag,
                                        FileDicomSQ sq,
                                        boolean show)
      • addRow

        private static void addRow​(ViewTableModel tagsModel,
                                   java.lang.Object[] rowData,
                                   boolean show)
        Determines whether the given row should be shown. Show indicates whether private tags are being displayed.
      • sort

        public static void sort​(ViewTableModel model,
                                int col,
                                boolean reverse,
                                boolean isInfoDialog)
        Sort the tag column or name column of the table model. If reverse is true, sorts in reverse order.
        Parameters:
        model - the table model to sort on
        col - column to sort on
        reverse - whether or not to sort in reverse order.
        isInfoDialog - DOCUMENT ME!
      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent e)
        Closes the dialog when the user clicks close and toggles private tags on and off when the user hits the "Show Private" button.

        Brings up a 'Sanitise dialog'--to remove potentially damaging information, like the patient's name, from the image--when user clicks the "Sanitise Image" button.

        Creates editor dialogs to allow changing the value-field of a tag when user clicks "Edit Tag" button. This implmentation supports virtually any number of tag editors, bringing forward any previously opened editor. Most processing occurs when this class hears an editor window close; at that point it checks for "all slices" option in the editor and will alert any open window (frame) to set title as that information may have changed.

        Specified by:
        actionPerformed in interface java.awt.event.ActionListener
        Overrides:
        actionPerformed in class JDialogBase
        Parameters:
        e - event that triggered this action
      • displayAboutInfo

        public void displayAboutInfo​(ModelImage _image,
                                     FileInfoDicom _info,
                                     int sIndex)
        This method displays all the valid variables, that is, the ones that are no longer equal to their default values. It parses special types as needed and translates other strings. However, this method does not yet translate every single DICOM tag, only those most used. The others it outputs as strings.
        Parameters:
        _image - The image being displayed.
        _info - The fileInfo to be displayed, of type FileInfoDicom.
      • buildToolBarPanel

        private void buildToolBarPanel()
        A helper method to build the toolbar with various buttons to help in the editing of DICOM tags
      • buildTagsTable

        private void buildTagsTable()
        A helper method to build a JTable out of a ViewTableModel
      • buildTagsModel

        private void buildTagsModel()
        A helper method to build a ViewTableModel and fill in DICOM tag info
      • buildTableScrollPane

        private void buildTableScrollPane()
        A helper method to build a JScrollPane out of tagsTable
      • buildTagsTableListSelector

        private void buildTagsTableListSelector()
        A helper method to build the tagsTable list selection method
      • buildAnchorPane

        private void buildAnchorPane()
      • convertType

        private static java.lang.String convertType​(byte[] bytesValue,
                                                    boolean endianess,
                                                    int vm)
        Converts type.
        Parameters:
        bytesValue - Array of bytes to convert
        endianess - DOCUMENT ME!
        vm - DOCUMENT ME!
        Returns:
        String with new value
      • bringToFront

        private boolean bringToFront​(java.lang.String tagKey)
        Checks whether or not the dialog exists; if it does, it brings the dialog to front.
        Parameters:
        tagKey - The tag's Key. Used to dtermine if this tag already has an editor associated with it.
        Returns:
        true if both a tag with the tagkey existed in the list and the associated dialog was brought to front.
      • buildColorMap

        private void buildColorMap()
        Builds which cells to display as light blue and green.
      • saveTags

        private void saveTags()
        Save tags to a file in ASCII format.