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>
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< Self > | Pointer |
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 PACSPlugin * | GetInstance (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 |
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.
typedef itk::SmartPointer<const Self> mitk::PACSPlugin::ConstPointer |
Definition at line 127 of file mitkPACSPlugin.h.
typedef std::list<DocumentInformation> mitk::PACSPlugin::DocumentInformationList |
There can be lots of texts to one series, so we need a list.
Definition at line 125 of file mitkPACSPlugin.h.
typedef std::list<PatientInformation> mitk::PACSPlugin::PatientInformationList |
Definition at line 62 of file mitkPACSPlugin.h.
typedef itk::SmartPointer<Self> mitk::PACSPlugin::Pointer |
Definition at line 127 of file mitkPACSPlugin.h.
typedef PACSPlugin mitk::PACSPlugin::Self |
Definition at line 127 of file mitkPACSPlugin.h.
typedef std::list<SeriesInformation> mitk::PACSPlugin::SeriesInformationList |
Definition at line 106 of file mitkPACSPlugin.h.
typedef std::list<StudyInformation> mitk::PACSPlugin::StudyInformationList |
Definition at line 78 of file mitkPACSPlugin.h.
typedef itk::Object mitk::PACSPlugin::Superclass |
Definition at line 127 of file mitkPACSPlugin.h.
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.
{ }
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.
destroyInstance | Tell the specific implementation it should free/delete itself. |
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.
studyInstanceUID | save into this study |
seriesNumber | a number identifying the new series |
seriesDescription | a 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.
seriesInstanceUID | save into this series |
seriesDescription | a 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
readerType | 0 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.
studyInstanceUID | save into this study |
seriesNumber | a number identifying the new series |
seriesDescription | a 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.
seriesInstanceUID | save into this series |
seriesDescription | a string description for the new series |
Definition at line 212 of file mitkPACSPlugin.cpp.
{ }
int mitk::PACSPlugin::m_ReaderType [protected] |
Definition at line 309 of file mitkPACSPlugin.h.