Search This Blog

Monday, August 3, 2020

Build 334 is released.

1. MagTrace defect fix:  when changing slice and restarting MagTrace the contour from the previous slice was restarted and invisbly modified.

2. MagTrace defect fix:  crash when the current spline is exited, deleted and the new spline is started.

Also, includes this fix: Open a document, draw a new spline, delete. Start MagTrace, crash.


3.  MagTrace defect fix:  crash when pressing Alt+1(add anchor) outside the existing selected spline.

4. MagTrace fix: Copy selected spline (Alt+5) or Copy from adjacent slice and snap - Crash. 

5. MagTrace Overlay Edges UI function: fixed the crash and moved this important function to under the Test Menu.  It is used to explain the results of Edge snapping during the regular MagTrace processing. The EdgeMap is upgraded to double Real values now.

6. VolSetBox\VolSetSlice functions: added support for 16->64 bit conversion. 

7. Fixed and extended the Rasterization issues:
Toolbar button : Rasterize selected vector entities
But also under MainMenu>Vector> there are
4 commands:
Rasterize selection
Rasterize All Splines
Rasterize All Polylines
Rasterize All VROIs

8. Added duplicate commands {Construct vector ROI,Construct vector Polygon} accessible through the MainMenu>Vector.

9. MagTrace dialog: updated the dialog title and the names of some parameters.

10. Updated the title of Polygon\Spline properties dialog.

11.  Polygon\Spline drawing : enabled alpha filling mode with variable opacity by switching to Gdiplus engine.  Fixed various issues related to "close contour" option and filling.
 
12. Code:  reduced and simplified m_position usage in entities.  
13. Polyline\Spline dialog:  when properties are changed the entity redraws immediately with the new settings without the need to close dialog box.

14. Improved Hermite spline construction when the contour is closed by correcting the Tangent calculation.



 

Friday, July 17, 2020

Build 333 is released.

1. Code simplification in PWR.H: replaced several function with CString& parameter by functions returning a CString.
2. DisplayVoxelInfo intermittent crash on some projections: fixed by ensuring a single voxel condition in VolGetBox.
3. Implemented  ABT subtest for Single Slice {SAT,VAT,IMAT,MUSCLE} segmentation.
4. Profiled the rounding function rint(x) vs.  floor(x+0.5). The latter is about 10 times faster so switched to the floor() implementation.

4. Streamline the MagTrace parameter dialog.

5. MagTrace node positioning is working correctly on all projections now.  On non-original projections it does not perform the image snapping and defaults to Ctrl mode (precise position).

6. Modified UserInterfaceOptions so that  {LeftSideOnRight,PosteriorSideOnTop} applies only to image loading.  Also options are now stored in the Firevoxel Config file.

7. Fixed defect that polylines and splines are only displayed in their respective projection\slices.  Also spline can only be restarted if it is Visible in the current view.

8. {Polylines,Splines} can only be rasterized if they reside in the original projection.

9. {Polylines,Splines} have a new attribute "Close Contour" available through the Polyline dialog box. This attribute works with the MagTrace::AutoClose parameter which is now operational.
Also, the Alpha attribute for {Polylines,Splines} was introduce which controls the transparency of the Fill.

10. FVX file format  v10 was introduced to accommodate new attributes in {Polylines,Splines}. Formats v2-v9 are supported for loading.

11. Optimization of all Affine reslice functions (Reslice.cpp)

12. SetView Projection (-/+) buttons for the angles to change projection in real time.
13. Volume>Smooth Across dynamic dimension:  works now in any image type including real (64-bit). 

14. Fixed defect: saving FVX file with PHI information present the verification dialog was popping up twice.

Tuesday, July 14, 2020

Build 332A is released.

1.  User Options {LeftOnRight, PosteriorOnTop} are activated upon the load even if the projection is specified in FVX document.
2.  User Options {LeftOnRight, PosteriorOnTop} changed in the UserOptions dialog change the relevant projections of all documents immediately.
3. Defect fixed:  when *.time file for  collection of 3D NIFTI images, the orientation of the 4D volume is corresponding to the orientation of the individual NIFTI files.
4. Initial View Layout now enabled for loading of FVX files.

