Sistema de Apoyo a la Decisión Clínica (CDSS)

1. Descripcion general

El Sistema de Apoyo a la Decisión Clínica (CDSS) esta diseñado para ofrecer recomendaciones personalizadas de ejercicios terapéuticos en función del rendimiento y la evolución de los pacientes dentro de la plataforma ROAD,  ayudando al terapeuta en la toma de decisiones en la rehabilitación de los pacientes.

Este prototipo se ha basado en modelos de lenguaje de código abierto que pueden ejecutarse en equipos o servidores locales para garantizar la privacidad de los pacientes. Para la ejecución del LLM y modelo de embeddings seleccionados se ha empleado el software LMStudio. Este software permite ejecutar de forma sencilla modelos de código abierto empleando el backend “llama.cpp”, el cual optimiza la inferencia de LLMs en CPU y GPU locales. Además, una de las ventajas de LMStudio es que ofrece una API compatible con el endpoint de OpenAI, lo que la hace fácilmente integrable con diferentes frameworks. En concreto, la implementación del CDSS se ha desarrollado con el framework LlamaIndex en Python.

Uno de los principales propósitos del CDSS que se pretende desarrollar es permitir al personal clínico familiarizarse con los dispositivos de los que disponen, además de facilitar el análisis de resultados y sugerencias de ajustes basados en el historial del usuario para optimizar la terapia. Con el fin de plantar las bases del CDSS y analizar su viabilidad, se ha decidido emplear información acerca del robot de rehabilitación RUBIDIUM. Para la creación de la base de conocimiento acerca de los dispositivos, se ha incluido toda la información relevante acerca del robot RUBIDIUM, especificando los modos de asistencia e información acerca de los juegos incluidos, describiéndolos y especificando su tipología: juegos punto a punto, de detección de estímulos visuales y atención, de precisión y control del movimiento, cognitivos, o de movimiento libre y continuo.

Asimismo, en la base de conocimiento se incluyen protocolos de uso del robot RUBIDIUM redactados por una terapeuta con amplia experiencia en el uso del dispositivo. Dichos protocolos  establecen guías de uso del dispositivo en base a una valoración del paciente mediante la escala clínica de Fugl-Meyer de miembro superior y a una valoración obtenida mediante el propio dispositivo, así como unas directrices a seguir según la evolución y tolerancia del paciente al tratamiento. Entre estas guías se encuentran cómo establecer el rango de movimiento del paciente, qué tipo de modos de asistencia son más adecuados, y qué tipología de juegos aplicar según la evolución y preferencias del paciente (variedad, intensidad, etc.).

2. Chat para la familizarización con dispositivos

Esta funcionalidad del CDSS está formado por un flujo de trabajo que permite interactuar con el modelo LLM para preguntas y respuestas acerca de las características de los dispositivos y los protocolos a seguir.

El flujo de trabajo del sistema CDSS para terapeutas con acceso a un LLM y RAG se compone de varias fases fundamentales. En primer lugar, se lleva a cabo la indexación y almacenamiento de información, donde los datos técnicos y clínicos del robot de rehabilitación se han transformado en representaciones vectoriales mediante el modelo de generación de embeddings Granite-Embedding-278m-multilingual.

Estos vectores, que encapsulan el conocimiento sobre los modos de asistencia, actividades y protocolos de uso del dispositivo, se almacenan en una base de datos vectorial, lo que permite una recuperación eficiente y contextualizada de información relevante para los terapeutas.

Cuando un terapeuta inicia una consulta a través del chat, su pregunta es procesada y convertida en embeddings mediante el mismo modelo de generación de representaciones vectoriales. Posteriormente, estos embeddings son utilizados para realizar una búsqueda semántica en la base de datos, identificando los fragmentos de información más pertinentes para la consulta específica. La base de datos vectorial devuelve los resultados más relevantes al LLM, que analiza los datos y genera una respuesta clara y fundamentada, teniendo en cuenta el contexto de la conversación y la información almacenada.

3.  Sistema de apoyo para el análisis de datos

