Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes

mitk::PACSPlugin Class Reference
[IO Classes]

Interface for minimal PACS communicationDefines some basic function for communication with a PACS. Currently only really implemented for the CHILI Workstation (see CHILIPlugin), but should be basic enough to work with differnt systems, too. More...

#include <mitkPACSPlugin.h>

List of all members.

Classes

class  DocumentInformation
struct  PACSPluginCapability
class  PatientInformation
class  SeriesInformation
class  StudyInformation

Public Types

typedef std::list
< PatientInformation
PatientInformationList
typedef std::list
< StudyInformation
StudyInformationList
typedef std::list
< SeriesInformation
SeriesInformationList
typedef std::list
< DocumentInformation
DocumentInformationList
typedef PACSPlugin Self
typedef itk::Object Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer
< const Self
ConstPointer

Public Member Functions

virtual const char * GetClassName () const
virtual PACSPluginCapability GetPluginCapabilities ()
 Information about capabilities of the current implementation.
virtual PatientInformationList GetPatientInformationList ()
 Get a list of all known patients.
virtual StudyInformationList GetStudyInformationList (const PatientInformation &patient)
 Get a list of all studies for a patient.
virtual SeriesInformationList GetSeriesInformationList (const std::string &studyInstanceUID="")
 Get a list of all series for a study instance UID.
virtual DocumentInformationList GetDocumentInformationList (const std::string &seriesInstanceUID="")
 Get a list of all non-image documents for a series instance UID.
virtual PatientInformation GetPatientInformation (const std::string &seriesInstanceUID="")
 Patient information for a given series instance UID.
virtual StudyInformation GetStudyInformation (const std::string &seriesInstanceUID="")
 Study information for a given series instance UID.
virtual SeriesInformation GetSeriesInformation (const std::string &seriesInstanceUID="")
 Series information for a given series instance UID.
virtual DocumentInformation GetDocumentInformation (const std::string &seriesInstanceUID, unsigned int instanceNumber)
 Document information for a given series instance UID and a document instance number.
virtual unsigned int GetLightboxCount ()
 Number of image preview boxes (lightboxes)
virtual unsigned int GetActiveLightbox ()
 Return the index of the active image preview box (lightbox)
virtual void SetReaderType (unsigned int readerType=0)
virtual void AbortPACSImport ()
virtual std::vector
< DataNode::Pointer
LoadImagesFromLightbox (unsigned int lightboxIndex=0)
 Load all images from the given lightbox.
virtual std::vector
< DataNode::Pointer
LoadFromSeries (const std::string &seriesInstanceUID)
 Load all objects from a given series instance UID.
virtual std::vector
< DataNode::Pointer
LoadImagesFromSeries (const std::string &seriesInstanceUID)
 Load all image objects from a given series instance UID.
virtual std::vector
< mitk::DataNode::Pointer
LoadImagesFromSeries (std::vector< std::string > seriesInstanceUIDs)
virtual std::vector
< DataNode::Pointer
LoadTextsFromSeries (const std::string &seriesInstanceUID)
 Load all objects from a given series instance UID.
virtual DataNode::Pointer LoadSingleText (const std::string &seriesInstanceUID, unsigned int instanceNumber)
 Load a given document object for a series instance UID and a document instance number.
virtual void DownloadSingleFile (const std::string &seriesInstanceUID, unsigned int instanceNumber, const std::string &filename)
 Load a given document object for a series instance UID and a document instance number In contrast to LoadSingleText this method will just create a new file on the local file system.
virtual void SaveAsNewSeries (DataStorage::SetOfObjects::ConstPointer inputNodes, const std::string &studyInstanceUID, int seriesNumber, const std::string &seriesDescription)
 Save given data as a new series.
virtual void SaveToSeries (DataStorage::SetOfObjects::ConstPointer inputNodes, const std::string &seriesInstanceUID, bool overwriteExistingSeries)
 Save given data into an existing series.
