pu

Buscar este blog

martes, 23 de septiembre de 2014

Recorrer un GridView y verificar si un CheckBoxField esta Checked o no usando C# y ASP.NET

Hola Amigos, si te gusta los posts en mi blog, por favor sígueme en Twitter bajo @tmaoner para ver mis aportaciones. 





Para la mayoría de ustedes que leen mi blog, este post es bien simple, pero créanme que muchos en la comunidad no lo sabían el día de hoy, por lo tanto los posteo para que los que me pidieron que lo hicieran lo puedan leer hoy en la noche y hacerlo funcionar en sus páginas.





El problema cae en lo siguiente, cuando tenemos un GridView y en una de las columnas manejamos un CheckBoxField  varios de los programadores con los que hable hoy no sabían cómo verificar del lado de la programación al momento de recorrer el GridView si estaba Checked o no.





Es fácil poder verificarlo, primero que todo deben de recorrer el  GridView , esto se hace de la siguiente forma usando un foreach :





        foreach (GridViewRow grd_Row in this.grd_Items.Rows)


        {


        }





Si ven en el foreach vamos a utilizar GridViewRow para ir utilizando cada fila. Después de tener este foreach vamos a insertar en el el siguiente código:





CheckBox chk_Publicar = (CheckBox)grd_Row.Cells[6].Controls[0];





Lo que estamos hacienda acá es que vamos a declarar un CheckBox  y en el mismo lo vamos a instanciar por medio de elegir la columna donde se encuentra el CheckBoxField  y con el método Controls  el cual le vamos a indicar que esta columna es especial.





Ya cuando tenemos nuestro CheckBox declarado, ya podemos hacer uso de el de forma normal, para verificar si esta Checked o no, ya pueden usar un simple if:





            if (chk_Publicar.Checked)


            {


                // Codigo


            }


            else


            {


                // Codigo


            }





Ya con esto, pueden hacer uso de cualquier CheckBoxField  en un GridView. El código final, debe de quedarles algo parecido:





        foreach (GridViewRow grd_Row in this.grd_Items.Rows)


        {


            CheckBox chk_Publicar = (CheckBox)grd_Row.Cells[6].Controls[0];





            if (chk_Publicar.Checked)


            {


                // Codigo


            }


            else


            {


                // Codigo


            }


        }

martes, 16 de septiembre de 2014

WPHardening: Automatizar la Fortificación de WordPress

La seguridad en WordPress es un tema más que importante hoy en día. Constantemente vemos bugs en plugins como el RFU de MailPoet o el 0day de TimThumb que ponen en riesgo las instalaciones de estos frameworks. Pero no solo eso, hay ataques de fuerza bruta contra WordPress, ataques de elevación de privilegios en WordPress, fallos de privacidad con la indexación de borradores,configuraciones inseguras que permiten el registro de usuarios, configuraciones inseguras que permiten listar los plugins instalados y un montón más de exploits conocidos para atacarlos.

Figura 1: WP Hardening ayuda a mejorar la seguridad de tu WordPess

Cada instancia de WordPress, una vez implantada, puede ser fortificada - igual que se fortifica el servidor Linux donde se esté ejecutando - cambiando permisos, borrando archivos de instalación, cambiando configuraciones o instalando plugins de seguridad.

WPHardening es una herramienta creada en Python, bajo licencia libre GNU/GPLv3, con la idea de no ser un plugin como tal de este framework, de esos que estamos acostumbrados a instalar y que en muchos casos extienden su funcionalidad. Es una herramienta de auditoria diseñada con la idea concreta de poder automatizar la eliminación de archivos innecesarios, dar recomendaciones de plugins de seguridad, aportar un asistente para la creación del archivo de configuración y algunas cosas más que paso a contaros.

¿Que se puede hacer con WPHardening? 

Está diseñada como una herramienta de consola, con el objetivo de ser versátil y que pueda ser utilizada con diferentes argumentos de invocación - con los que se podrán realizar diferentes acciones - y desde diferentes scripts automatizados en procesos completos de cumplimientos de seguridad.

