STIR  6.2.0
PlasmaData.h
Go to the documentation of this file.
1 //
2 //
3 /*
4  Copyright (C) 2005 - 2011, Hammersmith Imanet Ltd
5  This file is part of STIR.
6 
7  SPDX-License-Identifier: Apache-2.0
8 
9  See STIR/LICENSE.txt for details
10 */
19 #ifndef __stir_modelling_PlasmaData_H__
20 #define __stir_modelling_PlasmaData_H__
21 
24 #include <vector>
25 
26 START_NAMESPACE_STIR
27 
29 
34 {
35  typedef std::vector<PlasmaSample> plot_type;
36 
37 public:
39  inline PlasmaData(const std::vector<PlasmaSample>& plasma_blood_plot);
40  inline PlasmaData();
41  inline ~PlasmaData();
42 
43  typedef plot_type::const_iterator const_iterator;
45 
46  /*
47  enum VolumeUnits
48  { ml , litre };
49  enum SamplingTimeUnits
50  { seconds , minutes };
51  enum RadioactivityUnits
52  { counts_per_sec , counts_per_min , kBq };
53  */
54 
55  // Implementation to set the input units not currently used. Always, it assumed to use kBq, seconds, ml.
56  /* inline void set_input_units(const SamplingTimeUnits input_sampling_time_units,
57  const VolumeUnits input_volume_units,
58  const RadioactivityUnits input_radioactivity_units ) ;
59  */
60 
65  inline void read_plasma_data(const std::string input_string);
66 
67  inline void set_plot(const std::vector<PlasmaSample>& plasma_blood_plot);
68 
73  inline PlasmaData get_sample_data_in_frames(TimeFrameDefinitions time_frame_def);
74 
80  inline double get_time_shift();
82  inline bool get_is_decay_corrected() const;
83  inline double get_isotope_halflife() const;
84  inline TimeFrameDefinitions get_time_frame_definitions() const;
85  inline void set_time_frame_definitions(
88  const TimeFrameDefinitions& plasma_fdef);
89  inline void set_is_decay_corrected(const bool is_decay_corrected);
92  inline void set_isotope_halflife(const double isotope_halflife);
93  inline void shift_time(const double time_shift);
95 
97  inline void decay_correct_PlasmaData();
98 
100 
101  inline const_iterator begin() const;
102  inline const_iterator end() const;
103  inline unsigned int size() const;
105 
107  // inline iterator begin() ;
108  // inline iterator end() ;
109 
110 private:
111  // PlasmaSample _plasma_type ;
112  // VolumeUnits _input_volume_units ;
113  // SamplingTimeUnits _input_sampling_time_units ;
114  // RadioactivityUnits _input_radioactivity_units ;
115  bool _is_decay_corrected;
116  std::vector<PlasmaSample> _plasma_blood_plot;
117  TimeFrameDefinitions _plasma_fdef;
118  double _isotope_halflife;
119  int _sample_size;
120  double _time_shift;
121 };
122 
123 END_NAMESPACE_STIR
124 
126 
127 #endif //__stir_modelling_PlasmaData_H__
Class used for storing time frame durations.
Definition: TimeFrameDefinitions.h:38
Declaration of class stir::TimeFrameDefinitions.
Declaration of class stir::PlasmaData.
A class for storing plasma and blood samples of a single study.
Definition: PlasmaData.h:33
Implementations of inline functions of class stir::PlasmaData.