Data Structures | |
struct | KSSPSAT_VOLBORDER |
struct | KSSPSAT_LOC |
struct | KSSPSAT_DESIGN |
struct | KSSPSAT_STATE |
struct | KSSPSAT_MODULE |
Typedefs | |
typedef float | KSSPSAT_IMPLICIT_ARRAY[KSSPSAT_MAXNUMSAT_IMPLICIT] |
typedef int | KSSPSAT_EXPLICIT_ARRAY[KSSPSAT_MAXNUMSAT_EXPLICIT] |
Functions | |
void | ksspsat_init_design (KSSPSAT_DESIGN *ksspsat_design, const char *desc) |
void | ksspsat_init_state (KSSPSAT_STATE *ksspsat_state) |
STATUS | ksspsat_eval_design_satplacements (KSSPSAT_DESIGN *spsat_design, KSSPSAT_STATE *spsat_state, const SCAN_INFO *ref_scan_info) |
STATUS | ksspsat_eval_satplacements_dump (KSSPSAT_STATE *spsat_state) |
int | ksspsat_any_implicit (KSSPSAT_DESIGN *spsat_design) |
int | ksspsat_any_explicit (KSSPSAT_DESIGN *spsat_design) |
int | ksspsat_any_satpulses (KSSPSAT_DESIGN *spsat_design) |
STATUS | ksspsat_eval_volborder (KSSPSAT_VOLBORDER *v, SCAN_INFO my_scan_info[KS_MAX_RF_SCANINFO], int nslices, float freq_fov, float phase_fov, float slthick) |
STATUS | ksspsat_eval_validatedesign (KSSPSAT_DESIGN *spsat_design) |
STATUS | ksspsat_eval_design (KSSPSAT_MODULE *spsat_module, KS_KSPACE_DESIGN *kspace_design, KS_SLICETIMING_DESIGN *slicetiming_design, float slthick) |
STATUS | ksspsat_eval (KSSPSAT_MODULE *spsat_module, KS_KSPACE_DESIGN *kspace_design, KS_SLICETIMING_DESIGN *slicetiming_design, float slthick) |
STATUS | ksspsat_pg (KSSPSAT_MODULE *spsat_module, int start_time, KS_SEQ_CONTROL *ctrl) |
void | ksspsat_scan_seqstate (const SCAN_INFO *slice_pos, KS_DYNAMIC_STATE *dynamic, KSSPSAT_MODULE *spsat_module) |
void | ksspsat_set_design_implicit_from_UI (KSSPSAT_IMPLICIT_ARRAY implicit_slthick) |
STATUS | ksspsat_set_design_explicit_from_UI (KSSPSAT_LOC *explicit_locs) |
STATUS | ksspsat_set_design_from_UI (KSSPSAT_DESIGN *spsat_design) |
Variables | |
SCAN_INFO | scan_info [] |
KSSPSAT_MODULE | ksspsat = KSSPSAT_INIT_MODULE |
#define KSSPSAT_DESIGN_EXPLICIT_ON 1 |
#define KSSPSAT_MAXNUMSAT_IMPLICIT 6 |
#define KSSPSAT_MAXNUMSAT_EXPLICIT 6 |
#define KSSPSAT_DEFAULT_FLIP 95 |
Default flip angle for a saturation pulse
#define KSSPSAT_DEFAULT_SPOILERAREA 3000 |
Default spoiler area
#define KSSPSAT_DEFAULT_SPOILALLAXES 1 |
By default, spoil on all boards
#define KSSPSAT_DEFAULT_RFSTRETCH 1 |
By default, do not stretch RF pulses
#define KSSPSAT_EXPLICITSAT_DISABLED 9990.0 /* Set by UI on MR-scanner */ |
#define KSSPSAT_IMPLICITSAT_DISABLED 9999.0 /* Set by UI on MR-scanner */ |
#define KSSPSAT_DEFAULT_SSITIME 1000 /* try to reduce this value */ |
#define KSSPSAT_INIT_VOLBORDER {0.0, 0.0, 0.0, 0.0, 0.0, 0.0} |
#define KSSPSAT_INIT_LOC {DEFAULT_AXIAL_SCAN_INFO, 0.0, KS_NOTSET, KSSPSAT_OFF} |
#define KSSPSAT_INIT_LOC6 {KSSPSAT_INIT_LOC, KSSPSAT_INIT_LOC, KSSPSAT_INIT_LOC, KSSPSAT_INIT_LOC, KSSPSAT_INIT_LOC, KSSPSAT_INIT_LOC} |
#define KSSPSAT_INIT_LOC12 {KSSPSAT_INIT_LOC, KSSPSAT_INIT_LOC, KSSPSAT_INIT_LOC, KSSPSAT_INIT_LOC, KSSPSAT_INIT_LOC, KSSPSAT_INIT_LOC, KSSPSAT_INIT_LOC, KSSPSAT_INIT_LOC, KSSPSAT_INIT_LOC, KSSPSAT_INIT_LOC, KSSPSAT_INIT_LOC, KSSPSAT_INIT_LOC} |
#define KSSPSAT_INIT_IMPLICIT_ARRAY KS_INITVALUE(KSSPSAT_MAXNUMSAT_IMPLICIT, 0.0) |
#define KSSPSAT_INIT_EXPLICIT_ARRAY KS_INITVALUE(KSSPSAT_MAXNUMSAT_IMPLICIT, KSSPSAT_OFF) |
#define KSSPSAT_INIT_DESIGN {KS_INIT_DESC, KSSPSAT_INIT_IMPLICIT_ARRAY /*slthick*/, KSSPSAT_INIT_IMPLICIT_ARRAY /*slthick*/, KSSPSAT_INIT_LOC6, KSSPSAT_DEFAULT_FLIP, KSSPSAT_RF_COMPLEX, KSSPSAT_DEFAULT_RFSTRETCH, KSSPSAT_DEFAULT_SPOILERAREA, KSSPSAT_DEFAULT_SPOILALLAXES, PSD_ON, PSD_OBL_RESTRICT, KSSPSAT_DEFAULT_SSITIME, KS_INIT_LOGGRD} |
#define KSSPSAT_INIT_STATE {KS_INIT_DESC, KSSPSAT_INIT_VOLBORDER, KSSPSAT_INIT_LOC12, 0, 0, 0, 0} |
#define KSSPSAT_INIT_SELRF6 {KS_INIT_SELRF, KS_INIT_SELRF, KS_INIT_SELRF, KS_INIT_SELRF, KS_INIT_SELRF, KS_INIT_SELRF} |
#define KSSPSAT_INIT_TRAP6 {KS_INIT_TRAP, KS_INIT_TRAP, KS_INIT_TRAP, KS_INIT_TRAP, KS_INIT_TRAP, KS_INIT_TRAP} |
#define KSSPSAT_INIT_MODULE {KSSPSAT_INIT_DESIGN, KSSPSAT_INIT_STATE, KSSPSAT_INIT_SELRF6, KSSPSAT_INIT_TRAP6, 0} |
typedef float KSSPSAT_IMPLICIT_ARRAY[KSSPSAT_MAXNUMSAT_IMPLICIT] |
typedef int KSSPSAT_EXPLICIT_ARRAY[KSSPSAT_MAXNUMSAT_EXPLICIT] |
enum KSSPSAT_MODE |
enum KSSPSAT_MODE_LOCS |
enum KSSPSAT_RF_TYPES |
enum KSSPSAT_RF_SIDES |
void ksspsat_init_design | ( | KSSPSAT_DESIGN * | ksspsat_design, |
const char * | desc | ||
) |
[out] | ksspsat_design | Pointer to the design to be initialized |
[in] | desc | Destriction |
void |
void ksspsat_init_state | ( | KSSPSAT_STATE * | ksspsat_state | ) |
[out] | ksspsat_state | Pointer to the state to be initialized |
STATUS ksspsat_eval_design_satplacements | ( | KSSPSAT_DESIGN * | spsat_design, |
KSSPSAT_STATE * | spsat_state, | ||
const SCAN_INFO * | ref_scan_info | ||
) |
[in] | spsat_design | Pointer to the design |
[out] | spsat_state | Pointer to the state whose locations will be populated |
[in] | ref_scan_info | Reference slice orientation used for the implicit sat bands |
STATUS | SUCCESS or FAILURE |
STATUS ksspsat_eval_satplacements_dump | ( | KSSPSAT_STATE * | spsat_state | ) |
spsat.txt
On the MR system (PSD_HW), this file will be located in /usr/g/mrraw
, while in simulation it will be located in the current psd directory.
STATUS | SUCCESS or FAILURE |
int ksspsat_any_implicit | ( | KSSPSAT_DESIGN * | spsat_design | ) |
[in] | spsat_design | Pointer to the design |
TRUE | (1) or FALSE (0) |
int ksspsat_any_explicit | ( | KSSPSAT_DESIGN * | spsat_design | ) |
[in] | spsat_design | Pointer to the design |
TRUE | (1) or FALSE (0) |
int ksspsat_any_satpulses | ( | KSSPSAT_DESIGN * | spsat_design | ) |
[in] | spsat_design | Pointer to the design |
TRUE | (1) or FALSE (0) |
STATUS ksspsat_eval_volborder | ( | KSSPSAT_VOLBORDER * | v, |
SCAN_INFO | my_scan_info[KS_MAX_RF_SCANINFO], | ||
int | nslices, | ||
float | freq_fov, | ||
float | phase_fov, | ||
float | slthick | ||
) |
The FOV volume depends on the positions and thickness of the slices to be excited by the main module. This assumes that all slices have the same orientation.
[out] | v | The calculated FOV volume |
[in] | my_scan_info | The locations for the slices |
[in] | nslices | The number of slices |
[in] | freq_fov | FOV along the frequency encoding direction |
[in] | phase_fov | FOV along the phase encoding direction |
[in] | slthick | Slice thickness |
STATUS | SUCCESS or FAILURE |
STATUS ksspsat_eval_validatedesign | ( | KSSPSAT_DESIGN * | spsat_design | ) |
[in] | spsat_design | Pointer to the design to be validated |
STATUS | SUCCESS or FAILURE , the latter means the design is not valid |
STATUS ksspsat_eval_design | ( | KSSPSAT_MODULE * | spsat_module, |
KS_KSPACE_DESIGN * | kspace_design, | ||
KS_SLICETIMING_DESIGN * | slicetiming_design, | ||
float | slthick | ||
) |
[out] | spsat_module | Pointer to the spatial sat module to be evaluated |
[in] | kspace_design | Pointer to the k-space design of the main module, needed for FOV and resolution |
[in] | slicetiming_design | Pointer to the slice timing design, needed for the slice locations |
[in] | slthick | Slice thickness |
STATUS | SUCCESS or FAILURE |
STATUS ksspsat_eval | ( | KSSPSAT_MODULE * | spsat_module, |
KS_KSPACE_DESIGN * | kspace_design, | ||
KS_SLICETIMING_DESIGN * | slicetiming_design, | ||
float | slthick | ||
) |
Initialize the state, validate the design, evaluate the design and log the sat band's location
[out] | spsat_module | Pointer to the spatial sat module to be evaluated |
[in] | kspace_design | Pointer to the k-space design of the main module, needed for FOV and resolution |
[in] | slicetiming_design | Pointer to the slice timing design, needed for the slice locations |
[in] | slthick | Slice thickness |
STATUS | SUCCESS or FAILURE |
STATUS ksspsat_pg | ( | KSSPSAT_MODULE * | spsat_module, |
int | start_time, | ||
KS_SEQ_CONTROL * | ctrl | ||
) |
[out] | spsat_module | Pointer to the spatial sat module |
[in] | start_time | Start time within the relevant KS_SEQ_CONTROL, mostly used when embadding the spsat module into an external KS_SEQ_CONTROL |
[in,out] | ctrl | Pointer to the KS_SEQ_CONTROL the spsat module will be embedded into. If NULL, it is assumed that the spsat module is indipendet and will use its own internal KS_SEQ_CONTROL. |
STATUS | SUCCESS or FAILURE |
void ksspsat_scan_seqstate | ( | const SCAN_INFO * | slice_pos, |
KS_DYNAMIC_STATE * | dynamic, | ||
KSSPSAT_MODULE * | spsat_module | ||
) |
[in] | slice_pos | Slice orientation for the current slice |
dynamic | Dynamic parameters, used for updating the sat band locations according to the Mphysical and Mlogical transformations. The former is used for prospective motion correction while the latter is used for, e.g, rotating the blades in a PROPELLER sequence. | |
[in,out] | spsat_module | Pointer to the spatial sat module |
void ksspsat_set_design_implicit_from_UI | ( | KSSPSAT_IMPLICIT_ARRAY | implicit_slthick | ) |
[out] | implicit_slthick | Array of implict sat band's thickness values |
STATUS ksspsat_set_design_explicit_from_UI | ( | KSSPSAT_LOC * | explicit_locs | ) |
[out] | explicit_locs | Array of explicit sat band locations |
STATUS | SUCCESS or FAILURE |
STATUS ksspsat_set_design_from_UI | ( | KSSPSAT_DESIGN * | spsat_design | ) |
[out] | spsat_design | Pointer to a spatial sat's design |
STATUS | SUCCESS or FAILURE |
SCAN_INFO scan_info[] |
KSSPSAT_MODULE ksspsat = KSSPSAT_INIT_MODULE |