Figura 2: WPhardening en su GitHub

Para comenzar a utilizar esta herramienta, lo primero que vamos a hacer es descargar WPHardening desde su repositorio en GitHub de la siguiente manera:

$ git clone https://github.com/elcodigok/wphardening
Cloning into 'wphardening'...
remote: Counting objects: 534, done.
remote: Total 534 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (534/534), 121.84 KiB | 93 KiB/s, done.
Resolving deltas: 100% (370/370), done.


$ cd wphardening/

Ahora vamos a necesitar tener descargado y descomprimido en algún directorio de nuestro equipo una versión de WordPress, hasta la fecha de hoy se recomienda la última versión estable 4.0 llamada “Benny”  y que fue liberada hace unos días. En estos ejemplos, la copia de WordPress 4.0 que hemos descargado está en el siguiente PATH:

/home/cspammers/wordpress

Con estos dos componente ya podemos utilizar WPHardening y automatizar su fortificación sin necesidad que el framework de WordPress se encuentre instalado o esté en ejecución dentro del servidor.

Para obtener ayuda sobre la herramienta y cuáles los parámetros que podemos utilizar hay que ejecutar:

$ ./wphardening.py -h

El único flag obligatorio es ( -d ) donde se indica el PATH en el que se encuentra la instancia deWordPress previamente descargado. Haciendo uso de este único argumento podemos validar que realmente sea un proyecto de WordPress. Se hace de la siguiente manera:

$ ./wphardening.py -d /home/cspammers/wordpress -v

Si no se especifica ningún archivo de Log para guardar los resultados salida con la opción ( -o ), todos los cambios van a ir almacenándose en el archivo wphardening.log de esa forma vamos a poder seguir todo lo que se fue ejecutando.

Para evitar el síndrome 777 en donde el usuario regala permisos a los archivos y directorios,wphardening tiene la posibilidad de hacer un control de permisos de seguridad adecuado utilizando la opción -c ó --chmod. Este sería un ejemplo de uso para mejorar los permisos de los archivos deWordPress:

$ ./wphardening.py -d /home/cspammers/wordpress --chmod

En cada proyecto que utilizamos de WordPress podemos encontrar archivos de documentación o presentación como son los ficheros de readme.html o de licencias que son muy utilizados en fases de fingerprinting para detectar la versión exacta de nuestra instalación, rutas dentro del servidor y hasta posibles configuraciones inseguras. Para evitar tener que ir eliminando manualmente todos estos archivos dentro de un proceso de fortificación, podemos utilizar la opción -r o --remove conWPhardening:

$ ./wphardening.py -d /home/cspammers/wordpress --remove

Figura 3: Ejemplo de borrado de archivos de licencia e información en WordPress

Para dificultar aún más los procesos de fingerprinting se puede eliminar la versión de WordPress de todos los lugares en los que se encuentra y con ( -f ) las marcas buscadas por las herramientas populares de scanning de WordPress, para ello se puede utilizar las opción de ( -v es el modoverbose ):

$ ./wphardening.py -d /home/cspammers/wordpress --delete-version -f -v

También es posible crear y personalizar el archivo robots.txt en donde le indicamos a las arañas de los motores de búsqueda cuáles los límites y permisos que vamos a asignar usando la opción -b o --robots:

$ ./ wphardening.py -d /home/cspammers/wordpress --robots

En este último tiempo la libreria TimThumb, una de las más usadas para manipular imágenes en PHP fue vulnerada en varias oportunidades. El problema radica en que los usuarios no acostumbran a actualizarla cuando esta incluida en su tema del sitio, por lo que wphardening cuenta con un diccionario de búsqueda para alertar al usuario sobre la existencia del mismo:

$ ./wphardening.py -d /home/cspammers/wordpress --timthumb -v

Una herramienta que se incorporó en estas últimas versiones es la posibilidad de contar con un asistente para la creación del archivo de configuraciones wp-config.php, que va a generar un archivo llamado wp-configu-wphardening.php para que sea renombrado en la instalación. Esto se puede activar de la siguiente manera:

$ ./wphardening.py -d /home/cspammers/wordpress --wp-config

La popularidad de WordPress llegó por la gran facilidad que tiene para extender sus funcionalidades y crear los plugins. Es por ello que desde WPHardening recomendamos varios plugins específicamente de seguridad, tales como: AntiVirus, Bad Behavior, Block Bad Queries, Exploit Scanner, Latch, Limit Login Attempts, One-Time Password, UPDATE NOTIFICATIONS, User Locker, WordPress File Monitor Plus, WP Login Security 2, WP Security Scan y WP-DBManager.


Figura 4: Vídeo Tutorial de integración de Latch para WordPress.
También puede ser usado para gestionar muchos WordPress con un solo Latch.

Para comprobar si puedes mejorar la seguridad de tu WordPress con alguno de ellos puedes usar la siguiente opción:

$ ./wphardening.py -d /home/cspammers/wordpress --plugins

Finalmente, en caso que nuestro servidor acepte la navegación entre sus directorios, podemos crear - con un solo comando - todos sus archivos index.php y una directiva en el archivo .htaccess para evitar que alguien liste el contenido de alguno de nuestros directorios:

$ ./wphardening.py -d /home/cspammers/wordpress --indexes

Dijimos al principio, que WPHardening es una herramienta muy versátil que nos va a permitir ejecutar la cantidad de opciones previas a una instalación o actualización, por lo cual podríamos llegar a combinar todos sus argumentos de la siguiente manera:

$ ./wphardening.py -d /home/cspammers/wordpress -c -r -b -f -t --wp-config --delete-version --plugins --indexes -o wordpress4.log -v

Conclusiones

WPHardening es un proyecto muy joven, en una fase muy temprana, pero que está siendo cuidado con mucho cariño e ilusión, por lo que aceptamos cualquier sugerencia o idea de mejora. Están todos invitados a colaborar y probar WPHardening, reportar fallos o cambios desde el repositorio en GitHub, para que puedan seguir creciendo con mejoras y nuevas funcionalidades. Ya estamos comenzando a ver que es lo nuevo para su version 1.4 así que cualquier idea será bienvenida.

Saludos!

Autor: Daniel Maldonado (@elcodigok)
http://caceriadespammers.com.ar

ReblogUn informático en el lado del mal
http://www.elladodelmal.com/

lunes, 1 de septiembre de 2014

crea usuario con privilegios de root

Existen varios métodos para crear un nuevo usuario con privilegios de root en Linux.

método rápido

se trata de crearlo de golpe añadiéndolo al grupo desde el propio comando useradd.
Añadir el usuario:
sudo useradd -u 0 -o -g 0 nombreusuario
Establecer la nueva contraseña:
sudo passwd nombreusuario
Este método hay veces que no va del todo bien ya que no crea la carpeta home personal y hay problemas con el historial bash en algunos VPS.

método típico

es mas largo, pero es el que se usa siempre.
Añadir el usuario:
sudo adduser nombreusuario
sudo /usr/sbin/visudo
En este fichero, añadimos después de la línea donde pone ‘root’, el nombre de nuestro usuario, con las líneas de ALL iguales.
# User privilege specification
root            ALL=(ALL:ALL) ALL 
nombreusuario ALL=(ALL:ALL) ALL

eliminar usuario

Si nos hubiésemos equivocado, podemos eliminar el usuario:
sudo userdel nombreusuario
O también cambiar la contraseña:
sudo passwd nombreusuario
Ahora ya nos podremos loguear con el nuevo usuario.

Habilitar o deshabilitar el login de root en SSH

Por razones de seguridad se suele desactivar el acceso root via SSH. Si queremos habilitarlo o deshabilitarlo debemos hacer lo siguiente:
# cd /etc/sshd
# vi sshd_config
Deshabilitarlo
PermitRootLogin no
Habilitarlo
PermitRootLogin yes
Despues de guardar los cambios reiniciamos el servicio SSH.
EN FREEBSD
/etc/rc.d/sshd restart
EN LINUX
/etc/init.d/sshd restart

