com.pixelmed.display
Class DicomCleaner
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
com.pixelmed.display.ApplicationFrame
com.pixelmed.display.DicomCleaner
- All Implemented Interfaces:
- ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer, WindowConstants
public class DicomCleaner
- extends ApplicationFrame
This class is an application for importing or retrieving DICOM studies,
cleaning them (i.e., de-identifying them or replacing UIDs, etc.), and
sending them elsewhere.
It is configured by use of a properties file that resides in the user's
home directory in .com.pixelmed.display.DicomCleaner.properties.
It supports import and network retrieval of uncompressed, deflate and bzip compressed,
and baseline JPEG compressed images (but not yet other encapsulated compressed pixel data).
- See Also:
- Serialized Form
| Fields 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_CURSOR |
|
Method Summary |
protected void |
activateStorageSCP()
Start DICOM storage listener for populating source database. |
protected void |
activateTemporaryDatabases()
Start two databases, one for the "source" instances and one for the "target" instances. |
protected void |
copyFromOriginalToCleanedPerformingAction(Vector paths,
Date earliestDateInSet,
MessageLogger logger,
SafeProgressBarUpdaterThread progressBarUpdater)
|
protected static Date |
findEarliestDate(Map<String,Date> earliestDatesIndexedBySourceFilePath,
Vector<String> sourceFilePathSelections)
|
protected boolean |
haveJPEG2000Part1Codec()
|
protected boolean |
haveJPEGLosslessCodec()
|
protected static void |
importFileIntoDatabase(DatabaseInformationModel database,
String dicomFileName,
String fileReferenceType,
Map<String,Date> earliestDatesIndexedBySourceFilePath)
|
static void |
main(String[] arg)
The method to invoke the application. |
protected String |
makeNewFullyQualifiedHierarchicalInstancePathName(String sourceFileName)
|
protected String |
makeNewFullyQualifiedInterchangeMediaInstancePathName(int fileCount)
|
protected void |
performRetrieve(AttributeList uniqueKeys,
String selectionLevel,
String retrieveAE)
|
protected void |
purgeFilesAndDatabaseInformation(DatabaseTreeRecord[] databaseSelections,
MessageLogger logger,
SafeProgressBarUpdaterThread progressBarUpdater,
int done,
int maximum)
|
protected void |
purgeFilesAndDatabaseInformation(DatabaseTreeRecord databaseSelection,
MessageLogger logger,
SafeProgressBarUpdaterThread progressBarUpdater,
int done,
int maximum)
|
protected void |
setCurrentRemoteQueryInformationModel(String remoteAEForQuery)
|
protected void |
setCurrentRemoteQuerySelection(AttributeList uniqueKeys,
Attribute uniqueKey,
AttributeList identifier)
|
| Methods inherited from class com.pixelmed.display.ApplicationFrame |
createGUI, getApplicationPropertyFileName, getBuildDate, getProperties, getPropertyInsistently, getPropertyInsistently, getReleaseString, getStatusBar, loadProperties, makePathToFileInUsersHomeDirectory, setApplicationPropertyFileName, setBackgroundForGUI, setInternationalizedFontsForGUI, setPreferredLookAndFeelForPlatform, storeProperties, takeSnapShot |
| Methods 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, update |
| Methods inherited from class java.awt.Frame |
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated |
| Methods inherited from class java.awt.Window |
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, 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, paint, 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, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, 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, isOpaque, 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, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle |
resourceBundleName
protected static String resourceBundleName
propertiesFileName
protected static String propertiesFileName
propertyName_DicomCurrentlySelectedStorageTargetAE
protected static String propertyName_DicomCurrentlySelectedStorageTargetAE
propertyName_DicomCurrentlySelectedQueryTargetAE
protected static String propertyName_DicomCurrentlySelectedQueryTargetAE
rootNameForDicomInstanceFilesOnInterchangeMedia
protected static String rootNameForDicomInstanceFilesOnInterchangeMedia
filePrefixForDicomInstanceFilesOnInterchangeMedia
protected static String filePrefixForDicomInstanceFilesOnInterchangeMedia
fileSuffixForDicomInstanceFilesOnInterchangeMedia
protected static String fileSuffixForDicomInstanceFilesOnInterchangeMedia
nameForDicomDirectoryOnInterchangeMedia
protected static String nameForDicomDirectoryOnInterchangeMedia
exportedZipFileName
protected static String exportedZipFileName
textFieldLengthForQueryPatientName
protected static int textFieldLengthForQueryPatientName
textFieldLengthForQueryPatientID
protected static int textFieldLengthForQueryPatientID
textFieldLengthForQueryStudyDate
protected static int textFieldLengthForQueryStudyDate
textFieldLengthForReplacementPatientName
protected static int textFieldLengthForReplacementPatientName
textFieldLengthForReplacementPatientID
protected static int textFieldLengthForReplacementPatientID
textFieldLengthForReplacementAccessionNumber
protected static int textFieldLengthForReplacementAccessionNumber
textFieldLengthForModifyDates
protected static int textFieldLengthForModifyDates
resourceBundle
protected ResourceBundle resourceBundle
srcDatabase
protected DatabaseInformationModel srcDatabase
dstDatabase
protected DatabaseInformationModel dstDatabase
srcDatabasePanel
protected JPanel srcDatabasePanel
dstDatabasePanel
protected JPanel dstDatabasePanel
remoteQueryRetrievePanel
protected JPanel remoteQueryRetrievePanel
removeIdentityCheckBox
protected JCheckBox removeIdentityCheckBox
removeDescriptionsCheckBox
protected JCheckBox removeDescriptionsCheckBox
removeSeriesDescriptionsCheckBox
protected JCheckBox removeSeriesDescriptionsCheckBox
removeProtocolNameCheckBox
protected JCheckBox removeProtocolNameCheckBox
removeCharacteristicsCheckBox
protected JCheckBox removeCharacteristicsCheckBox
removeDeviceIdentityCheckBox
protected JCheckBox removeDeviceIdentityCheckBox
removeInstitutionIdentityCheckBox
protected JCheckBox removeInstitutionIdentityCheckBox
cleanUIDsCheckBox
protected JCheckBox cleanUIDsCheckBox
removePrivateCheckBox
protected JCheckBox removePrivateCheckBox
addContributingEquipmentCheckBox
protected JCheckBox addContributingEquipmentCheckBox
removeClinicalTrialAttributesCheckBox
protected JCheckBox removeClinicalTrialAttributesCheckBox
zipExportCheckBox
protected JCheckBox zipExportCheckBox
hierarchicalExportCheckBox
protected JCheckBox hierarchicalExportCheckBox
replacePatientNameCheckBox
protected JCheckBox replacePatientNameCheckBox
replacePatientIDCheckBox
protected JCheckBox replacePatientIDCheckBox
replaceAccessionNumberCheckBox
protected JCheckBox replaceAccessionNumberCheckBox
modifyDatesCheckBox
protected JCheckBox modifyDatesCheckBox
replacementPatientNameTextField
protected JTextField replacementPatientNameTextField
replacementPatientIDTextField
protected JTextField replacementPatientIDTextField
replacementAccessionNumberTextField
protected JTextField replacementAccessionNumberTextField
modifyDatesTextField
protected JTextField modifyDatesTextField
queryFilterPatientNameTextField
protected JTextField queryFilterPatientNameTextField
queryFilterPatientIDTextField
protected JTextField queryFilterPatientIDTextField
queryFilterStudyDateTextField
protected JTextField queryFilterStudyDateTextField
progressBarUpdater
protected SafeProgressBarUpdaterThread progressBarUpdater
cursorChanger
protected SafeCursorChanger cursorChanger
logger
protected MessageLogger logger
networkApplicationProperties
protected NetworkApplicationProperties networkApplicationProperties
networkApplicationInformation
protected NetworkApplicationInformation networkApplicationInformation
currentRemoteQueryInformationModel
protected QueryInformationModel currentRemoteQueryInformationModel
currentRemoteQuerySelectionQueryTreeRecord
protected QueryTreeRecord currentRemoteQuerySelectionQueryTreeRecord
currentRemoteQuerySelectionUniqueKeys
protected AttributeList currentRemoteQuerySelectionUniqueKeys
currentRemoteQuerySelectionUniqueKey
protected Attribute currentRemoteQuerySelectionUniqueKey
currentRemoteQuerySelectionRetrieveAE
protected String currentRemoteQuerySelectionRetrieveAE
currentRemoteQuerySelectionLevel
protected String currentRemoteQuerySelectionLevel
ourCalledAETitle
protected String ourCalledAETitle
haveScannedForCodecs
protected static boolean haveScannedForCodecs
haveCheckedForJPEGLosslessCodec
protected static boolean haveCheckedForJPEGLosslessCodec
haveFoundJPEGLosslessCodec
protected static boolean haveFoundJPEGLosslessCodec
haveCheckedForJPEG2000Part1Codec
protected static boolean haveCheckedForJPEG2000Part1Codec
haveFoundJPEG2000Part1Codec
protected static boolean haveFoundJPEG2000Part1Codec
earliestDatesIndexedBySourceFilePath
protected Map<String,Date> earliestDatesIndexedBySourceFilePath
savedImagesFolder
protected File savedImagesFolder
storageSOPClassSCPDispatcher
protected StorageSOPClassSCPDispatcher storageSOPClassSCPDispatcher
currentSourceDatabaseSelections
protected DatabaseTreeRecord[] currentSourceDatabaseSelections
currentSourceFilePathSelections
protected Vector currentSourceFilePathSelections
currentDestinationDatabaseSelections
protected DatabaseTreeRecord[] currentDestinationDatabaseSelections
currentDestinationFilePathSelections
protected Vector currentDestinationFilePathSelections
importDirectoryPath
protected String importDirectoryPath
exportDirectoryPath
protected String exportDirectoryPath
DicomCleaner
public DicomCleaner()
throws DicomException,
IOException
- Throws:
DicomException
IOException
haveJPEGLosslessCodec
protected boolean haveJPEGLosslessCodec()
haveJPEG2000Part1Codec
protected boolean haveJPEG2000Part1Codec()
setCurrentRemoteQueryInformationModel
protected void setCurrentRemoteQueryInformationModel(String remoteAEForQuery)
importFileIntoDatabase
protected static void importFileIntoDatabase(DatabaseInformationModel database,
String dicomFileName,
String fileReferenceType,
Map<String,Date> earliestDatesIndexedBySourceFilePath)
throws FileNotFoundException,
IOException,
DicomException
- Throws:
FileNotFoundException
IOException
DicomException
activateStorageSCP
protected void activateStorageSCP()
throws DicomException,
IOException
Start DICOM storage listener for populating source database.
- Throws:
DicomException
IOException
activateTemporaryDatabases
protected void activateTemporaryDatabases()
throws DicomException
Start two databases, one for the "source" instances and one for the "target" instances.
Neither will persist when the application is closed, so in memory databases
only are used and instances live in the temporary filesystem.
- Throws:
DicomException
purgeFilesAndDatabaseInformation
protected void purgeFilesAndDatabaseInformation(DatabaseTreeRecord[] databaseSelections,
MessageLogger logger,
SafeProgressBarUpdaterThread progressBarUpdater,
int done,
int maximum)
throws DicomException,
IOException
- Throws:
DicomException
IOException
purgeFilesAndDatabaseInformation
protected void purgeFilesAndDatabaseInformation(DatabaseTreeRecord databaseSelection,
MessageLogger logger,
SafeProgressBarUpdaterThread progressBarUpdater,
int done,
int maximum)
throws DicomException,
IOException
- Throws:
DicomException
IOException
copyFromOriginalToCleanedPerformingAction
protected void copyFromOriginalToCleanedPerformingAction(Vector paths,
Date earliestDateInSet,
MessageLogger logger,
SafeProgressBarUpdaterThread progressBarUpdater)
throws DicomException,
IOException
- Throws:
DicomException
IOException
findEarliestDate
protected static Date findEarliestDate(Map<String,Date> earliestDatesIndexedBySourceFilePath,
Vector<String> sourceFilePathSelections)
makeNewFullyQualifiedInterchangeMediaInstancePathName
protected String makeNewFullyQualifiedInterchangeMediaInstancePathName(int fileCount)
throws IOException
- Throws:
IOException
makeNewFullyQualifiedHierarchicalInstancePathName
protected String makeNewFullyQualifiedHierarchicalInstancePathName(String sourceFileName)
throws DicomException,
IOException
- Throws:
DicomException
IOException
setCurrentRemoteQuerySelection
protected void setCurrentRemoteQuerySelection(AttributeList uniqueKeys,
Attribute uniqueKey,
AttributeList identifier)
performRetrieve
protected void performRetrieve(AttributeList uniqueKeys,
String selectionLevel,
String retrieveAE)
main
public static void main(String[] arg)
The method to invoke the application.
- Parameters:
arg - none