Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkDescriptivePharmacokineticBrixModel.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 
13 #ifndef mitkDescriptivePharmacokineticBrixModel_h
14 #define mitkDescriptivePharmacokineticBrixModel_h
15 
16 #include <iostream>
17 
18 #include <mitkModelBase.h>
20 
21 namespace mitk
22 {
23 
45  {
46 
47  public:
52 
54  itkFactorylessNewMacro(Self);
55  itkCloneMacro(Self);
56 
59 
61  static const std::string MODEL_DISPLAY_NAME;
62 
64  static const std::string NAME_PARAMETER_A;
66  static const std::string NAME_PARAMETER_kep;
68  static const std::string NAME_PARAMETER_kel;
70  static const std::string NAME_PARAMETER_BAT;
71 
73  static const std::string NAME_STATIC_PARAMETER_tau;
75  static const std::string NAME_STATIC_PARAMETER_s0;
76 
78  static const std::string UNIT_PARAMETER_A;
80  static const std::string UNIT_PARAMETER_kep;
82  static const std::string UNIT_PARAMETER_kel;
84  static const std::string UNIT_PARAMETER_BAT;
85 
87  static const std::string UNIT_STATIC_PARAMETER_tau;
89  static const std::string UNIT_STATIC_PARAMETER_s0;
90 
92  static const unsigned int POSITION_PARAMETER_A;
94  static const unsigned int POSITION_PARAMETER_kep;
96  static const unsigned int POSITION_PARAMETER_kel;
98  static const unsigned int POSITION_PARAMETER_BAT;
99 
101  static const unsigned int NUMBER_OF_PARAMETERS;
102 
104  static const unsigned int NUMBER_OF_STATIC_PARAMETERS;
105 
107  static const std::string MODEL_TYPE;
108 
110  static const std::string X_AXIS_NAME;
112  static const std::string X_AXIS_UNIT;
114  static const std::string Y_AXIS_NAME;
116  static const std::string Y_AXIS_UNIT;
117 
120  itkSetMacro(Tau, double);
122  itkGetConstReferenceMacro(Tau, double);
123 
126  itkSetMacro(S0, double);
128  itkGetConstReferenceMacro(S0, double);
129 
132  std::string GetModelDisplayName() const override;
133 
136  std::string GetModelType() const override;
137 
140  std::string GetXAxisName() const override;
141 
144  std::string GetXAxisUnit() const override;
145 
148  std::string GetYAxisName() const override;
149 
152  std::string GetYAxisUnit() const override;
153 
157 
161 
165 
175 
176  protected:
180 
181  ModelResultType ComputeModelfunction(const ParametersType& parameters) const override;
182 
184  const StaticParameterValuesType& values) override;
185 
187  override;
188 
189  void PrintSelf(std::ostream& os, ::itk::Indent indent) const override;
190 
192 
193  private:
195  double m_Tau;
196 
199  double m_S0;
200 
201  void operator=(const Self&); //purposely not implemented
202 
203 
204  };
205 }
206 
207 
208 #endif
#define MITKPHARMACOKINETICS_EXPORT
Descriptive pharmacokinetic model for MR perfusion according to Brix et al.
static const std::string UNIT_PARAMETER_A
Unit for parameter A ("a.u.").
ModelResultType ComputeModelfunction(const ParametersType &parameters) const override
Computes the model function for the given parameters.
static const std::string NAME_PARAMETER_BAT
Name of parameter BAT (bolus arrival time, min).
StaticParameterValuesType GetStaticParameterValue(const ParameterNameType &name) const override
Retrieves a single static parameter value by name.
void SetStaticParameter(const ParameterNameType &name, const StaticParameterValuesType &values) override
Sets a single static parameter by name.
ParametersSizeType GetNumberOfParameters() const override
Returns the number of fitted parameters (4).
static const std::string NAME_PARAMETER_A
Name of parameter A (amplitude, unitless).
static const unsigned int POSITION_PARAMETER_kel
Index position of parameter kel in the parameter array.
std::string GetModelDisplayName() const override
Returns the model display name.
std::string GetModelType() const override
Returns the model type.
static const std::string UNIT_PARAMETER_kep
Unit for parameter kep ("1/min").
static const std::string MODEL_TYPE
Model type identifier ("Perfusion.MR").
static const std::string X_AXIS_NAME
X axis display name ("Time").
ParameterNamesType GetStaticParameterNames() const override
Returns the names of all static parameters (tau, S0).
static const std::string X_AXIS_UNIT
X axis unit ("s").
static const std::string UNIT_STATIC_PARAMETER_s0
Unit for static parameter S0 ("a.u.").
static const unsigned int NUMBER_OF_STATIC_PARAMETERS
Total number of static parameters (2: tau, S0).
ParameterNamesType GetParameterNames() const override
Returns the names of all fitted parameters (A, kep, kel, BAT).
static const unsigned int POSITION_PARAMETER_BAT
Index position of parameter BAT in the parameter array.
std::string GetXAxisName() const override
Returns the X axis name.
ParamterUnitMapType GetStaticParameterUnits() const override
Returns the unit map for all static parameters.
std::string GetYAxisName() const override
Returns the Y axis name.
ParametersSizeType GetNumberOfStaticParameters() const override
Returns the number of static parameters (2).
static const std::string MODEL_DISPLAY_NAME
Display name: "Descriptive Pharmacokinetic Brix Model".
static const unsigned int POSITION_PARAMETER_kep
Index position of parameter kep in the parameter array.
static const std::string NAME_PARAMETER_kep
Name of parameter kep (exchange rate constant, 1/min).
static const std::string Y_AXIS_NAME
Y axis display name ("Signal").
static const std::string NAME_PARAMETER_kel
Name of parameter kel (elimination rate constant, 1/min).
static const unsigned int NUMBER_OF_PARAMETERS
Total number of fitted parameters (4).
std::string GetYAxisUnit() const override
Returns the Y axis unit.
static const std::string UNIT_PARAMETER_kel
Unit for parameter kel ("1/min").
static const std::string UNIT_STATIC_PARAMETER_tau
Unit for static parameter tau ("min").
static const std::string Y_AXIS_UNIT
Y axis unit ("a.u.").
static const std::string NAME_STATIC_PARAMETER_s0
Name of static parameter S0 (pre-contrast signal, a.u.).
void PrintSelf(std::ostream &os, ::itk::Indent indent) const override
DescriptivePharmacokineticBrixModel(const DescriptivePharmacokineticBrixModel &other)
std::string GetXAxisUnit() const override
Returns the X axis unit.
static const std::string UNIT_PARAMETER_BAT
Unit for parameter BAT ("min").
static const std::string NAME_STATIC_PARAMETER_tau
Name of static parameter tau (injection time, min).
static const unsigned int POSITION_PARAMETER_A
Index position of parameter A in the parameter array.
ParamterUnitMapType GetParameterUnits() const override
Returns the unit map for all fitted parameters.
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
ModelTraitsInterface::ModelResultType ModelResultType
Definition: mitkModelBase.h:63
ModelTraitsInterface::ParametersType ParametersType
Definition: mitkModelBase.h:67
std::map< ParameterNameType, std::string > ParamterUnitMapType
Map type associating parameter names to their unit strings.
Find image slices visible on a given plane.