protected override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext.HttpContext.Session["usuario"] != null) { Debug.WriteLine("USUARIO NO ES NULL..."); paciente = (string)filterContext.HttpContext.Session["usuario"]; tenant = (string)filterContext.HttpContext.Session["tenant"]; fabrica = new FabricaSAREM(tenant); } else { Debug.WriteLine("USUARIO NULL..."); filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { action = "GetLogOff", controller = "Account" })); } }
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(); }
public void testParteDiario() { string medicoID = "17299999"; FabricaSAREM factory = new FabricaSAREM(tenant); var partes = factory.iagenda.obtenerParteDiario(medicoID, DateTime.UtcNow); //ajusto ausencia y diagnostico foreach (var parte in partes) { foreach (var c in parte.pacientes) { if (c.PacienteID != null) { factory.iagenda.actualizarParteDiario(c.ConsultaID, c.PacienteID, "Se le complica ...", true); Console.WriteLine(c.paciente.PacienteID + c.paciente.nombre); Console.WriteLine("Ausencia::" + c.ausencia.ToString()); Console.WriteLine("Diagnostico::" + c.diagnostico); } } } //debe fallar try { var pde = factory.iagenda.obtenerParteDiario(medicoID, DateTime.UtcNow.AddDays(1)); } catch (Exception e) { Console.WriteLine("OK::" + e.Message); } }
public void TestAgregarPacienteConsulta() { FabricaSAREM f = new FabricaSAREM(tenant); using(var db = SARMContext.getTenant(tenant)) { //Creo consulta Consulta c = new Consulta { EspecialidadID = 1, fecha_inicio = DateTime.UtcNow, fecha_fin = DateTime.UtcNow.AddMinutes(30), FuncionarioID = "17299999", LocalID = 1, numpacientes =10, maxpacientesespera =3 }; f.iagenda.agregarConsulta(c); //db.consultas.Add(c); //db.SaveChanges(); var pacientes = (from p in db.pacientes select p).Take(14).ToList(); int i = 0; foreach (var p in pacientes) { try { fabrica.iagenda.agregarConsultaPaciente(p.PacienteID, c.ConsultaID, (short)i); i++; /* if (date == null) Console.WriteLine(i + ")Paciente " + p.PacienteID + " agregado a lista de espera "); else Console.WriteLine(i + ")Paciente " + p.PacienteID + " agregado, consulta programada "+ date.ToString()); */ } catch (Exception max) { Console.WriteLine(i + "El paciente " + p.PacienteID + "no pudo se agregado... Max cola espera"); } } Console.WriteLine("Segundo TEST:: Cancelar consulta [3] y agregar el [14]"); fabrica.iagenda.cancelarConsultaPaciente(pacientes[3].PacienteID, c.ConsultaID); Console.WriteLine("Consulta cancelada..."); //veo a cual asigno... var enespera = fabrica.iagenda.obtenerPacientesConsultaEspera(c.ConsultaID); Console.WriteLine("Pacientes en lista de espera"); foreach (var p in enespera) Console.WriteLine(p.PacienteID); } }
public async Task<ActionResult> Register(RegisterViewModel model) { FabricaSAREM fadmin = new FabricaSAREM(); if (ModelState.IsValid) { DataPaciente p = fadmin.iopenempi.obtenerPaciente(model.PaisID, model.CI); if (p != null) { Debug.WriteLine(p.mutualista); Session["tenant"] = p.mutualista; if (!fadmin.adminController.getSchemas().Contains(p.mutualista)) { //throw new Exception("Lo sentimos... Su prestador de salud no se encuentra registrado en el sistema."); IdentityResult ir = new IdentityResult("Lo sentimos... Su prestador de salud no se encuentra registrado en el sistema."); AddErrors(ir); ViewBag.PaisID = new SelectList(fadmin.ipaises.obtenerPaises(), "PaisID", "nombre", "UY"); return View(model); } //TODO: generar password //TODO: enviar mail con password //alta paciente FabricaSAREM factory = new FabricaSAREM(p.mutualista); try { factory.ipacientes.altaPaciente(p.paciente); } catch (Exception e) { IdentityResult ir = new IdentityResult("Paciente ya registrado..."); AddErrors(ir); ViewBag.PaisID = new SelectList(fadmin.ipaises.obtenerPaises(), "PaisID", "nombre", "UY"); return View(model); } //factory.ipacientes.altaPaciente(p.paciente); var user = new ApplicationUser { UserName = model.CI, Email = p.paciente.mail, tenant=p.mutualista }; var result = await UserManager.CreateAsync(user, "password"); if (result.Succeeded) { //Session["usuario"] = model.CI; //await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); // Para obtener más información sobre cómo habilitar la confirmación de cuenta y el restablecimiento de contraseña, visite http://go.microsoft.com/fwlink/?LinkID=320771 // Enviar correo electrónico con este vínculo // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirmar cuenta", "Para confirmar la cuenta, haga clic <a href=\"" + callbackUrl + "\">aquí</a>"); return RedirectToAction("Login", "Account"); } AddErrors(result); } else { //mensaje de falla //consultar con su proveedor de salud para agregar el mail IdentityResult ir = new IdentityResult("Paciente no existe comunicarse con prestadora de salud."); AddErrors(ir); //throw new Exception("Paciente no existe comunicarse con proveedora de salud."); } } // Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario ViewBag.PaisID = new SelectList(fadmin.ipaises.obtenerPaises(), "PaisID", "nombre", "UY"); return View(model); }
public ActionResult Register() { FabricaSAREM factory = new FabricaSAREM(""); ViewBag.PaisID = new SelectList(factory.ipaises.obtenerPaises(), "PaisID", "nombre", "UY"); return View(); }
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; } }