Ejemplo n.º 1
0
        private void tabControl1_Selected(object sender, TabControlEventArgs e)
        {
            DataTable modalidades = ModalidadControl.Listar();

            dgvModalidades.DataSource = modalidades;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Procesar estudio
        /// </summary>
        /// <param name="lista">Datos</param>
        private void ProcesarOrden(List <Hashtable> lista)
        {
            bool correcto = true;

            string   codigo_paciente   = "";
            int      codigo_modalidad  = -1;
            string   numero_acceso     = GeneradorIdentificadores.GenerarAccessionNumber();
            string   medico_referencia = "";
            string   medico_ejercicio  = "";
            bool     admitido          = false;
            bool     cancelado         = false;
            DateTime fecha_inicio      = DateTime.Now;
            DateTime fecha_fin         = DateTime.Now;

            foreach (Hashtable segmento in lista)
            {
                if (segmento["Segment Name"].Equals("PID"))
                {
                    bool pacienteCorrecto = VerificarPaciente(segmento);

                    if (pacienteCorrecto)
                    {
                        codigo_paciente = segmento["Patient ID"].ToString().Split('^')[0];
                    }
                    else
                    {
                        Consola.Imprimir("El paciente no existe.");
                    }

                    correcto = correcto && pacienteCorrecto;
                }

                if (segmento["Segment Name"].Equals("OBR"))
                {
                    if (segmento.ContainsKey("Diagnostic Serv Sect ID"))
                    {
                        codigo_modalidad = ModalidadControl.BuscarModalidad((string)segmento["Diagnostic Serv Sect ID"]);

                        if (codigo_modalidad == -1)
                        {
                            Consola.Imprimir("No existe ese Diagnostic Serv Sect ID");
                            correcto = false;
                        }
                    }
                    else
                    {
                        Consola.Imprimir("El mensaje no tiene el Diagnostic Serv Sect ID");
                        correcto = false;
                    }

                    if (segmento.ContainsKey("Observation Date/Time") && segmento.ContainsKey("Observation End Date/Time"))
                    {
                        fecha_inicio = ConversorFechas.ConvertirFechaHL7((string)segmento["Observation Date/Time"]);
                        fecha_fin    = ConversorFechas.ConvertirFechaHL7((string)segmento["Observation End Date/Time"]);
                    }
                    else
                    {
                        Consola.Imprimir("La orden debe tener hora inicio y hora fin");
                        correcto = false;
                    }
                }

                if (segmento["Segment Name"].Equals("PV1"))
                {
                    if (segmento.ContainsKey("Attending Doctor"))
                    {
                        medico_ejercicio = (string)segmento["Attending Doctor"];
                    }
                    if (segmento.ContainsKey("Referring Doctor"))
                    {
                        medico_referencia = (string)segmento["Referring Doctor"];
                    }
                }
            }

            if (correcto)
            {
                listo = true;

                Consola.Imprimir("Procesamiento de ORM exitoso");

                Estudio estudio = new Estudio(codigo_paciente, codigo_modalidad, numero_acceso, medico_referencia, medico_ejercicio, admitido, cancelado, fecha_inicio, fecha_fin);

                EstudioControl.Insertar(estudio);
            }
            else
            {
                listo = false;
                Consola.Imprimir("Procesamiento de ORM fallido");
            }
        }