That’s all folks!

Leer en castellano
Read in English

Aquest és un mes de comiat, doncs s’acaba el 2015. El dia 1 de desembre la darrera persona que estava vinculada al Centre de Competències d’Integració ha deixat el TecnoCampus i amb ella el Centre finalitza la seva trajectòria. Han estat uns anys meravellosos, dels que vull destaca la il·lusió per el projecte i la convicció de la seva necessitat, i per sobre de tot les persones que el van fer possible, Ester, Jordi, Jordi, Rafa, Matias, Manel, David, Catherine, Ariadna, Carme, Marc, Albert, Néstor, … Fins sempre.

Llegir en català
Read in English

Este es un mes de despedidas pues acaba el 2015. El día 1 de diciembre la última persona que estaba vinculada al Centro de Competencias de Integración ha dejado el TecnoCampus y con ella el Centro finaliza su trayectoria. Han sido unos años maravillosos, de los que quisiera destacar la ilusión por el proyecto y la convicción de su necesidad, y por encima de todo las personas que lo hicieron posible, Ester, Jordi, Jordi, Rafa, Matias, Manel, David, Catherine, Ariadna, Carme, Marc, Albert, Néstor, … Hasta siempre.

Leer en castellano
Llegir en català

We are so close to Thanksgiving Day, close to the end of 2015. The 1st December the last person enrolled with the Integrations Competence Center left TecnoCampus and on that moment the Center ends its way. It has been a long time since we started, and I would like to remark firstly the enthusiasm for the project, the conviction that it was necessary and mainly the group of persons that has been deeply involved in the Center, Ester, Jordi, Jordi, Rafa, Matias, Manel, David, Catherine, Ariadna, Carme, Marc, Albert, Néstor, … Forever…

Aplicació d’Intel·ligència Artificial en el reconeixement de la Llengua de signes catalana

Aplicació d’Intel·ligència Artificial en el reconeixement de la Llengua de signes catalana

Leer en castellano
Read It in English

En aquesta entrada s’explica breument la recerca realitzada per estudiar mecanismes per al reconeixement de la llengua de signes a partir d’imatges.

Aquest projecte es va plantejar degut a que des del CCI es vol potenciar la utilització de la intel·ligència artificial per aconseguir beneficis en àmbits relacionats amb la salut. En una societat on cada dia s’aposta més per la integració de les persones amb discapacitat i on la tecnologia cada dia és més present, es considera que cal cercar formes d’aprofitar-la per aquest fi.

En aquest projecte a més d’estudiar les possibilitats en l’àrea del reconeixement de la llengua de signes, es va realitzar una eina per facilitar l’aprenentatge i la millora en l’ús de la llengua de signes catalana (LSC). Aquesta eina permet fer una demostració d’una de les possibles aplicacions que podria tenir aquest algoritme. Addicionalment podria tenir moltes altres aplicacions, com per exemple un traductor per mòbils amb càmera que permetés la comunicació amb persones no familiaritzades amb la LSC.

Un dels punts claus en un sistema de reconeixement d’imatge és el sistema de captura d’aquestes. La tecnologia escollida és el dispositiu Kinect desenvolupat per Microsoft mitjançant el qual es capturen els signes duts a terme per l’usuari. El procés de captura es duu a terme utilitzant la càmera de profunditat que inclou Kinect. A més de capturar la profunditat, gràcies a la càmera d’infrarojos permet una major independència de la il·luminació disponible tant en la captura d’imatges d’entrenament com en la fase d’explotació.

Quan Kinect retorna la imatge de profunditat, imatge on es representa la profunditat amb diferents colors, aquesta es binaritza. Aquest procés consisteix en que si el valor d’un píxel supera el llindar el píxel serà d’un color (blanc o negre) i si no el supera serà de l’altre color. D’aquesta manera es pot separar les mans del fons.

Posteriorment la imatge binaritzada ha de passar un sistema de preselecció que s’encarrega de descartar les lletres que no coincideixin en orientació i nombre de vèrtexs amb la imatge d’entrada.

Després de la preselecció s’inicia l’algoritme d’agrupament Knn sobre les lletres preseleccionades, aquest algoritme utilitza dos paràmetres que són l’àrea de la mà segmentada en quatre porcions i el perímetre de la mà. L’algoritme Knn determina la lletra que ha realitzat l’usuari, comparant el valor dels dos marcadors de la mostra realitzada per l’usuari amb les mostres d’entrenament que té l’aplicació.

A la següent imatge es representa de forma resumida aquest procés.

L’algoritme de clustering Knn consta de dues parts. Prèviament a la fase d’explotació del algoritme es necessari realitzar una fase d’entrenament en la que es defineixen els clústers que corresponen a cadascuna de les lletres.

Per generar aquests clústers es proporciona a l’algoritme un conjunt d’imatges de mostra  etiquetades amb la lletra a que es corresponen. Les mostres d’entrenament són imatges dels signes realitzades per un grup de persones de diferents edats, sexes i races. En base a l’àrea segmentada de la mà i el perímetre d’aquesta es situen les mostres en l’espai formant els diferents clústers.