lunes, 18 de agosto de 2014

Recuento Semestre Otoño 2014 parte 1

Taller de sistemas operativos 1

El ramo una caga de información mental que no tenia contemplado.
en esta asignatura aprendi a instalar linux centos 6.5 creamos lvm de grupos de discos creamos usuarios, asignamos permisos instalamos servicios de crontab, rsync, shh, php, phpmyadmin, mysql-server, email, httpd, samba y cada ves que aprendíamos a realizar la pega el profe nos decía que no eramos nada que linux tiene mucho mas información que se descubre en la pega en si.

el profesor que tome se llamaba Cristian Rosenberg, el tipo paletiao pero se empeñaba mucho en que aprendas y que cumplas con los requisitos solicitados en las pruebas, estas las da de una semana para otra así que no tenia mucho problemas en las entregas pero es estricto a la hora de evaluar.

Taller de Programacion IV

Estuve con muchos problemas al inicio ya que no contaba con la maquina adecuada y los computadores de la sede santiago sur estaban recién instalados y renovados y había que programar en maquinas virtuales puro ataos. entonces tuve que andar con mi tarro para todos lados cuando me tocaba esa asignatura :s

el profe nos explico mantenedores con master page, sessiones, ocupar lectura de datos desde base datos sql 2005 con visual studio 2012 e inserción de datos mediante procedimientos de almacenado, las pruebas difíciles ya que había que hacer el test en las clase de 3 horas pedagógicas y entregarlo de inmediato.

profesor Cristian Fuenzalida relajado el hombre ningún nervio explica la clase precisa y coniza.

mañana realizare la segunda parte....


martes, 1 de julio de 2014

7 consejos para hacer buen responsive design

tag: 7 consejos para hacer buen responsive design
Este 2014 es el año de la prima de riesgo, Lana del Rey, las pelis de superhéroes y el diseño sensible o responsive design (amigo lector, esto es sólo la intro del post, no centres tus iras en ella…). Por eso, cuando he visto un post en uno de mis blogs de desarrollo de cabecera, Cats who Code, con una serie de consejos o tips para crear diseños responsive de calidad, me he visto en la obligación ética y moral de compartirlo con toda la comunidad de ingenieros en informática Inacap. En total son 7 consejos para hacer buen responsive design y tengo que reconocer que los comparto todos y cada uno:
tag: 7 consejos para hacer buen responsive design

  1. Empieza con una plantilla. Si, mola ser un tipo duro y empezar las cosas desde cero pero si hay cosas muy chulas ya hechas (SkeletonOmegaAmazium…), ¿por qué no utilizarlas?
  2. Trabaja con layouts basados en grids fluidos. Lo que en cristiano viene a ser: ni una medida en pixeles, todo en porcentajes y relaciones
  3. Imágenes flexibles o adaptativas. Esto no siempre es fácil y la mayoría de las veces es costoso pero con unas reglas de CSS bien definidas y un buen número de presets para los tamaños de las imágenes, se puede lograr y dar un aspecto genial.
  4. jQuery es tu amigo. Y los plugins de jQuery son más amigos tuyos todavía, añado yo. Exprímelos todo lo que puedas, sin miedo.
  5. No te olvides del viewport de Apple. Porque ahora los iPhones y los iPads son lo que está llevando el mercado y lo sabes.
  6. Fondos escalables. Primordial para dar una sensación de responsive design bien hecho.
  7. Inspírate. Ya dijo Picasso aquello de “los buenos artistas copian, los genios roban”. No tengas miedo a ser un Tarantino e inspírate todo lo que puedas. No se trata de inventar la rueda sino de que esta haga ir a nuestro vehículo lo más rápido posible.
  8. Prueba, prueba y vuelve a probar. Hay en ciertos ámbitos culturetas cierto desdén por el “prueba y error”. En el caso del responsive design no queda otra, tanto que se puede hacer tedioso… aunque por suerte hay algunas herramientas que nos pueden facilitar un poco la vida.
