👨‍⚕️🏥🖥 DICOM: Estudio conceptual del estándar y preliminares a su aplicación en la programación

in #spanish6 years ago (edited)

👨‍⚕️🏥🖥 DICOM: Estudio conceptual del estándar y preliminares a su aplicación en la programación


Por Enio...


En una escena no muy inusual de un hospital moderno, imagine a un profesional de la salud en su puesto de trabajo ocupado en su computadora. En el acto, recibe una comunicación de parte del radiólogo de que se ha producido un nuevo estudio, por lo que tras abrir la comunicación y apreciar los detalles, inmediatamente consulta en su sistema de información la historia clínica del paciente y todos sus estudios previos (aún si no posee el sistema de información automatizado, seguramente sí dispone de un archivo repleto de CDs con los estudios o algo por el estilo). Tras descargar toda la información, observa todos los estudios, escoge un conjunto de imágenes y las imprime. Tiene allí casi todo lo que necesita.

Este rutinario proceso técnico relacionado con el diagnóstico, tiene tras sí algunos engranajes informáticos que permiten que el trabajo del médico sea posible y esto es así debido a que la presencia de la informática y la digitalización de información es onmipresente hoy día. En concreto, se trata de un elemento estandarizado y presente en todo el proceso, desde recibir la comunicación, buscar en la base de datos, hasta abrir los archivos de imágenes médicas y visualizarlos. Dicho elemento es el estándar DICOM.

En estas líneas se introducirá al estándar DICOM, analizándolo desde una estrategia de cartografía conceptual, que comprende el recuento de nociones, categorizaciones, características, vinculaciones, diferenciaciones, subdivisiones y ejemplificaciones. El post tiene una intencionalidad informativa dirigido a toda la comunidad de lectores de Steemit, procurando también sea de interés para los profesionales de la salud como los radiólogos, de tal manera que puedan ser conscientes acerca de las potencialidades del estándar. Asimismo, el contenido también tiene pinceladas para los amantes de la programación -como se acostumbra- como introducción para el desarrollo de algunas aplicaciones en venideros artículos.

1. ASPECTOS GENERALES DEL ESTÁNDAR DICOM

En la imagen 1 se aprecia una síntesis del concepto de DICOM siguiendo la estrategia de cartografía conceptual, cuyos contenido será analizado seguidamente (véase imagen 1).


⬆️ Imagen 1: Cartografía conceptual sobre DICOM Autor: @eniolw Licencia: CC BY

DICOM es un acrónimo para “Digital Imaging and Communications in Medicine” que en español significa “Imagen Digital y Comunicaciones en Medicina”. Se trata de un estándar internacional que define un formato de archivo para representar información médica (imágenes y su metadata) y un protocolo para la comunicación y el correspondiente intercambio de información entre artefactos de uso clínico. Aunque se trata de una especificación que define ambos aspectos considerados, por lo general se le refiere simplemente como un formato.

El estándar surgió en 1985 del trabajo de un comité de expertos provenientes del Colegio Norteamericano de Radiología (ACR, siglas en inglés) y la Asociación Nacional de Fabricantes Eléctricos (NEMA, siglas en inglés), siendo esta última la organización que hasta el día de hoy regula el progreso de DICOM.

Este estándar se puede categorizar como tecnología sanitaria dado que es estudiado y desarrollada para efectos de informática biomédica, que es la multidisciplina que aplica los conocimientos informáticos y médicos en la producción de tecnologías que contribuyan al mejoramiento de la salud.

Todo esto también pone de relieve que DICOM está vinculado con todas las áreas de la medicina donde tenga aplicación a través del uso de tecnologías para la generación de imágenes diagnósticas, llámese cardiología, oncología, ginecología, obstetricia, dermatología, radiología, neurología, oftalmología y muchas más.

Las características resaltantes de DICOM están en función de su modalidad. Como formato de archivo, DICOM permite la representación y almacenamiento digital de imágenes médicas. Estas imágenes abarcan varios tipos, como tomografías, ecografías, resonancias magnéticas, radiografías, angiografías, imágenes de medicina nuclear, entre otras, pudiendo almacenar una o muchas imágenes en un único fichero. A continuación se muestra un esquema de los distintos tipos de imágenes médicas soportadas (véase imagen 2)


⬆️ Imagen 2: Imágenes médicas típicas Autor: @Eniolw Licencia: CC BY