En la fase d’explotació inicialment es calcula el valor dels marcadors de la mostra a reconèixer per poder situar la nova mostra dins l’espai de mostres d’entrenament.

A continuació es calcula la distància euclidiana de la mostra a reconèixer amb totes les mostres d’entrenament utilitzant els valors dels marcadors dividits entre la seva variança per tal d’igualar el seu pes. Es necessari dividir els marcadors entre la variança per evitar que els de major variabilitat tinguin un pes major a l’algoritme.

Seguidament cal obtenir el conjunt de les K mostres d’entrenament amb major similitud i determinar quina lletra té un major nombre d’ocurrències. La lletra predominant és el resultat del reconeixement. Es a dir s’obté les mostres que estan més properes en l’espai a la imatge que es vol reconèixer, suposant que aquestes pertanyen a la mateixa lletra.

Per últim el procés de Knn es repeteix 25 vegades per signe, a partir de 50 imatges del signe realitzat, agafades no consecutivament per reduir l’efecte de possibles errors de captura. A aquestes 25 imatges es comprova que com a mínim hi hagi una lletra que hagi estat seleccionada pel Knn més cops que el valor definit pel marge d’acceptació, en cas contrari s’informa que el reconeixement ha fallat. El valor òptim del marge d’acceptació s’ha considerat de quinze, mitjançant proves empíriques amb diferents persones utilitzant l’aplicació.

Llegir en català
Read It in English

En esta entrada se explica brevemente la investigación realizada para estudiar mecanismos para el reconocimiento de la lengua de signos a partir de imágenes.

Este proyecto se planteó debido a que desde el CCI se quiere potenciar la utilización de la inteligencia artificial para conseguir beneficios en ámbitos relacionados con la salud. En una sociedad donde cada día se apuesta más por la integración de las personas con discapacidad y donde la tecnología cada día es más presente, se considera que hay que buscar formas de aprovecharla por este fin.

En este proyecto además de estudiar las posibilidades en el área del reconocimiento de la lengua de signos, se realizó una herramienta para facilitar el aprendizaje y la mejora en el uso de la lengua de signos catalana (LSC). Esta herramienta permite hacer una demostración de una de las posibles aplicaciones que podría tener este algoritmo. Adicionalmente podría tener otras muchas aplicaciones, como por ejemplo un traductor para móviles con cámara que permitiera la comunicación con personas no familiarizadas con la LSC.

Uno de los puntos claves en un sistema de reconocimiento de imagen es el sistema de captura de estas. La tecnología escogida es el dispositivo Kinect desarrollado por Microsoft mediante el cual se capturan los signos llevados a cabo por el usuario. El proceso de captura se realiza utilizando la cámara de profundidad que incluye Kinect. Además de capturar la profundidad, gracias a la cámara de infrarrojos permite una mayor independencia de la iluminación disponible tanto en la captura de imágenes de entrenamiento como en la fase de explotación.

Cuando Kinect devuelve la imagen de profundidad, imagen donde se representa la profundidad con diferentes colores, esta se binariza. Este proceso consiste en que si el valor de un píxel supera el umbral definido el píxel será de un color (blanco o negro) y si no lo supera será del otro color. De este modo se puede separar las manos del fondo.

Posteriormente la imagen binarizada tiene que pasar un sistema de preselección que se encarga de descartar las letras que no coincidan en orientación y número de vértices con la imagen de entrada.

Después de la preselección, se inicia el algoritmo de agrupamiento Knn sobre las letras preseleccionadas, este algoritmo utiliza dos parámetros que son el área de la mano segmentada en cuatro porciones y el perímetro de la mano. El algoritmo Knn determina la letra que ha realizado el usuario, comparando el valor de los dos marcadores de la muestra realizada por el usuario con las muestras de entrenamiento que tiene la aplicación.

En la siguiente imagen se representa de forma resumida este proceso.

El algoritmo de clustering Knn consta de dos partes. Previamente a la fase de explotación del algoritmo es necesario realizar una fase de entrenamiento en la que se definen los clústeres que corresponden a cada una de las letras.

Para generar estos clústeres se proporciona al algoritmo un conjunto de imágenes de muestra etiquetadas con la letra a que se corresponden. Las muestras de entrenamiento son imágenes de los signos realizadas por un grupo de personas de diferentes edades, sexos y razas. En base al valor del área segmentada de la mano y el perímetro de esta se sitúan las muestras en el espacio formando los diferentes clústeres.

En la fase de explotación inicialmente se calcula el valor de los marcadores de la muestra a reconocer para poder situar la nueva muestra dentro del espacio de muestras de entrenamiento.

A continuación se calcula la distancia euclídea de la muestra a reconocer con todas las muestras de entrenamiento utilizando los valores de los marcadores divididos entre su varianza para igualar su peso. Es necesario dividir los marcadores entre la varianza para evitar que los de mayor variabilidad tengan un peso mayor en el algoritmo.

Seguidamente hay que obtener el conjunto de las K muestras de entrenamiento con mayor similitud y determinar qué letra tiene un mayor número de ocurrencias. La letra predominante es el resultado del reconocimiento. Es decir se obtiene las muestras que están más cercanas en el espacio a la imagen que se quiere reconocer, suponiendo que estas pertenecen a la misma letra.

