Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkAIFBasedModelBase.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 #ifndef mitkAIFBasedModelBase_h
13 #define mitkAIFBasedModelBase_h
14 
15 
17 #include <mitkModelBase.h>
18 #include <itkArray2D.h>
19 
20 namespace mitk
21 {
22 
39  {
40  public:
41 
46 
47 
49  itkTypeMacro(AIFBasedModelBase, ModelBase);
50 
52  static const std::string NAME_STATIC_PARAMETER_AIF;
54  static const std::string NAME_STATIC_PARAMETER_AIFTimeGrid;
55 
57  static const std::string UNIT_STATIC_PARAMETER_AIF;
59  static const std::string UNIT_STATIC_PARAMETER_AIFTimeGrid;
60 
62  static const unsigned int NUMBER_OF_STATIC_PARAMETERS;
63 
65  static const std::string X_AXIS_NAME;
66 
68  static const std::string X_AXIS_UNIT;
69 
71  static const std::string Y_AXIS_NAME;
72 
74  static const std::string Y_AXIS_UNIT;
75 
77  typedef itk::Array<double> AterialInputFunctionType;
78 
80  itkGetConstReferenceMacro(AterialInputFunctionValues, AterialInputFunctionType);
82  itkGetConstReferenceMacro(AterialInputFunctionTimeGrid, TimeGridType);
83 
86  itkSetMacro(AterialInputFunctionValues, AterialInputFunctionType);
89  itkSetMacro(AterialInputFunctionTimeGrid, TimeGridType);
90 
93  std::string GetXAxisName() const override;
94 
97  std::string GetXAxisUnit() const override;
98 
101  std::string GetYAxisName() const override;
102 
105  std::string GetYAxisUnit() const override;
106 
113 
121 
131 
132 
133  protected:
135  ~AIFBasedModelBase() override;
136 
138 
143  bool ValidateModel(std::string& error) const override;
144 
145  void PrintSelf(std::ostream& os, ::itk::Indent indent) const override;
146 
148  const StaticParameterValuesType& values) override;
149 
151  override;
152 
155 
156 
157  private:
158 
159  void operator=(const Self&); //purposely not implemented
160 
161 
162  };
163 }
164 #endif
#define MITKPHARMACOKINETICS_EXPORT
Base class for all pharmacokinetic perfusion models that use an Arterial Input Function (AIF).
static const unsigned int NUMBER_OF_STATIC_PARAMETERS
Number of static parameters (AIF values + AIF time grid = 2).
static const std::string NAME_STATIC_PARAMETER_AIFTimeGrid
Name identifier for the AIF time grid static parameter.
static const std::string UNIT_STATIC_PARAMETER_AIF
Unit string for the AIF static parameter (mM).
void SetStaticParameter(const ParameterNameType &name, const StaticParameterValuesType &values) override
Sets a single static parameter by name.
itk::SmartPointer< const Self > ConstPointer
itk::Array< double > AterialInputFunctionType
Array type for the Arterial Input Function AIF(t).
const AterialInputFunctionType GetAterialInputFunction(TimeGridType currentTimeGrid) const
Returns the AIF values interpolated to the given time grid.
const TimeGridType & GetCurrentAterialInputFunctionTimeGrid() const
Returns the time grid currently used for the AIF.
void PrintSelf(std::ostream &os, ::itk::Indent indent) const override
static const std::string X_AXIS_NAME
Display name for the X axis ("Time").
std::string GetXAxisName() const override
Returns the X axis name ("Time").
itk::SmartPointer< Self > Pointer
std::string GetYAxisName() const override
Returns the Y axis name ("Concentration").
static const std::string UNIT_STATIC_PARAMETER_AIFTimeGrid
Unit string for the AIF time grid static parameter (s).
ParamterUnitMapType GetStaticParameterUnits() const override
Returns the unit map for all static parameters.
static const std::string Y_AXIS_NAME
Display name for the Y axis ("Concentration").
bool ValidateModel(std::string &error) const override
StaticParameterValuesType GetStaticParameterValue(const ParameterNameType &name) const override
Retrieves a single static parameter value by name.
static const std::string Y_AXIS_UNIT
Unit for the Y axis ("mM").
static const std::string X_AXIS_UNIT
Unit for the X axis ("s").
std::string GetYAxisUnit() const override
Returns the Y axis unit ("mM").
ParametersSizeType GetNumberOfStaticParameters() const override
Returns the number of static parameters (always 2).
AIFBasedModelBase(const AIFBasedModelBase &source)
AterialInputFunctionType m_AterialInputFunctionValues
TimeGridType m_AterialInputFunctionTimeGrid
~AIFBasedModelBase() override
ParameterNamesType GetStaticParameterNames() const override
Returns the names of all static parameters (AIF, AIF time grid).
static const std::string NAME_STATIC_PARAMETER_AIF
Name identifier for the AIF static parameter ("Arterial Input Function").
std::string GetXAxisUnit() const override
Returns the X axis unit ("s").
Base class for (dynamic) models.
Definition: mitkModelBase.h:56
ModelTraitsInterface::ParametersSizeType ParametersSizeType
Definition: mitkModelBase.h:73
ModelTraitsInterface::ParameterNamesType ParameterNamesType
Definition: mitkModelBase.h:72
std::vector< StaticParameterValueType > StaticParameterValuesType
Definition: mitkModelBase.h:79
ModelTraitsInterface::ParameterNameType ParameterNameType
Definition: mitkModelBase.h:71
itk::Array< double > TimeGridType
Type defining the time grid used by models.
Definition: mitkModelBase.h:70
std::map< ParameterNameType, std::string > ParamterUnitMapType
Map type associating parameter names to their unit strings.
Find image slices visible on a given plane.