Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitkPharmacokineticModelsActivator.cpp
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 
14 #include <usModuleActivator.h>
15 #include <usModuleContext.h>
16 
18 
19 //MR perfusion models
25 
26 //PET perfusion models
32 
33 //general models
35 
36 namespace mitk
37 {
38 
39 /*
40  * This is the module activator for the IO aspects of the "pharmacokinetics" module.
41  */
42 class PharmacokineticModelsActivator : public us::ModuleActivator
43 {
44 public:
45 
46  template <class TProvider> void RegisterProvider(us::ModuleContext* context)
47  {
48  auto provider = new TProvider();
49  provider->RegisterService(context);
50 
51  m_RegisteredProviders.push_back(std::unique_ptr<IModelFitProvider>(provider));
52  }
53 
54  void Load(us::ModuleContext* context) override
55  {
56  m_RegisteredProviders.clear();
57  RegisterProvider<mitk::ModelFitProviderBase<mitk::DescriptivePharmacokineticBrixModelFactory> >(context);
58  RegisterProvider<mitk::ModelFitProviderBase<mitk::ThreeStepLinearModelFactory> >(context);
59  RegisterProvider<mitk::ModelFitProviderBase<mitk::ExtendedToftsModelFactory> >(context);
60  RegisterProvider<mitk::ModelFitProviderBase<mitk::StandardToftsModelFactory> >(context);
61  RegisterProvider<mitk::ModelFitProviderBase<mitk::TwoCompartmentExchangeModelFactory> >(context);
62  RegisterProvider<mitk::ModelFitProviderBase<mitk::NumericTwoCompartmentExchangeModelFactory> >(context);
63  RegisterProvider<mitk::ModelFitProviderBase<mitk::OneTissueCompartmentModelFactory> >(context);
64  RegisterProvider<mitk::ModelFitProviderBase<mitk::ExtendedOneTissueCompartmentModelFactory> >(context);
65  RegisterProvider<mitk::ModelFitProviderBase<mitk::TwoTissueCompartmentFDGModelFactory> >(context);
66  RegisterProvider<mitk::ModelFitProviderBase<mitk::TwoTissueCompartmentModelFactory> >(context);
67  RegisterProvider<mitk::ModelFitProviderBase<mitk::NumericTwoTissueCompartmentModelFactory> >(context);
68  }
69 
70  void Unload(us::ModuleContext* ) override
71  {
72  }
73 
74 private:
75  std::vector<std::unique_ptr<IModelFitProvider> > m_RegisteredProviders;
76 };
77 
78 }
79 
80 US_EXPORT_MODULE_ACTIVATOR(mitk::PharmacokineticModelsActivator)
DataCollection - Class to facilitate loading/accessing structured data.
virtual void Unload(ModuleContext *context)=0
#define US_EXPORT_MODULE_ACTIVATOR(_activator_type)
Export a module activator class.
virtual void Load(ModuleContext *context)=0