コード例 #1
0
        /// <summary>
        ///
        /// Almacen del Appoiment
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void asignarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (frmShiftAppointment frm = new frmShiftAppointment())
            {
                AppointmentBE app = new AppointmentBE();
                frm.Profesional         = profesional;
                frm.State               = Fwk.Bases.EntityUpdateEnum.NEW;
                app.Status              = (int)AppoimantsStatus_SP.Reservado;
                app.ResourceId          = profesional.IdProfesional;
                app.HealthInstitutionId = Controller.CurrentHealthInstitution.HealthInstitutionId;

                DateTime            date = Fwk.HelperFunctions.DateFunctions.GetStartDateTime(this.Date);
                List <TimespamView> wTimespamViewList = null;
                try
                {
                    wTimespamViewList = GetSelectedShifts();
                }
                catch (Exception ex)
                {
                    this.ExceptionViewer.Show(ex);
                    return;
                }
                app.Start    = date.Add(wTimespamViewList[0].Time);
                app.Duration = wTimespamViewList[0].Duration;
                if (wTimespamViewList.Count > 1)
                {
                    app.End = date.Add(wTimespamViewList[wTimespamViewList.Count - 1].Time);
                }
                else
                {
                    app.End = date.Add(wTimespamViewList[0].Time).AddMinutes(wTimespamViewList[0].Duration);
                }

                frm.currentApt = app;
                frm.Refresh();
                if (frm.ShowDialog() == DialogResult.OK)
                {
                    ///todo: analizar como crear grupos de turnos
                    foreach (TimespamView timeView in wTimespamViewList)
                    {
                        timeView.Appointment = app;
                    }
                    try
                    {
                        Controller.CreateAppointments(app);
                        if (OnCreateAppoimentsEvent != null)
                        {
                            OnCreateAppoimentsEvent(app, new EventArgs());
                        }
                    }

                    catch (Exception ex)
                    {
                        this.ExceptionViewer.Show(ex);
                    }
                    gridControl2.RefreshDataSource();
                    gridView2.RefreshData();
                }
            }
        }
コード例 #2
0
        public frmPatientAtencion(AppointmentBE pAppointmentBE)
        {
            _Appointment = pAppointmentBE;
            InitializeComponent();

           
        }
コード例 #3
0
        /// <summary>
        /// Por el momento representa Turnos otorgados a un profesional
        /// </summary>
        /// <param name="startDate">Fecha desde</param>
        /// <param name="status">Estado que del appointment se desea cunsultar</param>
        /// <param name="resourceId">Id a quien pertenezca el appointment</param>
        /// <returns>AppointmentList, Appointment con ProfesionalAppointment</returns>
        public static AppointmentList Retrive_ProfessionalAppointment(DateTime?startDate, int?status, int?resourseId = null, Guid?healthInstitutionId = null)
        {
            AppointmentList list = new AppointmentList();

            if (startDate.HasValue)
            {
                startDate = Fwk.HelperFunctions.DateFunctions.GetStartDateTime(startDate.Value);
            }

            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                var appointment_db = dc.Appointments.Where <Appointment>(p =>
                                                                         (!startDate.HasValue || p.Start.Value >= startDate.Value) &&
                                                                         (!status.HasValue || status.Value.Equals(p.Status.Value)) &&
                                                                         (!resourseId.HasValue || p.ResourceId.Value.Equals(resourseId.Value)) &&
                                                                         (!healthInstitutionId.HasValue || p.HealthInstitutionId.Value.Equals(healthInstitutionId.Value))
                                                                         );//.OrderByDescending(sort=>sort.CreationDate);

                foreach (Appointment r in appointment_db)
                {
                    AppointmentBE wAppoiment = (AppointmentBE)r;
                    wAppoiment.ProfesionalAppointment = (ProfesionalAppointmentBE)r.ProfesionalAppointment;
                    list.Add(wAppoiment);
                }
            }
            return(list);
        }
