com.pixelmed.apps

## Class DoseUtility

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - java.awt.Window
      - - java.awt.Frame
        - - javax.swing.JFrame
          - - com.pixelmed.display.ApplicationFrame
            - - com.pixelmed.apps.DoseUtility

All Implemented Interfaces:
  java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

    public class DoseUtility
    extends ApplicationFrame

This class is an application for retrieving dose information about DICOM studies of patients.

It is configured by use of a properties file that resides in the user's home directory in `.com.pixelmed.display.DoseUtility.properties`.

It supports retrieval of Dose SR objects and dose screen save images.

See Also:
  Serialized Form

### Nested Class Summary

Nested Classes
`protected class` `DoseUtility.ConfigureActionListener`
`protected class` `DoseUtility.ImportActionListener`
`protected class` `DoseUtility.ImportWorker`
`protected class` `DoseUtility.LogActionListener`
`protected class` `DoseUtility.MakeSRActionListener`
`protected class` `DoseUtility.MakeSRWorker`
`protected class` `DoseUtility.OurMediaImporter`
`protected class` `DoseUtility.OurMultipleInstanceTransferStatusHandler`
`protected class` `DoseUtility.OurQueryTreeBrowser`
`protected class` `DoseUtility.OurReceivedObjectHandler`
`protected class` `DoseUtility.OurSourceDatabaseTreeBrowser`
`protected class` `DoseUtility.PurgeActionListener`
`protected class` `DoseUtility.PurgeWorker`
`protected class` `DoseUtility.QueryActionListener`
`protected class` `DoseUtility.QueryWorker`
`protected class` `DoseUtility.RegistryActionListener`
`protected class` `DoseUtility.RegistryWorker`
`protected class` `DoseUtility.ReportActionListener`
`protected class` `DoseUtility.ReportWorker`
`protected class` `DoseUtility.RetrieveActionListener`
`protected class` `DoseUtility.SendActionListener`
`protected class` `DoseUtility.SendWorker`
`protected class` `DoseUtility.ValidateActionListener`
`protected class` `DoseUtility.ValidateWorker`
`protected class` `DoseUtility.ViewActionListener`
`protected class` `DoseUtility.ViewWorker`

