Search This Blog

Monday, February 3, 2020

Build 319 is released.

1. Re-ran the Neck registration example using new Tomasi feature detector.
Comparison of the largest displacement between t1 and t38 shows good registration (red over green).
2

2. Performance optimization in "Voxel Context" similarity measure.
3. Change the Parallel design within the "Voxel Context" similarity measure to reduce the memory bandwidth.
4. Implemented ABT subtest for FLEXR Neck Motion correction.
5. Optimized the VolumeConvolute3D( PDOUBLE ) function for speed. Checked presence of VOID voxels and simplified calculation without them.
6. FLEXRMC dialog box: removed irrelevant Similarity Measure options, leaving only {VoxelContext, Xcorr, URAL}
7. NIFTI Save:  implemented cal_min\cal_max fields save (Window Center\Width), so it can be
properly opened by other software (f.e. Mango).
8. Fixed the defect so the 3D Crosshair Cursor only getting synchronized when the UI is in the "Select Mode". Otherwise it was repositioning when LMB click during {Zoom,WindowLevel,etc}
9. Fixed precision problems with 3D Crosshair cursor.
10. UI Interface: introduced new items  under Main Menu>Registration :
       a) FLEXR-MC (motion correction)
       b) FLEXR-3D (general deformable registration).
11. NainMenu>Workflows: introduced the CT lung workflow item. This only include the FLEXR3D item with the default parameters suitable for COPD registration project.
12. Layer Control dialog is fully resizable now by pulling any of the 4 corners.
13. MainMenu>File>Open RAW Image:  any number of files can be selected for simultaneous load.
14. MainMenu>File>Open  FireVoxel document : any number of files can be selected for simultaneous load.
15. When the last window of the current document is about to close, the Save option is offered.
16. Implemented ROI Multi-Layer averaging operation : under Main Menu>Roi>Average ROI Layers

Wednesday, January 29, 2020

Build 318 is released.

1. Consolidated all the variants of the Foerstner feature detector and removed related redundancies.
2. Changed BiCal UI so the corrected volume is always displayed, additionally\optionally overlaid by the bias field.
3. BiCal dialog :  Background Preserve\Morph feature is activated if AirMorphRad<1000. Otherwise it is skipped. Reset the default dialog parameter to 1000.
4. Full re-engineering of the Feature Point detection functionality.  UI menu changed to include Tomasi Feature detector.
5. Developed  a novel Basic Feature Detector method similar to structure tensor logic but without taking the gradient - working directly with the signal values. One advantage over the Structure Tensor method is that the Detector Threshold values can be expressed in Signal values.
5a. Exposed both Tomasi and Basic feature detectors through UI.
6. Implemented generic dialog box Specify Three Double values. This allows some common task to reduce burden on the User to go through several dialogs.
7. Exposed a Threshold parameter for Feature Point detectors and used the Specify Three Doubles dialog for the Feature point detectors.
8. Tensor Structure feature response: Replaced Separable (non-isotropic) Gaussian smooth filter with the Isotropic spherical filter.
9. Using the isotropic Tomasi feature detector resulted in Lund registration substantial improvement to:  Average\Median\Max error of   1.01\0.90\3.25 mm.
10. When loading NIFTI integer volume, check if there are only 2 signal values are present [0,Sig]. In that case offer User an option to load as Binary ROI.
11. Implemented VROI rasterization from Vector Menu and toolbar button
12. Provided a combined menu for ROI>{Clear Inside [Z0,Z1] interval,Clear Outside [Z0,Z1]}.

Tuesday, January 28, 2020

Build 317A is released.
1. FLEXR : enabled the option for the GRBF interpolation.
2. Code prunning to remove unused\secondary FLEXR variants.
3. Re-enabled the "Preserve FOV" option during the Volume Transform.

Sunday, December 15, 2019

Build 317 is released.

1. Fixed defect and provide x8 speed up for Voxel Context similarity measure.
2. Fixed defect while cloning the dynamic volumes.  For some reason the DICOM header of the 0th timepoint was cloned over the rest. So now it  uses all timepoint headers appropriately. This defect occurred  while doing motion correction on the DTI  5-slice kidney mosaic.
3. Fixed the defect in KSFAPv2 procedure. This was due to an earlier upgrade of the Ridge detection function to REAL output.
4. DICOM Open dialog box: corrected selection  behavior of the "Copy" and "Delete" buttons.  Now the checked items are considered for the whole tree, not just the subtree of the selected item.
5. Removing redundant records during the DICOM tree construction: was slow on the large collectrons (32,000 files).  Optimized and sped up from 16 sec to 2 sec and added the Progress indicator.
6. Modified the PR_SendMessageInterval so when (DoProgress==false) there is no action and unwanted hourglass would not appear
7. Remove the "Double Pass" option from the BiCal Research dialog.
8. FVX ParSVD :  with Epsilon precision:  change the Eps to be a relative to the norm of the Right Hand Vector.
9. Conjugate Gradients for Linear Equations: made corrections when NAND happens within the main iteration loop
10. Restored the AVX2-base Vector Dot Product function for about 20% speed-up in BiCal. It appears however that the AVX2 slightly looses precision
11. Argazi (Texture) Edge detector : fixed defects in determining the direction of the gradient vector. (defects were in the ORANGE structure initialization).
12. ARGAZI Image gradient: updated normalization based on the radius and vicinity weights so that the value of the gradient closely matches the derivative taken from the voxel values.
13. Introduce advanced BiCal variant  BiCal# base on the Gradient detection only. This skips the Edge detection and Constrained Smoothing stage.  Number of the UI parameters will be removed
14. Removed basic BiCal dialog. Old BiCal+ menu item and dialog where optimized and rename a new basic BiCal.  New BiCal# menu item and dialog were introduced.
15. Complete new ABT: BiCal subtest including {Brain,Breast,Abdomen} and synthetic chessboard images overlaid with  exp(k*X),exp(k*Y),exp(k*Z) fields for precise reconstruction.

Thursday, November 28, 2019

Build 315 is released




1. Implemented the initial variant of the FLEXR - Motion Correction dialog box.






































2. Implemented an initial variant of the FLEXR- Motion Correction wrapper code. Tested in on 10-timepoints Neck DCE-MRI.
3.  Fixed one of the memory leak defect in FLEXR-MC.
4. Parallelized the TPS parameter calculation in FLEXR-SYMM variant
5. Added a "Output : Real Voxels" option in the FLEXR-MC dialog.
6. Fixed the Dynamic Dimension defect when loading DWI images and selecting the "Selected and Checked" DICOM load.
7. Replaced DICOM load choice with "Selected only" and "Checked only".

Monday, November 18, 2019

Build 314 is released.

1. Implemented a module for synthetic testing off some Dynamic Models. Tested the M49 DCE Reference Region model and fixed the calculation defect.  Residual cut by half.

2. Enable the 3D Raster Paintbrush.  Added the correspoding option to Paintbrush Dialog.


3.  When the "Synchronized 3D Cursor" UI option is enabled, it now works when the Paintbrush is applied.








4. Implemented far more precise (when K->0) formula  Func[i] = Integ<G(u)*exp(-K(X[i]-u))du> 
This affects many models using this convolution, resulting in higher precision for cases when K->0

5.  Fixed 32-bit buffer size overflow in VA_VolGetAll() function.
6.  Added Progress bar to  Layer Arithmetic operations.

Saturday, November 16, 2019

Build 313A is released.
1. Model 49 (DCE Reference Region): corrected crash in voxel-wise processing.
2. . Model 49 (DCE Reference Region): added ABT subtest

Saturday, November 9, 2019

FireVoxel Build 313 is released.

1. Imlemented Model #49: MR 2 compartment Reference Region model (Yankeelov 2005)
2. RoiStats4D dialog: displaying the curve without offset now to avoid visual confusion.
3. UI:  Re-enabled BiCal option to output the Bias field
4.  Verified that Model #49 with the Identity test, i.e. running on Reference Region returns RR {Ktrans,Ve} with high precision.
5. Open DICOM dialog:  corrected the defect when Copy operation and there are several source files
in different source folders but with the same file title resulting in overwritten files.
6. Fixed a typo error in the determining DICOM frame exact acquisition time.
7. Implemented Volume>Voxel Value Conversion> Change Transparent Signal.
8. Model #31 (MRTM2) fixed defect when the output Parametric Map color scheme was not initialized.
9. Fixed defect in 2-Volume Max Difference function
10.  Removed redundant HCT correction from some models

11. Added ability to add\modify the DICOM tags  {TE,TR,FA}


12. Fixed the defect in Dynamic Experiment dialog: when the IF and Tissue Concentration dialogs appear then {TE,TR,FA} fields are filled properly from the Volume DICOM tags

13. Enabled the FWTE calculation of the Concentration->Signal so it can be used in Modelling.

14. Extended the "Edit DiCOM tags" functionality to optionally Edit all the timepoints at once.














15. Volume Value Conversion dialog (after DICOM load): change layout to make functionality more clear so Add\Mul are applied ONLY when loading as INTEGER.











16. Corrected the imperfect shape of the Raster Paintbrush at small radii.

Wednesday, October 16, 2019

Build 312 is released.

1. N4explorer: corrected default parameter ranges. Report now display the elapsed time for the entire optimization.
2. OverlapError calculation in N4explorer: changed the ThresholdDelta=>1e-3 to make it much faster.
3. Speed optimization from Xcorrelation measure calculation  in the context of the discrete registration (x3 speed up achieved).
4. FLEXR deformable registration:  integrated the new XCORR measure and achieved a very good result on COPD Lung registration with :  1.32\1.24\4 mm.
5. Speed optimization of the XCORR measure on the very large volumes.
6. Incorporated XCORR measure into the FLEXR deformable registration for 1.2 mm accuracy on Lung COPD data
7. FLEXR:  insured the "Identity Test" with high precision, i.e. registering the volume to itself and checking high precision with Average Err < 1e-5.

9.a higher precision in Lung registration, now at Average \Median = 0.98\0.80 mm.
Also, even better visual quality on the Neck registration:
10. Doublechecked the legacy interpolation modules and finally cleared it to be perfectly fine.
11. Extended the *.time functionality to support VFA dynamic dimension.
12. Various TPS transform optimizations.
13.  In "TAC: Curve View" dialog fixed defect so the Tissue Properties are transferred properly for the Input Functions.


Tuesday, September 24, 2019

Build 311 is released.

1. Fixed memory defect in (freeing PDICOMREC)
CVol::CreateDynCrdFromFF , FV_LoadDicomFileSet

2.  Implemented 99% automatic MRI  Neck segmentation algorithm for the Neck registration project.





3. Implemented 1st variant of Neck MR registration.
4.  Added the Volume>Signal Value Conversion>Scale To Interval function

5. Fixed defect in retrieving the VROI coordinates in Seed functions (was adding extra slice).

6. Implemented ZNCC (Zero Normalized Cross Correlation) measure in the ReMIND deformable registration code.  This is for Neck Motion Correction project.  Result seems to be visually as good as the original SSC metric.

7. Performed comparison of   ABS(ZNCC)  vs.  Max(0,ZNCC) similarity measure

7. Finetuned the ReMIND:XCORR variant of the deformable registration on the COPD lung images. It reaches good 2/0.9 mm average/median error.
8. Implemented the OE (Overlap Error) measure with the specified precision of threshold so it could work on REAL volumes.
9. Nonuniformity measurement functions:  added the automatic CopyToClipboard feature.
10. Fixed DICOM load defect when 8-bit volume with Rescale\Intercept was present (GE-CT)
11. Fixed crash in Landmark Registration (Cloning of the DICOM header when number of target slices exceeds source).

Monday, September 9, 2019

Build 310 is released.

1. OpenDicom dialog box:  fixed defect in "Show Compatible Volumes" functionality.
2. OpenDICOM dialog box: added a function (button) "Uncheck All" - removes all checks from All
items
3. Developed a 3-choice customizable dialog for a more transparent UI.
4. Eliminated the performance inefficiency in Zooming\Affine functionality. All zooming functions are impacted and the most visibly the FilmView.
5. Major rework of the OpenDICOM dialog box. Separating the Selection and Loading functionality.  New ability to load arbitrary combinations of compatible Series.
6. Implemented "Average Nonuniformity Measurement" for all opened documents.

Saturday, September 7, 2019

FireVoxel Build 309A is released.

1. OpenDICOM dialog box: Impemented he "Dicom Tag Difference" tool that detects all different DICOM tags for 2 selected files and copies the aggregate result to the clipboard.

2. DICOMREC structure modification to include additional BOLUS attributes.

3. Incorporated the Bolus attributes into DICOM 4D Volume construction logic so the CIR31 series 98 are properly separated now.




4.  OpenDicom dialog new feature:  all composite SERIES corresponding to dynamic
Volumes With Contrast are now marked with the red frame around the SL or VL icon.
5. BACKSPACE button is now working as a DELETE button when not the single Polyline is selected.

6. N4explorer: Fixed  typo errors in displaying the result.

Thursday, September 5, 2019


BICAL paper evaluation:Suggested parameters accessible through BiCal+ functionality:

Abdominal GRASP case

head BPD  7T

Breast FAT\FGT case

Friday, August 30, 2019

Build 309 is released.

1. Corrected crash defect in Nonuniformity Measurement.
2. DICOM load: fixed defect in logic combining separate SERIES into a 4D Volume.  Some Volumes
were incorrectly assembled
3. BiCal: Corrected  defect in core BiCal procedure (edgemap reuse in iteration).
4. BiCal: fixed the defect with isotropic volumes DoublePass
5. Fixed the crash in Noise calculation function on REAL images
6. BiCal: enabled REAL input images.
7. Fixed N4explorer  parameter setting for Noise.
8. NIFTI load: fixed defect loading single NIFTI 4D file.
9. Further correction in DICOM logic of parsing the 4D files.
10. Fixed a defect in loading of b-values from SIEMENS DICOM file.

Tuesday, August 27, 2019

Build 308 is released.

1. DICOM Tags for Diffusion: fixed the B-factor (B-value) loading for the following Philips models:
{ Ingenia, Achieva, Multiva, Intera }
2.Bical now outputs REAL type image as the result of the processing.
3. BicalResearch dialog: Implemented an additional option "DoublePass" which further improves the results.

4. BiCalResearch dialog: redesign of several fields - now includes the AirThreshold in Noise units, a separate Baackground panel.

5. Streamlined the BicalResearch dialog box.  Change the AirLevel and EdgeLevel parameters to
be in Noise units to make it more robust across the images.

6. Combine two Non-uniformity measurement items into one under the MainMenu>Nonuniformity

7.  MainMenu>Transform>Rotate
Corrected several defects with the global parameter in the dialog.

Saturday, August 24, 2019


Best parameters for processing the GRASP\Abdominal case, from BicalResearch dialog:

Tuesday, August 20, 2019

Build 307 is released.

1. BiCal: Fixed the Edge detector threshold defect
2. BiCal Research dialog: Exposed the  Edge Radius, Edge Threshold parameters.
3. BiCal Research dialog: Noise calculation is done automatically and that level is
displayed so the User can set Edge threshold based on noise units.
4. Bical Research dialog: introduced new Basis functions:
{Legendre,Chebyshev1,Chebyshev2, Regular Polynomial,Cosine}
5. BiCal research dialog: removed the "SVD tau" parameter.  "Background morph" parameter is now in (mm).
6. Fixed defect (crash) when during the Polyline drawing the User presses delete without pressing ESC first.
7. Enable the load of TIME\NIFTI   4D files.

Thursday, August 15, 2019

FireVoxel Build 306 is released.

1. Implemented function to load all the FVX documents from the specified folder.
This is under the MainFrame>File> menu.

2. Removed a failing check for the presence of the VC++ 2019 Redistributable.
3. Added a voxelwise CJV calculation under the Nonuniformity>Measure menu.
4. Corrected the calculation of CJV measure according to B. paper.

5. Re-implemented N4-explorer tool with 5 optimization measures
{ roiaNU,robNU,CSM,blobCJV,voxCJV }
   a) Start application and File>Open FireVoxel Folder.
   b) Specify location of the folder, press OK.  All fvx files in that folder will be opened.
   c) Application will check if all documents have the same number of Active ROIs.
   d) Press MainMenu>Nonuniformity>N4 Explorer. Corresponding dialog will show up.
   Define the ranges for the optimization parameters. Set the constant parameters using the
   N4 parameter dialog box in the left lower corner.
   e) Optimization will run. Final dialog will show up. Each of 5 optimization results will be displayed   in the Info dialog and the same result will be copied to the clipboard.


6. BiCal Dialog: introduced the bool variable : "Output Foreground" that outputs the ROI mask for the foreground voxels used in BiCal calculation.

Monday, August 12, 2019

FireVoxel Build 305 is released.

