var scriptPath = VQ.getScriptPath().replace(/[/\\][^/\\]+$/, "");
var outputPath = "";
//---------------------------------------------------------
// Start - Only for internal testing (users can disregard or remove)
//---------------------------------------------------------
var isTestModule = scriptPath.indexOf("extern/t/TestModules") !== -1;
VQ.setTestMode(isTestModule);
function getArtifactOutputFolder() {
const cachePath = VQ.getCache();
return cachePath.substring(0, cachePath.lastIndexOf("/") + 1) + "artifacts";
}
if(VQ.isTestMode()){
outputPath = getArtifactOutputFolder();
}
//---------------------------------------------------------
// End - Only for internal testing (users can disregard or remove)
//---------------------------------------------------------
VQ.setConfig('Data/resampleROI',1,true);
VQ.setConfig('DICOM/useFOR', 1, true);
VQ.setConfig('Data/orientation', "Neurologist (LR)", true);
VQ.setConfig('Data/dynamicSupportEnabled', true, true);
VQ.setConfig('Data/disableMIPViewer', false, true);
//----------------------------------------------
var dm = VQ.dataManager();
var mw = VQ.mainWin();
var CTTestData = scriptPath + "/data/CTSynthetic.dcm";
var PETTestData = scriptPath + "/data/PETSynthetic.dcm";
dm.openDat(0, [CTTestData]);
dm.openDat(1, [PETTestData]);
if(outputPath == ""){
outputPath = scriptPath;
}
var jsonPath = outputPath + "/vq_widgets.json";
var htmlPath = outputPath + "/vq_widgets.html";
//These are the UI objects that a user might like to interact with
var userObjs = true;
//These are other UI structural objects that dont have an effect on process behaviors
//they are typical just UI organizational objects
var nonUserObjs = false;
var writeToLog = false;
var writeToHtml = true;
var writeToJson = true;
//Create and start the file tracking
if(writeToHtml) VQ.beginWidgetDumpHtml(htmlPath);
if(writeToJson) VQ.beginWidgetDumpJson(jsonPath);
//BrainAtlas
var brainUI = VQ.BrainAtlasTool();
if(writeToLog) VQ.logWidgets(brainUI, userObjs, nonUserObjs);
if(writeToHtml) VQ.dumpWidgetsHtml(brainUI, userObjs, nonUserObjs);
VQ.dumpWidgetsJson(brainUI);
//MultiAtlasSegmentation
var masUI = VQ.MASTool();
if(writeToLog) VQ.logWidgets(masUI, userObjs, nonUserObjs);
if(writeToHtml) VQ.dumpWidgetsHtml(masUI, userObjs, nonUserObjs);
if(writeToJson) VQ.dumpWidgetsJson(masUI);
//3DController
var vtkUI = VQ.vtkController();
if(writeToLog) VQ.logWidgets(vtkUI, userObjs, nonUserObjs);
if(writeToHtml) VQ.dumpWidgetsHtml(vtkUI, userObjs, nonUserObjs);
if(writeToJson) VQ.dumpWidgetsJson(vtkUI);
//CorticalThicknessWidget
var corticalUI = VQ.getCorticalThicknessTool();
if(writeToLog) VQ.logWidgets(corticalUI, userObjs, nonUserObjs);
if(writeToHtml) VQ.dumpWidgetsHtml(corticalUI, userObjs, nonUserObjs);
if(writeToJson) VQ.dumpWidgetsJson(corticalUI);
//MModeSegmentationWidget
var MModeSegUI = VQ.getMModeSegmentationTool();
if(writeToLog) VQ.logWidgets(MModeSegUI, userObjs, nonUserObjs);
if(writeToHtml) VQ.dumpWidgetsHtml(MModeSegUI, userObjs, nonUserObjs);
if(writeToJson) VQ.dumpWidgetsJson(MModeSegUI);
//Operators
//Remember that getWidget for operators is context specific.
//There is not a dedicate getWidget on the operator object itself.
//User must switch to the view and operator and then call getWidget on the VQ object
function dumpWidgets(View, Op){
if(mw.setViewMode(View, Op)){
if(writeToLog) VQ.logOperatorWidgets(userObjs, nonUserObjs);
if(writeToHtml) VQ.dumpOperatorWidgetsHtml(userObjs, nonUserObjs);
if(writeToJson) VQ.dumpOperatorWidgetsJson();
}
}
// Slice View
dumpWidgets("Slice View", "Reorientation/Registration");
dumpWidgets("Slice View", "3D ROI Tool");
dumpWidgets("Slice View", "Cropping");
dumpWidgets("Slice View", "Distance/Annotation");
dumpWidgets("Slice View", "Modeling");
dumpWidgets("Slice View", "Arithmetics");
dumpWidgets("Slice View", "Time Series");
dumpWidgets("Slice View", "Filtering");
dumpWidgets("Slice View", "Splitting");
// Multi View
dumpWidgets("Multi View", "Layout");
dumpWidgets("Multi View", "Distance/Annotation");
dumpWidgets("Multi View", "Modeling");
dumpWidgets("Multi View", "Arithmetics");
dumpWidgets("Multi View", "Filtering");
dumpWidgets("Multi View", "Splitting");
// Tile View
dumpWidgets("Tile View", "Time Series");
if(writeToHtml) VQ.endWidgetDumpHtml();
if(writeToJson) VQ.endWidgetDumpJson();
if(VQ.isTestMode()){
VQ.quit();
}