### 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
`protected javax.swing.JCheckBox` `caseSensitiveCodeMeaningValidationCheckBox`
`protected static java.lang.String` `caseSensitiveCodeMeaningValidationLabelText`
`protected static java.lang.String` `configureButtonLabel`
`protected static java.lang.String` `configureButtonToolTipText`
`protected DatabaseTreeRecord[]` `currentDatabaseTreeRecordSelections`
`protected QueryInformationModel` `currentRemoteQueryInformationModel`
`protected QueryTreeBrowser` `currentRemoteQueryTreeBrowser`
`protected SafeCursorChanger` `cursorChanger`
`protected javax.swing.JCheckBox` `deidentifyWhenSendingToRegistryCheckBox`
`protected static java.lang.String` `deidentifyWhenSendingToRegistryLabelText`
`protected FTPApplicationProperties` `ftpApplicationProperties`
`protected FTPRemoteHostInformation` `ftpRemoteHostInformation`
`protected static boolean` `haveCheckedForJPEG2000Part1Codec`
`protected static boolean` `haveCheckedForJPEGLosslessCodec`
`protected static boolean` `haveFoundJPEG2000Part1Codec`
`protected static boolean` `haveFoundJPEGLosslessCodec`
`protected static boolean` `haveScannedForCodecs`
`protected static java.lang.String` `importButtonLabel`
`protected static java.lang.String` `importButtonToolTipText`
`protected java.lang.String` `importDirectoryPath`
`protected static java.lang.String` `localDatabaseName`
`protected static java.lang.String` `localDatabaseServerName`
`protected static java.lang.String` `logButtonLabel`
`protected static java.lang.String` `logButtonToolTipText`
`protected MessageLogger` `logger`
`protected static int` `loggerDialogHeightWanted`
`protected static int` `loggertDialogWidthWanted`
`protected static java.lang.String` `loggerTitleMessage`
`protected static java.lang.String` `makeSRButtonLabel`
`protected static java.lang.String` `makeSRButtonToolTipText`
`protected NetworkApplicationInformation` `networkApplicationInformation`
`protected NetworkApplicationProperties` `networkApplicationProperties`
`protected java.lang.String` `ourCalledAETitle`
`protected javax.swing.JCheckBox` `processOnlyDoseSeriesRecordCheckBox`
`protected static java.lang.String` `processOnlyDoseSeriesRecordLabelText`
`protected SafeProgressBarUpdaterThread` `progressBarUpdater`
`protected static java.lang.String` `propertiesFileName`
`protected static java.lang.String` `propertyName_CurrentlySelectedDoseRegistry`
`protected static java.lang.String` `propertyName_DicomCurrentlySelectedQueryTargetAE`
`protected static java.lang.String` `propertyName_DicomCurrentlySelectedStorageTargetAE`
`protected static java.lang.String` `purgeButtonLabel`
`protected static java.lang.String` `purgeButtonToolTipText`
`protected static java.lang.String` `queryButtonLabel`
`protected static java.lang.String` `queryButtonToolTipText`
`protected javax.swing.JTextField` `queryFilterPatientIDTextField`
`protected javax.swing.JTextField` `queryFilterPatientNameTextField`
`protected javax.swing.JTextField` `queryFilterStudyDateTextField`
`protected static java.lang.String` `queryIntroductionLabelText`
`protected static java.lang.String` `queryPatientIDLabelText`
`protected static java.lang.String` `queryPatientIDToolTipText`
`protected static java.lang.String` `queryPatientNameLabelText`
`protected static java.lang.String` `queryPatientNameToolTipText`
`protected static java.lang.String` `queryStudyDateLabelText`
`protected static java.lang.String` `queryStudyDateToolTipText`
`protected static java.lang.String` `registryButtonLabel`
`protected static java.lang.String` `registryButtonToolTipText`
`protected javax.swing.JPanel` `remoteQueryRetrievePanel`
`protected static java.lang.String` `reportButtonLabel`
`protected static java.lang.String` `reportButtonToolTipText`
`protected static int` `reportDialogHeightWanted`
`protected static int` `reportDialogWidthWanted`
`protected javax.swing.JCheckBox` `reportTabularLayoutCheckBox`
`protected static java.lang.String` `reportTabularLayoutLabelText`
`protected static java.lang.String` `reportTitleMessage`
`protected static java.lang.String` `retrieveButtonLabel`
`protected static java.lang.String` `retrieveButtonToolTipText`
`protected javax.swing.JCheckBox` `retrieveOnlyDoseSeriesRecordCheckBox`
`protected static java.lang.String` `retrieveOnlyDoseSeriesRecordLabelText`
`protected java.io.File` `savedImagesFolder`
`protected static java.lang.String` `sendButtonLabel`
`protected static java.lang.String` `sendButtonToolTipText`
`protected javax.swing.JCheckBox` `showDetailedLogCheckBox`
`protected static java.lang.String` `showDetailedLogLabelText`
`protected javax.swing.JCheckBox` `showOnlyDoseSummaryCheckBox`
`protected static java.lang.String` `showOnlyDoseSummaryLabelText`
`protected DatabaseInformationModel` `srcDatabase`
`protected javax.swing.JPanel` `srcDatabasePanel`
`protected StorageSOPClassSCPDispatcher` `storageSOPClassSCPDispatcher`
`protected static int` `textFieldLengthForQueryPatientID`
`protected static int` `textFieldLengthForQueryPatientName`
`protected static int` `textFieldLengthForQueryStudyDate`
`protected static java.lang.String` `validateButtonLabel`
`protected static java.lang.String` `validateButtonToolTipText`
`protected static DicomSRValidator` `validator`
`protected static int` `validatorFrameHeightWanted`
`protected static int` `validatorFrameWidthWanted`
`protected static java.lang.String` `viewButtonLabel`
`protected static java.lang.String` `viewButtonToolTipText`
`protected static int` `viewerFrameHeightWanted`
`protected static int` `viewerFrameWidthWanted`

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

`statusBarManager`

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

`accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled`

### 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`

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

