Explanations

Explanations#

Conceptual background for the interfaces documented in API reference and used in the user guide. These pages state the components, the representations exchanged between them and the conventions the rest of the documentation assumes.

Explanation

What it covers

Architecture

The four layers of an acquisition through pulserver, the service each machine runs, and the representation exchanged at each boundary.

Protocol resolution

How a prescription edited in the scanner UI is resolved into the protocol a sequence plays, and the units and precision it is exchanged in.

Designs and the design store

The identity of a design, the checks it passes before it is stored, the design store, and how the reconstruction side finds a design.

Scanner representation (PulSeg)

The base blocks, virtual segments and execution stream a scanner interpreter plays, and how pulserver derives them from a Pulseq sequence.

The virtual scanner

The stand-ins that replace the scanner in tests: the playout, the signal model, the Bloch simulation and the reconstruction client.

Raw-data enrichment and routing

Enrichment of the raw data from the sequence that played it, and the routing of each series to a reconstruction.

Calibration, noise and coil compression

Coil sensitivity maps, noise prewhitening and coil compression as transforms of the receive channels, and the conditions under which sensitivity maps are reused.

Implementation detail – the cache layout, the wire format, the proxy’s buffers and workers, and the Bloch engine – is in Internals.