Page MenuHomePhabricator

Store exact software version in properties when reading DICOM
Closed, ResolvedPublic

Description

To make sure we can reproduce how certain DICOM files were read we should keep the version information of MITK in the data. This could be the "git descibe" string that is already used in the general MITK version information.

Maybe it's already implemented but there should also be information about which DICIM reader class was used. Plus DCMTK/GDCM in case that matters for the specific reader that was used.

Revisions and Commits

rMITK MITK
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision

Event Timeline

Good idea. I think we should go even further and not just store the mitk version but also the reader class used to read the files and also its settings (partially readers are configured be (embedded) xml files). The settings could be at least referenced by storing the name defined in the settingsfile.

Any proposals for the property names?

floca removed floca as the assignee of this task.Mar 17 2017, 9:31 AM

I will claim it as soon as I realy work on it. (If no one else is faster ;)

floca added a project: Restricted Project.Mar 17 2017, 9:32 AM
floca moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.
floca added a parent task: Restricted Maniphest Task.Oct 29 2018, 12:46 PM

This branch contains a interface breaking commit for all classes
derived from AbstractFileReader. Derived classes have to
implement now "std::vector<BaseData::Pointer> DoRead()".
Normaly the only thing to do, is to rename the Read()
implementation of the derived class to DoRead().

The change was needed to ensure that for all reader classes
the meta information is stored. This is done now in the
implementation of AbstractFileReader::Read() after DoRead()
is called.

The follwing informations are stored now in properties.

General

Property nameDescription
MITK.IO.reader.descriptionPath to the property containing the name of the reader used
MITK.IO.reader.versionPath to the property containing the version of mitk used to read the data
MITK.IO.reader.mime.namePath to the property containing the mine name detected used to read the data
MITK.IO.reader.mime.categoryPath to the property containing the mime category detected to read the data
MITK.IO.reader.inputlocationPath to the property containing the input location used by the reader if loaded by file
MITK.IO.reader.options.*Path to the properties containing the reader options used to read the data

DICOM reader specific

Property nameDescription
MITK.IO.reader.DICOM.configurationPath to the property containing the name of the dicom reader configuration used to read the data
MITK.IO.reader.DICOM.filesPath to the property containing the files the dicom reader used in a TemporoSpatialProperty
MITK.IO.reader.DICOM.PixelSpacingInterpretationStringPath to the property containing PixelSpacingInterpretationString for the read data
MITK.IO.reader.DICOM.PixelSpacingInterpretationPath to the property containing PixelSpacingInterpretation for the read data
MITK.IO.reader.DICOM.ReaderImplementationLevelStringPath to the property containing ReaderImplementationLevelString for the read data
MITK.IO.reader.DICOM.ReaderImplementationLevelPath to the property containing ReaderImplementationLevel for the read data
MITK.IO.reader.DICOM.GantyTiltCorrectedPath to the property containing the indicator of the gantry tilt was corrected when reading the data
MITK.IO.reader.DICOM.3D+tPath to the property containing the indicator of the data was read as 3D+t
MITK.IO.reader.DICOM.gdcmPath to the property containing the version of GDCM used to read the data
MITK.IO.reader.DICOM.dcmtkPath to the property containing the version of DCMTK used to read the data
floca added a revision: Restricted Differential Revision.May 3 2020, 11:33 AM
floca moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.May 10 2020, 2:44 PM