com.pixelmed.dicom
Class DicomDirectory

java.lang.Object
  extended by com.pixelmed.dicom.DicomDirectory
All Implemented Interfaces:
TreeModel

public class DicomDirectory
extends Object
implements TreeModel


Field Summary
protected  HashMap mapOfDirectoryRecordsToSequenceItems
           
 
Constructor Summary
DicomDirectory()
          Create an empty DicomDirectory
DicomDirectory(AttributeList list)
          Create a DicomDirectory from a DICOMDIR instance already read as an AttributeList
DicomDirectory(AttributeList list, boolean doConcatenations)
          Create a DicomDirectory from a DICOMDIR instance already read as an AttributeList, optionally creating synthetic concatenation records
DicomDirectory(File rootDirectoryName, String[] fileNames)
          Create a new DicomDirectory from a list of existing DICOM files contained within a specified root directory.
DicomDirectory(String[] fileNames)
          Create a new DicomDirectory from a list of existing DICOM files contained within the current working directory.
 
Method Summary
 void addAttributeListFromDicomFileToDirectory(AttributeList list, String fileName)
           
 void addTreeModelListener(TreeModelListener tml)
           
static Vector findAllContainedReferencedFileNames(DicomDirectoryRecord record, String parentFilePath)
          Get all the referenced file names at or below the specified directory record.
 Vector findAllContainedReferencedFileNames(String parentFilePath)
          Get all the referenced file names in the entire directory.
static HashMap findAllContainedReferencedFileNamesAndTheirRecords(DicomDirectoryRecord record, String parentFilePath)
          Get all the referenced file names at or below the specified directory record, and a map to the directory records that reference them.
 HashMap findAllContainedReferencedFileNamesAndTheirRecords(String parentFilePath)
          Get all the referenced file names in the entire directory, and a map to the directory records that reference them.
 Vector findAllImagesForFrameOfReference(String frameOfReferenceUID)
          Get the attribute lists from all the IMAGE level directory records which have a particular FrameOfReferenceUID.
 Object getChild(Object node, int index)
           
 int getChildCount(Object parent)
           
 int getIndexOfChild(Object parent, Object child)
           
 Map getMapOfSOPInstanceUIDToReferencedFileName(String parentFilePath)
           
 String getReferencedFileNameForSOPInstanceUID(String sopInstanceUID)
           
 Object getRoot()
           
 boolean isLeaf(Object node)
           
static void main(String[] arg)
          Read DICOM files and create a DICOMDIR.
 void readDicomFileAndAddToDirectory(File rootDirectoryName, String fileName)
           
 void readDicomFileAndAddToDirectory(String fileName)
           
 void removeTreeModelListener(TreeModelListener tml)
           
 String toString()
           
 void valueForPathChanged(TreePath path, Object newValue)
           
 void write(String name)
          Write the directory to the named file.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

mapOfDirectoryRecordsToSequenceItems

protected HashMap mapOfDirectoryRecordsToSequenceItems
Constructor Detail

DicomDirectory

public DicomDirectory(String[] fileNames)

Create a new DicomDirectory from a list of existing DICOM files contained within the current working directory.

The filenames must be relative to the current working directory, and not absolute paths, since the full name will be used in the DICOMDIR records.

Filenames are NOT checked for compliance with restrictions on length and character set.

Parameters:
fileNames -

DicomDirectory

public DicomDirectory(File rootDirectoryName,
                      String[] fileNames)

Create a new DicomDirectory from a list of existing DICOM files contained within a specified root directory.

The specified root directory will NOT be included in the referenced file name in the DICOMDIR records.

Filenames are NOT checked for compliance with restrictions on length and character set.

Parameters:
rootDirectoryName -
fileNames -

DicomDirectory

public DicomDirectory()
Create an empty DicomDirectory


DicomDirectory

public DicomDirectory(AttributeList list)
               throws DicomException
Create a DicomDirectory from a DICOMDIR instance already read as an AttributeList

Parameters:
list -
Throws:
DicomException

DicomDirectory

public DicomDirectory(AttributeList list,
                      boolean doConcatenations)
               throws DicomException
Create a DicomDirectory from a DICOMDIR instance already read as an AttributeList, optionally creating synthetic concatenation records

Parameters:
list -
doConcatenations -
Throws:
DicomException
Method Detail

getChild

public Object getChild(Object node,
                       int index)
Specified by:
getChild in interface TreeModel
Parameters:
node -
index -

getIndexOfChild

public int getIndexOfChild(Object parent,
                           Object child)
Specified by:
getIndexOfChild in interface TreeModel
Parameters:
parent -
child -

getRoot

