Package 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:
    `java.awt.image.ImageObserver`, `java.awt.MenuContainer`, `java.io.Serializable`, `javax.accessibility.Accessible`, `javax.swing.RootPaneContainer`, `javax.swing.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`. The properties allow control over the user interface elements that are displayed and record the settings changed by the user when the application closes.

  For a description of the network configuration properties, see `NetworkApplicationProperties`.

  The properties that are specific to the application, and their default values, are as follows

  `Application.Allow.ChangeDatesAndTimes=true` - display the change dates and times panel

  `Application.Allow.CheckBox.AcceptAnyTransferSyntax=true` - display the checkbox

  `Application.Allow.CheckBox.AddContributingEquipment=true` - display the checkbox

  `Application.Allow.CheckBox.CleanUIDs=true` - display the checkbox

  `Application.Allow.CheckBox.HierarchicalExport=true` - display the checkbox

  `Application.Allow.CheckBox.RemoveCharacteristics=true` - display the checkbox

  `Application.Allow.CheckBox.RemoveClinicalTrialAttributes=true` - display the checkbox

  `Application.Allow.CheckBox.RemoveAllStructuredContent=true` - display the checkbox

  `Application.Allow.CheckBox.RemoveUnsafeStructuredContent=true` - display the checkbox

  `Application.Allow.CheckBox.RemoveDescriptions=true` - display the checkbox

  `Application.Allow.CheckBox.RemoveDeviceIdentity=true` - display the checkbox

  `Application.Allow.CheckBox.RemoveIdentity=true` - display the checkbox

  `Application.Allow.CheckBox.RemoveInstitutionIdentity=true` - display the checkbox

  `Application.Allow.CheckBox.RemovePrivate=true` - display the checkbox

  `Application.Allow.CheckBox.RemoveProtocolName=true` - display the checkbox

  `Application.Allow.CheckBox.RemoveSeriesDescriptions=true` - display the checkbox

  `Application.Allow.CheckBox.ZipExport=true` - display the checkbox

  `Application.Allow.NetworkConfiguration=true` - display the Configure button

  `Application.Allow.UserQuery=true` - display the query/retrieve buttons, results panel and keys panel

  `Application.CheckBox.IsSelected.AcceptAnyTransferSyntax=false` - selection status of the checkbox

  `Application.CheckBox.IsSelected.AddContributingEquipment=true` - selection status of the checkbox

  `Application.CheckBox.IsSelected.CleanUIDs=true` - selection status of the checkbox

  `Application.CheckBox.IsSelected.HierarchicalExport=false` - selection status of the checkbox

  `Application.CheckBox.IsSelected.ModifyDates=false` - selection status of the checkbox

  `Application.CheckBox.IsSelected.RemoveCharacteristics=false` - selection status of the checkbox

  `Application.CheckBox.IsSelected.RemoveClinicalTrialAttributes=false` - selection status of the checkbox

  `Application.CheckBox.IsSelected.RemoveAllStructuredContent=false` - selection status of the checkbox

  `Application.CheckBox.IsSelected.RemoveUnsafeStructuredContent=false` - selection status of the checkbox

  `Application.CheckBox.IsSelected.RemoveDescriptions=false` - selection status of the checkbox

  `Application.CheckBox.IsSelected.RemoveDeviceIdentity=false` - selection status of the checkbox

  `Application.CheckBox.IsSelected.RemoveIdentity=true` - selection status of the checkbox

  `Application.CheckBox.IsSelected.RemoveInstitutionIdentity=false` - selection status of the checkbox

  `Application.CheckBox.IsSelected.RemovePrivate=true` - selection status of the checkbox

  `Application.CheckBox.IsSelected.RemoveProtocolName=false` - selection status of the checkbox

  `Application.CheckBox.IsSelected.RemoveSeriesDescriptions=false` - selection status of the checkbox

  `Application.CheckBox.IsSelected.ReplaceAccessionNumber=true` - selection status ofthe checkbox

  `Application.CheckBox.IsSelected.ReplacePatientID=true` - selection status of the checkbox

  `Application.CheckBox.IsSelected.ReplacePatientBirthDate=false` - selection status of the checkbox

  `Application.CheckBox.IsSelected.ReplacePatientName=true` - selection status of the checkbox

  `Application.CheckBox.IsSelected.ZipExport=false` - selection status of the checkbox

  `Application.ModifyDatesEpoch=20000101` - text value of the dates epoch

  `Application.ReplacementText.AccessionNumber=` - text value of the Accession Number replacement field

  `Application.ReplacementText.PatientID=NOID` - text value of Patient ID replacement field

  `Application.ReplacementText.PatientBirthDate=19700101` - text value of Patient Birth Date replacement field

  `Application.ReplacementText.PatientName=NAME^NONE` - text value of Patient Name replacement field

  `Application.RandomReplacementPatientNamePrefix=Anon^` - prefix for random value of Patient Name replacement field

  `Application.RandomReplacementPatientIDLength=16` - length for zero padded random value of Patient ID (and Patient Name suffix) replacement field

  `Application.RandomReplacementAccessionNumberLength=16` - length for zero padded random value of Accession Number replacement field

  `Application.DialogLogger.showDateTime=true` - prepend log entries with a time stamp

  `Application.DialogLogger.dateTimeFormat=yyyy-MM-dd'T'HH:mm:ss.SSSZ` - the format for the time stamp in java.text.SimpleDateFormat format (if absent, milliseconds since starting)

  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `protected class` | `DicomCleaner.BlackoutActionListener` |
    `protected class` | `DicomCleaner.CancelActionListener` |
    `protected class` | `DicomCleaner.CleanActionListener` |
    `protected class` | `DicomCleaner.CleanWorker` |
    `protected class` | `DicomCleaner.ConfigureActionListener` |
    `protected class` | `DicomCleaner.DefaultReplacementActionListener` |
    `protected class` | `DicomCleaner.DefaultYearActionListener` |
    `protected class` | `DicomCleaner.EarliestYearActionListener` |
    `protected class` | `DicomCleaner.ExportActionListener` |
    `protected class` | `DicomCleaner.ExportWorker` |
    `protected class` | `DicomCleaner.ImportActionListener` |
    `protected class` | `DicomCleaner.ImportWorker` |
    `protected class` | `DicomCleaner.LogActionListener` |
    `protected class` | `DicomCleaner.OurDestinationDatabaseTreeBrowser` |
    `protected class` | `DicomCleaner.OurDicomImageBlackout` |
    `protected class` | `DicomCleaner.OurMediaImporter` |
    `protected class` | `DicomCleaner.OurMultipleInstanceTransferStatusHandler` |
    `protected class` | `DicomCleaner.OurQueryTreeBrowser` |
    `protected class` | `DicomCleaner.OurReceivedObjectHandler` |
    `protected class` | `DicomCleaner.OurSourceDatabaseTreeBrowser` |
    `protected class` | `DicomCleaner.PurgeActionListener` |
    `protected class` | `DicomCleaner.PurgeWorker` |
    `protected class` | `DicomCleaner.QueryActionListener` |
    `protected class` | `DicomCleaner.QueryWorker` |
    `protected class` | `DicomCleaner.RandomReplacementActionListener` |
    `protected class` | `DicomCleaner.RandomYearActionListener` |
    `protected class` | `DicomCleaner.RetrieveActionListener` |
    `protected class` | `DicomCleaner.RetrieveWorker` |
    `protected class` | `DicomCleaner.SendActionListener` |
    `protected class` | `DicomCleaner.SendWorker` |

    - ### Nested classes/interfaces inherited from class javax.swing.JFrame

      `javax.swing.JFrame.AccessibleJFrame`

    - ### Nested classes/interfaces inherited from class java.awt.Frame

      `java.awt.Frame.AccessibleAWTFrame`

    - ### Nested classes/interfaces inherited from class java.awt.Window

      `java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type`

    - ### Nested classes/interfaces inherited from class java.awt.Container

      `java.awt.Container.AccessibleAWTContainer`

    - ### Nested classes/interfaces inherited from class java.awt.Component

      `java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected javax.swing.JCheckBox` | `acceptAnyTransferSyntaxCheckBox` |
    `protected javax.swing.JCheckBox` | `addContributingEquipmentCheckBox` |
    `protected javax.swing.JCheckBox` | `cleanUIDsCheckBox` |
    `protected DatabaseTreeRecord[]` | `currentDestinationDatabaseSelections` |
    `protected java.util.Vector` | `currentDestinationFilePathSelections` |
    `protected QueryInformationModel` | `currentRemoteQueryInformationModel` |
    `protected java.lang.String` | `currentRemoteQuerySelectionLevel` |
    `protected QueryTreeRecord` | `currentRemoteQuerySelectionQueryTreeRecord` |
    `protected java.lang.String` | `currentRemoteQuerySelectionRetrieveAE` |
    `protected Attribute` | `currentRemoteQuerySelectionUniqueKey` |
    `protected AttributeList` | `currentRemoteQuerySelectionUniqueKeys` |
    `protected DatabaseTreeRecord[]` | `currentSourceDatabaseSelections` |
    `protected java.util.Vector` | `currentSourceFilePathSelections` |
    `protected SafeCursorChanger` | `cursorChanger` |
    `protected static boolean` | `default_CheckBoxAcceptAnyTransferSyntaxIsSelected` |
    `protected static boolean` | `default_CheckBoxAddContributingEquipmentIsSelected` |
    `protected static boolean` | `default_CheckBoxCleanUIDsIsSelected` |
    `protected static boolean` | `default_CheckBoxHierarchicalExportIsSelected` |
    `protected static boolean` | `default_CheckBoxModifyDatesIsSelected` |
    `protected static boolean` | `default_CheckBoxRemoveAllStructuredContentIsSelected` |
    `protected static boolean` | `default_CheckBoxRemoveCharacteristicsIsSelected` |
    `protected static boolean` | `default_CheckBoxRemoveClinicalTrialAttributesIsSelected` |
    `protected static boolean` | `default_CheckBoxRemoveDescriptionsIsSelected` |
    `protected static boolean` | `default_CheckBoxRemoveDeviceIdentityIsSelected` |
    `protected static boolean` | `default_CheckBoxRemoveIdentityIsSelected` |
    `protected static boolean` | `default_CheckBoxRemoveInstitutionIdentityIsSelected` |
    `protected static boolean` | `default_CheckBoxRemovePrivateIsSelected` |
    `protected static boolean` | `default_CheckBoxRemoveProtocolNameIsSelected` |
    `protected static boolean` | `default_CheckBoxRemoveSeriesDescriptionsIsSelected` |
    `protected static boolean` | `default_CheckBoxRemoveUnsafeStructuredContentIsSelected` |
    `protected static boolean` | `default_CheckBoxReplaceAccessionNumberIsSelected` |
    `protected static boolean` | `default_CheckBoxReplacePatientBirthDateIsSelected` |
    `protected static boolean` | `default_CheckBoxReplacePatientIDIsSelected` |
    `protected static boolean` | `default_CheckBoxReplacePatientNameIsSelected` |
    `protected static boolean` | `default_CheckBoxZipExportIsSelected` |
    `protected static java.lang.String` | `default_DateTimeFormat` |
    `protected static int` | `default_RandomReplacementAccessionNumberLength` |
    `protected static int` | `default_RandomReplacementPatientIDLength` |
    `protected static boolean` | `default_ShowDateTime` |
    `protected DatabaseInformationModel` | `dstDatabase` |
    `protected javax.swing.JPanel` | `dstDatabasePanel` |
    `protected java.util.Map<java.lang.String,​java.util.Date>` | `earliestDatesIndexedBySourceFilePath` |
    `protected java.lang.String` | `exportDirectoryPath` |
    `protected static java.lang.String` | `exportedZipFileName` |
    `protected static java.lang.String` | `filePrefixForDicomInstanceFilesOnInterchangeMedia` |
    `protected static java.lang.String` | `fileSuffixForDicomInstanceFilesOnInterchangeMedia` |
    `protected javax.swing.JCheckBox` | `hierarchicalExportCheckBox` |
    `protected java.lang.String` | `importDirectoryPath` |
    `protected MessageLogger` | `logger` |
    `protected javax.swing.JCheckBox` | `modifyDatesCheckBox` |
    `protected javax.swing.JTextField` | `modifyDatesTextField` |
    `protected static java.lang.String` | `nameForDicomDirectoryOnInterchangeMedia` |
    `protected NetworkApplicationInformation` | `networkApplicationInformation` |
    `protected NetworkApplicationProperties` | `networkApplicationProperties` |
    `protected java.lang.String` | `ourCalledAETitle` |
    `protected SafeProgressBarUpdaterThread` | `progressBarUpdater` |
    `protected static java.lang.String` | `propertiesFileName` |
    `protected static java.lang.String` | `propertyName_AllowAcceptAnyTransferSyntaxCheckBox` |
    `protected static java.lang.String` | `propertyName_AllowAddContributingEquipmentCheckBox` |
    `protected static java.lang.String` | `propertyName_AllowChangeDatesAndTimes` |
    `protected static java.lang.String` | `propertyName_AllowCleanUIDsCheckBox` |
    `protected static java.lang.String` | `propertyName_AllowHierarchicalExportCheckBox` |
    `protected static java.lang.String` | `propertyName_AllowNetworkConfiguration` |
    `protected static java.lang.String` | `propertyName_AllowRemoveAllStructuredContentCheckBox` |
    `protected static java.lang.String` | `propertyName_AllowRemoveCharacteristicsCheckBox` |
    `protected static java.lang.String` | `propertyName_AllowRemoveClinicalTrialAttributesCheckBox` |
    `protected static java.lang.String` | `propertyName_AllowRemoveDescriptionsCheckBox` |
    `protected static java.lang.String` | `propertyName_AllowRemoveDeviceIdentityCheckBox` |
    `protected static java.lang.String` | `propertyName_AllowRemoveIdentityCheckBox` |
    `protected static java.lang.String` | `propertyName_AllowRemoveInstitutionIdentityCheckBox` |
    `protected static java.lang.String` | `propertyName_AllowRemovePrivateCheckBox` |
    `protected static java.lang.String` | `propertyName_AllowRemoveProtocolNameCheckBox` |
    `protected static java.lang.String` | `propertyName_AllowRemoveSeriesDescriptionsCheckBox` |
    `protected static java.lang.String` | `propertyName_AllowRemoveUnsafeStructuredContentCheckBox` |
    `protected static java.lang.String` | `propertyName_AllowUserQuery` |
    `protected static java.lang.String` | `propertyName_AllowZipExportCheckBox` |
    `protected static java.lang.String` | `propertyName_CheckBoxAcceptAnyTransferSyntaxIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxAddContributingEquipmentIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxCleanUIDsIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxHierarchicalExportIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxModifyDatesIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxRemoveAllStructuredContentIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxRemoveCharacteristicsIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxRemoveClinicalTrialAttributesIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxRemoveDescriptionsIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxRemoveDeviceIdentityIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxRemoveIdentityIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxRemoveInstitutionIdentityIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxRemovePrivateIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxRemoveProtocolNameIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxRemoveSeriesDescriptionsIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxRemoveUnsafeStructuredContentIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxReplaceAccessionNumberIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxReplacePatientBirthDateIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxReplacePatientIDIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxReplacePatientNameIsSelected` |
    `protected static java.lang.String` | `propertyName_CheckBoxZipExportIsSelected` |
    `protected static java.lang.String` | `propertyName_DateTimeFormat` |
    `protected static java.lang.String` | `propertyName_DicomCurrentlySelectedQueryTargetAE` |
    `protected static java.lang.String` | `propertyName_DicomCurrentlySelectedStorageTargetAE` |
    `protected static java.lang.String` | `propertyName_ModifyDatesEpoch` |
    `protected static java.lang.String` | `propertyName_RandomReplacementAccessionNumberLength` |
    `protected static java.lang.String` | `propertyName_RandomReplacementPatientIDLength` |
    `protected static java.lang.String` | `propertyName_RandomReplacementPatientNamePrefix` |
    `protected static java.lang.String` | `propertyName_ReplacementTextAccessionNumber` |
    `protected static java.lang.String` | `propertyName_ReplacementTextPatientBirthDate` |
    `protected static java.lang.String` | `propertyName_ReplacementTextPatientID` |
    `protected static java.lang.String` | `propertyName_ReplacementTextPatientName` |
    `protected static java.lang.String` | `propertyName_ShowDateTime` |
    `protected javax.swing.JTextField` | `queryFilterAccessionNumberTextField` |
    `protected javax.swing.JTextField` | `queryFilterPatientIDTextField` |
    `protected javax.swing.JTextField` | `queryFilterPatientNameTextField` |
    `protected javax.swing.JTextField` | `queryFilterStudyDateTextField` |
    `protected int` | `randomReplacementAccessionNumberLength` |
    `protected int` | `randomReplacementPatientIDLength` |
    `protected java.lang.String` | `randomReplacementPatientNamePrefix` |
    `protected javax.swing.JPanel` | `remoteQueryRetrievePanel` |
    `protected javax.swing.JCheckBox` | `removeAllStructuredContentCheckBox` |
    `protected javax.swing.JCheckBox` | `removeCharacteristicsCheckBox` |
    `protected javax.swing.JCheckBox` | `removeClinicalTrialAttributesCheckBox` |
    `protected javax.swing.JCheckBox` | `removeDescriptionsCheckBox` |
    `protected javax.swing.JCheckBox` | `removeDeviceIdentityCheckBox` |
    `protected javax.swing.JCheckBox` | `removeIdentityCheckBox` |
    `protected javax.swing.JCheckBox` | `removeInstitutionIdentityCheckBox` |
    `protected javax.swing.JCheckBox` | `removePrivateCheckBox` |
    `protected javax.swing.JCheckBox` | `removeProtocolNameCheckBox` |
    `protected javax.swing.JCheckBox` | `removeSeriesDescriptionsCheckBox` |
    `protected javax.swing.JCheckBox` | `removeUnsafeStructuredContentCheckBox` |
    `protected javax.swing.JCheckBox` | `replaceAccessionNumberCheckBox` |
    `protected javax.swing.JTextField` | `replacementAccessionNumberTextField` |
    `protected javax.swing.JTextField` | `replacementPatientBirthDateTextField` |
    `protected javax.swing.JTextField` | `replacementPatientIDTextField` |
    `protected javax.swing.JTextField` | `replacementPatientNameTextField` |
    `protected javax.swing.JCheckBox` | `replacePatientBirthDateCheckBox` |
    `protected javax.swing.JCheckBox` | `replacePatientIDCheckBox` |
    `protected javax.swing.JCheckBox` | `replacePatientNameCheckBox` |
    `protected java.util.ResourceBundle` | `resourceBundle` |
    `protected static java.lang.String` | `resourceBundleName` |
    `protected static java.lang.String` | `rootNameForDicomInstanceFilesOnInterchangeMedia` |
    `protected java.io.File` | `savedImagesFolder` |
    `protected DatabaseInformationModel` | `srcDatabase` |
    `protected javax.swing.JPanel` | `srcDatabasePanel` |
    `protected StorageSOPClassSCPDispatcher` | `storageSOPClassSCPDispatcher` |
    `protected static int` | `textFieldLengthForModifyDates` |
    `protected static int` | `textFieldLengthForQueryAccessionNumber` |
    `protected static int` | `textFieldLengthForQueryPatientID` |
    `protected static int` | `textFieldLengthForQueryPatientName` |
    `protected static int` | `textFieldLengthForQueryStudyDate` |
    `protected static int` | `textFieldLengthForReplacementAccessionNumber` |
    `protected static int` | `textFieldLengthForReplacementPatientBirthDate` |
    `protected static int` | `textFieldLengthForReplacementPatientID` |
    `protected static int` | `textFieldLengthForReplacementPatientName` |
    `protected javax.swing.JCheckBox` | `zipExportCheckBox` |

    - ### Fields inherited from class com.pixelmed.display.ApplicationFrame

      `statusBarManager`

    - ### Fields inherited from class javax.swing.JFrame

      `accessibleContext, rootPane, rootPaneCheckingEnabled`

    - ### Fields inherited from class java.awt.Frame

      `ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, NORMAL`

    - ### Fields inherited from class java.awt.Component

      `BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

    - ### Fields inherited from interface java.awt.image.ImageObserver

      `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

    - ### Fields inherited from interface javax.swing.WindowConstants

      `DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DicomCleaner()` |
    `DicomCleaner​(java.lang.String pathName)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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 boolean` | `copyFromOriginalToCleanedPerformingAction​(java.util.Vector paths, java.util.Date earliestDateInSet, MessageLogger logger, SafeProgressBarUpdaterThread progressBarUpdater)` |
    `protected static java.util.Date` | `findEarliestDate​(java.util.Map<java.lang.String,​java.util.Date> earliestDatesIndexedBySourceFilePath, java.util.Vector<java.lang.String> sourceFilePathSelections)` |
    `protected static void` | `importFileIntoDatabase​(DatabaseInformationModel database, java.lang.String dicomFileName, java.lang.String fileReferenceType, java.util.Map<java.lang.String,​java.util.Date> earliestDatesIndexedBySourceFilePath)` |
    `static void` | `main​(java.lang.String[] arg)` | The method to invoke the application.
    `protected java.lang.String` | `makeNewFullyQualifiedHierarchicalInstancePathName​(java.lang.String sourceFileName)` |
    `protected java.lang.String` | `makeNewFullyQualifiedInterchangeMediaInstancePathName​(int fileCount)` |
    `protected void` | `performRetrieve​(AttributeList uniqueKeys, java.lang.String selectionLevel, java.lang.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​(java.lang.String remoteAEForQuery)` |
    `protected void` | `setCurrentRemoteQuerySelection​(AttributeList uniqueKeys, Attribute uniqueKey, AttributeList identifier)` |

    - ### Methods inherited from class com.pixelmed.display.ApplicationFrame

      `createGUI, getApplicationPropertyFileName, getBooleanPropertyOrDefaultAndAddIt, getBooleanPropertyOrDefaultAndAddIt, getBuildDate, getIntegerPropertyOrDefaultAndAddIt, getIntegerPropertyOrDefaultAndAddIt, getProperties, getPropertyInsistently, getPropertyInsistently, getPropertyOrDefaultAndAddIt, getPropertyOrDefaultAndAddIt, getReleaseString, getStatusBar, loadProperties, localizeJOptionPane, 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, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated`

    - ### Methods inherited from class java.awt.Window

      `addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, 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, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, toBack, toFront`

    - ### Methods inherited from class java.awt.Container

      `add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, list, list, paintComponents, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree`

    - ### Methods inherited from class java.awt.Component

      `add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, 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, hasFocus, imageUpdate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, list, list, list, 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, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.awt.MenuContainer

      `getFont`

- - ### Field Detail

    - #### resourceBundleName

          protected static java.lang.String resourceBundleName

    - #### propertiesFileName

          protected static java.lang.String propertiesFileName

    - #### propertyName_DicomCurrentlySelectedStorageTargetAE

          protected static java.lang.String propertyName_DicomCurrentlySelectedStorageTargetAE

    - #### propertyName_DicomCurrentlySelectedQueryTargetAE

          protected static java.lang.String propertyName_DicomCurrentlySelectedQueryTargetAE

    - #### propertyName_AllowUserQuery

          protected static java.lang.String propertyName_AllowUserQuery

    - #### propertyName_AllowNetworkConfiguration

          protected static java.lang.String propertyName_AllowNetworkConfiguration

    - #### propertyName_AllowChangeDatesAndTimes

          protected static java.lang.String propertyName_AllowChangeDatesAndTimes

    - #### propertyName_AllowRemoveIdentityCheckBox

          protected static java.lang.String propertyName_AllowRemoveIdentityCheckBox

    - #### propertyName_AllowRemoveDescriptionsCheckBox

          protected static java.lang.String propertyName_AllowRemoveDescriptionsCheckBox

    - #### propertyName_AllowRemoveSeriesDescriptionsCheckBox

          protected static java.lang.String propertyName_AllowRemoveSeriesDescriptionsCheckBox

    - #### propertyName_AllowRemoveProtocolNameCheckBox

          protected static java.lang.String propertyName_AllowRemoveProtocolNameCheckBox

    - #### propertyName_AllowRemoveCharacteristicsCheckBox

          protected static java.lang.String propertyName_AllowRemoveCharacteristicsCheckBox

    - #### propertyName_AllowRemoveDeviceIdentityCheckBox

          protected static java.lang.String propertyName_AllowRemoveDeviceIdentityCheckBox

    - #### propertyName_AllowRemoveInstitutionIdentityCheckBox

          protected static java.lang.String propertyName_AllowRemoveInstitutionIdentityCheckBox

    - #### propertyName_AllowCleanUIDsCheckBox

          protected static java.lang.String propertyName_AllowCleanUIDsCheckBox

    - #### propertyName_AllowRemovePrivateCheckBox

          protected static java.lang.String propertyName_AllowRemovePrivateCheckBox

    - #### propertyName_AllowAddContributingEquipmentCheckBox

          protected static java.lang.String propertyName_AllowAddContributingEquipmentCheckBox

    - #### propertyName_AllowRemoveClinicalTrialAttributesCheckBox

          protected static java.lang.String propertyName_AllowRemoveClinicalTrialAttributesCheckBox

    - #### propertyName_AllowRemoveAllStructuredContentCheckBox

          protected static java.lang.String propertyName_AllowRemoveAllStructuredContentCheckBox

    - #### propertyName_AllowRemoveUnsafeStructuredContentCheckBox

          protected static java.lang.String propertyName_AllowRemoveUnsafeStructuredContentCheckBox

    - #### propertyName_AllowZipExportCheckBox

          protected static java.lang.String propertyName_AllowZipExportCheckBox

    - #### propertyName_AllowHierarchicalExportCheckBox

          protected static java.lang.String propertyName_AllowHierarchicalExportCheckBox

    - #### propertyName_AllowAcceptAnyTransferSyntaxCheckBox

          protected static java.lang.String propertyName_AllowAcceptAnyTransferSyntaxCheckBox

    - #### propertyName_ReplacementTextPatientName

          protected static java.lang.String propertyName_ReplacementTextPatientName

    - #### propertyName_ReplacementTextPatientID

          protected static java.lang.String propertyName_ReplacementTextPatientID

    - #### propertyName_ReplacementTextPatientBirthDate

          protected static java.lang.String propertyName_ReplacementTextPatientBirthDate

    - #### propertyName_ReplacementTextAccessionNumber

          protected static java.lang.String propertyName_ReplacementTextAccessionNumber

    - #### propertyName_ShowDateTime

          protected static java.lang.String propertyName_ShowDateTime

    - #### propertyName_DateTimeFormat

          protected static java.lang.String propertyName_DateTimeFormat

    - #### propertyName_CheckBoxReplacePatientNameIsSelected

          protected static java.lang.String propertyName_CheckBoxReplacePatientNameIsSelected

    - #### propertyName_CheckBoxReplacePatientIDIsSelected

          protected static java.lang.String propertyName_CheckBoxReplacePatientIDIsSelected

    - #### propertyName_CheckBoxReplacePatientBirthDateIsSelected

          protected static java.lang.String propertyName_CheckBoxReplacePatientBirthDateIsSelected

    - #### propertyName_CheckBoxReplaceAccessionNumberIsSelected

          protected static java.lang.String propertyName_CheckBoxReplaceAccessionNumberIsSelected

    - #### propertyName_CheckBoxModifyDatesIsSelected

          protected static java.lang.String propertyName_CheckBoxModifyDatesIsSelected

    - #### propertyName_ModifyDatesEpoch

          protected static java.lang.String propertyName_ModifyDatesEpoch

    - #### propertyName_CheckBoxRemoveIdentityIsSelected

          protected static java.lang.String propertyName_CheckBoxRemoveIdentityIsSelected

    - #### propertyName_CheckBoxRemoveDescriptionsIsSelected

          protected static java.lang.String propertyName_CheckBoxRemoveDescriptionsIsSelected

    - #### propertyName_CheckBoxRemoveSeriesDescriptionsIsSelected

          protected static java.lang.String propertyName_CheckBoxRemoveSeriesDescriptionsIsSelected

    - #### propertyName_CheckBoxRemoveProtocolNameIsSelected

          protected static java.lang.String propertyName_CheckBoxRemoveProtocolNameIsSelected

    - #### propertyName_CheckBoxRemoveCharacteristicsIsSelected

          protected static java.lang.String propertyName_CheckBoxRemoveCharacteristicsIsSelected

    - #### propertyName_CheckBoxRemoveDeviceIdentityIsSelected

          protected static java.lang.String propertyName_CheckBoxRemoveDeviceIdentityIsSelected

    - #### propertyName_CheckBoxRemoveInstitutionIdentityIsSelected

          protected static java.lang.String propertyName_CheckBoxRemoveInstitutionIdentityIsSelected

    - #### propertyName_CheckBoxCleanUIDsIsSelected

          protected static java.lang.String propertyName_CheckBoxCleanUIDsIsSelected

    - #### propertyName_CheckBoxRemovePrivateIsSelected

          protected static java.lang.String propertyName_CheckBoxRemovePrivateIsSelected

    - #### propertyName_CheckBoxAddContributingEquipmentIsSelected

          protected static java.lang.String propertyName_CheckBoxAddContributingEquipmentIsSelected

    - #### propertyName_CheckBoxRemoveClinicalTrialAttributesIsSelected

          protected static java.lang.String propertyName_CheckBoxRemoveClinicalTrialAttributesIsSelected

    - #### propertyName_CheckBoxRemoveAllStructuredContentIsSelected

          protected static java.lang.String propertyName_CheckBoxRemoveAllStructuredContentIsSelected

    - #### propertyName_CheckBoxRemoveUnsafeStructuredContentIsSelected

          protected static java.lang.String propertyName_CheckBoxRemoveUnsafeStructuredContentIsSelected

    - #### propertyName_CheckBoxZipExportIsSelected

          protected static java.lang.String propertyName_CheckBoxZipExportIsSelected

    - #### propertyName_CheckBoxHierarchicalExportIsSelected

          protected static java.lang.String propertyName_CheckBoxHierarchicalExportIsSelected

    - #### propertyName_CheckBoxAcceptAnyTransferSyntaxIsSelected

          protected static java.lang.String propertyName_CheckBoxAcceptAnyTransferSyntaxIsSelected

    - #### propertyName_RandomReplacementPatientNamePrefix

          protected static java.lang.String propertyName_RandomReplacementPatientNamePrefix

    - #### propertyName_RandomReplacementPatientIDLength

          protected static java.lang.String propertyName_RandomReplacementPatientIDLength

    - #### propertyName_RandomReplacementAccessionNumberLength

          protected static java.lang.String propertyName_RandomReplacementAccessionNumberLength

    - #### default_CheckBoxReplacePatientNameIsSelected

          protected static boolean default_CheckBoxReplacePatientNameIsSelected

    - #### default_CheckBoxReplacePatientIDIsSelected

          protected static boolean default_CheckBoxReplacePatientIDIsSelected

    - #### default_CheckBoxReplacePatientBirthDateIsSelected

          protected static boolean default_CheckBoxReplacePatientBirthDateIsSelected

    - #### default_CheckBoxReplaceAccessionNumberIsSelected

          protected static boolean default_CheckBoxReplaceAccessionNumberIsSelected

    - #### default_CheckBoxModifyDatesIsSelected

          protected static boolean default_CheckBoxModifyDatesIsSelected

    - #### default_CheckBoxRemoveIdentityIsSelected

          protected static boolean default_CheckBoxRemoveIdentityIsSelected

    - #### default_CheckBoxRemoveDescriptionsIsSelected

          protected static boolean default_CheckBoxRemoveDescriptionsIsSelected

    - #### default_CheckBoxRemoveSeriesDescriptionsIsSelected

          protected static boolean default_CheckBoxRemoveSeriesDescriptionsIsSelected

    - #### default_CheckBoxRemoveProtocolNameIsSelected

          protected static boolean default_CheckBoxRemoveProtocolNameIsSelected

    - #### default_CheckBoxRemoveCharacteristicsIsSelected

          protected static boolean default_CheckBoxRemoveCharacteristicsIsSelected

    - #### default_CheckBoxRemoveDeviceIdentityIsSelected

          protected static boolean default_CheckBoxRemoveDeviceIdentityIsSelected

    - #### default_CheckBoxRemoveInstitutionIdentityIsSelected

          protected static boolean default_CheckBoxRemoveInstitutionIdentityIsSelected

    - #### default_CheckBoxCleanUIDsIsSelected

          protected static boolean default_CheckBoxCleanUIDsIsSelected

    - #### default_CheckBoxRemovePrivateIsSelected

          protected static boolean default_CheckBoxRemovePrivateIsSelected

    - #### default_CheckBoxAddContributingEquipmentIsSelected

          protected static boolean default_CheckBoxAddContributingEquipmentIsSelected

    - #### default_CheckBoxRemoveClinicalTrialAttributesIsSelected

          protected static boolean default_CheckBoxRemoveClinicalTrialAttributesIsSelected

    - #### default_CheckBoxRemoveAllStructuredContentIsSelected

          protected static boolean default_CheckBoxRemoveAllStructuredContentIsSelected

    - #### default_CheckBoxRemoveUnsafeStructuredContentIsSelected

          protected static boolean default_CheckBoxRemoveUnsafeStructuredContentIsSelected

    - #### default_CheckBoxZipExportIsSelected

          protected static boolean default_CheckBoxZipExportIsSelected

    - #### default_CheckBoxHierarchicalExportIsSelected

          protected static boolean default_CheckBoxHierarchicalExportIsSelected

    - #### default_CheckBoxAcceptAnyTransferSyntaxIsSelected

          protected static boolean default_CheckBoxAcceptAnyTransferSyntaxIsSelected

    - #### default_ShowDateTime

          protected static boolean default_ShowDateTime

    - #### default_DateTimeFormat

          protected static java.lang.String default_DateTimeFormat

    - #### default_RandomReplacementPatientIDLength

          protected static int default_RandomReplacementPatientIDLength

    - #### default_RandomReplacementAccessionNumberLength

          protected static int default_RandomReplacementAccessionNumberLength

    - #### rootNameForDicomInstanceFilesOnInterchangeMedia

          protected static java.lang.String rootNameForDicomInstanceFilesOnInterchangeMedia

    - #### filePrefixForDicomInstanceFilesOnInterchangeMedia

          protected static java.lang.String filePrefixForDicomInstanceFilesOnInterchangeMedia

    - #### fileSuffixForDicomInstanceFilesOnInterchangeMedia

          protected static java.lang.String fileSuffixForDicomInstanceFilesOnInterchangeMedia

    - #### nameForDicomDirectoryOnInterchangeMedia

          protected static java.lang.String nameForDicomDirectoryOnInterchangeMedia

    - #### exportedZipFileName

          protected static java.lang.String exportedZipFileName

    - #### textFieldLengthForQueryPatientName

          protected static int textFieldLengthForQueryPatientName

    - #### textFieldLengthForQueryPatientID

          protected static int textFieldLengthForQueryPatientID

    - #### textFieldLengthForQueryStudyDate

          protected static int textFieldLengthForQueryStudyDate

    - #### textFieldLengthForQueryAccessionNumber

          protected static int textFieldLengthForQueryAccessionNumber

    - #### textFieldLengthForReplacementPatientName

          protected static int textFieldLengthForReplacementPatientName

    - #### textFieldLengthForReplacementPatientID

          protected static int textFieldLengthForReplacementPatientID

    - #### textFieldLengthForReplacementPatientBirthDate

          protected static int textFieldLengthForReplacementPatientBirthDate

    - #### textFieldLengthForReplacementAccessionNumber

          protected static int textFieldLengthForReplacementAccessionNumber

    - #### textFieldLengthForModifyDates

          protected static int textFieldLengthForModifyDates

    - #### resourceBundle

          protected java.util.ResourceBundle resourceBundle

    - #### srcDatabase

          protected DatabaseInformationModel srcDatabase

    - #### dstDatabase

          protected DatabaseInformationModel dstDatabase

    - #### srcDatabasePanel

          protected javax.swing.JPanel srcDatabasePanel

    - #### dstDatabasePanel

          protected javax.swing.JPanel dstDatabasePanel

    - #### remoteQueryRetrievePanel

          protected javax.swing.JPanel remoteQueryRetrievePanel

    - #### removeIdentityCheckBox

          protected javax.swing.JCheckBox removeIdentityCheckBox

    - #### removeDescriptionsCheckBox

          protected javax.swing.JCheckBox removeDescriptionsCheckBox

    - #### removeSeriesDescriptionsCheckBox

          protected javax.swing.JCheckBox removeSeriesDescriptionsCheckBox

    - #### removeProtocolNameCheckBox

          protected javax.swing.JCheckBox removeProtocolNameCheckBox

    - #### removeCharacteristicsCheckBox

          protected javax.swing.JCheckBox removeCharacteristicsCheckBox

    - #### removeDeviceIdentityCheckBox

          protected javax.swing.JCheckBox removeDeviceIdentityCheckBox

    - #### removeInstitutionIdentityCheckBox

          protected javax.swing.JCheckBox removeInstitutionIdentityCheckBox

    - #### cleanUIDsCheckBox

          protected javax.swing.JCheckBox cleanUIDsCheckBox

    - #### removePrivateCheckBox

          protected javax.swing.JCheckBox removePrivateCheckBox

    - #### addContributingEquipmentCheckBox

          protected javax.swing.JCheckBox addContributingEquipmentCheckBox

    - #### removeClinicalTrialAttributesCheckBox

          protected javax.swing.JCheckBox removeClinicalTrialAttributesCheckBox

    - #### removeAllStructuredContentCheckBox

          protected javax.swing.JCheckBox removeAllStructuredContentCheckBox

    - #### removeUnsafeStructuredContentCheckBox

          protected javax.swing.JCheckBox removeUnsafeStructuredContentCheckBox

    - #### zipExportCheckBox

          protected javax.swing.JCheckBox zipExportCheckBox

    - #### hierarchicalExportCheckBox

          protected javax.swing.JCheckBox hierarchicalExportCheckBox

    - #### acceptAnyTransferSyntaxCheckBox

          protected javax.swing.JCheckBox acceptAnyTransferSyntaxCheckBox

    - #### replacePatientNameCheckBox

          protected javax.swing.JCheckBox replacePatientNameCheckBox

    - #### replacePatientIDCheckBox

          protected javax.swing.JCheckBox replacePatientIDCheckBox

    - #### replacePatientBirthDateCheckBox

          protected javax.swing.JCheckBox replacePatientBirthDateCheckBox

    - #### replaceAccessionNumberCheckBox

          protected javax.swing.JCheckBox replaceAccessionNumberCheckBox

    - #### modifyDatesCheckBox

          protected javax.swing.JCheckBox modifyDatesCheckBox

    - #### replacementPatientNameTextField

          protected javax.swing.JTextField replacementPatientNameTextField

    - #### replacementPatientIDTextField

          protected javax.swing.JTextField replacementPatientIDTextField

    - #### replacementPatientBirthDateTextField

          protected javax.swing.JTextField replacementPatientBirthDateTextField

    - #### replacementAccessionNumberTextField

          protected javax.swing.JTextField replacementAccessionNumberTextField

    - #### modifyDatesTextField

          protected javax.swing.JTextField modifyDatesTextField

    - #### queryFilterPatientNameTextField

          protected javax.swing.JTextField queryFilterPatientNameTextField

    - #### queryFilterPatientIDTextField

          protected javax.swing.JTextField queryFilterPatientIDTextField

    - #### queryFilterStudyDateTextField

          protected javax.swing.JTextField queryFilterStudyDateTextField

    - #### queryFilterAccessionNumberTextField

          protected javax.swing.JTextField queryFilterAccessionNumberTextField

    - #### randomReplacementPatientNamePrefix

          protected java.lang.String randomReplacementPatientNamePrefix

    - #### randomReplacementPatientIDLength

          protected int randomReplacementPatientIDLength

    - #### randomReplacementAccessionNumberLength

          protected int randomReplacementAccessionNumberLength

    - #### 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 java.lang.String currentRemoteQuerySelectionRetrieveAE

    - #### currentRemoteQuerySelectionLevel

          protected java.lang.String currentRemoteQuerySelectionLevel

    - #### ourCalledAETitle

          protected java.lang.String ourCalledAETitle

    - #### earliestDatesIndexedBySourceFilePath

          protected java.util.Map<java.lang.String,​java.util.Date> earliestDatesIndexedBySourceFilePath

    - #### savedImagesFolder

          protected java.io.File savedImagesFolder

    - #### storageSOPClassSCPDispatcher

          protected StorageSOPClassSCPDispatcher storageSOPClassSCPDispatcher

    - #### currentSourceDatabaseSelections

          protected DatabaseTreeRecord[] currentSourceDatabaseSelections

    - #### currentSourceFilePathSelections

          protected java.util.Vector currentSourceFilePathSelections

    - #### currentDestinationDatabaseSelections

          protected DatabaseTreeRecord[] currentDestinationDatabaseSelections

    - #### currentDestinationFilePathSelections

          protected java.util.Vector currentDestinationFilePathSelections

    - #### importDirectoryPath

          protected java.lang.String importDirectoryPath

    - #### exportDirectoryPath

          protected java.lang.String exportDirectoryPath

  - ### Constructor Detail

    - #### DicomCleaner

          public DicomCleaner()
                       throws DicomException,
                              java.io.IOException

      Throws:
        `DicomException`
        `java.io.IOException`

    - #### DicomCleaner

          public DicomCleaner​(java.lang.String pathName)
                       throws DicomException,
                              java.io.IOException

      Throws:
        `DicomException`
        `java.io.IOException`

  - ### Method Detail

    - #### setCurrentRemoteQueryInformationModel

          protected void setCurrentRemoteQueryInformationModel​(java.lang.String remoteAEForQuery)

    - #### importFileIntoDatabase

          protected static void importFileIntoDatabase​(DatabaseInformationModel database,
                                                       java.lang.String dicomFileName,
                                                       java.lang.String fileReferenceType,
                                                       java.util.Map<java.lang.String,​java.util.Date> earliestDatesIndexedBySourceFilePath)
                                                throws java.io.FileNotFoundException,
                                                       java.io.IOException,
                                                       DicomException

      Throws:
        `java.io.FileNotFoundException`
        `java.io.IOException`
        `DicomException`

    - #### activateStorageSCP

          protected void activateStorageSCP()
                                     throws DicomException,
                                            java.io.IOException

      Start DICOM storage listener for populating source database.

      Throws:
        `DicomException`
        `java.io.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,
                                                          java.io.IOException

      Throws:
        `DicomException`
        `java.io.IOException`

    - #### purgeFilesAndDatabaseInformation

          protected void purgeFilesAndDatabaseInformation​(DatabaseTreeRecord databaseSelection,
                                                          MessageLogger logger,
                                                          SafeProgressBarUpdaterThread progressBarUpdater,
                                                          int done,
                                                          int maximum)
                                                   throws DicomException,
                                                          java.io.IOException

      Throws:
        `DicomException`
        `java.io.IOException`

    - #### copyFromOriginalToCleanedPerformingAction

          protected boolean copyFromOriginalToCleanedPerformingAction​(java.util.Vector paths,
                                                                      java.util.Date earliestDateInSet,
                                                                      MessageLogger logger,
                                                                      SafeProgressBarUpdaterThread progressBarUpdater)
                                                               throws DicomException,
                                                                      java.io.IOException

      Throws:
        `DicomException`
        `java.io.IOException`

    - #### findEarliestDate

          protected static java.util.Date findEarliestDate​(java.util.Map<java.lang.String,​java.util.Date> earliestDatesIndexedBySourceFilePath,
                                                           java.util.Vector<java.lang.String> sourceFilePathSelections)

    - #### makeNewFullyQualifiedInterchangeMediaInstancePathName

          protected java.lang.String makeNewFullyQualifiedInterchangeMediaInstancePathName​(int fileCount)
                                                                                    throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### makeNewFullyQualifiedHierarchicalInstancePathName

          protected java.lang.String makeNewFullyQualifiedHierarchicalInstancePathName​(java.lang.String sourceFileName)
                                                                                throws DicomException,
                                                                                       java.io.IOException

      Throws:
        `DicomException`
        `java.io.IOException`

    - #### setCurrentRemoteQuerySelection

          protected void setCurrentRemoteQuerySelection​(AttributeList uniqueKeys,
                                                        Attribute uniqueKey,
                                                        AttributeList identifier)

    - #### performRetrieve

          protected void performRetrieve​(AttributeList uniqueKeys,
                                         java.lang.String selectionLevel,
                                         java.lang.String retrieveAE)

    - #### main

          public static void main​(java.lang.String[] arg)

      The method to invoke the application.

      Parameters:
        `arg` - optionally, a single path to a DICOM file or folder to search for importable DICOM files