Esempio n. 1
0
        /// <summary>
        /// Inserta un paciente en la base de datos
        /// </summary>
        /// <param name="lista">Datos del paciente</param>
        public static void Insertar(Hashtable lista)
        {
            if (!VerificarPacienteExistente(lista))
            {
                Paciente paciente = new Paciente();
                string[] nombres  = lista["Patient Name"].ToString().Split('^');

                string resultado   = "";
                string fecha       = "";
                string paciente_id = "";
                string genero      = "";
                string direccion   = "";
                string telefono    = "";

                if (lista.ContainsKey("Date/Time Of Birth"))
                {
                    resultado = DateTime.ParseExact(lista["Date/Time Of Birth"].ToString(), "yyyyMMdd", CultureInfo.InvariantCulture).ToString("yyyy/MM/dd");
                    DateTime pDate = Convert.ToDateTime(resultado);
                    fecha = pDate.ToString("yyyy-MM-dd hh:mm:ss");
                }

                if (lista.ContainsKey("Patient ID"))
                {
                    paciente_id = (string)lista["Patient ID"];
                }
                else
                {
                    paciente_id = GeneradorIdentificadores.GenerarAccessionNumber();
                }

                if (lista.ContainsKey("Administrative Sex"))
                {
                    genero = (string)lista["Administrative Sex"];
                }

                if (lista.ContainsKey("Patient Address"))
                {
                    direccion = (string)lista["Patient Address"];
                }

                if (lista.ContainsKey("Phone Number – Home"))
                {
                    telefono = (string)lista["Phone Number – Home"];
                }

                string sql = "INSERT INTO paciente VALUES ('" + paciente_id + "','" + nombres[1] + "','" + nombres[0] + "','" + "" + "','" + genero + "','" + direccion.Replace("^", " ") + "' ,'" + fecha + "',' " + "','" + telefono + "')";
                Conexion.Ejecutar(sql);
            }
            else
            {
                throw new PacienteExistenteExcepcion();
            }
        }
Esempio 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");
            }
        }