Skip to content
Vincent Le Garrec edited this page Feb 13, 2025 · 55 revisions

UAC/URX Documentation

Introduction

UAC (Ultrasound Acquisition Configuration) is a description format for the configuration of the ultrasound acquisition. UAC describes how the acquisition should happen (timings, excitation pattern, number of repetition, triggers, …). UAC contains information necessary to the configuration and execution of the hardware. UAC provides a hardware-agnostic description format for the ultrasound acquisition. Hardware-specific information can be added through a generic key-value mechanism. UAC defines concepts such as Excitation, Wave, TransmitSetup, ReceiveSetup, Event, Sequence, Group, Acquisition, Probe, ProbeElement, TriggerIn, TriggerOut, ...

URX (Ultrasound Raw eXchange) is a description format for data and metadata from an ultrasound acquisition. URX and UAC share many concepts and most of their architecture. URX focuses on recording the acquisition, ie what happened. The need for URX arises from the fact that some parameters of the acquisition execution are not deterministic: number of repetitions within a group, group jumps, external trigger input, change of reveice-gain by the user during acquisition, change of probe position by the user during the acquisition, …. URX allows processing pipeline to process data without hardware-specific knowledge.

UAC and URX are both C++ libraries and file formats (.uac, .urx). Wrappers for Python and MATLAB are available. UAC and URX are open-source project released under MIT license.

Class Diagram

UAC URX
UAC User class diagram URX User class diagram
UAC User class diagram URX User class diagram
See also: UAC C++ class diagram See also: URX C++ class diagram

List of class

Some classes are present in UAC and/or URX, moreover the parameters in each class can be different in UAC and URX.

UAC URX Class Name
acquisition
dataset
destination_link
edge
element
element_geometry
event
excitation
group
group.data_type
group.sampling_type
group_data
hw_config
igroup
impulse_response
polarity
probe
probe.probe_type
receive_setup
super_group
transform
transmit_setup
trigger_in
trigger_out
vector3d
version
wave
wave.wave_type

Tutorials

Implementation detail

The following paragraph contains more implementation details than the README in the main repository.

Terminology

Version

Clone this wiki locally