コード例 #4
0
        public static void UpdateAppoimentStatus(AppointmentBE appointment)
        {
            AppointmentList wAppointmentList = new AppointmentList();

            wAppointmentList.Add(appointment);
            UpdateAppoiment(wAppointmentList);
        }
コード例 #5
0
        public static void CreateAppointments(AppointmentBE app)
        {
            AppointmentList l = new BE.AppointmentList();

            l.Add(app);
            CreateAppointments(l);
        }
コード例 #6
0
 private void uc_AllShiftGrid1_ChangeStatusEvent(object sender, EventArgs e)
 {
     if (((AppoimantsStatus_SP)sender) == AppoimantsStatus_SP.EnAtencion)
     {
         this.Appointment = this.uc_TimeLine1.SelectedAppointment;
         GetPatientRes res = ServiceCalls.GetPatient(this.Appointment.ProfesionalAppointment.PatientId);
         this.Patient      = res.BusinessData.Patient;
         this.DialogResult = System.Windows.Forms.DialogResult.OK;
         this.Close();
     }
 }
コード例 #7
0
        private void uc_AllShiftGrid1_ChangeStatusEvent(object sender, EventArgs e)
        {
            if (((AppoimantsStatus_SP)sender) == AppoimantsStatus_SP.EnAtencion)
            {
                this.Appointment = this.uc_TimeLine1.SelectedAppointment;
                GetPatientRes res = ServiceCalls.GetPatient(this.Appointment.ProfesionalAppointment.PatientId);
                this.Patient = res.BusinessData.Patient;
                this.DialogResult = System.Windows.Forms.DialogResult.OK;
                this.Close();
            }

        }
コード例 #8
0
        private void m_sobreturnoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (frmShiftAppointment frm = new frmShiftAppointment())
            {
                AppoimantsStatus_SP_type status = (AppoimantsStatus_SP_type)m_sobreturnoToolStripMenuItem.Tag;

                AppointmentBE app = SelectedTimespamView.Appointment.Clone <AppointmentBE>();
                app.Subject       = string.Concat(Enum.GetName(typeof(AppoimantsStatus_SP_type), status), " a las : ", SelectedTimespamView.Appointment.TimeEnd);
                app.Status        = (int)AppoimantsStatus_SP.Reservado;
                app.IsExceptional = true;

                frm.Profesional = profesional;
                frm.State       = Fwk.Bases.EntityUpdateEnum.NEW;

                app.ResourceId          = profesional.IdProfesional;
                app.HealthInstitutionId = Controller.CurrentHealthInstitution.HealthInstitutionId;
                app.CreationDate        = System.DateTime.Now;
                //DateTime date = Fwk.HelperFunctions.DateFunctions.GetStartDateTime(this.Date);
                //List<TimespamView> wTimespamViewList = null;

                //app.Start = date.Add(wTimespamViewList[0].Time);
                //app.Duration = wTimespamViewList[0].Duration;
                //if (wTimespamViewList.Count > 1)
                //    app.End = date.Add(wTimespamViewList[wTimespamViewList.Count - 1].Time);
                //else
                //    app.End = date.Add(wTimespamViewList[0].Time).AddMinutes(wTimespamViewList[0].Duration);

                frm.currentApt = app;
                frm.Refresh();
                if (frm.ShowDialog() == DialogResult.OK)
                {
                    try
                    {
                        Controller.CreateAppointments(app);
                        if (OnCreateAppoimentsEvent != null)
                        {
                            OnCreateAppoimentsEvent(app, new EventArgs());
                        }
                    }

                    catch (Exception ex)
                    {
                        this.ExceptionViewer.Show(ex);
                    }
                    //gridControl2.RefreshDataSource();
                    //gridView2.RefreshData();
                }
            }
            Refresh();
            //UpdateStatus((AppoimantsStatus_SP)m_sobreturnoToolStripMenuItem.Tag);
        }