Wednesday, June 17, 2020

Build 332 is released.

1. Code: Removed unused code from the Nifti Load\Save module.
2. Code optimization: replacing RECT wirh RECT2D, eliminating PR_RectWi etc.
3. VectDotProduct variants : use the fma( x,y,z ) function instead of (x*y)+z for better precision.
4. Replaced pf_sign function implementation with the shorter template  (T(0) < val) - (val < T(0))
5. PWR.H : Complete  efficiency code review.
6. Complete implementation of T1rho Biexponential model. This includes testing for Bi\Mono type and reverting to Mono when required.
7. TSL datasets after cropping preserve the dynamic coordinate properly now.
8. FLEXR registration preserves the TSL (and other possible non-DICOM dynamic) coordinates correctly.
9. Allow User-directed main toolbar alignment through User Options dialog box.
 10.  New Knee-T1rho workflow button with registration items {FLEXR,AutoFocus4D} which work both on the knee and fathom.

11.  AVX2 256-bit instruction using FMA (fused multiply add) to speed up and improve precision of many functions such as {VectDotProduct, SVD, Cross Correlation within FLEXR}



13. Single slice abdominal segmentation: results of the segmentation are automatically measured and displayed (default dialog option = true).

14. Parametric Processsing dialog: a notion of Previously used model (PUM) is introduced, so it comes up as a default for the next loaded volume (unless it has its own model saved). If PUM is not compatible  with the loaded volume, we reset to Model 0 which is compatible with all volumes.

15. When in Dynamic Processing dialog box and no ROI layer is present, the "Process ROI as a single curve" changes to the "Process whole volume as a single curve".

16. Dynamic Modelling dialog box:  Extrapolate button is enabled only when the appropriate models are selected.

17. MainMenu>View : added several functions to close selected Views, Documents, etc.

18. Volume::GetModality function now returns MCLASS_NONE if modality is not present.

19. When any 4D image-file volume (non-DICOM) is loaded and the modality is not present, the dialog box will pop-up prompting user to specify the modality.

20. Fixed the crashing defect and proper operation for Backspace button when operating on the Polylines and MagTrace splines.

21. {MagTrace,Poly} tools:  if the spline or polyline is selected respectively, then starting the tool continues to work with the selected object instead of starting a new one.

22. Moved m_selection construct from individual views to a document (so it is shared by all Views).

23. When non-FVX Image is loading User can customize the initial layout between {FilmView, SingleSlice, Three Projection}.

24. When resolution info in image file (f.e. MIDAS) is invalid  or missing the warning will show up and the file would not be loaded.

25. Replace iround(double v) function with int(rint(v)) construct.

26. If Landmark registration is called and no landmarks are present, display the warning and exit (previously it was crashing).

27. Updated dialog window title. ROI -> Morphology -> Peel / Grow -> (dialog window title) Deflate ROI or Inflate ROI. Update to Peel ROI Grow ROI.

28. When attempting to save FVX document where the PHI information is present, offer dialog with 3 choices: {Deidentify&Save,Save,Cancel}.

29. FireVoxel can have any of the predefined UI color schemes from under UserOptions dialog box.
30. Document background color can be customized now from the UserOptions dialog.

31. Code: replaced Entity:FindProjection( View) by View::FindProjection()

32. Implemented the RRSE (Root Relatived Squared Error) calculation an enabled it in models {26,50} (T1rho).

33.  Implemented ABT subtests for Models {26,50} (T1rho}.

34. Layer Operations dialog:  fixed crash when attempting to remove ALL unchecked layers. Added a warning too.

35. Saving FVX, if PHI is found the deidentify dialog show the tag names of all PHI.

36. File>Deidentify Document menu : displays the tag names if PHI is present, or informs otherwise

 37.  LayerOperations dialog is now activated through LayerControl dialog and able to reuse its functionality.









