Exemple #1
0
        public void altaPaciente(Paciente paciente)
        {
            if (db.pacientes.Any(o => o.PacienteID==paciente.PacienteID))
            {
                throw new Exception("Paciente existe");
            }
            else
            {
                db.pacientes.Add(paciente);
                db.SaveChanges();

                //agrego comunicacion por defecto
                var eventos = (from e in db.eventos
                              where e is EventoObligatorio
                              select e).ToList();
                foreach (var ev in eventos)
                {
                    // asigno eventos obligatorios con medio mail...
                    EventoPacienteComunicacion epv = new EventoPacienteComunicacion { ComunicacionID = 1, PacienteID = paciente.PacienteID, EventoID = ev.EventoID };
                    db.eventopacientecomunicacion.Add(epv);
                    db.SaveChanges();
                }
                //db.SaveChanges();
            }
        }
Exemple #2
0
 public void modificarPaciente(Paciente paciente)
 {
     if (!db.pacientes.Any(o => o.PacienteID == paciente.PacienteID))
     {
         throw new Exception("No existe paciente");
     }
     else
     {
         var p = db.pacientes.Find(paciente.PacienteID);
         p.PaisID = paciente.PaisID;
         p.celular = paciente.celular;
         p.direccion = paciente.direccion;
         p.FN = paciente.FN;
         p.nombre = paciente.nombre;
         p.sancion = paciente.sancion;
         p.sexo = paciente.sexo;
         p.telefono = paciente.telefono;
         db.SaveChanges();
     }
 }
