Maqueta de la Escuela Politécnica de la Universidad de Alcalá, en los pasillos de la Escuela.

Detalle de la biblioteca de la Escuela Politécnica de la Universidad de Alcalá.

Edificio de la Unidad de Investigación en Telemedicina y e-Salud del Instituto de Salud Carlos III. Campus de Chamartin.

Laboratorio en la Escuela Politécnica Superior de Informática. Universidad de Alcalá.

Detalle del patio interior de la Escula Politécnica Superior. Universidad de Alcalá.

jueves, 24 de febrero de 2011

Java: Derivar la salida de mensajes a un JTextArea y no morir en el intento

El otro día estuve haciendo una pequeña clase que dibujaba en un JFrame un JTextArea y cuya misión era recoger todos los mensajes que se generasen en otros módulos del una aplicación mayor mediante la salida estándar System.out.println(...). Lo que en principìo iba a ser un camino de rosas se convirtió en una pequeña batalla de esas que suelen surgir por cualquier tontería que uno se empeña en hacer.

El problema radicaba en que si escribía directamente en el JTextArea caracteres acentuados (á,é,...) u otro tipo como "ñ" las escribía correctamente, es decir, el juego de caracteres (CharSet) utilizado era el correcto, sin embargo cualquier salida que viniese tanto por la lectura del contenido de un fichero como por la utilización directa del método println no lo reconocía y lo mostraba con un pequeño cuadro en blanco.

La redirección la hacía así:
...
CTextAreaOutputStream taos = new CTextAreaOutputStream(textArea);
System.setOut(taos);
...

Estando definidia la clase CTextAreaOutputStream como:

public class CTextAreaOutputStream extends OutputStream {
private JTextArea jta
public CTextAreaOutputStream(JTextArea jta) { this.jta = jta;}
public void write(int theByte){
char theChar = (char)theByte;
jta.append(""+theChar);
}
}

Finalmente, después de mucho probar y buscar, dí con la solución, y no es otra que sobreescribir el método sincronizado println y no write de forma que el resultado final quedó así:

...
CTextAreaOutputStream taos = new CTextAreaOutputStream();
//Redirijo los println
System.setOut(new PrintStream(taos, true){
public synchronized void println(String s){
if((s != null)&&(s.length() > 0)){
textArea.setText(textArea.getText() + " " + s);
}
}
});
...

Y la clase

public class CTextAreaOutputStream extends OutputStream {
public void write(int theByte){}
}

Una clase vacía, quizás una solución poco elegante, pero funcionó, que era lo que se buscaba.

Bye.

miércoles, 23 de febrero de 2011

SNOMED CT: Introducción

Una terminología es “un conjunto de términos o vocablos de determinada profesión, ciencia o materia” según la Real Academia Española de la Lengua. Por lo tanto, podríamos decir que una terminología clínica es: “un conjunto de términos específicos relacionados con el ejercicio práctico de la medicina y fundamentados en la atención de la salud de los pacientes”. Esta definición se podría completar añadiendo además que: “una terminología clínica es también un conjunto de términos estructurados y normalizados que busca servir de instrumento para el registro de datos clínicos, como base para otras posibles investigaciones o como medio de intercambio de información clínica entre profesionales para la atención de la salud de los pacientes”.

La interoperabilidad es la cualidad que permite que sistemas informáticos heterogéneos, que no fueron diseñados pare ello, reciban e integren información de forma comprensible sin necesidad de intervención humana. La interoperabilidad semántica posibilita la normalización de los datos intercambiados y su contexto para que puedan ser comprensibles e interpretados de igual manera por todos los participantes en el proceso.

Snomed CT (Systematized Nomenclature of Medicine – Clinical Terms) es la terminología clínica integral, multilingüe y codificada de mayor amplitud, precisión e importancia desarrollada en el mundo.

Snomed CT es un producto que nace de la fusión entre Snomed RT (Snomed Reference Terminology), creada por el College of American Pathologists (CAP) y el Clinical Terms Version 3 (CTV3), desarrollada por la National Health Service (NHS) del Reino Unido. Esta fusión ha permitido la combinación de los términos en los ámbitos de las ciencias básicas, la bioquímica y las especialidades médicas de Snomed RT con los contenidos de la atención primaria del CTV3, dando lugar a una terminología de referencia que permite a los profesionales de la salud de todo el mundo representar la información clínica de forma precisa e inequívoca, en formato multilingüe.

Actualmente, esta terminología es mantenida y distribuida por la International Health Terminology Standards Development Organisation (IHTSDO).

Para ver las jerarquías y la lógica formal de Snomed CT se necesita un navegador. Existen diversos navegadores gratuitos en la web que permiten la consulta de la terminología, como por ejemplo:
Otras listas similares con navegadores.

lunes, 14 de febrero de 2011

Java: Centrado de ventanas en pantalla

