}         // end of HealthCareActionEnd

        #endregion

        #region HealthCareActionStart

        /// <summary>
        /// Method that visualized the start of a health care action, patient is added to
        /// the drawing system and all entities (staff and patient) are set to
        /// the corresponding positions in the treatment facility (if it is not a
        /// multiple patient treatment facility). Further, human resources are
        /// removed from the parent visualization engine to avoid double drawing.
        /// </summary>
        /// <param name="activity">Instance of health care action</param>
        /// <param name="time">Time the activity is started</param>
        public void HealthCareActionStart(Activity activity, DateTime time)
        {
            ActivityHealthCareAction <T> action = (ActivityHealthCareAction <T>)activity;

            if (action.ResourceSet.TreatmentFacility is EntityMultiplePatientTreatmentFacility)
            {
                return;
            }

            DrawPatient drawPatient = (DrawPatient)DrawingObjectPerEntity(action.Patient);

            DrawBaseTreatmentFacility drawTreatFac = (DrawBaseTreatmentFacility)ParentDepartmentVisualization.DrawingObjectPerEntity(action.ResourceSet.TreatmentFacility);

            drawPatient.SetPositionType(drawTreatFac.PatientPositionType);

            drawPatient.SetPosition(drawTreatFac.PatientInRoomPosition);

            int staffCount = 0;

            if (action.ResourceSet.MainDoctor != null)
            {
                ParentDepartmentVisualization.RemoveDrawingObjectPerEntity(action.ResourceSet.MainDoctor);
                DrawDoctor drawMainDoctor = (DrawDoctor)DrawingObjectPerEntity(action.ResourceSet.MainDoctor);
                drawMainDoctor.SetPosition(drawTreatFac.GetStaffPosition(staffCount));
                staffCount++;
            } // end if

            if (action.ResourceSet.MainNurse != null)
            {
                ParentDepartmentVisualization.RemoveDrawingObjectPerEntity(action.ResourceSet.MainNurse);
                DrawNurse drawMainNurse = (DrawNurse)DrawingObjectPerEntity(action.ResourceSet.MainNurse);
                drawMainNurse.SetPosition(drawTreatFac.GetStaffPosition(staffCount));
                staffCount++;
            } // end if

            if (action.ResourceSet.AssistingDoctors != null)
            {
                foreach (EntityDoctor ent in action.ResourceSet.AssistingDoctors)
                {
                    ParentDepartmentVisualization.RemoveDrawingObjectPerEntity(ent);
                    DrawDoctor drawAssistDoctor = (DrawDoctor)DrawingObjectPerEntity(ent);
                    drawAssistDoctor.SetPosition(drawTreatFac.GetStaffPosition(staffCount));
                    staffCount++;
                } // end foreach
            }     // end if

            if (action.ResourceSet.AssistingNurses != null)
            {
                foreach (EntityNurse ent in action.ResourceSet.AssistingNurses)
                {
                    ParentDepartmentVisualization.RemoveDrawingObjectPerEntity(ent);
                    DrawNurse drawAssistNurse = (DrawNurse)DrawingObjectPerEntity(ent);
                    drawAssistNurse.SetPosition(drawTreatFac.GetStaffPosition(staffCount));
                    staffCount++;
                } // end foreach
            }     // end if
        }         // end of HealthCareActionEnd
        } // end of WaitInFacilityEnd

        #endregion

        #region WaitInFacilityStart

        /// <summary>
        /// Method that visualized the start of a wait in facility action, patient is added to
        /// the drawing system and set to the corresponding positions in the treatment facility
        /// (if it is not a multiple patient treatment facility).
        /// </summary>
        /// <param name="activity">Instance of health care action</param>
        /// <param name="time">Time the activity is started</param>
        public void WaitInFacilityStart(Activity activity, DateTime time)
        {
            ActivityWaitInFacility waitInFac = (ActivityWaitInFacility)activity;

            if (waitInFac.Facility is EntityMultiplePatientTreatmentFacility)
            {
                return;
            }

            DrawPatient drawPatient = (DrawPatient)DrawingObjectPerEntity(waitInFac.Patient);

            DrawTreatmentFacility drawTreatFac = (DrawTreatmentFacility)ParentDepartmentVisualization.DrawingObjectPerEntity(waitInFac.Facility);

            drawPatient.SetPositionType(drawTreatFac.PatientPositionType);

            drawPatient.SetPosition(drawTreatFac.PatientInRoomPosition);
        } // end of WaitInFacilityEnd