virtual void UploadFileAsNewSeries (const std::string &filename, const std::string &mimeType, const std::string &studyInstanceUID, int seriesNumber, const std::string &seriesDescription)
 Upload a file as a new series.
virtual void UploadFileToSeries (const std::string &filename, const std::string &filebasename, const std::string &mimeType, const std::string &seriesInstanceUID, bool overwriteExistingSeries)
 Upload file into an existing series.
virtual std::string GuessMIMEType (const std::string &filename)

Static Public Member Functions

static PACSPluginGetInstance (bool destroyInstance=false)
 Return a singleton mitk::PACSPlugin-Instance.

Protected Member Functions

 PACSPlugin ()
virtual ~PACSPlugin ()

Static Protected Member Functions

static Pointer New ()

Protected Attributes

int m_ReaderType

Detailed Description

Interface for minimal PACS communication

Defines some basic function for communication with a PACS. Currently only really implemented for the CHILI Workstation (see CHILIPlugin), but should be basic enough to work with differnt systems, too.

Documentation

Definition at line 37 of file mitkPACSPlugin.h.


Member Typedef Documentation

typedef itk::SmartPointer<const Self> mitk::PACSPlugin::ConstPointer

Definition at line 127 of file mitkPACSPlugin.h.

There can be lots of texts to one series, so we need a list.

Definition at line 125 of file mitkPACSPlugin.h.

Definition at line 62 of file mitkPACSPlugin.h.

typedef itk::SmartPointer<Self> mitk::PACSPlugin::Pointer

Definition at line 127 of file mitkPACSPlugin.h.

Definition at line 127 of file mitkPACSPlugin.h.

Definition at line 106 of file mitkPACSPlugin.h.

Definition at line 78 of file mitkPACSPlugin.h.

typedef itk::Object mitk::PACSPlugin::Superclass

Definition at line 127 of file mitkPACSPlugin.h.


Constructor & Destructor Documentation

mitk::PACSPlugin::PACSPlugin (  ) [protected]

Definition at line 35 of file mitkPACSPlugin.cpp.

: m_ReaderType(0)
{
}
mitk::PACSPlugin::~PACSPlugin (  ) [protected, virtual]

Definition at line 41 of file mitkPACSPlugin.cpp.

{
}

Member Function Documentation

void mitk::PACSPlugin::AbortPACSImport (  ) [virtual]

Definition at line 139 of file mitkPACSPlugin.cpp.

{
}
void mitk::PACSPlugin::DownloadSingleFile ( const std::string &  seriesInstanceUID,
unsigned int  instanceNumber,
const std::string &  filename 
) [virtual]

Load a given document object for a series instance UID and a document instance number In contrast to LoadSingleText this method will just create a new file on the local file system.

Definition at line 293 of file mitkPACSPlugin.cpp.

{
}
unsigned int mitk::PACSPlugin::GetActiveLightbox (  ) [virtual]

Return the index of the active image preview box (lightbox)

If the specific PACS implementation supports a kind of lightbox concept (a preview of all images from a selected series), then this function should return the index of the currently active lightbox (starting from 0).

If no active lightbox exists (perhaps due to lack of such a concept), it is the calling object's duty to check if the returned index is larger than the number of existing lightboxes reported by GetLightboxCount().

Definition at line 127 of file mitkPACSPlugin.cpp.

{
  return (unsigned int)-1; // user should check GetLightboxCount() first, unsensible values might tell him that his request is not sensible
}
virtual const char* mitk::PACSPlugin::GetClassName (  ) const [virtual]
mitk::PACSPlugin::DocumentInformation mitk::PACSPlugin::GetDocumentInformation ( const std::string &  seriesInstanceUID,
unsigned int  instanceNumber 
) [virtual]

Document information for a given series instance UID and a document instance number.

Definition at line 113 of file mitkPACSPlugin.cpp.