Por último el proceso de Knn se repite 25 veces por signo, a partir de 50 imágenes del signo realizado, cogidas no consecutivamente para reducir el efecto de posibles errores de captura. En estas 25 imágenes se comprueba que como mínimo haya una letra que haya sido seleccionada por el Knn más veces que el valor definido por el margen de aceptación, en caso contrario se informa que el reconocimiento ha fallado. El valor óptimo del margen de aceptación se ha considerado de quince, mediante pruebas empíricas con diferentes personas utilizando la aplicación.

This post is only available in Catalan and Spanish:
Llegir en català (Read it in Catalan)
Leer en castellano (Read it in Spanish)
Inaugurat espai d’experiències SNOMED CT al bloc del CCI

Inaugurat espai d’experiències SNOMED CT al bloc del CCI

Leer en castellano
Read It in English

El Centre de Competències d’Integració ha inaugurat un espai al seu bloc per compartir experiències d’adopció i ús de SNOMED CT per part dels centres proveïdors i d’altres organitzacions de l’àmbit de la salut.De moment l’espai ja compta amb l’experiència d’implantació del subconjunt d’al·lèrgies a la Història Clínica Electrònica corporativa, anomenada TESISHCE, de la Corporació de Salut del Maresme i la Selva (CSMS): Espai d’experiències SNOMED CT.

El subconjunt d’al·lèrgies va ser desenvolupat per un equip d’experts multidisciplinar al projecte Diccionari Clínic per iSalut. A l’àrea de descàrrega de SNOMED CT del web de l’OFSTI (Oficina d’estàndards i Interoperabilitat) es poden descarregar les versions internacionals de SNOMED CT, l’extensió catalana i tots els subconjunts creats pel Diccionari Clínic.

Si voleu aportar la vostra experiència al nou espai del bloc us podeu posar en contacte amb nosaltres a través de: Ariadna Rius, Responsable Línia Terminologia, Centre de Competències d’Integració de l’OFSTI, Fundació Tecnocampus, arius@tecnocampus.cat.

Llegir en català
Read It in English

El Centre de Competències d’Integració ha inaugurado un espacio en su blog dedicado a compartir experiencias de adopción y uso de SNOMED CT por parte de los centros proveedores y otras organizaciones del ámbito de la salud. De momento el espacio ya cuenta con la experiencia de implantación del subconjunto de alergias en la Historia Clínica Electrònica corporativa, TESISHCE, de la Corporación de Salud del Maresme y la Selva (CSMS): Espacio de experiencias de SNOMED CT.

El subconjunto de alergias fue desarrollado por un equipo multidisciplinar de expertos en el proyecto Diccionario Clínico para iSalut. En el área de descarga de SNOMED CT de la web de la OFSTI (Oficina de Estándares e interoperabilidad) se pueden descargar las versiones internacionales de SNOMED CT, la extensión catalana y todos los subconjuntos creados para el Diccionario Clínico.

Si queréis aportar vuestra experiencia en el nuevo espacio del blog os podéis poner en contacto con nosotros a través de: Ariadna Rius, Responsable Línea Terminología, Centro de Competencias de Integración de la OFSTI, Fundación Tecnocampus, arius@tecnocampus.cat.

This post is only available in Catalan and Spanish:
Llegir en català (Read it in Catalan)
Leer en castellano (Read it in Spanish)
Aplicació d’Intel·ligència Artificial en l’anàlisi de dades genètiques

Aplicació d’Intel·ligència Artificial en l’anàlisi de dades genètiques

Leer en castellano

En aquesta entrada us presento els primers resultats de la recerca feta amb la Universitat Oberta de Catalunya, en el Màster en Enginyeria Informàtica, i en la qual seguim treballant per ampliar els resultats obtinguts. Aquest treball és una aportació al projecte SUMMIT (Salut en les UltraMaratons i els seus líMITs), que té la finalitat de determinar si la població que practica exercici de llarga durada i alta intensitat té més risc sobre la salut que la sedentària i/o la moderadament activa.

El treball consisteix en l’anàlisi de dades genètiques; concretament s’analitza la incidència de l’esforç d’alta intensitat en la generació de lncRNA (long non-coding RiboNucleic Acid), aplicant tècniques d’Intel·ligència Artificial (IA). Els gens estan formats per segments d’ADN (Àcid Desoxiribonucleic) i ARN (Àcid Ribonucleic), els lncRNA són un tipus d’ARN força desconegut i que estudis recents estan relacionant amb l’aparició de malalties degeneratives, oncològiques i amb l’envelliment en general. L’objectiu del projecte és obtenir resultats que permetin conèixer millor aquest tipus d’ARN, ja que no té una funció clara identificada.

Per assolir aquest objectiu s’han usat tècniques de Machine Learning no supervisat, és a dir que no es comptava amb un conjunt de dades d’entrenament ni de validació perquè no existeix. I s’han aplicat a dades reals obtingudes pel projecte SUMMIT. D’entre la informació recollida, s’han utilitzat els nivells d’expressió de 28 mostres preses a una travessa per la muntanya de més de 80 km, entre les quals hi ha:

  • 16 mesures fetes abans de la travessa i 12 després.
  • 8 dones i 20 homes.
  • Mostres de persones que han completat diferents distàncies de la cursa.
  • 18 persones actives (entre 3 i 10 hores d’esport setmanals) i 10 elit (més de 10).