Y esto es todo. Ya sabes, dejo este codigo para que lo tomen en cuenta ya que esto esta muy de moda y te dará un plus a la hora de ofrecer tus diseños te dejo unas paginas de referencia para que les heches un looking.
Vía | Cats who Code
Imagen | Web Design Shock
En Genbeta Dev | Responsive Design
tag: 7 consejos para hacer buen responsive design

miércoles, 7 de mayo de 2014

Cómo hacer una estrategía online de marketing inteligente y eficiente

Aunque ya tengas una tienda online funcionando, no tienes que bajar la guardia y debes seguir invirtiendo tiempo para seguir mejorando. Los 20 pasos es una guía para crear una tienda online, pero las tendencias van cambiando y tendrás que ir adaptándote. En este post, vamos a conocer las tendencias del marketing aplicado al ecommerce y cuales son las herramientas que te permitirán recuperar aquellos visitantes que llegaron a la tienda y no culminaron la compra :( .
El proceso de retargeting
El proceso de retargeting
Estuvimos comentando en el post “Como mejorar el proceso de compra en una tienda online” las técnicas que podemos usar en una tienda online para mejorar el número de conversiones y dejamos pendiente que podíamos hacer para recuperar aquellos visitantes, que aún mejorando nuestro proceso de compra, no finalizaron la misma o bien aquellos que por alguna razón mostraron interés en nuestros artículos pero no iniciaron la compra.
Este último punto es cada vez más común y en parte es normal por nuestra propia cultura de ver y comparar. Lo que si podemos hacer es intentar recopilar toda la navegación que se ha realizado en la tienda, segmentar esa información y usarla para mostrar anuncios personalizados para cada visitante mientras navega por otras webs. Esta técnica es conocida con el nombre retargeting, mentirás que google le llama remarketing.
Y la tendencia de usar sistemas que sean capaces de manipular toda esa información de navegación y preferencias de nuestros visitantes se le suele llamar con el término Big Data.

¿Como podemos intentar que vuelvan los visitantes?

Si se ha registrado, es muy común el uso de email, aunque aquí vamos a trabajar la técnica del retargeting o remarketing que funciona muy bien tanto para usuarios registrados como no registrados, donde la información que se recopila es la de navegación por nuestra tienda online.
Vamos a necesitar un sistema Big Data para el retargeting o remarketing que que sea capaz de recopilar toda esta información y que la explote por nosotros para recuperar a los usuarios que visitaron la tienda y no convirtieron.
En nuestro caso usamos NextPerformance, que aunque existe un módulos next performance para la plataforma ecommerce PrestaShop, nosotros hemos realizado la integración de forma manual ya que no es compatible con la versión 1.5 de PrestaShop, al menos en el momento que hicimos la integración.

Integración con el sistema Big Data de retargeting

Una vez que hemos contactado con NextPerformance, nos pasarán toda la información necesaria para integrar nuestra tienda con su sistema, así como nuestro id-tag. Básicamente, en PrestaShop consiste en añadir un línea de código (cambiar “id-tag” por vuestro identificador) en aquellos ficheros que representan la navegación relacionada con las siguientes páginas:
  • Página de inicio.
  • Página de confirmación de un pedido.
  • Página del carrito de la compra.
  • Página de listado de productos de una categoría determinada.
  • Página de consulta de un producto concreto.
De esa forma, vamos a poder obtener toda la navegación que se realiza en nuestra tienda por cada visitante, que iremos enviando, en nuestro caso, al sistema nxtck.com, con los datos que identifican a cada usuario en cada caso.
A continuación, un ejemplo de la integración realizada para PrestaShop en cada página específica:
  • En homefeatured.tpl: <script src=”http://nxtck.com/act.php?tag=id-tag” type=”text/javascript”></script>
  • En order-confirmation.tpl: <script src=”http://nxtck.com/act.php?tag=id-tag;id={$id_order};mt={$smarty.get.amount}” type=”text/javascript”></script>
  • En shopping-cart.tpl<script src=”http://nxtck.com/act.php?tag=id-tag” type=”text/javascript”></script>
  • En product-list.tpl<script type=”text/javascript” src=”http://nxtck.com/act.php?tag=id-tag;cid={$product.category}”></script>
  • En product.tpl<script src=”http://nxtck.com/act.php?tag=id-tag;pid={$product->reference}” type=”text/javascript”></script>
Además, en el caso de NextPerformance, tuvimos que elaborar un script PHP que generase, en un formato XML determinado, nuestro catálogo de productos completo y hacerlo público:http://www.tuverano.com/nxtck.php
Fichero XML del catálogo de productos para NextPerformance
Fichero XML del catálogo de productos para NextPerformance

Solicitar autorización para usar las cookies del usuario visitante

Todo esto es posible porque hacemos uso de las conocidas cookies del usuario visitante, algo que es, cuanto menos, cuestionable por el tema de la privacidad de esa información que estamos enviando a terceros. Por este motivo, nosotros incluimos en nuestra tienda un mensaje que autorice el uso decookies como el siguiente:
Tuverano.com utiliza cookies que realice una compra más sencilla y para analizar los datos de navegación. Más información sobre el uso de cookies y privacidad de datos aquí “

Probando el de sistema retargeting

Una vez tenemos todo integrado y correctamente funcionando, solo nos queda realizar nosotros mismo la primera prueba. En mi caso, me voy a www.tuverano.com, acepto el uso de cookies (en el pie de página), navego por CATEGORÍAS -> Juguetes Infantiles Educativos -> Herramientas de juguete y hago clic sobre uno de los productos de esa categoría. A continuación cierro el navegador, entro en Youtube, inicio la búsqueda de un vídeo y voalá!!!, aparece nuestra publicidad mostrándome justo aquello por lo que había mostrado interés ;-)
Retargeting y remarketing sobre eCommerce
Retargeting y remarketing sobre eCommerce
Los banners publicitarios personalizados se generan en tiempo real en función del tipo de visitante y solo aparecen en aquellas webs (Publisher) que sean afiliados de Google Adsense como es el caso de Youtube.

