KSFoundation  [October2024]
A platform for structured EPIC programming on GE MR systems
ksspsat.h File Reference
#include <KSFoundation.h>
#include "ksscan.h"

Data Structures

struct  KSSPSAT_VOLBORDER
 
struct  KSSPSAT_LOC
 
struct  KSSPSAT_DESIGN
 
struct  KSSPSAT_STATE
 
struct  KSSPSAT_MODULE
 

Macros

#define KSSPSAT_DESIGN_EXPLICIT_ON   1
 
#define KSSPSAT_MAXNUMSAT_IMPLICIT   6
 
#define KSSPSAT_MAXNUMSAT_EXPLICIT   6
 
#define KSSPSAT_DEFAULT_FLIP   95
 
#define KSSPSAT_DEFAULT_SPOILERAREA   3000
 
#define KSSPSAT_DEFAULT_SPOILALLAXES   1
 
#define KSSPSAT_DEFAULT_RFSTRETCH   1
 
#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}
 

Typedefs

typedef float KSSPSAT_IMPLICIT_ARRAY[KSSPSAT_MAXNUMSAT_IMPLICIT]
 
typedef int KSSPSAT_EXPLICIT_ARRAY[KSSPSAT_MAXNUMSAT_EXPLICIT]
 

Enumerations

enum  KSSPSAT_MODE { KSSPSAT_OFF, KSSPSAT_IMPLICIT, KSSPSAT_EXPLICIT }
 
enum  KSSPSAT_MODE_LOCS {
  KSSPSAT_IMPL_FREQ_NEG, KSSPSAT_IMPL_FREQ_POS, KSSPSAT_IMPL_PHASE_NEG, KSSPSAT_IMPL_PHASE_POS,
  KSSPSAT_IMPL_SLICE_NEG, KSSPSAT_IMPL_SLICE_POS, KSSPSAT_EXPL1, KSSPSAT_EXPL2,
  KSSPSAT_EXPL3, KSSPSAT_EXPL4, KSSPSAT_EXPL5, KSSPSAT_EXPL6,
  KSSPSAT_MAXNUMSAT
}
 
enum  KSSPSAT_RF_TYPES { KSSPSAT_RF_STD, KSSPSAT_RF_COMPLEX, KSSPSAT_RF_MAXRFTYPES }
 
enum  KSSPSAT_RF_SIDES { KSSPSAT_NEG =1, KSSPSAT_POS, KSSPSAT_HAD, KSSPSAT_PARA }
 

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)
 

Detailed Description

This file contains definitions for spatial saturation pulses