También, el formato almacena información de documentación clínica, lo que abarca una serie de datos sobre el paciente y el estudio, tales como nombre del paciente, su ID, fecha y hora del estudio, tipo de exploración, detalles sobre el equipo que tomó la imagen, distintas métricas y resultados, entre otros. La siguiente tabla muestra (apenas) algunos de estos datos categorizados (véase tabla 1).

Tabla 1: Algunas etiquetas de un archivo DICOM
Paciente
Nombre, ID,
Fecha de nacimiento, Hora de nacimiento
Lengua materna
Dirección de habitación, Número telefónico
Grupo étnico
Ocupación
Visita
Nombre, Dirección, Código
Nombre del médico que refiere
Responsable de la organización
Operador
Estudio
ID
Fecha programada de inicio
Médico solicitante
Motivo del estudio
Fecha culminación
Comentarios
Interpretación
Autor
Descripción del diagnóstico
ID del estatus
Equipo
Fabricante
Nombre de la estación
Versión del software

Algo resaltante y característico del formato DICOM es el hecho de que esta información es almacenada conjuntamente, es decir, la documentación clínica es parte de las imágenes médicas y viceversa. La idea es que las imágenes sean indivisibles de su respectiva información, sean portadas juntas y no sean separadas por error, de tal modo que los programas habilitados para leer DICOM correctamente, podrán abrir toda esta data y básicamente mostrarla al personal encargado de interpretarla.

Aunque otros formatos siguen un patrón similar a DICOM en el sentido de que soportan el almacenamiento de imágenes y metadatos (como JPG), DICOM se diferencia de ellos puesto que provee un registro de datos más extenso y sofisticado, con múltiples atributos/campos para ser rellenados por la aplicación que escriba DICOM. Además, DICOM puede no solamente almacenar una imagen, sino una colección de ellas a modo de “frames”. El formato también permite que las imágenes almacenadas puedan tener distintos tipos de compresión, incluyendo las de JPG.

A su vez, como protocolo, DICOM se caracteriza por permitir el intercambio de información entre distintos dispositivos y sistemas de propósito biomédico, tales como las decenas de equipos para la toma de imágenes médicas, estaciones de trabajo diagnóstico, servidores de red, accesorios, PACS (sistema de archivado y comunicación de imágenes), Sistemas de Información de Radiología (RIS), Sistemas de Información de Cardiología (CIS), impresoras, etc.

Esta integración es, de hecho, una de las motivaciones principales por las que surgió DICOM. Ante la aparición de muchos equipos biomédicos heterogéneos y provenientes de distintos fabricantes, también aparecían obstáculos ocasionados por su incompatibilidad e incapacidad de estos para trabajar juntos. De allí que el surgimiento del estándar viene a suplir de integración y compatibilidad para poder transmitir, almacenar, consultar, imprimir, procesar y visualizar la información de las imágenes médicas entre todos estos equipos y sistemas. La imagen 3 es una representación del trabajo conjunto de distintos hardwares y sistemas biomédicos trabajando conjuntamente gracias a DICOM (véase imagen 3).


⬆️ Imagen 3: Sistemas y dispositivos de uso médico Autor: @Eniolw Licencia: CC BY

Ahora bien, es importante destacar que DICOM no es un software. No es un programa que se descarga, instala y usa, sino que es un estándar, es decir, una especificación, un plano que define las reglas como debe ser almacenada digitalmente una data y cómo deben comportarse las aplicaciones de distintos dispositivos a la hora de trabajar conjuntamente con esa data. Por tanto, el software sería aquel que implementando el estándar en su funcionamiento, abre el archivo en formato DICOM, lo visualiza y/o aplica cualquiera de los varios servicios soportados.

De hecho, es posible que la mayoría de los usuarios no dispongan en su computadora un software que pueda abrir apropiadamente DICOM y puede que el sistema operativo nisiquiera reconozca la extensión ".dcm", amén de que el formato es algo más especializado. Algunos lectores o visores DICOM conocidos son Dicompyler, Open Dicom Viewer, Microdicom, OsiriX, RadiAnt, entre otros, aunque también hay servicios online que abren archivos DICOM y los visualizan a través del navegador web. La imagen 4 contiene un ejemplo de visor DICOM (véase imagen 4). En ocasiones, los radiólogos almacenan los archivos DICOM en CD-ROMs para archivado o traslado, y se incluye allí al software necesario para desplegarlos.


⬆️ Imagen 4: Software Dicomscope Fuente: @eniolw. El archivo DICOM visualizándose es de DicomLibrary.com Licencia: CC BY

DICOM está en constante desarrollo para mantenerse actualizado con el surgimiento de más novedosos equipos y sistemas, que se actualizan tan rápido como la medicina misma. De hecho, un vistazo a la página oficial del estándar revela una cronología que data de 1980 registrando no menos de 21 versiones mayores del formato, siendo la última la del año 2017. También, la organización que lo regula ha dejado en claro que DICOM, en tanto estándar, está pensado para ser implementado gratuitamente por cualquier fabricante.

A continuación se muestra una imagen contenida en un formato DICOM, la cual posee parcialmente la información médica que registra como parte renderizada de la misma imagen (véase imagen 5).


⬆️ Imagen 5: Imagen médica en DICOM Fuente: DicomLibrary.com


2. ASPECTOS TÉCNICOS DE DICOM

Desde un punto de vista más técnico, DICOM en todas sus versiones está definido a lo largo de más de 20 documentos oficiales, que comprenden Vista General, Conformación, Definición de Objetos de Información, Especificaciones de Clases de Servicios, Estructura de Datos y Codificación, Diccionario de Datos, Intercambio de Mensajes, Soporte de Comunicación en Red para Intercambio de Mensajes, Almacenamiento de Medios y Formatos de Archivo para el Intercambio de Mensajes, Perfiles de Aplicaciones de Almacenamiento de Medios, Formatos de Medios y Medios Físicos para el Intercambio de Imágenes, Función de Visualización Estándar de Escala de Grises, Perfiles de Seguridad y Administración de Sistemas, Recursos de Mapeo de Contenido, Información Exploratoria, Servicios Web, Hosting de Aplicaciones, Reporte de Imágenes usando la Arquitectura de Documentos Clínicos HL7 y Transformaciones entre DICOM y otras Representaciones [1].

Ahondando un poco en lo que refiere a la Estructura de Datos y Codificación y la Definición de Objetos de Información, se tiene que en cuanto a las subdivisiones, la estructura del formato DICOM es algo elaborada. A grandes rasgos consta de un “encabezado” (header) y un “conjunto de información” (dataset).

El encabezado puede contener algunos atributos y especificaciones sobre la aplicación que escribe el fichero. Este encabezado posee dos secciones: un preámbulo (preamble) de 128 bytes que almacena información sobre una miniatura del fichero, además de proporcionar compatibilidad con otros formatos, y un prefijo (prefix) de 4 bytes que únicamente registra los caracteres “DICM”.

Por su parte, el conjunto de información (dataset) está destinado a incluir toda información médica pertinente. El dataset está organizado siguiendo el Modelo de Información de DICOM, esto es, una serie de clases (concepto de programación orientada a objetos) que modelan toda la información, destacándose el “Par Objeto-Servicio” (Service-Object Pair SOP). Este par consta de “Elementos de servicio DICOM" (DICOM Service Elements DIMSE) vinculados con una “Definición de Objetos de Información” (Information Object Definition IOD). Es decir, según esto, DICOM consiste en una serie de servicios aplicados sobre atributos.

Los IOD consisten en una serie de atributos que son codificados a manera de “Elementos de información” (dataelements). Cada dataelement se conforma por una etiqueta de identificación (Tag), una representación de valor (Value Representation VR) que señala el tipo de dato (entero, flotante, carácter, etc.) del contenido a registrar; la longitud del valor (Lenght Representation LR) y, por supuesto, el campo de valor (Value Field VF), que almacena el contenido de la información útil (nombre, edad, estudio realizado, la imagen médica, etc.). La imagen 6 es una representación gráfica estandarizada de esto (véase). Se podrá conseguir más información sobre la estructura y modelo de datos de DICOM en las referencias.


⬆️ Imagen 6: Estructura interna de un archivo DICOM Autor: @Eniolw Licencia: CC BY

Los servicios DICOM abarcan Store, que envía la información persistente a un PACS o estación de trabajo para ser “almacenada”; Retrieve, mediante el cual un equipo puede “consultar” en un PACS listados de objetos DICOM y seleccionarlos; Modality worklist, que gestiona una “lista de procedimientos” para la generación de imágenes a ser ejecutada por un PACS o similar; Print, con el cual se envían los objetos DICOM como órdenes de “impresión” a las impresoras, entre otros.

Por otra parte, DICOM tiene vinculación con GDCM, siglas de Grassroots DICOM (bases de DICOM), que es la más difundida implementación del estándar. Es una librería multiplataforma escrita en lenguaje C++, en software libre y código abierto ideada para trabajar con archivos DICOM. Ofrece soporte para otros lenguajes como Python, Java, C#, PHP y Perl a través de respectivos wrappers (librerías intermedias o "envoltorias").

GDCM es la base de varios proyectos de software como Gdcmviewer, Gdcmanon (para anonimizar la data), Gdcmimg (para manipular los elementos de datos de pixel de los archivos DICOM), entre muchos otros, algunos de las cuales se listan en la wiki oficial de la librería. [2]

Con respecto al lenguaje Python, en un pasado artículo se había sugerido que la librería ImageIO también tiene capacidad para el procesamiento de gráficos volumétricos y de interés científico, entre lo cual se cuenta DICOM. Sin embargo, una librería en Python más sofisticada para esto es Pydicom. Como se lee en su documentación oficial:

“Pydicom is a pure Python package for working with DICOM files such as medical images, reports, and radiotherapy objects. Pydicom makes it easy to read these complex files into natural pythonic structures for easy manipulation. Modified datasets can be written again to DICOM format files” [3].

“Pydicom es un paquete de Python puro para trabajar con archivos DICOM tales como imágenes médicas, reportes y objetos de radioterapia. Pydicom facilita el leer estos complejos archivos en estructuras pythónicas naturales para una sencilla manipulación. Los conjuntos de datos modificados pueden ser escritos de nuevo en archivos de formato DICOM” [Traducción del autor].

Esta librería tiene potencial para muchos tipos de aplicaciones. A grandes rasgos, con ella se puede 1) leer el núcleo de elementos de DICOM, 2) escribir nuevos archivos DICOM, 3) trabajar con Pixel Data, 4) manejar data de imágenes comprimidas y 5) visualizar imágenes DICOM.

Sobre esta última potencialidad, a continuación se muestra a modo de ejemplo un programa experimental implementado con PyDICOM (véase imagen 7).


⬆️ Imagen 7: Sencilla aplicación lectora de archivos DICOM Autor: @Eniolw Licencia: CC BY

La aplicación implementa Tix, una extensión del paquete Thinker y es usado para construir la interfaz gráfica. Con la información extraída con la librería Pydicom, puede verse que el programa despliega gráficamente el contenido crudo de un archivo DICOM, con datos tales como fecha, hora y tipo de estudio, fabricante del hardware empleado, nombre de la institución (hospital, clínica, etc.), nombres del personal médico que refiere, de la estación y del operador, nombre del paciente, entre otros.


CONCLUSIONES

A lo largo de este artículo se han estudiados algunas artistas de DICOM. Se ha visto que constituye un estándar nacido a partir de la necesidad que poseían los usuarios de equipos biomédicos para que estos trabajaran conjuntamente apoyando efectivamente el ejercicio de la medicina, así como de los fabricantes de dichos equipos y sistemas para lograr una estandarización sobre sus productos, disminuyendo formas de competencia desleal y superando las limitaciones de la incompatibilidad.

De tal manera, DICOM nació como un formato digital de imágenes y a la vez un protocolo de comunicación o de intercambio de archivos, aplicado principalmente con respecto a las imágenes médicas. En sus comienzos experimentó dificultades para ser aceptado. Siendo utilizado sólo para radiologías, no lograba la adecuada interoperabilidad de equipos y sistemas, y ofrecía un régimen restringido de servicios que consistían en impresión, almacenamiento y consulta.

Al día de hoy podría decirse que DICOM es un estándar exitoso, implementado universalmente y ofreciendo soporte para imágenes médicas de todo tipo, comprimidas o no, y con más variedad de servicios que permiten la integración de sofisticados sistemas de información de ámbito clínico como PACS, Sistema Information de Radiología (RIS), Sistemas de Información de Salud (HIS), entre otros. Además de imaǵenes, DICOM actualmente también permite el intercambio de informes médicos, planes de trabajo, señales, etc. Todo esto revela la importancia de DICOM como un estándar universal que asegura el crecimiento de la biomédica a nivel internacional.