Centrar una ventana en la pantalla siempre ha sido algo pesado. Con versiones anteriores a la versión 1.4 del JDK teníamos que crear un objeto que almacenase las dimensiones tanto de la ventana general como la del diálogo a centrar. La forma era la siguiente:

Dimension pantalla = Toolkit.getDefaultToolkit().getScreenSize();
Dimension ventana = this.getSize();
this.setLocation((pantalla.width - ventana.width)/2, (pantalla.height - ventana.height)/2);}

A partir de la versión 1.4 esto ha cambiado simplificándose notablemente este proceso. Simplemente añadiremos la siguiente sentencia:

ventana.setLocationRelativeTo(null);

Y todo resuelto.

jueves, 3 de febrero de 2011

Meeting de la Asociación EN13606 en Dublín



El pasado 28 de enero se celebró en Dublín donde se trataron temas importantes como el futuro de la asociación así como la denominación oficial para el actual estándar EN13606 ó EHRcom. En este último punto se acordó utilizar ISO/CEN13606 o bien el nombre no formal de EHRcom para referirse al estándar. Así mismo se acordó cambiar el logo de la asociación y aunque no se quedó en cuál iba a ser el definitivo si se hizo la propuesta que se muestra en la imagen.
 
También se acordó retirar el antigo estándar de tipos de datos CEN y apostar por el ISO21090 donde la Unidad de Telemedicina del ISCIII de Madrid juega un papel relevante.

Otro de los temas tratados fue la creación de una red de excelencia de interoperabilidad semántica entre infraestructuras de salud europeas involucrando a organizaciones, centros nacionales de competencia y asociaciones industriales para definir e implementar una agenda de investigación relativa a la interoperabilidad semántica en los sistemas de información de salud y en particular en las historias clínicas de los pacientes. 

También se incluirá la puesta en marcha de la gestión de una organización virtual europea para la adaptación multilingüe y multicultural de clasificaciones internacionales de terminologías empleadas para formar propuestas para la sostenibilidad y la gobernanza de las información sanitaria.

La reunión se desarrolló durante toda la mañana y aunque se podría pensar en que su duración no fue muy grande las decicisiones y planes que allí se trataron constituyen un importante avance en las políticas de promoción y utilización del estándar ISO/CEN13606.

miércoles, 2 de febrero de 2011

Calidad Web: Prueba Heurística

En un aporte anterior se hablaba de las pruebas que deben hacerse para conseguir un mínimo de calidad en la creación de un sitio web. Todas las empresas y usuarios saben de la importancia de la calidad en un sitio web, la imagen de quien está detras del un sitio web está directamente relacionada con la calidad de su web. Uno de los factores para determinar dicha calidad es la usabilidad de ésta, es decir, el grado de facilidad de uso que aporte al usuario final, a quien va a probar el sitio web en definitiva.

Las pruebas o test heurísticos consisten en la evaluación de una serie de elementos con el fin de aportar calidad al sitio web. Autores como Jackob Nielsen  han realizado un gran trabajo en este campo. Una de las ventajas de las pruebas heurísticas es su bajo costo, en comparación con otros métodos de control de calidad para sitios web, como son las Pruebas de Usabilidad. Este costo estará determinado principalmente por el número de evaluadores y la cantidad de principios a evaluar.

Las pruebas heurísticas carecen del grado de subjetividad propias de las pruebas de usabilidad. En este caso será el evaluador el que determine si se cumple o no un determinado criterio, y no un grupo de usuarios, sin embargo, en ciertos elementos de análisis existirá cierta subjetividad por parte del evaluador. Sobre este tema, Nielsen afirma que con un número entre 3 y 5 de evaluadores será suficiente para eliminar esta subjetividad o reducirla a mínimos.

Respecto al conjunto de pruebas a realizar en el sitio web, Nielsen establece que son diez las pruebas que se entieneden como el conjunto más adecuado para mediar las características de un sitio web. Estas son las siguientes:

Visibilidad del estado del sistema:
La prueba mide si el usuario siempre sabe qué está haciendo el sistema. Se revisa si existen los diferentes elementos que ayudan a esto:
  • Indicación gráfica de donde se encuentra (ruta de acceso desde portada)
  • Indicación de que ha visto (marcar los enlaces visitados)
  • Indicción de que hay un proceso en marcha (anunciando estado de avance...)
  • Indicación de cuántos pasos faltan para terminar (como en el caso de que ya a un proceso de registro en el Sitio Web)

Similitud entre el sistema y el mundo real:
La prueba mide si el sitio se expresa de una manera comprensible para el usuario. Para ello se revisa si se emplean las convenciones habituales y que le permiten operar en el Sitio Web.

Control y libertad del usuario:
La prueba mide si los usuarios que se equivocan al hacer algo tienen forma de recuperarse de esos errores. Se revisa si existen formas de hacerlo. Por ejemplo: ¿Se puede deshacer una operación? ¿Se puede rehacer una operación?

