예제 #1
0
        public static Envio generarEnvio()
        {
            ModeloAsignacionMedico modeloAsignacionMedico = new ModeloAsignacionMedico();
            BjaContext             context = new BjaContext();

            var nuevoEnvio = new Envio();

            nuevoEnvio.Id       = IdentifierGenerator.NewId();
            nuevoEnvio.IdSesion = SessionManager.getSessionIdentifier();
            nuevoEnvio.FechaUltimaTransaccion          = DateTime.Now;
            nuevoEnvio.FechaRegistro                   = DateTime.Now;
            nuevoEnvio.EstadoRegistro                  = TipoEstadoRegistro.VigenteNuevoRegistro;
            nuevoEnvio.DescripcionEstadoSincronizacion = "";

            nuevoEnvio.IdEstablecimientoSalud = modeloAsignacionMedico.EstablecimientoDeSaludHabilitado(SessionManager.getCurrentSession().User.IdUserRelation).IdEstablecimientoSalud;
            nuevoEnvio.IdMedico           = SessionManager.getCurrentSession().User.IdUserRelation;
            nuevoEnvio.FechaEnvio         = DateTime.Now;
            nuevoEnvio.CodigoVerificacion = "";

            //buscar registros de madres nuevas, modificadas, borradas
            nuevoEnvio.Madres = (from m in context.Madres
                                 where m.EstadoSincronizacion == TipoEstadoSincronizacion.Pendiente
                                 select new Madre()
            {
                Id = m.Id
            }).ToList();

            /*
             * nuevoEnvio.Tutores = (from t in context.Tutores
             *                    where t.EstadoSincronizacion == TipoEstadoSincronizacion.Pendiente
             *                         select t).ToList();
             * nuevoEnvio.Menores = (from t in context.Menores
             *                    where t.EstadoSincronizacion == TipoEstadoSincronizacion.Pendiente
             *                          select t).ToList();
             * nuevoEnvio.CorresponsabilidadMadres = (from m in context.CorresponsabilidadesMadre
             *                           where m.EstadoSincronizacion == TipoEstadoSincronizacion.Pendiente
             *                           select m).ToList();
             * nuevoEnvio.ControlMadres = (from m in context.ControlesMadre
             *                           where m.EstadoSincronizacion == TipoEstadoSincronizacion.Pendiente
             *                         select m).ToList();
             * nuevoEnvio.CorresponsabilidadMenores = (from m in context.CorresponsabilidadesMenor
             *                                      where m.EstadoSincronizacion == TipoEstadoSincronizacion.Pendiente
             *                                      select m).ToList();
             * nuevoEnvio.ControlMenores = (from t in context.ControlesMenor
             *                           where t.EstadoSincronizacion == TipoEstadoSincronizacion.Pendiente
             *                          select t).ToList();
             */

            context.SaveChanges();

            return(nuevoEnvio);
        }