¿Qué coste tendrá una campaña de retargeting?

Uno de los objetivos de Big Data, es segmentar el volumen de información que se recibe, para definir una estrategia online de marketing más elaborada en función de las acciones y navegación por una serie de productos concretos (retargeting dinámico) que ha realizado cada visitante por la tienda online. Por ejemplo, no es lo mismo un visitante que hace uso del carrito, del que solo esta navegando por diferentes artículos.
La idea, es poder ajustar nuestra oferta de coste por clic, en función del tipo de campaña y su categoría. Además de poder definirla en cada momento y en tiempo real, de forma que cada cambio se realice instantáneamente, con la posibilidad de optimizar nuestra campaña para lograr determinados objetivos.
Pujar en tiempo real (RTB)
Pujar en tiempo real (RTB)
Conseguimos analizar toda la información de forma predictiva, segmentando nuestros clientes en función de sus motivaciones y preferencias, llegando al público objetivo.
El catálogo de retargeting dinámico que hemos creado, debería aumentar el número de impresiones y las conversiones de venta, consiguiendo un retorno de la inversión (ROI) a lo largo de la duración de la campaña. Ya que se trata de una estrategia bien gestionada y optimizada con la mejor disposición de las impresiones, buscando el mejor momento y en los mejores portales.
A este nuevo sistema de publicidad, los expertos de marketing lo llaman publicidad en tiempo real o Real Time Bidding (RTB).

Análisis de resultados con NextPerformance

Por último, nos quedará ir analizando los resultados obtenidos, es decir, ver si efectivamente no sólo conseguimos recuperar usuarios sino también ver si terminan comprando.
Estadísticas campaña por día
Estadísticas campaña por día
Si analizamos nuestra semana de prueba, vemos que conseguimos un total de 15.287 impresiones,recuperando 59 visitantes, de los cuales 4 terminaron comprando. Y lo mejor de todo, la inversión realizada: 8,85 euros :)
Como siempre, si te ha gustado el artículo se agradece que lo compartas en tu red social preferida y no dudes dejar tu comentario sobre cualquier punto.