`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

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

`DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE`

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

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

### Constructor Summary

Constructors
Constructor and Description
`DoseUtility(java.lang.String title)`

### Method Summary

Methods
`protected void` `activateStorageSCP()` Start DICOM storage listener for populating source database.
`protected void` `activateTemporaryDatabases()` Start local database.
`protected java.util.Vector<java.lang.String>` `deidentifyFiles(java.util.Vector<java.lang.String> paths)`
`protected java.util.Vector` `extractRadiationDoseSRFiles(java.util.Vector candidatePaths)`
`static java.util.ArrayList<QueryTreeRecord>` `findCTSeriesAndRelatedRecordsInQueryTree(QueryTreeRecord record, java.util.ArrayList<QueryTreeRecord> records)`
`static java.util.ArrayList<QueryTreeRecord>` `findDoseSeriesRecordsInQueryTree(QueryTreeRecord record, java.util.ArrayList<QueryTreeRecord> records)`
`protected void` `generateDoseReportInformation(DatabaseTreeRecord[] databaseSelections, javax.swing.JEditorPane reportPane, java.lang.StringBuffer textBuffer, boolean doHTML, MessageLogger logger, SafeProgressBarUpdaterThread progressBarUpdater, int done, int maximum)`
`protected void` `generateDoseReportInformation(DatabaseTreeRecord databaseSelection, javax.swing.JEditorPane reportPane, java.lang.StringBuffer textBuffer, boolean doHTML, MessageLogger logger, SafeProgressBarUpdaterThread progressBarUpdater, int done, int maximum)`
`protected void` `generateDoseSR(DatabaseInformationModel srcDatabase, DatabaseTreeRecord[] databaseSelections, MessageLogger logger, SafeProgressBarUpdaterThread progressBarUpdater, int done, int maximum)`
`protected void` `generateDoseSR(DatabaseInformationModel srcDatabase, DatabaseTreeRecord databaseSelection, MessageLogger logger, SafeProgressBarUpdaterThread progressBarUpdater, int done, int maximum)`
`protected java.util.Vector` `getCurrentSourceFilePathSelections()`
`protected static java.lang.String` `getOriginDescriptionForLog(CTDose ctDose, DatabaseInformationModel srcDatabase)`
`static java.lang.String` `getQueryRetrieveAEFromIdentifier(AttributeList identifier, QueryInformationModel queryInformationModel)`
`static java.lang.String` `getQueryRetrieveLevel(AttributeList identifier, Attribute uniqueKey)`
`protected static java.lang.String` `getSRDescriptionForLog(AttributeList list)`
`protected boolean` `haveJPEG2000Part1Codec()`
`protected boolean` `haveJPEGLosslessCodec()`
`protected static void` `importFileIntoDatabase(DatabaseInformationModel database, java.lang.String dicomFileName, java.lang.String fileRefererenceType)`
`static void` `main(java.lang.String[] arg)` The method to invoke the application.
`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)`
`static void` `recurseThroughChildrenGatheringFileNamesOfDoseFiles(DatabaseTreeRecord r, java.util.Vector names, boolean onlyDoseFiles, java.lang.String manufacturer)` Recursively process the specified DatabaseTreeRecord and all its children finding file paths of possible dose-related files (not the reconstructed image files) at the instance level.
`static void` `recurseThroughChildrenGatheringFileNamesOfSRFiles(DatabaseTreeRecord r, java.util.Vector names)` Recursively process the specified DatabaseTreeRecord and all its children finding file paths of SR files at the instance level.
`protected void` `setCurrentRemoteQueryInformationModel(java.lang.String remoteAEForQuery)`

### 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, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated`

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

`addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, 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, toFront`

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

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

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