public Object getRoot()
Specified by:
getRoot in interface TreeModel

getChildCount

public int getChildCount(Object parent)
Specified by:
getChildCount in interface TreeModel
Parameters:
parent -

isLeaf

public boolean isLeaf(Object node)
Specified by:
isLeaf in interface TreeModel
Parameters:
node -

valueForPathChanged

public void valueForPathChanged(TreePath path,
                                Object newValue)
Specified by:
valueForPathChanged in interface TreeModel
Parameters:
path -
newValue -

addTreeModelListener

public void addTreeModelListener(TreeModelListener tml)
Specified by:
addTreeModelListener in interface TreeModel
Parameters:
tml -

removeTreeModelListener

public void removeTreeModelListener(TreeModelListener tml)
Specified by:
removeTreeModelListener in interface TreeModel
Parameters:
tml -

readDicomFileAndAddToDirectory

public void readDicomFileAndAddToDirectory(File rootDirectoryName,
                                           String fileName)
                                    throws DicomException,
                                           IOException
Parameters:
rootDirectoryName -
fileName -
Throws:
DicomException
IOException

readDicomFileAndAddToDirectory

public void readDicomFileAndAddToDirectory(String fileName)
                                    throws DicomException,
                                           IOException
Parameters:
fileName -
Throws:
DicomException
IOException

addAttributeListFromDicomFileToDirectory

public void addAttributeListFromDicomFileToDirectory(AttributeList list,
                                                     String fileName)
                                              throws DicomException,
                                                     IOException
Parameters:
list -
fileName -
Throws:
DicomException
IOException

write

public void write(String name)
           throws IOException,
                  DicomException

Write the directory to the named file.

Parameters:
name - the file name to write to
Throws:
IOException
DicomException

toString

public String toString()
Overrides:
toString in class Object

getMapOfSOPInstanceUIDToReferencedFileName

public Map getMapOfSOPInstanceUIDToReferencedFileName(String parentFilePath)
Parameters:
parentFilePath -

getReferencedFileNameForSOPInstanceUID

public String getReferencedFileNameForSOPInstanceUID(String sopInstanceUID)
                                              throws DicomException
Parameters:
sopInstanceUID -
Throws:
DicomException

findAllContainedReferencedFileNamesAndTheirRecords

public static HashMap findAllContainedReferencedFileNamesAndTheirRecords(DicomDirectoryRecord record,
                                                                         String parentFilePath)

Get all the referenced file names at or below the specified directory record, and a map to the directory records that reference them.

Parameters:
record -
parentFilePath - the folder in which the DICOMDIR lives (i.e., the base for contained references)
Returns:
a java.util.HashMap whose keys are string file names fully qualified by the specified parent, mapped to DicomDirectoryRecords

findAllContainedReferencedFileNamesAndTheirRecords

public HashMap findAllContainedReferencedFileNamesAndTheirRecords(String parentFilePath)

Get all the referenced file names in the entire directory, and a map to the directory records that reference them.

Parameters:
parentFilePath - the folder in which the DICOMDIR lives (i.e., the base for contained references)
Returns:
a java.util.HashMap whose keys are string file names fully qualified by the specified parent, mapped to DicomDirectoryRecords

findAllContainedReferencedFileNames

public static Vector findAllContainedReferencedFileNames(DicomDirectoryRecord record,
                                                         String parentFilePath)

Get all the referenced file names at or below the specified directory record.

Parameters:
record -
parentFilePath - the folder in which the DICOMDIR lives (i.e., the base for contained references)
Returns:
a java.util.Vector of string file names fully qualified by the specified parent

findAllContainedReferencedFileNames

public Vector findAllContainedReferencedFileNames(String parentFilePath)

Get all the referenced file names in the entire directory.

Parameters:
parentFilePath - the folder in which the DICOMDIR lives (i.e., the base for contained references)
Returns:
a java.util.Vector of string file names fully qualified by the specified parent

findAllImagesForFrameOfReference

public Vector findAllImagesForFrameOfReference(String frameOfReferenceUID)

Get the attribute lists from all the IMAGE level directory records which have a particular FrameOfReferenceUID.

Useful for finding potential localizers and orthogonal images.

Note that even though FrameOfReference is a series level entity, in the CT/MR profiles it is specified at the IMAGE directory record level.

Parameters:
frameOfReferenceUID -
Returns:
a java.util.Vector of com.pixelmed.dicom.AttributeList

main

public static void main(String[] arg)

Read DICOM files and create a DICOMDIR.

Parameters:
arg - optionally the folder in which the files and DICOMDIR are rooted, the filename of the DICOMDIR to be created, then the filenames of the DICOM files to include