コード例 #9
0
        /// <summary>
        /// Retorna wAppointmentBE por appointmentId
        /// </summary>
        /// <param name="appointmentId">appointmentId</param>
        /// <returns></returns>
        public static AppointmentBE Get_Appointment_By_Id(int appointmentId)
        {
            AppointmentBE wAppointmentBE = null;

            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                Appointment appointment_db = dc.Appointments.Where <Appointment>(p => p.AppointmentId.Equals(appointmentId)).FirstOrDefault <Appointment>();
                if (appointment_db != null)
                {
                    wAppointmentBE = new AppointmentBE(appointment_db);
                }
            }
            return(wAppointmentBE);
        }
コード例 #10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="resourceId"></param>
        /// <param name="startDate"></param>
        /// <param name="Status"></param>
        /// <param name="healthInstId">Opcional </param>
        /// <returns></returns>
        public static AppointmentList Retrive_Appointment_By_Params_1(int resourceId, DateTime?startDate, int?Status, Guid?healthInstId)
        {
            AppointmentList list = new AppointmentList();

            //TODO Implmetar startDate
            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                var appointment_db = dc.Appointments.Where <Appointment>(p => p.ResourceId.Value.Equals(resourceId) && p.Start >= startDate &&
                                                                         (!healthInstId.HasValue || p.HealthInstitutionId.Equals(healthInstId.Value))
                                                                         );

                foreach (Appointment r in appointment_db)
                {
                    AppointmentBE wResourceScheduling = (AppointmentBE)r;
                    list.Add(wResourceScheduling);
                }
            }
            return(list);
        }
コード例 #11
0
        /// <summary>
        /// Busca turnos de una fecha detrerminada y recurso determinado.
        /// Opcional: Status
        /// </summary>
        /// <param name="resourceId"></param>
        /// <param name="date"></param>
        /// <param name="Status"></param>
        /// <returns></returns>
        public static AppointmentList Retrive_Appointment_By_Params_2(int resourceId, DateTime date, int?Status, Guid?healthInstitutionId)
        {
            AppointmentList list   = new AppointmentList();
            DateTime        dEnd   = Fwk.HelperFunctions.DateFunctions.GetEndDateTime(date);
            DateTime        dStart = Fwk.HelperFunctions.DateFunctions.GetStartDateTime(date);

            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                // dStaqrt <= FECHA_BD <= dEnd
                var appointment_db = dc.Appointments.Where <Appointment>(p =>
                                                                         p.ResourceId.Value.Equals(resourceId) && (dStart <= p.Start && p.Start <= dEnd) &&
                                                                         (healthInstitutionId.HasValue == false || p.HealthInstitutionId.Value.Equals(healthInstitutionId.Value)));

                //var x = from p in dc.Appointments from pa in dc.ProfesionalAppointments
                foreach (Appointment r in appointment_db)
                {
                    AppointmentBE wAppointmentBE = (AppointmentBE)r;
                    wAppointmentBE.ProfesionalAppointment = (ProfesionalAppointmentBE)r.ProfesionalAppointment;
                    list.Add(wAppointmentBE);
                }
            }
            return(list);
        }
コード例 #12
0
        private void gridView2_MouseDown(object sender, MouseEventArgs e)
        {


            _HitInfo = gridView2.CalcHitInfo(new Point(e.X, e.Y));
            SelectedAppointment = ((AppointmentBE)gridView2.GetRow(_HitInfo.RowHandle));
            if (SelectedAppointment == null) return;
            if (e.Button != System.Windows.Forms.MouseButtons.Right) return;

            if (SelectedAppointment == null)
            {
                m_atenderToolStripMenuItem.Enabled = false;
                m_cerrarTurnoToolStripMenuItem.Enabled = false;
                m_SetCanceled.Enabled = false;
                return;
            }

            if (gridView2.SelectedRowsCount > 1)
            {
                m_atenderToolStripMenuItem.Enabled = false;
                m_SetCanceled.Enabled = false;
                m_cerrarTurnoToolStripMenuItem.Enabled = false;
            }
            else
            {
                if (SelectedAppointment.Status == (int)AppoimantsStatus_SP.Expirado)
                {
                    m_atenderToolStripMenuItem.Enabled = false;
                    m_enEsperaToolStripMenuItem.Enabled = false;
                    m_SetCanceled.Enabled = false;
                    m_cerrarTurnoToolStripMenuItem.Enabled = false;
                    return;
                }
                if (SelectedAppointment.Status == (int)AppoimantsStatus_SP.Reservado)
                {
                    m_atenderToolStripMenuItem.Enabled = true;
                    m_enEsperaToolStripMenuItem.Enabled = true;
                    m_SetCanceled.Enabled = true;
                    m_cerrarTurnoToolStripMenuItem.Enabled = false;
                    return;
                    
                }
                if (SelectedAppointment.Status == (int)AppoimantsStatus_SP.EnAtencion)
                {
                    m_atenderToolStripMenuItem.Enabled = false;
                    m_enEsperaToolStripMenuItem.Enabled = false;
                    m_SetCanceled.Enabled = false;
                    m_cerrarTurnoToolStripMenuItem.Enabled = true;
                    
                    return;
                }
                if (SelectedAppointment.Status == (int)AppoimantsStatus_SP.Cerrado)
                {

                    m_atenderToolStripMenuItem.Enabled = false;
                    m_enEsperaToolStripMenuItem.Enabled = false;
                    m_SetCanceled.Enabled = false;
                    m_cerrarTurnoToolStripMenuItem.Enabled = false;
                    return;
                }
                if (SelectedAppointment.Status == (int)AppoimantsStatus_SP.Cancelado)
                {
                    m_atenderToolStripMenuItem.Enabled = true;
                    m_enEsperaToolStripMenuItem.Enabled = true;
                    m_SetCanceled.Enabled = false;
                    m_cerrarTurnoToolStripMenuItem.Enabled = false;
                    
                    return;
                }
            }
        }
コード例 #13
0
ファイル: Controller.cs プロジェクト: spzenk/sfdocsamples
 public static void CreateAppointments(AppointmentBE app)
 {
     AppointmentList l = new BE.AppointmentList();
     l.Add(app);
     CreateAppointments(l);
 }
コード例 #14
0
ファイル: Controller.cs プロジェクト: spzenk/sfdocsamples
 public static void UpdateAppoimentStatus(AppointmentBE appointment)
 {
     AppointmentList wAppointmentList = new AppointmentList();
     wAppointmentList.Add(appointment);
     UpdateAppoiment(wAppointmentList);
 }
コード例 #15
0
        private void gridView2_MouseDown(object sender, MouseEventArgs e)
        {
            _HitInfo            = gridView2.CalcHitInfo(new Point(e.X, e.Y));
            SelectedAppointment = ((AppointmentBE)gridView2.GetRow(_HitInfo.RowHandle));
            if (SelectedAppointment == null)
            {
                return;
            }
            if (e.Button != System.Windows.Forms.MouseButtons.Right)
            {
                return;
            }

            if (SelectedAppointment == null)
            {
                m_atenderToolStripMenuItem.Enabled     = false;
                m_cerrarTurnoToolStripMenuItem.Enabled = false;
                m_SetCanceled.Enabled = false;
                return;
            }

            if (gridView2.SelectedRowsCount > 1)
            {
                m_atenderToolStripMenuItem.Enabled = false;
                m_SetCanceled.Enabled = false;
                m_cerrarTurnoToolStripMenuItem.Enabled = false;
            }
            else
            {
                if (SelectedAppointment.Status == (int)AppoimantsStatus_SP.Expirado)
                {
                    m_atenderToolStripMenuItem.Enabled  = false;
                    m_enEsperaToolStripMenuItem.Enabled = false;
                    m_SetCanceled.Enabled = false;
                    m_cerrarTurnoToolStripMenuItem.Enabled = false;
                    return;
                }
                if (SelectedAppointment.Status == (int)AppoimantsStatus_SP.Reservado)
                {
                    m_atenderToolStripMenuItem.Enabled  = true;
                    m_enEsperaToolStripMenuItem.Enabled = true;
                    m_SetCanceled.Enabled = true;
                    m_cerrarTurnoToolStripMenuItem.Enabled = false;
                    return;
                }
                if (SelectedAppointment.Status == (int)AppoimantsStatus_SP.EnAtencion)
                {
                    m_atenderToolStripMenuItem.Enabled  = false;
                    m_enEsperaToolStripMenuItem.Enabled = false;
                    m_SetCanceled.Enabled = false;
                    m_cerrarTurnoToolStripMenuItem.Enabled = true;

                    return;
                }
                if (SelectedAppointment.Status == (int)AppoimantsStatus_SP.Cerrado)
                {
                    m_atenderToolStripMenuItem.Enabled  = false;
                    m_enEsperaToolStripMenuItem.Enabled = false;
                    m_SetCanceled.Enabled = false;
                    m_cerrarTurnoToolStripMenuItem.Enabled = false;
                    return;
                }
                if (SelectedAppointment.Status == (int)AppoimantsStatus_SP.Cancelado)
                {
                    m_atenderToolStripMenuItem.Enabled  = true;
                    m_enEsperaToolStripMenuItem.Enabled = true;
                    m_SetCanceled.Enabled = false;
                    m_cerrarTurnoToolStripMenuItem.Enabled = false;

                    return;
                }
            }
        }
