Create several FMR projects (simple)

Text of the script

 

function Create_several_FMR_projects() {

 

var cancel = false;

var extension;

 

BrainVoyagerQX.ShowLogTab();

BrainVoyagerQX.PrintToLog("Start creating several FMR projects...");

var nrfmrs = Input.getNumber("Please enter the number of FMRs to create");

if (nrfmrs != "undefined") {

var fmrnamearray = new Array(nrfmrs);

var stcprefixarray = new Array(nrfmrs);

var fileType = Input.getItem("Please select the filetype", ["DICOM", "SIEMENS", "GE_I", "GE_MR", "PHILIPS_REC", "ANALYZE"]);

if (fileType != "undefined") {

switch (fileType) {

case "DICOM":

extension = "*.dcm";

break;

case "SIEMENS":

extension = "*.IMA";

break;

case "GE_I":

extension = "*.I";

break;

case "GE_MR":

extension = "*.MR";

break;

case "ANALYZE":

extension = "*.hdr";

break;

default:

extension = "*.*";

}

 

// first ask for all the filenames

var counter, mosaicSizeX, mosaicSizeY, nrVolsInImg;

for (counter = 0; counter < nrfmrs; counter++) {

fmrnamearray.unshift(FileDialog.getOpenFileName(extension, "Please select the first file for FMR project " + (counter+1).toString()));

stcprefixarray.unshift("Project" + counter.toString());

}

// then set the parameters for all the FMR projects

var nrOfVols = Input.getNumber("Please enter the number of volumes per FMR", 252); // BVQX sample data: 252

var skipVols = Input.getNumber("Please enter the number of volumes to skip per FMR", 2); // BVQX sample data:2

var createAMR = MessageBox.information("Create pseudo-AMR files?", MessageBox.Yes, MessageBox.No); // BVQX sample data: yes

var nrSlices = Input.getNumber("Please enter the number of slices per volume", 25); // BVQX sample data:25

var byteswapAnswer = MessageBox.information("Do the data need to be byteswapped? <BR>(if byte order in data is different from current operating system)", MessageBox.Yes, MessageBox.No); // BVQX sample data: false

var byteswap = ((byteswapAnswer == MessageBox.Yes) ? true : false);

var bytesperpixel = Input.getNumber("Please enter the number of bytes per pixel", 2); // BVQX sample data: 2

var sizeX = Input.getNumber("Please enter the X dimension of each image", 64); // BVQX sample data: 64

var sizeY = Input.getNumber("Please enter the Y dimension of each image", 64); // BVQX sample data: 64

// var targetfolder = FileDialog.getExistingDirectory("Please select the directory where the projects should be saved");

 

var mosAnswer = MessageBox.information("Are the files mosaic? <BR>(Several images per file)", MessageBox.Yes, MessageBox.No); // BVQX sample data: yes

var mosaic = (mosAnswer == MessageBox.Yes);

if (mosaic) {

mosaicSizeX = Input.getNumber("Please enter the X matrix of the mosaic image", 320); // sample data: 320

mosaicSizeY = Input.getNumber("Please enter the Y matrix of the mosaic image", 320); // sample data: 320

nrVolsInImg = Input.getNumber("Please enter the number of volumes per file", 1); // sample data: 1

}

var info = "Number of volumes: "+ nrOfVols.toString() + "\nNumber of slices: " + nrSlices.toString() + "\nX dimension: " + sizeX.toString() + "\nY dimension: " + sizeY.toString() + "\nBytes per pixel: " + bytesperpixel.toString();

BrainVoyagerQX.PrintToLog(info);

 

// start creating the projects

if ((nrOfVols != "undefined") && (skipVols != "undefined") && (createAMR != "undefined") && (nrSlices != "undefined") && (bytesperpixel != "undefined") && (sizeX != "undefined") && (sizeY != "undefined")) {

for (counter = 0; counter < nrfmrs; counter++) {

BrainVoyagerQX.PrintToLog("Starting creation of project..." + fmrnamearray[counter]);

var bestand = new File(fmrnamearray[counter]);

var filepad = new Dir(bestand.path);

var targetfolder = filepad.path;

var docFMR;

if (mosaic) {

docFMR = BrainVoyagerQX.CreateProjectMosaicFMR(fileType, fmrnamearray[counter], nrOfVols, skipVols, createAMR, nrSlices, stcprefixarray[counter], byteswap, mosaicSizeX, mosaicSizeY, bytesperpixel, targetfolder, nrVolsInImg, sizeX, sizeY);

} else {

docFMR =  BrainVoyagerQX.CreateProjectFMR(fileType, fmrnamearray[counter], nrOfVols, skipVols, createAMR, nrSlices, stcprefixarray[counter],byteswap,

   sizeX, sizeY, bytesperpixel);

}

docFMR.SaveAs(stcprefixarray[counter] + ".fmr");

docFMR.Close();

}

BrainVoyagerQX.PrintToLog("Finished.");

} else {

cancel = true;

}

} else {

cancel = true;

}

} else {

cancel = true;

}

if (cancel) { BrainVoyagerQX.PrintToLog("Cancel"); }

}

 

 

Script during execution