Package gov.nih.mipav.view
Class ViewJFrameDICOMParser
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
gov.nih.mipav.view.ViewImageDirectory
gov.nih.mipav.view.ViewJFrameDICOMParser
- All Implemented Interfaces:
PreviewImageContainer,ActionListener,ComponentListener,ItemListener,WindowListener,ImageObserver,MenuContainer,Serializable,EventListener,Accessible,ChangeListener,TreeExpansionListener,TreeSelectionListener,RootPaneContainer,WindowConstants
DICOM parser - shows pertinent DICOM tags, allows user to sort on specific values in the tags and open the proper
images. Can also open the images to an AVI file. Can see image as thumbnail. Extends ViewImageDirectory for the tree
and thumbnail.
- Author:
- Neva Cherniavsky
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate classTable listener - listens for clicks on any of the three table headers or clicks within each table.Nested classes/interfaces inherited from class javax.swing.JFrame
JFrame.AccessibleJFrameNested classes/interfaces inherited from class java.awt.Frame
Frame.AccessibleAWTFrameNested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow, Window.TypeNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate intDOCUMENT ME!private JPanelDOCUMENT ME!private JSliderDOCUMENT ME!private HashtableDOCUMENT ME!private ViewJComponentPreviewImageDOCUMENT ME!private floatDOCUMENT ME!private JSliderDOCUMENT ME!private JLabelDOCUMENT ME!private JLabelDOCUMENT ME!static final String[]DOCUMENT ME!static final String[]DOCUMENT ME!static final String[]DOCUMENT ME!private Vector<FileInfoDicom> fileInfoVector represents images in image table but imageTableVector was needed also becasue this handles multiple series in the same dir. fileInfoVector is all the images in the dir but imageTableVector represents all the images that are in the image table at a particular instance or seriesprivate JTableDOCUMENT ME!private SortingTableModelDOCUMENT ME!private TableSorterDOCUMENT ME!private Vector<FileInfoDicom> private NumberFormatDOCUMENT ME!private intDOCUMENT ME!private floatDOCUMENT ME!private JSplitPaneDOCUMENT ME!private static final longUse serialVersionUID for interoperability.This is a hashmasp of series numbers and corresponding counter for the number of images in each seriesprivate JCheckBoxMenuItemDOCUMENT ME!private JTableDOCUMENT ME!private SortingTableModelDOCUMENT ME!private TableSorterDOCUMENT ME!private JTableDOCUMENT ME!private SortingTableModelDOCUMENT ME!private TableSorterDOCUMENT ME!Fields inherited from class gov.nih.mipav.view.ViewImageDirectory
directory, directoryTree, file, imageFilter, imagePanel, img, node, serif12, serif12B, thumbnail, treePanel, userInterfaceFields inherited from class javax.swing.JFrame
accessibleContext, rootPane, rootPaneCheckingEnabledFields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSORFields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidactionPerformed(ActionEvent event) Recreates the tree when a new directory is selected; refreshes the tree when refresh is selected.private voidaddSeriesData(String studyNo) AddSeriesData This method populates the series table based upon the studyID.private voidaddStudyData(FileInfoDicom fileInfo) Adds the study data to the table.private voidInitializes GUI components and displays dialog.private voidBuilds the jmenubar and adds two options.. disregard series #s and exit/closeprotected JPanelBuilds a toolbar with the same functionality as the menu.private voidclose()DOCUMENT ME!voidfinalize()Cleans memory.DOCUMENT ME!protected voidinit()Initializes scroll panes, tables, and models and adds them to the frame.private voidinitializeImageTable(MouseListener tableListener) DOCUMENT ME!private voidinitializeSeriesTable(MouseListener tableListener) DOCUMENT ME!private voidinitializeStudyTable(MouseListener tableListener) DOCUMENT ME!static booleanisCompositeXYZPositionColumn(String columnName) The purpose of this method is to determine whether the parameter represents one of the special table columns.private voidParses the files in the directory.voidreloadRows.voidreloadRows(String seriesNumber, String studyNo) The purpose of this method is to re-parse the DICOM files to refresh the table data.private voidDOCUMENT ME!private booleanseriesNumberEqual(String seriesNumber, FileInfoDicom fileInfoDICOM) DOCUMENT ME!voidsetHeaderConfiguration(JTable rightTable) DOCUMENT ME!private voidSets the series table's min and max column widths.private voidSets the study table's min and max column widths.voidSets values based on knob along slider.voidwindowActivated(WindowEvent event) windowActivated - unchanged.voidwindowClosed(WindowEvent event) windowClosed - unchanged.voidwindowClosing(WindowEvent event) windowClosing - calls close.voidwindowDeactivated(WindowEvent event) windowDeactivated - unchanged.voidwindowDeiconified(WindowEvent event) windowDeiconified - unchanged.voidwindowIconified(WindowEvent event) windowIconified - unchanged.voidwindowOpened(WindowEvent event) windowOpened - unchanged.Methods inherited from class gov.nih.mipav.view.ViewImageDirectory
buildImage, buildSourceTreeListing, buildTitledBorder, componentHidden, componentMoved, componentResized, componentShown, getComponentPreviewImage, getPanelSize, itemStateChanged, treeCollapsed, treeExpanded, valueChangedMethods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, updateMethods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecoratedMethods 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, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFrontMethods 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, validateTreeMethods 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, 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, transferFocusUpCycleMethods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.awt.MenuContainer
getFont, postEvent
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDUse serialVersionUID for interoperability.- See Also:
-
DEFAULT_COLUMN_HEADERS_IMAGE_TABLE
DOCUMENT ME! -
DEFAULT_COLUMN_HEADERS_STUDY_TABLE
DOCUMENT ME! -
DEFAULT_COLUMN_HEADERS_SERIES_TABLE
DOCUMENT ME! -
brightness
private int brightnessDOCUMENT ME! -
brightnessContrastPanel
DOCUMENT ME! -
brightnessSlider
DOCUMENT ME! -
contrastSlider
DOCUMENT ME! -
columnKeyTable
DOCUMENT ME! -
componentImageDicom
DOCUMENT ME! -
contrast
private float contrastDOCUMENT ME! -
current
DOCUMENT ME! -
current2
DOCUMENT ME! -
fileInfoVector
fileInfoVector represents images in image table but imageTableVector was needed also becasue this handles multiple series in the same dir. fileInfoVector is all the images in the dir but imageTableVector represents all the images that are in the image table at a particular instance or series -
imageTableVector
-
imageTable
DOCUMENT ME! -
imageTableModel
DOCUMENT ME! -
imageTableSorter
DOCUMENT ME! -
nfc
DOCUMENT ME! -
origBrightness
private int origBrightnessDOCUMENT ME! -
origContrast
private float origContrastDOCUMENT ME! -
rightPane
DOCUMENT ME! -
seriesNumberCounters
This is a hashmasp of series numbers and corresponding counter for the number of images in each series.* -
seriesOptionBox
DOCUMENT ME! -
seriesTable
DOCUMENT ME! -
seriesTableModel
DOCUMENT ME! -
seriesTableSorter
DOCUMENT ME! -
studyTable
DOCUMENT ME! -
studyTableModel
DOCUMENT ME! -
studyTableSorter
DOCUMENT ME!
-
-
Constructor Details
-
ViewJFrameDICOMParser
Creates new frame. Tables contain no data but the tree is initialized to the appropriate directory.- Parameters:
dir- Directory.
-
-
Method Details
-
isCompositeXYZPositionColumn
The purpose of this method is to determine whether the parameter represents one of the special table columns. In this case, X-position, Y-position, and Z-position are special columns because they are not standard DICOM tags. They are parsed out from the Patient Orientation tag and populated manually.- Parameters:
columnName- String- Returns:
- boolean
-
actionPerformed
Recreates the tree when a new directory is selected; refreshes the tree when refresh is selected.- Specified by:
actionPerformedin interfaceActionListener- Overrides:
actionPerformedin classViewImageDirectory- Parameters:
event- Event that triggered this function.
-
finalize
public void finalize()Cleans memory. -
getColumnNames
DOCUMENT ME!- Returns:
- DOCUMENT ME!
-
getComponentImageDicom
-
getFileInfoVector
-
getImageTableVector
-
reloadRows
public void reloadRows()reloadRows. -
reloadRows
The purpose of this method is to re-parse the DICOM files to refresh the table data. It is called after the user hits "apply" in the configuration dialog, or the user clicks "parse" in the toolbar.- Parameters:
seriesNumber- DOCUMENT ME!studyNo- DOCUMENT ME!
-
setHeaderConfiguration
DOCUMENT ME!- Parameters:
rightTable- DOCUMENT ME!
-
stateChanged
Sets values based on knob along slider.- Specified by:
stateChangedin interfaceChangeListener- Overrides:
stateChangedin classViewImageDirectory- Parameters:
e- Event that triggered this function
-
windowActivated
windowActivated - unchanged.- Specified by:
windowActivatedin interfaceWindowListener- Parameters:
event- DOCUMENT ME!
-
windowClosed
windowClosed - unchanged.- Specified by:
windowClosedin interfaceWindowListener- Parameters:
event- DOCUMENT ME!
-
windowClosing
windowClosing - calls close.- Specified by:
windowClosingin interfaceWindowListener- Parameters:
event- event that triggered function
-
windowDeactivated
windowDeactivated - unchanged.- Specified by:
windowDeactivatedin interfaceWindowListener- Parameters:
event- DOCUMENT ME!
-
windowDeiconified
windowDeiconified - unchanged.- Specified by:
windowDeiconifiedin interfaceWindowListener- Parameters:
event- DOCUMENT ME!
-
windowIconified
windowIconified - unchanged.- Specified by:
windowIconifiedin interfaceWindowListener- Parameters:
event- DOCUMENT ME!
-
windowOpened
windowOpened - unchanged.- Specified by:
windowOpenedin interfaceWindowListener- Parameters:
event- DOCUMENT ME!
-
buildToolbar
Builds a toolbar with the same functionality as the menu.- Overrides:
buildToolbarin classViewImageDirectory- Returns:
- DOCUMENT ME!
-
init
protected void init()Initializes scroll panes, tables, and models and adds them to the frame.- Overrides:
initin classViewImageDirectory
-
addSeriesData
AddSeriesData This method populates the series table based upon the studyID.- Parameters:
studyNo- DOCUMENT ME!
-
addStudyData
Adds the study data to the table.- Parameters:
fileInfo- File info structure where data is stored.
-
buildBrightnessContrastPanel
private void buildBrightnessContrastPanel()Initializes GUI components and displays dialog.For the brightnessSlider the slider values and the brightness values are identical. brightness is an offset going from -255 to 255. This is enough to change all 0 values to 255 and all 255 values to 0. brightness is added to all contrast scaled red, green, and blue.
However, for the contrastSlider the slider values are different from the contrast values. The contrast values go from 0.1 to 10.0 while the slider values go from -200 to 200. contrast = (float)Math.pow(10.0,contrastSlider.getValue()/200.0) The original red, green, and blue are mutliplied by contrast.
-
buildMenu
private void buildMenu()Builds the jmenubar and adds two options.. disregard series #s and exit/close -
close
private void close()DOCUMENT ME! -
initializeImageTable
DOCUMENT ME!- Parameters:
tableListener- DOCUMENT ME!- Throws:
NumberFormatException- DOCUMENT ME!
-
initializeSeriesTable
DOCUMENT ME!- Parameters:
tableListener- DOCUMENT ME!
-
initializeStudyTable
DOCUMENT ME!- Parameters:
tableListener- DOCUMENT ME!
-
parse
Parses the files in the directory. Looks for DICOM files within several subdirectories of the file. Populates the FileInfoVector- Parameters:
file- File to start parse at.
-
restorePreferredColumnConfiguration
private void restorePreferredColumnConfiguration()DOCUMENT ME! -
seriesNumberEqual
DOCUMENT ME!- Parameters:
seriesNumber- DOCUMENT ME!fileInfoDICOM- DOCUMENT ME!- Returns:
- DOCUMENT ME!
-
setSeriesTableMinMax
private void setSeriesTableMinMax()Sets the series table's min and max column widths. -
setStudyTableMinMax
private void setStudyTableMinMax()Sets the study table's min and max column widths.
-