I de cadascuna es compta amb el nivell d’expressió de més de 53.600 probesets (proteïnes, ARN, etc.).

L’expressió genètica és el procés pel qual la informació d’un gen s’utilitza en la síntesi d’una molècula d’ARN o d’una proteïna. El nivell d’expressió és diferent per cada cèl·lula, de manera que el seu estudi permet comparar cèl·lules malaltes i sanes, amb medicació o sense, amb diferents condicions d’estrès, etc.

La imatge següent mostra els nivells d’expressió d’una de les mostres utilitzades:

Les fites concretes del treball són:

  • Analitzar la incidència de determinades característiques pròpies de l’esforç d’alta intensitat, com la distància recorreguda, el moment de la travessa o el grup d’activitat, en la generació de proteïnes i lncRNA.
  • Correlacionar nivells d’expressió de proteïnes i de lncRNA.
  • Relacionar proteïnes altament correlacionades amb el pathway (conjunts de proteïnes que treballen plegades per dur a terme una acció biològica) de la Glucosa, per analitzar la incidència que hi puguin tenir els lncRNA.

Per assolir-les s’han treballat les fases següents:

Tractament de les dades: Recerca de BBDD, integració de les dades i homogeneïtzació, filtratge, normalització, inclusió de metadades, etc. Amb aquesta fase s’han reduït els 53.617 probesets a 1.200 proteïnes i 8.656 lncRNA de manera que es passa a treballar amb 28 mostres i 9.856 probesets cadascuna.

Agrupació: Agrupament dels nivells d’expressió fent prèviament un anàlisi de components principals (algoritme PCA – Principal Component Analysis) i usant l’algoritme PAM (Partitioning Around Medoids) per agrupar en 2 i 3 clústers. S’han agrupat els nivells d’expressió de totes les mostres (barreja) i s’han comparat amb els agrupaments dels nivells d’expressió per cada característica (homes, dones, elit, actius, abans i després de la cursa, etc.).

Correlació de Pearson: Separació dels nivells d’expressió de proteïnes dels de lncRNA i càlcul de correlacions entre ambdós conjunts (de totes les proteïnes amb tots els lncRNA).

Anàlisi de components independents: Filtratge dels nivells d’expressió de proteïnes involucrades al pathway de la Glucosa i correlacionades amb lncRNA. Aplicació de l’algoritme ICA (Independent Component Analysis) per construir un model dels nivells d’expressió amb les diferents característiques i aplicació d’un test hipergeomètric per analitzar la incidència de les proteïnes al model.

Resultats obtinguts:
L’anàlisi PCA indica que els nivells d’expressió amb major variabilitat són els de la característica distància superior a 60km i els més homogenis els del moment de la cursa PRE.

Les agrupacions, i el seu anàlisi, indiquen que les característiques amb més incidència en la generació de proteïnes i lncRNA són les distàncies inferior a 40 km i superior a 60 km i el moment de la cursa abans i després. Les imatges següents mostren els agrupaments en 3 clústers fets per distància i els de la barreja:

En el càlcul de la correlació de Pearson entre les proteïnes i els lncRNA filtrats, s’ha trobat un nombre elevat de proteïnes correlacionades amb els lncRNA, la qual cosa pot permetre investigar el paper dels lncRNA en les funcions de les proteïnes correlacionades, prioritzant els que han obtingut millor resultat (correlació més propera a 1).

En l’anàlisi ICA i el test hipergeomètric s’han trobat forces resultats amb alta correlació entre les proteïnes del pathway de la Glucosa i els lncRNA però no s’han trobat diferències estadísticament significatives de la incidència de les diferents proteïnes al model construït. Aquest resultat implica que no s’han trobat indicis que cap proteïna, per si sola, té més incidència al model que la resta. I, de retruc, tampoc cap lncRNA correlacionat amb aquestes proteïnes del pathway.

Actualment seguim treballant per ampliar els resultats obtinguts, replicar-los i afinar-los.

Si voleu més informació sobre el treball que s’està realitzant podeu demanar-la a través del correu arius@tecnocampus.cat.

Llegir en català

En esta entrada os presento los primeros resultados de la investigación hecha con la Universitat Oberta de Catalunya, en el Máster en Ingeniería Informática, y en la cual seguimos trabajando para ampliar los resultados obtenidos. Este trabajo es una aportación al proyecto SUMMIT (Salud en les UltraMaratones y sus líMITes), que tiene la finalidad de determinar si la población que practica ejercicio de larga duración y alta intensidad tiene más riesgo sobre la salud que la sedentaria y/o la moderadamente activa.

