예제 #1
0
        private static void SincronizarAbiertas(Query q)
        {
            s = q.ComandoSql;
            if (q.Parametrizar)
            {
                s += Ambiente.OracleDate(q.UltSincronizacion);
            }
            else
            {
                var mins = (DateTime.Now - q.UltSincronizacion).TotalMinutes;
                if (mins <= Ambiente.MinAbiertas)
                {
                    return;
                }
            }

            abiertas = abiertaController.SelectAll();

            DataTable atencionesAbiertas = Ambiente.Oracledb.Select(s);

            if (atencionesAbiertas.Rows.Count > 0)
            {
                i = 0;
                foreach (DataRow a in atencionesAbiertas.Rows)
                {
                    var abiertalocal = abiertas.FirstOrDefault(x => x.NrAtendimento.Equals(a["NR_ATENDIMENTO"].ToString()));

                    if (abiertalocal != null)
                    {
                        continue;
                    }


                    var abierta = new Abierta();
                    abierta.NrAtendimento      = a["NR_ATENDIMENTO"].ToString();
                    abierta.CdPaciente         = a["CD_PACIENTE"].ToString();
                    abierta.CdMedico           = a["CD_MEDICO"].ToString();
                    abierta.CdEstabelecimento  = a["CD_ESTABELECIMENTO"].ToString();
                    abierta.DtEntrada          = DateTime.Parse(a["DT_ENTRADA"].ToString());
                    abierta.CdUnidadeBasica    = a["CD_UNIDADE_BASICA"].ToString();
                    abierta.CdSetorAtendimento = a["CD_SETOR_ATENDIMENTO"].ToString();
                    abierta.DtAlta             = null;
                    abierta.DtActualizacion    = null;
                    abierta.CreatedAt          = DateTime.Now;
                    if (abiertaController.InsertOne(abierta))
                    {
                        WriteStatus("ATENCIONES ABIERTAS", i, atencionesAbiertas.Rows.Count - 1);
                        i++;
                    }
                }
                q.UltSincronizacion = DateTime.Now;
                queryController.Update(q);
            }
            else
            {
                WriteStatus("TODO ESTÁ SINCRONIZADO " + DateTime.Now.ToString("HH:mm:ss"));
            }
        }
예제 #2
0
        private static void SincronizarAltas(Query q)
        {
            s = q.ComandoSql;
            if (q.Parametrizar)
            {
                s += Ambiente.OracleDate(q.UltSincronizacion);
            }

            DataTable altasRemotas = Ambiente.Oracledb.Select(s);

            if (altasRemotas.Rows.Count > 0)
            {
                i = 0;
                foreach (DataRow a in altasRemotas.Rows)
                {
                    var alta = new Alta();
                    alta.NrAtendimento      = a["NR_ATENDIMENTO"].ToString();
                    alta.CdPaciente         = a["CD_PACIENTE"].ToString();
                    alta.CdMedico           = a["CD_MEDICO"].ToString();
                    alta.CdEstabelecimento  = a["CD_ESTABELECIMENTO"].ToString();
                    alta.DtEntrada          = DateTime.Parse(a["DT_ENTRADA"].ToString());
                    alta.DtAlta             = DateTime.Parse(a["DT_ALTA"].ToString());
                    alta.DtActualizacion    = DateTime.Parse(a["DT_ACTUALIZACION"].ToString());
                    alta.CdUnidadeBasica    = a["CD_UNIDADE_BASICA"].ToString();
                    alta.CdSetorAtendimento = a["CD_SETOR_ATENDIMENTO"].ToString();
                    alta.CreatedAt          = DateTime.Now;
                    if (altaController.InsertOne(alta))
                    {
                        WriteStatus("ALTAS", i, altasRemotas.Rows.Count - 1);
                        i++;
                    }
                }
                SincronizaMedico(altasRemotas);
                SincronizaPaciente(altasRemotas);
                SincronizarComplementoMedico(altasRemotas);
                SincronizarComplementoPaciente(altasRemotas);
                PreparaHttpRequest(altasRemotas);
                LanzaHttpRequests();
                q.UltSincronizacion = DateTime.Now;
                queryController.Update(q);
            }
            else
            {
                WriteStatus("TODO ESTÁ SINCRONIZADO " + DateTime.Now.ToString("HH:mm:ss"));
            }
        }