Monday, June 15, 2020

FireVoxel Build 331 is released.

1. Model 26: T1rho MonoExponential: Enabled the measure noise substraction prior to model fitting.
2. Dicom item range is now remembered between requests to minimize typing.
3. Fixed defect in curve drawing pane (common component) when there were groups of datapoints with identical X value.
4. Dynamic modelling result curve pane now displays X-axis precision dependent on the Units of the dynamic dimension.

5. Fixed the "smudge" defect when moving and/or resizing the views. Now full Client Rectangle is always redrawn.











6. IVIM model outputs the solution interval and error bound information now.



7. Base Entity selection tracker is never drawn now  as it does not relay any useful information.

8. MainMenu>View>DisplayGrid  : setting 0 (mm) now make exactly a 1-voxel-based grid.





9. VROI dialog box : Increased coordinate precision to 1e-4. When defining the VROI its thickness is 1 voxel instead of 0. This fixed another defect when F11 the view change missed the VROI by one slice.



Build 330A is released.

1. Fixed the typo in abdominal segmentation measurement function when converting from mm2->cm2.
2. Fixed crash defect when loading DICOM and some items were checked, so the new version of 3 choice dialog box was crashing.

Friday, June 12, 2020

Build 330 is released.

1. Implemented  new version of Single Slice abdominal fat segmentation to include {SAT,VAT,IMAT,Muscle}.
2. Implemented a separate user interface function for abdominal segmentation using MagTrace.

Sunday, May 31, 2020

FireVoxel Build 329 is released.

1. Started a new DLL project: FvxANN, It is explicit load DLL and is optional during distribution. This means FireVoxel would still work but certain functionalities will be missing. FvxANN interfaces with TorchLib C++ from FAIR.

2. Implemented TSL automatic extraction from DICOM files {SERIES ,PROTOCOL}. 
User has to specify the Units to load.

3. TSL dynamic dimension is fully implemented now.


4.Enabled  FVX file support (Load\Save) for TSL dimension.

5. File filter changed to "4D Image (*.time)"

6. T1rho implemented the mono-exponential model.

7. Implemented completely new Dynamic Modelling Results dialog box:


8. Global optimization outputs now "guaranteed interval of optimal parameters".  In the parametric modelling dialog there are 2 new columns reflecting that info.







9. Parametric results can be copied to Excel via clipboard.




10. In Dynamic Processing dialog box, if no Output Parameters were checked, after warning the system returns back to the dialog instead of quitting it.

11. Parametric model processing verification dialog pops up only in {ROI,ALLROI} modes, but not the voxelwise modes.

12. "Normalize by ROI" : Koefficient typo fixed.
13. Fixed the crash when  VROI is present but unselected, with right mouse button drag.

14.  Fixed crash when executing Cancel Load VROI - Vector -> Load VROI -> Cancel. 

15. ROI>Morphology changed menu to {Peel,Grow} 
16. VROI:  rectangle diagonals are smooth now using Gdiplus. 
17. Parametric modelling dialog: removed the 2nd redundant button now. Also the text on the button now depends on what was selected and will be processed.

18.Provided the Echo time - >TSL conversion for this dataset, as you
suggested. The new function is under MainMenu>4D Processing>Dynamic Dimension Support








Friday, May 15, 2020

Build 328 is released.

1. Removed the "flickering cursor" problem when passing over the polyline or spline.
2. Removed the AllViewsRedraw from CDrawPoly::DeletePoint which was causing a recursive call and crash.
3. Fixed MagTrace defect when MainEntity was selected with the Spline, so while the anchors were visible it was not possible to move them.
4. Fixed a defect while moving curve and splines, when the LButtonUp and RButtonUp events are missing some time which resulted in curve's anchors wildly jumping.
5. Code work on the legacy CDrawTool class, MagTraceTool and PolyTool subclasses
6. Enabled VROIs and Landmarks to have individual colors. The color panel in VROI dialog is now working.
 7. Extensive code optimization in function :  AlViewsRedraw, FV_EndWaitCursor, NonZero,IsZero, NonEqual, IsEqual.