fuente: http://www.solucionesecommerce.com/2013/11/big-data-retargeting-remarketing-tienda-online.html

jueves, 3 de abril de 2014

Estudiando HL7 Chile

Estudiando HL7
Ya escribí sobre el tema software para salud/medicina, en:
Desde hace un tiempo, estoy coleccionando información sobre el tema, en especial enlaces. Uno de los temas que surge en este tipo de aplicaciones, es HL7 (Health Level 7). ¿Qué es HL7? Podemos leer en el sitio:
Just as people from different countries with completely different native tongues are only able to communicate with each other if they can speak a common language, computer applications can only share information if they communicate with a common protocol. For people or computers to be able to share clinical data with one another, they must both:
  1. have functions to be able to physically communicate, e.g. speak & hear, send and receive documents and data files, share data and information. This is called "functional interoperability".
  2. speak a common language (in terms of nouns, verbs, grammatical structure, etc.) and share the same vocabulary that allows them to understand complex medical conditions and processes. This is called "semantic interoperability".
A group of healthcare computer systems users started developing the HL7 protocol in 1987 to create a common "language" that allows healthcare applications to share clinical data with each another. Over time the HL7 interoperability protocol became a nationally, internationally and globally accepted and accredited standard.
Es decir, HL7 es un standard para intercambiar datos, usando un lenguaje común, entre aplicaciones de salud. La misma gente de ese sitio, produjo este video:

Atención: hay una versión HL7 v2.x y luego apareció un V3 donde se pasó a un formato de mensaje XML (antes en la V2 los mensajes eran líneas de texto).
Mi colección de enlaces es
El sitio madre de HL7:
Un pantallazo de lo que es, se puede ver en la página de la Wikipedia
Un breve curso introductorio de 30 minutos:
Vean que ahí menciona que en V3 cambia el formato de serialización de mensajes: pasa a XML. Es un “gran” cambio con respecto a V2. Aparece Clinical Document Architecture (CDA). Recursos sobre CDA en: http://hl7book.net/index.php?title=CDA
Ayer, el bueno de @HiperiX me envió enlaces a sus posts:
Si quieren programar produciendo y consumiendo HL7, me parecieron potables:
http://hl7api.sourceforge.net/ (proyecto código abierto en Java)
http://nhapi.sourceforge.net/home.php (port a .NET)
Pero no vi que tuvieran soporte de V3.
Un glosario de HL7
Tutorial interesante, uno de los primeros que leería:
Un interesante sitio, con material de V2, V3, CDA, etc:
Más tutoriales en
Recursos y herramientas en:
Sobre el formato de los mensajes V2:
Más técnicos sobre V2:
Sobre mensajes en V3, con validación en línea, y ejemplos de instancia en:
Los mensajes V3, al ser XML, se pueden describir en XSD. Alguien que intentó tomar los XSD para generar clases:
Tengo que leer con más detenimiento, el “approach” de
Vean cómo ahí plantea un escenario donde hay DISTINTAS aplicaciones, de posiblemente distintos proveedores de software, que intercambian mensajes HL7:
Me pareció muy informativo, desde el punto de vista de desarrollo:
Una comparación corta de V2 vs V3:
Dos productos comerciales:
Igualmente, una advertencia: no armaría un dominio de aplicación de salud, basado en lo que dice HL7. Los dominios se arman sobre la realidad, como una representación de la realidad. Lo bueno de HL7 es que es un destilación de la realidad donde nació: tiene conceptos médicos en los mensajes que puede ser interesante representar en nuestro dominio (dependiendo de la necesidad de nuestro cliente). Pero no confundiría el mapa con el territorio: basar un dominio en HL7 no veo que sea el camino. Basar un dominio en HL7, es como basar un sistema de comercio electrónico en lo que tiene que ir en los mensajes EDI, o una aplicación en general según lo que va en un XML.
Lo que sí veo es que una aplicación médica, en todo caso, deberá tener en algún momento un mapeador de su dominio a HL7.
Nos leemos!