DWIConvert slice spacing

Dear developers, I've found an issue regarding slice thickness and slice separation using DWIconvert.
I've posted it on Feb 7th on slicer user's forum (link)
I copy my analysis here:
This is the report: I'm testing the conversion from DICOM to nifti using
DWIConvert.
You can download these dicom images from the TCIA, Ivy GAP collection,
patient W2, series 500 using the TCIA explorer module or using the GUI
provided by TCIA's web.
Dicom tags related to geometrical aspects:
/(0018,0050)	Slice Thickness	               5.000000
(0018,0088)	Spacing Between Slices	6.000000
(0020,0037)	Image Orientation (Patient)
0.996604\0.0823383\0-0.0823383\0.996604\0/
This is the conversion sentence:
c:>slicer --launch DWIConvert --conversionMode DicomToFSL  --outputVolume
ADCSlicer.nii --inputDicomDirectory C:\Temp\W2_500_DICOM --outputDirectory
./ --echo >> ConversionSlicer.log
This is the important content of ConversionSlicer.log file:
/=================== this->m_SlicesPerVolume:25
Dicom images are ordered in a volume interleaving way.
ImageOrientationPatient (0020:0037): LPS Orientation Matrix
0.996604 -0.0823383 0
0.0823383 0.996604 -0
0 0 0.999999
this->m_SpacingMatrix
0.9375 0 0
0 0.9375 0
0 0 5
NRRDSpaceDirection
0.934316 -0.0771922 0
0.0771922 0.934316 0
0 0 5
Slice 0: -109.284 -161.358 -82.5368
Slice 1: -109.284 -161.358 -76.5368
Slice order is IS
Number of Slices: 25
Number of Volume: 1
Number of Slices in each volume: 25
B-value: 1000; diffusion direction: 0, 0, 0
Scale Factor for Multiple BValues: 0 -- sqrt( 1000 / 1000 ) = 1/
The first thing that catches my attention is that the pixel spacing is 5 mm
instead of 6 mm which is the true IS spacing among the centers of voxels in
adjacent slices.
I have converted these files using dcm2niix also: dcm2niix -f ADCdcm2niix -o
./ C:\Temp\W2_500_DICOM which reports:
/
....
Slice thickness (mm): 5.000000
Slice spacing (mm): 6.000000
Image columns: 256
Image rows: 256
Voxel size x (mm): 0.9375
Voxel size y (mm): 0.9375
....
/
If you load both volumes on slicer the volume converted with DWIConvert
appears upside down and you cannot superpose them because regions do not
match.  If your make the conversion using DWIConvert with two
steps,DicomToNrrd and then NrrdToFSL, then you get the volume correctly
oriented but clearly compressed. Changing the z pixel spacing from 5 to 6 mm
solves this issue.
Taking this Z pixel spacing mismatch into account I draw a labelmap using
that 2-step DWIConverted volume as master volume, then I save that labelmap
using nii format and try to map it over the other one using the information
provided in the saved file with a R script.
Qaternions saved (b,c,d): (0,0, -0.9991508)
Qform (ROI over 2 steps  DWIconverted volume) :
[,1]        [,2] [,3]     [,4]
[1,] -0.93431626  0.07719193    0 109.2840
[2,] -0.07719193 -0.93431626    0 161.3580
[3,]  0.00000000  0.00000000    5 -82.5368
[4,]  0.00000000  0.00000000    0   1.0000
If I fix the position [3,3] changing its value from 5 to 6, the modified
positions of the ROI using
qform(ADCdcm2niix)^-1*qform(ROIover2StepsDWIConverted) match perfectly over
the volume converted with dcm2niix.
I'm going to perform further investigations, if I find something interesting
I'll inform you.

See this related bug report that includes a link to phantom data:
http://na-mic.org/Mantis/view.php?id=3867
Also see slicer-users thread here
http://massmail.spl.harvard.edu/public-archives/slicer-users/2017/011619.html

Thank you for  pointing out this bug.
I am working on this. I hope to try to get it fixed by end of this Sunday.
Thanks.

Hi, Felix,
Thank you for  pointing out this bug.
I initially located this bug:
In ITKv4/Modules/IO/DCMTK/src/itkDCMTKFileReader.cxx Line 1350 to Line 1355:
 if(subSequence.GetElementDS<double>(0x0028,0x0030,2,_spacing,false) == EXIT_SUCCESS              && subSequence.GetElementDS<double>(0x0018,0x0050,1,&_spacing[2]) == EXIT_SUCCESS)             {             spacing[0] = _spacing[1];             spacing[1] = _spacing[0];             spacing[2] = _spacing[2];
Maybe 0x0050 above should be 0088. Or maybe it is about space direction conversion. I need test with your original data to make sure.
I went to https://public.cancerimagingarchive.net/ncia/externalLinks.jsf?collectionName=IvyGAP to try to get your data, but I can not find the series 500 data you mentioned.
Would you please give me more in detail about where to get your test data?
Or you may share the test data with me through Dropbox by my gmail<EMAIL_ADDRESS>Thanks, have a nice weekend,
Hui Xie

If you access patient W2, the first session (date: 11/01/1996), the ADC
series. Those slices  are separated 6 mm and the slice thickness is 5 mm.
If you need more help don't hesitate to email me. I'll be online one hour
more.
2017-02-09 19:52 GMT+01:00 Hui Xie<EMAIL_ADDRESS>
Hi, Felix,
Thank you for pointing out this bug.
I initially located this bug:
In ITKv4/Modules/IO/DCMTK/src/itkDCMTKFileReader.cxx Line 1350 to Line
1355:
if(subSequence.GetElementDS(0x0028,0x0030,2,_spacing,false) ==
EXIT_SUCCESS && subSequence.GetElementDS(0x0018,0x0050,1,&_spacing[2])
== EXIT_SUCCESS) { spacing[0] = _spacing[1]; spacing[1] = _spacing[0];
spacing[2] = _spacing[2];
Maybe 0x0050 above should be 0088. Or maybe it is about space direction
conversion. I need test with your original data to make sure.
I went to https://public.cancerimagingarchive.net/ncia/externalLinks.jsf?
collectionName=IvyGAP http://url to try to get your data, but I can not
find the series 500 data you mentioned.
Would you please give me more in detail about where to get your test data?
Or you may share the test data with me through Dropbox by my gmail:
<EMAIL_ADDRESS>Thanks, have a nice weekend,
Hui Xie
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/BRAINSia/BRAINSTools/issues/334#issuecomment-278736429,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AH2vQJLBtT_cMRLGkQuJHAfcVxM0QOi1ks5ra2BfgaJpZM4L55z5
.

Hi, Felix,
Thank you for your quick response.
Can you go to the weblink https://public.cancerimagingarchive.net/ncia/externalLinks.jsf?collectionName=IvyGAP to have a look, where it has no date information.  Maybe  I went wrong web?
How about you give me a link of this data?
Thank you very much and best regards,

Hi Hui -
Be sure to always use the differences between Image Position Patient of
adjacent slices to calculate the third spacing value and don't rely on the
Spacing Between Slices (0018,0088, which is optional and often missing or
incorrect).
Here's a discussion from the ITK mailing list that may help:
https://itk.org/pipermail/insight-users/2008-November/027903.html
Also here's some example code from slicer that calculates the correct
spacing values and then confirms that each adjacent pair of slices is
within espilon of that spacing:
https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/DICOMPlugins/DICOMScalarVolumePlugin.py#L195-L253
It's important to do this because itk::Image, nrrd, and nifti all require
uniform slice spacing with no missing slices whereas a dicom series may be
missing a slice (e.g. if a file is deleted by mistake).
Hope that helps,
Steve
On Thu, Feb 9, 2017 at 2:36 PM, Hui Xie<EMAIL_ADDRESS>wrote:

Hi, Felix,
Thank you for your quick response.
Can you go to the weblink https://public.cancerimagingarchive.net/ncia/
externalLinks.jsf?collectionName=IvyGAP http://url to have a look,
where it has no date information. Maybe I went wrong web?
How about you give me a link of this data?
Thank you very much and best regards,
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/BRAINSia/BRAINSTools/issues/334#issuecomment-278748598,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAHsfVmDNIj65HwgzMqvI3SYDqQwMRZtks5ra2rBgaJpZM4L55z5
.

I believe that the spacing being created is done deep in ITK itself.  DWIConvert does not directly compute this value, but rather uses the value returned by ITK.
If there is a bug, it is likely in ITK itself.
Hans
From: Steve Pieper<EMAIL_ADDRESS>Reply-To: BRAINSia/BRAINSTools<EMAIL_ADDRESS>Date: Thursday, February 9, 2017 at 2:04 PM
To: BRAINSia/BRAINSTools<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: Re: [BRAINSia/BRAINSTools] DWIConvert slice spacing (#334)
Hi Hui -
Be sure to always use the differences between Image Position Patient of
adjacent slices to calculate the third spacing value and don't rely on the
Spacing Between Slices (0018,0088, which is optional and often missing or
incorrect).
Here's a discussion from the ITK mailing list that may help:
https://itk.org/pipermail/insight-users/2008-November/027903.html
Also here's some example code from slicer that calculates the correct
spacing values and then confirms that each adjacent pair of slices is
within espilon of that spacing:
https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/DICOMPlugins/DICOMScalarVolumePlugin.py#L195-L253
It's important to do this because itk::Image, nrrd, and nifti all require
uniform slice spacing with no missing slices whereas a dicom series may be
missing a slice (e.g. if a file is deleted by mistake).
Hope that helps,
Steve
On Thu, Feb 9, 2017 at 2:36 PM, Hui Xie<EMAIL_ADDRESS>wrote:

Hi, Felix,
Thank you for your quick response.
Can you go to the weblink https://public.cancerimagingarchive.net/ncia/
externalLinks.jsf?collectionName=IvyGAP http://url to have a look,
where it has no date information. Maybe I went wrong web?
How about you give me a link of this data?
Thank you very much and best regards,
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/BRAINSia/BRAINSTools/issues/334#issuecomment-278748598,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAHsfVmDNIj65HwgzMqvI3SYDqQwMRZtks5ra2rBgaJpZM4L55z5
.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Right - the issue is in the itk dcmtk image io which is used in DWIConvert.
On Thu, Feb 9, 2017 at 3:38 PM, Hans Johnson<EMAIL_ADDRESS>wrote:

I believe that the spacing being created is done deep in ITK itself.
DWIConvert does not directly compute this value, but rather uses the value
returned by ITK.
If there is a bug, it is likely in ITK itself.
Hans
From: Steve Pieper<EMAIL_ADDRESS>Reply-To: BRAINSia/BRAINSTools<EMAIL_ADDRESS>Date: Thursday, February 9, 2017 at 2:04 PM
To: BRAINSia/BRAINSTools<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: Re: [BRAINSia/BRAINSTools] DWIConvert slice spacing (#334)
Hi Hui -
Be sure to always use the differences between Image Position Patient of
adjacent slices to calculate the third spacing value and don't rely on the
Spacing Between Slices (0018,0088, which is optional and often missing or
incorrect).
Here's a discussion from the ITK mailing list that may help:
https://itk.org/pipermail/insight-users/2008-November/027903.html
Also here's some example code from slicer that calculates the correct
spacing values and then confirms that each adjacent pair of slices is
within espilon of that spacing:
https://github.com/Slicer/Slicer/blob/master/Modules/
Scripted/DICOMPlugins/DICOMScalarVolumePlugin.py#L195-L253
It's important to do this because itk::Image, nrrd, and nifti all require
uniform slice spacing with no missing slices whereas a dicom series may be
missing a slice (e.g. if a file is deleted by mistake).
Hope that helps,
Steve
On Thu, Feb 9, 2017 at 2:36 PM, Hui Xie<EMAIL_ADDRESS>wrote:

Hi, Felix,
Thank you for your quick response.
Can you go to the weblink https://public.cancerimagingarchive.net/ncia/
externalLinks.jsf?collectionName=IvyGAP http://url to have a look,
where it has no date information. Maybe I went wrong web?
How about you give me a link of this data?
Thank you very much and best regards,
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<https://github.com/BRAINSia/BRAINSTools/issues/334#
issuecomment-278748598>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/
AAHsfVmDNIj65HwgzMqvI3SYDqQwMRZtks5ra2rBgaJpZM4L55z5>
.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/BRAINSia/BRAINSTools/issues/334#issuecomment-278766150,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAHsfY-UrZPTbtvOFj2qGo5WTPnToqeXks5ra3k9gaJpZM4L55z5
.

Thank you very much, Pieper.
After I  read the link https://itk.org/pipermail/insight-users/2008-November/027903.html you gave, I find that 0018,0088 is a "big hollow" full of ambiguity and misinterpretation. This is why the int DCMTKFileReader::GetSpacing(double * const spacing) const writes so coiling like below.
I plan  not to change ITK code, let me to have a look whether there is another way to help Felix solve this bug.
Hui Xie
int
DCMTKFileReader
::GetSpacing(double * const spacing) const
{
double _spacing[3];
//
// There are several tags that can have spacing, and we're going
// from most to least desirable, starting with PixelSpacing, which
// is guaranteed to be in patient space.
// Imager Pixel spacing is inter-pixel spacing at the sensor front plane
// Pixel spacing
// first, shared function groups sequence, then
// per-frame groups sequence
_spacing[0] = _spacing[1] = _spacing[2] = 0.0;
int rval(EXIT_SUCCESS);
rval = this->GetElementDS(0x0028,0x0030,2,_spacing,false);
if(rval != EXIT_SUCCESS)
{
// imager pixel spacing
rval = this->GetElementDS(0x0018, 0x1164, 2, &_spacing[0],false);
if(rval != EXIT_SUCCESS)
{
// Nominal Scanned PixelSpacing
rval = this->GetElementDS(0x0018, 0x2010, 2, &_spacing[0],false);
}
}
if(rval == EXIT_SUCCESS)
{
// slice thickness
spacing[0] = _spacing[1];
spacing[1] = _spacing[0];
if(this->GetElementDS(0x0018,0x0050,1,&_spacing[2],false) == EXIT_SUCCESS)
{
spacing[2] = _spacing[2];
}
else
{
// punt, thicknes of 1
spacing[2] = 1.0;
}
return rval;
}
// this is for multiframe images -- preferentially use the shared
// functional group, and then the per-frame functional group
unsigned short candidateSequences[2] =
{
0x9229, // check for Shared Functional Group Sequence first
0x9230, // check the Per-frame Functional Groups Sequence
};
for(unsigned i = 0; i < 2; ++i)
{
DCMTKSequence spacingSequence;
rval = this->GetElementSQ(0x5200,candidateSequences[i],spacingSequence,false);
if(rval == EXIT_SUCCESS)
{
DCMTKItem item;
rval = spacingSequence.GetElementItem(0,item,false);
if(rval == EXIT_SUCCESS)
{
DCMTKSequence subSequence;
// Pixel Measures Sequence
rval = item.GetElementSQ(0x0028,0x9110,subSequence,false);
if(rval == EXIT_SUCCESS)
{
if(subSequence.GetElementDS(0x0028,0x0030,2,_spacing,false) == EXIT_SUCCESS
&& subSequence.GetElementDS(0x0018,0x0050,1,&_spacing[2]) == EXIT_SUCCESS)
{
spacing[0] = _spacing[1];
spacing[1] = _spacing[0];
spacing[2] = _spacing[2];
break;
}
}
}
}
}
return rval;
}

Thank Steve Pieper very much.
I will follow your suggestion of "use the differences between Image Position Patient of
adjacent slices to calculate the third spacing value" to modify ITK code:
int DCMTKFileReader::GetSpacing(double * const spacing) const
I will do it on Saturday.
Thanks.

Great Hui, thank you!  Fixing the DCMTKFileReader to handle this case is
important for ITK.
-Steve
On Thu, Feb 9, 2017 at 8:05 PM, Hui Xie<EMAIL_ADDRESS>wrote:

Thank Steve Pieper very much.
I will follow your suggestion of "use the differences between Image
Position Patient of
adjacent slices to calculate the third spacing value" to modify ITK code:
int DCMTKFileReader::GetSpacing(double * const spacing) const
I will do it on Saturday.
Thanks.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/BRAINSia/BRAINSTools/issues/334#issuecomment-278827570,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAHsfa3m1ZfFwPLZPikZB2wC5RShI7nxks5ra7ftgaJpZM4L55z5
.

Finished fixing this bug.
Fixing strategy:
1  I did not change function in ITK
int DCMTKFileReader::GetSpacing(double * const spacing) const,
as it is a function inside single slice/header file, which has no method to get the gap crossing the slices;
2  I add a method in DWIDICOMConverterBase in BRAINSTools
`double DWIDICOMConverterBase::getDicomZSpacing(){
double zSpace = 0;
if (m_NSlice > 1)
{
double origin0[3];
m_Headers[0]->GetOrigin(origin0);
double origin1[3];
    unsigned  int nextSlice = 0;
    while (0 == zSpace && nextSlice < m_NSlice){ //escape the slice interleave case
        ++nextSlice;
        m_Headers[nextSlice]->GetOrigin(origin1);
        zSpace = origin1[2] - origin0[2];
    }
    double zDirection = m_Volume->GetDirection()[2][2];
   zSpace = zSpace * zDirection;
}
return zSpace;

}`
which will utilize multiple slice/header files to get gap between the slices;

3   void DWIDICOMConverterBase::LoadDicomDirectory() has done missing slices check, so my new method does not do repeated work;
4   New method will lead some old testcases fail as these old testcases' nrrd verifying files were written by error method GetSpacing in ITK. Maybe we need to modify the test case file.
5  code has been pushed into Branch Fix#334, Please review and check.
Thank you, have a nice new week,

The test cases do need to be fixed if the spacing is wrong.
By what amount are they currently wrong?  Which test cases?
Hans
--
From: Hui Xie<EMAIL_ADDRESS>Reply-To: BRAINSia/BRAINSTools<EMAIL_ADDRESS>Date: Saturday, February 11, 2017 at 7:43 PM
To: BRAINSia/BRAINSTools<EMAIL_ADDRESS>Cc: Hans Johnson<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [BRAINSia/BRAINSTools] DWIConvert slice spacing (#334)
Finished fixing this bug.
Fixing strategy:
1 I did not change function in ITK
int DCMTKFileReader::GetSpacing(double * const spacing) const,
as it is a function inside single slice/header file, which has no method to get the gap crossing the slices;
2 I add a method in DWIDICOMConverterBase in BRAINSTools
double DWIDICOMConverterBase::getDicomZSpacing(){ double zSpace = 0; if (m_NSlice > 1) { double origin0[3]; m_Headers[0]->GetOrigin(origin0); double origin1[3];     unsigned  int nextSlice = 0;     while (0 == zSpace && nextSlice < m_NSlice){ //escape the slice interleave case         ++nextSlice;         m_Headers[nextSlice]->GetOrigin(origin1);         zSpace = origin1[2] - origin0[2];     }     double zDirection = m_Volume->GetDirection()[2][2];    zSpace = zSpace * zDirection; } return zSpace; }
which will utilize multiple slice/header files to get gap between the slices;
3 void DWIDICOMConverterBase::LoadDicomDirectory() has done missing slices check, so my new method does not do repeated work;
4 New method will lead some old testcases fail as these old testcases' nrrd verifying files were written by error method GetSpacing in ITK. Maybe we need to modify the test case file.
5 code has been pushed into Branch Fix#334, Please review and check.
Thank you, have a nice new week,
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

1  Felix's test file passed;
2  All of GE test cases passed, part Phillips and Siemens test cases failed.
=============
CTEST
Test project /scratch/hxie1/Projects/BrainsToolsBuild/DWIConvert
Start  1: Uncompress_DWIConvertGeSignaHdxBMatrixTest.tar.gz
1/65 Test  #1: Uncompress_DWIConvertGeSignaHdxBMatrixTest.tar.gz ..........   Passed    0.01 sec
Start  2: Uncompress_DWIConvertGeSignaHdxBigEndianTest.tar.gz
2/65 Test  #2: Uncompress_DWIConvertGeSignaHdxBigEndianTest.tar.gz ........   Passed    0.00 sec
Start  3: Uncompress_DWIConvertGeSignaHdxFSLTest.tar.gz
3/65 Test  #3: Uncompress_DWIConvertGeSignaHdxFSLTest.tar.gz ..............   Passed    0.01 sec
Start  4: Uncompress_DWIConvertGeSignaHdxTest.tar.gz
4/65 Test  #4: Uncompress_DWIConvertGeSignaHdxTest.tar.gz .................   Passed    0.00 sec
Start  5: Uncompress_DWIConvertGeSignaHdxtBMatrixTest.tar.gz
5/65 Test  #5: Uncompress_DWIConvertGeSignaHdxtBMatrixTest.tar.gz .........   Passed    0.01 sec
Start  6: Uncompress_DWIConvertGeSignaHdxtTest.tar.gz
6/65 Test  #6: Uncompress_DWIConvertGeSignaHdxtTest.tar.gz ................   Passed    0.00 sec
Start  7: Uncompress_DWIConvertPhilipsAchieva2BMatrixTest.tar.gz
7/65 Test  #7: Uncompress_DWIConvertPhilipsAchieva2BMatrixTest.tar.gz .....   Passed    0.01 sec
Start  8: Uncompress_DWIConvertPhilipsAchieva2Test.tar.gz
8/65 Test  #8: Uncompress_DWIConvertPhilipsAchieva2Test.tar.gz ............   Passed    0.01 sec
Start  9: Uncompress_DWIConvertPhilipsAchieva3Test.tar.gz
9/65 Test  #9: Uncompress_DWIConvertPhilipsAchieva3Test.tar.gz ............   Passed    0.01 sec
Start 10: Uncompress_DWIConvertPhilipsAchieva4Test.tar.gz
10/65 Test #10: Uncompress_DWIConvertPhilipsAchieva4Test.tar.gz ............   Passed    0.00 sec
Start 11: Uncompress_DWIConvertPhilipsAchieva6Test.tar.gz
11/65 Test #11: Uncompress_DWIConvertPhilipsAchieva6Test.tar.gz ............   Passed    0.01 sec
Start 12: Uncompress_DWIConvertPhilipsAchieva7Test.tar.gz
12/65 Test #12: Uncompress_DWIConvertPhilipsAchieva7Test.tar.gz ............   Passed    0.00 sec
Start 13: Uncompress_DWIConvertPhilipsAchievaBMatrixTest.tar.gz
13/65 Test #13: Uncompress_DWIConvertPhilipsAchievaBMatrixTest.tar.gz ......   Passed    0.00 sec
Start 14: Uncompress_DWIConvertPhilipsAchievaBigEndianTest.tar.gz
14/65 Test #14: Uncompress_DWIConvertPhilipsAchievaBigEndianTest.tar.gz ....   Passed    0.01 sec
Start 15: Uncompress_DWIConvertPhilipsAchievaTest.tar.gz
15/65 Test #15: Uncompress_DWIConvertPhilipsAchievaTest.tar.gz .............   Passed    0.01 sec
Start 16: Uncompress_DWIConvertSiemensTrioSyngo2004A1Test.tar.gz
16/65 Test #16: Uncompress_DWIConvertSiemensTrioSyngo2004A1Test.tar.gz .....   Passed    0.00 sec
Start 17: Uncompress_DWIConvertSiemensTrioSyngo2004A2Test.tar.gz
17/65 Test #17: Uncompress_DWIConvertSiemensTrioSyngo2004A2Test.tar.gz .....   Passed    0.01 sec
Start 18: Uncompress_DWIConvertSiemensTrioTim2Test.tar.gz
18/65 Test #18: Uncompress_DWIConvertSiemensTrioTim2Test.tar.gz ............   Passed    0.01 sec
Start 19: Uncompress_DWIConvertSiemensTrioTim3Test.tar.gz
19/65 Test #19: Uncompress_DWIConvertSiemensTrioTim3Test.tar.gz ............   Passed    0.00 sec
Start 20: Uncompress_DWIConvertSiemensTrioTimBigEndian1Test.tar.gz
20/65 Test #20: Uncompress_DWIConvertSiemensTrioTimBigEndian1Test.tar.gz ...   Passed    0.01 sec
Start 21: Uncompress_DWIConvertSiemensTrioTimTest.tar.gz
21/65 Test #21: Uncompress_DWIConvertSiemensTrioTimTest.tar.gz .............   Passed    0.01 sec
Start 22: Uncompress_DWIConvertSiemensVerioTest.tar.gz
22/65 Test #22: Uncompress_DWIConvertSiemensVerioTest.tar.gz ...............   Passed    0.01 sec
Start 23: Uncompress_GeSignaHDx.tar.gz
23/65 Test #23: Uncompress_GeSignaHDx.tar.gz ...............................   Passed    1.23 sec
Start 24: Uncompress_GeSignaHDxBigEndian.tar.gz
24/65 Test #24: Uncompress_GeSignaHDxBigEndian.tar.gz ......................   Passed    1.25 sec
Start 25: Uncompress_GeSignaHDxt.tar.gz
25/65 Test #25: Uncompress_GeSignaHDxt.tar.gz ..............................   Passed    1.81 sec
Start 26: Uncompress_PhilipsAchieva1.tar.gz
26/65 Test #26: Uncompress_PhilipsAchieva1.tar.gz ..........................   Passed    0.71 sec
Start 27: Uncompress_PhilipsAchieva2.tar.gz
27/65 Test #27: Uncompress_PhilipsAchieva2.tar.gz ..........................   Passed    0.72 sec
Start 28: Uncompress_PhilipsAchieva3.tar.gz
28/65 Test #28: Uncompress_PhilipsAchieva3.tar.gz ..........................   Passed    0.72 sec
Start 29: Uncompress_PhilipsAchieva4.tar.gz
29/65 Test #29: Uncompress_PhilipsAchieva4.tar.gz ..........................   Passed    0.68 sec
Start 30: Uncompress_PhilipsAchieva6.tar.gz
30/65 Test #30: Uncompress_PhilipsAchieva6.tar.gz ..........................   Passed    0.71 sec
Start 31: Uncompress_PhilipsAchieva7.tar.gz
31/65 Test #31: Uncompress_PhilipsAchieva7.tar.gz ..........................   Passed    0.73 sec
Start 32: Uncompress_PhilipsAchievaBigEndian1.tar.gz
32/65 Test #32: Uncompress_PhilipsAchievaBigEndian1.tar.gz .................   Passed    0.71 sec
Start 33: Uncompress_SiemensTrio-Syngo2004A-1.tar.gz
33/65 Test #33: Uncompress_SiemensTrio-Syngo2004A-1.tar.gz .................   Passed    0.81 sec
Start 34: Uncompress_SiemensTrio-Syngo2004A-2.tar.gz
34/65 Test #34: Uncompress_SiemensTrio-Syngo2004A-2.tar.gz .................   Passed    0.80 sec
Start 35: Uncompress_SiemensTrioTim1.tar.gz
35/65 Test #35: Uncompress_SiemensTrioTim1.tar.gz ..........................   Passed    0.34 sec
Start 36: Uncompress_SiemensTrioTim2.tar.gz
36/65 Test #36: Uncompress_SiemensTrioTim2.tar.gz ..........................   Passed    0.31 sec
Start 37: Uncompress_SiemensTrioTim3.tar.gz
37/65 Test #37: Uncompress_SiemensTrioTim3.tar.gz ..........................   Passed    0.33 sec
Start 38: Uncompress_SiemensTrioTimBigEndian1.tar.gz
38/65 Test #38: Uncompress_SiemensTrioTimBigEndian1.tar.gz .................   Passed    0.33 sec
Start 39: Uncompress_SiemensVerio.tar.gz
39/65 Test #39: Uncompress_SiemensVerio.tar.gz .............................   Passed    0.34 sec
Start 40: DWIConvertDWICompareHelpTest
40/65 Test #40: DWIConvertDWICompareHelpTest ...............................   Passed    0.07 sec
Start 41: DWIConvertGeSignaHdxTest
41/65 Test #41: DWIConvertGeSignaHdxTest ...................................   Passed   46.72 sec
Start 42: DWIConvertGeSignaHdxFSLTest
42/65 Test #42: DWIConvertGeSignaHdxFSLTest ................................   Passed   29.95 sec
Start 43: FSLToNrrdTest
43/65 Test #43: FSLToNrrdTest ..............................................   Passed   10.79 sec
Start 44: NrrdToFSLTest
44/65 Test #44: NrrdToFSLTest ..............................................   Passed   27.27 sec
Start 45: NrrdToFSLTest2
45/65 Test #45: NrrdToFSLTest2 .............................................   Passed   27.02 sec
Start 46: DWIConvertGeSignaHdxBigEndianTest
46/65 Test #46: DWIConvertGeSignaHdxBigEndianTest ..........................   Passed   45.59 sec
Start 47: DWIConvertGeSignaHdxBMatrixTest
47/65 Test #47: DWIConvertGeSignaHdxBMatrixTest ............................   Passed   45.41 sec
Start 48: DWIConvertGeSignaHdxtTest
48/65 Test #48: DWIConvertGeSignaHdxtTest ..................................   Passed   74.29 sec
Start 49: DWIConvertGeSignaHdxtBMatrixTest
49/65 Test #49: DWIConvertGeSignaHdxtBMatrixTest ...........................   Passed   73.30 sec
Start 50: DWIConvertPhilipsAchievaTest
50/65 Test #50: DWIConvertPhilipsAchievaTest ...............................   Passed   33.05 sec
Start 51: DWIConvertPhilipsAchievaBigEndianTest
51/65 Test #51: DWIConvertPhilipsAchievaBigEndianTest ......................   Passed   34.26 sec
Start 52: DWIConvertPhilipsAchievaBMatrixTest
52/65 Test #52: DWIConvertPhilipsAchievaBMatrixTest ........................   Passed   32.79 sec
Start 53: DWIConvertPhilipsAchieva2Test
53/65 Test #53: DWIConvertPhilipsAchieva2Test ..............................   Passed   32.38 sec
Start 54: DWIConvertPhilipsAchieva2BMatrixTest
54/65 Test #54: DWIConvertPhilipsAchieva2BMatrixTest .......................   Passed   32.28 sec
Start 55: DWIConvertPhilipsAchieva3Test
55/65 Test #55: DWIConvertPhilipsAchieva3Test ..............................   Passed   30.21 sec
Start 56: DWIConvertPhilipsAchieva4Test
56/65 Test #56: DWIConvertPhilipsAchieva4Test ..............................***Failed   33.12 sec
Start 57: DWIConvertPhilipsAchieva6Test
57/65 Test #57: DWIConvertPhilipsAchieva6Test ..............................***Failed   36.75 sec
Start 58: DWIConvertPhilipsAchieva7Test
58/65 Test #58: DWIConvertPhilipsAchieva7Test ..............................***Failed   36.76 sec
Start 59: DWIConvertSiemensTrioTimTest
59/65 Test #59: DWIConvertSiemensTrioTimTest ...............................***Failed    2.93 sec
Start 60: DWIConvertSiemensTrioTimBigEndian1Test
60/65 Test #60: DWIConvertSiemensTrioTimBigEndian1Test .....................***Failed    2.93 sec
Start 61: DWIConvertSiemensTrioTim2Test
61/65 Test #61: DWIConvertSiemensTrioTim2Test ..............................***Failed    2.82 sec
Start 62: DWIConvertSiemensTrioTim3Test
62/65 Test #62: DWIConvertSiemensTrioTim3Test ..............................***Failed    2.80 sec
Start 63: DWIConvertSiemensVerioTest
63/65 Test #63: DWIConvertSiemensVerioTest .................................***Failed    2.81 sec
Start 64: DWIConvertSiemensTrio_Syngo2004A_1Test
64/65 Test #64: DWIConvertSiemensTrio_Syngo2004A_1Test .....................   Passed   13.29 sec
Start 65: DWIConvertSiemensTrio_Syngo2004A_2Test
65/65 Test #65: DWIConvertSiemensTrio_Syngo2004A_2Test .....................   Passed   13.22 sec
88% tests passed, 8 tests failed out of 65
Total Test time (real) = 735.50 sec
The following tests FAILED:
56 - DWIConvertPhilipsAchieva4Test (Failed)
57 - DWIConvertPhilipsAchieva6Test (Failed)
58 - DWIConvertPhilipsAchieva7Test (Failed)
59 - DWIConvertSiemensTrioTimTest (Failed)
60 - DWIConvertSiemensTrioTimBigEndian1Test (Failed)
61 - DWIConvertSiemensTrioTim2Test (Failed)
62 - DWIConvertSiemensTrioTim3Test (Failed)
63 - DWIConvertSiemensVerioTest (Failed)
Errors while running CTest
putamen:$

Have you verified that these failures are really failures that need to be fixed?
Hans
--
From: Hui Xie<EMAIL_ADDRESS>Reply-To: BRAINSia/BRAINSTools<EMAIL_ADDRESS>Date: Saturday, February 11, 2017 at 8:45 PM
To: BRAINSia/BRAINSTools<EMAIL_ADDRESS>Cc: Hans Johnson<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [BRAINSia/BRAINSTools] DWIConvert slice spacing (#334)
1 Felix's test file passed;
2 All of GE test cases passed, part Phillips and Siemens test cases failed.
=============
CTEST
Test project /scratch/hxie1/Projects/BrainsToolsBuild/DWIConvert
Start 1: Uncompress_DWIConvertGeSignaHdxBMatrixTest.tar.gz
1/65 Test #1: Uncompress_DWIConvertGeSignaHdxBMatrixTest.tar.gz .......... Passed 0.01 sec
Start 2: Uncompress_DWIConvertGeSignaHdxBigEndianTest.tar.gz
2/65 Test #2: Uncompress_DWIConvertGeSignaHdxBigEndianTest.tar.gz ........ Passed 0.00 sec
Start 3: Uncompress_DWIConvertGeSignaHdxFSLTest.tar.gz
3/65 Test #3: Uncompress_DWIConvertGeSignaHdxFSLTest.tar.gz .............. Passed 0.01 sec
Start 4: Uncompress_DWIConvertGeSignaHdxTest.tar.gz
4/65 Test #4: Uncompress_DWIConvertGeSignaHdxTest.tar.gz ................. Passed 0.00 sec
Start 5: Uncompress_DWIConvertGeSignaHdxtBMatrixTest.tar.gz
5/65 Test #5: Uncompress_DWIConvertGeSignaHdxtBMatrixTest.tar.gz ......... Passed 0.01 sec
Start 6: Uncompress_DWIConvertGeSignaHdxtTest.tar.gz
6/65 Test #6: Uncompress_DWIConvertGeSignaHdxtTest.tar.gz ................ Passed 0.00 sec
Start 7: Uncompress_DWIConvertPhilipsAchieva2BMatrixTest.tar.gz
7/65 Test #7: Uncompress_DWIConvertPhilipsAchieva2BMatrixTest.tar.gz ..... Passed 0.01 sec
Start 8: Uncompress_DWIConvertPhilipsAchieva2Test.tar.gz
8/65 Test #8: Uncompress_DWIConvertPhilipsAchieva2Test.tar.gz ............ Passed 0.01 sec
Start 9: Uncompress_DWIConvertPhilipsAchieva3Test.tar.gz
9/65 Test #9: Uncompress_DWIConvertPhilipsAchieva3Test.tar.gz ............ Passed 0.01 sec
Start 10: Uncompress_DWIConvertPhilipsAchieva4Test.tar.gz
10/65 Test #10: Uncompress_DWIConvertPhilipsAchieva4Test.tar.gz ............ Passed 0.00 sec
Start 11: Uncompress_DWIConvertPhilipsAchieva6Test.tar.gz
11/65 Test #11: Uncompress_DWIConvertPhilipsAchieva6Test.tar.gz ............ Passed 0.01 sec
Start 12: Uncompress_DWIConvertPhilipsAchieva7Test.tar.gz
12/65 Test #12: Uncompress_DWIConvertPhilipsAchieva7Test.tar.gz ............ Passed 0.00 sec
Start 13: Uncompress_DWIConvertPhilipsAchievaBMatrixTest.tar.gz
13/65 Test #13: Uncompress_DWIConvertPhilipsAchievaBMatrixTest.tar.gz ...... Passed 0.00 sec
Start 14: Uncompress_DWIConvertPhilipsAchievaBigEndianTest.tar.gz
14/65 Test #14: Uncompress_DWIConvertPhilipsAchievaBigEndianTest.tar.gz .... Passed 0.01 sec
Start 15: Uncompress_DWIConvertPhilipsAchievaTest.tar.gz
15/65 Test #15: Uncompress_DWIConvertPhilipsAchievaTest.tar.gz ............. Passed 0.01 sec
Start 16: Uncompress_DWIConvertSiemensTrioSyngo2004A1Test.tar.gz
16/65 Test #16: Uncompress_DWIConvertSiemensTrioSyngo2004A1Test.tar.gz ..... Passed 0.00 sec
Start 17: Uncompress_DWIConvertSiemensTrioSyngo2004A2Test.tar.gz
17/65 Test #17: Uncompress_DWIConvertSiemensTrioSyngo2004A2Test.tar.gz ..... Passed 0.01 sec
Start 18: Uncompress_DWIConvertSiemensTrioTim2Test.tar.gz
18/65 Test #18: Uncompress_DWIConvertSiemensTrioTim2Test.tar.gz ............ Passed 0.01 sec
Start 19: Uncompress_DWIConvertSiemensTrioTim3Test.tar.gz
19/65 Test #19: Uncompress_DWIConvertSiemensTrioTim3Test.tar.gz ............ Passed 0.00 sec
Start 20: Uncompress_DWIConvertSiemensTrioTimBigEndian1Test.tar.gz
20/65 Test #20: Uncompress_DWIConvertSiemensTrioTimBigEndian1Test.tar.gz ... Passed 0.01 sec
Start 21: Uncompress_DWIConvertSiemensTrioTimTest.tar.gz
21/65 Test #21: Uncompress_DWIConvertSiemensTrioTimTest.tar.gz ............. Passed 0.01 sec
Start 22: Uncompress_DWIConvertSiemensVerioTest.tar.gz
22/65 Test #22: Uncompress_DWIConvertSiemensVerioTest.tar.gz ............... Passed 0.01 sec
Start 23: Uncompress_GeSignaHDx.tar.gz
23/65 Test #23: Uncompress_GeSignaHDx.tar.gz ............................... Passed 1.23 sec
Start 24: Uncompress_GeSignaHDxBigEndian.tar.gz
24/65 Test #24: Uncompress_GeSignaHDxBigEndian.tar.gz ...................... Passed 1.25 sec
Start 25: Uncompress_GeSignaHDxt.tar.gz
25/65 Test #25: Uncompress_GeSignaHDxt.tar.gz .............................. Passed 1.81 sec
Start 26: Uncompress_PhilipsAchieva1.tar.gz
26/65 Test #26: Uncompress_PhilipsAchieva1.tar.gz .......................... Passed 0.71 sec
Start 27: Uncompress_PhilipsAchieva2.tar.gz
27/65 Test #27: Uncompress_PhilipsAchieva2.tar.gz .......................... Passed 0.72 sec
Start 28: Uncompress_PhilipsAchieva3.tar.gz
28/65 Test #28: Uncompress_PhilipsAchieva3.tar.gz .......................... Passed 0.72 sec
Start 29: Uncompress_PhilipsAchieva4.tar.gz
29/65 Test #29: Uncompress_PhilipsAchieva4.tar.gz .......................... Passed 0.68 sec
Start 30: Uncompress_PhilipsAchieva6.tar.gz
30/65 Test #30: Uncompress_PhilipsAchieva6.tar.gz .......................... Passed 0.71 sec
Start 31: Uncompress_PhilipsAchieva7.tar.gz
31/65 Test #31: Uncompress_PhilipsAchieva7.tar.gz .......................... Passed 0.73 sec
Start 32: Uncompress_PhilipsAchievaBigEndian1.tar.gz
32/65 Test #32: Uncompress_PhilipsAchievaBigEndian1.tar.gz ................. Passed 0.71 sec
Start 33: Uncompress_SiemensTrio-Syngo2004A-1.tar.gz
33/65 Test #33: Uncompress_SiemensTrio-Syngo2004A-1.tar.gz ................. Passed 0.81 sec
Start 34: Uncompress_SiemensTrio-Syngo2004A-2.tar.gz
34/65 Test #34: Uncompress_SiemensTrio-Syngo2004A-2.tar.gz ................. Passed 0.80 sec
Start 35: Uncompress_SiemensTrioTim1.tar.gz
35/65 Test #35: Uncompress_SiemensTrioTim1.tar.gz .......................... Passed 0.34 sec
Start 36: Uncompress_SiemensTrioTim2.tar.gz
36/65 Test #36: Uncompress_SiemensTrioTim2.tar.gz .......................... Passed 0.31 sec
Start 37: Uncompress_SiemensTrioTim3.tar.gz
37/65 Test #37: Uncompress_SiemensTrioTim3.tar.gz .......................... Passed 0.33 sec
Start 38: Uncompress_SiemensTrioTimBigEndian1.tar.gz
38/65 Test #38: Uncompress_SiemensTrioTimBigEndian1.tar.gz ................. Passed 0.33 sec
Start 39: Uncompress_SiemensVerio.tar.gz
39/65 Test #39: Uncompress_SiemensVerio.tar.gz ............................. Passed 0.34 sec
Start 40: DWIConvertDWICompareHelpTest
40/65 Test #40: DWIConvertDWICompareHelpTest ............................... Passed 0.07 sec
Start 41: DWIConvertGeSignaHdxTest
41/65 Test #41: DWIConvertGeSignaHdxTest ................................... Passed 46.72 sec
Start 42: DWIConvertGeSignaHdxFSLTest
42/65 Test #42: DWIConvertGeSignaHdxFSLTest ................................ Passed 29.95 sec
Start 43: FSLToNrrdTest
43/65 Test #43: FSLToNrrdTest .............................................. Passed 10.79 sec
Start 44: NrrdToFSLTest
44/65 Test #44: NrrdToFSLTest .............................................. Passed 27.27 sec
Start 45: NrrdToFSLTest2
45/65 Test #45: NrrdToFSLTest2 ............................................. Passed 27.02 sec
Start 46: DWIConvertGeSignaHdxBigEndianTest
46/65 Test #46: DWIConvertGeSignaHdxBigEndianTest .......................... Passed 45.59 sec
Start 47: DWIConvertGeSignaHdxBMatrixTest
47/65 Test #47: DWIConvertGeSignaHdxBMatrixTest ............................ Passed 45.41 sec
Start 48: DWIConvertGeSignaHdxtTest
48/65 Test #48: DWIConvertGeSignaHdxtTest .................................. Passed 74.29 sec
Start 49: DWIConvertGeSignaHdxtBMatrixTest
49/65 Test #49: DWIConvertGeSignaHdxtBMatrixTest ........................... Passed 73.30 sec
Start 50: DWIConvertPhilipsAchievaTest
50/65 Test #50: DWIConvertPhilipsAchievaTest ............................... Passed 33.05 sec
Start 51: DWIConvertPhilipsAchievaBigEndianTest
51/65 Test #51: DWIConvertPhilipsAchievaBigEndianTest ...................... Passed 34.26 sec
Start 52: DWIConvertPhilipsAchievaBMatrixTest
52/65 Test #52: DWIConvertPhilipsAchievaBMatrixTest ........................ Passed 32.79 sec
Start 53: DWIConvertPhilipsAchieva2Test
53/65 Test #53: DWIConvertPhilipsAchieva2Test .............................. Passed 32.38 sec
Start 54: DWIConvertPhilipsAchieva2BMatrixTest
54/65 Test #54: DWIConvertPhilipsAchieva2BMatrixTest ....................... Passed 32.28 sec
Start 55: DWIConvertPhilipsAchieva3Test
55/65 Test #55: DWIConvertPhilipsAchieva3Test .............................. Passed 30.21 sec
Start 56: DWIConvertPhilipsAchieva4Test
56/65 Test #56: DWIConvertPhilipsAchieva4Test ..............................***Failed 33.12 sec
Start 57: DWIConvertPhilipsAchieva6Test
57/65 Test #57: DWIConvertPhilipsAchieva6Test ..............................***Failed 36.75 sec
Start 58: DWIConvertPhilipsAchieva7Test
58/65 Test #58: DWIConvertPhilipsAchieva7Test ..............................***Failed 36.76 sec
Start 59: DWIConvertSiemensTrioTimTest
59/65 Test #59: DWIConvertSiemensTrioTimTest ...............................***Failed 2.93 sec
Start 60: DWIConvertSiemensTrioTimBigEndian1Test
60/65 Test #60: DWIConvertSiemensTrioTimBigEndian1Test .....................***Failed 2.93 sec
Start 61: DWIConvertSiemensTrioTim2Test
61/65 Test #61: DWIConvertSiemensTrioTim2Test ..............................***Failed 2.82 sec
Start 62: DWIConvertSiemensTrioTim3Test
62/65 Test #62: DWIConvertSiemensTrioTim3Test ..............................***Failed 2.80 sec
Start 63: DWIConvertSiemensVerioTest
63/65 Test #63: DWIConvertSiemensVerioTest .................................***Failed 2.81 sec
Start 64: DWIConvertSiemensTrio_Syngo2004A_1Test
64/65 Test #64: DWIConvertSiemensTrio_Syngo2004A_1Test ..................... Passed 13.29 sec
Start 65: DWIConvertSiemensTrio_Syngo2004A_2Test
65/65 Test #65: DWIConvertSiemensTrio_Syngo2004A_2Test ..................... Passed 13.22 sec
88% tests passed, 8 tests failed out of 65
Total Test time (real) = 735.50 sec
The following tests FAILED:
56 - DWIConvertPhilipsAchieva4Test (Failed)
57 - DWIConvertPhilipsAchieva6Test (Failed)
58 - DWIConvertPhilipsAchieva7Test (Failed)
59 - DWIConvertSiemensTrioTimTest (Failed)
60 - DWIConvertSiemensTrioTimBigEndian1Test (Failed)
61 - DWIConvertSiemensTrioTim2Test (Failed)
62 - DWIConvertSiemensTrioTim3Test (Failed)
63 - DWIConvertSiemensVerioTest (Failed)
Errors while running CTest
putamen:$
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Philips is because of wrong test case verifying file;
Siemens has special slice interleave format which need special treat.
This is not a easy case, I  will read Siemens related document, and will continue to handle it on Tuesday.

Does dcm2niix give a different result than DWIConvert?
Hans
--
From: Hui Xie<EMAIL_ADDRESS>Reply-To: BRAINSia/BRAINSTools<EMAIL_ADDRESS>Date: Saturday, February 11, 2017 at 9:35 PM
To: BRAINSia/BRAINSTools<EMAIL_ADDRESS>Cc: Hans Johnson<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [BRAINSia/BRAINSTools] DWIConvert slice spacing (#334)
Philips is because of wrong test case verifying file;
Siemens has special slice interleave format which need special treat.
This is not a easy case, I will read Siemens related document, and will continue to handle it on Tuesday.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Now It is reducing to 3 test failures all about Philips. I am continue working on this.
putamen:$ ctest
Test project /scratch/hxie1/Projects/BrainsToolsBuild/DWIConvert
Start  1: Uncompress_DWIConvertGeSignaHdxBMatrixTest.tar.gz
1/65 Test  #1: Uncompress_DWIConvertGeSignaHdxBMatrixTest.tar.gz ..........   Passed    0.01 sec
Start  2: Uncompress_DWIConvertGeSignaHdxBigEndianTest.tar.gz
2/65 Test  #2: Uncompress_DWIConvertGeSignaHdxBigEndianTest.tar.gz ........   Passed    0.01 sec
Start  3: Uncompress_DWIConvertGeSignaHdxFSLTest.tar.gz
3/65 Test  #3: Uncompress_DWIConvertGeSignaHdxFSLTest.tar.gz ..............   Passed    0.01 sec
Start  4: Uncompress_DWIConvertGeSignaHdxTest.tar.gz
4/65 Test  #4: Uncompress_DWIConvertGeSignaHdxTest.tar.gz .................   Passed    0.00 sec
Start  5: Uncompress_DWIConvertGeSignaHdxtBMatrixTest.tar.gz
5/65 Test  #5: Uncompress_DWIConvertGeSignaHdxtBMatrixTest.tar.gz .........   Passed    0.01 sec
Start  6: Uncompress_DWIConvertGeSignaHdxtTest.tar.gz
6/65 Test  #6: Uncompress_DWIConvertGeSignaHdxtTest.tar.gz ................   Passed    0.01 sec
Start  7: Uncompress_DWIConvertPhilipsAchieva2BMatrixTest.tar.gz
7/65 Test  #7: Uncompress_DWIConvertPhilipsAchieva2BMatrixTest.tar.gz .....   Passed    0.01 sec
Start  8: Uncompress_DWIConvertPhilipsAchieva2Test.tar.gz
8/65 Test  #8: Uncompress_DWIConvertPhilipsAchieva2Test.tar.gz ............   Passed    0.00 sec
Start  9: Uncompress_DWIConvertPhilipsAchieva3Test.tar.gz
9/65 Test  #9: Uncompress_DWIConvertPhilipsAchieva3Test.tar.gz ............   Passed    0.01 sec
Start 10: Uncompress_DWIConvertPhilipsAchieva4Test.tar.gz
10/65 Test #10: Uncompress_DWIConvertPhilipsAchieva4Test.tar.gz ............   Passed    0.01 sec
Start 11: Uncompress_DWIConvertPhilipsAchieva6Test.tar.gz
11/65 Test #11: Uncompress_DWIConvertPhilipsAchieva6Test.tar.gz ............   Passed    0.01 sec
Start 12: Uncompress_DWIConvertPhilipsAchieva7Test.tar.gz
12/65 Test #12: Uncompress_DWIConvertPhilipsAchieva7Test.tar.gz ............   Passed    0.01 sec
Start 13: Uncompress_DWIConvertPhilipsAchievaBMatrixTest.tar.gz
13/65 Test #13: Uncompress_DWIConvertPhilipsAchievaBMatrixTest.tar.gz ......   Passed    0.01 sec
Start 14: Uncompress_DWIConvertPhilipsAchievaBigEndianTest.tar.gz
14/65 Test #14: Uncompress_DWIConvertPhilipsAchievaBigEndianTest.tar.gz ....   Passed    0.01 sec
Start 15: Uncompress_DWIConvertPhilipsAchievaTest.tar.gz
15/65 Test #15: Uncompress_DWIConvertPhilipsAchievaTest.tar.gz .............   Passed    0.01 sec
Start 16: Uncompress_DWIConvertSiemensTrioSyngo2004A1Test.tar.gz
16/65 Test #16: Uncompress_DWIConvertSiemensTrioSyngo2004A1Test.tar.gz .....   Passed    0.01 sec
Start 17: Uncompress_DWIConvertSiemensTrioSyngo2004A2Test.tar.gz
17/65 Test #17: Uncompress_DWIConvertSiemensTrioSyngo2004A2Test.tar.gz .....   Passed    0.01 sec
Start 18: Uncompress_DWIConvertSiemensTrioTim2Test.tar.gz
18/65 Test #18: Uncompress_DWIConvertSiemensTrioTim2Test.tar.gz ............   Passed    0.01 sec
Start 19: Uncompress_DWIConvertSiemensTrioTim3Test.tar.gz
19/65 Test #19: Uncompress_DWIConvertSiemensTrioTim3Test.tar.gz ............   Passed    0.01 sec
Start 20: Uncompress_DWIConvertSiemensTrioTimBigEndian1Test.tar.gz
20/65 Test #20: Uncompress_DWIConvertSiemensTrioTimBigEndian1Test.tar.gz ...   Passed    0.01 sec
Start 21: Uncompress_DWIConvertSiemensTrioTimTest.tar.gz
21/65 Test #21: Uncompress_DWIConvertSiemensTrioTimTest.tar.gz .............   Passed    0.01 sec
Start 22: Uncompress_DWIConvertSiemensVerioTest.tar.gz
22/65 Test #22: Uncompress_DWIConvertSiemensVerioTest.tar.gz ...............   Passed    0.01 sec
Start 23: Uncompress_GeSignaHDx.tar.gz
23/65 Test #23: Uncompress_GeSignaHDx.tar.gz ...............................   Passed    1.18 sec
Start 24: Uncompress_GeSignaHDxBigEndian.tar.gz
24/65 Test #24: Uncompress_GeSignaHDxBigEndian.tar.gz ......................   Passed    1.17 sec
Start 25: Uncompress_GeSignaHDxt.tar.gz
25/65 Test #25: Uncompress_GeSignaHDxt.tar.gz ..............................   Passed    1.75 sec
Start 26: Uncompress_PhilipsAchieva1.tar.gz
26/65 Test #26: Uncompress_PhilipsAchieva1.tar.gz ..........................   Passed    0.65 sec
Start 27: Uncompress_PhilipsAchieva2.tar.gz
27/65 Test #27: Uncompress_PhilipsAchieva2.tar.gz ..........................   Passed    0.64 sec
Start 28: Uncompress_PhilipsAchieva3.tar.gz
28/65 Test #28: Uncompress_PhilipsAchieva3.tar.gz ..........................   Passed    0.66 sec
Start 29: Uncompress_PhilipsAchieva4.tar.gz
29/65 Test #29: Uncompress_PhilipsAchieva4.tar.gz ..........................   Passed    0.69 sec
Start 30: Uncompress_PhilipsAchieva6.tar.gz
30/65 Test #30: Uncompress_PhilipsAchieva6.tar.gz ..........................   Passed    0.67 sec
Start 31: Uncompress_PhilipsAchieva7.tar.gz
31/65 Test #31: Uncompress_PhilipsAchieva7.tar.gz ..........................   Passed    0.69 sec
Start 32: Uncompress_PhilipsAchievaBigEndian1.tar.gz
32/65 Test #32: Uncompress_PhilipsAchievaBigEndian1.tar.gz .................   Passed    0.65 sec
Start 33: Uncompress_SiemensTrio-Syngo2004A-1.tar.gz
33/65 Test #33: Uncompress_SiemensTrio-Syngo2004A-1.tar.gz .................   Passed    0.73 sec
Start 34: Uncompress_SiemensTrio-Syngo2004A-2.tar.gz
34/65 Test #34: Uncompress_SiemensTrio-Syngo2004A-2.tar.gz .................   Passed    0.72 sec
Start 35: Uncompress_SiemensTrioTim1.tar.gz
35/65 Test #35: Uncompress_SiemensTrioTim1.tar.gz ..........................   Passed    0.31 sec
Start 36: Uncompress_SiemensTrioTim2.tar.gz
36/65 Test #36: Uncompress_SiemensTrioTim2.tar.gz ..........................   Passed    0.31 sec
Start 37: Uncompress_SiemensTrioTim3.tar.gz
37/65 Test #37: Uncompress_SiemensTrioTim3.tar.gz ..........................   Passed    0.32 sec
Start 38: Uncompress_SiemensTrioTimBigEndian1.tar.gz
38/65 Test #38: Uncompress_SiemensTrioTimBigEndian1.tar.gz .................   Passed    0.31 sec
Start 39: Uncompress_SiemensVerio.tar.gz
39/65 Test #39: Uncompress_SiemensVerio.tar.gz .............................   Passed    0.30 sec
Start 40: DWIConvertDWICompareHelpTest
40/65 Test #40: DWIConvertDWICompareHelpTest ...............................   Passed    0.06 sec
Start 41: DWIConvertGeSignaHdxTest
41/65 Test #41: DWIConvertGeSignaHdxTest ...................................   Passed   62.35 sec
Start 42: DWIConvertGeSignaHdxFSLTest
42/65 Test #42: DWIConvertGeSignaHdxFSLTest ................................   Passed   32.42 sec
Start 43: FSLToNrrdTest
43/65 Test #43: FSLToNrrdTest ..............................................   Passed   11.52 sec
Start 44: NrrdToFSLTest
44/65 Test #44: NrrdToFSLTest ..............................................   Passed   41.64 sec
Start 45: NrrdToFSLTest2
45/65 Test #45: NrrdToFSLTest2 .............................................   Passed   41.38 sec
Start 46: DWIConvertGeSignaHdxBigEndianTest
46/65 Test #46: DWIConvertGeSignaHdxBigEndianTest ..........................   Passed   61.15 sec
Start 47: DWIConvertGeSignaHdxBMatrixTest
47/65 Test #47: DWIConvertGeSignaHdxBMatrixTest ............................   Passed   61.23 sec
Start 48: DWIConvertGeSignaHdxtTest
48/65 Test #48: DWIConvertGeSignaHdxtTest ..................................   Passed   96.19 sec
Start 49: DWIConvertGeSignaHdxtBMatrixTest
49/65 Test #49: DWIConvertGeSignaHdxtBMatrixTest ...........................   Passed   96.55 sec
Start 50: DWIConvertPhilipsAchievaTest
50/65 Test #50: DWIConvertPhilipsAchievaTest ...............................   Passed   43.34 sec
Start 51: DWIConvertPhilipsAchievaBigEndianTest
51/65 Test #51: DWIConvertPhilipsAchievaBigEndianTest ......................   Passed   43.19 sec
Start 52: DWIConvertPhilipsAchievaBMatrixTest
52/65 Test #52: DWIConvertPhilipsAchievaBMatrixTest ........................   Passed   43.27 sec
Start 53: DWIConvertPhilipsAchieva2Test
53/65 Test #53: DWIConvertPhilipsAchieva2Test ..............................   Passed   42.91 sec
Start 54: DWIConvertPhilipsAchieva2BMatrixTest
54/65 Test #54: DWIConvertPhilipsAchieva2BMatrixTest .......................   Passed   42.44 sec
Start 55: DWIConvertPhilipsAchieva3Test
55/65 Test #55: DWIConvertPhilipsAchieva3Test ..............................   Passed   40.12 sec
Start 56: DWIConvertPhilipsAchieva4Test
56/65 Test #56: DWIConvertPhilipsAchieva4Test ..............................***Failed   43.59 sec
Start 57: DWIConvertPhilipsAchieva6Test
57/65 Test #57: DWIConvertPhilipsAchieva6Test ..............................***Failed   47.14 sec
Start 58: DWIConvertPhilipsAchieva7Test
58/65 Test #58: DWIConvertPhilipsAchieva7Test ..............................***Failed   47.12 sec
Start 59: DWIConvertSiemensTrioTimTest
59/65 Test #59: DWIConvertSiemensTrioTimTest ...............................   Passed   23.43 sec
Start 60: DWIConvertSiemensTrioTimBigEndian1Test
60/65 Test #60: DWIConvertSiemensTrioTimBigEndian1Test .....................   Passed   23.37 sec
Start 61: DWIConvertSiemensTrioTim2Test
61/65 Test #61: DWIConvertSiemensTrioTim2Test ..............................   Passed   23.39 sec
Start 62: DWIConvertSiemensTrioTim3Test
62/65 Test #62: DWIConvertSiemensTrioTim3Test ..............................   Passed   23.21 sec
Start 63: DWIConvertSiemensVerioTest
63/65 Test #63: DWIConvertSiemensVerioTest .................................   Passed   23.53 sec
Start 64: DWIConvertSiemensTrio_Syngo2004A_1Test
64/65 Test #64: DWIConvertSiemensTrio_Syngo2004A_1Test .....................   Passed   15.96 sec
Start 65: DWIConvertSiemensTrio_Syngo2004A_2Test
65/65 Test #65: DWIConvertSiemensTrio_Syngo2004A_2Test .....................   Passed   16.08 sec
95% tests passed, 3 tests failed out of 65
Total Test time (real) = 1058.48 sec
The following tests FAILED:
56 - DWIConvertPhilipsAchieva4Test (Failed)
57 - DWIConvertPhilipsAchieva6Test (Failed)
58 - DWIConvertPhilipsAchieva7Test (Failed)
Errors while running CTest
putamen:$

The 3 test failures of Philips are all about zSpace, and same error situation.
From the origin coordinates of adjacent slices 0 and 34, the zSpace should be 1.89747 instead of 2.
Therefore, I suspect the error is from original verifying nrrd file which has error because  ITKDicomFileReader::GetSpacing() has error.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Test_Compare_Command_Line_TEMP_OUTPUT=/scratch/hxie1/Projects/BrainsToolsBuild/bin/DWICompare;--inputVolume2;/scratch/hxie1/Projects/BrainsToolsBuild/DWIConvert/TestSuite/PhilipsAchieva4Test.nrrd;--inputVolume1;/scratch/hxie1/Projects/BrainsToolsBuild/ExternalData/TestData/DWI_TestData_OUTPUTS/PhilipsAchieva4.nrrd
56: The first image Spacing does not match second image Information
56: First Spacing: [2, 2, 2]
56: Second Spacing: [2, 2, 1.89747]
=================== this->m_SlicesPerVolume:70
56: Dicom images are ordered in a slice interleaving way.
56: ImageOrientationPatient (0020:0037): LPS Orientation Matrix
56: 0.999844 2.02473e-18 -0.0176418
56: 0.00556822 0.948883 0.315578
56: 0.01674 -0.315627 0.948736
56:
56: this->m_SpacingMatrix
56: 2 0 0
56: 0 2 0
56: 0 0 1.89747
56:
56: NRRDSpaceDirection
56: 1.99969 4.04946e-18 -0.0334748
56: 0.0111364 1.89777 0.5988
56: 0.03348 -0.631253 1.8002
56:
56: Slice 0: -131.01 -151.938 -17.2639
56: Slice 34: -131.046 -151.307 -15.3664
56: Slice order is IS
56: Number of Slices: 2380
56: Number of Volumes: 34
56: Number of Slices in each volume: 70

Today I analyzed the latest code of Dcm2niix from Github:
1  it directly uses (0028, 0030) to get physical X,Y spacing inside a slice;
2  it directly uses(0018, 0088) to get physical Z spacing between slices;
3 it directly uses (0018, 0050) go get slice thickness;
The "directly"s above mean there is no other logic judgement to get these values, just plainly do it.
It looks that Dcm2niix is not so complex comparing with ITK::DCMTKFileReader::GetSpacing().
Can we believe the judgement of Dcm2niix?

Current ITK:: DCMTKFileReader has not getThickness() method, BRAINSTools just directly use zSpace as thickness.
Do we need to add a getThickness() method in  ITK::DCMTKFileReader?

What are those values for the DICOM images that are failing our tests?
Use dcm2xml from Dcmtk toolkit binaries to see easily.
Sent from my iPhone

On Feb 18, 2017, at 3:01 PM, Hui Xie<EMAIL_ADDRESS>wrote:
Current ITK:: DCMTKFileReader has not getThickness() method, BRAINSTools just directly use zSpace as thickness.
Do we need to add a getThickness() method in ITK::DCMTKFileReader?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

itk::ImageBase has no thickness property. I am considering add one into DWIConverter.

After I modified ITK:: DCMTKFileReader::GetSpace() method, the below is test result for Felix's data for backup record.

putamen:$ DWIConvert --inputDicomDirectory ~/Research/DWIConvertRefactor/Felix/SpaceDicom --outputVolume Fllix.nhdr
======= DWI Convert Public Lib Ctest =========
=================== this->m_SlicesPerVolume:25
Dicom images are ordered in a volume interleaving way.
ImageOrientationPatient (0020:0037): LPS Orientation Matrix
0.996604 -0.0823383 0
0.0823383 0.996604 0
0 0 0.999999
this->m_SpacingMatrix
0.9375 0 0
0 0.9375 0
0 0 6
NRRDSpaceDirection
0.934316 -0.0771922 0
0.0771922 0.934316 0
0 0 5.99999
Slice 0: -109.284 -161.358 -82.5368
Slice 1: -109.284 -161.358 -76.5368
Slice order is IS
Number of Slices: 25
Number of Volume: 1
Number of Slices in each volume: 25
B-value: 1000; diffusion direction: 0, 0, 0
Scale Factor for Multiple BValues: 0 -- sqrt( 1000 / 1000 ) = 1
Wrote file: ./Fllix.nhdr
putamen:$

Hui,
Thickness is not important to us.  It is not a relevant measure for our DWI work.  Slice spacing is important, but thickness is not.
Hans
--
From: Hui Xie<EMAIL_ADDRESS>Reply-To: BRAINSia/BRAINSTools<EMAIL_ADDRESS>Date: Saturday, February 18, 2017 at 3:36 PM
To: BRAINSia/BRAINSTools<EMAIL_ADDRESS>Cc: Hans Johnson<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [BRAINSia/BRAINSTools] DWIConvert slice spacing (#334)
itk::ImageBase has no thickness property. I am considering add one into DWIConverter.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Is that correct?
Hans
--
From: Hui Xie<EMAIL_ADDRESS>Reply-To: BRAINSia/BRAINSTools<EMAIL_ADDRESS>Date: Saturday, February 18, 2017 at 3:50 PM
To: BRAINSia/BRAINSTools<EMAIL_ADDRESS>Cc: Hans Johnson<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [BRAINSia/BRAINSTools] DWIConvert slice spacing (#334)
After I modified ITK:: DCMTKFileReader::GetSpace() method, the below is test result for Felix's data for backup record.
putamen:$ DWIConvert --inputDicomDirectory ~/Research/DWIConvertRefactor/Felix/SpaceDicom --outputVolume Fllix.nhdr
======= DWI Convert Public Lib Ctest =========
=================== this->m_SlicesPerVolume:25
Dicom images are ordered in a volume interleaving way.
ImageOrientationPatient (0020:0037): LPS Orientation Matrix
0.996604 -0.0823383 0
0.0823383 0.996604 0
0 0 0.999999
this->m_SpacingMatrix
0.9375 0 0
0 0.9375 0
0 0 6
NRRDSpaceDirection
0.934316 -0.0771922 0
0.0771922 0.934316 0
0 0 5.99999
Slice 0: -109.284 -161.358 -82.5368
Slice 1: -109.284 -161.358 -76.5368
Slice order is IS
Number of Slices: 25
Number of Volume: 1
Number of Slices in each volume: 25
B-value: 1000; diffusion direction: 0, 0, 0
Scale Factor for Multiple BValues: 0 -- sqrt( 1000 / 1000 ) = 1
Wrote file: ./Fllix.nhdr
putamen:$
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

I modified ITK codes, now it looks all correct. I am comparing the result of  DWIConvert and Dcm2niix.
Give me 10 mins, I will finally confirm it. and report result to you.

Referencing the Dcm2niix's code logic, I modified ITK code by re-writing 2 methods below.
int GetSpacing(double * const spacing) const;
int GetThickness(double * const thickness) const;
Now Felix's test data and ourself's ctest cases fully passed. And our result is consistent with Dcm2niix's result.
As we do not use zSpace to replace the real thickness again, and FSL format has not a Thickness key, we need to add a thickness key into Image's MetaDataDictionary for dicom to nii to nrrd conversion.
putamen:$ ctest
Test project /scratch/hxie1/Projects/BrainsToolsBuild/DWIConvert
Start  1: Uncompress_DWIConvertGeSignaHdxBMatrixTest.tar.gz
1/65 Test  #1: Uncompress_DWIConvertGeSignaHdxBMatrixTest.tar.gz ..........   Passed    0.01 sec
Start  2: Uncompress_DWIConvertGeSignaHdxBigEndianTest.tar.gz
2/65 Test  #2: Uncompress_DWIConvertGeSignaHdxBigEndianTest.tar.gz ........   Passed    0.01 sec
Start  3: Uncompress_DWIConvertGeSignaHdxFSLTest.tar.gz
3/65 Test  #3: Uncompress_DWIConvertGeSignaHdxFSLTest.tar.gz ..............   Passed    0.01 sec
Start  4: Uncompress_DWIConvertGeSignaHdxTest.tar.gz
4/65 Test  #4: Uncompress_DWIConvertGeSignaHdxTest.tar.gz .................   Passed    0.01 sec
Start  5: Uncompress_DWIConvertGeSignaHdxtBMatrixTest.tar.gz
5/65 Test  #5: Uncompress_DWIConvertGeSignaHdxtBMatrixTest.tar.gz .........   Passed    0.01 sec
Start  6: Uncompress_DWIConvertGeSignaHdxtTest.tar.gz
6/65 Test  #6: Uncompress_DWIConvertGeSignaHdxtTest.tar.gz ................   Passed    0.01 sec
Start  7: Uncompress_DWIConvertPhilipsAchieva2BMatrixTest.tar.gz
7/65 Test  #7: Uncompress_DWIConvertPhilipsAchieva2BMatrixTest.tar.gz .....   Passed    0.01 sec
Start  8: Uncompress_DWIConvertPhilipsAchieva2Test.tar.gz
8/65 Test  #8: Uncompress_DWIConvertPhilipsAchieva2Test.tar.gz ............   Passed    0.01 sec
Start  9: Uncompress_DWIConvertPhilipsAchieva3Test.tar.gz
9/65 Test  #9: Uncompress_DWIConvertPhilipsAchieva3Test.tar.gz ............   Passed    0.01 sec
Start 10: Uncompress_DWIConvertPhilipsAchieva4Test.tar.gz
10/65 Test #10: Uncompress_DWIConvertPhilipsAchieva4Test.tar.gz ............   Passed    0.00 sec
Start 11: Uncompress_DWIConvertPhilipsAchieva6Test.tar.gz
11/65 Test #11: Uncompress_DWIConvertPhilipsAchieva6Test.tar.gz ............   Passed    0.01 sec
Start 12: Uncompress_DWIConvertPhilipsAchieva7Test.tar.gz
12/65 Test #12: Uncompress_DWIConvertPhilipsAchieva7Test.tar.gz ............   Passed    0.01 sec
Start 13: Uncompress_DWIConvertPhilipsAchievaBMatrixTest.tar.gz
13/65 Test #13: Uncompress_DWIConvertPhilipsAchievaBMatrixTest.tar.gz ......   Passed    0.01 sec
Start 14: Uncompress_DWIConvertPhilipsAchievaBigEndianTest.tar.gz
14/65 Test #14: Uncompress_DWIConvertPhilipsAchievaBigEndianTest.tar.gz ....   Passed    0.01 sec
Start 15: Uncompress_DWIConvertPhilipsAchievaTest.tar.gz
15/65 Test #15: Uncompress_DWIConvertPhilipsAchievaTest.tar.gz .............   Passed    0.01 sec
Start 16: Uncompress_DWIConvertSiemensTrioSyngo2004A1Test.tar.gz
16/65 Test #16: Uncompress_DWIConvertSiemensTrioSyngo2004A1Test.tar.gz .....   Passed    0.01 sec
Start 17: Uncompress_DWIConvertSiemensTrioSyngo2004A2Test.tar.gz
17/65 Test #17: Uncompress_DWIConvertSiemensTrioSyngo2004A2Test.tar.gz .....   Passed    0.01 sec
Start 18: Uncompress_DWIConvertSiemensTrioTim2Test.tar.gz
18/65 Test #18: Uncompress_DWIConvertSiemensTrioTim2Test.tar.gz ............   Passed    0.01 sec
Start 19: Uncompress_DWIConvertSiemensTrioTim3Test.tar.gz
19/65 Test #19: Uncompress_DWIConvertSiemensTrioTim3Test.tar.gz ............   Passed    0.01 sec
Start 20: Uncompress_DWIConvertSiemensTrioTimBigEndian1Test.tar.gz
20/65 Test #20: Uncompress_DWIConvertSiemensTrioTimBigEndian1Test.tar.gz ...   Passed    0.01 sec
Start 21: Uncompress_DWIConvertSiemensTrioTimTest.tar.gz
21/65 Test #21: Uncompress_DWIConvertSiemensTrioTimTest.tar.gz .............   Passed    0.01 sec
Start 22: Uncompress_DWIConvertSiemensVerioTest.tar.gz
22/65 Test #22: Uncompress_DWIConvertSiemensVerioTest.tar.gz ...............   Passed    0.01 sec
Start 23: Uncompress_GeSignaHDx.tar.gz
23/65 Test #23: Uncompress_GeSignaHDx.tar.gz ...............................   Passed    1.27 sec
Start 24: Uncompress_GeSignaHDxBigEndian.tar.gz
24/65 Test #24: Uncompress_GeSignaHDxBigEndian.tar.gz ......................   Passed    1.26 sec
Start 25: Uncompress_GeSignaHDxt.tar.gz
25/65 Test #25: Uncompress_GeSignaHDxt.tar.gz ..............................   Passed    1.87 sec
Start 26: Uncompress_PhilipsAchieva1.tar.gz
26/65 Test #26: Uncompress_PhilipsAchieva1.tar.gz ..........................   Passed    0.76 sec
Start 27: Uncompress_PhilipsAchieva2.tar.gz
27/65 Test #27: Uncompress_PhilipsAchieva2.tar.gz ..........................   Passed    0.76 sec
Start 28: Uncompress_PhilipsAchieva3.tar.gz
28/65 Test #28: Uncompress_PhilipsAchieva3.tar.gz ..........................   Passed    0.77 sec
Start 29: Uncompress_PhilipsAchieva4.tar.gz
29/65 Test #29: Uncompress_PhilipsAchieva4.tar.gz ..........................   Passed    0.67 sec
Start 30: Uncompress_PhilipsAchieva6.tar.gz
30/65 Test #30: Uncompress_PhilipsAchieva6.tar.gz ..........................   Passed    0.78 sec
Start 31: Uncompress_PhilipsAchieva7.tar.gz
31/65 Test #31: Uncompress_PhilipsAchieva7.tar.gz ..........................   Passed    0.76 sec
Start 32: Uncompress_PhilipsAchievaBigEndian1.tar.gz
32/65 Test #32: Uncompress_PhilipsAchievaBigEndian1.tar.gz .................   Passed    0.76 sec
Start 33: Uncompress_SiemensTrio-Syngo2004A-1.tar.gz
33/65 Test #33: Uncompress_SiemensTrio-Syngo2004A-1.tar.gz .................   Passed    0.88 sec
Start 34: Uncompress_SiemensTrio-Syngo2004A-2.tar.gz
34/65 Test #34: Uncompress_SiemensTrio-Syngo2004A-2.tar.gz .................   Passed    0.88 sec
Start 35: Uncompress_SiemensTrioTim1.tar.gz
35/65 Test #35: Uncompress_SiemensTrioTim1.tar.gz ..........................   Passed    0.34 sec
Start 36: Uncompress_SiemensTrioTim2.tar.gz
36/65 Test #36: Uncompress_SiemensTrioTim2.tar.gz ..........................   Passed    0.35 sec
Start 37: Uncompress_SiemensTrioTim3.tar.gz
37/65 Test #37: Uncompress_SiemensTrioTim3.tar.gz ..........................   Passed    0.60 sec
Start 38: Uncompress_SiemensTrioTimBigEndian1.tar.gz
38/65 Test #38: Uncompress_SiemensTrioTimBigEndian1.tar.gz .................   Passed    0.35 sec
Start 39: Uncompress_SiemensVerio.tar.gz
39/65 Test #39: Uncompress_SiemensVerio.tar.gz .............................   Passed    0.34 sec
Start 40: DWIConvertDWICompareHelpTest
40/65 Test #40: DWIConvertDWICompareHelpTest ...............................   Passed    0.07 sec
Start 41: DWIConvertGeSignaHdxTest
41/65 Test #41: DWIConvertGeSignaHdxTest ...................................   Passed   60.47 sec
Start 42: DWIConvertGeSignaHdxFSLTest
42/65 Test #42: DWIConvertGeSignaHdxFSLTest ................................   Passed   31.48 sec
Start 43: FSLToNrrdTest
43/65 Test #43: FSLToNrrdTest ..............................................   Passed   11.27 sec
Start 44: NrrdToFSLTest
44/65 Test #44: NrrdToFSLTest ..............................................   Passed   40.48 sec
Start 45: NrrdToFSLTest2
45/65 Test #45: NrrdToFSLTest2 .............................................   Passed   40.70 sec
Start 46: DWIConvertGeSignaHdxBigEndianTest
46/65 Test #46: DWIConvertGeSignaHdxBigEndianTest ..........................   Passed   60.99 sec
Start 47: DWIConvertGeSignaHdxBMatrixTest
47/65 Test #47: DWIConvertGeSignaHdxBMatrixTest ............................   Passed   60.57 sec
Start 48: DWIConvertGeSignaHdxtTest
48/65 Test #48: DWIConvertGeSignaHdxtTest ..................................   Passed   96.37 sec
Start 49: DWIConvertGeSignaHdxtBMatrixTest
49/65 Test #49: DWIConvertGeSignaHdxtBMatrixTest ...........................   Passed   94.72 sec
Start 50: DWIConvertPhilipsAchievaTest
50/65 Test #50: DWIConvertPhilipsAchievaTest ...............................   Passed   42.85 sec
Start 51: DWIConvertPhilipsAchievaBigEndianTest
51/65 Test #51: DWIConvertPhilipsAchievaBigEndianTest ......................   Passed   42.40 sec
Start 52: DWIConvertPhilipsAchievaBMatrixTest
52/65 Test #52: DWIConvertPhilipsAchievaBMatrixTest ........................   Passed   42.59 sec
Start 53: DWIConvertPhilipsAchieva2Test
53/65 Test #53: DWIConvertPhilipsAchieva2Test ..............................   Passed   41.79 sec
Start 54: DWIConvertPhilipsAchieva2BMatrixTest
54/65 Test #54: DWIConvertPhilipsAchieva2BMatrixTest .......................   Passed   41.57 sec
Start 55: DWIConvertPhilipsAchieva3Test
55/65 Test #55: DWIConvertPhilipsAchieva3Test ..............................   Passed   39.59 sec
Start 56: DWIConvertPhilipsAchieva4Test
56/65 Test #56: DWIConvertPhilipsAchieva4Test ..............................   Passed   43.18 sec
Start 57: DWIConvertPhilipsAchieva6Test
57/65 Test #57: DWIConvertPhilipsAchieva6Test ..............................   Passed   47.68 sec
Start 58: DWIConvertPhilipsAchieva7Test
58/65 Test #58: DWIConvertPhilipsAchieva7Test ..............................   Passed   46.67 sec
Start 59: DWIConvertSiemensTrioTimTest
59/65 Test #59: DWIConvertSiemensTrioTimTest ...............................   Passed   23.09 sec
Start 60: DWIConvertSiemensTrioTimBigEndian1Test
60/65 Test #60: DWIConvertSiemensTrioTimBigEndian1Test .....................   Passed   23.20 sec
Start 61: DWIConvertSiemensTrioTim2Test
61/65 Test #61: DWIConvertSiemensTrioTim2Test ..............................   Passed   23.06 sec
Start 62: DWIConvertSiemensTrioTim3Test
62/65 Test #62: DWIConvertSiemensTrioTim3Test ..............................   Passed   22.97 sec
Start 63: DWIConvertSiemensVerioTest
63/65 Test #63: DWIConvertSiemensVerioTest .................................   Passed   23.27 sec
Start 64: DWIConvertSiemensTrio_Syngo2004A_1Test
64/65 Test #64: DWIConvertSiemensTrio_Syngo2004A_1Test .....................   Passed   15.83 sec
Start 65: DWIConvertSiemensTrio_Syngo2004A_2Test
65/65 Test #65: DWIConvertSiemensTrio_Syngo2004A_2Test .....................   Passed   15.89 sec
100% tests passed, 0 tests failed out of 65
Total Test time (real) = 1046.34 sec
putamen:$ ctest -R DWIConvertPhilipsAchieva4Test - V
Test project /scratch/hxie1/Projects/BrainsToolsBuild/DWIConvert
Start 10: Uncompress_DWIConvertPhilipsAchieva4Test.tar.gz
1/2 Test #10: Uncompress_DWIConvertPhilipsAchieva4Test.tar.gz ...   Passed    0.01 sec
Start 56: DWIConvertPhilipsAchieva4Test
2/2 Test #56: DWIConvertPhilipsAchieva4Test .....................   Passed   42.85 sec
100% tests passed, 0 tests failed out of 2
Total Test time (real) =  42.86 sec

To this moment,
1  reading space and thickness from Dicom is good; it passed all ctest cases and felix test case;
2  now reading/Writing thickness in Nrrd file is also good; I added a method to read thickness from nrrd file;
3  but it still has problem in reading/writing thickness in FSL file, it looks FSL's MetaDataDictionary is different with Nrrd mechanism; by the way DWICompare does not check thickness consistency;
4  I will continue this problem on next Tuesday;

This morning, I analyzed the header file structure of FSL(NifTi). In the 348-bytes header of NifTi, there is no place to store thickness information. And 348 bytes which is already occupied compactly leave no space for private information extension. In another words, you will loss thickness information from Dicom to FSL, or from Nrrd to FSL.
I will not store thickness into or read thickness from FSL file in our DWIConvert.

As the modification of itk::itkDCMTKFileReader::GetSpacing for getting correct zSpace using use (0020, 0032) Image Position (Patient)  needs to handle the frame order of various MR vendors, e.g. Siemens Mosaic format, this work, I guess, needs a lot of time. Maybe one month or 3 month, I don't know.
Therefore, I implemented temporarily a bypass solution inside BRAINSTools named int DWIDICOMConverterBase::getDicomSpacing(double * const spacing) const.
test case for Felix test case:
putamen:$ ~/Projects/BrainsToolsBuild/bin/DWIConvert --inputDicomDirectory ~/Research/DWIConvertRefactor/Felix/SpaceDicom/ --outputVolume ~/temp/felix.nhdr
======= DWI Convert Public Lib Ctest =========
=================== this->m_SlicesPerVolume:25
Dicom images are ordered in a volume interleaving way.
ImageOrientationPatient (0020:0037): LPS Orientation Matrix
0.996604 -0.0823383 0
0.0823383 0.996604 0
0 0 0.999999
this->m_SpacingMatrix
0.9375 0 0
0 0.9375 0
0 0 6
NRRDSpaceDirection
0.934316 -0.0771922 0
0.0771922 0.934316 0
0 0 5.99999
Slice 0: -109.284 -161.358 -82.5368
Slice 1: -109.284 -161.358 -76.5368
Slice order is IS
Number of Slices: 25
Number of Volume: 1
Number of Slices in each volume: 25
B-value: 1000; diffusion direction: 0, 0, 0
Scale Factor for Multiple BValues: 0 -- sqrt( 1000 / 1000 ) = 1
Wrote file: /scratch/hxie1/temp/felix.nhdr
putamen:$
ctest result for DWIConvert module:
putamen:$ ctest
Test project /scratch/hxie1/Projects/BrainsToolsBuild/DWIConvert
Start  1: Uncompress_DWIConvertGeSignaHdxBMatrixTest.tar.gz
1/65 Test  #1: Uncompress_DWIConvertGeSignaHdxBMatrixTest.tar.gz ..........   Passed    0.01 sec
Start  2: Uncompress_DWIConvertGeSignaHdxBigEndianTest.tar.gz
2/65 Test  #2: Uncompress_DWIConvertGeSignaHdxBigEndianTest.tar.gz ........   Passed    0.01 sec
Start  3: Uncompress_DWIConvertGeSignaHdxFSLTest.tar.gz
3/65 Test  #3: Uncompress_DWIConvertGeSignaHdxFSLTest.tar.gz ..............   Passed    0.01 sec
Start  4: Uncompress_DWIConvertGeSignaHdxTest.tar.gz
4/65 Test  #4: Uncompress_DWIConvertGeSignaHdxTest.tar.gz .................   Passed    0.01 sec
Start  5: Uncompress_DWIConvertGeSignaHdxtBMatrixTest.tar.gz
5/65 Test  #5: Uncompress_DWIConvertGeSignaHdxtBMatrixTest.tar.gz .........   Passed    0.01 sec
Start  6: Uncompress_DWIConvertGeSignaHdxtTest.tar.gz
6/65 Test  #6: Uncompress_DWIConvertGeSignaHdxtTest.tar.gz ................   Passed    0.01 sec
Start  7: Uncompress_DWIConvertPhilipsAchieva2BMatrixTest.tar.gz
7/65 Test  #7: Uncompress_DWIConvertPhilipsAchieva2BMatrixTest.tar.gz .....   Passed    0.01 sec
Start  8: Uncompress_DWIConvertPhilipsAchieva2Test.tar.gz
8/65 Test  #8: Uncompress_DWIConvertPhilipsAchieva2Test.tar.gz ............   Passed    0.01 sec
Start  9: Uncompress_DWIConvertPhilipsAchieva3Test.tar.gz
9/65 Test  #9: Uncompress_DWIConvertPhilipsAchieva3Test.tar.gz ............   Passed    0.01 sec
Start 10: Uncompress_DWIConvertPhilipsAchieva4Test.tar.gz
10/65 Test #10: Uncompress_DWIConvertPhilipsAchieva4Test.tar.gz ............   Passed    0.01 sec
Start 11: Uncompress_DWIConvertPhilipsAchieva6Test.tar.gz
11/65 Test #11: Uncompress_DWIConvertPhilipsAchieva6Test.tar.gz ............   Passed    0.01 sec
Start 12: Uncompress_DWIConvertPhilipsAchieva7Test.tar.gz
12/65 Test #12: Uncompress_DWIConvertPhilipsAchieva7Test.tar.gz ............   Passed    0.01 sec
Start 13: Uncompress_DWIConvertPhilipsAchievaBMatrixTest.tar.gz
13/65 Test #13: Uncompress_DWIConvertPhilipsAchievaBMatrixTest.tar.gz ......   Passed    0.01 sec
Start 14: Uncompress_DWIConvertPhilipsAchievaBigEndianTest.tar.gz
14/65 Test #14: Uncompress_DWIConvertPhilipsAchievaBigEndianTest.tar.gz ....   Passed    0.00 sec
Start 15: Uncompress_DWIConvertPhilipsAchievaTest.tar.gz
15/65 Test #15: Uncompress_DWIConvertPhilipsAchievaTest.tar.gz .............   Passed    0.01 sec
Start 16: Uncompress_DWIConvertSiemensTrioSyngo2004A1Test.tar.gz
16/65 Test #16: Uncompress_DWIConvertSiemensTrioSyngo2004A1Test.tar.gz .....   Passed    0.01 sec
Start 17: Uncompress_DWIConvertSiemensTrioSyngo2004A2Test.tar.gz
17/65 Test #17: Uncompress_DWIConvertSiemensTrioSyngo2004A2Test.tar.gz .....   Passed    0.01 sec
Start 18: Uncompress_DWIConvertSiemensTrioTim2Test.tar.gz
18/65 Test #18: Uncompress_DWIConvertSiemensTrioTim2Test.tar.gz ............   Passed    0.01 sec
Start 19: Uncompress_DWIConvertSiemensTrioTim3Test.tar.gz
19/65 Test #19: Uncompress_DWIConvertSiemensTrioTim3Test.tar.gz ............   Passed    0.01 sec
Start 20: Uncompress_DWIConvertSiemensTrioTimBigEndian1Test.tar.gz
20/65 Test #20: Uncompress_DWIConvertSiemensTrioTimBigEndian1Test.tar.gz ...   Passed    0.01 sec
Start 21: Uncompress_DWIConvertSiemensTrioTimTest.tar.gz
21/65 Test #21: Uncompress_DWIConvertSiemensTrioTimTest.tar.gz .............   Passed    0.01 sec
Start 22: Uncompress_DWIConvertSiemensVerioTest.tar.gz
22/65 Test #22: Uncompress_DWIConvertSiemensVerioTest.tar.gz ...............   Passed    0.01 sec
Start 23: Uncompress_GeSignaHDx.tar.gz
23/65 Test #23: Uncompress_GeSignaHDx.tar.gz ...............................   Passed    1.21 sec
Start 24: Uncompress_GeSignaHDxBigEndian.tar.gz
24/65 Test #24: Uncompress_GeSignaHDxBigEndian.tar.gz ......................   Passed    1.21 sec
Start 25: Uncompress_GeSignaHDxt.tar.gz
25/65 Test #25: Uncompress_GeSignaHDxt.tar.gz ..............................   Passed    1.78 sec
Start 26: Uncompress_PhilipsAchieva1.tar.gz
26/65 Test #26: Uncompress_PhilipsAchieva1.tar.gz ..........................   Passed    0.69 sec
Start 27: Uncompress_PhilipsAchieva2.tar.gz
27/65 Test #27: Uncompress_PhilipsAchieva2.tar.gz ..........................   Passed    0.66 sec
Start 28: Uncompress_PhilipsAchieva3.tar.gz
28/65 Test #28: Uncompress_PhilipsAchieva3.tar.gz ..........................   Passed    0.69 sec
Start 29: Uncompress_PhilipsAchieva4.tar.gz
29/65 Test #29: Uncompress_PhilipsAchieva4.tar.gz ..........................   Passed    0.69 sec
Start 30: Uncompress_PhilipsAchieva6.tar.gz
30/65 Test #30: Uncompress_PhilipsAchieva6.tar.gz ..........................   Passed    0.67 sec
Start 31: Uncompress_PhilipsAchieva7.tar.gz
31/65 Test #31: Uncompress_PhilipsAchieva7.tar.gz ..........................   Passed    0.67 sec
Start 32: Uncompress_PhilipsAchievaBigEndian1.tar.gz
32/65 Test #32: Uncompress_PhilipsAchievaBigEndian1.tar.gz .................   Passed    0.70 sec
Start 33: Uncompress_SiemensTrio-Syngo2004A-1.tar.gz
33/65 Test #33: Uncompress_SiemensTrio-Syngo2004A-1.tar.gz .................   Passed    0.80 sec
Start 34: Uncompress_SiemensTrio-Syngo2004A-2.tar.gz
34/65 Test #34: Uncompress_SiemensTrio-Syngo2004A-2.tar.gz .................   Passed    0.81 sec
Start 35: Uncompress_SiemensTrioTim1.tar.gz
35/65 Test #35: Uncompress_SiemensTrioTim1.tar.gz ..........................   Passed    0.35 sec
Start 36: Uncompress_SiemensTrioTim2.tar.gz
36/65 Test #36: Uncompress_SiemensTrioTim2.tar.gz ..........................   Passed    0.35 sec
Start 37: Uncompress_SiemensTrioTim3.tar.gz
37/65 Test #37: Uncompress_SiemensTrioTim3.tar.gz ..........................   Passed    0.37 sec
Start 38: Uncompress_SiemensTrioTimBigEndian1.tar.gz
38/65 Test #38: Uncompress_SiemensTrioTimBigEndian1.tar.gz .................   Passed    0.35 sec
Start 39: Uncompress_SiemensVerio.tar.gz
39/65 Test #39: Uncompress_SiemensVerio.tar.gz .............................   Passed    0.34 sec
Start 40: DWIConvertDWICompareHelpTest
40/65 Test #40: DWIConvertDWICompareHelpTest ...............................   Passed    0.07 sec
Start 41: DWIConvertGeSignaHdxTest
41/65 Test #41: DWIConvertGeSignaHdxTest ...................................   Passed   48.47 sec
Start 42: DWIConvertGeSignaHdxFSLTest
42/65 Test #42: DWIConvertGeSignaHdxFSLTest ................................   Passed   30.88 sec
Start 43: FSLToNrrdTest
43/65 Test #43: FSLToNrrdTest ..............................................   Passed   11.24 sec
Start 44: NrrdToFSLTest
44/65 Test #44: NrrdToFSLTest ..............................................   Passed   28.59 sec
Start 45: NrrdToFSLTest2
45/65 Test #45: NrrdToFSLTest2 .............................................   Passed   28.67 sec
Start 46: DWIConvertGeSignaHdxBigEndianTest
46/65 Test #46: DWIConvertGeSignaHdxBigEndianTest ..........................   Passed   47.76 sec
Start 47: DWIConvertGeSignaHdxBMatrixTest
47/65 Test #47: DWIConvertGeSignaHdxBMatrixTest ............................   Passed   48.43 sec
Start 48: DWIConvertGeSignaHdxtTest
48/65 Test #48: DWIConvertGeSignaHdxtTest ..................................   Passed   76.76 sec
Start 49: DWIConvertGeSignaHdxtBMatrixTest
49/65 Test #49: DWIConvertGeSignaHdxtBMatrixTest ...........................   Passed   76.92 sec
Start 50: DWIConvertPhilipsAchievaTest
50/65 Test #50: DWIConvertPhilipsAchievaTest ...............................   Passed   34.55 sec
Start 51: DWIConvertPhilipsAchievaBigEndianTest
51/65 Test #51: DWIConvertPhilipsAchievaBigEndianTest ......................   Passed   34.43 sec
Start 52: DWIConvertPhilipsAchievaBMatrixTest
52/65 Test #52: DWIConvertPhilipsAchievaBMatrixTest ........................   Passed   34.44 sec
Start 53: DWIConvertPhilipsAchieva2Test
53/65 Test #53: DWIConvertPhilipsAchieva2Test ..............................   Passed   33.67 sec
Start 54: DWIConvertPhilipsAchieva2BMatrixTest
54/65 Test #54: DWIConvertPhilipsAchieva2BMatrixTest .......................   Passed   33.84 sec
Start 55: DWIConvertPhilipsAchieva3Test
55/65 Test #55: DWIConvertPhilipsAchieva3Test ..............................   Passed   31.43 sec
Start 56: DWIConvertPhilipsAchieva4Test
56/65 Test #56: DWIConvertPhilipsAchieva4Test ..............................   Passed   34.67 sec
Start 57: DWIConvertPhilipsAchieva6Test
57/65 Test #57: DWIConvertPhilipsAchieva6Test ..............................   Passed   38.26 sec
Start 58: DWIConvertPhilipsAchieva7Test
58/65 Test #58: DWIConvertPhilipsAchieva7Test ..............................   Passed   38.74 sec
Start 59: DWIConvertSiemensTrioTimTest
59/65 Test #59: DWIConvertSiemensTrioTimTest ...............................   Passed   17.67 sec
Start 60: DWIConvertSiemensTrioTimBigEndian1Test
60/65 Test #60: DWIConvertSiemensTrioTimBigEndian1Test .....................   Passed   17.66 sec
Start 61: DWIConvertSiemensTrioTim2Test
61/65 Test #61: DWIConvertSiemensTrioTim2Test ..............................   Passed   17.67 sec
Start 62: DWIConvertSiemensTrioTim3Test
62/65 Test #62: DWIConvertSiemensTrioTim3Test ..............................   Passed   18.22 sec
Start 63: DWIConvertSiemensVerioTest
63/65 Test #63: DWIConvertSiemensVerioTest .................................   Passed   18.65 sec
Start 64: DWIConvertSiemensTrio_Syngo2004A_1Test
64/65 Test #64: DWIConvertSiemensTrio_Syngo2004A_1Test .....................   Passed   14.41 sec
Start 65: DWIConvertSiemensTrio_Syngo2004A_2Test
65/65 Test #65: DWIConvertSiemensTrio_Syngo2004A_2Test .....................   Passed   14.40 sec
100% tests passed, 0 tests failed out of 65
Total Test time (real) = 843.00 sec
putamen:$


Update plan-connect-topologies.md

@teomonda : Thanks for your contribution! The author(s) have been notified to review your proposed change.

I need to verify this.  I am not sure if you need a two-way trust in a simple multi-forest deployment.

I haven't heard back so I am going to open a work item on this.  We can close this PR for now and I will update it once I have the changes added.
#please-close

I haven't heard back so I am going to open a work item on this.  We can close this PR for now and I will update it once I have the changes added.
#please-close


[Bug] Records import

Checklist

[X] My issue was not mentioned by others, and it is not a duplicate issue.

Description
After i update the gacha i get extra ???
Log and cache delete dont helps
Reproduction Steps
Gacha update
Expected Behavior
No response
Screenshots

Starward Version
0.11.1
Windows Version
Latest
Log
[23:17:41.508] [INFO]
Welcome to Starward v0.11.1
System: Microsoft Windows NT 10.0.22631.0
Command Line: E:\Starward_Portable_0.10.4_x64\Starward\app-0.11.1\Starward.dll

[23:17:41.530] [INFO] Starward.Services.DatabaseService
Database path is 'E:\Starward_Portable_0.10.4_x64\Starward'

[23:17:41.547] [INFO] Starward.Services.DatabaseService
Database version is 8, target version is 8.

[23:17:41.593] [INFO] Starward.Pages.MainPage
Last game region is hkrpg_global

[23:17:41.598] [INFO] Starward.Pages.MainPage
Navigate to "LauncherPage" with param hkrpg_global

[23:17:41.983] [INFO] Starward.Pages.LauncherPage
Game install path of hkrpg_global: "E:\Star Rail\Games"

[23:17:42.009] [INFO] Starward.Pages.LauncherPage
Acutal version and gamebiz of hkrpg_global is "2.0.0", None.

[23:17:43.118] [INFO] Starward.Services.UpdateService
Start to check update (Preview: False, Arch: X64)

[23:17:43.483] [INFO] Starward.Services.UpdateService
Current version: "0.11.1", latest version: "0.11.1", ignore version: null

[23:17:51.349] [EROR] Starward.Pages.Setting.FileSettingPage
Delete folder '"C:\Users\wawie\AppData\Local\Starward\log"'
System.IO.IOException: The process cannot access the file 'Starward_240308_231741.log' because it is being used by another process.
   at System.IO.FileSystem.RemoveDirectoryRecursive(String, WIN32_FIND_DATA&, Boolean)
   at System.IO.FileSystem.RemoveDirectory(String, Boolean)
   at Starward.Pages.Setting.FileSettingPage.<>c__DisplayClass20_0.<DeleteFolderAsync>b__0() in D:\a\Starward\Starward\src\Starward\Pages\Setting\FileSettingPage.xaml.cs:line 368

[23:17:53.257] [EROR] Starward.Pages.Setting.FileSettingPage
Delete folder '"C:\Users\wawie\AppData\Local\Starward\log"'
System.IO.IOException: The process cannot access the file 'Starward_240308_231741.log' because it is being used by another process.
   at System.IO.FileSystem.RemoveDirectoryRecursive(String, WIN32_FIND_DATA&, Boolean)
   at System.IO.FileSystem.RemoveDirectory(String, Boolean)
   at Starward.Pages.Setting.FileSettingPage.<>c__DisplayClass20_0.<DeleteFolderAsync>b__0() in D:\a\Starward\Starward\src\Starward\Pages\Setting\FileSettingPage.xaml.cs:line 368

[23:17:53.843] [EROR] Starward.Pages.Setting.FileSettingPage
Delete folder '"C:\Users\wawie\AppData\Local\Starward\log"'
System.IO.IOException: The process cannot access the file 'Starward_240308_231741.log' because it is being used by another process.
   at System.IO.FileSystem.RemoveDirectoryRecursive(String, WIN32_FIND_DATA&, Boolean)
   at System.IO.FileSystem.RemoveDirectory(String, Boolean)
   at Starward.Pages.Setting.FileSettingPage.<>c__DisplayClass20_0.<DeleteFolderAsync>b__0() in D:\a\Starward\Starward\src\Starward\Pages\Setting\FileSettingPage.xaml.cs:line 368

[23:17:54.212] [EROR] Starward.Pages.Setting.FileSettingPage
Delete folder '"C:\Users\wawie\AppData\Local\Starward\log"'
System.IO.IOException: The process cannot access the file 'Starward_240308_231741.log' because it is being used by another process.
   at System.IO.FileSystem.RemoveDirectoryRecursive(String, WIN32_FIND_DATA&, Boolean)
   at System.IO.FileSystem.RemoveDirectory(String, Boolean)
   at Starward.Pages.Setting.FileSettingPage.<>c__DisplayClass20_0.<DeleteFolderAsync>b__0() in D:\a\Starward\Starward\src\Starward\Pages\Setting\FileSettingPage.xaml.cs:line 368

[23:17:54.437] [EROR] Starward.Pages.Setting.FileSettingPage
Delete folder '"C:\Users\wawie\AppData\Local\Starward\log"'
System.IO.IOException: The process cannot access the file 'Starward_240308_231741.log' because it is being used by another process.
   at System.IO.FileSystem.RemoveDirectoryRecursive(String, WIN32_FIND_DATA&, Boolean)
   at System.IO.FileSystem.RemoveDirectory(String, Boolean)
   at Starward.Pages.Setting.FileSettingPage.<>c__DisplayClass20_0.<DeleteFolderAsync>b__0() in D:\a\Starward\Starward\src\Starward\Pages\Setting\FileSettingPage.xaml.cs:line 368

[23:17:54.602] [EROR] Starward.Pages.Setting.FileSettingPage
Delete folder '"C:\Users\wawie\AppData\Local\Starward\log"'
System.IO.IOException: The process cannot access the file 'Starward_240308_231741.log' because it is being used by another process.
   at System.IO.FileSystem.RemoveDirectoryRecursive(String, WIN32_FIND_DATA&, Boolean)
   at System.IO.FileSystem.RemoveDirectory(String, Boolean)
   at Starward.Pages.Setting.FileSettingPage.<>c__DisplayClass20_0.<DeleteFolderAsync>b__0() in D:\a\Starward\Starward\src\Starward\Pages\Setting\FileSettingPage.xaml.cs:line 368

[23:17:54.780] [EROR] Starward.Pages.Setting.FileSettingPage
Delete folder '"C:\Users\wawie\AppData\Local\Starward\log"'
System.IO.IOException: The process cannot access the file 'Starward_240308_231741.log' because it is being used by another process.
   at System.IO.FileSystem.RemoveDirectoryRecursive(String, WIN32_FIND_DATA&, Boolean)
   at System.IO.FileSystem.RemoveDirectory(String, Boolean)
   at Starward.Pages.Setting.FileSettingPage.<>c__DisplayClass20_0.<DeleteFolderAsync>b__0() in D:\a\Starward\Starward\src\Starward\Pages\Setting\FileSettingPage.xaml.cs:line 368

[23:17:54.958] [EROR] Starward.Pages.Setting.FileSettingPage
Delete folder '"C:\Users\wawie\AppData\Local\Starward\log"'
System.IO.IOException: The process cannot access the file 'Starward_240308_231741.log' because it is being used by another process.
   at System.IO.FileSystem.RemoveDirectoryRecursive(String, WIN32_FIND_DATA&, Boolean)
   at System.IO.FileSystem.RemoveDirectory(String, Boolean)
   at Starward.Pages.Setting.FileSettingPage.<>c__DisplayClass20_0.<DeleteFolderAsync>b__0() in D:\a\Starward\Starward\src\Starward\Pages\Setting\FileSettingPage.xaml.cs:line 368

[23:17:55.315] [EROR] Starward.Pages.Setting.FileSettingPage
Delete folder '"C:\Users\wawie\AppData\Local\Starward\log"'
System.IO.IOException: The process cannot access the file 'Starward_240308_231741.log' because it is being used by another process.
   at System.IO.FileSystem.RemoveDirectoryRecursive(String, WIN32_FIND_DATA&, Boolean)
   at System.IO.FileSystem.RemoveDirectory(String, Boolean)
   at Starward.Pages.Setting.FileSettingPage.<>c__DisplayClass20_0.<DeleteFolderAsync>b__0() in D:\a\Starward\Starward\src\Starward\Pages\Setting\FileSettingPage.xaml.cs:line 368

[23:17:55.515] [EROR] Starward.Pages.Setting.FileSettingPage
Delete folder '"C:\Users\wawie\AppData\Local\Starward\log"'
System.IO.IOException: The process cannot access the file 'Starward_240308_231741.log' because it is being used by another process.
   at System.IO.FileSystem.RemoveDirectoryRecursive(String, WIN32_FIND_DATA&, Boolean)
   at System.IO.FileSystem.RemoveDirectory(String, Boolean)
   at Starward.Pages.Setting.FileSettingPage.<>c__DisplayClass20_0.<DeleteFolderAsync>b__0() in D:\a\Starward\Starward\src\Starward\Pages\Setting\FileSettingPage.xaml.cs:line 368

[23:17:55.705] [EROR] Starward.Pages.Setting.FileSettingPage
Delete folder '"C:\Users\wawie\AppData\Local\Starward\log"'
System.IO.IOException: The process cannot access the file 'Starward_240308_231741.log' because it is being used by another process.
   at System.IO.FileSystem.RemoveDirectoryRecursive(String, WIN32_FIND_DATA&, Boolean)
   at System.IO.FileSystem.RemoveDirectory(String, Boolean)
   at Starward.Pages.Setting.FileSettingPage.<>c__DisplayClass20_0.<DeleteFolderAsync>b__0() in D:\a\Starward\Starward\src\Starward\Pages\Setting\FileSettingPage.xaml.cs:line 368

[23:17:55.904] [EROR] Starward.Pages.Setting.FileSettingPage
Delete folder '"C:\Users\wawie\AppData\Local\Starward\log"'
System.IO.IOException: The process cannot access the file 'Starward_240308_231741.log' because it is being used by another process.
   at System.IO.FileSystem.RemoveDirectoryRecursive(String, WIN32_FIND_DATA&, Boolean)
   at Starward.Pages.Setting.FileSettingPage.<>c__DisplayClass20_0.<DeleteFolderAsync>b__0() in D:\a\Starward\Starward\src\Starward\Pages\Setting\FileSettingPage.xaml.cs:line 368

[23:17:56.102] [EROR] Starward.Pages.Setting.FileSettingPage
Delete folder '"C:\Users\wawie\AppData\Local\Starward\log"'
System.IO.IOException: The process cannot access the file 'Starward_240308_231741.log' because it is being used by another process.
   at System.IO.FileSystem.RemoveDirectoryRecursive(String, WIN32_FIND_DATA&, Boolean)
   at Starward.Pages.Setting.FileSettingPage.<>c__DisplayClass20_0.<DeleteFolderAsync>b__0() in D:\a\Starward\Starward\src\Starward\Pages\Setting\FileSettingPage.xaml.cs:line 368

[23:18:06.981] [INFO] Starward.Pages.MainPage
Last game region is hkrpg_global

[23:18:06.982] [INFO] Starward.Pages.MainPage
Navigate to "LauncherPage" with param hkrpg_global

[23:18:07.223] [INFO] Starward.Pages.LauncherPage
Game install path of hkrpg_global: "E:\Star Rail\Games"

[23:18:07.229] [INFO] Starward.Pages.LauncherPage
Acutal version and gamebiz of hkrpg_global is "2.0.0", None.

[23:18:08.367] [INFO] Starward.Services.UpdateService
Start to check update (Preview: False, Arch: X64)

[23:18:08.487] [INFO] Starward.Services.UpdateService
Current version: "0.11.1", latest version: "0.11.1", ignore version: null

[23:18:09.482] [INFO] Starward.Pages.MainPage
Navigate to "GachaLogPage" with param hkrpg_global

[23:18:30.171] [INFO] Starward.Services.Gacha.StarRailGachaService
Last gacha log id of uid 714607074 is 0

[23:18:36.931] [INFO] Starward.Pages.MainPage
Change game region to GenshinImpact

[23:18:36.932] [INFO] Starward.Pages.MainPage
Navigate to "GachaLogPage" with param hk4e_global

[23:18:41.152] [INFO] Starward.Services.Gacha.GenshinGachaService
Last gacha log id of uid

Additional Context
No response

This is the number of times you have pull but have not yet obtained 5-star item.

This is the number of times you have pull but have not yet obtained 5-star item.

Ye, but is that supposed to show in the "item list"?


Sry guys but your paper is not worth more than zero :)

The thing is I see 1 genius man, Jürgen Schmidhuber, who invented Highway Networks in May 2015, and here are his works and subsequent works which you failed to cite:
Highway Networks (2015 May & Nov v2)
https://arxiv.org/abs/1505.00387
Training Very Deep Networks (2015 Jul & Nov v2)
https://arxiv.org/pdf/1507.06228.pdf
And ResNet is only a special case of HighwayNet, when the 2 gates are constant 1.
Highway and Residual Networks learn Unrolled Iterative Estimation (2016 Dec & 2017 Mar v2&v3)
https://arxiv.org/abs/1612.07771
And here instead of using a gate tensor as in HighwayNet they just use a scalar multiplier like you,
but in 2016, not in 2020... your scientific lagg is (significantly) more than zero.
Learning Identity Mappings with Residual Gates (2016 Nov & Dec v2)
https://arxiv.org/pdf/1611.01260v2.pdf
You did not cite either the Gated ResNet (which actually cite the HighwayNet) from 2016, neither the HighwayNet from 2015, but you cite the Kaiming He's ResNet (which also cite the HighwayNet).

Dear AmorfEvo,
thank you for your constructive comments and references! We're currently revising our manuscript, including reviews and comparisons of prior work that use more complex gating mechanisms that we unfortunately missed to reference in our preprint submission.
It appears that Gated ResNets are the architecture contains the gate
y = (1 - a) * x + a * F(x),
while Highway Networks are
T = W_T * x + b_T
y = T * F(x) + (1 - T) * x ,

with b_T initialized to be negative. You mention that the carry gate = 1 is an option in Highway Networks, but I see no canonical implementation we could compare to.
We will be sure to directly compare both of these architectures to ReZero and give appropriate credit.


Add option to not register the hardware back button action

I want to be able to use my custom hardware back button action and not use the one defined in ionic-native-transition

I've tried the zemax modifications on the dist/ionic-native-transitions.js file without success with the hardware button action.
Device: Moto G 2013
OS: Android KitKat 4.4.4

What is your issue @thgfrzm ? My change is only to remove the hardware back button action that is defined by the ionic-native-transition plugin because I already have a specific action registered in my app.
Be careful: ionic is also registering his own hardware back button action (so even if you put hasAlreadyRegisterBackButtonAction to true, the back button action will work)

Hi @zemax2468 ! Previously the use of ionic-native-transitions plugin, I've implemented a verification to show a popup "Want exit the application?" if the hardware back button pressed in some views. With the plugin, this action don't work. The hardware button always work like the back view. Then, I've tried your solution, but didn't work for me. :/
$ionicPlatform.registerBackButtonAction(function(event){   console.log("registerBackButtonAction found!"); // never printed on console   if($state.$current.name === "login" || $state.$current.name === "home"){     $ionicPopup.show({       title: "Want close the app?",       buttons: [         {text: "Cancel", type: "button-stable button-clear"},         {text: "Close",  type: "button-positive", onTap: function(event) {ionic.platform.exitApp();}}       ]     });   } else if($state.$current.name === "register"){     $ionicHistory.clearCache();     $ionicHistory.goBack(-1);   } else if($state.$current.name === "detail"){     $ionicHistory.goBack(-1);   } }, 100);

Hi.
It's weird because on my side, I have the same kind of code and everything is working fine with my update ! And if you add a breakpoint on the registerBackButtonAction in ionic-native-transition with hasAlreadyRegisterBackButtonAction = true, is it called or not ?

I have not tried yet


False linter error on vscode

Hi!
I don't think this is a Bug, but a local problem. My vscode linter claims that, for example
import Avatar from 'components/Avatar'
Cannot find module 'components/Avatar' or its corresponding type declarations
But the dev server works well.
It's that an tsconfig.json issue?

Him @eleloi, thanks for the report!
Could you provide more information about the environment please? I did the README step by step from scratch and I couldn't reproduce the problem.
Tip: Please, check that the installed node version is not too old or that you are not using an outdated (global) version of typescript 👍🏼

That's it! I update typescript global node package and the issue goes away!
Thank you for your work @joaopaulomoraes


[User-Story] - Load testing schema

Story
As a USER who PRECONDITIONS, I want to DO_THING so I can ACCOMPLISH_GOAL.
Acceptance Criteria

[ ] Criteria 1
[ ] Criteria 2
[ ] Criteria 3

Dependencies

[ ] Blocked by issue one
[ ] Blocked by issue two
[ ] Blocked by issue three

Additional context
Add any other context or screenshots about the research request here.

See here: https://github.com/dqualizer/dqlang/tree/main/schemas/load-test-configuration


is there a way about electron call  another program？

I met a problem.
I used a section of code call another web program interface,it works normally in web browser.
In client, it has no effect,it doesn't work.
Is there one or more way that could call the browser or other program?

Think you've got the wrong repo!

ok! maybe I dont describe clearly! I inserted a section of code in the page,it just a javascript code
like this：

this code‘s function is call a tencent’s client named QQ which is one chatting tools,if the OS install QQ
and could use the client(QQ) to communication(I want to use the chat tools complete the Online customer function).
this code could work on web browser,but it doesn't work on electron-installer client.
so I want to learn about electron-installer  whether if call the interface or other program!.
thanks again!


Retire support for VS 2015

In 2020, I plan to retire support for VS 2015. The following projects will be removed, and the NuGet directxtex_desktop_2015 package will be deprecated in favor of one built with VS 2017 and/or VS 2019:
DirectXTex_Desktop_2015
DirectXTex_Desktop_2015_Win10
DirectXTex_Windows10_2015
DirectXTex_XboxOneXDK_2015
DDSView_Desktop_2015
Texassemble_Desktop_2015
Texconv_Desktop_2015
texdiag_Desktop_2015

Please put any requests for continued support for one or more of these here.

Removed in this commit


Package phpoffice/phpexcel used instead of phpoffice/phpspreadsheet, phpoffice/phpexcel is abandoned

[PROPOSAL]
Package version, Laravel version
Laravel Escel ~2.1.0, Laravel 5.5
Expected behaviour
use phpoffice/phpspreadsheet
Actual behaviour
used phpoffice/phpexcel
Exception stack trace
Package phpoffice/phpexcel is abandoned, you should avoid using it. Use phpoffice/phpspreadsheet instead.
Screenshot of Excel file
Steps to reproduce the behaviour
replace phpoffice/phpexcel from wherever it has been used in the project with phpoffice/phpspreadsheet

This issue has already been created multiple times, please search first before creating.


Tests: remove some flags from file tests

Windows does not support some flags (e.g. O_CLOEXEC).  This removes
the unsupported options on Windows.

@swift-ci test

They currently are unavailable I believe.

Were these tests not compiling then?

Correct, they were not compiling previously :).  Many of the recent changes that have been merged (and the ones that are outstanding) are to repair the build, there were only 2 changes that fixed a test, only one which was a standalone PR and that is marked as draft.

SGTM


Add missing field_name in ValueError

I encountered this error a few times and noticed the variable name was missing. Without this commit, the error currently reads:
Field {} is not "nullable", but got passes a None value

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Charles Lariviere seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for the fix! So we can land your change, can you please accept the CLA?


Unable to set multiply factor standby in GUI

System Health details
N/A
Checklist

[X] I have read the FAQ to see if there is a known solution to my problem.
[X] I have enabled debug logging for my installation.
[X] I have filled out the issue template to the best of my ability.
[X] This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
[X] This issue is not a duplicate issue of currently previous issues..

Describe the issue
The setting is not shown.
Reproduction steps
N/A
Debug logs
N/A

Diagnostics dump or YAML config
No response

Fixed with #1897, will be in next version.