Sunday, May 10, 2020

Build 327 is released.

1. Restored the SAT\VAT segmentation functionality on the entire volume.
2. Provided multiple additional variants for the Abdominal CT fat workflow
3. Fixed the intermittent crash when removing the layers cause by Undo\Redo.
4. New morphological algorithm "Close broken contours and fill 2D" and a corresponding menu item under ROI>Morphology.
5.  Multi-slice projections (such as MaxIP) and FilmView are mutually exclusive now with the corresponding switches disabled
6. VoumeInfo dialog: Copy To Clipboard : fixed defect when only visible items were copied.
7. Vector Rasterize function:  added the Undo
8. Layer control dialog:  changed the "Save RAW" to "Save Image".
9. Main menu>File  change "Load\Save FireVoxel document" to "Load\\Save document"
10. Updated the SetProjection dialog by removing unused entries, adding Minimal Intensity projection.
Build 326 is released.

1. Complete rework of the Whole Fat segmentation from Abdominal CT
   a) Gross problems of Pelvis, Diaphragm, and arms were resolved
   b) New algorithm to separate fat and muscle when the fat and muscles signal intervals
    overlap substantially.
2. New function and UI menu item to segment whole fat on a single selected slice.
3. New function and UI menu item to segment whole fat and with the abdominal cavity ROI present
    to perform SAT\VAT segmentation.
4. Coding update: for all relevant Document::AllViewsRedraw now includes the Layer Control Dialog update.

Wednesday, April 29, 2020

FireVoxel Build 325 is released.

1. FLEXR-Motion Correction: implemented option to consider first N timepoints static (without motion).  Often there is a very little contrast in the initial timepoints, so registration individually is challenging.
2. Replaced "Save RAW" menu and dialog items to "Save Image".
3.Implemented Initial Undo\Redo functionality to cover Paintbrush painting\erase. Undo\Redo buttons in the main toolbar.
4. Implemented the toolbar Undo\Redo button status  update (graying) depending on whether any Undo\Redo records are available.
5. Added keyboard accelerators "Ctrl+Z" and "Ctrl+Y" for Undo\Redo respectively
6. Added unit test for Visceral\Subcutaneous fat segmentation functionality from Abdominal CT.

Monday, April 6, 2020

Build 324 is released.

1. Implemented EdgeWave variant when starting Peel voxels are either External Surface only
or custom provided from the calling function.

2. Implemented the 2D Structure Graph  technology.
This converts any 2D ROI into the planar graph.

3. Implemented EdgeWave variant when the custom Start Surface is provided. Unified that code the External Surface code.

4. Implemented the Subcurtaneous\Visceral FAT separation algorithms. Fully automatic. Initial accuracy is under 2% comparing to manually generated ground truth.

5. Implemented a parameter dialog for the VFAT\SFAT separation

6. Included into the distribution package all Microsoft DLLs corresponding to a redistributable. This allows to avoid missing DLLs issue due to discrepancy between the Visual Studio update and redistributable download site.




7. Spawned previously reused RoiStats4D dialog into a separate DynamicExperimentResults dialog so it can be better customized without affecting other functionalities.

8. Implemented a workflow for Subcutaneous and Visceral abdominal fat separation. Provided QuickStart documentation.

Thursday, March 26, 2020

Build 323 is released.
1. Fixed defect in Paintbrush over CT-abdomina volume (Zero transform message was popping up while changing paintbrush radius.
2. FLEXR registration: enabled the scenario when Source and/or Target are binary images (1 bpv) optionally overlayed by a ROI.
3. FLEXR implemented a proper resulting volume type conversion when "Output Real" version is ON\OFF. This included conversion to the original image type if OutputReal=FALSE.
4. Implemented "CT Abdomen Whole FAT segmentation" function. This includes a custom dialog.
This is under Worflows>CT Abdominal Fat segmentation>Segment Whole Fat mask