ÚNICAS Rare Diseases HL7 FHIR Implementation Guide
0.0.2 - draft
ÚNICAS Rare Diseases HL7 FHIR Implementation Guide - Local Development build (v0.0.2) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
La plataforma ÚNICAS pretende gestionar de forma eficiente el proceso asistencial de un paciente con enfermedades minoritarias, con el objetivo de dar una atención asistencial y un diagnóstico en la brevedad posible.
Para ello, la plataforma ÚNICAS plantea un gestor de procesos basado en momentos, eventos y actividades.
El equipo funcional de ÚNICAS ha definido el proceso transversal de la plataforma ÚNICAS con momentos, eventos y actividades.
Estas actividades se han relacionado con la información estandardizada en FHIR para poder situar cada mensaje en el proceso transversal de la plataforma ÚNICAS.
Los Momentos ÚNICAS proporcionan una estructura del proceso asistencial de un paciente ÚNICAS, de tal forma que puede saberse rápidamente su situación clínica y asistencial, facilitando así la toma de decisiones y asegurando la continuidad del cuidado.
Se han identificado cinco momentos clave en la atención a pacientes con enfermedades minoritarias. Cada momento está asociado a un conjunto de actividades clínicas y administrativas, así como a la información que debe ser compartida entre nodos autonómicos y el nodo central para garantizar la continuidad y la trazabilidad de la atención. Estos momentos son la base sobre la que se estructuran:
El proceso se organiza, por tanto, en torno a momentos y eventos ÚNICAS, donde los eventos actúan como señalizadores que permiten a la plataforma detectar el paso del paciente de un momento a otro y actualizar su situación dentro de la red.
Los momentos ÚNICAS identificados son los siguientes:
| Siglas Momento | Momento |
|---|---|
| DS | Detección y sospecha |
| DST | Detección y sospecha con tratamiento |
| DA | Diagnóstico-Asignación |
| DAT | Diagnóstico-Asignación con tratamiento |
| SLD | Salida |
Corresponde a la fase inicial del proceso asistencial, donde se identifica la posibilidad de que el paciente pueda padecer una enfermedad minoritaria, sin contar todavía con una confirmación diagnóstica.
Durante este momento se realiza el enrolamiento del paciente en la red ÚNICAS, previa obtención del consentimiento informado, registrando los datos administrativos básicos y los primeros hallazgos clínicos o antecedentes familiares.
Su objetivo es garantizar que desde el inicio del proceso se dispone de la información esencial para la coordinación entre niveles asistenciales y con otras comunidades autónomas, además de la trazabilidad del paciente dentro de la red.
Actividades principales:
En este momento, el paciente permanece en sospecha diagnóstica, pero recibe un tratamiento asociado a la evolución clínica. El registro del tratamiento en la plataforma permite reflejar que existe una intervención activa mientras se completa el estudio diagnóstico.
Este momento es fundamental para diferenciar entre los pacientes únicamente en fase de estudio y aquellos que ya han iniciado alguna línea de tratamiento específico para su diagnóstico, garantizando la continuidad asistencial y el seguimiento de la respuesta terapéutica.
Actividades principales:
Se inicia cuando se confirma el diagnóstico de la enfermedad minoritaria mediante los criterios clínicos, genéticos o bioquímicos establecidos. El paciente pasa a estar formalmente identificado dentro de la red con una patología concreta.
El diagnóstico puede incluir la revisión de pruebas, la validación de resultados o la integración de datos procedentes de distintos nodos.
Actividades principales:
Este momento representa la fase de tratamiento activo tras la confirmación del diagnóstico. Incluye la administración de terapias especializadas, medicamentos, o tratamientos de precisión asociados a la patología confirmada. El sistema garantiza la trazabilidad de todo el proceso terapéutico.
Actividades principales:
El último momento corresponde al cierre del proceso ÚNICAS, bien por fallecimiento del paciente (exitus letalis) en el que el nodo central es el responsable de notificar a los nodos, o por revocación del consentimiento informado o cualquier otra causa que implique la finalización del seguimiento dentro de la red, en el que son los propios nodos autonómicos los que comparten el momento del paciente al resto de la red.
El evento de salida genera una notificación automática a todos los nodos, que actualizan el estado del paciente y conservan la información con las debidas garantías de integridad, trazabilidad y seguridad.
Actividades principales:
Un evento señaliza los hitos clave del paciente en ÚNICAS, permitiendo determinar un cambio del momento del “proceso asistencial” en el que se encuentra el paciente.
A través del análisis de procesos se identificaron y definieron cuatro eventos clave que conforman el proceso mínimo consensuado en el marco del proyecto ÚNICAS:
| Siglas Evento | Tipos de Evento |
|---|---|
| 01 | Evento de entrada |
| 02 | Evento de diagnóstico |
| 03 | Evento de tratamiento y seguimiento |
| 04 | Evento de salida |
Estos eventos se han trasladado a la Plataforma de ÚNICAS al gestor del proceso.
También se han definido unas actividades asistenciales específicas donde resulta necesaria la compartición de información. Algunas de estas actividades tienen especial relevancia para el curso clínico del paciente y permiten situar el paciente en el CarePlan. Este paso es detectado por la plataforma ÚNICAS que modifica el CarePlan y el Task del paciente en la gestión del proceso de la plataforma.
La actividad consiste en una tarea concreta ejecutada bajo la responsabilidad y dirección de un encargado designado (Encounter). Cada vez que se recibe información mediante l’API FHIR de cada Nodo Autonómico, la plataforma de ÚNICAS relaciona la información recibida con una actividad.
Las actividades fundamentales incluidas en ÚNICAS son:
| Siglas Actividad | Actividad |
|---|---|
| AA | Admisión administrativa |
| AIS | Atención Intermedia - sociosanitaria |
| FTA | Farmacia y terapias avanzadas |
| HO | Hospitalización |
| OAPT | Otras actividades del plan terapéutico |
| OPD | Otras pruebas diagnósticas |
| PI | Pruebas de imagen |
| PL | Pruebas de laboratorio |
| PQ | Procedimientos quirúrgicos |
| VCE | Visitas a consulta externa |
| VU | Visita a urgencias |
| PG | Pruebas genómicas |
| IDTM | Información de la derivación y otros tipos de movilidad |
| SINA | Sin Actividad |
| CMT | Comités |
Esta es la relación realizada en la plataforma de ÚNICAS entre información estandarizada y las actividades que se van a contemplar en el proceso:
Toda esta gestión de los eventos y actividades, así como la relación con los informes y registros de datos la asume la propia plataforma ÚNICAS.
Todas las consultas a los procesos se gestionan mediante consultas basadas en recursos FHIR. Por lo general se utilizan las llamadas definidas en el estándar, aunque hay algunos casos específicos en los que se utilizan operaciones personalizadas (custom operation) definidas en el NA.
Los recursos FHIR que se utilizan son:
CarePlan: Representa el plan de atención de un paciente, incluyendo los objetivos, actividades previstas, responsables y seguimiento. Detalla las acciones planificadas para alcanzar metas de salud, facilitando la coordinación y el registro de la atención entre diferentes profesionales y servicios. En el contexto del proyecto es el recurso destinado a registrar la información de la instancia del proceso ÚNICAS de cada paciente, permite el seguimiento del paciente en función del proceso.
Task: Describe una tarea individual a realizar, relacionada con un proceso clínico o administrativo. Permite asignar, monitorizar y registrar el estado de actividades específicas, como procedimientos, solicitudes o acciones dentro de un flujo de trabajo, facilitando la gestión y seguimiento de dichas acciones. En el contexto del proyecto son los recursos utilizados para dejar registro de las actividades a realizar o realizadas durante el desarrollo de la instancia del proceso ÚNICAS.
Parameters: Se utiliza para intercambiar datos estructurados en operaciones o servicios, como llamadas a funciones o procesos dentro de la API FHIR. Permite encapsular y transmitir uno o varios valores de entrada y salida de manera flexible, sin un modelo de datos predefinido, facilitando la comunicación entre el cliente y el servidor en operaciones como $validate, $process-message o búsquedas personalizadas.
QuestionnaireResponse: Representa las respuestas proporcionadas por un usuario, paciente o profesional de salud a un cuestionario estructurado. Almacena los datos capturados durante la aplicación del cuestionario, asociando las respuestas con las preguntas y permitiendo su uso en procesos de evaluación, diagnóstico o seguimiento clínico. En ÚNICAS se utiliza para almacenar los formularios asociados a las actividades de usuario.
El siguiente diagrama representa el proceso:
Al iniciarse el proceso se tienen disponibles las siguientes actividades:
Al introducir el diagnóstico en la actividad “Enrolamiento en ÚNICAS” se puede indicar como “en sospecha” o “confirmado”, además de indicar si se encuentra en tratamiento específico para la enfermedad en ese momento. También se puede indicar que es “portador asintomático”, caso en el que se trata como un diagnóstico confirmado, pero sin opción a indicar si se está sometiendo a tratamiento específico.
Durante la ejecución del proceso, tal y como representa el diagrama, se puede pasar por los siguientes momentos:
La descripción detallada sobre la mensajería de ejecución de este proceso viene detallada en la documentación adicional disponible en el Área de descarga.
La descripción de los data sets empleados puede encontrarse en el apartado de Data sets de mensajería.
Este profile define las restricciones del recurso CarePlan representar al gestor del proceso en la red de ÚNICAS.
El recurso CarePlan representa parte de su información a través del atributo meta.tag, para minimizar el uso de extensiones.
Los valores de estas etiquetas son los siguientes:
| Atributo | Cardinalidad | Valores |
|---|---|---|
| meta.tag | 1..1 |
"system": "module", "code": "ohbpm" |
| meta.tag | 1..1 |
"system": "ohbpm.definition.spec", "code": "BPMN" |
| meta.tag | 1..1 |
"system": "ohbpm.careplan.process.finish", "code": {boolean} |
| meta.tag | 1..1 |
"system": "ohbpm.definition.key", "code": "P_UNICAS" |
| meta.tag | 1..1 |
"system": "ohbpm.definition.version", "code": {integer} |
La información detallada sobre Meta.tag está disponible en el apartado Decisiones de diseño FHIR para ÚNICAS.
$applyOperación personalizada del servidor para la inscripción a procesos. Permite instanciar procesos utilizando la última versión activa del proceso, sin necesidad de buscar previamente el identificador del PlanDefinition. Si ya existiera una instancia de ese proceso en curso al realizar la solicitud, la respuesta será el CarePlan existente, no creará uno nuevo. Si bien esta operación no pertenece a CarePlan, se incluye aquí por completitud del proceso.
POSThttps:///ohbpm/api/fhir/PlanDefinition/$apply
| Parámetros de entrada (Body) | |||
|---|---|---|---|
| Parámetro | Cardinalidad | Tipo | Descripción |
| Subject | 1..1 | Reference | Identificador del paciente por identificador CIPSNS. |
| Keycode | 1..1 | String |
Identificador del proceso que queremos iniciar/buscar y lo instanciará usando la última versión activa del proceso. Para ÚNICAS este keycode tiene el valor "P_UNICAS".
|
| Resultado | |||
| Return | 1..1 | CarePlan | Recurso CarePlan en curso para el paciente. |
$status-executionOperación personalizada del servidor para la búsqueda de actividades pendientes o disponibles de un proceso.
GEThttps:///ohbpm/api/fhir/CarePlan//$status-execution
| Parámetros de entrada (Body) | |||
|---|---|---|---|
| Parámetro | Cardinalidad | Tipo | Descripción |
| N/A | |||
| Resultado | |||
| Return | Bundle | Bundle de tipo “collection” con los recursos FHIR tipo TASK pendientes o disponibles. El campo id de la TASK que se quiera realizar es un dato que habrá que tomar de esta respuesta para usarlo si se quiere completar la actividad posteriormente. Este id será siempre un código que empieza por BPMTPR-.
|
|
$binnacleOperación personalizada para la consulta de actividades finalizadas.
GEThttps:// /ohbpm/api/fhir/CarePlan//$binnacle
| Parámetros de entrada (Body) | |||
|---|---|---|---|
| Parámetro | Cardinalidad | Tipo | Descripción |
| N/A | |||
| Resultado | |||
| Return | Bundle | Bundle de tipo “collection” con los recursos FHIR tipo TASK finalizados. | |
Este profile define las restricciones del recurso Task para representar el registro de tarea en el proceso de ÚNICAS.
Un recurso Task describe una actividad que puede realizarse y hace un seguimiento del estado de finalización de dicha actividad. Es una representación de que una actividad debe iniciarse o ya ha sido iniciada, y que, finalmente, refleja la finalización exitosa o fallida de esa actividad.
El campo meta.tag permitirá indicar una serie de etiquetas con información adicional sobre la actividad. La etiqueta que nos interesa para identificar las actividades es aquella cuyo system es ohbpm.task.planitem.
| Atributo | Cardinalidad | Valores |
|---|---|---|
| meta.tag | 1..1 |
"system": "module", "code": "ohbpm" |
| meta.tag | 1..1 |
"system": "ohbpm.definition.key", "code": "P_UNICAS" |
| meta.tag | 1..1 |
"system": "ohbpm.task.planitem", "code": "P_UNICAS.Activity_enrolamiento_unicas" |
|
"system": "ohbpm.task.planitem", "code": "P_UNICAS.Activity_salida_unicas" |
||
|
"system": "ohbpm.task.planitem", "code": "P_UNICAS.Activity_modificacion_form_sospecha" |
||
|
"system": "ohbpm.task.planitem", "code": "P_UNICAS.Activity_modificacion_form_sospecha_tratamiento" |
||
|
"system": "ohbpm.task.planitem", "code": "P_UNICAS.Activity_modificacion_form_confirmado" |
||
|
"system": "ohbpm.task.planitem", "code": "P_UNICAS.Activity_modificacion_form_confirmado_tratamiento" |
||
| meta.tag | 1..1 |
"system": "ohbpm.task.priority", "code": {integer} |
Además de las anteriores, existen Task asociadas a los diferentes momentos ÚNICAS. Estas no aparecen en la tabla porque no son tareas de usuario y por tanto no hay que realizar ninguna acción a través de la API con ellas para utilizar el flujo del proceso. Las tareas en cuestión son las siguientes:
La información detallada sobre Meta.tag está disponible en el apartado Decisiones de diseño FHIR para ÚNICAS.
$completeOperación personalizada del servidor para el envío de respuestas de los formularios.
POSThttps:///ohbpm/api/fhir/Task//$complete
| Parámetros de entrada (Body) | |||
|---|---|---|---|
| Parámetro | Cardinalidad | Tipo | Descripción |
| questionnaireResponse | 1..1 | QuestionnaireResponse | Respuesta a uno de los formularios definidos: de enrolamiento, de modificación de diagnóstico o de salida. |
| requester | 1..1 | PractitionerRole | Informa sobre el autor de la petición. |
| owner | 1..1 | PractitionerRole | Informa sobre el gestor del caso, para la adscripción del paciente. |
| Resultado | |||
| Return | 1..1 | Bundle |
Bundle de tipo “transaction-response” que incluye: - Una primera respuesta con el identificador de la actividad que se ha completado, el estado de la solicitud ( 200 OK si ha ido bien), la location del recurso y la fecha y hora en la que se realizó la modificación.- La segunda respuesta, con otra actividad completada, en este caso haciendo referencia a la etapa que se ha finalizado al completar la actividad anterior. Esta respuesta incluye también un campo outcome con el contenido de ese recurso Task.
|
En ÚNICAS, la interacción con el proceso del paciente se realiza mediante el envío de respuestas a formularios. Disponemos de tres formularios ÚNICAS que pueden ser respondidos, de acuerdo con las actividades ÚNICAS.
Enrolamiento ÚNICAS Esta primera actividad consiste en la realización de un formulario de inscripción. Este formulario de inscripción incluye el consentimiento de los familiares del paciente en primer lugar. Si se marca “NO” el formulario puede enviarse y darse por completado sin más información. Si se marca “SI” y por tanto se quiere continuar se despliega el resto del formulario, en el que se indica el diagnóstico y datos asociados a este.
Modificación del formulario de diagnóstico en sospecha/confirmado El formulario de modificación de diagnóstico y el de enrolamiento de paciente solo se diferencian en los dos primeros ítems, ya que el de modificación no incluye la firma y fecha del consentimiento, esto solo se indica al realizar el enrolamiento. En este formulario se puede modificar el formulario de diagnóstico que se ha creado durante el enrolamiento del paciente, por ejemplo, para confirmar el diagnóstico si estaba en sospecha.
Salida de paciente ÚNICAS La actividad de salida es la única actividad que siempre está disponible. En este formulario se indica el motivo de la salida del paciente. Una vez completada esta actividad la instancia deja de estar en curso.
Los primeros dos formularios coinciden en prácticamente todos los ítems excepto los dos primeros del formulario de Enrolamiento, que son solo de este formulario. A continuación, en una tabla, se muestran los ítems que forman los QuestionnaireResponse:
| LinkId | Definition | Text | Cardinalidad | Answer |
|---|---|---|---|---|
| 40* | Consentimiento | Consentimiento informado firmado | 1..1 |
valueCoding"code": "0", "display": "Sí" "code": "1", "display": "No" |
| 42* | Fecha_consentimiento | Fecha de firma del consentimiento | 0..1 |
valueDateyyyy-MM-ddTHH:mm:ss.SSSZ |
| 41 | code_system | Sistema de codificación del diagnóstico | 1..1 |
valueCoding"code": "0", "display": "SNOMED CT" "code": "1", "display": "CIE-10-ES" "code": "2", "display": "ORPHANET" |
| 52 | code_SNOMED | Diagnóstico | ** |
valueCoding"code": <código diagnóstico> "display": <texto diagnóstico> |
| 53 | code_CIE10 | Diagnóstico | ** |
valueCoding"code": <código diagnóstico> "display": <texto diagnóstico> |
| 46 | code_ORPHANET | Diagnóstico | ** |
valueCoding"code": <código diagnóstico> "display": <texto diagnóstico> |
| 55 | category_ClasificacionDiagnostico | Clasificación del diagnóstico | 1..* |
valueCoding"code": "2094971000122109", "display": "Diagnóstico etiológico" "code": "2094951000122101", "display": "Diagnóstico genético" "code": "8319008", "display": "Diagnóstico primario" "code": "85097005", "display": "Diagnóstico secundario" "code": "2094961000122104", "display": "Diagnóstico sindrómico" |
| 57 | note_text_condition | Observaciones generales sobre el diagnóstico | 0..1 | valueString |
| 11 | category_TipoDiagnostico | Tipo de diagnóstico | 1..1 |
valueCoding"code": "255545003", "display": "Confirmado" "code": "60022001", "display": "En sospecha" "code": "24800002", "display": "Portador asintomático" |
| 18 | evidence_GradoSospecha | Grado de sospecha | 0..1 |
valueCoding"code": "2095291000122104", "display": "Sospecha alta de enfermedad minoritaria" "code": "2095301000122103", "display": "Sospecha media de enfermedad minoritaria" "code": "2095311000122100", "display": "Sospecha baja de enfermedad minoritaria" |
| 36 | evidence_GradoSospecha_text | Observaciones sobre el grado de sospecha | 0..1 | valueString |
| 10 | onset | Fecha de diagnóstico | 1..1 |
valueDateyyyy-MM-ddTHH:mm:ss.SSSZ |
| 58*** | en_tratamiento | ¿El paciente se encuentra actualmente en tratamiento específico? | 1..1 |
valueCoding"code": "31874001", "display": "verdadero" "code": "64100000", "display": "falso" |
| 19 | evidence_Criterios_DiagnosticoClinico | Criterio de diagnóstico clínico | 0..1 |
valueCoding"code": "31874001", "display": "verdadero" "code": "64100000", "display": "falso" |
| 20 | evidence_DiagnosticoClinico_text | Observaciones criterio de diagnóstico clínico | 0..1 | valueString |
| 22 | evidence_Criterios_PruebaGenetica | Criterio de prueba genética | 0..1 |
valueCoding"code": "31874001", "display": "verdadero" "code": "64100000", "display": "falso" |
| 23 | evidence_PruebaGenetica_text | Observaciones criterio de prueba genética | 0..1 | valueString |
| 25 | evidence_Criterios_PruebaBioquimica | Criterio de prueba bioquímica | 0..1 |
valueCoding"code": "31874001", "display": "verdadero" "code": "64100000", "display": "falso" |
| 26 | evidence_PruebaBioquimica_text | Observaciones criterio de prueba bioquímica | 0..1 | valueString |
| 27 | evidence_Criterios_PruebaHematologica | Criterio de prueba hematológica | 0..1 |
valueCoding"code": "31874001", "display": "verdadero" "code": "64100000", "display": "falso" |
| 28 | evidence_PruebaHematologica_text | Observaciones criterio de prueba hematológica | 0..1 | valueString |
| 29 | evidence_Criterios_PruebaHistologica | Criterio de prueba histológica | 0..1 |
valueCoding"code": "31874001", "display": "verdadero" "code": "64100000", "display": "falso" |
| 30 | evidence_PruebaHistologica_text | Observaciones criterio de prueba histológica | 0..1 | valueString |
| 32 | evidence_Criterios_PruebaInmunologica | Criterio de prueba inmunológica | 0..1 |
valueCoding"code": "31874001", "display": "verdadero" "code": "64100000", "display": "falso" |
| 33 | evidence_PruebaInmunologica_text | Observaciones criterio de prueba inmunológica | 0..1 | valueString |
| 34 | evidence_Criterios_PruebaImagen | Criterio de prueba de imagen | 0..1 |
valueCoding"code": "31874001", "display": "verdadero" "code": "64100000", "display": "falso" |
| 35 | evidence_PruebaImagen_text | Observaciones criterio de prueba de imagen | 0..1 | valueString |
Nota:
- Los
linkId40 y 42 solo se incluyen en el Formulario de Enrolamiento. El resto son comunes e idénticos en ambos formularios. Si se indica “NO” en la pregunta 41, ninguna respuesta más es necesaria.- Se habilita el correspondiente a la codificación de diagnóstico seleccionada en el linkId 41. Solo se debe enviar uno de ellos, pero es necesario que se envíe.
- La pregunta “en_tratamiento” se omite si se indica en tipo de diagnóstico “portador asintomático”. El resto de las respuestas son en cualquier caso opcionales. Se pueden omitir del QuestionnaireResponse.
Por otro lado, el formulario de Salida solo incluye dos ítems, y de estos solo es obligatorio el que indica el motivo, el campo de observaciones es opcional.
| LinkId | Definition | Text | Card. | Answer |
|---|---|---|---|---|
| 5 | process_end_code | Motivo de la salida | 1..1 |
valueCoding"code": "01", "display": "Revocamiento del Consentimiento Informado" "code": "02", "display": "Revocación/cambio diagnóstico de enfermedad minoritaria a otra enfermedad prevalente" "code": "03", "display": "Paciente ya no es pediátrico" "code": "04", "display": "Profesional autorizado da de baja un Paciente" "code": "05", "display": "Fallecimiento" |
| 4 | process_end_observation | Observaciones | 0..1 | valueString |
Es importante recordar que nunca se envían los QuestionnaireResponse directamente como PUT de recurso, si no que siempre se envían dentro de un recurso Parameters , como parámetro de entrada de la operación personalizada del recurso Task $complete:
https:///ohbpm/api/fhir/Task//$complete