Medical Imaging Interaction Toolkit
2016.11.0
Medical Imaging Interaction Toolkit
|
Implementation of mitk::USDevice for Telemed API devices. Connects to a Telemed API device through its COM library interface. More...
#include <mitkUSTelemedDevice.h>
Public Member Functions | |
mitkClassMacro (USTelemedDevice, mitk::USDevice) | |
mitkNewMacro2Param (Self, std::string, std::string) | |
virtual std::string | GetDeviceClass () |
Returns the class of the device. More... | |
virtual USControlInterfaceBMode::Pointer | GetControlInterfaceBMode () |
Default getter for the b mode control interface. Has to be implemented in a subclass if a b mode control interface is available. Default implementation returns null. More... | |
virtual USControlInterfaceProbes::Pointer | GetControlInterfaceProbes () |
Default getter for the probes control interface. Has to be implemented in a subclass if a probes control interface is available. Default implementation returns null. More... | |
virtual USControlInterfaceDoppler::Pointer | GetControlInterfaceDoppler () |
Default getter for the doppler control interface. Has to be implemented in a subclass if a doppler control interface is available. Default implementation returns null. More... | |
virtual bool | OnInitialization () |
Is called during the initialization process. There is nothing done on the initialization of a mik::USTelemedDevive object. More... | |
virtual bool | OnConnection () |
Is called during the connection process. Connect to the Telemed API and try to get available probes from the device. More... | |
virtual bool | OnDisconnection () |
Is called during the disconnection process. Deactivate and remove all Telemed API controls. A disconnect from the Telemed API is not possible for which reason the hardware stays in connected state even after calling this method. More... | |
virtual bool | OnActivation () |
Is called during the activation process. After this method is finished, the device is generating images in b mode. Changing scanning mode is possible afterwards by using the appropriate control interfaces. More... | |
virtual bool | OnDeactivation () |
Is called during the deactivation process. After a call to this method the device is connected, but not producing images anymore. More... | |
virtual void | OnFreeze (bool freeze) |
Changes scan state of the device if freeze is toggeled in mitk::USDevice. More... | |
USImageSource::Pointer | GetUSImageSource () |
Usgfw2Lib::IUsgfw2 * | GetUsgMainInterface () |
Getter for main Telemed API object. This method is for being called by Telemed control interfaces. More... | |
void | SetActiveDataView (Usgfw2Lib::IUsgDataView *) |
Changes active IUsgDataView of the device. This method is for being called by Telemed control interfaces. More... | |
virtual HRESULT __stdcall | raw_OnProbeArrive (IUnknown *pUsgProbe, ULONG *reserved) |
virtual HRESULT __stdcall | raw_OnBeamformerArrive (IUnknown *pUsgBeamformer, ULONG *reserved) |
virtual HRESULT __stdcall | raw_OnProbeRemove (IUnknown *pUsgProbe, ULONG *reserved) |
virtual HRESULT __stdcall | raw_OnBeamformerRemove (IUnknown *pUsgBeamformer, ULONG *reserved) |
virtual HRESULT __stdcall | raw_OnProbeStateChanged (IUnknown *pUsgProbe, ULONG *reserved) |
virtual HRESULT __stdcall | raw_OnBeamformerStateChanged (IUnknown *pUsgBeamformer, ULONG *reserved) |
STDMETHODIMP_ (ULONG) AddRef() | |
STDMETHODIMP_ (ULONG) Release() | |
STDMETHODIMP | QueryInterface (REFIID riid, void **ppv) |
virtual HRESULT STDMETHODCALLTYPE | GetTypeInfoCount (UINT *pctinfo) |
virtual HRESULT STDMETHODCALLTYPE | GetTypeInfo (UINT itinfo, LCID lcid, ITypeInfo **pptinfo) |
virtual HRESULT STDMETHODCALLTYPE | GetIDsOfNames (const IID &riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgdispid) |
virtual HRESULT STDMETHODCALLTYPE | Invoke (DISPID dispIdMember, const IID &riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) |
![]() | |
mitkClassMacro (USDevice, mitk::ImageSource) | |
bool | Initialize () |
Changes device state to mitk::USDevice::State_Initialized. During initialization the virtual method mitk::USDevice::OnInitialization will be called. If this method returns false the initialization process will be canceled. Otherwise the mitk::USDevice is registered in a micro service. More... | |
bool | Connect () |
Connects this device. A connected device is ready to deliver images (i.e. be Activated). A Connected Device can be active. A disconnected Device cannot be active. Internally calls onConnect and then registers the device with the service. A device usually should override the OnConnection() method, but never the Connect() method, since this will possibly exclude the device from normal service management. The exact flow of events is: 0. Check if the device is already connected. If yes, return true anyway, but don't do anything. More... | |
void | ConnectAsynchron () |
bool | Disconnect () |
Works analogously to mitk::USDevice::Connect(). Don't override this Method, but onDisconnection instead. More... | |
bool | Activate () |
Activates this device. After the activation process, the device will start to produce images. This Method will fail, if the device is not connected. More... | |
void | Deactivate () |
Deactivates this device. After the deactivation process, the device will no longer produce images, but still be connected. More... | |
virtual void | SetIsFreezed (bool freeze) |
Can toggle if ultrasound image is currently updated or freezed. More... | |
virtual bool | GetIsFreezed () |
void | PushFilter (AbstractOpenCVImageFilter::Pointer filter) |
void | PushFilterIfNotPushedBefore (AbstractOpenCVImageFilter::Pointer filter) |
bool | RemoveFilter (AbstractOpenCVImageFilter::Pointer filter) |
void | ProbeChanged (std::string probename) |
To be called when the used probe changed. Will update the service properties. More... | |
void | DepthChanged (double depth) |
To be called when the scanning depth of the probe changed. Will update the service properties. More... | |
void | UpdateServiceProperty (std::string key, std::string value) |
Given property is updated in the device micro service. This method is mainly for being used by the control interface superclasses. You do not need to call it by yoursefs in your concrete control interface classes. More... | |
void | UpdateServiceProperty (std::string key, double value) |
void | UpdateServiceProperty (std::string key, bool value) |
bool | GetIsInitialized () |
True, if the device object is created and initialized, false otherwise. More... | |
bool | GetIsActive () |
True, if the device is currently generating image data, false otherwise. More... | |
bool | GetIsConnected () |
True, if the device is currently ready to start transmitting image data or is already transmitting image data. A disconnected device cannot be activated. More... | |
mitk::USDevice::USImageCropArea | GetCropArea () |
std::string | GetDeviceManufacturer () |
Deprecated -> use GetManufacturer() instead. More... | |
std::string | GetDeviceModel () |
Deprecated -> use GetName() instead. More... | |
std::string | GetDeviceComment () |
Deprecated -> use GetCommend() instead. More... | |
virtual std::string | GetManufacturer () |
virtual std::string | GetName () |
virtual std::string | GetComment () |
void | SetManufacturer (std::string manufacturer) |
void | SetName (std::string name) |
void | SetComment (std::string comment) |
virtual DeviceStates | GetDeviceState () |
virtual us::ServiceProperties | GetServiceProperties () |
void | GrabImage () |
![]() | |
virtual std::vector< std::string > | GetClassHierarchy () const override |
virtual const char * | GetClassName () const |
Pointer | Clone () const |
OutputType * | GetOutput () |
Get the output data of this image source object. More... | |
const OutputType * | GetOutput () const |
OutputType * | GetOutput (DataObjectPointerArraySizeType idx) |
const OutputType * | GetOutput (DataObjectPointerArraySizeType idx) const |
virtual itk::DataObject::Pointer | MakeOutput (DataObjectPointerArraySizeType idx) override |
Make a DataObject of the correct type to used as the specified output. More... | |
virtual itk::DataObject::Pointer | MakeOutput (const DataObjectIdentifierType &name) override |
virtual vtkImageData * | GetVtkImageData () |
virtual const vtkImageData * | GetVtkImageData () const |
![]() | |
OutputType * | GetOutput () |
const OutputType * | GetOutput () const |
OutputType * | GetOutput (DataObjectPointerArraySizeType idx) |
const OutputType * | GetOutput (DataObjectPointerArraySizeType idx) const |
virtual void | GraftOutput (OutputType *output) |
Graft the specified BaseData onto this BaseDataSource's output. More... | |
virtual void | GraftOutput (const DataObjectIdentifierType &key, OutputType *output) |
virtual void | GraftNthOutput (unsigned int idx, OutputType *output) |
Graft the specified base data object onto this BaseDataSource's idx'th output. More... | |
bool | Updating () const |
Access itk::ProcessObject::m_Updating. More... | |
Protected Member Functions | |
USTelemedDevice (std::string manufacturer, std::string model) | |
virtual | ~USTelemedDevice () |
void | ReleaseUsgControls () |
void | ConnectDeviceChangeSink () |
void | StopScanning () |
Stop ultrasound scanning by Telemed API call. More... | |
![]() | |
virtual void | SetImage (mitk::Image::Pointer _arg) |
virtual void | SetSpawnAcquireThread (bool _arg) |
virtual bool | GetSpawnAcquireThread () |
void | ProvideViaOIGTL () |
Registers an OpenIGTLink device as a microservice so that we can send the images of this device via the network. More... | |
void | DisableOIGTL () |
Deregisters the microservices for OpenIGTLink. More... | |
us::ServiceProperties | ConstructServiceProperties () |
This Method constructs the service properties which can later be used to register the object with the Microservices Return service properties. More... | |
void | UnregisterOnService () |
Remove this device from the micro service. More... | |
USDevice (std::string manufacturer, std::string model) | |
Enforces minimal Metadata to be set. More... | |
USDevice (mitk::USImageMetadata::Pointer metadata) | |
Constructs a device with the given Metadata. Make sure the Metadata contains meaningful content! More... | |
virtual | ~USDevice () |
virtual void | GenerateData () override |
Grabs the next frame from the Video input. This method is called internally, whenever Update() is invoked by an Output. More... | |
std::string | GetServicePropertyLabel () |
![]() | |
ImageSource () | |
virtual | ~ImageSource () |
virtual void | ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, itk::ThreadIdType threadId) |
If an imaging filter can be implemented as a multithreaded algorithm, the filter will provide an implementation of ThreadedGenerateData(). More... | |
virtual void | PrepareOutputs () override |
This method is intentionally left blank. More... | |
virtual void | AllocateOutputs () |
The GenerateData method normally allocates the buffers for all of the outputs of a filter. More... | |
virtual void | BeforeThreadedGenerateData () |
If an imaging filter needs to perform processing after the buffer has been allocated but before threads are spawned, the filter can can provide an implementation for BeforeThreadedGenerateData(). More... | |
virtual void | AfterThreadedGenerateData () |
If an imaging filter needs to perform processing after all processing threads have completed, the filter can can provide an implementation for AfterThreadedGenerateData(). More... | |
virtual unsigned int | SplitRequestedRegion (unsigned int i, unsigned int num, OutputImageRegionType &splitRegion) |
Split the output's RequestedRegion into "num" pieces, returning region "i" as "splitRegion". More... | |
![]() | |
BaseDataSource () | |
virtual | ~BaseDataSource () |
Protected Attributes | |
USTelemedProbesControls::Pointer | m_ControlsProbes |
USTelemedBModeControls::Pointer | m_ControlsBMode |
USTelemedDopplerControls::Pointer | m_ControlsDoppler |
USTelemedImageSource::Pointer | m_ImageSource |
Usgfw2Lib::IUsgfw2 * | m_UsgMainInterface |
Usgfw2Lib::IProbe * | m_Probe |
Usgfw2Lib::IUsgDataView * | m_UsgDataView |
Usgfw2Lib::IUsgCollection * | m_ProbesCollection |
ULONG | m_RefCount |
IConnectionPoint * | m_UsgDeviceChangeCpnt |
DWORD | m_UsgDeviceChangeCpntCookie |
![]() | |
mitk::Image::Pointer | m_Image |
mitk::Image::Pointer | m_OutputImage |
mitk::IGTLServer::Pointer | m_IGTLServer |
mitk::IGTLMessageProvider::Pointer | m_IGTLMessageProvider |
mitk::ImageToIGTLMessageFilter::Pointer | m_ImageToIGTLMsgFilter |
bool | m_IsFreezed |
DeviceStates | m_DeviceState |
USImageCropArea | m_CropArea |
Additional Inherited Members | |
![]() | |
enum | DeviceStates { State_NoState, State_Initialized, State_Connected, State_Activated } |
![]() | |
typedef ImageSource | Self |
typedef BaseDataSource | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
typedef mitk::Image | OutputImageType |
Some convenient typedefs. More... | |
typedef OutputImageType | OutputType |
typedef OutputImageType::Pointer | OutputImagePointer |
typedef SlicedData::RegionType | OutputImageRegionType |
![]() | |
typedef BaseDataSource | Self |
typedef itk::ProcessObject | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
typedef BaseData | OutputType |
typedef itk::DataObject::DataObjectIdentifierType | DataObjectIdentifierType |
![]() | |
static const char * | GetStaticNameOfClass () |
static Pointer | New () |
Method for creation through the object factory. More... | |
![]() | |
static const char * | GetStaticNameOfClass () |
![]() | |
virtual mitkNewMessage2Macro(PropertyChanged, const std::string &, const std::string &) static mitk itk::SmartPointer< USAbstractControlInterface > | GetControlInterfaceCustom () |
Event for being notified about changes of the micro service properties. This event can be used if no micro service context is available. More... | |
![]() | |
static ITK_THREAD_RETURN_TYPE | Acquire (void *pInfoStruct) |
static ITK_THREAD_RETURN_TYPE | ConnectThread (void *pInfoStruct) |
![]() | |
static ITK_THREAD_RETURN_TYPE | ThreaderCallback (void *arg) |
Static function used as a "callback" by the MultiThreader. More... | |
![]() | |
static Pointer | New () |
Implementation of mitk::USDevice for Telemed API devices. Connects to a Telemed API device through its COM library interface.
This class handles all API communications and creates interfaces for b mode, doppler and probes controls. Images given by the device are put into an object of mitk::USTelemedImageSource.
It implements IUsgDeviceChangeSink of the Telemed API to be notified of changes to beamformer device or probes (e.g. probe change).
Definition at line 42 of file mitkUSTelemedDevice.h.
|
protected |
Constructs a mitk::USTelemedDevice object by given manufacturer and model string. These strings are just for labeling the device in the micro service.
Control interfaces and image source are available directly after construction. Registration at the micro service happens not before initialization method was called.
Definition at line 21 of file mitkUSTelemedDevice.cpp.
References mitk::ImageSource::MakeOutput().
|
protectedvirtual |
Definition at line 33 of file mitkUSTelemedDevice.cpp.
|
protected |
Definition at line 201 of file mitkUSTelemedDevice.cpp.
References SAFE_RELEASE.
|
virtual |
Default getter for the b mode control interface. Has to be implemented in a subclass if a b mode control interface is available. Default implementation returns null.
Reimplemented from mitk::USDevice.
Definition at line 42 of file mitkUSTelemedDevice.cpp.
|
virtual |
Default getter for the doppler control interface. Has to be implemented in a subclass if a doppler control interface is available. Default implementation returns null.
Reimplemented from mitk::USDevice.
Definition at line 52 of file mitkUSTelemedDevice.cpp.
|
virtual |
Default getter for the probes control interface. Has to be implemented in a subclass if a probes control interface is available. Default implementation returns null.
Reimplemented from mitk::USDevice.
Definition at line 47 of file mitkUSTelemedDevice.cpp.
|
virtual |
Returns the class of the device.
Implements mitk::USDevice.
Definition at line 37 of file mitkUSTelemedDevice.cpp.
|
virtual |
Definition at line 300 of file mitkUSTelemedDevice.cpp.
|
virtual |
Definition at line 292 of file mitkUSTelemedDevice.cpp.
|
virtual |
Definition at line 285 of file mitkUSTelemedDevice.cpp.
Usgfw2Lib::IUsgfw2 * mitk::USTelemedDevice::GetUsgMainInterface | ( | ) |
Getter for main Telemed API object. This method is for being called by Telemed control interfaces.
Definition at line 181 of file mitkUSTelemedDevice.cpp.
|
virtual |
Implements mitk::USDevice.
Definition at line 148 of file mitkUSTelemedDevice.cpp.
|
virtual |
Definition at line 306 of file mitkUSTelemedDevice.cpp.
mitk::USTelemedDevice::mitkClassMacro | ( | USTelemedDevice | , |
mitk::USDevice | |||
) |
mitk::USTelemedDevice::mitkNewMacro2Param | ( | Self | , |
std::string | , | ||
std::string | |||
) |
|
virtual |
Is called during the activation process. After this method is finished, the device is generating images in b mode. Changing scanning mode is possible afterwards by using the appropriate control interfaces.
mitk::Exception | if something goes wrong at the API calls |
Implements mitk::USDevice.
Definition at line 94 of file mitkUSTelemedDevice.cpp.
References MITK_ERROR, and MITK_WARN.
|
virtual |
Is called during the connection process. Connect to the Telemed API and try to get available probes from the device.
mitk::Exception | if something goes wrong at the API calls |
Implements mitk::USDevice.
Definition at line 64 of file mitkUSTelemedDevice.cpp.
References MITK_ERROR, and SAFE_RELEASE.
|
virtual |
Is called during the deactivation process. After a call to this method the device is connected, but not producing images anymore.
mitk::Exception | if something goes wrong at the API calls |
Implements mitk::USDevice.
Definition at line 130 of file mitkUSTelemedDevice.cpp.
|
virtual |
Is called during the disconnection process. Deactivate and remove all Telemed API controls. A disconnect from the Telemed API is not possible for which reason the hardware stays in connected state even after calling this method.
mitk::Exception | if something goes wrong at the API calls |
Implements mitk::USDevice.
Definition at line 82 of file mitkUSTelemedDevice.cpp.
|
virtual |
Changes scan state of the device if freeze is toggeled in mitk::USDevice.
Reimplemented from mitk::USDevice.
Definition at line 136 of file mitkUSTelemedDevice.cpp.
|
virtual |
Is called during the initialization process. There is nothing done on the initialization of a mik::USTelemedDevive object.
Implements mitk::USDevice.
Definition at line 57 of file mitkUSTelemedDevice.cpp.
STDMETHODIMP mitk::USTelemedDevice::QueryInterface | ( | REFIID | riid, |
void ** | ppv | ||
) |
Definition at line 270 of file mitkUSTelemedDevice.cpp.
|
virtual |
Definition at line 224 of file mitkUSTelemedDevice.cpp.
|
virtual |
Definition at line 231 of file mitkUSTelemedDevice.cpp.
|
inlinevirtual |
Definition at line 131 of file mitkUSTelemedDevice.h.
|
virtual |
Definition at line 240 of file mitkUSTelemedDevice.cpp.
|
virtual |
Definition at line 249 of file mitkUSTelemedDevice.cpp.
|
inlinevirtual |
Definition at line 130 of file mitkUSTelemedDevice.h.
|
protected |
Definition at line 153 of file mitkUSTelemedDevice.cpp.
References SAFE_RELEASE.
void mitk::USTelemedDevice::SetActiveDataView | ( | Usgfw2Lib::IUsgDataView * | usgDataView | ) |
Changes active IUsgDataView of the device. This method is for being called by Telemed control interfaces.
Definition at line 186 of file mitkUSTelemedDevice.cpp.
mitk::USTelemedDevice::STDMETHODIMP_ | ( | ULONG | ) |
mitk::USTelemedDevice::STDMETHODIMP_ | ( | ULONG | ) |
|
protected |
Stop ultrasound scanning by Telemed API call.
mitk::Exception | if API call returned with an error |
Definition at line 163 of file mitkUSTelemedDevice.cpp.
References MITK_ERROR, MITK_WARN, and mitkThrow.
|
protected |
Definition at line 169 of file mitkUSTelemedDevice.h.
|
protected |
Definition at line 170 of file mitkUSTelemedDevice.h.
|
protected |
Definition at line 168 of file mitkUSTelemedDevice.h.
|
protected |
Definition at line 172 of file mitkUSTelemedDevice.h.
|
protected |
Definition at line 175 of file mitkUSTelemedDevice.h.
|
protected |
Definition at line 177 of file mitkUSTelemedDevice.h.
|
protected |
Definition at line 179 of file mitkUSTelemedDevice.h.
|
protected |
Definition at line 176 of file mitkUSTelemedDevice.h.
|
protected |
Definition at line 180 of file mitkUSTelemedDevice.h.
|
protected |
Definition at line 181 of file mitkUSTelemedDevice.h.
|
protected |
Definition at line 174 of file mitkUSTelemedDevice.h.