Generador Automático de Diagnósticos

Puedes probar el generador acá.

La narrativa médica es un tema muy estudiado en estos momentos dado el gran advenimiento de la Inteligencia Artificial en la sociedad en general.

Lograr entender cuál es el significado de una narrativa médica es el objetivo principal del Procesamiento de Lenguaje Natural en Medicina, si llegamos a una perfecta representación sistematizada de la información que escriben los profesionales de la salud en las distintas fuentes de datos clínicos, muchos problemas podrían solucionarse en el área de la salud, desde la justa priorización de un paciente dentro de la temida lista de espera hasta la correcta distribución de recursos dentro de un establecimiento de salud.

La narrativa médica o mejor dicho el lenguaje en general no tiene una distribución al azar, sino que podemos encontrar patrones fácilmente de manera casi intuitiva, por ejemplo al explorar diagnósticos nos encontramos con que la palabra caries en la mayoría de los casos está acompañada de palabras que definen más específicamente el diagnóstico, las cuales tienen una distribución predecible, por ejemplo:

Es muy probable que encontremos los siguientes grupos de 2 palabras (bigramas) con mucha frecuencia:

  • caries dentinaria
  • caries penetrante

Pero que nos encontremos con una frecuencia casi nula los bigramas:

  • caries cerebral
  • caries pulmonar

Esto quiere decir que dada una palabra de entrada podemos predecir qué palabras le seguirían con mayor probabilidad.

Uno de los métodos que podemos utilizar para modelar este comportamiento son las Cadenas de Markov, en donde establecemos una matriz de probabilidades en donde como filas tenemos cada una de las palabras de nuestro vocabulario y cada uno de los valores de esta fila nos dice con qué probabilidad aparece una siguiente palabra.

Este modelamiento tiene una desventaja, porque sólo podemos predecir la siguiente palabra dado una única palabra anterior, olvidándonos de todo lo que hayamos escrito antes.

Para modelar el lenguaje utilizado en los diagósticos, se extrajeron las frecuencias de todos los bigramas posibles dentro de alrededor de 2 millones de diagnósticos médicos, el desarrollo del modelo se realizó en Python y el código para poder entrenar tus propios modelos o probar el modelo generado con los 2 millones de diagnósticos se encuentra libre pero los datos de entrenamiento no se encuentran disponibles debido a temas bioéticos.

Ejemplo

