SESubstanceOralDose.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/SEScalarMassPerVolume.h>
17 #include <biogears/schema/cdm/PatientActions.hxx>
18 
19 namespace biogears {
20 class SESubstance;
21 class SETransmucosalState;
22 
23 class BIOGEARS_API SESubstanceOralDose : public SESubstanceAdministration {
24 public:
25  SESubstanceOralDose(const SESubstance& substance);
26  virtual ~SESubstanceOralDose();
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::SubstanceOralDoseData& in);
34  virtual CDM::SubstanceOralDoseData* Unload() const;
35 
36 protected:
37  virtual void Unload(CDM::SubstanceOralDoseData& data) const;
38 
39 public:
40  virtual CDM::enumOralAdministration::value GetAdminRoute() const;
41  virtual void SetAdminRoute(CDM::enumOralAdministration::value name);
42  virtual bool HasAdminRoute() const;
43 
44  virtual bool HasDose() const;
45  virtual SEScalarMass& GetDose();
46 
47  virtual SESubstance& GetSubstance() const;
48 
49  virtual void ToString(std::ostream& str) const;
50 
51 protected:
55 };
56 
57 class BIOGEARS_API SETransmucosalState {
58 public:
59  SETransmucosalState(const SESubstance& sub);
61  virtual void Clear();
62 
63  virtual bool Load(const CDM::TransmucosalStateData& in);
64  virtual CDM::TransmucosalStateData* Unload() const;
65 
66  bool Initialize(SEScalarMass& dose);
67 
68 
69  SEScalarMass& GetMouthSolidMass();
70  SEScalarMassPerVolume& GetSalivaConcentration();
71  std::vector<SEScalarMassPerVolume*>& GetBuccalConcentrations();
72  std::vector<SEScalarMassPerVolume*>& GetSublingualConcentrations();
73  std::vector<double> GetBuccalConcentrations(const MassPerVolumeUnit& unit);
74  std::vector<double> GetSublingualConcentrations(const MassPerVolumeUnit& unit);
75  bool SetBuccalConcentrations(std::vector<double>& bMasses, const MassPerVolumeUnit& unit);
76  bool SetSublingualConcentrations(std::vector<double>& slMasses, const MassPerVolumeUnit& unit);
77 
78 protected:
79  virtual void Unload(CDM::TransmucosalStateData& data) const;
80  //Transumucosal specific values
84  std::vector<SEScalarMassPerVolume*> m_BuccalConcentrations;
85  std::vector<SEScalarMassPerVolume*> m_SublingualConcentrations;
88 };
89 }
Definition: SESubstanceOralDose.h:57
SEScalarMass * m_Dose
Definition: SESubstanceOralDose.h:53
value
Underlying enum type.
Definition: PatientActions.hxx:9602
SEScalarMass * m_MouthSolidMass
Definition: SESubstanceOralDose.h:82
Definition: SEScalarMass.h:38
Definition: SESubstanceOralDose.h:23
SEScalarMassPerVolume * m_SalivaConcentration
Definition: SESubstanceOralDose.h:83
std::vector< SEScalarMassPerVolume * > m_BuccalConcentrations
Definition: SESubstanceOralDose.h:84
const SESubstance * m_Substance
Definition: SESubstanceOralDose.h:81
size_t m_NumBuccalRegions
Definition: SESubstanceOralDose.h:86
Class corresponding to the SubstanceOralDoseData schema type.
Definition: PatientActions.hxx:11479
Definition: SESubstance.h:49
Class corresponding to the TransmucosalStateData schema type.
Definition: PatientActions.hxx:12157
size_t m_NumSublingualRegions
Definition: SESubstanceOralDose.h:87
const SESubstance & m_Substance
Definition: SESubstanceOralDose.h:54
Definition: SESubstanceAdministration.h:18
Definition: SEScalarMassPerVolume.h:46
Definition: SEScalarMassPerVolume.h:18
Definition: SEElectricalCircuit.h:18
std::vector< SEScalarMassPerVolume * > m_SublingualConcentrations
Definition: SESubstanceOralDose.h:85
CDM::enumOralAdministration::value m_AdminRoute
Definition: SESubstanceOralDose.h:52