Telemed USB ultrasound systems
Supported hardware devices
This device is used for image acquisition from Telemed ultrasound systems.
Tested only with MicrUs devices (http://www.pcultrasound.com/products/micrus/index.html) but other Telemed devices should be compatible, too.
Link to manufacturer’s website: http://www.pcultrasound.com
Supported platforms
Installation
Requires drivers provided by Telemed for running (otherwise Plus application will not start).
It is recommended to run the Telemed imaging software to set all imaging parameters, as Plus currently can set only a subset of all imaging parameters.
Device configuration settings
Type:
TelemedVideoAcquisitionRate: (Optional, default:
30)LocalTimeOffsetSec: (Optional, default:
0)FrameSize: Maximum size of an image frame in pixels. The image is scaled so that image vertically fills the specified rectangle size, therefore if the frame size is too narrow (first component is too small) then the two sides of the image may be clipped; if the frame is too wide then there will be solid filled stripes on the left and right sides. If larger values are specified then a higher-resolution image is created. (Optional, default:
512 512)DepthMm: Set the depth [mm] of B-mode ultrasound. If not specified (or value is <0) then the current value is kept.
FrequencyMhz: Ultrasound transmitter frequency. If not specified (or value is <0) then the current value is kept. [MHz].
ThiMode: Tissue harmonic imaging (THI) mode, specified as either a value of the Telemed
THI_MODEenumeration or a human-readable enum token. If not specified (or value is <0) then the current value is kept. Changing this parameter keeps the transmitter frequency as close as possible to its current value while switching between THI modes. THI exploits the nonlinear propagation of ultrasound through tissue: as sound travels, harmonic frequencies of the original transmit frequency build up, and imaging that harmonic echo instead of the fundamental echo reduces near-field clutter/reverberation and improves contrast resolution.Enum token
Numeric value
Meaning
THI_MODE11
Conventional (non-harmonic) imaging: transmitting and receiving frequency are the same. Despite the “THI” prefix, per the Telemed SDK programmer’s guide this is the traditional/fundamental frequency mode, i.e. the “off” state for harmonic imaging.
THI_MODE22
Tissue harmonic imaging: receiving frequency is 2x the transmitting frequency. Availability depends on the beamformer/probe combination in use.
THI_MODE2_ITHI258
Pulse inversion THI: two opposite-polarity pulses are transmitted per scan line and the received echoes are summed, cancelling the fundamental component while reinforcing the (nonlinear) harmonic component. Gives better fundamental/harmonic separation than
THI_MODE2at the cost of frame rate.Not every mode/frequency combination is available on every probe; the device only reports success if an exact THI mode match exists somewhere in its enumerated frequency table (the closest available frequency for that mode is then selected). For example, testing on one ArtUS probe found only
THI_MODE1(at 2/3.5/5 MHz) andTHI_MODE2_ITHI(at 2.01 MHz) in the table – noTHI_MODE2entry existed at all for that probe. If the requested mode isn’t available, the operation fails and the log lists the(frequency, THI mode)pairs the probe actually supports.This parameter can also be changed/retrieved at runtime with the
SetUsParameter/GetUsParameterOpenIGTLink commands using the parameter nameThiMode.DynRangeDb: Dynamic Range [dB] of B-mode ultrasound. If not specified (or value is <0) then the current value is kept.
GainPercent: Is the gain percentage of B-mode ultrasound. If not specified (or value is <0) then the current value is kept. Valid range: 0-100.
PowerDb: Power to be used for imaging, as a number of dB below maximum. If not specified (or value is >0) then the current value is kept. Valid range is -20 to 0.
SpeckleReductionEnabled: Enable (
TRUE) or disable (FALSE) speckle reduction (ClearView) filtering of B-mode ultrasound. If not specified then the current value is kept.SpeckleReductionMethod: Speckle reduction filter method, specified as either a value of the Telemed
CLEAR_VIEWenumeration (for example306) or a human-readable enum token (for exampleSRF_NVC6). The value encodes the filter family (hundreds digit) and the filtration level (1-16 within each family, higher = stronger filtering). If not specified (or value is <0) then the current value is kept.Values
Filter family
Notes
1-16
ClearView (
SRF_CV1..16)Requires purchased license and inserted USB dongle key
101-116
PureView (
SRF_PV1..16)Generally available
201-216
NeatView GPU (
SRF_NV1..16)Availability depends on graphics adapter and drivers
301-316
NeatView CPU (
SRF_NVC1..16)Generally available
401-416
QuickView (
SRF_QV1..16)Reserved for future use by Telemed
501-516
SRF_NVO1..16Present in SDK 4.1.0 headers, undocumented
Per the Telemed SDK programmer’s guide, in most cases only PureView and CPU-based NeatView are available; Telemed’s own default scanning parameter files use
306(NeatView CPU, level 6, equivalent toSRF_NVC6). Note that speckle reduction filters may reduce the frame rate. Both speckle reduction parameters can also be changed at runtime with theSetUsParameterOpenIGTLink command (parameter namesSpeckleReductionEnabledandSpeckleReductionMethod).DynamicFocusEnabled: Enable (
TRUE/FALSEor1/0) dynamic focus mode. If not specified then the current value is kept.FocusesNumber: Number of active focal zones (integer). If not specified (or value is <0) then the current value is kept.
FocusSet: Focus set index (integer). If not specified (or value is <0) then the current value is kept.
FrameAveraging: Temporal frame averaging level (integer). If not specified (or value is <0) then the current value is kept.
ViewAreaPercent: View area percentage (integer). If not specified (or value is <0) then the current value is kept.
LineDensity: Line density value from Telemed
LINE_DENSITYenum (integer; examples:8,14,16,22,24,32). If not specified (or value is <0) then the current value is kept.ImageEnhancementEnabled: Enable (
TRUE/FALSEor1/0) image enhancement. If not specified then the current value is kept.ImageEnhancementMethod: Image enhancement method, specified as either a Telemed
IMAGE_ENHANCEMENTenum token or its numeric value. If not specified (or value is <0) then the current value is kept.Enum token
Numeric value
Meaning
IMAGE_ENHANC_SHARPEN1
Sharpen
IMAGE_ENHANC_SHARPENMORE2
Sharpen more
IMAGE_ENHANC_SMOOTH3
Smooth
IMAGE_ENHANC_SMOOTHMORE4
Smooth more
Rejection: Rejection filter level (integer). If not specified (or value is <0) then the current value is kept.
Negative: Enable (
TRUE/FALSEor1/0) negative palette display. If not specified then the current value is kept.ChangeScanDirection: Enable (
TRUE/FALSEor1/0) scan-direction change (mirror). If not specified then the current value is kept.RotateImage: Image rotation (
0,90,180,270; enum values0..3are also accepted). If not specified (or value is <0) then the current value is kept.
All Telemed-specific parameters above can also be changed/retrieved at runtime by SetUsParameter and GetUsParameter OpenIGTLink commands using the same parameter names.
DataSources: Exactly one
DataSourcechild element is required (Required)DataSource: (Required)
PortUsImageOrientation: (Required)
BufferSize: (Optional, default:
150)AveragedItemsForFiltering: (Optional, default:
20)ClipRectangleOrigin: (Optional, default:
0 0 0)ClipRectangleSize: (Optional, default:
0 0 0)
Example configuration file PlusDeviceSet_Server_TelemedVideoCapture.xml
<PlusConfiguration version="2.1">
<DataCollection StartupDelaySec="1.0" >
<DeviceSet
Name="PlusServer: Telemed ultrasound device"
Description="Broadcasting acquired video through OpenIGTLink"
/>
<Device
Id="VideoDevice"
Type="TelemedVideo" >
<DataSources>
<DataSource Type="Video" Id="Video" PortUsImageOrientation="UN" />
</DataSources>
<OutputChannels>
<OutputChannel Id="VideoStream" VideoDataSourceId="Video" />
</OutputChannels>
</Device>
<Device
Id="CaptureDevice"
Type="VirtualCapture"
BaseFilename="RecordingTest.igs.mha"
EnableCapturingOnStart="FALSE" >
<InputChannels>
<InputChannel Id="VideoStream" />
</InputChannels>
</Device>
</DataCollection>
<CoordinateDefinitions>
<Transform From="Image" To="Reference"
Matrix="
0.2 0.0 0.0 0.0
0.0 0.2 0.0 0.0
0.0 0.0 0.2 0.0
0 0 0 1" />
</CoordinateDefinitions>
<PlusOpenIGTLinkServer
MaxNumberOfIgtlMessagesToSend="1"
MaxTimeSpentWithProcessingMs="50"
ListeningPort="18944"
SendValidTransformsOnly="true"
OutputChannelId="VideoStream" >
<DefaultClientInfo>
<MessageTypes>
<Message Type="IMAGE" />
</MessageTypes>
<ImageNames>
<Image Name="Image" EmbeddedTransformToFrame="Reference" />
</ImageNames>
</DefaultClientInfo>
</PlusOpenIGTLinkServer>
</PlusConfiguration>