miércoles, 22 de abril de 2015

Minutas Meeting Profe

21/04/2015


  • Estudio Inicial para la semana que viene. (Nicolas)
  • Cronograma antes del Spring1 (estimado para 6/5)
  • Definición Spring 0 antes del Spring1 (estimado para 6/5)
  • No pide Casos de Uso.
  • Diagrama de despliegue.
  • Realizar los diagramas necesarios (pdf sólo sirve para orientar y sugerir). "Todo lo que se cambia es con criterio".
  • En Agosto se planifica para ver si se llega para entregar en Diciembre.
  • Destacar Patrones.
  • Averiguar el tema de "Privacidad de los datos del paciente"

jueves, 16 de abril de 2015

API REST - Java

API REST - Java:

Para la gestión y construcción del proyecto elegimos Maven.

Se decide utilizar Spring el cual tiene un conjunto de utilidades para integrar las dependencias más utilizadas en Java.
En nuestro caso, la usaremos para Jersey (rest) y JPA/Hibernate (persistencia).

Decimos utilizar el servicio de alojamiento web que presta Google de forma gratuita llamado "Google App Engine".

Repositorio: GitHub.






*Web Container es la nube de Google App Engine.



 Maven project structure

  • /src/main/java folder, that contains source files for the dynamic content of the application (contenido dinámico).
  • /src/test/java folder contains all source files for unit tests (pruebas).
  • /src/main/resources folder contains configurations files (configuración).
  • /target folder contains the compiled and packaged deliverables (entregables).
  • the pom.xml is the project object model (POM) file. The single file that contains all project related configuration (configuración de proyectos relacionados).
Se decide utilizar la linea de comando de windows para el setup del entorno tienendo como referencia los siguientes tutoriales:

PASO A PASO

  1. clone GitHub a workspace/Smartpump desde Eclipse.
  2. voy a linea de comando y me ubico en workspace/Smartpump 
  3. git checkout -b feature_gaeSkeletonArchetype
  4.  echo "Branch for appengine skeleton archetype" > branch.txt
  5.  git add .
  6. git commit -m "Branch message added."
  7. git push -u origin feature_gaeSkeletonArchetype
  8. mvn archetype:generate  -DarchetypeGroupId=com.google.appengine.archetypes  -DarchetypeArtifactId=appengine-skeleton-archetype  -DarchetypeVersion=1.8.7 -Dappengine-version=1.9.19  -DgroupId=com.smartpump.Bismara  -DartifactId=Bismara -Dversion=0.1  -Dpackage=com.smartpump
  9. me ubico en Bismara y ejecuto "mvn clean install"
  10. mvn -pl Bismara-ear appengine:devserver
  11. mvn appengine:devserver
  12. Dev App Server running
  13. mvn -pl Bismara-ear appengine:update (para subirla a la nube de google y que te de el link)
  14. quedo finalmente http://smartpump-dev.appspot.com/context/bismara/test
  15. Se integra Jersey siguiendo el siguiente tutorial:

  16. Clean and Build y luego vuelvo a correr la app (mvn appengine:devserver) pero ahora con Jersey.
REST API responde correctamente!





Jersey + Spring

Jersey (para los servicios web RESTful) y Spring (para inyección de dependencias) logran una combinación de dos tecnologías potentes para un desarrollo de servicios web mas amigable.
Tutoriales:

Persistencia (JPA)

Java Persistence API, más conocida por sus siglas JPA, es la API de persistencia desarrollada para la plataformaJava EE.
El objetivo que persigue el diseño de esta API es no perder las ventajas de la orientación a objetos al interactuar con una base de datos (siguiendo el patrón de mapeo objeto-relacional), como sí pasaba con EJB2, y permitir usar objetos regulares (conocidos como POJOs).

Ejemplo:
http://www.codingpedia.org/ama/java-persistence-example-with-spring-jpa2-and-hibernate/




















miércoles, 15 de abril de 2015

Frameworks JAVA para API REST

Bueno, ya que consideramos no dejar de lado ningún lenguaje, investigando sobre Java subo información sobre Jersey. Hay mucha documentación.
En el laburo usamos Spring (para persistencia) y se podrían usar ambos.

JERSEY + SPRING : 
http://www.mkyong.com/webservices/jax-rs/jersey-spring-integration-example/

Spring Framework -> http://projects.spring.io/spring-framework/

Jersey -> https://jersey.java.net/index.html

Spring:
http://spring.io/

Documentación Spring:
http://spring.io/docs

Multi-threaded con Spring:

http://docs.spring.io/spring-batch/trunk/reference/html/scalability.html

ORM con Spring: 
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/orm.html


Introducción a Jersey:

Documentación Jersey:

Paso a paso Jersey:

Ejemplo Jersey:

Buenos resumenes Jersey:


Algunas Características Jersey:
  • Código abierto.
  • Provides support for JAX-RS APIs and serves as a JAX-RS (JSR 311 & JSR 339).
  • Última versión estable: 2.17.
  • Jersey resources are plain java object (POJO) with annotation @Path.
  • Ofrece una biblioteca cliente.

miércoles, 8 de abril de 2015

Frameworks PHP para API REST

  • Kohana http://kohanaframework.org (parece que esta bueno, tiene un modulo orm, paso el link de las especificaciones del release 3.3 http://kohanaframework.org/3.3/guide/)


Links con algunas explicaciones acerca de las caracteristicas de algunos: 

