Search This Blog

Thursday, October 31, 2013

Automatic Build Test problem:  in Dynamic Framework subtest failure on Ktrans-Ve model. Investigating...

Wednesday, October 30, 2013

Defect: crash in T2\T2* mapping model for the 4D abdominal volume provided by Henry.

Fixed: the problem was in incorrect handling of timing data, when the Dynamic Component is different from TIME (ECHO in this case).
Automatic Build substest for "Registration with Initial transform" is crashing.
Fixed an intermittent error in the core Registration procedure, when registration image padding was calculated based on the URAL radius, while that radius was undefined due to the different registration measure used (i.e. non-URAL, f.e. MI etc)
Validating the complete  Automatic Build Test for the Build 126...

Tuesday, October 29, 2013

Code work to simplify and reduce the parameter setting in several dozens of 3D\4D Registration scenarios.
After running the ABT (automatic build test) realized that registration examples using URAL measure all started to fail due to some kind of ripple effect. Investigating and fixing it...

Defect was in the "Final reslice Target-to-Source" option for all registration Measures, now fixed.

Monday, October 28, 2013

"Landmark registration with autofocus" is changed to "Landmark registration + Voxel similarity", execution crash was fixed.
"View TAC" dialog:   added a new option for 2D\3D apperture of the mouse cursor to be used when the TAC is displayed.
"View TAC" dialog box:  added the "Voxel Radius" parameter so the TAC could be averaged over the cubic vicinity of the cursor.  This results in seeing smoother TACs. Parallelized to work smoothly over the volumes with the hight # of timepoints.

"Register using Landmarks" dialog:  fixed several problems in specifying the name of the Transformation  .vtf file.

Sunday, October 27, 2013

In Dialog ROI  Stats 4D:  added a function to copy TAC to a clipboard in format so it could be easily pasted to Excel without saving to a file.  Also, changed the formatting of  TAC file to include \t to import easily to Excel.

Saturday, October 26, 2013

When dialogs RoiStat3D and RoiStat4D are acivated, the "ROI is empty" error message is displayed,  show the name of the ROI layer.
Added the progress indicator to the FireVoxel document load. This is very helpful when loading very large volumes (such as PET)
Fixed an error writing incorrect datatype in ANALYZE 7.5 format (for 16-bit volume)

Friday, October 25, 2013

Fixed defect: When ROI is saved to DICOM it is incorrectly displayed in Oped DICOM dialog Preview panel.
Fixed several problems when trying to load a single DICOM slice directly from multi-slice DICOM tree.
Fixed  the DICOM-ROI   save and edit problem reported by Alexandra Hotca.

Wednesday, October 23, 2013

Finished the MRTM model.  Fit seems to be better than MRTM0 as in models justification.
Finalizing the #2 MRTM model...
Added a "graphical verification plot" feature to MRTM0 modelling.  Equation is rearranged to the form C(t)=....  So the tissue TAC can be plotted over the model TAC.  In this example dont be discouraged by the mismatch as I drawn an arbitrary "Reference receptor-free Region".

Tuesday, October 22, 2013

Finished the MRTM0 model with virtually identical interface to PMOD.  Tested on a sample "Reference ROI" for providing the Reference Curve.


Monday, October 21, 2013

Integrating Ichise's  MRTM0,MRTM,MRTM2 reference model into FireVoxel dynamic framework.

Sunday, October 20, 2013

Implementing MRTM0, MRTM, MRTM2 reference model within the FireVoxel Dynamic Processing framework.

Saturday, October 19, 2013

Fully finished the PET->Anatomy registration workflow with full integrated User Interface.  In this experiment a  344x344x128 volume with 203 timepoints (original DICOM is 5.83 GB).
It was registered to the MPRAGE with 256x256x160.

Two registration modes were used:


Quick (Nearest neighbor final result), total time 79 sec, combined registered (PET+MRI) file = 496 MB.
Regular (Linear interpolation), total time 217 seconds,  combined registered (PET+MRI) file = 653 MB.

Friday, October 18, 2013

Eliminated the need for the user to specify the "anchor timepoint" during the PET to Anatomy registration.  Timepoint of Maximum average singnal is selected and the registration is performed to that timepoint
to determine the required transformation for all PET timepoints.
FilmView display:  for large images it is quite slow, with 4.8 sec to display all slices of 344x344x170 volume.
Fully parallelized with the x3.5 speed-up (down to 1.37 sec)
Finalizing integrated PET->MPRAGE workflow to spare the user from a separate Orientation change and Cropping operation.  This is under the MainMenu>Applications>PET>Register to Anatomy.

Thursday, October 17, 2013



This was investigated and postponed due to a very large changes required:

 Major design improvement :   Multiresolution Multilayer volmetric entities.
Since the beginning of FireVoxel, only volumes of the same voxel count and size are allowed to be combined in the Multilayerr volumetric entities.
New design relaxes this requirement, by demanding ONLY the physical dimensions of the layers to match so they can be combined into Multilayer volumetric entities.

Motivation: one of the important issues is the presentation of the Registration results. In 4D PET to MPRAGE registration, we desire to keep the dimensions of the MPRAGE intact.  But reformatting 220-timepoint PET volume to MPRAGE dimensions leads to multi-GByte volumes.  Solution is to keep registration results at the resolution close to original, while able to overlay it over the higher resolution target.

There are other applications of this.  If I am not mistaken, we were considering registering the prostate DCE exam to biopsy that have a much higher resolution.  It is a similar problem with the size of the registered source.

In short, we want to be able overlay registration result without the explosive and redundant data increase.

It is approached pragmatically, i.e. only currently used workflows would be modified and verified. We will adjust other multilayer functionality as we go.  The biggest task  and modification of the UI that I foresee is the Vector ROI issues, its dialog etc.

Wednesday, October 16, 2013

Fully parallelized the "Volume Dynamic Averaging" function with the great speed-up.
Fixed very important defect:  it manifested as a "randomly jumping" vector ROI, when user pulls one the vector ROI handles, quite often the ROI corner would jump to position entirely different from the mouse cursor position.
Fix:  modified the VoxelInfo function, that is updating the status line when the mouse cursor moves.  Specifically call to DoEvents() (Windows function for updating the application window events) was eliminated.
Achieved final registration of PET to MPRAGE.  Result shows the registered PET, averaged over the last 100 timepoints, overlayed on the MPRAGE.


Proceeding to implement integrated registration workflow that includes automatic cropping and orientation correction (from coronal to sagittal).

Tuesday, October 15, 2013

Optimizing calls to Reslicing function that follows 4D to 3D registration and the reslicing take major part of total processing time.
Fixing defect:  After successfully registering the whole 4D PET to MPRAGE, attempted to do "Dynamic Averaging" function of first 100 PET timepoints.  Result is incorrect and is being investigated.



Several registration scenarios had uninitialize parameters, f.e.  Fine Interpolation was not initialize in most
of the registration scenarios.  Corrected.
PET to MPRAGE registration:  There is a strange defect that PET with dozen or so timeframes is registered fine to MPRAGE. But when I try to register 100+ timepoints, registration runs in reasonable time, but the outputs entirely empty result.
Highly parallelized Volume cropping function (UI-level), so it runs much faster now.

Sunday, October 13, 2013

Fast loading of the native *.FVX file:  98% of time is spent in   DCMTK::FindTagName function.
After call parallelization, interestingly, execution time has doubled.  Looking into resolving this to achieve "more instant" load.  Presently it is about 10 sec for 300,000 slice volume.

Result:   "Native" loading of the original DICOM 5.6GB dataset is now 0.7 sec.

Friday, October 11, 2013

Had a meeting today with Yu-Shin:
1. Demonstrated new and improved registration  of 4D PET->MPRAGE but only for a low timepoint count.
2. For some reason the 202-timepoint PET registration failed, so I am troubleshooting that now.
3. More FireVoxel general fuctionality was demonstrated and explained.
4. Details of integrated Registration workflow were discussed, so the cropping, orientation change and registration are combined into a single operation.
Correcting the logic of automatically finding an optimal window\center for displaying the image for all kinds of volumes (i.e. Real and Integer). Problem is in 4D cases, only the 1st timepoint is evaluated to reduce the processing time. But first or any other timepoint might contain almost no signals thus leading to a non-sense settings and strangely displayed volume.
Added the progress indicator to Volume Crop UI-level functions.  These operations might be lengthy for very large volumes.

Thursday, October 10, 2013

Fixed defect:  when any type volume is displayed, if user presses ViewFilter for this volume, there is a fairly long wait and the "Compute Histogram" message is displayed.
This was fixed by removing Histogram recalculation and instead using compressed block header access without decompressing the blocks themselvves to find maximal voxel value of the volume.
Creating a fully integrated workflow of 4D PET registration to MRI, so that user does not have to manually crop and change orientation of PET prior to registration.
Noticed a slower than expected (20 sec for WSINC interpolation) final transformation after registration for REAL time volume as a Source that being transformed to Target.  Investigating potential speedup...

Wednesday, October 9, 2013


In Registration Finetune, both 3D and 4D, adding a "Multipass" option corresponding to initiating Amoeba algorithm several times.  This optionally achieves higher registration scores at the expense of the execution speed. 
Verified new design of Mutual information registration
on PET->MPRAGE example