KSFoundation  [October2024]
A platform for structured EPIC programming on GE MR systems
ksgre_implementation.e File Reference
#include "ksdesign.h"
#include "ksscan.h"
#include "ksinversion.h"

Data Structures

struct  KSGRE_SEQUENCE
 

Macros

#define KSGRE_MINHNOVER   16
 
#define KSGRE_DEFAULT_SSI_TIME   200 /* which may allow us to use the same SSI for other sequence modules too */
 
#define KSGRE_DEFAULT_SSI_TIME_SSFP   100
 
#define KSGRE_INIT_SEQUENCE   {KS_INIT_SEQ_CONTROL, KS_INIT_READTRAP, KS_INIT_TRAP, KS_INIT_TRAP, KS_INIT_PHASER, KS_INIT_PHASER, KS_INIT_TRAP, KS_INIT_SELRF, KS_INIT_TRAP, KS_INIT_TRAP, FALSE};
 
#define KSGRE_PHASEENCODING_MEMORYPOOL_SIZE   105000
 

Functions

 abstract ("GRE [KSFoundation]")
 
 psdname ("ksgre")
 
STATUS ksgre_pg (int start_time)
 
KS_CORESLICETIME ksgre_scan_coreslice (const SCAN_INFO *slice_pos, KS_DYNAMIC_STATE *dynamic)
 
KS_CORESLICETIME ksgre_scan_coreslicegroup (const SCAN_INFO *slice_pos, KS_DYNAMIC_STATE *dynamic)
 
s64 ksgre_scan_scanloop ()
 
int ksgre_eval_ssitime ()
 
STATUS ksgre_scan_seqstate (SCAN_INFO slice_pos, KS_PHASEENCODING_SHOTCOORDS shot_coords)
 
const KSSCAN_LOOP_CONTROLksgre_get_loop_ctrl ()
 
void ksgre_init_imagingoptions (void)
 
STATUS ksgre_init_UI (void)
 
STATUS ksgre_eval_UI ()
 
STATUS ksgre_eval_setupobjects ()
 
STATUS ksgre_eval_TErange ()
 
void ksgre_set_kspace_design (KS_KSPACE_DESIGN *kdesign)
 
void ksgre_set_slicetiming_design (KS_SLICETIMING_DESIGN *slicetiming_design)
 
STATUS ksgre_set_loop_control_design (KSSCAN_LOOP_CONTROL_DESIGN *loop_design)
 
STATUS ksgre_eval_inversion (KS_SEQ_COLLECTION *seqcollection)
 
STATUS ksgre_eval_sat (KS_SEQ_COLLECTION *seqcollection)
 
STATUS ksgre_gradheat_play (const INT max_encode_mode, int nargs, void **args)
 
STATUS ksgre_eval_loops (KS_SEQ_COLLECTION *seqcollection)
 
STATUS ksgre_eval_scantime (KS_SEQ_COLLECTION *seqcollection)
 
STATUS ksgre_update_UI ()
 
STATUS ksgre_predownload_plot (KS_SEQ_COLLECTION *seqcollection)
 
STATUS ksgre_predownload_setrecon ()
 
float ksgre_scan_phase (int counter)
 
STATUS ksgre_scan_init (void)
 
void ksgre_scan_prescanloop (int nloops, int dda)
 

Variables

float ksgre_excthickness = 0
 
float ksgre_gscalerfexc = 0.9
 
int ksgre_slicecheck = 0 with {0, 1, 0, VIS, "move readout to z axis for slice thickness test",}
 
float ksgre_spoilerarea = 1500.0 with {0.0, 10000.0, 1500.0, VIS, "ksgre spoiler gradient area",}
 
int ksgre_sincrf = 0 with {0, 1, 0, VIS, "Use Sinc RF",}
 
float ksgre_sincrf_bw = 2500 with {0, 100000, 2500, VIS, "Sinc RF BW",}
 
float ksgre_sincrf_tbw = 2 with {2, 100, 2, VIS, "Sinc RF TBW",}
 
int ksgre_rfexc_choice = 0 with {0, 3, 0, VIS, "RF pulse 0(fast)-1-2(high FA) 3 (Hard non-sel)",}
 
int ksgre_kxnover = 32 with {KSGRE_MINHNOVER, 512, 32, VIS, "Num kx overscans for minTE",}
 
int ksgre_rampsampling = FALSE with {FALSE, TRUE, FALSE, VIS, "Rampsampling [0:OFF 1:ON]",}
 
int ksgre_extragap = 0 with {0, 100ms, 0, VIS, "extra gap between readouts [us]",}
 
int ksgre_minacslines = 16 with {0, 512, 16, VIS, "Minimum ACS lines for ARC",}
 
int ksgre_minzacslines = 16 with {0, 512, 16, VIS, "Minimum z ACS lines for ARC",}
 
int ksgre_pos_start = KS_RFSSP_PRETIME with {0, , KS_RFSSP_PRETIME, VIS, "us from start until the first waveform begins",}
 
int ksgre_ssi_time = KSGRE_DEFAULT_SSI_TIME with {32, , KSGRE_DEFAULT_SSI_TIME, VIS, "time from eos to ssi in intern trig",}
 
int ksgre_dda = 2 with {0, 200, 2, VIS, "Number of dummy scans for steady state",}
 
int ksgre_debug = 1 with {0, 100, 1, VIS, "Write out e.g. plot files (unless scan on HW)",}
 
int ksgre_imsize = KS_IMSIZE_MIN256 with {KS_IMSIZE_NATIVE, KS_IMSIZE_MIN256, KS_IMSIZE_MIN256, VIS, "img. upsamp. [0:native 1:pow2 2:min256]"}
 
int ksgre_abort_on_kserror = FALSE with {0, 1, 0, VIS, "Hard program abort on ks_error [0:OFF 1:ON]",}
 
int ksgre_ellipsekspace = TRUE with {FALSE, TRUE, TRUE, VIS, "ky-kz coverage 0:Rect 1:Elliptical",}
 
KSGRE_SEQUENCE ksgre = KSGRE_INIT_SEQUENCE
 
KSSCAN_LOOP_CONTROL ksgre_loopctrl = KSSCAN_INIT_LOOP_CONTROL
 
KSINV_MODULE ksgre_inv = KSINV_INIT_MODULE
 
KS_PHASEENCODING_COORD ksgre_phaseencoding_memorypool [KSGRE_PHASEENCODING_MEMORYPOOL_SIZE] = {KS_INIT_PHASEENCODING_COORD}
 
int ksgre_ssfp_endtime = 0
 
KS_KSPACE_ACQ kacq = KS_INIT_KSPACE_ACQ
 
int sequence_iopts []
 
int spgr_phase_counter
 

Detailed Description

This file contains the implementation details for the ksgre psd