} // end of ControlUnit #endregion #region Initialize /// <summary> /// Initializes patient stream /// </summary> /// <param name="startTime">Start time of the simulation model</param> /// <param name="simEngine">SimEngine responsible for simulation execution</param> protected override void CustomInitialize(DateTime startTime, ISimulationEngine simEngine) { EntityPatient patient = InputData.GetNextPatient(); EventEmergencyPatientArrival firstPatient = new EventEmergencyPatientArrival(this, patient, InputData); simEngine.AddScheduledEvent(firstPatient, startTime + InputData.PatientArrivalTime(startTime)); } // end of Initialize
} // end of #endregion //-------------------------------------------------------------------------------------------------- // EventHandling Methods //-------------------------------------------------------------------------------------------------- #region PatientArrivingAtEmergency /// <summary> /// Collects data for patient arriving events, in this example the arriving time /// per patient is stored /// </summary> /// <param name="ev">Arriving event of patient</param> /// <param name="time">Time event was triggered</param> public void PatientArrivingAtEmergency(Event ev, DateTime time) { EventEmergencyPatientArrival arrivingEvent = ev as EventEmergencyPatientArrival; if (!arrivingEvent.Patient.DataEntries.ContainsKey("PatientArrivalAtEmergency")) { arrivingEvent.Patient.DataEntries.Add("PatientArrivalAtEmergency", time); } } // end PatientArrivingAtEmergency