Exemple #3
0
        public static void InitializeClass(TestContext tc)
        {
            try
            {
                var context = new SAREMAdminContext();
                context.dropSchema(tenant);
                SARMContext.createTenant(tenant);
            }
            catch (Exception E)
            {
                Debug.WriteLine(E.Message);
            }

            db = SARMContext.getTenant(tenant);

            comunicaciones.ForEach(c => db.comunicaciones.Add(c));
            db.SaveChanges();
            Debug.WriteLine("Comunicaciones agregados...");

            eventos.ForEach(e => db.eventos.Add(e));
            eventosop.ForEach(e => db.eventos.Add(e));
            db.SaveChanges();
            Debug.WriteLine("Eventos agregados...");

            List<Pais> naciones = new List<Pais>
            {
                new Pais { PaisID = "UY", nombre = "Uruguay" },
                new Pais { PaisID = "BR", nombre = "Brasil" }
            };
            naciones.ForEach(n => db.paises.Add(n));
            db.SaveChanges();
            Debug.WriteLine("Paises agregados...");

            List<Paciente> pacientes = new List<Paciente>
            {   /*
                new Paciente{ PacienteID="50548305",
                    FN=new DateTime(1991,6,22),
                    sexo=Sexo.MASCULINO.ToString(),
                    nombre="Leonardo Clavijo",
                    PaisID = naciones.First().PaisID
                },*/
                new Paciente{ PacienteID="50548306",
                    FN=new DateTime(1991,6,22),
                    sexo=Sexo.FEMENINO.ToString(),
                    nombre="Kali la diosa",
                    PaisID = naciones.First().PaisID
                },
                  new Paciente{ PacienteID="50548307",
                    FN=new DateTime(1990,10,11),
                    sexo=Sexo.FEMENINO.ToString(),
                    nombre="Valentina Da Silva",
                    PaisID = naciones.First().PaisID
                },
                new Paciente{ PacienteID="50548308",
                    FN=new DateTime(1990,11,11),
                    sexo=Sexo.MASCULINO.ToString(),
                    nombre="Jorge Perez",
                    PaisID = naciones.First().PaisID
                },
                new Paciente{ PacienteID="51130115",
                    FN=new DateTime(1990,11,11),
                    sexo=Sexo.FEMENINO.ToString(),
                    nombre="Juana Alvarez",
                    PaisID = naciones.First().PaisID
                }
            };
            //lista
            pacientes.ForEach(p => fabrica.ipacientes.altaPaciente(p));
            db.SaveChanges();
            Debug.WriteLine("Pacientes agregados...");

            //custom agrego 20 pacientes
            List<Paciente> customs = new List<Paciente>();
            for (int i = 0; i < 20; i++)
            {
                Paciente template = new Paciente
                {
                    PacienteID = i.ToString(),
                    FN = new DateTime(1991, 6, 22),
                    sexo = Sexo.MASCULINO.ToString(),
                    nombre = "Leonardo Clavijo" + i.ToString(),
                    PaisID = naciones.First().PaisID
                };
                customs.Add(template);
            }
            customs.ForEach(x =>db.pacientes.Add(x));

            Debug.WriteLine("Pacientes agregados...");

            //especialidades
            List<Especialidad> especialidades = new List<Especialidad>
            {
                new Especialidad{ tipo="Esp1", descripcion="especialidad 1"},
                new Especialidad{ tipo="Esp2", descripcion="especialidad 2"},
                new Especialidad{ tipo="Esp3", descripcion="especialidad 3"},
                new Especialidad{ tipo="Esp4", descripcion="especialidad 4"}
            };
            especialidades.ForEach(e => db.especialidades.Add(e));
            db.SaveChanges();
            Debug.WriteLine("Especialidades agregados...");

            //funcionarios
            List<Medico> funcionarios = new List<Medico>
            {
                new Medico {FuncionarioID="17299999", nombre="Medico1", especialidades=especialidades},
                new Medico {FuncionarioID="17299998", nombre="Medico2", especialidades=especialidades},
                new Medico {FuncionarioID="17299997", nombre="Medico3", especialidades=especialidades},
                new Medico {FuncionarioID="17299996", nombre="Medico4", especialidades=especialidades},
                new Medico {FuncionarioID="17299995", nombre="Medico5", especialidades=especialidades}
            };
            funcionarios.ForEach(f => db.funcionarios.Add(f));
            db.SaveChanges();
            Debug.WriteLine("Funcionarios agregados...");

            List<Local> locales = new List<Local>
            {
                new Local {LocalID=1, nombre = "local1", calle="calle1", numero="SN", especialidades=especialidades, medicos=funcionarios},
                new Local {LocalID=2, nombre = "local2", calle="calle2", numero="SN2"},
                new Local {LocalID=3, nombre = "local3", calle="calle3", numero="SN3"}
            };
            locales.ForEach(l => db.locales.Add(l));
            db.SaveChanges();
            //Creo consultas para asignar

            List<Consulta> consultas = new List<Consulta>
            {
                new Consulta {
                    EspecialidadID = especialidades[0].EspecialidadID,
                    fecha_inicio=DateTime.UtcNow,
                    fecha_fin= DateTime.UtcNow.AddMinutes(20),
                    FuncionarioID=funcionarios[0].FuncionarioID,
                    LocalID=1,
                    numpacientes=10,
                    maxpacientesespera=10
                },
                new Consulta {
                    EspecialidadID = especialidades[1].EspecialidadID,
                    fecha_inicio=DateTime.UtcNow,
                    fecha_fin= DateTime.UtcNow.AddMinutes(300),
                    FuncionarioID=funcionarios[0].FuncionarioID,
                    LocalID=2,
                    numpacientes=10,
                    maxpacientesespera=10
                },
                new Consulta {
                    EspecialidadID = especialidades[2].EspecialidadID,
                    fecha_inicio=DateTime.UtcNow,
                    fecha_fin= DateTime.UtcNow.AddMinutes(300),
                    FuncionarioID=funcionarios[0].FuncionarioID,
                    LocalID=1,
                    numpacientes=10,
                    maxpacientesespera=10
                }
            };
            FabricaSAREM fab = new FabricaSAREM(tenant);
            consultas.ForEach(c => fab.iagenda.agregarConsulta(c));
            db.SaveChanges();
            Debug.WriteLine("Consultas agregados...");

            //al paciente 13 le asigno un medico de referencia.
            var pac = db.pacientes.Find("13");
            pac.FuncionarioID = funcionarios[0].FuncionarioID;
            pac = db.pacientes.Find("10");
            pac.FuncionarioID = funcionarios[0].FuncionarioID;
            pac = db.pacientes.Find("1");
            pac.FuncionarioID = funcionarios[0].FuncionarioID;

            pac = db.pacientes.Find("2");
            pac.FuncionarioID = funcionarios[1].FuncionarioID;
            pac = db.pacientes.Find("3");
            pac.FuncionarioID = funcionarios[1].FuncionarioID;
            pac = db.pacientes.Find("4");
            pac.FuncionarioID = funcionarios[1].FuncionarioID;
            db.SaveChanges();
        }
Exemple #4
0
        async Task<DataPaciente> parallelRequestPaciente(string pacienteID, List<identifierDomain> dominios)
        {
            if (OPENEMPI_SESSION_KEY == null)
                getAuth();
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(OPENEMPI_URL);
                client.DefaultRequestHeaders.TryAddWithoutValidation("OPENEMPI_SESSION_KEY", OPENEMPI_SESSION_KEY);

                List<StringContent> content = new List<StringContent>();
                //serialize request
                FabricaSAREM f = new FabricaSAREM();
                var schemas = f.adminController.getSchemas();
                dominios = dominios.Where(x => schemas.Contains(x.namespaceIdentifier)).ToList();
                foreach (var dominio in dominios)
                {
                    Debug.WriteLine(dominio);
                    if (schemas.Contains(dominio.namespaceIdentifier))
                    {
                        personIdentifier person = new personIdentifier
                        {
                            identifier = pacienteID,
                            identifierDomain = new identifierDomain
                            {
                                namespaceIdentifier = dominio.namespaceIdentifier,
                                universalIdentifier = dominio.universalIdentifier,
                                universalIdentifierTypeCode = dominio.universalIdentifierTypeCode
                            }
                        };

                        string xml;

                        XmlSerializer serializer = new XmlSerializer(typeof(personIdentifier));
                        XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
                        ns.Add("", "");

                        using (StringWriter sww = new StringWriter())
                        using (XmlWriter writer = XmlWriter.Create(sww, settings))
                        {
                            serializer.Serialize(writer, person, ns);
                            xml = sww.ToString();
                        }

                        var httpContent = new StringContent(xml, Encoding.UTF8, "application/xml");
                        content.Add(httpContent);
                    }

                }

                //parallel!
                Debug.WriteLine("parallel!!!");
                //var count = content.Count;
                List<Task<HttpResponseMessage>> tasklist = new List<Task<HttpResponseMessage>>();
                foreach (var c in content)
                {
                    tasklist.Add(client.PostAsync("openempi-ws-rest/person-query-resource/findPersonById", c));
                }
              
                //finish all
                Debug.WriteLine("await2?");
                Task.WhenAll(tasklist.ToArray());

                int count = tasklist.Count;
                for (int i=0;i<count; i++)
                {
                    Debug
                        .WriteLine(tasklist[i].Result.Content.ReadAsStringAsync().Result);
                    TextReader reader = new StringReader(tasklist[i].Result.Content.ReadAsStringAsync().Result);
                    try
                    {
                        Debug.WriteLine(tasklist[i].Result.Content.ReadAsStringAsync().Result);
                        XmlSerializer personserializer = new XmlSerializer(typeof(person));
                        person p = (person)personserializer.Deserialize(reader);

                        string s = Sexo.UNKNOWN.ToString();
                        if (p.gender != null)
                        {
                            switch (p.gender.genderCode)
                            {
                                case "M":
                                    s = Sexo.MASCULINO.ToString();
                                    break;
                                case "F":
                                    s = Sexo.FEMENINO.ToString();
                                    break;
                                default:
                                    s = Sexo.UNKNOWN.ToString();
                                    break;
                            }
                        }

                        Paciente paciente = new Paciente {
                            PacienteID= pacienteID,
                            celular = p.cell,
                            direccion = p.address1,
                            FN = p.dateOfBirth,
                            PaisID = p.countryCode,
                            //nacion= new Pais{PaisID=p.countryCode, nombre= p.country},
                            nombre = p.middleName,
                            mail = p.email,
                            apellido = p.motherName,                    
                            sexo = s,
                            telefono = p.phoneNumber                        
                        };
                        DataPaciente dp = new DataPaciente { paciente = paciente, mutualista = dominios[i].identifierDomainName };

                        return dp;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Person not found at domain "+ e.Message);//+ dominio.identifierDomainId);
                    }
                }
                
                return null;
            }
        }