13 #ifndef mitkSUVImageFilter_h
14 #define mitkSUVImageFilter_h
25 class IPropertyProvider;
77 itkFactorylessNewMacro(Self);
109 itkSetMacro(PatientWeightInGram,
double);
110 itkGetConstMacro(PatientWeightInGram, std::optional<double>);
115 itkSetMacro(PatientHeightInCm,
double);
116 itkGetConstMacro(PatientHeightInCm, std::optional<double>);
122 itkGetConstMacro(PatientSex, std::optional<Sex>);
127 itkSetMacro(InjectedActivityInBq,
double);
128 itkGetConstMacro(InjectedActivityInBq, std::optional<double>);
133 itkSetMacro(HalfLifeInSec,
double);
134 itkGetConstMacro(HalfLifeInSec, std::optional<double>);
160 itkGetConstMacro(DecayTimeOverrideInSec, std::optional<double>);
196 itkSetMacro(TracerIndex,
int);
197 itkGetConstMacro(TracerIndex, std::optional<int>);
279 void GenerateData() override;
280 void GenerateOutputInformation() override;
284 static
void RequireConfigured(
bool configured, const
char *fieldName);
287 void ProcessTimeStep(const
Image *stepIn,
290 double injectedActivity,
291 double scaleNumerator,
299 std::optional<double> m_PatientWeightInGram;
300 std::optional<double> m_PatientHeightInCm;
301 std::optional<Sex> m_PatientSex;
302 std::optional<double> m_InjectedActivityInBq;
303 std::optional<double> m_HalfLifeInSec;
304 std::optional<double> m_DecayTimeOverrideInSec;
305 std::optional<DecayTimeMapType> m_DecayTimeOverrideMap;
306 std::optional<int> m_TracerIndex;
307 std::optional<SUVInputModel> m_InputModelOverride;
310 std::optional<double> m_EffectivePatientWeightInGram;
311 std::optional<double> m_EffectivePatientHeightInCm;
312 std::optional<Sex> m_EffectivePatientSex;
313 std::optional<double> m_EffectiveInjectedActivityInBq;
314 std::optional<double> m_EffectiveHalfLifeInSec;
315 std::optional<DecayCorrectionInfo> m_EffectiveDecayCorrection;
316 std::optional<SUVInputModel> m_EffectiveInputModel;
324 std::optional<SUVInputModel> m_DetectedInputModel;
326 bool m_Configured{
false};
332 itk::ModifiedTimeType m_ConfigureMTime{0};
Interface implemented by classes that provide access to property information.
Superclass of all classes having one or more Images as input and generating Images as output.
Image class for storing multi-dimensional medical image data.
Image-to-image filter that converts a PET image into a SUV image.
void SetDecayTimeOverrideInSec(double value)
Override the decay duration uniformly across every voxel, in [s].
void ClearInjectedActivityInBq()
SUVInputModel GetEffectiveInputModel() const
itkSetEnumMacro(DICOMReadPolicy, DICOMReadPolicy)
Policy for IBSI-SUV-recommended adaptations of borderline / ambiguous DICOM input.
void ClearHalfLifeInSec()
double GetEffectivePatientWeightInGram() const
void ClearDecayTimeOverrideInSec()
std::optional< SUVInputModel > GetDetectedInputModel() const noexcept
Input model classified (or override-derived) by the most recent ConfigureFromProperties call,...
double GetEffectiveInjectedActivityInBq() const
void ClearPatientHeightInCm()
std::optional< SUVInputModel > GetInputModelOverride() const
itkSetEnumMacro(PatientSex, Sex)
Override DICOM (0010,0040) Patient Sex.
void ClearInputModelOverride()
void SetDecayTimeOverrideMap(DecayTimeMapType map)
Override the decay duration on a per-(timestep, slice) basis, in [s].
mitkClassMacro(SUVImageFilter, ImageToImageFilter)
void ClearPatientWeightInGram()
itkSetEnumMacro(TargetVariant, SUVVariant)
Set the target SUV variant.
void ClearDecayTimeOverrideMap()
double GetEffectivePatientHeightInCm() const
void SetInputModelOverride(SUVInputModel v)
Override the pixel-semantics classification.
const DecayCorrectionInfo & GetEffectiveDecayCorrection() const
const std::optional< DecayTimeMapType > & GetDecayTimeOverrideMap() const
Sex GetEffectivePatientSex() const
double GetEffectiveHalfLifeInSec() const
Find image slices visible on a given plane.
std::map< mitk::TimeStepType, DecayTimeSliceMapType > DecayTimeMapType
Map storing per-time-step decay time slice maps.
DICOMReadPolicy
Policy controlling whether benchmark-recommended adaptations of borderline / non-spec DICOM input are...
std::size_t TimeStepType
Type for time step indices (non-negative integers starting from 0).
SUVVariant
Identifies a Standardized Uptake Value (SUV) variant.
std::map< mitk::SlicedData::IndexValueType, double > DecayTimeSliceMapType
Map storing the residual decay time in seconds per slice.
Sex
Patient sex modeled as a closed set.
Result of DeduceDecayCorrection().