9 #include "ioPacs/config.hpp" 11 #include <fwCom/Slot.hpp> 13 #include <fwIO/IReader.hpp> 15 #include <fwMedData/SeriesDB.hpp> 17 #include <fwPacsIO/data/PacsConfiguration.hpp> 18 #include <fwPacsIO/SeriesEnquirer.hpp> 19 #include <fwPacsIO/SeriesRetriever.hpp> 21 #include <fwServices/IController.hpp> 23 #include <fwThread/Worker.hpp> 25 #include <boost/filesystem/path.hpp> 71 typedef ::fwMedData::SeriesDB::ContainerType DicomSeriesContainerType;
72 typedef std::vector< std::string > InstanceUIDContainerType;
73 typedef std::map < std::string, unsigned int > InstanceCountMapType;
74 typedef std::map < std::string, WPTR(::fwMedData::DicomSeries) > DicomSeriesMapType;
76 IOPACS_API
static const ::fwCom::Slots::SlotKeyType s_READ_SLOT;
79 IOPACS_API
static const ::fwCom::Slots::SlotKeyType s_DISPLAY_SLOT;
91 static const ::fwCom::Signals::SignalKeyType s_STARTED_PROGRESS_SIG;
92 static const ::fwCom::Signals::SignalKeyType s_STOPPED_PROGRESS_SIG;
107 IOPACS_API virtual
void configuring() override;
110 IOPACS_API virtual
void starting() override;
113 IOPACS_API virtual
void stopping() override;
116 IOPACS_API
void updating() override;
119 IOPACS_API
void info(
std::ostream& _sstream ) override;
124 IOPACS_API
void pullSeries();
130 IOPACS_API
void readLocalSeries(DicomSeriesContainerType selectedSeries);
136 IOPACS_API
void displayErrorMessage(const
std::
string& message) const;
144 IOPACS_API
void storeInstanceCallback(const
std::
string& seriesInstanceUID,
unsigned int instanceNumber,
145 const
std::
string& filePath);
148 ReadDicomSlotType::sptr m_slotReadLocalSeries;
151 DisplayMessageSlotType::sptr m_slotDisplayMessage;
154 ::
fwPacsIO::SeriesRetriever::ProgressCallbackSlotType::sptr m_slotStoreInstanceCallbackUsingMoveRequests;
157 ::
fwPacsIO::SeriesEnquirer::ProgressCallbackSlotType::sptr m_slotStoreInstanceCallbackUsingGetRequests;
160 ProgressedSignalType::sptr m_sigProgressed;
163 StartedProgressSignalType::sptr m_sigStartedProgress;
166 StoppedProgressSignalType::sptr m_sigStoppedProgress;
172 ::
fwPacsIO::data::PacsConfiguration::csptr m_pacsConfiguration;
175 ::
fwIO::IReader::sptr m_dicomReader;
178 std::
string m_dicomReaderSrvConfig;
181 std::
string m_dicomReaderType;
193 InstanceUIDContainerType m_localSeries;
199 std::
string m_progressbarId;
202 long unsigned int m_seriesCount;
205 unsigned int m_seriesIndex;
208 std::
size_t m_instanceCount;
211 DicomSeriesMapType m_pullingDicomSeriesMap;
This service is used to pull series from a PACS.
ioPacs contains services use to deal with PACS using DCMTK library.
Namespace containing medical data.
fwPacsIO contains classes used to communicate with a PACS.
::fwCom::Signal< void(std::string) > StartedProgressSignalType
Signal to start the progress (bar id)
This interface defines control service API. Does nothing particularly, can be considered as a default...
#define fwCoreServiceClassDefinitionsMacro(_classinfo_)
Generate common code for services classes.
static const ::fwCom::Signals::SignalKeyType s_PROGRESSED_SIG
Key in m_signals map of signal m_sigProgressed.
The namespace fwIO contains the base interface for reader and writer services.
::fwCom::Signal< void(std::string, float, std::string) > ProgressedSignalType
Signal to update the progress (bar id, percentage, message)
::fwCom::Signal< void(std::string) > StoppedProgressSignalType
Signal to stop the progress (bar id)
This namespace fwThread provides few tools to execute asynchronous tasks on different threads...