What’s New in the Pulse Physiology Engine 4.4.0
×
Engine.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3#pragma once
4
5#include "engine/CommonDefs.h"
6
7namespace pulse
8{
9 class Controller;
10 //--------------------------------------------------------------------------------------------------
17 //--------------------------------------------------------------------------------------------------
18 class PULSE_DECL Engine : public PhysiologyEngine
19 {
20 public:
21 Engine(Logger* logger=nullptr);
22 virtual ~Engine();
23
24 Logger* GetLogger() const override;
25
26 std::string GetTypeName() const override;
27
28 bool SerializeFromFile(const std::string& file, const SEDataRequestManager* drMgr=nullptr) override;
29 bool SerializeToFile(const std::string& file) const override;
30
31 bool SerializeFromString(const std::string& state, eSerializationFormat m, const SEDataRequestManager* drMgr=nullptr) override;
32 bool SerializeToString(std::string& state, eSerializationFormat m) const override;
33
34 bool InitializeEngine(const SEPatientConfiguration& patient_configuration, const SEDataRequestManager* drMgr=nullptr) override;
35 eEngineInitializationState GetInitializationState() const override;
36
37 void Clear() override;
38
39 bool SetConfigurationOverride(const SEEngineConfiguration* config) override;
40
41 const SEConditionManager& GetConditionManager() const override;
42
43 SEDataRequestTracker& GetDataRequestTracker() override;
44
45 const SEEngineConfiguration* GetConfiguration() const override;
46
47 double GetTimeStep(const TimeUnit& unit) const override;
48 double GetSimulationTime(const TimeUnit& unit) const override;
49 void SetSimulationTime(const SEScalarTime& time) override;
50 double GetStabilizationTime(const TimeUnit& unit) const override;
51
52 bool AdvanceModelTime() override;
53 bool AdvanceModelTime(double time, const TimeUnit& unit) override;
54 bool ProcessAction(const SEAction& action) override;
55 const SEActionManager& GetActionManager() const override;
56
57 const SESubstanceManager& GetSubstanceManager() const override;
58 void SetAdvanceHandler(SEAdvanceHandler* handler) override;
59 const SEPatient& GetPatient() const override;
60 const SEPatient& GetInitialPatient() const override;
61 bool GetPatientAssessment(SEPatientAssessment& assessment) const override;
62
63 const SEEnvironment* GetEnvironment() const override;
64 const SEBloodChemistrySystem* GetBloodChemistrySystem() const override;
65 const SECardiovascularSystem* GetCardiovascularSystem() const override;
66 const SEDrugSystem* GetDrugSystem() const override;
67 const SEEndocrineSystem* GetEndocrineSystem() const override;
68 const SEEnergySystem* GetEnergySystem() const override;
69 const SEGastrointestinalSystem* GetGastrointestinalSystem() const override;
70 const SEHepaticSystem* GetHepaticSystem() const override;
71 const SENervousSystem* GetNervousSystem() const override;
72 const SERenalSystem* GetRenalSystem() const override;
73 const SERespiratorySystem* GetRespiratorySystem() const override;
74 const SETissueSystem* GetTissueSystem() const override;
75 const SEAnesthesiaMachine* GetAnesthesiaMachine() const override;
76 const SEBagValveMask* GetBagValveMask() const override;
77 const SEExtracorporealMembraneOxygenationDevice* GetExtracorporealMembraneOxygenationDevice() const override;
78 const SEElectroCardioGram* GetElectroCardioGram() const override;
79 const SEInhaler* GetInhaler() const override;
80 const SEMechanicalVentilator* GetMechanicalVentilator() const override;
81
82 const SECompartmentManager& GetCompartments() const override;
83 SEBlackBoxManager& GetBlackBoxes() const override;
84
85 const SEEventManager& GetEventManager() const override;
86
87 Controller& GetController() const;
88 protected:
89 virtual void AllocateController() const = 0;
90 mutable Controller* m_Controller=nullptr;
91 };
92END_NAMESPACE
Definition: Logger.h:71
Definition: PhysiologyEngine.h:70
Definition: SEAction.h:14
Definition: SEActionManager.h:12
Definition: SEAdvanceHandler.h:8
Definition: SEAnesthesiaMachine.h:24
Definition: SEBagValveMask.h:14
Definition: SEBlackBoxManager.h:11
Definition: SEBloodChemistrySystem.h:10
Definition: SECardiovascularSystem.h:27
Definition: SECompartmentManager.h:25
Definition: SEConditionManager.h:26
Definition: SEDataRequestManager.h:10
Definition: SEDataRequestTracker.h:75
Definition: SEDrugSystem.h:9
Definition: SEElectroCardioGram.h:9
Definition: SEEndocrineSystem.h:8
Definition: SEEnergySystem.h:8
Definition: SEEngineConfiguration.h:8
Definition: SEEnvironment.h:13
Definition: SEEventManager.h:131
Definition: SEExtracorporealMembraneOxygenationDevice.h:10
Definition: SEGastrointestinalSystem.h:9
Definition: SEHepaticSystem.h:8
Definition: SEInhaler.h:12
Definition: SEMechanicalVentilator.h:10
Definition: SENervousSystem.h:9
Data formed at a level of a clinicians report. This is high level data, such as a mean or generalized...
Definition: SEPatientAssessment.h:22
Definition: SEPatientConfiguration.h:11
Definition: SEPatient.h:13
Definition: SERenalSystem.h:8
Definition: SERespiratorySystem.h:44
Definition: SEScalarTime.h:28
Definition: SESubstanceManager.h:10
Definition: SETissueSystem.h:8
Definition: SEScalarTime.h:8
Definition: Logger.h:14

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.