diff --git a/Modules/US/Documentation/doxygen/USModule.dox b/Modules/US/Documentation/doxygen/USModule.dox index 63a0e59742..f656852eab 100644 --- a/Modules/US/Documentation/doxygen/USModule.dox +++ b/Modules/US/Documentation/doxygen/USModule.dox @@ -1,87 +1,124 @@ /** \page USModulePage The Ultrasound Module \section USModulePageOverview Overview The Ultrasound Module provides a microservice based API for ultrasound devices. The main features are: This module requires OpenCV to be enabled in the superbuild options via CMAKE. Its functionality is made available to the User via the \link org_mitk_gui_qt_ultrasound UltrasoundSupport Plugin \endlink \section USDeviceHierarchy Ultrasound Device Hierarchy Ultrasound Devices are managed in a simple hierarchy: \image html USHierarchy.png \section USDeviceLifeCycle USDevice Life Cycle Once you a USDevice is constructed, it can be connected via call to mitk::USDevice::Connect(). This will cause the Device to register itself in the Microservice Framework and will make the device available to other Modules, the UltrasoundSupport Plugin and the USDeviceManagerWidget in the USUI Module. The Connect() method is not virtual and should never be overwritten. Instead, override mitk::USDevice::OnConnect(), which will be called during the connection Process and enables you to react to this event. A connected device is available to other modules, but is not acquiring image data. Analogously to Connect, there is a function mitk::USDevice::Activate which will start the image acquisition. Again, this method is not virtual, override mitk::USDevice::OnActivate to react to activation. Matching functions mitk::USDevice::Disconnect(), mitk::USDevice::OnDisconnect, mitk::USDevice::Deactivate, mitk::USDevice::OnDeactivate exist as well. The following diagram illustrates the situation: \image html USLifecycle.png The blue message symbols indicate that the corresponding method of the subclass is called to react to the event. \section USControlInterfaces Control Interfaces for API Devices Capabilities of API-based ultrasound devices are available through control interfaces which are shown below: \image html USControlInterfaces.png The control interfaces mitk::USControlInterfaceProbes and mitk::USControlInterfaceBMode are available, while mitk::USControlInteraceDoppler is empty at the moment. Every sublcass of mitk::USDevice can use an implementation of each of these interfaces, but this is not necessary. The mitk::USVideoDevice for examples uses a custom control interface only, which is a subclass of mitk::USAbstractControlInterface. Each custom control interface needs its own Widget (subclassed of QmitkUSAbstractCustomWidget). For mitk::USControlInterfaceProbes, mitk::USControlInterfaceBMode and mitk::USControlInterfaceDoppler there are Widgets available in the USUI module (QmitkUSControlsProbesWidget, QmitkUSControlsBModeWidget, QmitkUSControlsDopplerWidget) which can be used by plugins. Each Widget must get an object of the corresponding control interface on its constructor call. A class diagram showing how the Widgets are connected to the control interfaces can be seen below: \image html USControlWidgets.png A plugin can use the Widgets by creating a new object of the Widget and setting the corresponding interface object of the mitk::USDevice which should be controlled. How to use custom widgets is described in the class documentation of QmitkUSConcreteCustomWidget. \section USDWidgets Available Widgets There are some Widgets available that can be used for plugin development: a device management Widget, a Widget for creating new mitk::USVideoDevice objects and widgets for the control interfaces of API device. The usage of the Widgets is described in more detail in the \link org_mitk_gui_qt_ultrasound UltrasoundSupport Plugin Documentation\endlink. \subsection USQmitkUSDeviceManagerWidget QmitkUSDeviceManagerWidget The QmitkUSDeviceManagerWidget can view every connected mitk::USDevice and allows the user to activate and deactivate devices. Additionally mitk::USVideoDevice can be created using the QmitkNewVideoDeviceWidget and removed by a corresponding button. \subsection USQmitkNewVideoDeviceWidget QmitkNewVideoDeviceWidget The QmitkNewVideoDeviceWidget allows the user to configure a frame grabber or other video input as a mitk::USVideoDevice. \subsection USControlInterfaceWidgets Control Interface Widgets +\section USHardwareTelemed Controlling API Devices of Telemed + +The features of ultrasound devices of Telemed can be controlled directly via +the Ultrasound Module. At the moment, some controls for the b mode are +implemented. The device used for development was the "Telemed LogicScan 128". A +graphical user interface is integrated into the Ultrasound Plugin. + +\subsection USHardwareTelemedInstall Install the Telemed SDK + +The Telemed SDK cannot be shipped with MITK due to legal issues. Instead it can +be obtained directly from Telemed. MITK was tested with API version 3.9.0 +(2013-02-04). +The following packages must be installed: + + +For MITK the file "usgfw2.tlh" is needed. This file may be available in one of +the examples folders of the SDK. If not it can be generated by compiling one of +the delivered examples (samples_cpp_vs2005). + +\subsection USHardwareTelemedEnable Enable the Telemed API + +To use a Telemed device, activate the corresponding CMake flag: +MITK_USE_US_TELEMED_SDK. After a run of CMake the new CMake variable +MITK_US_TELEMED_SDK_PATH has to be set to a directory containing the header +files of the Telemed SKD (from "SDK\include\USGFWSDK\include") and the file +"usgfw2.tlh" (see previous section). Afterwards MITK can be configured and +build as usual. + +\subsection USHardwareTelemedUse Use a Telemed device + +As soon as the ultrasound module is loaded the device will be made available as +a microservice. It can be got from the service registry then and the Ultrasound +Plugin shows the device as an available ultrasound device. + */ \ No newline at end of file