Search This Blog

Friday, March 26, 2021

FireVoxel 350 is released

 1.  DICOM Deidentification :  with the response from DCMTK forum a direct solution is now possible without creating the temp files.

2.  Fixed crash defect: DlgVROI activated, grayed out and after the document closing was crashing.

3. DICOM Deidentification tool now remembers the last used folder and suggests it.

4. Removed "Close All Document" and "Close Current Document" from the MainMenu>File because they also appear under MainMenu>View.

5. Introduced FireVoxelPHIprofile :  a text file should be residing in FireVoxel application directory that lists all the DICOM tags considered to be a PHI (Protected Health Information).

6. User can view current PHI Profile by choosing MainMenu>DICOM>Show PHI profile.

Wednesday, March 24, 2021

 Build 349 is released.

1. Replace the custom PR_FileCopy function with Windows-based CopyFile.

2.  Modified  "Deidentify DICOM folder" function to work "in-place". User only specifies a folder and files under the folder are modified when de-identified.

3. Under both Main menus moved all DICOM functions under File>DICOM

Friday, March 19, 2021

Build 348B is released.

 1. Model #27: fixed defect when for individual voxels the message would appear "not able to find a linear fit...".

Build 348A is released.

 1. Model #27 Logan Plot: Fixed the hyper parameter mix up defect.

Wednesday, March 17, 2021

Build 348 is released.

 

 1.  Added a warning when *.TIME file is loaded (either with .IM or NIFTI files) and dimensions specified in TIME header are different with ones in individual pixel files.

2. Modified model #27 Logan Plot was modified to better align with the description in PMOD documentation.

3. Modified Model #27 Vt (Logan Plot) to accept reference curves with the timeline different from the image file.

4. VROI dialog: when in "none selected" mode all the buttons are disabled to avoid various crash problems.

Friday, March 12, 2021

Build 347A is released.

 1. VROI dialog box: switch default units back to voxels.

2.  VROI dialog : Restored previous Z-coordinate convention.

3. VROI MainMenu>VROI>Delete All VROIs is now the only function for deletion.

4. VROI dialog box: the changes are preserved on cancel\close the dialog box.

5. VROI dialog box:  added the UNDO button.

6. List All VROIs command now shows a scrollable list of all present VROIs (previously just a plain message box).

Wednesday, March 10, 2021

Build 347 is released.


 1. Implemented Cardiac Output-based input function correction tool. Full UI dialog combined with Cardiac Output measurement tool.

2. VROI selected, VK_F4 opens the RoiStats4D dialog box. The curve is now displayed in color of the selected VROI (instead of fixed Green color).

3. VROI dialog: fixed defect pressing OK button would close dialog and never being able to open again.

4. VROI dialog both OK and CANCEL buttons are gone since they are redundant. You can close VROI dialog the same way as Layer Control dialog, i.e. by clicking the "exit" button

5. VROI file now contains the color attribute for each VROI.   Old VROI files are not supported.

6. Fixed defect in DICOM Tag registration when "Document with this name is present" was incorrectly appearing.

7. Replaced several 2 button question dialogs of type "Press Yes for X, press NO for Y" with the 3 button dialogs containing Cancel button.

8. VROI dialog box: replaced the mm\vox radio button switch with the combo box.


9. VROI dialog: fixed defect that for Z0,Z1 coordinates internal 0-based coordinates were displayed. Now they are 1-based as in User-convention and also matches the info displayed in the status line.

Saturday, February 27, 2021

FireVoxel Build 346 is released.

 

 1. Provided a modeless (non-Modal) version of VROI dialog box. This way VROI dialog can stay open while we do all operations with VROI, including moving and browsing (F11).

2. Changed the Dynamic index convention from [0,Ti-1] -> [1,Ti] to match the other UI convention.

3. Changed the panel from Time to Dynamic Index 

 

 

4. Changed the diagnostics message when the FVX license file is missing.

5.  Show Main Toolbar command is now available from Main Menu when documents are opened.

6. Fixed the issues around the Insert Polyline (freehand) menu items.

7. Fixed defect in "Vector rasterize" when the previous content of the working ROI layer was overdrawn and disappeared.

8. Remove Mainframe>Test menu item from the Release versions.

9. Rasterization functions:  fixed Redraw problem due to parallel access of the ZoomCache.




Monday, February 22, 2021

FireVoxel Build 345E was released.

 1.  List all VROIs:  removed  "visible\invisible" status info.

2.  When VROI is created - it is assigned a default name  "vroi index", where index is the count

of VROIs previously created.

3. Moved VROI>3D to 4D to under MainMenu>ROI.

4. Moved VROI>Optimal zoom to  MainMenu>ROI>Zoom whole extent.

5. Fixed crash in Volume>Noise>Median Noise.

6. When ROI layer is created by any operation its DICOM headers are immediately and automatically minimized.

Monday, February 15, 2021

Build 345D is released.

 1. Corrected Gauss Downscale when the Single slice volume is transformed into single slice.

2. Restored the "diagonal cross" in VROIs, increased transparency.

3. "Create orthogonal projections"  : disallowed creating the repeating redundant projections.

4. In Multilayer entity, after removing one or more layers - the base layer becomes transparent.

Thursday, February 11, 2021

 Build 345C is released.

 1. Transform>Volume Rotation dialog : Added the "Gaussian Downscale" option.







2.  Batch transform using task file:  replaced old interpolation radio buttons with common combo box.




3. Transform using VTF file dialog:  replaced old interpolation radio buttons with common combo box.

 





4. Fixed defect in BiCal batch processing:  when several subfolders of the Source folder were not processed.

Wednesday, February 10, 2021

 FireVoxel Build 345B

1.  Corrected the folder construction in BiCal Batch processing.

Monday, February 8, 2021

Build 345A is released.

1. Concentration conversion dialog\Relaxivity panel:  changed the order of dropdown boxes.

2. Mainframe Menu: Applications > Convert Tac to Concentration - introduce static Tissue Attribute so proper conversion is performed when next curve is loaded.

3. Upgraded the loading of Tac.txt files, so it allows the Title and the Format line.

4. BiCal batch function:   Target folder is required to exist and no attempt to create or clean the Target folder.

5. Cosmetic changes in Concentration Conversion dialog.

6. Concentration conversion: default HCT = 0.

7. PCA decomposition sets synthetic dynamic coordinates now with t=1,2,3,4,5

Friday, January 22, 2021

 Registered 4D CorDiff volume to the last timepoint (echo time) of GreCor volume. Last timepoint was chosen due to the highest contrast between the kidney and surrounding tissues.

Target kidney ROI first need to be constructed on the target (GreCor) either manually or automatically (manual in this example).  No ROI required on source (moving image).  However, registration relied on the fact that the volumes were acquired as part of the same exam so DICOM tags can be used for the initial alignment which is then finetuned by registration procedure.

Rigid registration was used in this example.  However, the volumes have very non-isotropic voxels

(1.5,1.5,7.5) mm, so the assumption of rigidity is very questionable and elastic deformation  may be used instead.

 


 

Optionally, the Target volume was made isotropic (1.5)mm^3.  This way the amount of information lost during the final reslicing is minimized.

Wednesday, January 20, 2021

Build 345 is released.

 

 1. Changed the automatic baseline calculation in the general Signal-to-Concentration conversion function.

2. Reduced internal MAX number of Input Functions to 4 (from 5). This was causing problems and crashes with displaying them, since the Dynamic Experiment dialog has only 4 slots.

3. Implemented the "Cardiac Output Measurement" tool and corresponding dialog.






 

 

 

 

3. Concentration conversion dialog:  implemented the 6--entry long relaxivity table using three dropdown combo boxes.

4. When saving to FVX file format, removed the DICOM tag PatientID from the list of PHI.

5.  Extended DICOM read to include the fix of files with deliimation errors. This resolves the load of the problematic PET file.


Wednesday, January 13, 2021

Build 344A is released.

 1. Implemented DICOM loader extension for files when the logical 3D volumes are intermingled along the time axis.