El trabajo consiste en el análisis de datos genéticos; concretamente se analiza la incidencia del esfuerzo de alta intensidad en la generación de lncRNA (long non-coding RiboNucleic Acid), aplicando técnicas de Inteligencia Artificial (IA). Los genes están formados por segmentos de ADN (Ácido Desoxirribonucleico) y ARN (Ácido Ribonucleico), los lncRNA son un tipo de ARN bastante desconocido y que estudios recientes están relacionando con la aparición de enfermedades degenerativas, oncológicas y con el envejecimiento en general. El objetivo del proyecto es obtener resultados que permitan conocer mejor este tipo de ARN, ya que no tiene una función clara identificada.

Para alcanzar este objetivo se han usado técnicas de Machine Learning no supervisado, es decir que no se ha utilizado un conjunto de datos de entrenamiento ni de validación porque no existe. Y se han aplicado a datos reales obtenidos para el proyecto SUMMIT. De entre la información recogida, se han utilizado los niveles de expresión de 28 muestras tomadas en una travesía por la montaña de más de 80 km, entre las cuales hay:

  • 16 medidas hechas antes de la travesía y 12 después.
  • 8 mujeres y 20 hombres.
  • Muestras de personas que han completado distintas distancias de la travesía.
  • 18 personas activas (entre 3 y 10 horas de deporte semanales) y 10 elites (más de 10).

Y de cada se ha medido el nivel de expresión de más de 53.600 probesets (proteínas, ARN, etc.).

La expresión genética es el proceso por el cual la información de un gen se utiliza en la síntesis de una molécula de ARN o de una proteína. El nivel de expresión es distinto para cada célula, de manera que su estudio permite comparar células enfermas y sanas, con medicación o sin, con distintas condiciones de estrés, etc.

La imagen siguiente muestra los niveles de expresión de una de las muestras usadas:

Los hitos concretos del trabajo son:

  • Analizar la incidencia de determinadas características propias del esfuerzo de alta intensidad, como la distancia recorrida, el momento de la travesía o el grupo de actividad, en la generación de proteínas y lncRNA.
  • Correlacionar niveles de expresión de proteínas y lncRNA.
  • Relacionar proteínas altamente correlacionadas con el pathway (conjuntos de proteínas que trabajan juntas para llevar a cabo una acción biológica) de la Glucosa, para analizar la incidencia que puedan tener los lncRNA.

Para alcanzar-los se han trabajado las fases siguientes:
Tratamiento de los datos: Búsqueda de BBDD, integración de los datos y homogeneización, filtrado, normalización, inclusión de metadatos, etc. Con esta fase se han reducido los 53.617 probesets a 1.200 proteínas y 8.656 lncRNA de manera que se pasa a trabajar con 28 muestras y 9856 probesets cada una.

Agrupación: Agrupación de los niveles de expresión realizando previamente un análisis de componentes principales (algoritmo PCA – Principal Component Analysis) y usando el algoritmo PAM (Partitioning Around Medoids) para agrupar en 2 y 3 clústeres. Se han agrupado los niveles de expresión de todas las muestras (mezcla) y se han comparado con las agrupaciones de los niveles de expresión por cada característica (hombres, mujeres, elite, activo, antes y después de la actividad, etc.).

Correlación de Pearson: Separación de los niveles de expresión de proteínas de los de lncRNA y cálculo de correlaciones entre ambos conjuntos (de todas las proteínas con todos los lncRNA).

Análisis de componentes independientes: Filtro de los niveles de expresión de proteínas involucradas en el pathway de la glucosa y correlacionadas con lncRNA. Aplicación del algoritmo ICA (Independent Component Analysis) para construir un modelo de los niveles de expresión con las diferentes características y aplicación de un test hipergeométrico para analizar la incidencia de las proteínas en el modelo.

Resultados obtenidos:
El análisis PCA indica que los niveles de expresión con mayor variabilidad son los de la característica distancia superior a 60 km y los más homogéneos los del momento de la actividad PRE.

Las agrupaciones, y su análisis, indican que las características con más incidencia en la generación de proteínas y lncRNA son las distancias inferior a 40 km y superior a 60 km y el momento de la actividad antes y después. Las imágenes siguientes muestran las agrupaciones en 3 clústeres hechos por distancia y los de la mezcla:

En el cálculo de la correlación de Pearson entre las proteínas y los lncRNA filtrados, se ha encontrado un número elevado de proteínas correlacionadas con los lncRNA, la cual cosa puede permitir investigar el papel de los lncRNA en las funciones de las proteínas correlacionadas, priorizando los que han obtenido mejor resultado (correlación más próxima a 1).

En el análisis ICA y el test hipergeométrico se han encontrado bastantes resultados con alta correlación entre las proteínas del pathway de la Glucosa y los lncRNA pero no se han encontrado diferencias estadísticamente significativas de la incidencia de las diferentes proteínas al modelo construido. Este resultado implica que no se han encontrado indicios de que ninguna proteína, por si sola, tiene más incidencia en el modelo que el resto. Y, por ende, tampoco ningún lncRNA correlacionado con estas proteínas del pathway.

Actualmente seguiremos trabajando para ampliar los resultados obtenidos, replicarlos y afinarlos.

Si queréis más información sobre el trabajo que se está realizando podéis solicitarla a través del correo electrónico: arius@tecnocampus.cat.

This post is only available in Catalan and Spanish:
Llegir en català (Read it in Catalan)
Leer en castellano (Read it in Spanish)
Serveis web a Mirth