La segunda funcionalidad incluida en el CDSS se ha desarrollado como una ayuda para el análisis de las actividades realizadas, así como la evolución del paciente. 

En la primera parte del flujo de trabajo, los terapeutas seleccionan el usuario de la interfaz del sistema y los datos correspondientes se recuperan de una base de datos estructurada SQL. Los datos recuperados incluyen tanto la valoración con escalas clínicas como los resultados de evaluación con dispositivos.

En el caso del robot, se incluye toda la información referente a los parámetros empleados durante cada actividad (modo de asistencia empleado durante las actividades, número de repeticiones, etc.) así como los resultados de las actividades (e.g. porcentaje de acierto).

Antes de procesar la información, se lleva a cabo un proceso de anonimización para garantizar la privacidad de los datos del paciente. Posteriormente, los datos se analizan mediante dos procesos diferentes y simultáneos. En ambos procesos, se recupera información mediante RAG sobre las escalas clínicas empleadas para realizar la evaluación del paciente, así como información relevante del dispositivo.

Además, la llamada al LLM para analizar los datos incluye prompts del sistema diferentes, adaptados a la información que se va a analizar, pero la instrucción dada es que se debe analizar de forma objetiva la evolución de los resultados, sin incluir sugerencias. Además, se especifica que el informe se genere en formato markdown y situado entre los tokens {< report >, < /report >} que indiquen el inicio y final de los respectivos informes.

Finalmente, se postprocesa la salida del LLM y como resultado se junta la información para generar un informe clínico que pueda ser utilizado por terapeutas como un apoyo para comprender mejor el estado del paciente.

3.  Sistema de recomendación de ajustes de los dispositivos

La última funcionalidad incorporada en el CDSS corresponde al sistema de recomendación de actividades y sus ajustes.

En primer lugar, se debe seleccionar el paciente para quién se realizará la recomendación, la cantidad de actividades de la sesión y el dispositivo que se desea emplear (e.g. robot RUBIDIUM). Tras esta selección, se hace una consulta a la base de datos SQL y se recuperan los datos del paciente. Además, mediante RAG se recupera información sobre los protocolos de uso del dispositivo seleccionado. Con la información recogida sobre el paciente y el dispositivo se realiza una recomendación de actividades y sus ajustes en dos pasos. Cabe destacar que existe una diferencia principal con respecto a las otras funcionalidades implementadas, y radica en la forma en la que se estructura la salida del LLM.

Tanto en el chat como el sistema de apoyo de análisis de datos tienen por objetivo ofrecer información sobre el dispositivo Rubidium y los datos recogidos. Por tanto, la información se ofrece de manera no estructurada, en forma de lenguaje natural. Sin embargo, para poder realizar una recomendación y establecer los parámetros de las actividades es necesario que la salida del LLM se encuentre estructurada. Para ello, se hace uso de la librería Pydantic, que permite definir modelos de datos precisos y validar la información generada por el modelo de lenguaje. Mediante Pydantic, los datos generados se organizan en estructuras bien definidas, asegurando su coherencia. Esto garantiza que los parámetros sugeridos (e.g. la cantidad de repeticiones, el modo de asistencia, la duración de la actividad, etc.), sean representados de manera consistente y puedan ser aplicados directamente en el dispositivo RUBIDIUM. Gracias a esta estructuración, se mejora la interoperabilidad entre los distintos módulos del sistema.

Como cada actividad del robot RUBIDIUM tiene unos parámetros específicos, es necesario realizar en primer lugar una recomendación de las n actividades que se van a realizar durante la sesión. Tras la llamada del LLM donde se incluye la información del paciente y el dispositivo, se genera una salida estructurada con dos campos. El primer campo es una lista con las n actividades recomendadas, y el segundo campo es una justificación de las actividades seleccionadas que puedan servir como realimentación para el personal clínico. Siguiendo el mismo procedimiento, para cada una de las actividades recomendadas se genera una salida estructurada con la recomendación de los parámetros de la actividad junto con una justificación de la selección en forma de lenguaje natural.