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.
1.7.2