La información planteada en estas líneas puede ser de utilidad para los profesionales de la salud, a fin de entender conceptualmente los principios que rigen buena parte del funcionamiento de los diagnósticos realizados con tecnologías para la captación de imágenes. Estos archivos son independientes de los distintos sistemas de información que se manejen en los centros de salud. De esta manera, el archivo de una ecografía abdominal, radiografía dental, etc. realizado en una hospital clínico venezolano podrá ser perfectamente abierto e interpretado por cualquier software de visualización que implemente DICOM, así esté en países tan remotos como Nueva Zelanda.

Por último, se han introducido algunos importantes recursos técnicos que disponen los programadores para desarrollar soluciones informáticas alrededor de DICOM, bien sea a través de la potente librería GDCM de C++ o la librería Pydicom para trabajar desde Python, lo cual seguramente será motivo de investigación para venideros proyectos.

REFERENCIAS:

  • [1] Asociación Nacional de Fabricantes Eléctricos. Publicaciones varias. Disponible en: DicomStandard.org.
  • [2] Wiki oficial de GDCM. Disponible aquí
  • [3] Guía de usuario de Pydicom. Disponible aquí


NOTAS ACLARATORIAS:

  • La imagen de pie es de @CarlosERP-2000 y @IAmPhysical y es de dominio público.
  • A menos que se haya indicado lo contrario, todas las imágenes del artículo han sido elaboradas por el autor, incluyendo la imagen de banner. En algunos casos utilizando como base imágenes de dominio público.
Sort:  

Saludos @eniolw, muy interesante tu artículo; en efecto esos archivos DICOM, son ampliamente usados actualmente, más aún debido a la escasez de material para imprimir estudios de imágenes médicas. En mi consultorio, como en la mayoría de los especialistas; debemos tener una computadora para observar las radiografías, tomografías o resonancias de los pacientes. Así también, se llevan los registros médicos de los usuarios de algunos centros médicos privados y la información está disponible, para que otro médico del mismo paciente, pueda usarla para diagnóstico y manejo multidisciplinario.

Así es doctora @Elvigia. Gracias por su apreciación y por convalidar lo planteado en el artículo.
😉

Que interesante, no conocía esa herramienta tan importante para el servicio médico.

¡Gracias!

Que interesante, no conocía esa herramienta tan importante para el servicio médico.

Hola @RockStar007. Me alegra lo hayas podido conocer con este post, te puede servir de introducción. Saludos.

Que interesante, no conocía esa herramienta tan importante para el servicio médico. Te felicito por tu habilidad pedagógica para explicarlo. Saludos.

Hi @eniolw!

Your post was upvoted by utopian.io in cooperation with steemstem - supporting knowledge, innovation and technological advancement on the Steem Blockchain.

Contribute to Open Source with utopian.io

Learn how to contribute on our website and join the new open source economy.

Want to chat? Join the Utopian Community on Discord https://discord.gg/h52nFrV

😊 Awesome! Thanks.

Muy interesante y excelente trabajo @eniolw. Fue un placer leerlo. Un saludo cordial.

Me alegra le haya gustado @tsolovieri. Saludos!

Pedazo de artículo.

¡Gracias por leer!

Saludos @eniolw te felicito por este post tan bien logrado. Soy estudiante del ultimo trimestre de ingeniería biomédica y graduado de T.S.U en electromedicina desde el 2010 he visto la efectividad del estándar DICOM. La informática ha sido clave en el desarrollo de la ingeniería biomédica y ya para el día de hoy, diría que es un factor indivisible de las tecnologías medicas. Antes la persona por ejemplo debía esperar que el estudio de RX se procesara para obtener la placa o la radiografía, con el estándar DICOM esto demora muy poco no se cuanto específicamente pero no creo que mas de 10 minutos, en este tiempo se envía por la red interna al doctor que va a analizar el estudio y se ahorra mucho. Por otro lado también ha ayudado mucho a disminuir la exposición a las radiaciones ionizantes pero ese es otro tema. Felicitaciones nuevamente men espero por tus próximas publicaciones.

Interesante. Gracias por tu reseña sobre el uso de la tecnología médica y el estándar DICOM, @OswaldoTorres. Saludos!

Congratulations @eniolw! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:
SteemitBoard and the Veterans on Steemit - The First Community Badge.

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Congratulations @eniolw! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes received

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Coin Marketplace

STEEM 0.19
TRX 0.13
JST 0.030
BTC 59589.10
ETH 3257.79
USDT 1.00
SBD 2.40