@@ -331,6 +331,8 @@ void SEPatientActionCollection::Invalidate()
331331 RemoveConsumeNutrients ();
332332 RemoveLeftChestOcclusiveDressing ();
333333 RemoveRightChestOcclusiveDressing ();
334+ RemoveLeftChestTube ();
335+ RemoveRightChestTube ();
334336 RemoveExercise ();
335337 RemoveEbola ();
336338 RemoveInfection ();
@@ -350,158 +352,14 @@ void SEPatientActionCollection::Invalidate()
350352 RemoveUrinate ();
351353 RemoveOverride ();
352354
353- DELETE_MAP_SECOND (m_Escharotomies);
354- DELETE_MAP_SECOND (m_Hemorrhages);
355- DELETE_MAP_SECOND (m_PainStimuli);
356- DELETE_MAP_SECOND (m_SubstanceBolus);
357- DELETE_MAP_SECOND (m_SubstanceInfusions);
358- DELETE_MAP_SECOND (m_SubstanceOralDoses);
359- DELETE_MAP_SECOND (m_SubstanceCompoundInfusions);
360- DELETE_MAP_SECOND (m_Tourniquets);
361- }
362- // -------------------------------------------------------------------------------
363- void SEPatientActionCollection::Unload (std::vector<CDM::ActionData*>& to)
364- {
365- if (HasAcuteRespiratoryDistress ()) {
366- to.push_back (GetAcuteRespiratoryDistress ()->Unload ());
367- }
368- if (HasAcuteStress ()) {
369- to.push_back (GetAcuteStress ()->Unload ());
370- }
371- if (HasExampleAction ()) {
372- to.push_back (GetExampleAction ()->Unload ());
373- }
374- if (HasAirwayObstruction ()) {
375- to.push_back (GetAirwayObstruction ()->Unload ());
376- }
377- if (HasApnea ()) {
378- to.push_back (GetApnea ()->Unload ());
379- }
380- if (HasAsthmaAttack ()) {
381- to.push_back (GetAsthmaAttack ()->Unload ());
382- }
383- if (HasBrainInjury ()) {
384- to.push_back (GetBrainInjury ()->Unload ());
385- }
386- if (HasBronchoconstriction ()) {
387- to.push_back (GetBronchoconstriction ()->Unload ());
388- }
389- if (HasBurnWound ()) {
390- to.push_back (GetBurnWound ()->Unload ());
391- }
392- if (HasCardiacArrest ()) {
393- to.push_back (GetCardiacArrest ()->Unload ());
394- }
395- if (HasChestCompressionForce ()) {
396- to.push_back (GetChestCompressionForce ()->Unload ());
397- }
398- if (HasChestCompressionForceScale ()) {
399- to.push_back (GetChestCompressionForceScale ()->Unload ());
400- }
401- if (HasLeftChestOcclusiveDressing ()) {
402- to.push_back (GetLeftChestOcclusiveDressing ()->Unload ());
403- }
404- if (HasRightChestOcclusiveDressing ()) {
405- to.push_back (GetRightChestOcclusiveDressing ()->Unload ());
406- }
407- if (HasLeftChestTube ()) {
408- to.push_back (GetLeftChestTube ()->Unload ());
409- }
410- if (HasRightChestTube ()) {
411- to.push_back (GetRightChestTube ()->Unload ());
412- }
413- if (HasConsciousRespiration ()) {
414- to.push_back (GetConsciousRespiration ()->Unload ());
415- }
416- if (HasConsumeNutrients ()) {
417- to.push_back (GetConsumeNutrients ()->Unload ());
418- }
419- if (HasEscharotomy ()) {
420- for (auto itr : GetEscharotomies ()) {
421- to.push_back (itr.second ->Unload ());
422- }
423- }
424- if (HasEbola ()) {
425- to.push_back (GetEbola ()->Unload ());
426- }
427- if (HasExercise ()) {
428- to.push_back (GetExercise ()->Unload ());
429- }
430- if (HasHemorrhage ()) {
431- for (auto itr : GetHemorrhages ()) {
432- to.push_back (itr.second ->Unload ());
433- }
434- }
435- if (HasInfection ()) {
436- to.push_back (GetInfection ()->Unload ());
437- }
438- if (HasIntubation ()) {
439- to.push_back (GetIntubation ()->Unload ());
440- }
441- if (HasMechanicalVentilation ()) {
442- to.push_back (GetMechanicalVentilation ()->Unload ());
443- }
444- if (HasNasalCannula ()) {
445- to.push_back (GetNasalCannula ()->Unload ());
446- }
447- if (HasLeftNeedleDecompression ()) {
448- to.push_back (GetLeftNeedleDecompression ()->Unload ());
449- }
450- if (HasRightNeedleDecompression ()) {
451- to.push_back (GetRightNeedleDecompression ()->Unload ());
452- }
453- if (HasPainStimulus ()) {
454- for (auto itr : GetPainStimuli ()) {
455- to.push_back (itr.second ->Unload ());
456- }
457- }
458- if (HasPericardialEffusion ()) {
459- to.push_back (GetPericardialEffusion ()->Unload ());
460- }
461- if (HasPulmonaryShunt ()) {
462- to.push_back (GetPulmonaryShunt ()->Unload ());
463- }
464- if (HasRadiationAbsorbedDose ()) {
465- to.push_back (GetRadiationAbsorbedDose ()->Unload ());
466- }
467- if (HasSleepState ()) {
468- to.push_back (GetSleepState ()->Unload ());
469- }
470- if (HasLeftClosedTensionPneumothorax ()) {
471- to.push_back (GetLeftClosedTensionPneumothorax ()->Unload ());
472- }
473- if (HasLeftOpenTensionPneumothorax ()) {
474- to.push_back (GetLeftOpenTensionPneumothorax ()->Unload ());
475- }
476- if (HasRightClosedTensionPneumothorax ()) {
477- to.push_back (GetRightClosedTensionPneumothorax ()->Unload ());
478- }
479- if (HasRightOpenTensionPneumothorax ()) {
480- to.push_back (GetRightOpenTensionPneumothorax ()->Unload ());
481- }
482- for (auto itr : GetSubstanceBoluses ()) {
483- to.push_back (itr.second ->Unload ());
484- }
485- for (auto itr : GetSubstanceInfusions ()) {
486- to.push_back (itr.second ->Unload ());
487- }
488- for (auto itr : GetSubstanceOralDoses ()) {
489- to.push_back (itr.second ->Unload ());
490- }
491- for (auto itr : GetSubstanceCompoundInfusions ()) {
492- to.push_back (itr.second ->Unload ());
493- }
494- if (HasTourniquet ()) {
495- for (auto itr : GetTourniquets ()) {
496- to.push_back (itr.second ->Unload ());
497- }
498- }
499- if (HasUrinate ()) {
500- to.push_back (GetUrinate ()->Unload ());
501- }
502- if (HasOverride ()) {
503- to.push_back ((GetOverride ()->Unload ()));
504- }
355+ DELETE_MAP_OF_POINTERS (m_Escharotomies);
356+ DELETE_MAP_OF_POINTERS (m_Hemorrhages);
357+ DELETE_MAP_OF_POINTERS (m_PainStimuli);
358+ DELETE_MAP_OF_POINTERS (m_SubstanceBolus);
359+ DELETE_MAP_OF_POINTERS (m_SubstanceInfusions);
360+ DELETE_MAP_OF_POINTERS (m_SubstanceOralDoses);
361+ DELETE_MAP_OF_POINTERS (m_SubstanceCompoundInfusions);
362+ DELETE_MAP_OF_POINTERS (m_Tourniquets);
505363}
506364// -------------------------------------------------------------------------------
507365bool SEPatientActionCollection::ProcessAction (const SEPatientAction& action, const PhysiologyEngine& engine)
@@ -725,23 +583,23 @@ bool SEPatientActionCollection::ProcessAction(const SEPatientAction& action, con
725583 }
726584 }
727585
728- auto chestTube = dynamic_cast <const SEChestTube*>(&action);
729- if (chestTube != nullptr ) {
730- if (chestTube-> Side () == SESide::Left) {
586+ auto chestTu = dynamic_cast <const SEChestTube*>(&action);
587+ if (chestTu != nullptr ) {
588+ if (chestTu-> GetSide () == SESide::Left) {
731589 if (m_LeftChestTube == nullptr ) {
732590 m_LeftChestTube = new SEChestTube ();
733591 }
734- m_LeftChestTube-> Load (*chestTube);
592+ CDM_PATIENT_ACTION_COPY (ChestTube, *chestTu, *m_LeftChestTube)
735593 if (!m_LeftChestTube->IsActive ()) {
736594 RemoveLeftChestTube ();
737595 return true ;
738596 }
739597 return IsValid (*m_LeftChestTube);
740- } else if (chestTube-> Side () == SESide::Right) {
598+ } else if (chestTu-> GetSide () == SESide::Right) {
741599 if (m_RightChestTube == nullptr ) {
742600 m_RightChestTube = new SEChestTube ();
743601 }
744- m_RightChestTube-> Load (*chestTube);
602+ CDM_PATIENT_ACTION_COPY (ChestTube, *chestTu, *m_RightChestTube)
745603 if (!m_RightChestTube->IsActive ()) {
746604 RemoveRightChestTube ();
747605 return true ;
0 commit comments