synthesizer = src.utils.DiagnosticGenerator( # Clase para construir el Generador de diagnósticos.
     markov_matrix_file
leer más

Obtener la Edad de un Individuo desde su RUT

Aplicación web para conocer la edad de una persona y su fecha de nacimiento con su RUT: RUT a Edad y Fecha de Nacimiento

Intuitívamente se sabe que existe una relación entre la edad de una persona y el número correlativo de su RUT, en donde personas que cuentan con una mayor edad, suelen tener un número correlativo de RUT bajo. Para poder probar esta hipótesis se utilizará un método de aprendizaje estadístico básico que nos permitirá inferir la relación existente entre el número correlativo del RUT de la Persona y su edad.

RUT

El Rol Único Nacional, conocido también por el acrónimo RUT, es el número identificatorio único e irrepetible que posee todo chileno, residente o no en Chile, y todo extranjero que permanezca, temporal o definitivamente, con una visa distinta a la visa de turista en dicho país.

El RUT se otorga siguiendo un orden correlativo, por lo tanto es muy posible que una persona con un RUT menor sea de mayor edad, dado que la mayor parte de los RUT proviene de inscripciones de nacimiento.

El RUT consta de dos partes separadas por un guion: el número correlativo y el dígito verificador o DV. El DV consta de un dígito que va del 0 (cero) al 9 (nueve) y la letra K, que se obtiene a partir del correlativo mediante el cómputo de un algoritmo.

Regresión

La Regresión es un conjunto de procesos estadísticos para estimar relaciones entre variables. La regresión nos ayuda a entender cómo cambia una variable en función de otra variable, junto con entender la fuerza de relación entre ellas.

Datos

Se realizaron búsquedas en Google para encontrar documentos que contuvieran los términos edad y rut, estos documentos fueron procesados y se consolidaron todos en un archivo separado por comas.

Método

Se utilizó el lenguaje de programación python bajo los siguientes módulos:

  • Pandas: Biblioteca para el manejo y estructuración de datos.
  • Numpy: Biblioteca para la realización de cálculos vectoriales.
  • Seaborn: Visualización de los resultados.
  • Scipy: Conjunto de pruebas y modelos estadísticos.
  • Math: Módulo de cálculos matemáticos.
  • Datetime: Módulo para interactuar con fechas.
import pandas as pd
import numpy as np
import seaborn as sns
import scipy
import math
import datetime as dt

Se importan los datos y se determinan los tipos de variable.

datos = pd.read_csv("rut.csv",
leer más

Segmentación 3D de Incisivo Central con Calcificación Pulpar

Cone-Beam de Incisivo con Pulpolito

La generación de modelos tridimensionales desde conjuntos de datos de tomografías computarizadas Cone-Beam (CBCT) nos permite entender de mejor manera la anatomía humana.

En este artículo mostraré paso a paso cómo generar un modelo 3D de la anatomía interna de un incisivo central superior con una calcificación pulpar, esto nos permitirá conocer cómo se comporta la pulpa frente a la existencia de un pulpolito.

Conjunto de Datos de la CBCT

Esta es un subconjunto recortado de los cortes tomograficos de una CBCT. Hasta este instante los datos siguen siendo bidimensionales y necesito interpretarlos como un volumen.

Generación del Modelo 3D

Primero debo determinar la región de interés (ROI) en las 3 dimensiones del espacio, la cual utilizaré para la generación del modelo tridimensional.

Después de delimitar la ROI se establece la Speed Image, que es una segmentación preliminar en base a umbrales de densidad ósea, las zonas azules son las regiones que no se van a segmentar.

Ahora se sitúan círculos (esferas volumétricamente) dentro de las zonas que deseamos segmentar, esferas las cuales posteriormente se deformarán automáticamente adoptando la forma de la zona a segmentar (Active Contour Segmentation).

Como ven, la visualización 3D son una serie de esferas situadas donde nosotros quisimos.

Echamos a andar el programa y las esferas comienzan a deformarse para adoptar la forma de diente.

El programa terminó de realizar la Active Contour Segmentation y el diente ya se segmentó.

Realizamos los mismos pasos anteriores para segmentar la pulpa del diente (en rojo) y también se puede observar el diente ya segmentado (Blanco).

Aquí se observan las 3 estructuras de interés, los tejidos duros del diente, la pulpa y el pulpolito. Es curioso observar cómo la pulpa rodea la calcificación pulpar del canal radicular.

Aspecto final de nuestro diente ya con todas las estructuras segmentadas.

Importamos nuestro modelo tridimensional en un software de edición de modelos tridimensionales y realizamos un suavizado de superficie.

Hemos terminado y en la imagen anterior se puede apreciar el aspecto final de nuestro Biomodelo Tridimensional.

Manufactura de Modelo Anatómico a Través de Fabricación con Filamento Fundido

Impresión 3D de Mandíbula Humana

Hemos llegado a la parte final para la generación de un modelo tridimensional tangible con el cual podemos trabajar físicamente, pasamos desde un conjunto de datos radiográficos DICOM, pasando por un modelo tridimensional virtual y ahora vamos a fabricarlo con una impresora 3D.

Posterior a la generación de un modelo tridimensional virtual, sumado al proceso de eliminación de artefactos y suavizado de superficie, el archivo STL debe ser materializado para la obtención de un modelo físico.

En el mercado existen múltiples tecnologías de prototipado rápido o impresión tridimensional, el presente trabajo se enfoca en la tecnología de Fabricación con Filamento Fundido o Fused Filament Fabrication (FFF).

La forma en que la tecnología de manufactura FFF trabaja consiste en la extrusión de plástico fundido desde filamentos sólidos, en donde se van depositando capas de material para así generar un modelo tridimensional (1).

El material empleado por la máquina utilizada (Makerbot Replicator 2) es el Ácido Poliláctico o Polylactic Acid (PLA), este material es un biopolímero termoplástico biodegradable de alta resistencia mecánica y baja toxicidad (2,3)

La tecnología de manufactura FFF junto con PLA ha demostrado tener resultados comparables con soluciones de manufactura más costosas (4).

Cabe mencionar que el archivo en formado STL debe ser interpretado por un programa computacional compatible con la máquina a utilizar, por lo que varía en función de la tecnología y la marca comercial utilizada. En general el pool de programas computacionales presentes en el mercado actual genera a partir de un archivo STL la ruta específica que debe seguir la máquina para lograr materializar el modelo tridimensional virtual.

A continuación se describe el programa computacional que utiliza la marca MakerBot:

Makerbot Desktop

Este programa computacional (www.makerbot.com) especialmente diseñado para funcionar con la marca MakerBot tiene la capacidad de importar archivos en formato STL e interpretarlos para el posterior envío a la impresora.

MakerBot Desktop genera las rutas que debe seguir la impresora además de un sistema de soportes de impresión (Figura 1). Los soportes de impresión tienen la función de impedir que el filamento fundido que se está extruyendo no caiga sobre la base cuando los diseños de la pieza a manufacturar son muy irregulares, el soporte generado por el programa computacional se ajusta precisamente a las características del modelo de máquina específico.

Referencias

  1. Gonzalez SR, Bennett DB. 3D Printing: A Practical Guide for Librarians [Internet].

leer más

Edición del Modelo Tridimensional Virtual Obtenido Desde una Tomografía Computarizada Cone-Beam

Visualización del modelo tridimensional virtual inmediatamente después de su generación
Figura 1: Visualización del modelo tridimensional virtual inmediatamente después de su generación

Esta entrada es la continuación de la serie de artículos sobre fabricación digital aplicada a la odontología, en este apartado abordaremos el post proceso que debe recibir el modelo tridimensional virtual una vez generado desde el set de datos DICOM.

El archivo en formato STL generado desde los DICOM suele presentar artefactos que deben ser eliminados, además, normalmente la superficie del modelo presenta irregularidades que deben ser suavizadas previo al proceso de manufactura. Para este proceso se describe, a continuación, un programa computacional.

Autodesk® MeshMixer®

Autodesk® MeshMixer® (www.meshmixer.com) es un programa computacional gratuito que tiene la capacidad de editar modelos tridimensionales virtuales en formato STL, dentro de sus características se encuentran herramientas con las que podemos seleccionar los artefactos para ser eliminados como también seleccionar la superficie para ser suavizada (Figura 1 y Figura 2).

Modelo Tridimensional Desde una Tomografía Computarizada Cone-Beam

Visualización de un modelo tridimensional virtual de una mandíbula en formato STL
Figura 1: Visualización de un modelo tridimensional virtual de una mandíbula en formato STL

Este artículo pertenece una serie de entradas sobre Fabricación Digital Aplicada a la Odontología. En el artículo anterior describí acabadamente lo que es un Conjunto de Datos DICOM.

El conjunto de datos DICOM es una serie de cortes bidimensionales que deben ser unidos entre sí para generar un modelo tridimensional, este proceso es llevado a cabo mediante programas computacionales que interpretan y segmentan los datos bidimensionales de los cortes transformándolos en volúmenes tridimensionales.

El formato de archivo de modelos tridimensionales más utilizado es el STL (STereo Lithography), este formato es una representación geométrica en 3D de una superficie (Figura 1). La superficie que representa el archivo STL está constituida por múltiples triángulos unidos entre sí (Figura 2) (1,2).

El programa computacional debe interpretar datos bidimensionales DICOM y generar modelos tridimensionales virtuales en formato STL, a continuación se describirán dos programas que cumplen este objetivo:

3D Slicer

3D Slicer (www.slicer.org) es un programa computacional de libre acceso para el análisis y visualización de imágenes médicas. Dentro de las prestaciones del programa se encuentra la función de segmentación de áreas específicas para la posterior generación de un modelo tridimensional virtual en formato STL (3).

Para la generación de modelos tridimensionales virtuales, el usuario debe determinar los umbrales de densidad en la estructura a segmentar, estos umbrales se miden en Unidades Hounsfield (HU), por ejemplo la densidad de los huesos maxilofaciales ronda entre los 400 y 900 HU (4). El software determina los voxeles (unidad mínima de una imagen digital tridimensional, homólogo al pixel en imágenes bidimensionales) que van a formar parte del modelo tridimensional virtual. Cabe destacar que la generación de modelos tridimensionales virtuales automáticamente a través de la determinación de umbrales presenta artefactos debido a que los umbrales establecidos incluyen voxeles anexos indeseados de la estructura a segmentar. Estos artefactos deben ser eliminados posteriormente con programas computacionales de edición de modelos tridimensionales virtuales.

Otra alternativa en la generación de modelos tridimensionales virtuales es la segmentación manual, ésta se obtiene al pintar en cada corte de la tomografía computarizada la estructura que se desea segmentar (Figura 3) Este proceso es bastante tedioso debido a que una tomografía computarizada de cabeza y cuello contiene alrededor de 400 cortes tomográficos.

itk-SNAP

itk-SNAP (www.itksnap.org) es un programa computacional de acceso libre para la generación de modelos tridimensionales virtuales en formato STL a partir de datos DICOM.

Este programa computacional es más ventajoso para la generación de modelos tridimensionales que 3D Slicer, debido a que cuenta con un método de segmentación automática avanzado llamado Active Contour Segmentation, el cual gesta un modelo tridimensional virtual más limpio, libre de artefactos y fidedigno (5) (Figura 4).

Itk-SNAP no cuenta con más herramientas de análisis de imágenes biomédicas, como sí cuenta 3D Slicer.

Referencias

  1. Grimm T. User’s guide to rapid prototyping [Internet]. Society of Manufacturing Engineeers;

leer más

¿Cuántas Caries Tenemos Los Chilenos?: Perfil Epidemiológico de la Caries en Chile

Caries Dental

La caries en Chile es un problema de salud pública, porque prácticamente no hay personas adultas que no tengan caries o que no tengan secuelas de una lesión de caries.

La lesión de caries es una disolución química de la superficie dentaria resultado de eventos metabólicos sucedidos en la placa dental que cubre el área afectada.

Para poder conocer de mejor forma el perfil cariológico de nuestra población y estandarizar nuestras medidas se definen varios indicadores de salud:

  • Índice COPD: Este índice nos muestra cuántas Caries, Obturaciones (tapaduras) y érdidas dentarias por caries tiene el paciente.
  • Índice ceod: Este índice es muy similar al anterior, pero enfocado a la dentición temporal de los niños, especifica el número de caries, extracciones por caries y obturaciones que tiene el paciente.
  • Prevalencia de Caries: Proporción de pacientes en una población que tienen al menos 1 caries, obturación (tapadura) o extracción por caries, sea un COPD o ceod mayor a 0.
  • Severidad de la Enfermedad: Este indicador especifica en función del COPD o ceod que tenga el paciente, mientras mayor sea el índice, más severa es la enfermedad en el paciente.

Caries en Chile a los 2 Años

La prevalencia de caries en Chile a los 2 años es de un 16,8% y la severidad de caries en Chile a los 2 años es de un ceod promedio de 0,5.

Caries en Chile a los 4 Años

La prevalencia de caries en Chile a los 4 años es de un 49,6% y la severidad de caries en Chile a los 4 años es de un ceod promedio de 2,3.

Caries en Chile a los 6 Años

La prevalencia de caries en Chile a los 6 años es de un 70,4% y la severidad de caries en Chile a los 6 años es de un ceod promedio de 3,7 y un COPD promedio de 0,5.

Caries en Chile a los 12 Años

La prevalencia de caries en Chile a los 12 años es de un 62,5% y la severidad de caries en Chile a los 12 años es de un COPD promedio de 1,9.

Caries

leer más