1. BiCal optimization matrix construction: Further acceleration which becomes dominant at the higher degree of the field.
2. BiCal:  Removed a non-existent option for field in AIR from use interface, since there is only VOIDFIELD option is allowed in the Air.  BiCal research dialog box is simplified .
3. FireVoxel start-up:  added checks that VC++ Redistributable 2013 and 2019 are present.
4. Fixed the incorrect initial volume zooming position when loading a document (expressed in Debug version only)
5. MRTM2 (model #31):  added an Output parameter : RMSE/Average Signal.
6. MainMenu>Nonuniformity>Measure NU of two layers  added the CJV measure.
7. Added ABT subtest for MRTM2.
8. Fixed the issue with the negative field in the RoiStat3D dialog box. Implemented a custom
dialog field function for double precision floats with the user-specified precision (from 15 to 30 decimal positions).

Wednesday, August 7, 2019

Build 304D is released.

1. Added additional diagnostics for the Input\Output files presence during the N4 execution.
2. BiCal dialog: Changed the Subsample parameter to Processing Scale parameter [0.1,10]. Fixed the defects and tested. Note: now the larger number will slow down processing, smaller will speed up.
3. Substantial BiCal speedup when using Processing Scale = 0.5. On 7T brain a minor reduction in quality with NU raising from 0.051 -> 0.057
4. BiCal: Speedup in matrix construction

Tuesday, August 6, 2019

FireVoxel 304B is released

1. Modified the command line construction for the N4*.exe tool.

Tuesday, July 30, 2019

FireVoxel Build 304A is released.

1. Fixed defect in reporting the diagnostics message for the Windows system GetLastError() function.
2. Enable N4-ANTS to run on the Real volume (this also allows a direct N4 second pass on the same image).
3. Added an execution notification while N4 command line is running.
4. Performed optimizations so the BiCal single run reaches very close result to BiCal double run but without extra time or blurring of the double run.
5. MRTM2 model (#31) added the Relative Error output parameter

Monday, July 29, 2019

FireVoxel Build 304 is released.

1. Dynamic Experiment dialog:  implemented a model-specific Input Function panel naming. When model is changed a proper panel name {Input function, Reference Curve,...} are displayed.

2. Restored the "Process Single curve" from the main menu without the need to create a document.

3. Restored the MRTM2 model:












4.  Rotate Volume UI parameters are now remembered between the calls.

Tuesday, July 23, 2019

Build 303C is released.

1. Transform>Rotate and Create New : corrected the naming of the 1st layer.
2. Corrected the Defect in LayerControl:Save ALL.  Now the folder is allow to have a dash "-" in it.

Monday, July 22, 2019

FireVoxel Build 303B is released.

1. Transform>Rotate Ortho  : fixed the defect with the naming of the 1st layer.
2. Enabled the Progress bar inside the  Transform>Rotate Ortho
3. Added extra diagnostics to the intermittent Save All defect.
Build 303 is released.

1. Provided 5 research branches for FLEXR deformable registration algorithm. They all achieve
fairly good registration of about 1.5 mm, but further development is needed to match the state of
the art 0.9 mm on the COPD datasets.

2. Provided BiCal Research dialog with most internal parameters exposed.

Tuesday, April 16, 2019

Build 302 is released.

1. Model 17: IVIM-segmented:  removed the check for non-pysiological fitting parameters, so  no VOID voxels are generated.
2. Implemented a variant of LES-SVD solution that find solution of specified precision.
This greatly accelerates the Jacobi-based parallel solution.
3. Big acceleration in Flow field computation for RGBF.
4. Corrected the Flow field transform to produce an identical interpolated volume for the Identity transform.
5. Improved diagnostic messages for Layers with the different Resolution\Orientation from the Base Layer.
6. Implemented ABT-subtest:  Lung landmark-based registration using GRBF
7. Corrected algorithm for the specified precision LES-SVD solution.
8. Expanded Transfrom>MakeIsotropic function to include option for Target resolution with the dialog.
9. Transform>Rotate Volume:  now rotates the centers of the existing VROIs and approximates the resulting size of the VROIs.
10. Integration of the existing code for large deformation registration : project ReMIND
11. Optimization of the memory and speed for ReMIND.
12. GRBF Dense Field optimization: replace SVD with HouseholderQR for speed. Removed the initial Affine transform alignment,
13. Implemented Key (PET) model 48.
14. Implemented Input Function dispersion in Model 48 which can be used in other models.
15. Enabled MagTrace to work on Real Volumes.

Tuesday, March 26, 2019

FireVoxel Build 301 is released.


1. Fully parallelized the Foerstner Map calculation (for keypoints detection)
2. Corrected Jacobian map calculation for vector fields.
3. Corrected crash when calculating the EDT (Euclidian Distance Transform) in Parallel mode.
4. Corrected the MST optimization so the resulting displacement only resides in the areas
permitted by the Source ROI mask.
5. Processed a problematic case for Monkey->Reference registration.  Use Average (not PCA) to accumulate.  Use 3vox Rad in URAL gradients. Then following:





Pre-1

Post-1
6.  Expanded Tissue attribute structure to accommodate up 16 values.
7. Introduced FVX document v9.  Provided backward compatibility
for FVXv8.
8. Tissue Properties (such as T1 for ROI) are now save as part of the FVX file.
9. Eliminated legacy FDX_Text() dialog support,  Microsoft corrected the DDX_Text bug
for "double" fields.

Sunday, March 17, 2019

FireVoxel Build 300 is released.

1. Implemented corrected Optimum Location calculation in the 3-D Euclidian Distance Transform.
2. Implemented capability for each Dynamic Model to restrict allowed Concentration Conversions to the specified subset.
3. Dialog Parametric Maps calculation:  presently selected Tissue and Input Function concentration conversions are displayed.

4. Dialog Layer Control: "Save ALL" functionality is implemented to Save ALL marked layers to the specified folder in specified RAW format.

Tuesday, March 5, 2019

FireVoxel Build 299 is released.

1.  Corrected FileExists function to work with files >2GB.
2. When loading the *.time file with TE info, the TE info should be in (sec) in *.time file.
At the same time the DICOM header stores that info in (ms), so the proper synchronization
was implemented.
3.  Implemented fully parallel algorithm for "Equlidian Distance Transform over Sampled Function" with the complexity O(n) where  n is the number of voxels. This is an important functional block inside larger Viterbi algorithm inside the Deformable Registration project.
4. Implemented new Model "3. Interleaved 2-state profile".

Sunday, March 3, 2019

FireVoxel Build 298 is released.

1.  Fixed defect in MouseHolder segmentation: segmented subvolumes retain the 4D attributes of the original 4D Volume.
2. Fixed general defect:  when 4D volume with dynamic dimension other than time is transformed, the dynamic coordinates of the transformed volume are now correctly preserved.

Tuesday, February 19, 2019

FireVoxel Build 297 is released.

1. Coded an initial variant of the FLEXR-AutoWarp function.

2. New easy and effective scenario for lung CT segmentation. EdgeWave with the seed, followed up by the F7 (contour fill function). Later on: make a standalone one-step function, with the simple dialog box, option to separate the L\R lungs, and possibly fully auto without specifying the seed.


3. Extended the document comparison function to include the Vrois comparison, with diagnostics.

4. Cleared up ABT subtest for the Foerstner landmarks. Extended Foerstner landmark detection to volumes including ROIs. Included lung+ROI Foerstner landmark detection into ABT.



5. Fixed the defect inside the recently optimized RoiGetNumberOfVoxels function.

6.  Fixed defects inside the SegmentMouseHolder function.
7.  SegmentMouseHolder function:  all output segmented subvolumes are identical size now.
8. Added ABT facility to verify several (all) opened documents.
9.  Added ABT subtest for Mouse Holder Segmentation

Tuesday, February 5, 2019

FireVoxel Build 296 is released.

1. Re-engineered the structure of all Dynamic Framework subtests of the ABT. Now unlimited number of subtests is allowed for all models. Any source format is allowed :
{ FVX,MIDAS,DICOM }.  Added a new subtest for Tofts (Model8) from DICOM.

2.  Continue work on the ParSVD (1-sided Jacobi SVD/parallel). Replace the NR-SVD in the VolumeTransform function, fixed uncovered defects in ParSVD.

3.  Added an ABT subtest for the Volume4D->PCA function.

4. Use ParSVD engine inside the Vol4D_PCA function.

5. Replace and Unified all the instances of the SVD usage to a  ParSVD (1SJA) function.
This excludes the underdetermined systems.

6. String consolidation to the module-specific string tables.

Tuesday, January 15, 2019

FireVoxel Build 295 is released.

1. FLEXR project : Implemented the Minimum Spanning Tree  for the part-based model derived from the set of Foerstner landmarks.
2.  FLEXR project :  implemented label optimization algorithm on the MST.
3. Added an interna "Current Working Directory" to UserInterfaceOptions, independent from TempDir.
4.  Corrected loading defect of COPD files (ANALYZE) from dir-lab
5. Implemented loading of the landmarks from COPD datasets.

6.  Implemented the Gaussian Radial Basis Function landmark matching (without regularization)
7. Integrated Eigen bsdSvd() procedure for substantial precision improvement.

8. Integrater GRBF into the general landmark workflow. Implemented FlowField reslice.
Tested GRBF on COPD1 dataset with 300 landmarks (Gauss RBF Sigma = 30 mm)

Exhale (Blue) over Inhale (Red)  BEFORE registration

Exhale (green) over Inhale (Red)  AFTER Registration.

Implemented Regularized variant of the GRBF deformation (large sigma = 100mm, lambda=1e-3)

AFTER (left)  vs  BEFORE (right)  same slice Z
9. Corrected DICOM loading defect due to a different internal encoding of the date and daytime inside the DCMTK data structure.

10.  Implemented Gradient Descent and Conjugate Gradient algorithms as a postprocessing for solving the system of Linear equations. Presently used after SVD so that it reduces the RMSE by x10.

11. Corrected defect of CT_BASIC concentration conversion not working in Dynamic Modelling.
12. Introduced an ABT subtest for TOFTS (Model8) on CT.

Friday, January 4, 2019

Build 294B is released.

1. Save Alignment Transform (to *.vtf) - corrected situation when FVX Temporary directory was changed.

2. Added a separate attribute "VTF_Folder" to User Options structure.

3.  Raster Paintbrush dialog:  rename "Parametric Maps" field into "Real Volumes"

2. Updated workflow for registering the Primate Atlas to the selected Monkey reference brain. Changes included:
    a) Using 0-component of the PCA (principal component) conversion of 4D volume.
    b) Using T2-layer as Anatomy for the label map.
    c) Label registration output is generated using Nearest Neighbor interpolation.
    d) Label map is clipped by the provided Atlas Brain Mask.