`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, 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, 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, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

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

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

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

`getFont, postEvent`

### Field Detail

#### 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_CurrentlySelectedDoseRegistry

    protected static java.lang.String propertyName_CurrentlySelectedDoseRegistry

#### localDatabaseName

    protected static java.lang.String localDatabaseName

#### localDatabaseServerName

    protected static java.lang.String localDatabaseServerName

#### textFieldLengthForQueryPatientName

    protected static int textFieldLengthForQueryPatientName

#### textFieldLengthForQueryPatientID

    protected static int textFieldLengthForQueryPatientID

#### textFieldLengthForQueryStudyDate

    protected static int textFieldLengthForQueryStudyDate

#### queryIntroductionLabelText

    protected static java.lang.String queryIntroductionLabelText

#### queryPatientNameLabelText

    protected static java.lang.String queryPatientNameLabelText

#### queryPatientIDLabelText

    protected static java.lang.String queryPatientIDLabelText

#### queryStudyDateLabelText

    protected static java.lang.String queryStudyDateLabelText

#### configureButtonLabel

    protected static java.lang.String configureButtonLabel

#### logButtonLabel

    protected static java.lang.String logButtonLabel

#### queryButtonLabel

    protected static java.lang.String queryButtonLabel

#### retrieveButtonLabel

    protected static java.lang.String retrieveButtonLabel

#### importButtonLabel

    protected static java.lang.String importButtonLabel

#### viewButtonLabel

    protected static java.lang.String viewButtonLabel

#### validateButtonLabel

    protected static java.lang.String validateButtonLabel

#### reportButtonLabel

    protected static java.lang.String reportButtonLabel

#### makeSRButtonLabel

    protected static java.lang.String makeSRButtonLabel

#### sendButtonLabel

    protected static java.lang.String sendButtonLabel

#### registryButtonLabel

    protected static java.lang.String registryButtonLabel

#### purgeButtonLabel

    protected static java.lang.String purgeButtonLabel

#### configureButtonToolTipText

    protected static java.lang.String configureButtonToolTipText

#### logButtonToolTipText

    protected static java.lang.String logButtonToolTipText

#### queryButtonToolTipText

    protected static java.lang.String queryButtonToolTipText

#### retrieveButtonToolTipText

    protected static java.lang.String retrieveButtonToolTipText

#### importButtonToolTipText

    protected static java.lang.String importButtonToolTipText

#### viewButtonToolTipText

    protected static java.lang.String viewButtonToolTipText

#### validateButtonToolTipText

    protected static java.lang.String validateButtonToolTipText

#### reportButtonToolTipText

    protected static java.lang.String reportButtonToolTipText

#### makeSRButtonToolTipText

    protected static java.lang.String makeSRButtonToolTipText

#### sendButtonToolTipText

    protected static java.lang.String sendButtonToolTipText

#### registryButtonToolTipText

    protected static java.lang.String registryButtonToolTipText

#### purgeButtonToolTipText

    protected static java.lang.String purgeButtonToolTipText

#### queryPatientNameToolTipText

    protected static java.lang.String queryPatientNameToolTipText

#### queryPatientIDToolTipText

    protected static java.lang.String queryPatientIDToolTipText

#### queryStudyDateToolTipText

    protected static java.lang.String queryStudyDateToolTipText

#### retrieveOnlyDoseSeriesRecordLabelText

    protected static java.lang.String retrieveOnlyDoseSeriesRecordLabelText

#### processOnlyDoseSeriesRecordLabelText

    protected static java.lang.String processOnlyDoseSeriesRecordLabelText

#### showOnlyDoseSummaryLabelText

    protected static java.lang.String showOnlyDoseSummaryLabelText

#### showDetailedLogLabelText

    protected static java.lang.String showDetailedLogLabelText

#### reportTabularLayoutLabelText

    protected static java.lang.String reportTabularLayoutLabelText

#### caseSensitiveCodeMeaningValidationLabelText

    protected static java.lang.String caseSensitiveCodeMeaningValidationLabelText

#### deidentifyWhenSendingToRegistryLabelText

    protected static java.lang.String deidentifyWhenSendingToRegistryLabelText

#### reportTitleMessage

    protected static java.lang.String reportTitleMessage

#### loggerTitleMessage

    protected static java.lang.String loggerTitleMessage

#### viewerFrameWidthWanted

    protected static int viewerFrameWidthWanted

#### viewerFrameHeightWanted

    protected static int viewerFrameHeightWanted

#### validatorFrameWidthWanted

    protected static int validatorFrameWidthWanted

#### validatorFrameHeightWanted

    protected static int validatorFrameHeightWanted

#### reportDialogWidthWanted

    protected static int reportDialogWidthWanted

#### reportDialogHeightWanted

    protected static int reportDialogHeightWanted

#### loggertDialogWidthWanted

    protected static int loggertDialogWidthWanted

#### loggerDialogHeightWanted

    protected static int loggerDialogHeightWanted

#### srcDatabase

    protected DatabaseInformationModel srcDatabase

#### srcDatabasePanel

    protected javax.swing.JPanel srcDatabasePanel

#### remoteQueryRetrievePanel

    protected javax.swing.JPanel remoteQueryRetrievePanel

#### retrieveOnlyDoseSeriesRecordCheckBox

    protected javax.swing.JCheckBox retrieveOnlyDoseSeriesRecordCheckBox

#### processOnlyDoseSeriesRecordCheckBox

    protected javax.swing.JCheckBox processOnlyDoseSeriesRecordCheckBox

#### showOnlyDoseSummaryCheckBox

    protected javax.swing.JCheckBox showOnlyDoseSummaryCheckBox

#### showDetailedLogCheckBox

    protected javax.swing.JCheckBox showDetailedLogCheckBox

#### reportTabularLayoutCheckBox

    protected javax.swing.JCheckBox reportTabularLayoutCheckBox

#### caseSensitiveCodeMeaningValidationCheckBox

    protected javax.swing.JCheckBox caseSensitiveCodeMeaningValidationCheckBox

#### deidentifyWhenSendingToRegistryCheckBox

    protected javax.swing.JCheckBox deidentifyWhenSendingToRegistryCheckBox

#### queryFilterPatientNameTextField

    protected javax.swing.JTextField queryFilterPatientNameTextField

#### queryFilterPatientIDTextField

    protected javax.swing.JTextField queryFilterPatientIDTextField

#### queryFilterStudyDateTextField

    protected javax.swing.JTextField queryFilterStudyDateTextField

#### progressBarUpdater

    protected SafeProgressBarUpdaterThread progressBarUpdater

#### cursorChanger

    protected SafeCursorChanger cursorChanger

#### logger

    protected MessageLogger logger

#### networkApplicationProperties

    protected NetworkApplicationProperties networkApplicationProperties

#### networkApplicationInformation

    protected NetworkApplicationInformation networkApplicationInformation

#### ftpApplicationProperties

    protected FTPApplicationProperties ftpApplicationProperties

#### ftpRemoteHostInformation

    protected FTPRemoteHostInformation ftpRemoteHostInformation

#### currentRemoteQueryInformationModel

    protected QueryInformationModel currentRemoteQueryInformationModel

#### currentRemoteQueryTreeBrowser

    protected QueryTreeBrowser currentRemoteQueryTreeBrowser

#### ourCalledAETitle

    protected java.lang.String ourCalledAETitle

#### validator

    protected static DicomSRValidator validator

#### 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

#### savedImagesFolder

    protected java.io.File savedImagesFolder

#### storageSOPClassSCPDispatcher

    protected StorageSOPClassSCPDispatcher storageSOPClassSCPDispatcher

#### currentDatabaseTreeRecordSelections

    protected DatabaseTreeRecord[] currentDatabaseTreeRecordSelections

#### importDirectoryPath

    protected java.lang.String importDirectoryPath

### Constructor Detail

#### DoseUtility

    public DoseUtility(java.lang.String title)
                throws DicomException,
                       java.io.IOException

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

### Method Detail

#### haveJPEGLosslessCodec

    protected boolean haveJPEGLosslessCodec()

#### haveJPEG2000Part1Codec

    protected boolean haveJPEG2000Part1Codec()

#### setCurrentRemoteQueryInformationModel

    protected void setCurrentRemoteQueryInformationModel(java.lang.String remoteAEForQuery)

#### importFileIntoDatabase

    protected static void importFileIntoDatabase(DatabaseInformationModel database,
                              java.lang.String dicomFileName,
                              java.lang.String fileRefererenceType)
                                          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 local database.

Will not persist when the application is closed, so in memory database is used and instances live in the temporary filesystem.

Throws:
  `DicomException`

#### getCurrentSourceFilePathSelections

    protected java.util.Vector getCurrentSourceFilePathSelections()

#### recurseThroughChildrenGatheringFileNamesOfDoseFiles

    public static void recurseThroughChildrenGatheringFileNamesOfDoseFiles(DatabaseTreeRecord r,
                                                           java.util.Vector names,
                                                           boolean onlyDoseFiles,
                                                           java.lang.String manufacturer)

Recursively process the specified DatabaseTreeRecord and all its children finding file paths of possible dose-related files (not the reconstructed image files) at the instance level.

Based on the method in DatabaseTreeBrowser, modified to filter by database record type.

Parameters:
  `r` - the current DatabaseTreeRecord to process
  `names` - the file names (paths) to add to
  `onlyDoseFiles` - if true, only process dose-related files (not the reconstructed image files)
  `manufacturer` - passed from series level down to instance

#### recurseThroughChildrenGatheringFileNamesOfSRFiles

    public static void recurseThroughChildrenGatheringFileNamesOfSRFiles(DatabaseTreeRecord r,
                                                         java.util.Vector names)

Recursively process the specified DatabaseTreeRecord and all its children finding file paths of SR files at the instance level.

Based on the method in DatabaseTreeBrowser, modified to filter by database record type.

Parameters:
  `r` - the current DatabaseTreeRecord to process
  `names` - the file names (paths) to add to

#### extractRadiationDoseSRFiles

    protected java.util.Vector extractRadiationDoseSRFiles(java.util.Vector candidatePaths)

#### generateDoseReportInformation

    protected void generateDoseReportInformation(DatabaseTreeRecord[] databaseSelections,
                                     javax.swing.JEditorPane reportPane,
                                     java.lang.StringBuffer textBuffer,
                                     boolean doHTML,
                                     MessageLogger logger,
                                     SafeProgressBarUpdaterThread progressBarUpdater,
                                     int done,
                                     int maximum)
                                          throws DicomException,
                                                 java.io.IOException

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

#### generateDoseReportInformation

    protected void generateDoseReportInformation(DatabaseTreeRecord databaseSelection,
                                     javax.swing.JEditorPane reportPane,
                                     java.lang.StringBuffer textBuffer,
                                     boolean doHTML,
                                     MessageLogger logger,
                                     SafeProgressBarUpdaterThread progressBarUpdater,
                                     int done,
                                     int maximum)
                                          throws DicomException,
                                                 java.io.IOException

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

#### 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`

