Update: See my last post in this series for my workaround.
I have come across an issue with Orthanc reading and presenting meta data from the DICOM headers.
Specifically, the issue is occurring for (0018,9089) DiffusionGradientOrientation fields.
Orthanc’s meta data reader appears (randomly? always?) to be prepending “0” values with a negative: “-0”.
Note that these are Siemens MR enhanced (multi-frame) DICOM. I have not tested whether this occurs with old legacy non-enhanced DICOM.
For example, DCMTK dcmdump reports:
dcmdump +P DiffusionGradientOrientation MR000004.dcm
(0018,9089) FD -0.9999992847442627\0.0012499971780925989\0 # 24, 3 DiffusionGradientOrientation
While the Orthanc browser (and RestAPI) returns:
0018,9089 (DiffusionGradientOrientation): -0.9999992847442627\0.0012499971780925989\-0
When it comes time to write this data back OUT to a modified DICOM, the Orthanc writer complains of “out-of-range” errors:
While creating a DICOM instance, tag (0018,9089) has out-of-range value: "-0.9999992847442627\0.0012499971780925989\-0"
I tried with the GDCM turned on and off with the same result.
I am assuming this is related to the “-0”, but maybe it’s a mismatch in the floating point precision between the reader/writer? Has Siemens violated the current standard with their high precision meta data? Maybe one of the other values has too many decimal places for the writer?
I am working with the latest orthancteam image from Dockerhub:
{
"ApiVersion" : 24,
"CheckRevisions" : false,
...
"IngestTranscoding" : "",
"IsHttpServerSecure" : true,
...
"PluginsEnabled" : true,
"StorageAreaPlugin" : null,
"StorageCompression" : false,
...
"Version" : "1.12.4"
}
If you need an example DICOM, I will see about acquiring some phantom data. All I have is research subject data at the moment and I can’t share their meta data.
John.