com.pixelmed.dicom
Class MediaImporter

java.lang.Object
  extended by com.pixelmed.dicom.MediaImporter
Direct Known Subclasses:
AddHierarchicalEvidenceSequencetoStructuredReports.OurMediaImporter, CheckAllUIDReferencesResolve.OurMediaImporter, CopyOnlyHeadOfMultipleStructuredReportsAndReferences.OurMediaImporter, DatabaseMediaImporter, DecompressDicomFiles, DicomCleaner.OurMediaImporter, DoseUtility.OurMediaImporter, DownloadOrTransmit.OurMediaImporter, InsertCodeSequence.OurMediaImporter, MergeCompositeContext.OurFirstPassMediaImporter, MergeCompositeContext.OurSecondPassMediaImporter, NetworkMediaImporter, RemapFrameOfReferenceUIDs.OurMediaImporter, RemapUIDs.OurMediaImporter, RotateFlipSetOfImages.OurMediaImporter, TranslateImagePositionPatient.OurMediaImporter, UIDMapByMatchingPixelData.OurMediaImporter

public class MediaImporter
extends Object

This class is designed to support the importation of DICOM files from interchange media (such as CDs and DVDs).

It supports locating a DICOMDIR file and iterating through the list of referenced files.

The actual work (e.g. to import the file into a database or similar) is performed by the implementation of the doSomethingWithDicomFileOnMedia method in a sub-class of this class.

See Also:
DatabaseMediaImporter

Nested Class Summary
static class MediaImporter.MediaImporterWithFileChooserDialogThread
          A class that implements Runnable so that it can be invoked by EventQueue.invokeAndWait().
 
Field Summary
protected  MessageLogger logger
           
protected  String mediaDirectoryPath
           
protected  JProgressBar progressBar
           
protected  SafeProgressBarUpdaterThread progressBarUpdater
           
 
Constructor Summary
MediaImporter(MessageLogger logger)
          Construct an importer that will looked for files in the system default path.
MediaImporter(MessageLogger logger, JProgressBar progressBar)
          Construct an importer that will looked for files in the system default path.
MediaImporter(String mediaDirectoryPath, MessageLogger logger)
          Construct an importer that will looked for files in the specified path.
MediaImporter(String mediaDirectoryPath, MessageLogger logger, JProgressBar progressBar)
          Construct an importer that will looked for files in the specified path.
 
Method Summary
 void choosePathAndImportDicomFiles()
          Pop up a file chooser dialog that allows the user to specify the location of the DICOMDIR file, or the parent folder (for example, the drive or volume) in which the DICOMDIR file is located, and then import the referenced files.
 void choosePathAndImportDicomFiles(Component parent)
          Pop up a file chooser dialog that allows the user to specify the location of the DICOMDIR file, or the parent folder (for example, the drive or volume) in which the DICOMDIR file is located, and then import the referenced files.
protected  void doSomethingWithDicomFileOnMedia(String mediaFileName)
          Do something with the referenced DICOM file that has been encountered.
 String getDirectory()
           
 void importDicomFiles(String pathName)
          Read a DICOMDIR file, and then import any DICOM files that it references.
protected  boolean isOKToImport(String sopClassUID, String transferSyntaxUID)
          Check for valid information, and that the file is not compressed or not a suitable storage object for import.
protected  void logLn(String s)
           
static void main(String[] arg)
          Check that DICOM files are present and importable.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mediaDirectoryPath

protected String mediaDirectoryPath

logger

protected MessageLogger logger

progressBar

protected JProgressBar progressBar

progressBarUpdater

protected SafeProgressBarUpdaterThread progressBarUpdater
Constructor Detail

MediaImporter

public MediaImporter(MessageLogger logger)

Construct an importer that will looked for files in the system default path.

Parameters:
logger - where to send status updates as files are read (may be null for no logging)

MediaImporter

public MediaImporter(MessageLogger logger,
                     JProgressBar progressBar)