{
  DocumentInformation emptyResult;
  return emptyResult;
}
mitk::PACSPlugin::DocumentInformationList mitk::PACSPlugin::GetDocumentInformationList ( const std::string &  seriesInstanceUID = "" ) [virtual]

Get a list of all non-image documents for a series instance UID.

Definition at line 80 of file mitkPACSPlugin.cpp.

{
  DocumentInformationList emptyResult;
  emptyResult.clear();
  return emptyResult;
}
mitk::PACSPlugin * mitk::PACSPlugin::GetInstance ( bool  destroyInstance = false ) [static]

Return a singleton mitk::PACSPlugin-Instance.

Parameters:
destroyInstanceTell the specific implementation it should free/delete itself.
Warning:
Application should not use the instance after calling GetInstance(true);

Definition at line 22 of file mitkPACSPlugin.cpp.

References New().

{
  static mitk::PACSPlugin::Pointer s_Instance = mitk::PACSPlugin::New();

  if( destroyInstance )
  {
    s_Instance = NULL;
  }

  return s_Instance;
}
unsigned int mitk::PACSPlugin::GetLightboxCount (  ) [virtual]

Number of image preview boxes (lightboxes)

If the specific PACS implementation supports a kind of lightbox concept (a preview of all images from a selected series), then this function should return how many of such lightboxes there are.

Definition at line 121 of file mitkPACSPlugin.cpp.

{
  return 0;
}
mitk::PACSPlugin::PatientInformation mitk::PACSPlugin::GetPatientInformation ( const std::string &  seriesInstanceUID = "" ) [virtual]

Patient information for a given series instance UID.

Definition at line 88 of file mitkPACSPlugin.cpp.

References mitk::PACSPlugin::PatientInformation::PatientComments, and mitk::PACSPlugin::PatientInformation::PatientsSex.

{
  PatientInformation emptyResult;
  emptyResult.PatientsSex = "O";
  emptyResult.PatientComments = "No PACS connectivity implemented or configured. Cannot query patient";
  return emptyResult;
}
mitk::PACSPlugin::PatientInformationList mitk::PACSPlugin::GetPatientInformationList (  ) [virtual]

Get a list of all known patients.

Definition at line 56 of file mitkPACSPlugin.cpp.

{
  PatientInformationList emptyResult;
  emptyResult.clear();
  return emptyResult;
}
mitk::PACSPlugin::PACSPluginCapability mitk::PACSPlugin::GetPluginCapabilities (  ) [virtual]

Information about capabilities of the current implementation.

Definition at line 46 of file mitkPACSPlugin.cpp.

References mitk::PACSPlugin::PACSPluginCapability::HasLoadCapability, mitk::PACSPlugin::PACSPluginCapability::HasSaveCapability, and mitk::PACSPlugin::PACSPluginCapability::IsPACSFunctional.

{
  PACSPluginCapability result;
  result.IsPACSFunctional = false;
  result.HasLoadCapability = false;
  result.HasSaveCapability = false;
  return result;
}
mitk::PACSPlugin::SeriesInformation mitk::PACSPlugin::GetSeriesInformation ( const std::string &  seriesInstanceUID = "" ) [virtual]

Series information for a given series instance UID.

Definition at line 105 of file mitkPACSPlugin.cpp.

References mitk::PACSPlugin::SeriesInformation::SeriesDescription.

{
  SeriesInformation emptyResult;
  emptyResult.SeriesDescription = "No PACS connectivity implemented or configured. Cannot query series.";
  return emptyResult;
}
mitk::PACSPlugin::SeriesInformationList mitk::PACSPlugin::GetSeriesInformationList ( const std::string &  studyInstanceUID = "" ) [virtual]

Get a list of all series for a study instance UID.

Definition at line 72 of file mitkPACSPlugin.cpp.

{
  SeriesInformationList emptyResult;
  emptyResult.clear();
  return emptyResult;
}
mitk::PACSPlugin::StudyInformation mitk::PACSPlugin::GetStudyInformation ( const std::string &  seriesInstanceUID = "" ) [virtual]

