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"); }
}