Construct an importer that will looked for files in the system default path.

Parameters:
logger - where to send status updates as files are read (may be null for no logging)
progressBar - where to update progress as files are read (may be null for no progress bar)

MediaImporter

public MediaImporter(String mediaDirectoryPath,
                     MessageLogger logger)

Construct an importer that will looked for files in the specified path.

Parameters:
mediaDirectoryPath - where to begin looking for the DICOMDIR and DICOM files
logger - where to send status updates as files are read (may be null for no logging)

MediaImporter

public MediaImporter(String mediaDirectoryPath,
                     MessageLogger logger,
                     JProgressBar progressBar)

Construct an importer that will looked for files in the specified path.

Parameters:
mediaDirectoryPath - where to begin looking for the DICOMDIR and DICOM files
logger - where to send status updates as files are read (may be null for no logging)
progressBar - where to update progress as files are read (may be null for no progress bar)
Method Detail

logLn

protected void logLn(String s)
Parameters:
s - message to log

choosePathAndImportDicomFiles

public void choosePathAndImportDicomFiles(Component parent)
                                   throws IOException,
                                          DicomException

Pop up a file chooser dialog that allows the user to specify the location of the DICOMDIR file, or the parent folder (for example, the drive or volume) in which the DICOMDIR file is located, and then import the referenced files.

Will be positioned relative to the parent component (for example, centered over the component) if specified, else placed in a look-and-feel-dependent position such as the center of the screen if null.

Can only be invoked on the AWT Event Dispatch Thread.

Parameters:
parent - the parent component of the dialog; can be null
Throws:
IOException - thrown if the DICOMDIR file (but not any referenced files) cannot be opened or read
DicomException - thrown if the DICOMDIR file cannot be parsed

choosePathAndImportDicomFiles

public void choosePathAndImportDicomFiles()
                                   throws IOException,
                                          DicomException

Pop up a file chooser dialog that allows the user to specify the location of the DICOMDIR file, or the parent folder (for example, the drive or volume) in which the DICOMDIR file is located, and then import the referenced files.

Will be placed in a look-and-feel-dependent position such as the center of the screen.

Can only be invoked on the AWT Event Dispatch Thread.

Throws:
IOException - thrown if the DICOMDIR file (but not any referenced files) cannot be opened or read
DicomException - thrown if the DICOMDIR file cannot be parsed

isOKToImport

protected boolean isOKToImport(String sopClassUID,
                               String transferSyntaxUID)

Check for valid information, and that the file is not compressed or not a suitable storage object for import.

Parameters:
sopClassUID -
transferSyntaxUID -

importDicomFiles

public void importDicomFiles(String pathName)
                      throws IOException,
                             DicomException

Read a DICOMDIR file, and then import any DICOM files that it references.

How errors are handled during the importation of the referenced files depends on the implementation of doSomethingWithDicomFileOnMedia in the sub-class. Any such errors will not interrupt the execution of this method (i.e., will not prevent the importation of the remaining files).

Parameters:
pathName - the path name to a DICOMDIR file or folder containing a DICOMDIR file
Throws:
IOException - thrown if the DICOMDIR file (but not any referenced files) cannot be opened or read
DicomException - thrown if the DICOMDIR file cannot be parsed

doSomethingWithDicomFileOnMedia

protected void doSomethingWithDicomFileOnMedia(String mediaFileName)

Do something with the referenced DICOM file that has been encountered.

This method needs to be implemented in a sub-class to do anything useful. The default method does nothing.

This method does not define any exceptions and hence must handle any errors locally.

Parameters:
mediaFileName - the fully qualified path name to a DICOM file

getDirectory

public String getDirectory()
Returns:
the directory last used to perform an import

main

public static void main(String[] arg)

Check that DICOM files are present and importable.

Parameters:
arg - array of one string - the path to the media or folder containing the files to check are importable (in which case will write messages to stderr), or else will pop up a file chooser dialog (and write messages to a dialog box)