Consistencia y cumplimiento de estándares:
La prueba mide si se cumplen los estándares que se usan en la Internet en el Sitio Web. Para ello se debe validar y revisar el sitio con las herramientas que se ofrecen en http://www.w3c.org para HTML y CSS.

Prevención de errores:
La prueba permite validar si se cuenta con mecanismos que aseguren que el ingreso de cualquier información, por parte del usuario, permite evitarle errores. Para ello, se verifica si en las áreas en que los usuarios deben interactuar con el sistema, se les explica claramente lo que se espera de ellos. Por ejemplo:
  • Uso de Javascript para validar formularios: para que todos los campos obligatorios sean llenados, para que el número de RUT sea ingresado correctamente, etc.
  • Uso de elementos destacados en los formularios: indicar los campos obligatorios con asteriscos (*) o, bien, campos obligatorios marcados con color.

Preferencia al reconocimiento que a la memorización:
La prueba permite revisar si el Sitio Web ayuda al usuario a recordar cómo se hacía una operación, o bien le obliga a aprenderse los pasos cada vez que ingresa. Para conseguir este objetivo se verifica la existencia de una línea gráfica uniforme en todo el Sitio Web (mediante la cual el usuario entiende lo que se le ofrece con sólo mirarlos) y si se cuenta con un sistema de navegación coherente.

Flexibilidad y eficiencia de uso:
La prueba permite revisar si se ofrecen soluciones diferentes de acceso a los contenidos, a los usuarios novatos respecto de los expertos. Por ejemplo, se puede contar con botones para los primeros y atajos de teclado para el experto. También es importante medir en esta prueba la carga rápida de los sitios mediante una buena construcción del código.

Estética y diseño minimalista:
La prueba pide que los elementos que se ofrezcan en la pantalla tengan una buena razón para estar presentes. Se verifica la existencia de elementos irrelevantes (texto, sonido e imagen), que no aportan ni ayudan a que el usuario distinga lo importante de lo superfluo. Para ello se verifica la existencia de:
  • Jerarquías visuales: que permiten determinar lo importante con una sola mirada.
  • Tamaño de imágenes: que no afectan la visión general de la información del Sitio Web; se verifica tanto tamaño como peso.

Ayuda ante errores:
Se verifica que el usuario sepa cómo enfrentar problemas en una página tanto online como offline; entre los elementos que se miden se cuentan:
  • Mensaje 404 personalizado, con el fin de ofrecer una información y navegación alternativa cuando una página no es encontrada.
  • Mensaje de falla ofrece una alternativa offline (teléfono, mesa de ayuda) que permite que el usuario mantenga su confianza en la institución.
Ayuda y documentación:
Se revisa que el Sitio Web ofrezca ayuda relevante de acuerdo al lugar en que el usuario esté visitando; también se revisa la existencia de sistemas de búsqueda que permiten al usuario encontrar los elementos de ayuda que sean relevantes de ofrecer (preguntas frecuentes; páginas de ayuda).

martes, 1 de febrero de 2011

Calidad Web: Prueba de Usabilidad

En el desarrollo de sitios web no todo vale. El éxito de un sitio web está no sólo en su diseño sino también en el atractivo que aporta al usuario final que es quien lo manejará. En este caso veremos un tipo de prueba que debe realizarse en todo proyecto de desarrollo web antes incluso que lanzar una sola línea de código. Las pruebas de usabilidad aseguren que los usuarios van a entender la arquitectura visual del sitio web, la forma en la que está organizado y los contenidos y funcionalidades que ofrece.

Es muy importante tener en cuenta que las pruebas de usuario consisten en observar el comportamiento de los usuarios y no en escuchar sus opiniones. Un usuario puede impresionarse por un diseño atractivo pero no por ello su interfaz se lo tiene que poner fácil cuando quiera realizar una determinada acción como acceder a una determinada información o realizar una búsqueda de objetos.

La prueba de usabilidad son pruebas efectuadas por los usuarios con el objeto de determinar si es entendible los contenidos y funcionalidades del sitio web. Para este tipoo de análisis se necesitará un grupo de personas a las que se le harán una serie de preguntas sobre el sitio web a desarrollar, sobre todo sobre el aspecto visual de éste. Los resultados obtenidos durante la realización de estas pruebas permitirán concretar y mejorar los elementos con los que se trabajará en un futuro. La prueba de usabilidad consta a su vez de dos tipos de pruebas determinantes:
  • Prueba Inicial: sirve para ver cómo funciona la organización de los contenidos y los elementos de diseño elegidos, si son entendibles por el usuario. Esta prueba se realiza generalmente con un dibujo descriptivo de la web.
  • Prueba de Boceto Web: sirve para ver si es entendible la navegación, si el usuario sabe llegar a un sitio determinado de la web con los elementos visuales que se le ofrecen. Esta prueba se realiza con una maqueta web semi funcional.
     Hasta pronto...

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites