Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GE bias value for b-value #602

Closed
mr-jaemin opened this issue Apr 26, 2022 · 2 comments
Closed

GE bias value for b-value #602

mr-jaemin opened this issue Apr 26, 2022 · 2 comments

Comments

@mr-jaemin
Copy link
Collaborator

mr-jaemin commented Apr 26, 2022

GE reports b-value in both Private tag (0043,1039) and Public tag (0018,9087)

Multi b-values DWI and synthetic b-value DWI have always BIAS_FOR_BVALUE of 1000000000 added to b-value in the private tag (0043,1039), not in the public tag (0018,9087). The BIAS_FOR_BVALUE is stored in the private tag (0043,107F)

Note that DTI doesn't have any bias value for b-value.

Because of this bias value, dcm2niix includes the following operation under set_bValGE():
bVal = (bVal % 10000);
which handles b-value with/without bias value correctly up to b-value=9999. However, b-value >= 10k caused an issue:
ex) 10000 (DICOM) --> 0 (bval), 11000 (DICOM) --> 1000 (bval)

Now, user starts to collect very high b-value data with GE 7T or UHP or MAGNUS system (ex. b=30k).

I would propose to update the code to:
bVal = (bVal % 1000000000);

Alternately, the BIAS_FOR_BVALUE can be extracted from the private tag (0043,107F). This is for a future reference.

I will share sample datasets with/without the bias value:
01_Ax_DWI_ALL_b1000
03_Ax_DWI_DTI_b1k
04_Ax_DWI_DTI_b10k
05_Ax_DWI_ALL_b1k_Syn_b2kb3k
500_DW_Synthetic__Ax_DWI_ALL_b1k_Syn_b2kb3k --> Bias valued added to b-value.

Also, I can submit Pull request if easier for you.

@mr-jaemin
Copy link
Collaborator Author

mr-jaemin commented Apr 27, 2022

Output from dcmdump * | egrep '0043,1039|0018,9087|0043,107f':

01_Ax_DWI_ALL_b1000: Regular DWI

(0018,9087) FD 1000                                     #   8, 1 DiffusionBValue
(0043,1039) IS [1000\8\0\0]                             #  10, 4 SlopInteger6ToSlopInteger9

03_Ax_DWI_DTI_b1k

(0018,9087) FD 1000                                     #   8, 1 DiffusionBValue
(0043,1039) IS [1000\8\0\0]                             #  10, 4 SlopInteger6ToSlopInteger9

04_Ax_DWI_DTI_b10k

(0018,9087) FD 10000                                    #   8, 1 DiffusionBValue
(0043,1039) IS [10000\8\0\0]                            #  12, 4 SlopInteger6ToSlopInteger9

05_Ax_DWI_ALL_b1k_Syn_b2kb3k

(0018,9087) FD 1000                                     #   8, 1 DiffusionBValue
(0043,1039) IS [1000\8\0\0]                             #  10, 4 SlopInteger6ToSlopInteger9

500_DW_Synthetic__Ax_DWI_ALL_b1k_Syn_b2kb3k: Synthetic DWI

(0018,9087) FD 2000                                     #   8, 1 DiffusionBValue
(0043,1039) IS [1000002000\8\0\0]                       #  16, 4 SlopInteger6ToSlopInteger9
(0043,107f) DS [1000000000]                             #  10, 1 EDWIScaleFactor

@neurolabusc
Copy link
Collaborator

Thanks, the pull request is merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants