} // end of Event #endregion //-------------------------------------------------------------------------------------------------- // State Change //-------------------------------------------------------------------------------------------------- #region Trigger /// <summary> /// Overriden state change of the event. The patient path is set and the first action is taken. /// </summary> /// <param name="time">Time the patient arrives</param> /// <param name="simEngine">SimEngine responsible for simulation execution</param> protected override void StateChange(DateTime time, ISimulationEngine simEngine) { Patient.SpecialFacilityPath = InputData.CreatePatientPath(OriginalRequest.SpecialFacilityAdmissionTypes, Patient, OriginalRequest); if (Patient.SpecialFacilityPath.TakeNextAction(simEngine, this, time, ParentControlUnit)) { ActivityWait waitPatient = new ActivityWait(ParentControlUnit, Patient, (((ControlUnitSpecialServiceModel)ParentControlUnit).WaitingAreaPatientForNextActionType(Patient.SpecialFacilityPath.GetCurrentActionType()))); SequentialEvents.Add(waitPatient.StartEvent); } // end if } // end of Trigger