http://www.programmableweb.com/news/short-list-restful-api-frameworks-php/2011/09/23

http://www.gajotres.net/best-available-php-restful-micro-frameworks/


http://davss.com/tech/php-rest-api-frameworks/




Buscando sobre los frameworks encontre varias veces informacion sobre Propel, es una 

libreria para php de ORM, podriamos analizarla un poco para ver.

Propel web: http://propelorm.org/

Minutas Meeting PO

- La insulina es la hormona que facilita que las celulas absorban los azucares e hidratos (?) y así los metabolicen en energía. Las bombas suelen programarse para inyectar mayor cantidad de insulina en los momentos en que la ingesta de los mismos resulta mayor (Desayuno, Almuerzo, Merienda, Cena)

- Infusores continuos de insulina. Desarrolladores en Córdoba: Roche y Medtronics. (Agregar info desde grabaciones)

- Tengo anotado algo que hace cada 5 minutos, una alarma y algo que hace 2 veces al día. Instanciar esto con grabaciones.

- En desarrollo: bomba doble con bolos de insulina y glucagon, regula hipo e hiperglucemia. Desarrollo en iPhone, que via bluetooth recibe datos del glucometro y mediante algoritmos recalcula la inyeccion de la hormona que corresponda.

- http://www.nejm.org/doi/full/10.1056/NEJMoa1314474 Bionic Pancreas

- Holter de glucosa. Producto actual. $2K. Algo de 7 dias conintervalos de 5 minutos. Era un trial?

- Lifelog. Tracker app de sony para la vida cotidiana con estadisticas.

- Diabetes & Therapeutics Technologies. Congreso en Febrero en Paris. Abstracts del congreso: http://online.liebertpub.com/doi/pdf/10.1089/dia.2015.1525

- 5 de Julio de 2015 Taller especial de tecnologias y bombas en Congreso de Diabetes en el Sheraton Hotel Córdoba

Favor de ampliar información o publicar la grabación!

martes, 7 de abril de 2015

Entorno local.

Entorno local:


  • Eclipse luna (JAVA EE). 
  • Java 7 u 8 (jdk).
  • SDK de Android
  • Plugin eclipse-android.
  • SublimeText 2.
  • PDT plugin Eclipse (Para PHP).
  • Si no viene GIT con eclipse, plugin de git.
  • WAMP
  • Filezilla
  • IDE de Arduino.
  • Postman (extensión de Chrome)

Dirección de Lucas: Valladolid 1819. Maipú 1a sección.

lunes, 6 de abril de 2015

Rest API con PHP


Ahí fueron algunos links de lo que estuve investigando. PHP nos puede dar una mano también para lograr versatilidad y rapidez. Hay frameworks robustos que podríamos explotar.

Para seguir pensando...




Abstract tesis

Proyecto de tesis: Bismara


“Muchas veces, nosotros desconocemos si el paciente cumplió o no con el tratamiento. Salvo que hagamos algún seguimiento telefónico o por software. Puede suceder que el paciente no regrese hasta que se vuelva a sentir mal o haga el tratamiento por un periodo mucho menor al recomendado” describe Enrique Majul, director Médico de la Clínica Universitaria Reina Fabiola y especialista en Diabetes.[1] La misma es una enfermedad en la cual la ciencia y la tecnología han hecho aportes muy relevantes y se ha mejorado la calidad de vida de las personas de una forma significativa.
Bismara es un software que no escapa de ello. El objetivo principal del mismo es llevar un seguimiento constante del tratamiento del paciente para desligar al mismo de muchas de sus responsabilidades constantes y permitirle al médico información más precisa y concreta sobre su día a día. Para poder cumplir con el mismo, Bismara propone una bomba de insulina y un glucómetro conectados por bluetooth a un dispositivo móvil o wereable. El mismo se sincroniza con un sistema en la nube que gestiona el tratamiento y la programación de los aparatos posibilitando al médico información relevante y continua respecto a las métricas del paciente en los distintos momentos del tratamiento. La programación de la bomba la puede revisar y controlar el médico responsable desde una interfaz web o móvil que le avisará al diabético de posibles actualizaciones y le permitirá estar en constante control. A su vez, el doctor podrá informarse de los niveles de glucosa en los diferentes rangos horarios y días en que el paciente tuvo el dispositivo conectado. En pocas palabras, el tratamiento podrá llevarse adelante sin la necesidad de juntarse ni discutir información sobre los niveles y las inyecciones de bolo. Todo lo realizará Bismara.
A un nivel más amplio, Bismara ofrecerá la posibilidad de inscripción de “usuarios investigadores”. Estas solicitudes serán evaluadas y autorizadas para ofrecer la posibilidad de realizar investigaciones profundas respecto a toda la información (anónima) recopilada por Bismara, con el objetivo de realizar estudios y avances para la ciencia. Para ello se utilizarán técnicas de Data Mining usando Big Data.
La constancia respecto a las reglas del médico y la falta de información por los vaivenes del paciente respecto al tratamiento ya no serán un problema. Bismara estará al acecho de cualquier anomalía y dará un soporte de control y seguimiento que no se realizan en la actualidad, permitiendo un tratamiento más ameno y una mejor calidad de vida para el diabético.



[1] Fuente: http://www.lavoz.com.ar/salud/el-desafio-del-paciente-que-no-cumple-el-tratamiento