#### getSRDescriptionForLog

    protected static java.lang.String getSRDescriptionForLog(AttributeList list)

#### getOriginDescriptionForLog

    protected static java.lang.String getOriginDescriptionForLog(CTDose ctDose,
                                              DatabaseInformationModel srcDatabase)
                                                          throws DicomException

Throws:
  `DicomException`

#### generateDoseSR

    protected void generateDoseSR(DatabaseInformationModel srcDatabase,
                      DatabaseTreeRecord[] databaseSelections,
                      MessageLogger logger,
                      SafeProgressBarUpdaterThread progressBarUpdater,
                      int done,
                      int maximum)
                           throws DicomException,
                                  java.io.IOException

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

#### generateDoseSR

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

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

#### deidentifyFiles

    protected java.util.Vector<java.lang.String> deidentifyFiles(java.util.Vector<java.lang.String> paths)
                                                          throws DicomException,
                                                                 java.io.IOException

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

#### getQueryRetrieveAEFromIdentifier

    public static java.lang.String getQueryRetrieveAEFromIdentifier(AttributeList identifier,
                                                    QueryInformationModel queryInformationModel)

#### getQueryRetrieveLevel

    public static java.lang.String getQueryRetrieveLevel(AttributeList identifier,
                                         Attribute uniqueKey)

#### performRetrieve

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

#### findDoseSeriesRecordsInQueryTree

    public static java.util.ArrayList<QueryTreeRecord> findDoseSeriesRecordsInQueryTree(QueryTreeRecord record,
                                                                        java.util.ArrayList<QueryTreeRecord> records)

#### findCTSeriesAndRelatedRecordsInQueryTree

    public static java.util.ArrayList<QueryTreeRecord> findCTSeriesAndRelatedRecordsInQueryTree(QueryTreeRecord record,
                                                                                java.util.ArrayList<QueryTreeRecord> records)

#### main

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

The method to invoke the application.

Parameters:
  `arg` - none