コード例 #16
0
        /// <summary>
        /// 
        /// Almacen del Appoiment
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void asignarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (frmShiftAppointment frm = new frmShiftAppointment())
            {
                AppointmentBE app = new AppointmentBE();
                frm.Profesional = profesional;
                frm.State = Fwk.Bases.EntityUpdateEnum.NEW;
                app.Status = (int)AppoimantsStatus_SP.Reservado;
                app.ResourceId = profesional.IdProfesional;
                app.HealthInstitutionId = ServiceCalls.CurrentHealthInstitution.HealthInstitutionId;

                DateTime date = Fwk.HelperFunctions.DateFunctions.GetStartDateTime(this.Date);
                List<TimespamView> wTimespamViewList = null;
                try
                {
                    wTimespamViewList = GetSelectedShifts();
                }
                catch (Exception ex)
                {
                    this.ExceptionViewer.Show(ex);
                    return;
                }
                app.Start = date.Add(wTimespamViewList[0].Time);
                app.Duration = wTimespamViewList[0].Duration;
                if (wTimespamViewList.Count > 1)
                    app.End = date.Add(wTimespamViewList[wTimespamViewList.Count - 1].Time);
                else
                    app.End = date.Add(wTimespamViewList[0].Time).AddMinutes(wTimespamViewList[0].Duration);

                frm.currentApt = app;
                frm.Refresh();
                if (frm.ShowDialog() == DialogResult.OK)
                {
                    ///todo: analizar como crear grupos de turnos
                    foreach (TimespamView timeView in wTimespamViewList)
                    {
                        timeView.Appointment = app;
                    }
                    try
                    {
                        ServiceCalls.CreateAppointments(app);
                        if (OnCreateAppoimentsEvent != null)
                            OnCreateAppoimentsEvent(app, new EventArgs());
                    }

                    catch (Exception ex)
                    {
                        this.ExceptionViewer.Show(ex);
                    }
                    gridControl2.RefreshDataSource();
                    gridView2.RefreshData();
                }

            }
        }
コード例 #17
0
ファイル: Scheduling.cs プロジェクト: spzenk/sfdocsamples
        /// <summary>
        /// Retorna wAppointmentBE por appointmentId
        /// </summary>
        /// <param name="appointmentId">appointmentId</param>
        /// <returns></returns>
        public static AppointmentBE Get_Appointment_By_Id(int appointmentId)
        {
            AppointmentBE wAppointmentBE = null;

            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                Appointment appointment_db = dc.Appointments.Where<Appointment>(p => p.AppointmentId.Equals(appointmentId)).FirstOrDefault<Appointment>();
                if (appointment_db != null)
                    wAppointmentBE = new AppointmentBE(appointment_db);

            }
            return wAppointmentBE;
        }
コード例 #18
0
 public frmPatientAtencion(AppointmentBE pAppointmentBE)
 {
     _Appointment = pAppointmentBE;
     InitializeComponent();
 }