@@ -70,6 +70,7 @@ SEPatient::SEPatient(Logger* logger) : Loggable(logger)
7070 m_InspiratoryCapacity = nullptr ;
7171 m_InspiratoryReserveVolume = nullptr ;
7272 m_LeanBodyMass = nullptr ;
73+ m_MuscleMass = nullptr ;
7374 m_MeanArterialPressureBaseline = nullptr ;
7475 m_ResidualVolume = nullptr ;
7576 m_RespirationRateBaseline = nullptr ;
@@ -128,6 +129,7 @@ void SEPatient::Clear()
128129 SAFE_DELETE (m_InspiratoryCapacity);
129130 SAFE_DELETE (m_InspiratoryReserveVolume);
130131 SAFE_DELETE (m_LeanBodyMass);
132+ SAFE_DELETE (m_MuscleMass);
131133 SAFE_DELETE (m_MeanArterialPressureBaseline);
132134 SAFE_DELETE (m_ResidualVolume);
133135 SAFE_DELETE (m_RespirationRateBaseline);
@@ -176,6 +178,8 @@ const SEScalar* SEPatient::GetScalar(const std::string& name)
176178 return &GetInspiratoryReserveVolume ();
177179 if (name.compare (" LeanBodyMass" ) == 0 )
178180 return &GetLeanBodyMass ();
181+ if (name.compare (" MuscleMass" ) == 0 )
182+ return &GetMuscleMass ();
179183 if (name.compare (" MeanArterialPressureBaseline" ) == 0 )
180184 return &GetMeanArterialPressureBaseline ();
181185 if (name.compare (" ResidualVolume" ) == 0 )
@@ -240,6 +244,8 @@ bool SEPatient::Load(const CDM::PatientData& in)
240244 GetInspiratoryReserveVolume ().Load (in.InspiratoryReserveVolume ().get ());
241245 if (in.LeanBodyMass ().present ())
242246 GetLeanBodyMass ().Load (in.LeanBodyMass ().get ());
247+ if (in.MuscleMass ().present ())
248+ GetMuscleMass ().Load (in.MuscleMass ().get ());
243249 if (in.MeanArterialPressureBaseline ().present ())
244250 GetMeanArterialPressureBaseline ().Load (in.MeanArterialPressureBaseline ().get ());
245251 if (in.ResidualVolume ().present ())
@@ -318,6 +324,8 @@ void SEPatient::Unload(CDM::PatientData& data) const
318324 data.InspiratoryReserveVolume (std::unique_ptr<CDM::ScalarVolumeData>(m_InspiratoryReserveVolume->Unload ()));
319325 if (m_LeanBodyMass != nullptr )
320326 data.LeanBodyMass (std::unique_ptr<CDM::ScalarMassData>(m_LeanBodyMass->Unload ()));
327+ if (m_MuscleMass != nullptr )
328+ data.MuscleMass (std::unique_ptr<CDM::ScalarMassData>(m_MuscleMass->Unload ()));
321329 if (m_MeanArterialPressureBaseline!=nullptr )
322330 data.MeanArterialPressureBaseline (std::unique_ptr<CDM::ScalarPressureData>(m_MeanArterialPressureBaseline->Unload ()));
323331 if (m_ResidualVolume != nullptr )
@@ -468,6 +476,9 @@ void SEPatient::SetEvent(CDM::enumPatientEvent::value type, bool active, const S
468476 case CDM::enumPatientEvent::ModerateAcuteRespiratoryDistress:
469477 m_ss << " The patient has Moderate Acute Respiratory Distress" ;
470478 break ;
479+ case CDM::enumPatientEvent::MuscleCatabolism:
480+ m_ss << " Patient has begun muscle catabolism" ;
481+ break ;
471482 case CDM::enumPatientEvent::MuscleGlycogenDepleted:
472483 m_ss << " Patient's muscle glycogen is depleted" ;
473484 break ;
@@ -496,7 +507,7 @@ void SEPatient::SetEvent(CDM::enumPatientEvent::value type, bool active, const S
496507 m_ss << " Patient has Tachypnea" ;
497508 break ;
498509 case CDM::enumPatientEvent::Fatigue:
499- m_ss << " Patient has fatigue" ;
510+ m_ss << " Patient has fatigue" ;
500511 break ;
501512 case CDM::enumPatientEvent::StartOfCardiacCycle:
502513 case CDM::enumPatientEvent::StartOfExhale:
@@ -542,7 +553,7 @@ void SEPatient::SetEvent(CDM::enumPatientEvent::value type, bool active, const S
542553 m_ss << " Patient no longer has Diuresis" ;
543554 break ;
544555 case CDM::enumPatientEvent::Fasciculation:
545- m_ss << " Patient no longer has fasciculations " ;
556+ m_ss << " Patient no longer has Fasciculation " ;
546557 break ;
547558 case CDM::enumPatientEvent::FunctionalIncontinence:
548559 m_ss << " Patient has an empty bladder" ;
@@ -635,7 +646,7 @@ void SEPatient::SetEvent(CDM::enumPatientEvent::value type, bool active, const S
635646 m_ss << " Patient no longer has Tachypnea" ;
636647 break ;
637648 case CDM::enumPatientEvent::Fatigue:
638- m_ss << " Patient is no longer fatigued" ;
649+ m_ss << " Patient is no longer fatigued" ;
639650 break ;
640651 case CDM::enumPatientEvent::StartOfCardiacCycle:
641652 case CDM::enumPatientEvent::StartOfExhale:
@@ -1005,6 +1016,23 @@ double SEPatient::GetLeanBodyMass(const MassUnit& unit) const
10051016 return m_LeanBodyMass->GetValue (unit);
10061017}
10071018
1019+ bool SEPatient::HasMuscleMass () const
1020+ {
1021+ return m_MuscleMass == nullptr ? false : m_MuscleMass->IsValid ();
1022+ }
1023+ SEScalarMass& SEPatient::GetMuscleMass ()
1024+ {
1025+ if (m_MuscleMass == nullptr )
1026+ m_MuscleMass = new SEScalarMass ();
1027+ return *m_MuscleMass;
1028+ }
1029+ double SEPatient::GetMuscleMass (const MassUnit& unit) const
1030+ {
1031+ if (m_MuscleMass == nullptr )
1032+ return SEScalar::dNaN ();
1033+ return m_MuscleMass->GetValue (unit);
1034+ }
1035+
10081036bool SEPatient::HasMeanArterialPressureBaseline () const
10091037{
10101038 return m_MeanArterialPressureBaseline==nullptr ?false :m_MeanArterialPressureBaseline->IsValid ();
0 commit comments