function Create_DMR_project() {
var cancel = false;
var nrOfVols, skipVols, createAMRanswer, createAMR, nrSlices, byteswapAnswer, byteswap, bytesperpixel, sizeX, sizeY;
var filetype = Input.getItem("Please select the DWI filetype", ["ANALYZE", "DICOM", "PHILIPS_REC"]);
var dwiprefix = Input.getText("Please enter a DWI prefix", "Project-");
var mosaicSizeX, mosaicSizeY, nrVolsInImg, mosAnswer, targetfolder, info;
BrainVoyagerQX.TimeOutMessageBox("Please select the first file...", 3);
var extension;
switch (filetype) {
case "ANALYZE": extension = "*.hdr"; break;
case "DICOM": extension = "*.dcm"; break;
case "PHILIPS_REC": extension = "*.par"; break;
default: extension = "*.*";
}
var firstfile = FileDialog.getOpenFileName(extension, "Please select the first file");
var nrOfVols = Input.getNumber("Please enter the number of volumes per DMR", 1);
if (nrOfVols == undefined) cancel = true;
if(!cancel) skipVols = Input.getNumber("Please enter the number of volumes to skip per DMR", 2);
if(skipVols == undefined) cancel = true;
if(!cancel) createAMRanswer = MessageBox.information("Create pseudo-AMR files?", MessageBox.Yes, MessageBox.No);
createAMR = ((createAMRanswer == MessageBox.Yes) ? true : false);
if(!cancel) nrSlices = Input.getNumber("Please enter the number of slices per volume", 23); // sample data:
if(nrSlices == undefined) cancel = true;
if(!cancel) 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);
byteswap = ((byteswapAnswer == MessageBox.Yes) ? true : false);
if(!cancel) bytesperpixel = Input.getNumber("Please enter the number of bytes per pixel", 2);
if(bytesperpixel == undefined) cancel = true;
if(!cancel) sizeX = Input.getNumber("Please enter the X dimension of each image", 128);
if(sizeX == undefined) cancel = true;
if(!cancel) sizeY = Input.getNumber("Please enter the Y dimension of each image", 128);
if(sizeY == undefined) cancel = true;
if(!cancel){
mosAnswer = MessageBox.information("Are the files mosaic? <BR>(Several images per file)", MessageBox.Yes, MessageBox.No);
mosaic = (mosAnswer == MessageBox.Yes);
if(mosaic) {
mosaicSizeX = Input.getNumber("Please enter the X matrix of the mosaic image", 640); // sample data:
mosaicSizeY = Input.getNumber("Please enter the Y matrix of the mosaic image", 640); // sample data:
nrVolsInImg = Input.getNumber("Please enter the number of volumes per file", 1); // sample data: 1
}
}
if(!cancel) {
BrainVoyagerQX.TimeOutMessageBox("Please select the target folder", 3);
targetfolder = FileDialog.getExistingDirectory();
}
if (!cancel) {
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);
}
if(!cancel) {
var dmrproject;
if(mosaic) {
var dmrproject = BrainVoyagerQX.CreateProjectMosaicDMR(filetype, firstfile,
nrOfVols, skipVols, createAMR, nrSlices,
dwiprefix,byteswap,
mosaicSizeX, mosaicSizeY, bytesperpixel, targetfolder,
nrVolsInImg, sizeX, sizeY);
} else {
var dmrproject = BrainVoyagerQX.CreateProjectDMR(filetype, firstfile, nrOfVols,
skipVols, createAMR, nrSlices, dwiprefix,
byteswap, sizeX, sizeY, bytesperpixel, targetfolder);
}
dmrproject.SaveAs(dwiprefix); // enter only the basename, ".dmr" is appended automatically.
}
}
For more information about the number of bytes per pixel parameter, see Bytes per pixel.