1.443 visualizaciones desde el 14 de Enero del 2017
6,1 MB
58 paginas
Creado hace 11a (22/11/2013)
Python hasta en los Rincones
o como una serpiente se puede comer un león
Uso de Python en el proyecto Meer para la generación automática de aplicaciones para termi-
nales móviles inteligentes a partir de informes DICOM-SR
Bon dia
• Creado en 1986 por el Profesor Vicente
Hernández García.
• Desarrollo y aplicación de las tecno-
logías Grid y la Computación de Altas
Prestaciones en ámbitos como la inge-
niería, la biomedicina, el e-Gobierno o la
computación científica.
• 28 miembros y participamos en un nú-
mero significativo de proyectos
Mayte Giménez
• Ingeniera Informática
• Máster Universitario en Inteligencia Arti-
ficial, Reconocimiento de Formas e Ima-
gen Digital (*)
• Grado en Bellas Artes (*)
Jon Nieve
• No sabe nada.
(*) Cursando
ÍNDICE
1. La fábula del león y la serpiente:
1.1. Escenario.
1.2. Motivación.
1.4. Objetivos.
1.6. Solución.
1.5. Las tripas de la solución.
2. Las uñas del león:
3. El arte de la guerra:
2.1. Dicom SR.
2.2. XML.
2.3. Android.
3.1. Generación automática de código.
3.2. Python.
3.3. Python zen.
4. El veneno de la serpiente:
4.1. Cómo unen todas las piezas.
4.2. Entornos virtuales.
4.3. Analizadores sintácticos.
4.4. Registros.
4.5. Diccionarios vs. clases.
4.6. Plantillas y configuración.
5. Moraleja.
Una serpiente se puede comer un león
En trozos pequeños y con los dientes afilados
El león en su sabana
Definición del escenario del problema.
Dispositivos para capturar
imagen médica
Estaciones de trabajo
Servidores
Componentes principales de los PACs
• Imágen médica digital revolu-
ciona la práctica clínica.
• Sistemas de Adquisición y Pro-
cesado de Imagen Médica
(PACs).
• Uso de estándar DICOM.
• Estándar para informes médi-
cos estructurados DICOM-SR.
• Información no ambigua y
• Cuello de botella en la adqu-
jerárquica.
sición.
¿No puede la serpiente ser vegetariana?
Ó porque nos decidimos a abordar este problema
• Trabajos previos del grupo de investigación, publicados en:
Maestre C, Segrelles-Quilis JD, Torres E, Blanquer I, Medina R, Hernández V, Martí
L. Assessing the Usability of a Science Gateway for Medical Knowledge Bases with
TRENCADIS. J Grid Computing 2012; 10:665–688.
• Utilización de interfaz web para introducir informes médicos estructurados:
• Más fácil e intuitivo.
• Sencillo de aprender.
• Pero menos productivo.
• Para mejorar estos resultados se solicitó el siguiente proyecto financiado por la UPV
dentro del programa PAID:
Diseño de Componentes Cloud Facilitadores del Despliegue y la Alta Disponibilidad
de Servicios TRENCADIS, para compartir Imágenes Médicas DICOM e informes Aso-
ciados DICOM-SR
OBjetivos
Meer
• Desarrollar una aplicación que automá-
ticamente genere una aplicación para
Android que permitan la introducción de
informes DICOM-SR.
• Interacción con el usuario simple.
• Aumentar la productividad al introducir
informes médicos estructurados, apro-
vechando las nuevas tecnologías.
Charla
• Analizadores sintácticos.
• Generación automática de código.
• Entornos virtuales.
• Configuración.
• Uso de plantillas.
• Código bello para aplicaciones bellas.
• Cómo comerse un león.
La serpiente tras el atracón
Definición de la solución propuesta
• Aplicación Android para rellenar
informes médicos estructura-
dos.
• Aplicación generada automáti-
camente.
• Ventajas de esta solución:
• Interfaz de usuario intuitiva.
• Fácil adopción.
• Sigue el estándar DICOM-SR.
• Solución genérica
• Se adapta a distintos tipos de
informes automáticamente.
Aplicación Android para gestión de informes médicos
Disección de la solución
Plantillas de
informes basados
en DICOM-SR
Plantillas genera-
doras de código
en Jinja2
Generador de
código
Código generado
Aplicación Android
Informe
DICOM-SR
Esqueleto Aplicación
Android
ÍNDICE
1. La fábula del león y la serpiente:
1.1. Escenario.
1.2. Motivación.
1.4. Objetivos.
1.6. Solución.
1.5. Las tripas de la solución.
2. Las uñas del león:
3. El arte de la guerra:
2.1. Dicom SR.
2.2. XML.
2.3. Android.
3.1. Generación automática de código.
3.2. Python.
3.3. Python zen.
4. El veneno de la serpiente:
3.1. Cómo unen todas las piezas.
3.5. Registros.
5. Moraleja.
3.2. Entornos virtuales.
3.3. Diccionarios vs. clases.
3.4. Analizadores sintácticos.
3.6. Plantillas y configuración.
DICOM-SR
• Múltiples beneficios derivados del uso de DICOM-SR:
• Mejora la comunicación entre los profesionales
• Los informes son más precisos y concisos.
• Sistemas asistidos por computador para tomas de decisiones.
• ...
• La adquisición de informes DICOM-SR de modo tradicional es un cuello de botella.
XML
...
<NUM>
<CONCEPT_NAME>
<CODE_VALUE>RID29929</CODE_VALUE>
<CODE_SCHEMA>RADLEX</CODE_SCHEMA>
<CODE_MEANING>Cuadrante Externo Superior de la Mama Derecha</CODE_MEANING>
<CODE_MEANING2>Upper Outer Quadrant of Right Female Breast</CODE_MEANING>
</CONCEPT_NAME>
Fragmento de un fichero xml que contiene una plantilla basada en DICOM-SR
Generador de
Android
Código generado
Aplicación Android
Esqueleto Aplicación
Android
ÍNDICE
1. La fábula del león y la serpiente:
1.1. Escenario.
1.2. Motivación.
1.4. Objetivos.
1.6. Solución.
1.5. Las tripas de la solución.
2. Las uñas del león:
3. El arte de la guerra:
2.1. Dicom SR.
2.2. XML.
2.3. Android.
3.1. Generación automática de código.
3.2. Python.
3.3. Python zen.
4. El veneno de la serpiente:
4.1. Cómo unen todas las piezas.
4.2. Entornos virtuales.
4.3. Analizadores sintácticos.
4.4. Registros.
4.5. Diccionarios vs. clases.
4.6. Plantillas y configuración.
5. Moraleja.
“ Los ordenadores son buenos siguiendo
instrucciones, pero no leyendote la mente ”
Donal Knuth
Generación automática de código
Python Genera código
Lenguaje Ventajas
C/ C++
Una vez compilado el usuario no
podrá leer el código fuente (?)
Es un lenguaje rápido. (?)
Java
Python
Ruby
Perl
Una vez compilado el usuario no
podrá leer el código fuente (?)
El código es portable.
Los generadores son fácilmente
escalables.
El análisis de texto es simple.
Existen APIs de XML son simples
Inconvenientes
Está orientado a la gestión de texto plano.
La E/S no es portable.
XML y las expresiones regulares son difíciles
de utilizar.
Fuerte tipado.
No aconsejado para el análisis sintáctico.
Fuerte tipado.
Otros ingenieros pueden necesitar aprender
el lenguaje. (?)
Code generation in action (Jack Herrington)
Python
Plantillas de
informes basados
en DICOM-SR
Generador de
código
Código generado
Bello es mejor que feo.
Python zen.
pep-8
PEP-256
Aplicaciones bellas para código bello
Amarás el estilo internacional.
1. La fábula del león y la serpiente:
1.1. Escenario.
1.2. Motivación.
1.4. Objetivos.
1.6. Solución.
1.5. Las tripas de la solución.
2. Las uñas del león:
3. El arte de la guerra:
2.1. Dicom SR.
2.2. XML.
2.3. Android.
3.1. Generación automática de código.
3.2. Python.
3.3. Python zen.
4. El veneno de la serpiente:
4.1. Cómo unen todas las piezas.
4.2. Entornos virtuales.
4.3. Analizadores sintácticos.
4.4. Registros.
4.5. Diccionarios vs. clases.
4.6. Plantillas y configuración.
5. Moraleja.
Disección de la solución
Plantillas de
informes basados
en DICOM-SR
Plantillas genera-
doras de código
en Jinja2
Generador de
código
Código generado
Aplicación Android
Informe
DICOM-SR
Esqueleto Aplicación
Android
cómo se unen todas las piezas del puzzle
.java
Activity
Controlador
.XML
Layouts / Strings
Vista
.java
Class
Modelo
Arquitectura de una aplicación Android
• Generación automática de código
guiada por modelos.
• Sistemas de plantillas:
• strigs.Template
• Jinja2
• Configurable en función de las necesi-
dades del usuario.
• Prototipo evolucionado desde la fase
de diseño para ser el esqueleto de la
aplicación Android.
• Generación del código que construirá:
• Vista (xml)
• Modelo (java)
• Controlador (java)
• Gestión de dependencias aséptica (de verdad).
• Ficheros bajo el sistema de control de versiones.
• Tantos ficheros de requisitos como entornos de trabajo:
• Desarrollo
• Producción
• ...
$ pip install requirements.txt
Migrar es complejo
Dise
Links de descarga
http://lwp-l.com/pdf1516
Comentarios de: python hasta en los rincones o como una serpiente se puede comer un león (0)
Comentarios de: python hasta en los rincones o como una serpiente se puede comer un león (0)
No hay comentarios