Thursday, January 3, 2019

FireVoxel 294A is released.

1. Removed the Temporary Folder cleaning upon the FireVoxel exit.  Now User views the Temporary folder size in the User Options dialog box.  User has an option to clean Temporary folder with dedicated button.

Monday, December 17, 2018

FireVoxel 294 is released.

1.  Implemented loading of the superPK files (*.idwc) into the FireVoxel dynamic component module.
2. Implemented an initial version of the MRTM0 model (with the reference function supplied by the superPK).
Reference function loaded from superPK
MRTM0 model fitting starting from time t* (equilibration time).

3. Implemented the MRTM model (using the loaded superPK reference function)


4. "Extract Atlas ROIs":  corrected so that the original Atlas layer is not removed after the operation.

5. Defect correction: In many operations when the layer configuration is modified, so if the floating Layer Control dialog is opened it was not updated leading to the confusion.
6. Extended "Integer Range Parser" support function used in many UI scenarios (f.e. Extract Atlas Layers).


7. Implemented workflow for Affine registration of Primate Atlas to the selected Squirrel Monkey Reference image.


8. Layer control dialog : added information about the number of marked layers. This is helpful when a very large number of layers is present.

9.  When layers are removed and a single layer is left, we set its Alpha to 100%

10.  Added the "Discard Alignment" item to the Transform menu.
11. Added "Save Alignment" function to the Transform menu.

12. UserOptions dialog:  added a general option for all the operations\transform which so far had only the default Interpolation. Now user specifies such "Default Interpolation".  Works including the Transform>Alignment tools.

13. Implemented a general high performance function for converting 4D Volume into array of Principal Component using PCA (resulting in new 4D Volume of components).



Sunday, December 9, 2018

FireVoxel Build 293 is released.

1. NIFTI-4D: Corrected the each frame timing calculation using nim->toffset\nim->dt information.

2. Implemented a custom processing option for DICOM Open Folder dialog box.  Rarely DICOM datasets have SeriesUID unique for each slice, so the option was introduced to parse them correctly.








3.  Defect fixed: In NIFTI file obtained from SPM (type FLOAT64) there were many entries with the value  NotANumber, so this was making Firevoxel crash.  Fixed by changing these values to 0, during the load.

Thursday, November 29, 2018

FireVoxel Build 292 is released.

1.  Several correction and improvements in the Dialog "View TAC"
2.  Major (x10+) acceleration of the saving FVX files with many slices, by improving the saving embedded dicom header structure.  This is done by using new DCMTK functions DcmOutputBufferStream::.
3.  Provided more robust  IsMatchingVolume function (used mainly in ABT).  Problem was that for many 4D volumes, there are one or more dimensions (f.e. time and b-values) with repeating values in the dynamic coordinates.  This introduces randomness in the sorting order of different timepoints, so matching function was often failing without reason.  Addressed randomness by checking against all suitable dynamic coordinates.
4. Restored the ABT subtest and full functionality for the ChestWall\FullBreast segmentation. This was disabled during the upgrade of MagTrace contour tool while constructing the ground truth for the lung segmentation (ISMRM).
5. Implemented the "Display unmarked layers" checkbox inside Layer Control dialog, functionality to display the unmarked entries thus expanding possibilities of working with the Layers.
6. Modified Transform>Translate  and Transform>Rotate function to work on several Marked volumes, while unmarked volumes are stationary.
7. Layer Control dialog:  added  "Mark\Unmark All layer" button.

Wednesday, November 28, 2018

Build 291B is released.

1.  Corrected defects in X-correlation registration dialog
2. Provided individual menu item for the Mouse brain->Atlas registration
3. Provided new functionality to remove a range of dynamic points specified by the User.

Sunday, November 25, 2018

FireVoxel Build 291 is released.

1. AutoFocus 3D: implemented a variant with "af Uniform Scale" option.
2. Implemented 1st version of the Mouse brain (automatically extracted from Multiholder) registration to the standard Atlas.
3.  Corrected binning inside the AutoFocus\MutualInformation registration.
4. Corrected run-away defect with MI_NORM\Affine.




Saturday, October 27, 2018




FireVoxel Build 290 is released.

1.  Fixed error when rasterizing Vector polylines and splines:  now the NULL pen is used so the rasterized boundary is much closer to the vector one.



