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.
JFrame.AccessibleJFrame
Frame.AccessibleAWTFrame
Window.AccessibleAWTWindow, Window.Type
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
resourceBundle, resourceBundleName, statusBarManager
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
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
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
DoseUtility(String title) |
Modifier and Type | Method and Description |
---|---|
protected void |
activateStorageSCP()
Start DICOM storage listener for populating source database.
|
protected void |
activateTemporaryDatabases()
Start local database.
|
protected Vector<String> |
deidentifyFiles(Vector<String> paths) |
protected Vector |
extractRadiationDoseSRFiles(Vector candidatePaths) |
static ArrayList<QueryTreeRecord> |
findCTSeriesAndRelatedRecordsInQueryTree(QueryTreeRecord record,
ArrayList<QueryTreeRecord> records) |
static ArrayList<QueryTreeRecord> |
findDoseSeriesRecordsInQueryTree(QueryTreeRecord record,
ArrayList<QueryTreeRecord> records) |
protected void |
generateDoseReportInformation(DatabaseTreeRecord[] databaseSelections,
JEditorPane reportPane,
StringBuffer textBuffer,
boolean doHTML,
MessageLogger logger,
SafeProgressBarUpdaterThread progressBarUpdater,
int done,
int maximum) |
protected void |
generateDoseReportInformation(DatabaseTreeRecord databaseSelection,
JEditorPane reportPane,
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 Vector |
getCurrentSourceFilePathSelections() |
protected static String |
getOriginDescriptionForLog(CTDose ctDose,
DatabaseInformationModel srcDatabase) |
static String |
getQueryRetrieveAEFromIdentifier(AttributeList identifier,
QueryInformationModel queryInformationModel) |
static String |
getQueryRetrieveLevel(AttributeList identifier,
Attribute uniqueKey) |
protected static String |
getSRDescriptionForLog(AttributeList list) |
protected static void |
importFileIntoDatabase(DatabaseInformationModel database,
String dicomFileName,
String fileRefererenceType) |
static void |
main(String[] arg)
The method to invoke the application.
|
protected void |
performRetrieve(AttributeList uniqueKeys,
String selectionLevel,
String retrieveAE) |
protected void |
purgeFilesAndDatabaseInformation(DatabaseTreeRecord[] databaseSelections,
MessageLogger logger,
SafeProgressBarUpdaterThread progressBarUpdater,
int done,
int maximum) |
protected void |
purgeFilesAndDatabaseInformation(DatabaseTreeRecord databaseSelection,
MessageLogger logger,
SafeProgressBarUpdaterThread progressBarUpdater,
int done,
int maximum) |
static void |
recurseThroughChildrenGatheringFileNamesOfDoseFiles(DatabaseTreeRecord r,
Vector names,
boolean onlyDoseFiles,
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,
Vector names)
Recursively process the specified DatabaseTreeRecord and all its children finding file paths of SR files at the instance level.
|
protected void |
setCurrentRemoteQueryInformationModel(String remoteAEForQuery) |
createGUI, getApplicationPropertyFileName, getBooleanPropertyOrDefaultAndAddIt, getBooleanPropertyOrDefaultAndAddIt, getBuildDate, getIntegerPropertyOrDefaultAndAddIt, getIntegerPropertyOrDefaultAndAddIt, getProperties, getPropertyInsistently, getPropertyInsistently, getPropertyOrDefaultAndAddIt, getPropertyOrDefaultAndAddIt, getReleaseString, getStatusBar, loadProperties, localizeJOptionPane, makePathToFileInUsersHomeDirectory, setApplicationPropertyFileName, setBackgroundForGUI, setInternationalizedFontsForGUI, setPreferredLookAndFeelForPlatform, storeProperties, takeSnapShot
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
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
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
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
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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getFont, postEvent
protected JCheckBox caseSensitiveCodeMeaningValidationCheckBox
protected static String caseSensitiveCodeMeaningValidationLabelText
protected static String configureButtonLabel
protected static String configureButtonToolTipText
protected DatabaseTreeRecord[] currentDatabaseTreeRecordSelections
protected QueryInformationModel currentRemoteQueryInformationModel
protected QueryTreeBrowser currentRemoteQueryTreeBrowser
protected SafeCursorChanger cursorChanger
protected JCheckBox deidentifyWhenSendingToRegistryCheckBox
protected static String deidentifyWhenSendingToRegistryLabelText
protected FTPApplicationProperties ftpApplicationProperties
protected FTPRemoteHostInformation ftpRemoteHostInformation
protected static String importButtonLabel
protected static String importButtonToolTipText
protected String importDirectoryPath
protected static String localDatabaseName
protected static String localDatabaseServerName
protected static String logButtonLabel
protected static String logButtonToolTipText
protected MessageLogger logger
protected static int loggerDialogHeightWanted
protected static int loggertDialogWidthWanted
protected static String loggerTitleMessage
protected static String makeSRButtonLabel
protected static String makeSRButtonToolTipText
protected NetworkApplicationInformation networkApplicationInformation
protected NetworkApplicationProperties networkApplicationProperties
protected String ourCalledAETitle
protected JCheckBox processOnlyDoseSeriesRecordCheckBox
protected static String processOnlyDoseSeriesRecordLabelText
protected SafeProgressBarUpdaterThread progressBarUpdater
protected static String propertiesFileName
protected static String propertyName_CurrentlySelectedDoseRegistry
protected static String propertyName_DicomCurrentlySelectedQueryTargetAE
protected static String propertyName_DicomCurrentlySelectedStorageTargetAE
protected static String purgeButtonLabel
protected static String purgeButtonToolTipText
protected static String queryButtonLabel
protected static String queryButtonToolTipText
protected JTextField queryFilterPatientIDTextField
protected JTextField queryFilterPatientNameTextField
protected JTextField queryFilterStudyDateTextField
protected static String queryIntroductionLabelText
protected static String queryPatientIDLabelText
protected static String queryPatientIDToolTipText
protected static String queryPatientNameLabelText
protected static String queryPatientNameToolTipText
protected static String queryStudyDateLabelText
protected static String queryStudyDateToolTipText
protected static String registryButtonLabel
protected static String registryButtonToolTipText
protected JPanel remoteQueryRetrievePanel
protected static String reportButtonLabel
protected static String reportButtonToolTipText
protected static int reportDialogHeightWanted
protected static int reportDialogWidthWanted
protected JCheckBox reportTabularLayoutCheckBox
protected static String reportTabularLayoutLabelText
protected static String reportTitleMessage
protected static String retrieveButtonLabel
protected static String retrieveButtonToolTipText
protected JCheckBox retrieveOnlyDoseSeriesRecordCheckBox
protected static String retrieveOnlyDoseSeriesRecordLabelText
protected File savedImagesFolder
protected static String sendButtonLabel
protected static String sendButtonToolTipText
protected JCheckBox showDetailedLogCheckBox
protected static String showDetailedLogLabelText
protected JCheckBox showOnlyDoseSummaryCheckBox
protected static String showOnlyDoseSummaryLabelText
protected DatabaseInformationModel srcDatabase
protected JPanel srcDatabasePanel
protected StorageSOPClassSCPDispatcher storageSOPClassSCPDispatcher
protected static int textFieldLengthForQueryPatientID
protected static int textFieldLengthForQueryPatientName
protected static int textFieldLengthForQueryStudyDate
protected static String validateButtonLabel
protected static String validateButtonToolTipText
protected static DicomSRValidator validator
protected static int validatorFrameHeightWanted
protected static int validatorFrameWidthWanted
protected static String viewButtonLabel
protected static String viewButtonToolTipText
protected static int viewerFrameHeightWanted
protected static int viewerFrameWidthWanted
public DoseUtility(String title) throws DicomException, IOException
DicomException
IOException
protected void activateStorageSCP() throws DicomException, IOException
Start DICOM storage listener for populating source database.
DicomException
IOException
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.
DicomException
protected Vector<String> deidentifyFiles(Vector<String> paths) throws DicomException, IOException
DicomException
IOException
public static ArrayList<QueryTreeRecord> findCTSeriesAndRelatedRecordsInQueryTree(QueryTreeRecord record, ArrayList<QueryTreeRecord> records)
public static ArrayList<QueryTreeRecord> findDoseSeriesRecordsInQueryTree(QueryTreeRecord record, ArrayList<QueryTreeRecord> records)
protected void generateDoseReportInformation(DatabaseTreeRecord[] databaseSelections, JEditorPane reportPane, StringBuffer textBuffer, boolean doHTML, MessageLogger logger, SafeProgressBarUpdaterThread progressBarUpdater, int done, int maximum) throws DicomException, IOException
DicomException
IOException
protected void generateDoseReportInformation(DatabaseTreeRecord databaseSelection, JEditorPane reportPane, StringBuffer textBuffer, boolean doHTML, MessageLogger logger, SafeProgressBarUpdaterThread progressBarUpdater, int done, int maximum) throws DicomException, IOException
DicomException
IOException
protected void generateDoseSR(DatabaseInformationModel srcDatabase, DatabaseTreeRecord[] databaseSelections, MessageLogger logger, SafeProgressBarUpdaterThread progressBarUpdater, int done, int maximum) throws DicomException, IOException
DicomException
IOException
protected void generateDoseSR(DatabaseInformationModel srcDatabase, DatabaseTreeRecord databaseSelection, MessageLogger logger, SafeProgressBarUpdaterThread progressBarUpdater, int done, int maximum) throws DicomException, IOException
DicomException
IOException
protected Vector getCurrentSourceFilePathSelections()
protected static String getOriginDescriptionForLog(CTDose ctDose, DatabaseInformationModel srcDatabase) throws DicomException
DicomException
public static String getQueryRetrieveAEFromIdentifier(AttributeList identifier, QueryInformationModel queryInformationModel)
public static String getQueryRetrieveLevel(AttributeList identifier, Attribute uniqueKey)
protected static String getSRDescriptionForLog(AttributeList list)
protected static void importFileIntoDatabase(DatabaseInformationModel database, String dicomFileName, String fileRefererenceType) throws FileNotFoundException, IOException, DicomException
public static void main(String[] arg)
The method to invoke the application.
arg
- noneprotected void performRetrieve(AttributeList uniqueKeys, String selectionLevel, String retrieveAE)
protected void purgeFilesAndDatabaseInformation(DatabaseTreeRecord[] databaseSelections, MessageLogger logger, SafeProgressBarUpdaterThread progressBarUpdater, int done, int maximum) throws DicomException, IOException
DicomException
IOException
protected void purgeFilesAndDatabaseInformation(DatabaseTreeRecord databaseSelection, MessageLogger logger, SafeProgressBarUpdaterThread progressBarUpdater, int done, int maximum) throws DicomException, IOException
DicomException
IOException
public static void recurseThroughChildrenGatheringFileNamesOfDoseFiles(DatabaseTreeRecord r, Vector names, boolean onlyDoseFiles, 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.
r
- the current DatabaseTreeRecord to processnames
- the file names (paths) to add toonlyDoseFiles
- if true, only process dose-related files (not the reconstructed image files)manufacturer
- passed from series level down to instancepublic static void recurseThroughChildrenGatheringFileNamesOfSRFiles(DatabaseTreeRecord r, 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.
r
- the current DatabaseTreeRecord to processnames
- the file names (paths) to add toprotected void setCurrentRemoteQueryInformationModel(String remoteAEForQuery)