Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef MITKCHILIPLUGIN_H_HEADER_INCLUDED_C1EBD0AD
00019 #define MITKCHILIPLUGIN_H_HEADER_INCLUDED_C1EBD0AD
00020
00021 #include "mitkDataStorage.h"
00022 #include "MitkExtExports.h"
00023
00024 namespace mitk {
00025
00037 class MitkExt_EXPORT PACSPlugin : public itk::Object
00038 {
00039 public:
00040
00042 struct MitkExt_EXPORT PACSPluginCapability
00043 {
00044 bool IsPACSFunctional;
00045 bool HasLoadCapability;
00046 bool HasSaveCapability;
00047 };
00048
00050 class MitkExt_EXPORT PatientInformation
00051 {
00052 public:
00053 std::string UID;
00054 std::string PatientsName;
00055 std::string PatientID;
00056 std::string PatientsBirthDate;
00057 std::string PatientsBirthTime;
00058 std::string PatientsSex;
00059 std::string PatientComments;
00060 };
00061
00062 typedef std::list<PatientInformation> PatientInformationList;
00063
00065 class MitkExt_EXPORT StudyInformation
00066 {
00067 public:
00068 std::string StudyInstanceUID;
00069 std::string StudyID;
00070 std::string StudyDate;
00071 std::string StudyTime;
00072 std::string AccessionNumber;
00073 std::string ModalitiesInStudy;
00074 std::string ReferringPhysician;
00075 std::string StudyDescription;
00076 };
00077
00078 typedef std::list<StudyInformation> StudyInformationList;
00079
00081 class MitkExt_EXPORT SeriesInformation
00082 {
00083 public:
00084 std::string SeriesInstanceUID;
00085 int SeriesNumber;
00086 std::string SeriesDate;
00087 std::string SeriesTime;
00088 std::string SeriesDescription;
00089 std::string BodyPartExamined;
00090 std::string FrameOfReferenceUID;
00091 int AcquisitionNumber;
00092 std::string ContrastAgent;
00093 std::string ScanningSequence;
00094 int EchoNumber;
00095 int TemporalPosition;
00096
00097 SeriesInformation()
00098 : SeriesNumber(-1),
00099 AcquisitionNumber(-1),
00100 EchoNumber(-1),
00101 TemporalPosition(-1)
00102 {
00103 }
00104 };
00105
00106 typedef std::list<SeriesInformation> SeriesInformationList;
00107
00109 class MitkExt_EXPORT DocumentInformation
00110 {
00111 public:
00112 std::string SeriesInstanceUID;
00113 unsigned int InstanceNumber;
00114 std::string MimeType;
00115 std::string ContentDate;
00116 std::string DocumentTitle;
00117
00118 DocumentInformation()
00119 :InstanceNumber( (unsigned int)-1 )
00120 {
00121 }
00122 };
00123
00125 typedef std::list<DocumentInformation> DocumentInformationList;
00126
00127 mitkClassMacro( PACSPlugin,itk::Object );
00128
00136 static PACSPlugin* GetInstance( bool destroyInstance = false );
00137
00141 virtual PACSPluginCapability GetPluginCapabilities();
00142
00146 virtual PatientInformationList GetPatientInformationList();
00147
00151 virtual StudyInformationList GetStudyInformationList( const PatientInformation& patient );
00152
00156 virtual SeriesInformationList GetSeriesInformationList( const std::string& studyInstanceUID = "" );
00157
00161 virtual DocumentInformationList GetDocumentInformationList( const std::string& seriesInstanceUID = "" );
00162
00166 virtual PatientInformation GetPatientInformation( const std::string& seriesInstanceUID = "" );
00167
00171 virtual StudyInformation GetStudyInformation( const std::string& seriesInstanceUID = "" );
00172
00176 virtual SeriesInformation GetSeriesInformation( const std::string& seriesInstanceUID = "" );
00177
00181 virtual DocumentInformation GetDocumentInformation( const std::string& seriesInstanceUID,
00182 unsigned int instanceNumber );
00183
00191 virtual unsigned int GetLightboxCount();
00192
00204 virtual unsigned int GetActiveLightbox();
00205
00211 virtual void SetReaderType( unsigned int readerType = 0 );
00212
00213 virtual void AbortPACSImport();
00214
00220 virtual std::vector<DataNode::Pointer> LoadImagesFromLightbox( unsigned int lightboxIndex = 0 );
00221
00226 virtual std::vector<DataNode::Pointer> LoadFromSeries( const std::string& seriesInstanceUID );
00227
00232 virtual std::vector<DataNode::Pointer> LoadImagesFromSeries( const std::string& seriesInstanceUID );
00233
00234 virtual std::vector<mitk::DataNode::Pointer> LoadImagesFromSeries( std::vector<std::string> seriesInstanceUIDs );
00235
00240 virtual std::vector<DataNode::Pointer> LoadTextsFromSeries( const std::string& seriesInstanceUID );
00241
00246 virtual DataNode::Pointer LoadSingleText( const std::string& seriesInstanceUID, unsigned int instanceNumber );
00247
00252 virtual void DownloadSingleFile( const std::string& seriesInstanceUID,
00253 unsigned int instanceNumber,
00254 const std::string& filename );
00255
00262 virtual void SaveAsNewSeries( DataStorage::SetOfObjects::ConstPointer inputNodes,
00263 const std::string& studyInstanceUID,
00264 int seriesNumber,
00265 const std::string& seriesDescription );
00266
00272 virtual void SaveToSeries( DataStorage::SetOfObjects::ConstPointer inputNodes,
00273 const std::string& seriesInstanceUID,
00274 bool overwriteExistingSeries );
00275
00282 virtual void UploadFileAsNewSeries( const std::string& filename,
00283 const std::string& mimeType,
00284 const std::string& studyInstanceUID,
00285 int seriesNumber,
00286 const std::string& seriesDescription );
00287
00293 virtual void UploadFileToSeries( const std::string& filename,
00294 const std::string& filebasename,
00295 const std::string& mimeType,
00296 const std::string& seriesInstanceUID,
00297 bool overwriteExistingSeries );
00298
00299 virtual std::string GuessMIMEType( const std::string& filename );
00300
00301
00302 protected:
00303
00304
00305 itkNewMacro( PACSPlugin );
00306 PACSPlugin();
00307 virtual ~PACSPlugin();
00308
00309 int m_ReaderType;
00310 };
00311
00312 }
00313
00314 #endif
00315