Serveis web a Mirth

Leer en castellano

Un servei web (Web Service en anglès) és una col·lecció de protocols i estàndards que serveix per intercanviar dades entre aplicacions. Diferents aplicacions de programari desenvolupades en llenguatges de programació diferents i executades sobre qualsevol plataforma poden utilitzar els serveis web per l’intercanvi de dades en una xarxa com Internet. Aquesta gran interoperatibilitat s’aconsegueix gràcies a l’adopció d’estàndards oberts.

El protocol usat per la transferència de missatges entre serveis web és SOAP, un protocol de comunicació dissenyat per intercanviar missatges en format XML en una xarxa d’ordinadors, normalment sobre el protocol HTTP.

Mirth disposa d’un web service listener ja definit al qual nomes cal definir-li el port,nom del servei i les interfícies que es volen escoltar, aquest web service permet rebre un paràmetre de tipus cadena de caràcters.

D’aquesta manera no es restringeix el contingut ja que al ser una cadena de caràcters no es valida i pot ser qualsevol tipus de dades. Mirth s’encarregarà de rebre el contingut del literal i parsejarlo al tipus  de dada definit en al origen com pot ser un XML.

Encara que aquest servei web per defecte no és gaire restrictiu i es pot usar en molts casos, és possible que sigui necessari modificar una major quantitat d’aspectes del  servei web més enllà dels mencionats anteriorment per això s’ha definit l’opció dels serveis web personalitzats (customs webservices).

Aquests webservices s’han de definir usant una classe Java que sigui subclasse  de AcceptMessage. Mitjançant anotacions es defineixen les seves propietats i mètodes.

Amb l’anotació @Webservice es defineixen els atributs del webservice, els principals són:

  • WsdlLocation: Defineix la ruta on es troba el wsdl que es publicarà.
  • TargetNamespace: Defineix el namespace del WSDL.
  • ServiceName: El nom del servei.
  • Name: El nom del wsdl:portType.
  • PortName: El valor del wsdl:portName.

A més de definir la configuració del webservice s’han de definir els mètodes del webservice. Els mètodes es defineixen com un mètode Java qualsevol però amb la particularitat que és necessari afegir l’anotació @WebMethod per indicar que és un mètode del webservice.

Un cop s’ha definit aquesta classe cal realitzar un arxiu Jar que contingui la classe i situar-lo a la carpeta custom-libs de Mirth. Seguidament és imprescindible fer referència aquesta classe en el listener tal com es pot veure a la següent imatge.

A més és necessari marcar Custom service i introduir el classpath de la classe que defineix el servei a Service Class Name.

Per últim per definir la resposta del servei s’ha d’afegir un objecte de la classe response al response map.

També serà imperatiu fer referencia a aquest element del response map al respond from de l’origen.

Seguint les directrius i instruccions que s’han presentat en aquesta entrada s’ha de poder crear gairebé qualsevol tipus de web service amb Mirth. Aconseguint així una major versatilitat al realitzar integracions que requereixin d’aquesta mena de serveis.

 

Llegir en català 

Un servicio web (Web Service en inglés) es una colección de protocolos y estándares que sirve para intercambiar datos entre aplicaciones. Diferentes aplicaciones de software desarrolladas en lenguajes de programación diferentes y ejecutadas sobre cualquier plataforma pueden utilizar los servicios web para el intercambio de datos en una red como Internet. Esta interoperatibilidad se consigue gracias a la adopción de estándares abiertos.

El protocolo usado para la transferencia de mensajes entre servicios web es SOAP, un protocolo de comunicación diseñado para intercambiar mensajes en formato XML en una red de ordenadores, normalmente sobre el protocolo HTTP.

Mirth dispone de un web service listener ya definido al cual solo hay que definirle el puerto,nombre del servicio y las interfaces que se quieren escuchar, este web service permite recibir un parámetro de tipo cadena de caracteres.

De este modo no se restringe el contenido puesto que al ser una cadena de caracteres no se valida y puede ser cualquier tipo de datos. Mirth se encargará de recibir el contenido del literal y parsearlo al tipo de dato definido en al origen como puede ser un XML.

Aunque este servicio web por defecto no es muy restrictivo y se puede usar en muchos casos, es posible que sea necesario modificar una mayor cantidad de aspectos de el servicio web más allá de los mencionats anteriormente por eso se ha definido la opción de los servicios web personalizados (customs webservices).

Estos servicios web se tienen que definir usando una clase Java que sea subclase de AcceptMessage. Mediante anotaciones se definen sus propiedades y métodos.

Con la anotación @Webservice se definen los atributos del servicio web, los principales son:

  • WsdlLocation: Define la ruta donde se encuentra el Wsdl que se publicará.
  • TargetNamespace: Define el namespace del Wsdl.
  • ServiceName: El nombre del servicio.
  • Name: El nombre del wsdl:portType.
  • PortName: El valor del wsdl:portName.

Además de definir la configuración del webservice se tienen que definir los métodos del webservice. Los métodos se definen como un método Java cualquiera pero con la particularidad que es necesario añadir la anotación @WebMethod para indicar que es un método del servicio.