2. Provided complete re-work of the MagTrace Toolkit:
Added several new image snapping modes, manual modes Alt1,Alt2,Alt3.  Rasterization tools.

3. Added DCMTK functions for loading DICOM headers directly from memory buffer (avoiding the intermediate file creation).  Resulted in x10 loading speedup.

4. Provided an initial version of VIBE4D + GRASP4D hybrid merge function.


FireVoxel Build 289B is released.

1. WM Lesions batch:  corrected defect when NIFTI orientation was not properly written.
     Improved the progress indicator so the name of the currently processed file is displayed.

Friday, October 26, 2018

FireVoxel 289A is released.

WM lesions batch job:  fixed the resolution problem when saving result to .NII file.

Tuesday, October 23, 2018

FireVoxel Build 289 is released.

1. Kidney segmentation FAP:  reduced number of UI parameters.
Adjusted default parameters for good processing of all 6 sets (L+R).

2. Open RAW dialog box:  implemented filter option to open ALL RAW formats (*.im;*.img;*nii;*.nia;*.nii.gz;*.mgh;*.mgz;*.time)

3. New version of Kidney FAP segmentation.

4. Batch processing of FLAIR  WM lesions.

5.  Corrected defect when the resolution of NIFTI saved file turns into (1,1,1)mm

6. RoiStats3D dialog:  added the value of the bin to the info displayed on the MouseMove over the histogram.

Monday, October 22, 2018

1. Kidney segmentation: FAP
Added User constant to extend the height of the kidney bounding box, not exposed on UI.
Effective Bounding box is displayed to the User at the end of procedure to provide feedback.

2.  Completely parallelize multi-slice projections such as MIP.  Added a progress bar since
it takes longer time to display.

3.  Extended Kidney FAP segmentation to include the notion of Collecting System.





Wednesday, October 17, 2018

FireVoxel 288C is released.

1. Kidney segmentation: algorithm modification to remove 99%+ of medulla voxels which accidentally appear on the surface of the kidney.

2.  ROI>Morphology>Inflate\Deflate functionality:  made corrections so the Inflate-Deflate combinations are reversible with the same parameter.  Fixed side-effects in   BrainAtrophy and FLAIR Lesions functions.

Tuesday, October 16, 2018

FireVoxel Build 288A is released.

1 Fixed defect when in KSFAP segmentation there are overlapping voxels 

in the final Cortex vs Medulla masks

Wednesday, October 10, 2018

FireVoxel Build 288 is released.

1.  EdgeWave-2D : implemented a pure 2D function which is very fast, works on a single slice.  It reuses the EdgeWave-3D code.

2. New algorithm for fully automatic MouseHolder segmentation (based on MIP and EdgeWave2D)
3. Implemented automatic rotation of the individual chambers to normal orientation. Youtube video posted.
4.  Implemented UI functions: Close Current Document (All Views)
and Close All Documents.
5. Open Dicom dialog box:  Implemented function to check all Children of the selected item.  Then few undesirable items could be easily unchecked and the rest loaded. Youtube video uploaded.

Thursday, October 4, 2018


FireVoxel Build 287 is released.

1. Implemented the separate volume output for the Rodent Multi-holder segmentation.

2. Implemented EdgeWave Multipass agent for Rodent Multi-holder segmentation.

3. First User version of the MultiHolder segmentation tool with dedicated dialog box
.

Wednesday, October 3, 2018

FireVoxel 286B is released.

1. Fixed the missing top\bottom slices issue in KSFAPv2 and KSFAPv3.

2.  Enabled KSFAPv3 on smaller cropped kidney volumes.

Tuesday, October 2, 2018

FireVoxel Build 286A is released.

Kidney DTI motion correction workflow:  fixed the issue when Mosaic DICOM info is missing so a dialog box pops up
Build 286 is released.

1. Implemented F9 switch between regular projection and MIP projection.
2. Implemented a new workflow KSFAPv3 (kidney segmentation) where User is not required to specify the mid-axial kidney slice and just need to make a bounding rectangle on MIP projection.

Wednesday, September 26, 2018

Build 285 is released.

1. Implemented function and User interface to change the DICOM Tags   Position\Orientation within the headers of loaded Volume.  This requires to view images in 3DSlicer.

2.  Implemented a new workflow for the Kidney motion correction in Mosaic-based DTI exam.
Enabled saving to DICOMs compatible with the 3D Slicer DTI framework.

3.  Optimized the Display Cache internals during the Paint Brush painting.

4.  Provided and ABT subtest for the new DTI kidney motion correction workflow.

5.  Provided a video manual for the new DTI kidney motion correction workflow.
.

Thursday, August 23, 2018

Build 284 is released.

1. Provided backward compatibility Load support for FVX file format V7.
2. New UI function:  MainMenu>Volume>Crop>Crop Current Slice.
3.  Complete re-engineering of internal DICOM representation in Volumtric entities.
4. Number of image in SIEMENS mosaic is automatically determined and initiated
inside the Mosaic-to-volume dialog box.
5.  When document is saved, the names of the individual layers are modified so the Path to
the layer file is removed and only the file title is left.
6.  After performing Mosaic->to->Volume operation for DTI image, save to DICOM, reload DICOM: the volumes are correctly loaded with full diffusion info preserved.
7.  After performing Mosaic->to->Volume operation for DTI image, save to FireVoxel, reload  FireVoxel doccument,  ave to DICOM, reload DICOM: the volumes are correctly loaded with full diffusion info preserved.
8.  Extended Mosaic->Volume function to all layers, including ROIs.  So Multilayer entity is converted properly.
9. Implemented the ABT subtest Dti Mosaic registration mini-workflow
10.  Fixed the issues with saving\loading a single ROI layer to DICOM.

11. OpenDicom dialog:  corrected the preview panel so it works for the ROI images saved in DICOM.


Sunday, August 12, 2018

FireVoxel Build 283E is released.


1. Fixed a glitch when  older FVX file contains and ROI layer without the orientation corresponding to Base layer.  This originated in older versions of FVX when new ROIs missed the proper orientation.  This caused the problem when cropping such multilayer volume using VROI.  Now software warns properly, allows you to proceed and the ImageOrientationPatient is automatically repaired in the problematic layer.

2.  MainMenu>Vector>Enclose Connected components menu command:
     a) If more than 1 component was detected, message is displayed informing about the # of  CCs.
     b) Displayed Slice is changed to the center of the largest created VROI.
     c) Corrected defect: when connected component is withing a single slice, we change the slice               so that the resulting VROIs becomes visible immediately.

3. Fixed defect in Layer Control dialog:  disallowed removing the layers when it results in no layers left.
   
     

Saturday, August 11, 2018

FireVoxel 283D is released.

1.  In Layer Control dialog when doubleclick on the Layer name and edit control shows up:
      a) Enabled immediate focus - so User can start type immediately.
      b) The whole current string is initially selected.
      c) Ctrl+A selection is enabled.

2.  User Interface Options dialog:  introduced new option "Load Dynamic Modelling setting from  FVX". 
      x - loads the setting for all models saved in the FVX file
      o - keeps all current settings, disregards the one from FVX file.

       (This is save as FireVoxel config file between the sessions).

3.  When Vol>Crop>All Layers is activated, the new document is created with the name of Source document +  "_crop".  Before it was the name of current Active layer in the source document.

4.  Vector ROI Properties dialog now remembers if   MM\VOX units were used in the previous instance (within the same FireVoxel session).

5.  Vector ROI Properties dialog box:  added a button and function "Scale Dimensions" by the specified scale.  Resulting Rectangle is cropped by the volume dimensions.

6.  In generic "Specify double value" dialog corrected so that the focus is immediately located inside the data field.

7.  In generic "Specify integer value" dialog corrected so that the focus is immediately located inside the data field.

Thursday, August 9, 2018

FireVoxel 283C is released.

1.  Updated the ConvertMosaicTo3DVolume function and the corresponding UI.
2.  Tested the workflow for motion correction of kidney DTI  2D+t.


Monday, August 6, 2018

FireVoxel Build 283B is released.

1. Removed the FilmView state when working with the single slice volumes.  It is always in Single Slice mode now.

Tuesday, July 24, 2018

FireVoxel  283A is released.

1.  Added the DisplayTransform record to the ZOOMCACHE structure.  This fixes some defects when switching between Film and Slice view and pulling the Zoom from cache.

2.  When new layer is added\created, immediately copy the Display Matrix of the current working layer.  This way the drawing can be done correctly on the newly created layer.

Monday, July 23, 2018

FireVoxel 283 is released.

Expanded Model0 to exactly match the hyperparameters and statistics parameters of the Roi Stats3D dialog box.

Friday, July 20, 2018

FireVoxel Build 282 is released.

Dynamic modelling,  models  #{43,46,47}

1.  Added a hypermarameter:  "Minimal Arterial Delay"
2. When iterating through the Arterial Delay values using the Arterial Delay Delta ensured that
the Max Arterial Delay value is always evaluated for any Delta.

Monday, July 16, 2018




Build 280 is released.

1.  Implemented "Arterial Delay" parameter for Model #43 2CXM.  Fitting residuals can be dropped by half on the test images.







2.  Changed default processing when loading DICOM images with IPP\IOP tags missing.  This allowed to load some volumes as 3D as desired.

3. Implemented new dynamic model "2CFM {vp,ve,Fp,PS} - Gridded Simplex Local Optimization".  This implementation contains the Arterial Delay output parameter.

4.  Fixed defect : when new ROI layer is created from Layer Control dialog box, the ROI slice dicom image position and orientation were not properly initialized.  This resulted in defect when loading the ROI volumes saved as 3D DICOM.

Wednesday, July 11, 2018

FireVoxel Build 279 is released.

1.  Combine and synchronized the Volume viewing pipeline (3D->Screen  affine transform) with the transform used to convert paintbrush screen coordinates into the voxel coordinates.  This fixed the defects with drawing ROI on various projections.

Tuesday, June 26, 2018

FireVoxel 278A is released

1.  First version of the Multiprojection re-alignment tools:  by {vector,sector}

2. Corrected overflow problem in Volume Smoothing\Ridge Segmentation with 15-bit images
 in "Separate Mouse exam problem"

3. Corrected a rare defect when VROI specified on a single slice, used for cropping, result in cropping of 2 slices.

Wednesday, June 20, 2018

FireVoxel  Build 277A is released.


1.  Fixed defect in  Main Menu>ROI>Extract Atlas ROIs

Monday, June 18, 2018

FireVoxel Build 277 is released.



1.  When adding a new layer, check now for the orientation to be the same as the current base layer.
Otherwise, display a warning  but give an option to proceed anyway (f.e. when image originating from MIDAS file and orientation info is not available).

2. Implemented new alignment function under Registration menu.  Having 2 volumes loaded we can now align their centers and rotate it to match their orientation.

3.  Register>Using DICOM tags only was renamed.


FireVoxel 276B is released.

1.  Fixed defect while loading NIFTI files with qfac=1 (LEFT-HANDED orientation)

Tuesday, June 12, 2018

FireVoxel 276A is released.

1.  Corrected a new defect in NIFTI->DICOM orientation conversion code.

2. Added a new function - "Main menu>Volume>Make 0-signal transparent"

Friday, June 8, 2018

Build 276 is released.

1.  Corrected problem with the NIFTI orientation encoding when loading and saving NIFTI files.

Friday, June 1, 2018

FireVoxel Build 275 is released.

1.  First public version of the  Automatic Lung segmentation from GRASP 4D.

Monday, May 28, 2018

1. Implemented fix when the TAC txt file was crashing the "Open Tac as 4D volume" function.
2.  Model #4 - added hyperparameters  {Start,End} to process only the range of points.

Tuesday, May 15, 2018

Build 274 is released.

1. Algorithmic work for Lung GRASP 4D fully automatic segmentation.  Working on 5 cases of Deep+Normal breathing trying to achieve a good result so lung spirometry measurements can be performed.

2.  Fixed the memory leak in Bical function.

3.  Corrected the allocated size of each memory block for Volume slice, so it is no more than required.  It also resulted in smaller system memory use and accurate resource usage reporting.

4.  BiCal with  "Output Field" option now otput "double precision Real" volume.

5.  Fixed defect when volume is converted to isotropic for processing and then back to original resolution, so there are no void voxels on the fringe.

6.  BiCal\EdgeWave front age calculation:  fixed defect occurring in 1-voxel margins of the volume.  This was resulting in unpleasant margin artefacts in BiCal.

7.  Fixed memory leak in DetectRelativeRidge function.

8.  Detected and removed all memory leaks from Lung\Trachea 4D segmentation.

9.  Optimized speed of  MemVol -> SetBox -> (MemVol) function which is the basis of many other
functions.  This reduced the time of Lung segmentation results  construction (not segmentation itself) x3 times.

10.  Parallelized CreateBasicDicomHeader function which is basis of many functions on UI.

Wednesday, May 2, 2018

FireVoxel Build 273 is released.

1. Corrected Multi-modal registration using crosscorrelation measure.

2. Restored the ABT test for Registrations.

3.  NIFTI File Load\Save:  enabled writing the modality name into the "description" field of the
NIFTI header.

4.  ANALYZE file format File Load\Save:  enabled writing the modality name into the "description" field of the NIFTI header.

5.   Enabled NIFTI Save\Load of 64-bit Real volume data.

6.  Implemented corrections to the "Manual\Automatic" Concentration baseline calculations.

7.  Implemented ABT subtest for the Lung\Trachea  4D segmentation

8.  Implemented new Concentration converison method  (S/S0-1)/(CR*T1)

Tuesday, May 1, 2018

Build 272 is released.

1.  Concentration conversion options and dialog: added an option for User to select manual baseline
and specify number of timepoints to skip and to average.

Wednesday, April 25, 2018

Implemented initial prototype of 100% automatic trachea segmentation from Lung MR GRASP 4D.


Saturday, March 24, 2018

Build 271 is released.

1. Added the "3D Processing" option to the  Segment>Detect Bright ridges  dialog box.

2. Implemented "3D Processing" option in the Volume>Smooth  dialog box.

3. VolumeSmooth in 2D:  implemented a pure, fully parallel 2D function.  It is D-times faster,
where D is the diameter of the apperture than the previous version.  D can be quite large  20-50 in
some segmentation scenarios.

4.  Developed morphological segmentation "Unlump ROI" procedure.
Applied to Lungs ROI.  When lungs are segmented, usually both lungs ROI is lumped together and to other small objects.  Unlump procedure runs and then we take 2 largest connected components.



5. Implemented an initial prototype of fully automatic Lung segmentation from MRI
GRASP-4D exam.

6.  Implemented the Volumetric Time Profile dialog.

7.  Implemented the Lung Static split based on   ROI Union algorithm.  Applied the volumetric time profile dialog to it.

















8.  Optimized the VolumeSmooth function in 2D with  Appeture weights = constant.  Used 256-bit AVX2 instructions for array  Multiply\Add

9.  Introduce the Roi Compression switch ON\OFF which can be called withing heavy computation procedure to substantially speed up calculation, without involving Users input into  User Interface Options.

10.  In multiprojection view with the synchronized cursor:  allow now to scroll through time synchroniously.

11. VolumeSmooth function: added the processor test for AVX2 capabilities.

12.  Change to menu item Volume>Change Volume Type function.  Added ROI->to->Integer conversion UI item.

13.  Implemented first prototype of fully automatic trachea segmentation from 4D MRI GRASP.

14.  Added the spirometry measures {FEV1,FVC} to Volumetric profile curve dialog.

15.  Implemented a new scheme to reduce the DICOM header size stored with each slice.  Space reduction is x2.

16. Implemented a single dialog to specify 3 integer values. This serves as the dialog for Lung splitting at the moment.

Thursday, March 15, 2018

Achieved new result in Chest Wall segmentation from GRASP data.

Sunday, March 11, 2018

FireVoxel Build 269D is released.

1.  Texture  Analysis Batch:  fixed defect when disabled layers were processed too.
2. Texture  Analysis Batch:  fixed the text format defect in the results (.17g)
3. Texture  Analysis Batch: Implemented Use Full Range checkbox option


4.  Layer Control dialog:  when adding a new Layer with the resolution different from the base,
the resolutions are displayed and option is offered to proceed and change the new layer resolution
to the base.

Saturday, March 10, 2018

FireVoxel 269C is released

1.  Fixed defect in RoiStats3D\Blob Statistic when blob can contain some void voxels.

2.  Rolled back to 269A and reimplemented changes of 269B.

Thursday, March 8, 2018

1. ROI colume Save to DICOM:  removed the dialog specifying the change of encoded bits.


2. Fixed defect with constructing DICOM  TAG_STUDY_UID when volumes originated from data other than DICOM. This allows outside packages to load volume with all slices.




3. Removed the MainMenu>File>Save DICOM Extended option and merged the functionality with the >Save DICOM function.

4.  Dialog RoiStats3D:  Save Stats - increased the text output precision of real numbers to the full possible precision.

5.   Texture Analysis batch log file: increased the text output precision of real numbers to the full possible precision.


Wednesday, March 7, 2018

Build 269A

1. Fixed the defect when not able to save a ROI to DICOM

Friday, March 2, 2018

FireVoxel Build 269 is released.


1.  Fixed defect in RoiStats3D dialog: when mouse cursor sliding over bin was displaying the
info for a different adjacent bin.

2.  Layer control dialog defect fix:  When User was unchecking non-Active layer, that layer became Disabled but Active.

3.  Fixed defect when  Volume was not loading with "SVD error" message.

4.  Texture Analysis Batch:  corrected the defect so that only Enabled volumes are analyzed.

5.  Fixed defect in  Volume>Convert Integer to Real.  Incorrect volume type was previously produced.

6.  Fixed normalization of the result when computing  Texture Gradient\Texture Edge maps.

7.  Enabled texture analysis batch for Real type volumes.

8. Added the "EMD\SigDiff" checkbox option for using different metrics for the gradient.

9.  Rename the "Texture Analysis Batch" dialog and menu item into "Region Heterogeneity Analysis Batch".

10.  Changed the Histogram calculation logic, so that the Range specified by the User kept as the Histogram range.  This applies both to RoiStats3D and Batch Dialog.

11. Fixed crash defect with Nbins=0, for {RoiStats3D, Heterogeneity Analysis Batch }

12. RoiStats3D : Made Histogram parameters preserved between the sessions of dialog.

Monday, February 26, 2018


FireVoxel Build 268 is released.


1. Implemented a workflow for Kidney Segmentation from Arterial Phase v.2.  Only requires a bounding rectangle of kidney on a single slice.












2. Finalized the Texture Analysis Batch workflow, with numerous new options:  Histogram Range,  Exclude Outside Range,  Voxel Weight Type.

3.  Implemented a stand-alone function for Texture Gradient Single Scale.  Replace radio buttons with ComboBox element.

4.  In Kidney Segmentation Workflow, the Kidney Patient side is automatically detected and the corresponding layer name is modified.