syntax = "proto3";
package pulse.engine.bind;
option java_package = "com.kitware.pulse.engine.bind";
option csharp_namespace = "pulse.engine.bind";
option optimize_for = SPEED;

import "pulse/cdm/bind/Enums.proto";
import "pulse/cdm/bind/Events.proto";
import "pulse/cdm/bind/Patient.proto";
import "pulse/cdm/bind/Properties.proto";
import "pulse/cdm/bind/Engine.proto";
import "pulse/cdm/bind/Substance.proto";
import "pulse/cdm/bind/Compartment.proto";
import "pulse/cdm/bind/Circuit.proto";
import "pulse/engine/bind/Enums.proto";
import "pulse/engine/bind/Configuration.proto";
import "pulse/engine/bind/Physiology.proto";
import "pulse/engine/bind/Environment.proto";
import "pulse/engine/bind/Equipment.proto";

message StateData
{
  string                                        Version              = 1;
  eAirwayMode                                   AirwayMode           = 2;
  pulse.cdm.bind.eSwitch                        Intubation           = 3;
  pulse.cdm.bind.ScalarTimeData                 SimulationTime       = 4;
  pulse.cdm.bind.PatientData                    CurrentPatient       = 5;
  pulse.cdm.bind.PatientData                    InitialPatient       = 6;
  pulse.cdm.bind.ConditionListData              Conditions           = 7;
  pulse.cdm.bind.ActionListData                 ActiveActions        = 8;
  pulse.cdm.bind.ActiveEventListData            ActiveEvents         = 9;
  BloodChemistryData                            BloodChemistry       = 10;
  CardiovascularData                            Cardiovascular       = 11;
  DrugData                                      Drug                 = 12;
  EndocrineData                                 Endocrine            = 13;
  EnergyData                                    Energy               = 14;
  GastrointestinalData                          Gastrointestinal     = 15;
  HepaticData                                   Hepatic              = 16;
  NervousData                                   Nervous              = 17;
  RenalData                                     Renal                = 18;
  RespiratoryData                               Respiratory          = 19;
  TissueData                                    Tissue               = 20;
  EnvironmentData                               Environment          = 21;
  AnesthesiaMachineData                         AnesthesiaMachine    = 22;
  BagValveMaskData                              BagValveMask         = 23;
  ECMOData                                      ECMO                 = 24;
  ElectroCardioGramData                         ElectroCardioGram    = 25;
  InhalerData                                   Inhaler              = 26;
  MechanicalVentilatorData                      MechanicalVentilator = 27;
  pulse.cdm.bind.CompartmentManagerData         CompartmentManager   = 28;
  pulse.cdm.bind.CircuitManagerData             CircuitManager       = 29;
  repeated string                               ActiveSubstance      = 30;
  repeated string                               ActiveCompound       = 31;
  repeated pulse.cdm.bind.SubstanceData         Substance            = 32;
  repeated pulse.cdm.bind.SubstanceCompoundData Compound             = 33;
  ConfigurationData                             Configuration        = 34;
  pulse.cdm.bind.DataRequestManagerData         DataRequestManager   = 35;
}