예제 #2
0
        public static Envio generarEnvio()
        {
            ModeloAsignacionMedico modeloAsignacionMedico = new ModeloAsignacionMedico();
            BjaContext context = new BjaContext();

            var nuevoEnvio = new Envio();

            nuevoEnvio.Id = IdentifierGenerator.NewId();
            nuevoEnvio.IdSesion = SessionManager.getSessionIdentifier();
            nuevoEnvio.FechaUltimaTransaccion = DateTime.Now;
            nuevoEnvio.FechaRegistro = DateTime.Now;
            nuevoEnvio.EstadoRegistro = TipoEstadoRegistro.VigenteNuevoRegistro;
            nuevoEnvio.DescripcionEstadoSincronizacion = "";

            nuevoEnvio.IdEstablecimientoSalud = modeloAsignacionMedico.EstablecimientoDeSaludHabilitado(SessionManager.getCurrentSession().User.IdUserRelation).IdEstablecimientoSalud;
            nuevoEnvio.IdMedico = SessionManager.getCurrentSession().User.IdUserRelation;
            nuevoEnvio.FechaEnvio = DateTime.Now;
            nuevoEnvio.CodigoVerificacion = "";

            //buscar registros de madres nuevas, modificadas, borradas
            nuevoEnvio.Madres = (from m in context.Madres
                                     where m.EstadoSincronizacion == TipoEstadoSincronizacion.Pendiente
                                     select new Madre(){ Id = m.Id }).ToList();

            /*
            nuevoEnvio.Tutores = (from t in context.Tutores
                                  where t.EstadoSincronizacion == TipoEstadoSincronizacion.Pendiente
                                       select t).ToList();
            nuevoEnvio.Menores = (from t in context.Menores
                                  where t.EstadoSincronizacion == TipoEstadoSincronizacion.Pendiente
                                        select t).ToList();
            nuevoEnvio.CorresponsabilidadMadres = (from m in context.CorresponsabilidadesMadre
                                         where m.EstadoSincronizacion == TipoEstadoSincronizacion.Pendiente
                                         select m).ToList();
            nuevoEnvio.ControlMadres = (from m in context.ControlesMadre
                                         where m.EstadoSincronizacion == TipoEstadoSincronizacion.Pendiente
                                       select m).ToList();
            nuevoEnvio.CorresponsabilidadMenores = (from m in context.CorresponsabilidadesMenor
                                                    where m.EstadoSincronizacion == TipoEstadoSincronizacion.Pendiente
                                                    select m).ToList();
            nuevoEnvio.ControlMenores = (from t in context.ControlesMenor
                                         where t.EstadoSincronizacion == TipoEstadoSincronizacion.Pendiente
                                        select t).ToList();
             */

            context.SaveChanges();

            return nuevoEnvio;
        }
예제 #3
0
        private void cmdAceptar_Click(object sender, RoutedEventArgs e)
        {
            if (!(Convert.ToInt64(this.cboNuevo.SelectedValue) >= 0))
                MessageBox.Show("Se requiere especificar establecimiento de salud.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            else
            {
                ModeloAsignacionMedico modeloasignacionmedico = new ModeloAsignacionMedico();
                AsignacionMedico asignacionmedico = new AsignacionMedico();

                modeloasignacionmedico.EstablecerEstablecimientoDeSaludComoVigenteParaUnMedico(SessionManager.getCurrentSession().User.IdUserRelation, Convert.ToInt64(this.cboNuevo.SelectedValue));
                Resultado = true;

                this.Close();
            }
        }
예제 #4
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            ModeloAsignacionMedico modeloasignacionmedico = new ModeloAsignacionMedico();

            this.cboActual.ItemsSource = modeloasignacionmedico.ListarEstablecimientoDeSaludHabilitado(SessionManager.getCurrentSession().User.IdUserRelation); //Sel 1 como médico
            this.cboActual.DisplayMemberPath = "Descripcion";
            this.cboActual.SelectedValuePath = "Id";
            if (this.cboActual.ItemsSource == null)
                this.cboActual.SelectedIndex = -1;
            else
                this.cboActual.SelectedIndex = 0;

            this.cboNuevo.ItemsSource = modeloasignacionmedico.ListarEstablecimientoDeSaludConfigurado(SessionManager.getCurrentSession().User.IdUserRelation); //Sel 1 como médico
            this.cboNuevo.DisplayMemberPath = "Descripcion";
            this.cboNuevo.SelectedValuePath = "Id";
            this.cboNuevo.SelectedIndex = -1;
        }
예제 #5
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            ModeloAsignacionMedico modeloasignacionmedico = new ModeloAsignacionMedico();
            AsignacionMedico asignacionmedico = null; //new AsignacionMedico();

            //Por ahora el médico tiene código 1
            //asignacionmedico = modeloasignacionmedico.EstablecimientoDeSaludHabilitado(1);

            if (asignacionmedico == null)
            {
                menFamilia.IsEnabled = false;
                menBusFam.IsEnabled = false;
                menNueFam.IsEnabled = false;
                menDatos.IsEnabled = false;
                menBusMad.IsEnabled = false;
                menBusMen.IsEnabled = false;
                menBusTut.IsEnabled = false;
                menBusAva.IsEnabled = false;
                menReporte.IsEnabled = false;
                menRep01.IsEnabled = false;
                menRep02.IsEnabled = false;
            }
        }
예제 #6
0
        private void cmdAceptar_Click(object sender, RoutedEventArgs e)
        {
            bool ok = false;
            if (!(txtPaterno.Text.Length > 0) && !(txtMaterno.Text.Length > 0))
            {
                MessageBox.Show("Se requiere especificar apellidos de familia.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                ok = true;
            }
            else if (!(Convert.ToInt64(cboDepartamento.SelectedValue) >= 0))
            {
                MessageBox.Show("Se requiere especificar departamento.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                ok = true;
            }
            else if (!(Convert.ToInt64(cboProvincia.SelectedValue) >= 0))
            {
                MessageBox.Show("Se requiere especificar provincia.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                ok = true;
            }
            else if (!(Convert.ToInt64(cboMunicipio.SelectedValue) >= 0))
            {
                MessageBox.Show("Se requiere especificar municipio.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                ok = true;
            }
            else if (!(txtLugar.Text.Length > 0))
            {
                MessageBox.Show("Se requiere especificar lugar.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                ok = true;
            }

            if (ok == false)
            {
                switch (MessageBox.Show("¿Desea guardar los datos correspondiente a este familia?", "Consulta", MessageBoxButton.YesNoCancel, MessageBoxImage.Question))
                {
                    case MessageBoxResult.Yes:
                        ModeloFamilia modelofamilia = new ModeloFamilia();

                        ModeloAsignacionMedico modeloAsignacionMedico = new ModeloAsignacionMedico();

                        _familia.IdEstablecimientoSalud = modeloAsignacionMedico.EstablecimientoDeSaludHabilitado(SessionManager.getCurrentSession().User.IdUserRelation).IdEstablecimientoSalud;
                        _familia.FechaInscripcion = dtpFechaInscripcion.SelectedDate.Value;
                        _familia.PrimerApellido = txtPaterno.Text;
                        _familia.SegundoApellido = txtMaterno.Text;
                        _familia.Observaciones = "";
                        _familia.IdDepartamento = Convert.ToInt64(cboDepartamento.SelectedValue);
                        _familia.IdProvincia = Convert.ToInt64(cboProvincia.SelectedValue);
                        _familia.IdMunicipio = Convert.ToInt64(cboMunicipio.SelectedValue);
                        _familia.Localidad = txtLugar.Text;

                        if (IdSeleccionado > 0)
                            modelofamilia.Editar(IdSeleccionado, _familia);
                        else
                            modelofamilia.Crear(_familia);

                        Id = _familia.Id;
                        Resultado = true;

                        this.Close();
                        break;
                    case MessageBoxResult.Cancel:
                        Id = 0;
                        Resultado = false;
                        this.Close();
                        break;
                }

            }
        }
        private void cmdGuardar_Click(object sender, RoutedEventArgs e)
        {
            ModeloCorresponsabilidadMadre modelocorresponsabilidadmadre = new ModeloCorresponsabilidadMadre();
                CorresponsabilidadMadre corresponsabilidadmadre = new CorresponsabilidadMadre();
                ModeloAsignacionMedico modeloAsignacionMedico = new ModeloAsignacionMedico();

                bool ok = false;

                if (ok == false)
                {
                    if (!(txtCodigoFormulario.Text.Length > 0))
                    {
                        MessageBox.Show("Se requiere especificar número de formulario.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        ok = true;
                    }
                }

                if (ok == false)
                {
                    if (chkSalida.IsChecked == true)
                    {
                        if ((this.rdbTransferenciaSalida.IsChecked == false) && (this.rdbObitoFetal.IsChecked == false) && (this.rdbIncumplimiento.IsChecked == false) && (this.rdbFallecimiento.IsChecked == false) && (this.rdbCumplimiento.IsChecked == false) && (this.rdbAborto.IsChecked == false))
                        {
                            MessageBox.Show("Se requiere especificar causa.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                            ok = true;
                        }
                        else if (!(txtAutorizado.Text.Length > 0))
                        {
                            MessageBox.Show("Se requiere especificar autorizador.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                            ok = true;
                        }
                        else if (!(txtCargo.Text.Length > 0))
                        {
                            MessageBox.Show("Se requiere especificar cargo.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                            ok = true;
                        }
                    }
                }

                if (ok == false)
                {
                    if (IdCorresponsabilidadMadre == 0)
                    {
                        corresponsabilidadmadre.IdEstablecimientoSalud = modeloAsignacionMedico.EstablecimientoDeSaludHabilitado(SessionManager.getCurrentSession().User.IdUserRelation).IdEstablecimientoSalud;
                        if (rdbNueva.IsChecked == true)
                            corresponsabilidadmadre.TipoInscripcionMadre = TipoInscripcion.Nueva;
                        else if (rdbTransferencia.IsChecked == true)
                            corresponsabilidadmadre.TipoInscripcionMadre = TipoInscripcion.Transferencia;

                        corresponsabilidadmadre.FechaInscripcion = this.dtpFechaInscripcion.SelectedDate.Value;
                        corresponsabilidadmadre.IdMadre = IdSeleccionado;
                        if (_grupofamiliar.TipoGrupoFamiliar == TipoGrupoFamiliar.Tutor)
                        {
                            corresponsabilidadmadre.IdTutor = _grupofamiliar.IdTutor.Value;
                            corresponsabilidadmadre.IdTipoParentesco = _grupofamiliar.IdTipoParentesco.Value;
                        }
                        corresponsabilidadmadre.CodigoFormulario = this.txtCodigoFormulario.Text;
                        corresponsabilidadmadre.FechaUltimaMenstruacion = this.dtpFechaFUM.SelectedDate.Value; ;
                        corresponsabilidadmadre.FechaUltimoParto = this.dtpFechaUltimoParto.SelectedDate.Value; ;
                        corresponsabilidadmadre.NumeroEmbarazo = Convert.ToInt32(this.txtNumeroEmbarazo.Text);
                        corresponsabilidadmadre.ARO = (bool)this.chkARO.IsChecked;
                        corresponsabilidadmadre.FechaSalidaPrograma = DateTime.Now;
                        corresponsabilidadmadre.TipoSalidaMadre = TipoSalidaMadre.EnProceso;
                        corresponsabilidadmadre.Observaciones = "";
                        corresponsabilidadmadre.AutorizadoPor = "";
                        corresponsabilidadmadre.CargoAutorizador = "";

                        modelocorresponsabilidadmadre.Crear(corresponsabilidadmadre);
                        IdCorresponsabilidadMadre = corresponsabilidadmadre.Id;

                        ModeloControlMadre modelocontrolmadre = new ModeloControlMadre();
                        DateTime fechitaControles;

                        fechitaControles = dtpFechaFUM.SelectedDate.Value;
                        fechitaControles = fechitaControles.AddMonths(-1);

                        for (int i = 0; i < CantidadDeControles; i++)
                        {
                            fechitaControles = fechitaControles.AddMonths(2);

                            ControlMadre controlmadre = new ControlMadre();

                            controlmadre.IdCorresponsabilidadMadre = IdCorresponsabilidadMadre;
                            controlmadre.IdEstablecimientoSalud = modeloAsignacionMedico.EstablecimientoDeSaludHabilitado(SessionManager.getCurrentSession().User.IdUserRelation).IdEstablecimientoSalud;
                            controlmadre.IdMedico = SessionManager.getCurrentSession().User.IdUserRelation;
                            controlmadre.IdMadre = IdSeleccionado;

                            if (_grupofamiliar.TipoGrupoFamiliar == TipoGrupoFamiliar.Tutor)
                            {
                                controlmadre.IdTutor = _grupofamiliar.IdTutor.Value;
                                controlmadre.IdTipoParentesco = _grupofamiliar.IdTipoParentesco.Value;
                            }

                            controlmadre.FechaProgramada = fechitaControles;
                            controlmadre.FechaControl = DateTime.Now;
                            controlmadre.TallaCm = 0;
                            controlmadre.PesoKg = 0;
                            controlmadre.NumeroControl = i + 1;
                            controlmadre.Observaciones = "";
                            controlmadre.EstadoPago = TipoEstadoPago.NoPagado;
                            controlmadre.TipoControlMadre = TipoControlMadre.Control;

                            if (_grupofamiliar.TipoGrupoFamiliar == TipoGrupoFamiliar.Madre)
                                controlmadre.TipoBeneficiario = TipoBeneficiario.Madre;
                            else
                                controlmadre.TipoBeneficiario = TipoBeneficiario.Tutor;

                            modelocontrolmadre.Crear(controlmadre);
                        }

                        for (int i = 0; i < 2; i++)
                        {
                            fechitaControles = fechitaControles.AddMonths(2);

                            ControlMadre controlmadre = new ControlMadre();

                            controlmadre.IdCorresponsabilidadMadre = IdCorresponsabilidadMadre;
                            controlmadre.IdEstablecimientoSalud = modeloAsignacionMedico.EstablecimientoDeSaludHabilitado(SessionManager.getCurrentSession().User.IdUserRelation).IdEstablecimientoSalud;
                            controlmadre.IdMedico = SessionManager.getCurrentSession().User.IdUserRelation;
                            controlmadre.IdMadre = IdSeleccionado;

                            if (_grupofamiliar.TipoGrupoFamiliar == TipoGrupoFamiliar.Tutor)
                            {
                                controlmadre.IdTutor = _grupofamiliar.IdTutor.Value;
                                controlmadre.IdTipoParentesco = _grupofamiliar.IdTipoParentesco.Value;
                            }

                            controlmadre.FechaProgramada = fechitaControles;
                            controlmadre.FechaControl = DateTime.Now;
                            controlmadre.TallaCm = 0;
                            controlmadre.PesoKg = 0;
                            controlmadre.NumeroControl = CantidadDeControles + i + 1;
                            controlmadre.Observaciones = "";

                            if (i == 0)
                            {
                                controlmadre.EstadoPago = TipoEstadoPago.NoAplicable;
                                controlmadre.TipoControlMadre = TipoControlMadre.Parto;
                            }
                            else
                            {
                                controlmadre.EstadoPago = TipoEstadoPago.NoPagado;
                                controlmadre.TipoControlMadre = TipoControlMadre.PostParto;
                            }

                            if (_grupofamiliar.TipoGrupoFamiliar == TipoGrupoFamiliar.Madre)
                                controlmadre.TipoBeneficiario = TipoBeneficiario.Madre;
                            else
                                controlmadre.TipoBeneficiario = TipoBeneficiario.Tutor;

                            modelocontrolmadre.Crear(controlmadre);
                        }

                        this.txtCodigoFormulario.IsEnabled = false;
                        this.dtpFechaInscripcion.IsEnabled = false;
                        this.rdbNueva.IsEnabled = false;
                        this.rdbTransferencia.IsEnabled = false;
                        this.dtpFechaFUM.IsEnabled = false;
                        this.dtpFechaUltimoParto.IsEnabled = false;
                        this.txtNumeroEmbarazo.IsEnabled = false;
                        this.chkARO.IsEnabled = false;
                        RecuperarControlMadre();
                    }
                    else
                    {
                        corresponsabilidadmadre = modelocorresponsabilidadmadre.Recuperar(IdCorresponsabilidadMadre);

                        if (_grupofamiliar.TipoGrupoFamiliar == TipoGrupoFamiliar.Tutor)
                        {
                            corresponsabilidadmadre.IdTutor = _grupofamiliar.IdTutor.Value;
                            corresponsabilidadmadre.IdTipoParentesco = _grupofamiliar.IdTipoParentesco.Value;
                        }

                        if (this.chkSalida.IsChecked == true)
                        {
                            corresponsabilidadmadre.FechaSalidaPrograma = this.dtpFechaSalida.SelectedDate.Value;
                            if (this.rdbAborto.IsChecked == true)
                                corresponsabilidadmadre.TipoSalidaMadre = TipoSalidaMadre.Aborto;
                            else if (this.rdbCumplimiento.IsChecked == true)
                                corresponsabilidadmadre.TipoSalidaMadre = TipoSalidaMadre.Cumplimiento;
                            else if (this.rdbFallecimiento.IsChecked == true)
                                corresponsabilidadmadre.TipoSalidaMadre = TipoSalidaMadre.Fallecimiento;
                            else if (this.rdbIncumplimiento.IsChecked == true)
                                corresponsabilidadmadre.TipoSalidaMadre = TipoSalidaMadre.Incumplimiento;
                            else if (this.rdbObitoFetal.IsChecked == true)
                                corresponsabilidadmadre.TipoSalidaMadre = TipoSalidaMadre.ObitoFetal;
                            else if (this.rdbTransferenciaSalida.IsChecked == true)
                                corresponsabilidadmadre.TipoSalidaMadre = TipoSalidaMadre.Transferencia;
                            corresponsabilidadmadre.AutorizadoPor = this.txtAutorizado.Text;
                            corresponsabilidadmadre.CargoAutorizador = this.txtCargo.Text;
                        }
                        else
                        {
                            corresponsabilidadmadre.FechaSalidaPrograma = DateTime.Now;
                            corresponsabilidadmadre.TipoSalidaMadre = TipoSalidaMadre.EnProceso;
                            corresponsabilidadmadre.AutorizadoPor = "";
                            corresponsabilidadmadre.CargoAutorizador = "";
                        }

                        modelocorresponsabilidadmadre.Editar(IdCorresponsabilidadMadre, corresponsabilidadmadre);
                    }
                }
        }
예제 #8
0
        protected override void Seed(BjaContext context)
        {
            base.Seed(context);

            //añadir registro de medico como usuario
            Medico medico = new Medico()
            {
                Nombres                = "Herbert",
                PrimerApellido         = "Saal",
                SegundoApellido        = "Gutierrez",
                DocumentoIdentidad     = "43123333",
                TipoDocumentoIdentidad = TipoDocumentoIdentidad.CarnetIdentidad,
                CorreoElectronico      = "*****@*****.**",
                EstadoRegistro         = TipoEstadoRegistro.VigenteNuevoRegistro,
                FechaNacimiento        = DateTime.Parse("05/04/1976"),
                LocalidadNacimiento    = "La Paz",
                MatriculaColegioMedico = "1234567890"
            };

            ModeloMedico modelo = new ModeloMedico();

            modelo.Crear(medico);

            Rbac rbac = new Rbac();

            rbac.insertUser("admin", medico.Nombres + " " + medico.PrimerApellido + " " + medico.SegundoApellido, "admin",
                            medico.Id);

            //departamento
            Departamento departamento = new Departamento()
            {
                Codigo = "LPZ", Descripcion = "La Paz"
            };
            ModeloDepartamento modeloDepartamento = new ModeloDepartamento();

            modeloDepartamento.Crear(departamento);

            Provincia provincia = new Provincia()
            {
                Codigo = "MUR", Descripcion = "Murillo", IdDepartamento = departamento.Id
            };
            ModeloProvincia modeloProvincia = new ModeloProvincia();

            modeloProvincia.Crear(provincia);

            Municipio municipio = new Municipio()
            {
                Codigo = "LP", Descripcion = "La Paz", IdProvincia = provincia.Id
            };
            ModeloMunicipio modeloMunicipio = new ModeloMunicipio();

            modeloMunicipio.Crear(municipio);

            RedSalud redSalud = new RedSalud()
            {
                Codigo = "MI", Nombre = "Red Salud miraflores", IdMunicipio = municipio.Id
            };
            ModeloRedSalud modeloRedSalud = new ModeloRedSalud();

            modeloRedSalud.Crear(redSalud);

            EstablecimientoSalud establecimientoSalud = new EstablecimientoSalud()
            {
                Codigo     = "HO",
                Nombre     = "Hospital Obrero",
                Direccion  = "Miraflores",
                IdRedSalud = redSalud.Id
            };
            ModeloEstablecimientoSalud modeloEstablecimientoSalud = new ModeloEstablecimientoSalud();

            modeloEstablecimientoSalud.Crear(establecimientoSalud);

            //asignación medico
            AsignacionMedico asignacionMedico = new AsignacionMedico()
            {
                IdEstablecimientoSalud = establecimientoSalud.Id,
                IdMedico    = medico.Id,
                FechaInicio = DateTime.Now,
                FechaFin    = DateTime.Today
            };
            ModeloAsignacionMedico modeloAsignacionMedico = new ModeloAsignacionMedico();

            modeloAsignacionMedico.Crear(asignacionMedico);


            //adiciona registros de configuración
            //Lo siguiente en lo futuro hay que quitar
            // Se asumen que estos vendrán establecidos por la central
            AdministradorConfiguracion.Crear("ControlesDeMadrePreParto", "Madre", "4", Entidades.TipoDato.enterolargo);
            AdministradorConfiguracion.Crear("ControlesDeMadreParto", "Madre", "1", Entidades.TipoDato.enterolargo);
            AdministradorConfiguracion.Crear("ControlesDeMadrePostParto", "Madre", "1", Entidades.TipoDato.enterolargo);
            AdministradorConfiguracion.Crear("ControlesDeMenor", "Menor", "12", Entidades.TipoDato.enterolargo);
        }
        private void cmdGuardar_Click(object sender, RoutedEventArgs e)
        {
            ModeloCorresponsabilidadMenor modelocorresponsabilidadmenor = new ModeloCorresponsabilidadMenor();
            CorresponsabilidadMenor corresponsabilidadmenor = new CorresponsabilidadMenor();
            ModeloAsignacionMedico modeloAsignacionMedico = new ModeloAsignacionMedico();

            bool ok = false;

            if (ok == false)
            {
                if (!(txtCodigoFormulario.Text.Length > 0))
                {
                    MessageBox.Show("Se requiere especificar número de formulario.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    ok = true;
                }
            }

            if (ok == false)
            {
                if (IdCorresponsabilidadMenor == 0)
                {
                    corresponsabilidadmenor.IdEstablecimientoSalud = modeloAsignacionMedico.EstablecimientoDeSaludHabilitado(SessionManager.getCurrentSession().User.IdUserRelation).IdEstablecimientoSalud;
                    if (rdbNueva.IsChecked == true)
                        corresponsabilidadmenor.TipoInscripcionMenor = TipoInscripcion.Nueva;
                    else if (rdbTransferencia.IsChecked == true)
                        corresponsabilidadmenor.TipoInscripcionMenor = TipoInscripcion.Transferencia;

                    corresponsabilidadmenor.FechaInscripcion = dtpFechaInscripcion.SelectedDate.Value;
                    corresponsabilidadmenor.IdMenor = IdSeleccionado;

                    if (_grupofamiliarmadre != null)
                        corresponsabilidadmenor.IdMadre = _grupofamiliarmadre.IdMadre.Value;

                    if (_grupofamiliar.TipoGrupoFamiliar == TipoGrupoFamiliar.Tutor)
                    {
                        corresponsabilidadmenor.IdTutor = _grupofamiliar.IdTutor.Value;
                        corresponsabilidadmenor.IdTipoParentesco = _grupofamiliar.IdTipoParentesco.Value;
                    }

                    corresponsabilidadmenor.CodigoFormulario = txtCodigoFormulario.Text;
                    corresponsabilidadmenor.FechaSalidaPrograma = dtpFechaSalida.SelectedDate.Value;
                    corresponsabilidadmenor.TipoSalidaMenor = TipoSalidaMenor.EnProceso;
                    corresponsabilidadmenor.Observaciones = "";
                    corresponsabilidadmenor.AutorizadoPor = txtAutorizado.Text;
                    corresponsabilidadmenor.CargoAutorizador = txtCargo.Text;

                    modelocorresponsabilidadmenor.Crear(corresponsabilidadmenor);
                    IdCorresponsabilidadMenor = corresponsabilidadmenor.Id;

                    ModeloControlMenor modelocontrolmenor = new ModeloControlMenor();
                    DateTime fechitaControles;

                    fechitaControles = Convert.ToDateTime(lblFechaNacimientoMenor.Content);
                    fechitaControles = fechitaControles.AddMonths(-1);

                    for (int i = 0; i < CantidadDeControles; i++)
                    {
                        fechitaControles = fechitaControles.AddMonths(2);

                        ControlMenor controlmenor = new ControlMenor();

                        controlmenor.IdCorresponsabilidadMenor = IdCorresponsabilidadMenor;
                        controlmenor.IdEstablecimientoSalud = modeloAsignacionMedico.EstablecimientoDeSaludHabilitado(SessionManager.getCurrentSession().User.IdUserRelation).IdEstablecimientoSalud;
                        controlmenor.IdMenor = IdSeleccionado;
                        controlmenor.IdMedico = SessionManager.getCurrentSession().User.IdUserRelation;

                        if (_grupofamiliarmadre != null)
                            controlmenor.IdMadre = _grupofamiliarmadre.IdMadre.Value;

                        if (_grupofamiliar.TipoGrupoFamiliar == TipoGrupoFamiliar.Tutor)
                        {
                            controlmenor.IdTutor = _grupofamiliar.IdTutor.Value;
                            controlmenor.IdTipoParentesco = _grupofamiliar.IdTipoParentesco.Value;
                        }

                        controlmenor.FechaProgramada = fechitaControles;
                        controlmenor.FechaControl = DateTime.Now;
                        controlmenor.TallaCm = 0;
                        controlmenor.PesoKg = 0;
                        controlmenor.NumeroControl = i + 1;
                        controlmenor.Observaciones = "";
                        controlmenor.EstadoPago = TipoEstadoPago.NoPagado;

                        if (_grupofamiliar.TipoGrupoFamiliar == TipoGrupoFamiliar.Tutor)
                            controlmenor.TipoBeneficiario = TipoBeneficiario.Tutor;
                        else
                            controlmenor.TipoBeneficiario = TipoBeneficiario.Madre;

                        modelocontrolmenor.Crear(controlmenor);
                    }

                    this.txtCodigoFormulario.IsEnabled = false;
                    this.dtpFechaInscripcion.IsEnabled = false;
                    this.rdbNueva.IsEnabled = false;
                    this.rdbTransferencia.IsEnabled = false;
                    RecuperarControlMenor();
                }
                else
                {
                    corresponsabilidadmenor = modelocorresponsabilidadmenor.Recuperar(IdCorresponsabilidadMenor);

                    if (_grupofamiliarmadre != null)
                        corresponsabilidadmenor.IdMadre = _grupofamiliarmadre.IdMadre.Value;

                    if (_grupofamiliar.TipoGrupoFamiliar == TipoGrupoFamiliar.Tutor)
                    {
                        corresponsabilidadmenor.IdTutor = _grupofamiliar.IdTutor.Value;
                        corresponsabilidadmenor.IdTipoParentesco = _grupofamiliar.IdTipoParentesco.Value;
                    }

                    if (this.chkSalida.IsChecked == true)
                    {
                        corresponsabilidadmenor.FechaSalidaPrograma = this.dtpFechaSalida.SelectedDate.Value;
                        if (this.rdbCumplimiento.IsChecked == true)
                            corresponsabilidadmenor.TipoSalidaMenor = TipoSalidaMenor.Cumplimiento;
                        else if (this.rdbFallecimiento.IsChecked == true)
                            corresponsabilidadmenor.TipoSalidaMenor = TipoSalidaMenor.Fallecimiento;
                        else if (this.rdbIncumplimiento.IsChecked == true)
                            corresponsabilidadmenor.TipoSalidaMenor = TipoSalidaMenor.Incumplimiento;
                        else if (this.rdbTransferenciaSalida.IsChecked == true)
                            corresponsabilidadmenor.TipoSalidaMenor = TipoSalidaMenor.Transferencia;
                        corresponsabilidadmenor.AutorizadoPor = this.txtAutorizado.Text;
                        corresponsabilidadmenor.CargoAutorizador = this.txtCargo.Text;
                    }
                    else
                    {
                        corresponsabilidadmenor.FechaSalidaPrograma = DateTime.Now;
                        corresponsabilidadmenor.TipoSalidaMenor = 0;
                        corresponsabilidadmenor.AutorizadoPor = "";
                        corresponsabilidadmenor.CargoAutorizador = "";
                    }

                    modelocorresponsabilidadmenor.Editar(IdCorresponsabilidadMenor, corresponsabilidadmenor);
                }
            }
        }