2. Added ABT subtest for DICOM "Intermingled-load".

Thursday, January 7, 2021

 Prototype workflow for automatic whole kidney and compartamental segmentation on GRE data.


1.  Atlas of the kidney was constructed manually from the Patient (id  PP506).  Last TE timepoint (=30.53 ms) was choosen where the contrast between kidney and surrounding tissue is the maximum


2.  Another patient ( RH.41.L)  GRE dataset was chosen for segmentation.  At the moment we ask User to enclose the kidney with the bounding box in the mid-slice. Again the last TE timepoint (39.36 ms) was chosen to maximize the contrast between kidney and surroundings.

 
3. Internally full 3D bounding box is constructed which encloses the kidney.
 
4. We activate Large Deformation registration of the Atlas into the rough bounding box of the kidney.
 
 

 

5. After registration runs we get the Whole kidney mask and {Cortex,Medulla} masks over the 2nd patient. Note: the target volume was resliced to isotropic 2.08mm^3  to minimize data loss during the reslicing (since the Z-resolution is very coarse 5mm).


 

6.  Same result as above but displayed without Cortex mask.


7. Future improvements:  have better higher resolution Atlas, perhaps even from different protocol.

Have several atlases, match to all and select the best.

Alternatively, only the Whole kidney mask can be registered and then Whole mask can be separated into Cortex and Medulla.  Histogram thresholding is typically not working well for that purpose, so more locally adaptive operator should be used.

8 Below is one such result.  Whole kidney mask was taken from the result above, but then we used Detect Dark Ridges (default parms) to split the Medulla and the remainder is Cortex.





Wednesday, January 6, 2021

 Kidney registration from pCASL data to GRE data.  Last TE point of GRE was selected to draw ROI due to a better contrast with surrounding tissues. Then pCASL was registered using initial DICOM tag alignment with further Rigid registration using Mutual Info.

Each kidney has to be done separately at the moment, but a single click workflow for both kidneys is possible.

Three screenshot below demonstrate reegistration results:

a) GRE  ROI overlaid on top of the registed pCASL volume.


 

b) pCASL (in green) overlaid transparently over GRE (red)


c) Separately, GRE was turned into isotropic  2.08 mm^3 to minimize pCASL information loss during reslicing, then same registration was performed.



Monday, January 4, 2021

Build 344 is released.

  1. FLEXR3D registration : fixed defect in final layer construction was causing a crash.

2. Fixed the "invalid units" defect when output ADC model mm^2/sec. Now displayed properly.

3. Implemented functions for swapping Transparent (VOID) value <-> User Specified value.





4. Fixed defect: Volume Redraw cache  was relying on a simplistic CheckSum algorithm which sometimes return incorrectly TRUE causing the document Window not to redraw after the operation. Improved the CheckSum function, so old defects are properly redrawn.

5. Model #16  "T2 and T2* mapping":  changed name, some unit options etc.

6. Volume>Crop Current Slice : upgraded function to crop all existing slices. Reused the common code VolCrop function.

 7.   Chest Area  Muscle\FAT measurement: fixed defect "instead of MAT, 343A repeats the fat volume."

 8. Fixed defect when adding new layer (such as ROI) was producing incorrect Vz resolution for the new Layer. This was causing frequent "Resolution mismatch" messages.

9. Fixed the Colormap collapse problem when Color Window Width is set to 1.

 

0. Manually constructed ROIs on Cor-Diff and Cor-GRE cases. 

Cor-GRE case was not Motion-Corrected since it was a breath-hold, but additional Motion-Correction is possible.

Each kidney should be processed separately in this workflow.

 

 1. Performed R2 fitting on kidney from Cor-GRE case


 

2. Performed motion correction of Cor-Diff case and produced and ADC map.

(Motion correction    Workflow>Renal Multislice>Motion Correction (In-Slice) (MI).

 


 

 

 3. Performed registration of Cor-Diff case to  Cor-GRE cases (using FLEXR3D 2mm)

Base Cor-GRE is shown in Green, then overlaid with Cor-Diff (in Red) with 50% transparency to demonstrate registration match.





Saturday, January 2, 2021

 Build 343A is released.

1. Corrected slice # to be 1-based in report generation for "Segment Chest Area Muscle" function.

2. Implemented File>Minimize DICOM Headers function to remove extra info from DICOM and sometimes greatly reduce the resulting FVX file size.

Sunday, December 13, 2020

Build 343 is released.

 

 1. ROI>Morphology> renamed "Split" items into "Unclump perceived Connected Components"

2. ROI>Morphology : implemented Extract Connected Components function.

3. Fixed defect: on 4D volumes ,   “Crop Current Timepoint”, followed by “Crop Current Slice” produced a crash.

4. Implemented UI item : Workflows>CT Lung>Segment Lung 

5. Implemented function and UI item : Workflow>CT lung>Segment Chest area Muscle and Fat.

Saturday, December 12, 2020

Build 342B is released.

 1.  FLEXR3D transform now moves all layers in the final transform - critical for Atlas registration

2. Added R1rho parameter in Model 26.

Tuesday, December 8, 2020

Build 342A is released.

 1. Fixed crash when Radiomics are started without ROI and activating Change button causes crash.

2. Fixed RoiStats3D problem when the Histogram range settings from previous volume where used in a different volume and "All voxels void" message appeared. It resets now to the full range of the new image.

Tuesday, November 10, 2020

Build 342 is released.

 1.  Segment>FLEXR-3D registration functionality does not require the Source ROI anymore.

2. ZNCC (correlation) measure : fixed defect when StdDev was turning negative (-1e-11) and that was causing the measure to return NAND.

3. Implemented UI function to take a folder of FVX files, all  3D, and register them to one of them with ROI present and make a single multi-layer entity document (using FLEXR3D)

 Implemented UI function to take a folder of FVX files, all  3D, and register them to one using DICOM tag functionality.

4. Implemented UI function to take a multi-layer document with all 3D layers, sort it by time and make a single 4D volume.

5. 3. Implemented UI function to take a folder of FVX files, all  3D, and register them to one of them with ROI present and make a single multi-layer entity document (using DICOM Tag registration)

6. Code: consolidated all appearancess of Gridded Amoeba\Simplex optimization into easy to call single function. This affected many Dynamic Models and led to a significant code reduction.

7. Fixed defect win Spline->polyline conversion, when an empty polyline was returned

8. Extended GlobalOptimization function to include relative Cost Eps threshold as the additional stopping condition.

9. Corrected "Split Multiframe DICOM" function so it is possible to load the US multiframe.

10. Correction: in case of improper DICOM volume missing the Image patient Orientation it was failing to save to Image formats such as MIDAS.

11. Fixed defect when "MIP Projection snapshot" resulting image had incorrect orientation and Orientation markers were incorrectly displayed.

12. Expanded 1st order statistics value panel so longer numbers fit properly now.

13. RoiStats3D dialog:  changed output of real values to scientific notation.

14.  "ROI>Threshsold to ROI" when both thresholds are negative and REAL volume is fixed.

Monday, November 2, 2020

Build 341 is released.

 1 Fixed crash when 3D volume is loaded from MIDAS and cropping is attempted.

2. EdgeWave: fixed defect when output mask is created as INTEGER volume. This was happening when Competetive Growth option was checked.  Added and ABT subtest to cover that situation.

3. Major rework of the IDIF parameter dialog.

4. Fixed defect : When Reset Projection for this View is called current slice is now properly reset to the Mid-slice of the original volume.

5. Code: consolidate all code for invoking notepad.exe

6. Open DICOM dialog: compare tags functions now outputs the info into file and displays notepad.exe.

7. EdgeWave Brain segmentation workflows:  Changed default option to No Competetive Growth. This is due to recently discovered problem of multitude of small connected components (after Peel) which prevent a proper regrowth into gyri.

8.  When Volume>Transform function is invoked and it is pure scale (RotX=RotY=RotZ=0), then we properly scale any present VROIs.

9.IDIF workflow: fixed the tracking map appearing in gray first and then switching to color.

10.  Segment -> Sagittal Brain... (or another tool from this group):  now slice is not switched when the seed is found internally (since the seed is not displayed).

11.  EdgeWave brain basic segmentation workflow:  added a separate  Set Profile UI function. Processing does not invoke the dialog box anymore.


12. Fixed general defect when new raster layer is added as a result of any operation its internal m_position should be set to that of the Main Volume. Otherwise when the MainVolume is removed there is incorrect positioning in object redraw.


13.  WM lesions workflow:  N3 parameter panel:  disabled the Output Bias Field option (for this workflow only).

14.  Bical tool dialog now has the option to Output Real Voxels (default=NO). This is valid when original volume type is INTEGER.

15. Translation tool:  Distance in (mm) shows up automatically during the 

vector construction and while user is changing that vector in any way

(i.e. dragging as a whole or one endpoint only). As soon as User stops
the "distance mm" label disappears automatically.  Display\Hide curve
length flag works as before.
 
16. Rotate by sector is similar,  Angle in degrees is displayed as long as we
are changing the object.
 
17. Fixed defect: When Starting new polyline with the current polyline selected on a different slice prevent from continuing on the current invisible polyline.

18. Fixed defect in drawing the overlaid Grid.

19.  Transform>Rotate Orthogonal...  dialog box option to save the transform into VTF file.







Tuesday, October 27, 2020

Build 340 is released.

  1. Implemented new IDIF algorithm.

2. Implemented new IDIF parameter dialog box.

3. Fixed error in 4D Processing>Dynamic Integral function.

4. Fixed defect with default layer transparency when adding an image layer.

5. Fixed Transform>Rotate by sector defect.

6.  Restored paintbrush working on FilmView.

7. Dynamic Modelling:  fixed the crash when "Process As single curve" is specified but no ROI is provided.  Now the whole volume is processed as one ROI.

8. Dynamic Experiment Single Curve result dialog:  changed layout to more efficient, made time axis display relative time, expanded field width for the Signal axis, added the model name to the title of the dialog.


9. Dynamic Experiment dialog box:  implemented Paste (from Clipboard) for Input function panel.

So Input function displayed in RoiStats4D dialog box can be copied and then pasted to Dynamic experiment Dialog.







10. Radiomics2D:  implemented first order features. Updated corresponding dialog box.

11.  Added the percentile first order features to the RoiStats3D dialog.

12. Implemented ABT subtest for Radiomics2D over {Integer,Real} images.

13. Corrected RoiStats3D dialog in case when it is called for binary images.





Friday, October 23, 2020

Examples of new Image-derived Input function on various PET images:

FDG_PET_dynamic:   Vessel rad [10,10]mm  MaxLength=70mm

FDG_PET_Dynamic Vessel rad [8,8] mm  MaxLength=70mm

tau_PET  Rad [8,8]  MaxLength = 70mm

PIB PET   Rad [8,8]   Max Length=70mm


PIB_PET Rad[6,6] mm Max length=70mm

Butanol PET   Rad [6,6] mm   Max Length=70mm

Butanol PET Rad [8,8] mm  Max length=70mm


Thursday, October 22, 2020

Tuesday, October 20, 2020

 1. Implemented initial version of the Omni-directional IDIF.  

This is a Bi-directional tracking map. Max length in both directions is 70 mm. Color represents the "generation index".  VROI is macroseed in this picture.  Black color corresponds to Miniseed (generation=1).  

 



 

Corresponding IDIF function

 



Wednesday, October 7, 2020

 1. Fixed DICOM load problem.  DICOM file had  *.im extensions (identical to MIDAS). So expanded the list of possible DICOM extensions.

2. Disabled access to Test Menu items in Release builds. 

3. Implemented new Gamma-variate fir Dynamic Model and made it possible to be called directly from RoiStats4D dialog box.

4. Radiomics file output : Added Volume name to each line.

5. Radiomics dialog :  checkbox option to output Tab-delimited file.


6. Radiomic dialog: checkbox option to output Tab-delimited text to Clipboard to paste directly to Excel.

7.  Expanded the check if the file is DICOM. Checks for the DCIM at the byte position 128.

8. When parametric map is calculated, the new layer now inherits the orientation of the working volume.

9. Polyline properties dialog box : fixed defect Line width – Option does not work. 

10.  Alt+1  now works with polyline (in addition to spline) to click-insert a new point.

 

Wednesday, September 30, 2020

Build 338 is released

 1. Code: Replaced FireVoxel custom data types with new VC++ buil-in types {INT8,INT16,INT32,INT64}

2. RoiStats3D dialog - corrected a subtle defect when remembered previous Histogram settings result in "No Valid Voxels" situation with newly loaded image, so it is not possible to open the dialog.  In this situation "Exclude Outside Range" flag is reset to prevent this deadlock.

3. Code :  replaced class function CDrawSet::{CurrentTime,CurrentDynInx} with CDrawView.

4. Fixed defect: unable to construct VROI on some .im and old FVX files.

5. Fixed crash when calling RoiStats3D dialog after "Ambiguous layers present".

6. For RoiStats3D dialog and Radiomics execution: changed how the notepad.exe is called so the FireVoxel does not have to wait till user exits the notepad.

7. ViewTac dialog box: voxel radius is changed now by using standard spin control

to avoid keyboard entering.

8. Fixed crash in Dynamic Experiment : Extrapolate functionality.

9. Added checks for Extrapolated dynamic points to be different from original dynamic points. Exclude repeats from specified extrapolated points.

10. RoiStats4D dialog : fixed defect when it was not possible to change the Curve panel background color.

12. RoiStats4D dialog : removed redundant Info button.

13. Dynamic Framework:  changed output parameter units naming from mm2/s to mm2/sec

14. Removed redundant item MainMenu>4D Processing>Parametric modelling.

15. Output naming consistency in IVIM models #17 and #18.

16. Dialogs RoiStats3D\RoiStats4D, common behavior:  when VROI is present in addition to raster ROI program checks if a single VROI is selected.  If single selected, then a corresponding temporary raster ROI is formed, new ROI layer  is NOT added anymore. If more than one VROI layer is selected, the stop warning is displayed.

17. Fixed naming (ADC->DDC) in Model 21: DWI Stretched exponent.

18. Implemented proposed parameter name changes in models {17,18,19,21,28}

19. Temporarily disabled resizing of the Single Curve dialog box till fully implemented.

20. RoiStats4D dialog: made "Copy (clipboard)" and "Save" function to produce identical format.




Tuesday, September 29, 2020

Build 337C is released.

  1 Radiomics: implemented GLRLM feature class (16 features).

Friday, September 25, 2020

FireVoxel Build 337B is released.

 

 1. Radiomics : GLCM corrections:

    a) Pxplusy array calculation 

    b) HXY1,HXY2 calculation

2. Radiomics  GLCM: Checkerboard (64x64) AND (65X65) step (1) image:

   a)Verified distance=1, directions (0,2), directions(1,3).

   b) Verified identical features for directions 0-3,  1-3

3. Performed comparison to MAZDA radiomics GLCM on abdominal CT  tumor. Obtained a close match on all features except the 2 entropy features. Seems like Mazda is using log10() function in calculations (appears also in its documentation) instead of log2.  Mazda and FVX entropy measures differ by coefficient log2(10). Testing was performed on all angles separately and distances {1,2}

4. Performed correction in DICOM header cloning with different Source and Target geometry.

5. ABT subtest for registration of 3D volumes with different number of slices.


Wednesday, September 23, 2020

Build 337A is released.

 

 1.  Radiomics 2D workflow fixes

       a) ClusterShade twice removed, Cluster tendency inserted

       b)  AngularSecondMoment accumulation bug fixed.

2. RoiStats3D dialog:  added a Variance  calculation to the list of the 1st order features.

3. RoiStats3D dialog: added functionality to define the Range using Percentage of the Spectrum cut-off (Low\High)

4. RoiStats3D dialog:  Features panels more orderly output by dividing feature names and values.