Una vez se ha definido esta clase hay que realizar un archivo Jar que contenga la clase y situarlo en la carpeta custom-libs de Mirth. Seguidamente es imprescindible hacer referencia a esta clase en el listener tal como se puede ver a la siguiente imagen.

Además es necesario marcar Custom service e introducir el classpath de la clase que define el servicio en Service Class Name.

Por último para definir la respuesta del servicio se debe añadir un objeto de la clase response al response map.

También será imperativo hacer referencia a este elemento del response map en el respond from del origen.

Siguiendo las directrices e instrucciones que se han presentado en esta entrada se debe poder crear casi cualquier tipo de web service con Mirth. Consiguiendo así una mayor versatilidad al realizar integraciones que requieran de este tipo de servicios.

Segona versió de l’extensió catalana de SNOMED CT

Leer en castellano

El passat 20 de desembre es va publicar la segona versió de l’extensió catalana de SNOMED CT. Aquesta versió està basada en l’ES-ARG del 31/10/2012 i l’INT del 31/07/2012 de SNOMED CT i conté els següents subconjunts:

Subconjunt AP (Anatomia Patològica)
Creat a partir dels treballs del CAP (Col·legi de Patòlegs Americà), s’ha actualitzat i adaptat a les necessitats del Sistema Sanitari Català. El subconjunt ha passat de quasi 72.000 conceptes disponibles a la primera versió, a uns 18.000 i s’hi han afegit molts termes nous, alguns provinents de la CIO-3 (Classificació Internacional d’Oncologia 3a edició). El microglossari també s’ha treballat, ampliant-lo d’uns 4.000 conceptes de la primera versió, a quasi 6.000. Aquest element es pot veure com un subconjunt del subconjunt, que actua com a llista dinàmica de termes preferits. El subconjunt d’AP es distribueix en format estàndard d’IHTSDO i Access reduït. Actualment s’està treballant per elaborar la documentació que expliqui els canvis i l’evolució del subconjunt des de la seva creació.

Subconjunt vacunes
Està format per 42 immunitzacions de l’eix de productes biològic farmacèutic de SNOMED CT, que s’han seleccionat a partir del catàleg que s’usava a HC3 (Història Clínica Compartida de Catalunya). També s’han inclòs les vacunes contemplades al projecte europeu epSOS i les considerades pel grup d’experts en el domini. Aquest subconjunt es distribueix en format estàndard d’IHTSDO i Excel. En el següent enllaç es pot consultar la documentació del component:

Subconjunts al·lèrgies
L’objectiu principal és informar les alertes a HC3, de manera que s’ha començat per les al·lèrgiques. Aquest és un domini complex, ja que pot incloure trastorns (al·lèrgia al pol·len), manifestacions (rinitis al·lèrgica per pol·len), proves confirmatòries de laboratori (pol·len IgE), agents causals (pol·len), etc. En el cas del Sistema Sanitari Català s’informen les manifestacions en CIM-9-MC i CIM-10, així com proves de laboratori en LOINC. Per relacionar els diferents subdominis i vocabularis s’han usat mapejos a SNOMED CT. També s’han tingut en compte els trastorns deguts als agents causals contemplats a epSOS, així com als provinents del peticionari de l’hospital de Sabadell. El grup d’experts en el domini i documentalistes també han proporcionat conceptes a considerar. Les manifestacions s’han triat seguint una classificació de gravetat anomenada CCS (Clinical Classification Software).

Per representar la diversitat explicada, s’han creat varis subconjunts, diferenciant entre trastorns i manifestacions. També s’ha creat un subconjunt d’alertes al·lèrgiques que conté tots els trastorn i les manifestacions més greus (quasi totes anafilaxis). A més a més, s’ha creat un subconjunt per cada tipus d’agent causal, diferenciant entre medicamentosos, alimentàries i altres. En total, s’han creat els 9 subconjunts següents (el contingut dels quals es pot repetir parcialment):

  • (1) Alertes al·lèrgiques 2044 membres.
  • (2) Trastorns 2016 conceptes:
    • (3) Medicamentosos 1537 conceptes.
    • No medicamentosos:
      • (4) Alimentaris 191 membres.
      • (5) No alimentaris 288 conceptes.
  • (6) Manifestacions 108 conceptes:
    • (7) Medicamentoses 11 conceptes.
    • No medicamentoses:
      • (8) Alimentàries 28 conceptes.
      • (9) No alimentàries 69 membres.

Aquests components es distribueixen en format estàndard d’IHTSDO i Excel. La documentació dels subconjunts es pot consultar als enllaços següents:

Subconjunt d’idioma català
Conformat per les descripcions traduïdes al català, de moment les 85 del subconjunt de vacunes. Aquest component s’anirà ampliant a mida que es vagin traduint més dominis. Es preveu que els següents seran els d’al·lèrgies i el microglossari d’AP. Aquest subconjunt es distribueix en format estàndard d’IHTSDO.

Actualment s’està treballant en la creació d’un diccionari clínic basat en SNOMED CT, així com en els dominis de Prestacions i MM (Malalties Minoritàries).

Amb l’extensió catalana també es distribueixen els següents documents:

L’OFSTI (Oficina d’Estàndards i Interoperabilitat) és la responsable de l’estàndard semàntic a Catalunya. El CCI (Centre de Competències d’Integració) dóna suport, entre d’altres, a l’OFSTI, en la creació de subconjunts de SNOMED CT i en la gestió de l’extensió catalana. Al web de l’OFSTI es pot omplir el formulari per accedir a l’àrea de descàrrega i al de peticions de contingut:

Llegir en català

El pasado 20 de diciembre se publicó la segunda versión de la extensión catalana de SNOMED CT. Esta versión está basada en la ES-ARG del 31/10/2012 y la INT del 31/07/2012 de SNOMED CT y contiene los siguientes subconjuntos:

Subconjunto AP (Anatomía Patológica)
Creado a partir de los trabajos del CAP (Colegio de Patólogos Americano), se ha actualizado y adaptado a las necesidades del Sistema Sanitario Catalán. El subconjunto ha pasado de casi 72.000 conceptos disponibles en la primera versión, a unos 18.000 y se le han añadido muchos términos nuevos, algunos provenientes de la CIO-3 (Clasificación Internacional de Oncología 3a edición). El microglosario también se ha trabajado, ampliándolo de unos 4.000 conceptos en la primera versión, a casi 6.000. Este elemento se puede ver como un subconjunto del subconjunto, que actúa como un lista dinámica de términos preferidos. El subconjunto de AP se distribuye en formato estándar de IHTSDO y Access reducido. Actualmente se está trabajando para elaborar la documentación que explique los cambios y la evolución del subconjunto des de su creación.

Subconjunto vacunas
Está formado por 42 inmunizaciones del eje de producto biológico farmacéutico de SNOMED CT, que se han seleccionado a partir del catálogo que se usaba en HC3 (Historia Clínica Compartida de Catalunya). También se han incluido las vacunas contempladas en el proyecto europeo epSOS y las consideradas por el grupo de expertos en el dominio. Este subconjunto se distribuye en formato estándar de IHTSDO y Excel. En el siguiente enlace se puede consultar la documentación del componente (CAT):

Subconjuntos alergias
El objetivo principal es informar las alertas en HC3, de manera que se ha empezado por las alérgicas. Este es un dominio complejo, ya que puede incluir trastornos (alergia al polen), manifestaciones (rinitis alérgica por polen), pruebas confirmatorias de laboratorio (polen IgE), agentes causales (polen), etc. En el caso del Sistema Sanitario Catalán se informan las manifestaciones en CIE-9-MC y CIE-10, así como pruebas de laboratorio en LOINC. Para relacionar los distintos subdominios y vocabularios se han usado mapeos a SNOMED CT. También se han tenido en cuenta los trastornos debidos a los agentes causales contemplados en epSOS, así como los provenientes del peticionario del hospital de Sabadell. El grupo de expertos en el dominio y documentalistas también ha proporcionado conceptos a considerar. Las manifestaciones se han escogido siguiendo una clasificación de gravedad denominada CCS (Clinical Classification Software).

Para representar la diversidad explicada, se han creado varios subconjuntos, diferenciando entre trastornos y manifestaciones. También se ha creado un subconjunto de alertas alérgicas que contiene todos los trastornos y las manifestaciones más graves (casi todas anafilaxias). A demás, se ha creado un subconjunto para cada tipo de agente causal, diferenciando entre medicamentosos, alimentarios y otros. En total, se han creado 9 subconjuntos siguientes (el contenido de los cuales se puede repetir parcialmente):

  • (1) Alertas alérgicas 2044 miembros.
  • (2) Trastornos 2016 conceptos:
    • (3) Medicamentosos 1537 conceptos.
    • No medicamentosos:
      • (4) Alimentarios 191 miembros.
      • (5) No alimentarios 288 conceptos.
  • (6) Manifestaciones 108 conceptos:
    • (7) Medicamentosas 11 conceptos.
    • No medicamentosos:
      • (8) Alimentarias 28 conceptos.
      • (9) No alimentarias 69 miembros.

Estos componentes se distribuyen en formato estándar de IHTSDO y en Excel. La documentación de los subconjuntos se puede consultar en los enlaces siguientes (CAT):

Subconjunto de idioma catalán
Conformado por las descripciones traducidas al catalán, de momento las 85 del subconjunto de vacunas. Este componente se irá ampliando a medida que se vayan traduciendo más dominios. Se prevé que los siguientes sean los de alergias y el microglosario de AP. Este subconjunto se distribuye en formato estándar de IHTSDO.

Actualmente se está trabajando en la creación de un diccionario clínico basado en SNOMED CT, así como en los dominios de Prestaciones y ER (Enfermedades Raras/Minoritarias).

Con la extensión catalana también se distribuyen los siguientes documentos (CAT):

La OFSTI (Oficina d’Estàndards i Interoperabilitat) es la responsable del estándar semántico en Catalunya. El CCI (Centre de Competències d’Integració) ofrece soporte, entro otros, a la OFSTI, en la creación de subconjuntos de SNOMED CT y en la gestión de la extensión catalana. En la web de la OFSTI se puede rellenar el formulario para acceder al área de descarga y al de peticiones de contenido: