Integraciones personalizadas

Introducción

Las integraciones personalizadas son una característica de Provet Cloud que permite enviar solicitudes a recursos externos desde dentro de Provet Cloud. Para obtener acceso a las funciones, póngase en contacto con el soporte de Provet Cloud.

Gestión

Las integraciones personalizadas se gestionan en Ajustes → Integraciones → Integraciones personalizadas.

Para añadir una integración, utilice el botón azul "+Añadir"; utilice el botón blanco del lápiz en la fila de la tabla para editar una integración.

Screenshot_2021-12-14_at_8.28.59.png

Ajustes

  • Nombre - Especifica la etiqueta del botón visible en la interfaz de usuario.

  • Página visible - Especifica en qué página es visible el botón. Cada integración personalizada sólo puede ser visible en una página, pero la misma configuración puede duplicarse en varias integraciones personalizadas.

  • Acción - Especifica qué acción se llevará a cabo cuando se haga clic en el botón.

    • Enviar solicitud HTTP - Se programa una solicitud en segundo plano y se envía utilizando los servidores de Provet Cloud. Los usuarios no verán la página web, pero pueden ver una notificación cuando el envío progresa. La petición vendrá de las direcciones IP salientes de Provet Cloud, por lo que el extremo receptor debe estar abierto para peticiones externas.

    • Abrir en nueva ventana - La URL de destino se abre en una nueva ventana/pestaña del navegador.

    • Abrir en panel lateral - La URL de destino se incrusta en Provet Cloud abriendo un panel lateral sobre el contenido de la página y mostrando la página como un iframe. La URL de destino debe admitir la incrustación (es decir, el encabezado X-Frame-Options debe estar configurado correctamente).

  • Método HTTP - Especifica si la solicitud se enviará como una solicitud GET, con la carga útil suministrada como parámetros en la cadena de consulta, o como una solicitud POST, con la carga útil suministrada como datos de formulario.

  • URL - La URL de destino, completa con el esquema.

  • Nombre del parámetro - Nombre del parámetro utilizado al proporcionar el ID del objeto actual.

  • Activado - Permite activar y desactivar una integración personalizada. Las integraciones personalizadas también se pueden eliminar si ya no son necesarias.

  • Añadir hash de verificación - Habilita un hash de verificación en la carga útil que puede utilizarse para verificar que la solicitud procede de la integración personalizada.

  • Sal de verificación - Un secreto compartido que se utiliza para calcular el hash de verificación, sólo es necesario cuando el hash de verificación está activado.

Valor del parámetro de prefijación

Es posible añadir un prefijo personalizado al valor del parámetro especificando el nombre del parámetro de forma diferente. Normalmente, si se especifica el nombre del parámetro como 'id', se obtendría una solicitud como https://example.com/?id=1. Sin embargo, si se requiere un prefijo personalizado delante del valor de ID real, el nombre del parámetro podría definirse, por ejemplo, como 'id=cliente_", lo que enviaría una solicitud https://example.com/?id=client_1.

Encabezados

A las peticiones en segundo plano ("Enviar petición HTTP") también se les pueden asignar valores arbitrarios y estáticos que se añadirán a las peticiones cada vez que se envíen. Esto puede utilizarse, por ejemplo, para incluir cabeceras de autorización en las solicitudes.

Esta función no está implementada para las solicitudes en primer plano ("Abrir en una ventana nueva", "Abrir en un panel lateral"). Tampoco se registran las cabeceras enviadas.

Información sobre la carga útil

Screenshot_2021-12-14_at_10.50.07.png

La vista de configuración mostrará una lista de claves y valores de carga útil que se enviarán con la solicitud, ya sea como parámetros de cadena de consulta (GET) o datos de formulario (POST). Esta lista se actualizará a medida que se modifiquen los ajustes.

Registro

Las solicitudes enviadas en segundo plano ('Enviar solicitud HTTP') se registrarán en un registro interno con fines de verificación y auditoría. Esto permite a los administradores comprobar qué tipo de solicitudes fueron enviadas por quién y en qué momento e inspeccionar el tipo de respuesta que la integración personalizada envió de vuelta.

El registro de integraciones personalizadas puede consultarse desde Ajustes → Integraciones → Integraciones personalizadas → Registro.

Screenshot_2021-12-14_at_9.33.19.png

La vista de registro mostrará todas las solicitudes realizadas, empezando por la última solicitud. La información básica sobre las solicitudes se mostrará en la lista, y se podrá acceder a más información en la vista detallada haciendo clic en el botón del ojo situado a la derecha de cada fila.

Screenshot_2021-12-14_at_9.33.53.png

El registro no se realiza en las peticiones en primer plano ('Abrir en una ventana nueva', 'Abrir en panel lateral'), ya que el navegador es el encargado de realizar estas peticiones.

Utilización

Una vez añadidas, las integraciones personalizadas se mostrarán como botones en sus páginas de destino. Los botones de integración personalizados pueden distinguirse fácilmente de los botones de Provet Cloud por su aspecto marrón único.

Si sólo se configura una integración personalizada para una página, se mostrará como un botón normal, con el nombre de la integración personalizada como etiqueta. Véase el botón marrón "Activar integración personalizada" en la imagen siguiente (página de cliente).

Screenshot_2021-12-14_at_10.07.37.png

Si una página tiene varias integraciones personalizadas adjuntas, las integraciones personalizadas se mostrarán como un menú desplegable, utilizando de nuevo el mismo aspecto marrón para distinguirlas. Las entradas del menú utilizarán el nombre de la integración personalizada como etiqueta, al igual que los botones individuales. Vea la siguiente imagen para una ilustración.

Screenshot_2021-12-14_at_10.11.17.png

Las integraciones personalizadas no envían información detallada sobre la página visible en ese momento. En su lugar, sólo envían el ID de objeto relevante (ID de cliente, ID de paciente, ID de factura, etc.) que se puede consultar desde la API REST de Provet Cloud, de forma similar a cómo funcionan los webhooks.

Las integraciones personalizadas no incluyen automáticamente información sobre la página en la que están registradas. Los usuarios deben utilizar diferentes puntos finales de URL para diferentes páginas (por ejemplo integration.com/client/ para la integración personalizada de la página del cliente y integration.com/patient/ para la integración personalizada de la página del paciente), o si eso no es posible, diferentes nombres de parámetros (por ejemplo patient_id para la integración de la página del paciente y client_id para la integración de la página del cliente si ambas utilizan la misma URL) y luego distinguir en el lado de la integración por qué parámetro se incluye en la solicitud. Para las solicitudes en segundo plano, también se pueden utilizar cabeceras personalizadas.

Tampoco hay referencia al ID de Provet activo. Si está construyendo una integración compartida entre múltiples instancias de Provet Cloud, se recomienda añadir endpoints para cada ID de Provet (por ejemplo integration.com/1234/client/ y integration.com/4321/client/ si la integración será utilizada por ambas instancias de Provet Cloud 1234 y 4321). En este caso, también se recomienda utilizar hashes de verificación para garantizar que los datos provienen de la instancia correcta, incluso si hay un error de configuración con una URL de integración personalizada. Para las solicitudes en segundo plano, también se pueden utilizar cabeceras personalizadas.

Diferentes acciones

Enviar solicitud HTTP

Si una integración personalizada se define como una acción 'Enviar solicitud HTTP', al hacer clic en el botón de integración personalizada se programará una solicitud que se enviará en segundo plano utilizando los servidores de trabajo de Provet Cloud. El envío se producirá de forma asíncrona, y aunque por lo general la solicitud se realiza casi de inmediato, puede haber un retraso en función de la cantidad de trabajo actualmente en los servidores. La solicitud se originará desde las direcciones IP salientes de Provet Cloud.

Cuando se esté programando la solicitud, el usuario verá una notificación informativa en la parte superior de la página.

Screenshot_2022-01-06_at_12.12.11.png

Si la solicitud se gestiona y se completa sin que el usuario salga de la página, se le puede mostrar una notificación adicional al completar la tarea.

Se muestra una notificación de éxito si la solicitud se envía correctamente y la integración responde con un código de estado HTTP correcto (entre 200 y 299 inclusive).

Screenshot_2022-01-06_at_12.11.51.png

Sin embargo, si la solicitud falla por cualquier motivo, se mostrará una notificación de error en rojo que dirá "Solicitud de integración fallida", con un mensaje de error más específico entre paréntesis.

Screenshot_2022-01-06_at_12.12.01.png

Los posibles mensajes de error en este momento son:

  • Error de backend - Se ha producido un error desconocido en los servidores de trabajadores de Provet Cloud al enviar la solicitud. Esto puede ser un error en los servidores de Provet Cloud. Póngase en contacto con el soporte de Provet Cloud para obtener información adicional.

  • Error de conexión - La solicitud para programar el envío realizada a los servidores de Provet Cloud no ha tenido éxito. Esto puede ser un error con la conexión del usuario o tal vez un problema con los servidores de Provet Cloud.

  • Error de datos - La solicitud para programar el envío realizada a los servidores de Provet Cloud contenía datos no válidos. Esto sugiere un problema en Provet Cloud.

  • Error de integración - La solicitud se envió correctamente, pero la integración respondió con un código de estado HTTP no satisfactorio (inferior a 200 o superior a 299). Se puede utilizar el registro de integración personalizado para determinar el motivo si el fallo es inesperado.

Abrir en una ventana nueva

Si una integración personalizada se define como una acción 'Abrir en una nueva ventana', al hacer clic en el botón de integración personalizada se abrirá la URL de destino en una nueva ventana, o más comúnmente con los navegadores modernos, en una nueva pestaña. La página original de Provet Cloud permanecerá abierta en su ventana/pestaña original.

Si se utiliza un método de solicitud GET, los usuarios pueden ver la información de la carga útil en la barra de direcciones del navegador. Si los usuarios no deben ver fácilmente la información de la carga útil transmitida, considere la posibilidad de utilizar una solicitud POST en su lugar.

Panel lateral abierto

Si una integración personalizada se define como una acción "Abrir en panel lateral", al hacer clic en el botón de integración personalizada se obtiene la URL de destino dentro del navegador y se muestra dentro de un elemento iframe dentro de un panel lateral que se abre en la parte superior de la página actual.

La URL de destino debe admitir la incrustación a través de su cabecera X-Frame-Options.

Screenshot_2021-12-14_at_10.37.17.png

Páginas

Cliente

Las integraciones personalizadas de cliente se mostrarán en la página de cliente, en la parte derecha, encima de la sección de Notas, al navegar por cualquiera de las pestañas de cliente ('Detalles de cliente', 'Facturación', 'Tratamientos', etc.). No se mostrará en las pestañas de los pacientes. El ID del cliente se enviará como parámetro.

Paciente

Del mismo modo, las integraciones personalizadas de los pacientes se mostrarán en la página del paciente, en la parte derecha, encima de la sección Notas, al navegar por las pestañas de los pacientes ("Detalles del paciente", "Historial", "Medidas", etc.). No se mostrará en las pestañas del cliente. El ID del paciente se enviará como parámetro.

Screenshot_2021-12-14_at_12.25.13.png

Facturar

Las integraciones personalizadas de facturas se mostrarán en las páginas de facturas (incluida la contraventa) en la barra de herramientas inferior. El ID de la factura (no confundir con el número de factura) se enviará como parámetro.

Screenshot_2022-01-06_at_12.30.39.png

Consulta

Las integraciones personalizadas de consultas se mostrarán en la página de la consulta, encima de la sección de información general, tanto para las consultas en curso como para las finalizadas. El ID de la consulta se enviará como parámetro.

Screenshot_2022-01-06_at_12.30.56.png

Calendario de citas

Las integraciones personalizadas del calendario de citas se mostrarán encima del calendario de citas. El ID de ubicación de la clínica activa se enviará como parámetro.

Calendario de turnos

Del mismo modo, las integraciones personalizadas del calendario de turnos se mostrarán encima del calendario de turnos, debajo del tipo de turno y la selección de plantilla de turno. El ID de ubicación de la clínica activa se enviará como parámetro.

Screenshot_2021-12-14_at_14.21.34.png

Diagnóstico por Imágenes

Las integraciones personalizadas de diagnóstico por imagen se mostrarán en la página de remisión de diagnóstico por imagen en las barras de herramientas superior e inferior. El ID de derivación de diagnóstico por imagen se enviará como parámetro.

Screenshot_2021-12-14_at_14.27.11.png

Recordatorios

Las integraciones personalizadas de recordatorios se mostrarán en la barra de herramientas de selección de la página de recordatorios cuando se seleccionen uno o varios recordatorios en la tabla. Se pueden seleccionar y enviar varios recordatorios al mismo tiempo. El ID de recordatorio de cada recordatorio seleccionado se enviará como parámetros.

Screenshot_2021-12-14_at_14.33.09.png

Hashes de verificación

Si existe el riesgo de que partes externas puedan enviar solicitudes a la URL de destino, y se requiere saber qué solicitudes provienen de la integración personalizada de Provet Cloud, se pueden utilizar hashes de verificación como validación adicional. Cuando se activa, un parámetro adicional llamado "verificación" se añadirá a las solicitudes y es un resumen hash MD5 de la marca de tiempo y la sal de verificación.

Por ejemplo, para comprobar que el hash de verificación es válido en Python, se podría escribir una función como ésta:

Screenshot_2022-01-06_at_12.36.15.png

Cuando se utiliza el envío en segundo plano ("Enviar solicitud HTTP"), la marca de tiempo se genera cuando se envía realmente la solicitud. Sin embargo, cuando se utiliza el envío en primer plano ("Abrir en una nueva ventana"), la marca de tiempo se genera cuando se carga una página que contiene el botón de integración personalizado. Esto se hace para generar el hash de verificación en el lado del servidor y evitar exponer la sal de verificación a los usuarios. Es posible que los desarrolladores de integraciones personalizadas deban tener en cuenta que los usuarios pueden pasar algún tiempo en la página antes de hacer clic en el botón de integración personalizada.

Comunicación bidireccional con Provet Cloud

Provet Cloud permite una cantidad limitada de comunicación bidireccional con integraciones personalizadas abiertas en primer plano utilizando la API Window.postMessage(). La ventana/pestaña que abrió la integración personalizada está disponible a través del objeto window.opener y, por lo tanto, se puede enviar un mensaje con window.opener.postMessage(message), donde el mensaje es un comando válido reconocido por Provet Cloud.

Screenshot_2022-01-06_at_12.36.23.png

Actualmente, el único comando válido es "reload", que realizará una recarga completa de la página en la ventana/pestaña que abrió la integración personalizada. Esto puede, por ejemplo, ser útil si la integración personalizada actualiza los datos de Provet Cloud a través de la API REST, y los usuarios deben ver los últimos cambios al volver de la integración personalizada.

Actualización

¿Fue útil este artículo?

Usuarios a los que les pareció útil: 0 de 0

¿Tiene más preguntas? Enviar una solicitud

Comentarios

0 comentarios

Inicie sesión para dejar un comentario.