Medical Imaging Interaction Toolkit  2018.4.99-12ad79a3
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 AIFBASEDMODELBASE_H
13 #define AIFBASEDMODELBASE_H
14 
15 
17 #include "mitkModelBase.h"
18 #include "itkArray2D.h"
19 
20 namespace mitk
21 {
22 
32  {
33  public:
34 
39 
40 
42  itkTypeMacro(PhysiologciModelBase, AIFBasedModelBase);
43 
44 
45  static const std::string NAME_STATIC_PARAMETER_AIF;
46  static const std::string NAME_STATIC_PARAMETER_AIFTimeGrid;
47 
48  static const std::string UNIT_STATIC_PARAMETER_AIF;
49  static const std::string UNIT_STATIC_PARAMETER_AIFTimeGrid;
50 
52  typedef itk::Array<double> AterialInputFunctionType;
53 
54  itkGetConstReferenceMacro(AterialInputFunctionValues, AterialInputFunctionType);
55  itkGetConstReferenceMacro(AterialInputFunctionTimeGrid, TimeGridType);
56 
57  itkSetMacro(AterialInputFunctionValues, AterialInputFunctionType);
58  itkSetMacro(AterialInputFunctionTimeGrid, TimeGridType);
59 
60  std::string GetXAxisName() const override;
61 
62  std::string GetXAxisUnit() const override;
63 
64  std::string GetYAxisName() const override;
65 
66  std::string GetYAxisUnit() const override;
67 
70  const TimeGridType& GetCurrentAterialInputFunctionTimeGrid() const;
71 
75  const AterialInputFunctionType GetAterialInputFunction(TimeGridType currentTimeGrid) const;
76 
77  ParameterNamesType GetStaticParameterNames() const override;
78  ParametersSizeType GetNumberOfStaticParameters() const override;
79  ParamterUnitMapType GetStaticParameterUnits() const override;
80 
81 
82  protected:
84  ~AIFBasedModelBase() override;
85 
90  bool ValidateModel(std::string& error) const override;
91 
92  void PrintSelf(std::ostream& os, ::itk::Indent indent) const override;
93 
94  void SetStaticParameter(const ParameterNameType& name,
95  const StaticParameterValuesType& values) override;
96 
97  StaticParameterValuesType GetStaticParameterValue(const ParameterNameType& name) const
98  override;
99 
101  AterialInputFunctionType m_AterialInputFunctionValues;
102 
103 
104  private:
105 
106 
107  //No copy constructor allowed
108  AIFBasedModelBase(const Self& source);
109  void operator=(const Self&); //purposely not implemented
110 
111 
112  };
113 }
114 #endif // AIFBASEDMODELBASE_H
itk::SmartPointer< Self > Pointer
Base class for (dynamic) models. A model can be used to calculate its signal given the discrete time ...
Definition: mitkModelBase.h:47
static const std::string NAME_STATIC_PARAMETER_AIFTimeGrid
#define MITKPHARMACOKINETICS_EXPORT
DataCollection - Class to facilitate loading/accessing structured data.
itk::Array< double > TimeGridType
Definition: mitkModelBase.h:62
ModelTraitsInterface::ParametersSizeType ParametersSizeType
Definition: mitkModelBase.h:65
AterialInputFunctionType m_AterialInputFunctionValues
std::vector< StaticParameterValueType > StaticParameterValuesType
Definition: mitkModelBase.h:71
itk::Array< double > AterialInputFunctionType
itk::SmartPointer< const Self > ConstPointer
ModelTraitsInterface::ParameterNameType ParameterNameType
Definition: mitkModelBase.h:63
static const std::string NAME_STATIC_PARAMETER_AIF
static const std::string UNIT_STATIC_PARAMETER_AIFTimeGrid
ModelTraitsInterface::ParameterNamesType ParameterNamesType
Definition: mitkModelBase.h:64
TimeGridType m_AterialInputFunctionTimeGrid
Base Class for all physiological perfusion models using an Aterial Input Function All AIF based model...
std::map< ParameterNameType, std::string > ParamterUnitMapType
static const std::string UNIT_STATIC_PARAMETER_AIF