SESubstanceNasalDose.h
1 /**************************************************************************************
2 Copyright 2015 Applied Research Associates, Inc.
3 Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4 this file except in compliance with the License. You may obtain a copy of the License
5 at:
6 http://www.apache.org/licenses/LICENSE-2.0
7 Unless required by applicable law or agreed to in writing, software distributed under
8 the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
9 CONDITIONS OF ANY KIND, either express or implied. See the License for the
10 specific language governing permissions and limitations under the License.
11 **************************************************************************************/
12 #pragma once
13 
14 #include <biogears/cdm/patient/actions/SESubstanceAdministration.h>
15 #include <biogears/cdm/properties/SEScalarMass.h>
16 #include <biogears/cdm/properties/SEScalarTime.h>
17 #include <biogears/cdm/properties/SEScalarMassPerVolume.h>
18 #include <biogears/schema/cdm/PatientActions.hxx>
19 
20 namespace biogears {
21 class SESubstance;
22 
23 class BIOGEARS_API SESubstanceNasalDose : public SESubstanceAdministration {
24 public:
25  SESubstanceNasalDose(const SESubstance& substance);
26  virtual ~SESubstanceNasalDose();
27 
28  virtual void Clear(); //clear memory
29 
30  virtual bool IsValid() const;
31  virtual bool IsActive() const;
32 
33  virtual bool Load(const CDM::SubstanceNasalDoseData& in);
34  virtual CDM::SubstanceNasalDoseData* Unload() const;
35 
36 protected:
37  virtual void Unload(CDM::SubstanceNasalDoseData& data) const;
38 
39 public:
40  virtual bool HasDose() const;
41  virtual SEScalarMass& GetDose();
42 
43  virtual SESubstance& GetSubstance() const;
44 
45  virtual void ToString(std::ostream& str) const;
46 
47 protected:
50 };
51 
52 class BIOGEARS_API SENasalState {
53 public:
54  SENasalState(const SESubstance& sub);
55  ~SENasalState();
56  virtual void Clear();
57 
58  virtual bool Load(const CDM::NasalStateData& in);
59  virtual CDM::NasalStateData* Unload() const;
60 
61  bool Initialize(SEScalarMass& dose);
62 
63  SEScalarMass& GetTotalNasalDose();
64  SEScalarMassPerVolume& GetVenaCavaConcentration();
65  std::vector<SEScalarMass*>& GetUnreleasedNasalMasses();
66  std::vector<SEScalarMass*>& GetReleasedNasalMasses();
67  std::vector<double> GetUnreleasedNasalMasses(const MassUnit& unit);
68  std::vector<double> GetReleasedNasalMasses(const MassUnit& unit);
69  bool SetUnreleasedNasalMasses(std::vector<double>& uMasses, const MassUnit& unit);
70  bool SetReleasedNasalMasses(std::vector<double>& rMasses, const MassUnit& unit);
71 
72 protected:
73  virtual void Unload(CDM::NasalStateData& data) const;
74  //Nasal specific values
78  std::vector<SEScalarMass*> m_UnreleasedDrugMasses;
79  std::vector<SEScalarMass*> m_ReleasedDrugMasses;
82 };
83 }
std::vector< SEScalarMass * > m_UnreleasedDrugMasses
Definition: SESubstanceNasalDose.h:78
SEScalarMassPerVolume * m_VenaCavaConcentration
Definition: SESubstanceNasalDose.h:77
Definition: SEScalarMass.h:38
const SESubstance * m_Substance
Definition: SESubstanceNasalDose.h:75
size_t m_NumReleasedMasses
Definition: SESubstanceNasalDose.h:81
Definition: SESubstanceNasalDose.h:23
SEScalarMass * m_TotalNasalDose
Definition: SESubstanceNasalDose.h:76
Definition: SESubstance.h:49
SEScalarMass * m_Dose
Definition: SESubstanceNasalDose.h:48
Class corresponding to the SubstanceNasalDoseData schema type.
Definition: PatientActions.hxx:11160
Definition: SESubstanceAdministration.h:18
Definition: SEScalarMassPerVolume.h:46
std::vector< SEScalarMass * > m_ReleasedDrugMasses
Definition: SESubstanceNasalDose.h:79
const SESubstance & m_Substance
Definition: SESubstanceNasalDose.h:49
Definition: SEScalarMass.h:18
Definition: SEElectricalCircuit.h:18
Class corresponding to the NasalStateData schema type.
Definition: PatientActions.hxx:7998
size_t m_NumUnreleasedMasses
Definition: SESubstanceNasalDose.h:80
Definition: SESubstanceNasalDose.h:52