} // 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