lunes, 15 de marzo de 2010

HL7. Ya hemos aprendido algo más.

La semana pasada he asistido a un taller sobre HL7 (mensajería v2.6 y CDA R2) impartido en Sevilla por Álvaro Domínguez bastante interesante.

Para quien no lo sepa, HL7 es una organización de carácter internacional (HL7 Spain es una localización de la organización) y una serie de estándares que organizan el formato de los datos y el intercambio de información entre diferentes sistemas de información de salud.

Por lo que he podido ver en estas semanas, HL7 es un mundo que puede alcanzar un nivel de complejidad tan grande como se quiera ("puedes tardar más de dos semanas en modelar un mensaje"). Por suerte, existen algunos proyectos Java Open Source que vienen a facilitarnos la tarea,

Mirth, una familia de productos para el desarrollo, despliegue, pruebas, almacenamiento, etc. Un motor que permite el intercambio de mensajes entre sistemas y aplicaciones.

Open eHealth Integration Platform (IPF), una extensión de Apache Camel, que proporciona una capa de desarrollo basada en Groovy.

HAPI, un parseador para HL7.

NULE, un conjunto de herramientas y librerías para trabajar con HL7.

Y Open Healthcare Framework, subproyecto de Eclipse (gracias Andrés).

viernes, 12 de marzo de 2010

Cómo romper dependencias cíclicas entre paquetes.

Sonar, con su versión 2.0, viene a cubrir todas las necesidades de control de la calidad de los proyectos de desarrollo; proporcionando además, herramientas sufientes para solucionar los problemas encontrados.

Ya hemos comentado con anterioridad las ventajas de utilizarlo, que son muchas pero, con la nueva versión podemos incluso localizar con facilidad dónde se encuentran las dependencias cíclicas de tu código.

Por ejemplo, echando un vistazo al código de Apache Jackrabbit en su versión 2.1 de desarrollo,



podemos observar que éxisten dependencias entre paquetes.



También sabemos cuántos ciclos existen, 264, y el número de dependencias entre paquetes y entre ficheros a romper, 99 y 329 respectivamente.



Pulsando sobre los datos nos mostrará la matriz de dependencias,



donde buscaremos las que debemos romper, representadas con color rojo.



Bien, hasta aquí podríamos haber utilizado otras herramientas más comunes como JDepend pero, ¿cómo puedo saber cuáles ficheros tengo que tocar? Simplemente doble click sobre la celda de color rojo y nos mostrará los ficheros implicados.



A partir de aquí, puedes empezar a refactorizar.



Más información en,

http://sonar.codehaus.org/
http://nemo.sonarsource.org/
http://nemo.sonarsource.org/project/index/org.apache.jackrabbit:jackrabbit
http://nemo.sonarsource.org/drilldown/measures/org.apache.jackrabbit:jackrabbit?metric=package_cycles
http://nemo.sonarsource.org/drilldown/measures/org.apache.jackrabbit:jackrabbit?metric=package_cycles&rids[]=32189