STIR  6.2.0
BloodFrameData.h
Go to the documentation of this file.
1 //
2 //
3 /*
4  Copyright (C) 2005 - 2007, 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 */
21 #ifndef __stir_modelling_BloodFrameData_H__
22 #define __stir_modelling_BloodFrameData_H__
23 
25 #include <vector>
26 
27 START_NAMESPACE_STIR
28 
35 {
36  typedef std::vector<BloodFrame> plot_type;
37 
38 public:
39  typedef plot_type::const_iterator const_iterator;
40  /* enum VolumeUnits
41  { ml , litre };
42  enum SamplingTimeUnits
43  { seconds , minutes };
44  enum RadioactivityUnits
45  { counts_per_sec , counts_per_min , kBq };
46 
47  inline void set_input_units(const SamplingTimeUnits input_sampling_time_units,
48  const VolumeUnits input_volume_units,
49  const RadioactivityUnits input_radioactivity_units ) ;
50 
51  */
53  inline void read_blood_frame_data(const std::string input_string);
54  inline void set_plot(const std::vector<BloodFrame>& blood_plot);
56 
58  inline void shift_time(const float time_shift);
59 
61  inline float get_time_shift();
62 
64  inline void set_isotope_halflife(const float isotope_halflife);
65 
67  inline void set_if_decay_corrected(const bool is_decay_corrected);
68 
70  inline bool get_if_decay_corrected();
71 
73  inline void decay_correct_BloodFrameData();
74 
76  inline BloodFrameData();
77 
79  // ChT::ToDO: Better to use iterators
80  inline BloodFrameData(const std::vector<BloodFrame>& blood_plot);
81 
83  inline ~BloodFrameData();
84 
86  inline const_iterator begin() const;
87  inline const_iterator end() const;
88  inline unsigned int size() const;
89  // non const_iterator should be defined if the plasma data needs to be changed
90  // inline iterator begin() ;
91  // inline iterator end() ;
92 
93 private:
94  /* VolumeUnits _input_volume_units ;
95  SamplingTimeUnits _input_sampling_time_units ;
96  RadioactivityUnits _input_radioactivity_units ;*/
97  bool _is_decay_corrected;
98  float _isotope_halflife;
99  std::vector<BloodFrame> _blood_plot;
100  int _num_frames;
101  float _time_shift;
102 };
103 
104 END_NAMESPACE_STIR
105 
106 #include "stir_experimental/modelling/BloodFrameData.inl"
107 
108 #endif //__stir_modelling_BloodFrameData_H__
Declaration of class stir::PlasmaData.
A class for storing plasma samples of a single study.
Definition: BloodFrameData.h:34