Study information for a given series instance UID.

Definition at line 97 of file mitkPACSPlugin.cpp.

References mitk::PACSPlugin::StudyInformation::StudyDescription.

{
  StudyInformation emptyResult;
  emptyResult.StudyDescription  = "No PACS connectivity implemented or configured. Cannot query study";
  return emptyResult;
}
mitk::PACSPlugin::StudyInformationList mitk::PACSPlugin::GetStudyInformationList ( const PatientInformation patient ) [virtual]

Get a list of all studies for a patient.

Definition at line 64 of file mitkPACSPlugin.cpp.

{
  StudyInformationList emptyResult;
  emptyResult.clear();
  return emptyResult;
}
std::string mitk::PACSPlugin::GuessMIMEType ( const std::string &  filename ) [virtual]

Definition at line 220 of file mitkPACSPlugin.cpp.

{
  std::ifstream file( filename.c_str() );
  if (!file)
  {
    // cannot open file
    return std::string("");
  }

  const unsigned int maxLength = 8;
  unsigned char line[ maxLength];
  file.getline( reinterpret_cast<char*>(line), maxLength );
  file.close();

  std::string firstLine( reinterpret_cast<char*>(line) );

  if ( firstLine.substr( 1, 3 ) == "PDF" )
  {
    return std::string("application/pdf");
  }

  if ( firstLine.substr( 0, 5 ) == "{\rtf" )
  {
    return std::string("text/richtext");
  }

  if ( firstLine.substr( 0, 2 ) == "PK" )
  {
    return std::string("application/zip");
  }

  if ( (line[0] == 0xFF) && (line[1] == 0xD8) )
  {
    return std::string("image/jpeg");
  }

  if ( (line[0] == 0x89) &&
       (line[1] == 0x50) &&
       (line[2] == 0x4E) &&
       (line[3] == 0x47) &&
       (line[4] == 0x0D) &&
       (line[5] == 0x0A) &&
       (line[6] == 0x1A) &&
       (line[7] == 0x0A)
     )
  {
    return std::string("image/png");
  }

  if ( (line[0] == 0x4D) && (line[1] == 0x5A) )
  {
    //return std::string("application/octet-stream");
    return std::string("Windows EXE");
  }

  if ( ( filename.rfind( ".stl" ) == filename.length() - 4 ) ||
       ( filename.rfind( ".STL" ) == filename.length() - 4 ) )
  {
    // this is a guess. don't know a good way to test for STL.
    return std::string("application/sla");
  }

  if ( ( filename.rfind( ".txt" ) == filename.length() - 4 ) ||
       ( filename.rfind( ".TXT" ) == filename.length() - 4 ) )
  {
    // this is a guess. don't know a good way to test for STL.
    return std::string("text/plain");
  }

  return std::string("");
}
std::vector< mitk::DataNode::Pointer > mitk::PACSPlugin::LoadFromSeries ( const std::string &  seriesInstanceUID ) [virtual]

Load all objects from a given series instance UID.

Definition at line 152 of file mitkPACSPlugin.cpp.

{
  std::vector<DataNode::Pointer> resultVector = this->LoadImagesFromSeries( seriesInstanceUID );
  std::vector<DataNode::Pointer> secondResultVector = this->LoadTextsFromSeries( seriesInstanceUID );
  resultVector.insert( resultVector.end(), secondResultVector.begin(), secondResultVector.end() );
  return resultVector;
}
std::vector< mitk::DataNode::Pointer > mitk::PACSPlugin::LoadImagesFromLightbox ( unsigned int  lightboxIndex = 0 ) [virtual]

Load all images from the given lightbox.

Definition at line 144 of file mitkPACSPlugin.cpp.

{
  std::vector<DataNode::Pointer> emptyVector;
  emptyVector.clear();
  return emptyVector;
}
std::vector< mitk::DataNode::Pointer > mitk::PACSPlugin::LoadImagesFromSeries ( const std::string &  seriesInstanceUID ) [virtual]

Load all image objects from a given series instance UID.

Definition at line 161 of file mitkPACSPlugin.cpp.

{
  std::vector<DataNode::Pointer> emptyVector;
  emptyVector.clear();
  return emptyVector;
}
std::vector< mitk::DataNode::Pointer > mitk::PACSPlugin::LoadImagesFromSeries ( std::vector< std::string >  seriesInstanceUIDs ) [virtual]

Definition at line 168 of file mitkPACSPlugin.cpp.

{
  std::vector<DataNode::Pointer> emptyVector;
  emptyVector.clear();
  return emptyVector;
}
mitk::DataNode::Pointer mitk::PACSPlugin::LoadSingleText ( const std::string &  seriesInstanceUID,
unsigned int  instanceNumber 
) [virtual]

Load a given document object for a series instance UID and a document instance number.

Definition at line 184 of file mitkPACSPlugin.cpp.

{
  return NULL;
}
std::vector< mitk::DataNode::Pointer > mitk::PACSPlugin::LoadTextsFromSeries ( const std::string &  seriesInstanceUID ) [virtual]

Load all objects from a given series instance UID.

Definition at line 176 of file mitkPACSPlugin.cpp.

{
  std::vector<DataNode::Pointer> emptyVector;
  emptyVector.clear();
  return emptyVector;
}
static Pointer mitk::PACSPlugin::New (  ) [static, protected]

Referenced by GetInstance().

void mitk::PACSPlugin::SaveAsNewSeries ( DataStorage::SetOfObjects::ConstPointer  inputNodes,
const std::string &  studyInstanceUID,
int  seriesNumber,
const std::string &  seriesDescription 
) [virtual]

Save given data as a new series.

Parameters:
studyInstanceUIDsave into this study
seriesNumbera number identifying the new series
seriesDescriptiona string description for the new series

Definition at line 190 of file mitkPACSPlugin.cpp.

{
}
void mitk::PACSPlugin::SaveToSeries ( DataStorage::SetOfObjects::ConstPointer  inputNodes,
const std::string &  seriesInstanceUID,
bool  overwriteExistingSeries 
) [virtual]

Save given data into an existing series.

Parameters:
seriesInstanceUIDsave into this series
seriesDescriptiona string description for the new series

Definition at line 198 of file mitkPACSPlugin.cpp.

{
}
void mitk::PACSPlugin::SetReaderType ( unsigned int  readerType = 0 ) [virtual]

Set type of "sorter" that stacks 2D images into 3D or 3D+t volumes

Parameters:
readerType0 used for the ImageNumberFilter, 1 for the SingleSpacingFilter and 2 used for SpacingSetFilter.

Definition at line 133 of file mitkPACSPlugin.cpp.

{
  m_ReaderType = readerType;
}
void mitk::PACSPlugin::UploadFileAsNewSeries ( const std::string &  filename,
const std::string &  mimeType,
const std::string &  studyInstanceUID,
int  seriesNumber,
const std::string &  seriesDescription 
) [virtual]

Upload a file as a new series.

Parameters:
studyInstanceUIDsave into this study
seriesNumbera number identifying the new series
seriesDescriptiona string description for the new series

Definition at line 204 of file mitkPACSPlugin.cpp.

{
}
void mitk::PACSPlugin::UploadFileToSeries ( const std::string &  filename,
const std::string &  filebasename,
const std::string &  mimeType,
const std::string &  seriesInstanceUID,
bool  overwriteExistingSeries 
) [virtual]

Upload file into an existing series.

Parameters:
seriesInstanceUIDsave into this series
seriesDescriptiona string description for the new series

Definition at line 212 of file mitkPACSPlugin.cpp.

{
}

Member Data Documentation

Definition at line 309 of file mitkPACSPlugin.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines