Las integraciones personalizadas son una función de Provet que permite enviar solicitudes a recursos externos desde el interior de Provet. Para obtener acceso a esta función, póngase en contacto con el servicio de asistencia de Provet.
Gestión
Administre las integraciones personalizadas en Ajustes > Integraciones > Integraciones personalizadas.
Para añadir una integración, seleccione el botón Añadir.
Para editar una integración, seleccione el botón pen en la fila de la tabla.
Ajustes
Campo | Descripción |
Name | Especifica la etiqueta del botón que se muestra en la interfaz de usuario. |
Especifica en qué Página el botón es visible. Cada integración personalizada solo puede mostrarse en una página, pero se puede duplicar la misma configuración. | |
Acción | Especifica qué acción se realizará cuando se seleccione el botón. |
método HTTP | Especifica si la solicitud se enviará como una solicitud GET (datos transmitidos como parámetros en la cadena de consulta) o como una solicitud POST (datos transmitidos como datos de formulario. |
URL | La URL de destino, completa con el esquema. |
Nombre del parámetro | El nombre del parámetro que se utiliza al proporcionar el ID del objeto actual. |
Habilitado | Permite habilitar y deshabilitar una integración personalizada. También se pueden eliminar las integraciones personalizadas si ya no son necesarias. |
Verificación de sal | Un secreto compartido que se utiliza para calcular el hash de verificación. Es obligatorio cuando el hash de verificación está habilitado. |
Opciones de configuración
Agregar hash de verificación: Habilita un hash de verificación en los datos transmitidos que se puede usar para verificar que la solicitud procede de la integración personalizada.
Incluir datos transmitidos en el hash de verificación: Esta opción recalcula el hash de verificación utilizando los datos transmitidos completos, incluidos los ID de usuario y Cliente.
Añadir información de la organización y el departamento: Esta opción incluye automáticamente la información organizativa y del departamento necesaria. Provet incluirá estos parámetros en la solicitud: Nombre de Provet (núcleo de la organización), ID de Provet (ID de la organización del producto) e ID de departamento.
Prefijar el valor del parámetro
Es posible añadir un prefijo personalizado al valor del parámetro especificando el nombre del parámetro de forma distinta.
Por ejemplo, si define el nombre del parámetro como 'id=client_', se enviará una solicitud como https://example.com/?id=client_1.
Encabezados
Las solicitudes en segundo plano ('Enviar solicitud HTTP') se pueden proporcionar con valores estáticos arbitrarios que se añadirán a las solicitudes.
Esto se puede usar para incluir encabezados de Autorización en las solicitudes.
Esta función no se implementa para solicitudes en primer plano ('Abrir en una nueva ventana', 'Abrir en el panel lateral'). Los encabezados enviados tampoco se registran.
Información sobre la carga útil
La vista de ajustes muestra una lista de claves y valores de la información sobre la carga útil que se envían con la solicitud. Esta lista se actualiza cuando se modifican los ajustes.
Tipos de acción
1. Enviar solicitud HTTP
Una solicitud se programa en segundo plano y se envía mediante los servidores de Provet. Los usuarios no verán la página web, pero pueden ver una notificación cuando avance el envío.
La solicitud procederá de las direcciones IP salientes de Provet.
El envío se realiza de forma asíncrona y puede haber un retraso según la cantidad de trabajo que haya actualmente en los servidores.
Verá una notificación de información en la parte superior de la Página cuando se esté programando la solicitud.
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 satisfactorio (entre 200 y 299, ambos inclusive).
Si la solicitud falla, se mostrará una notificación de error con el mensaje 'Integration request failed' y, en paréntesis, un mensaje de error más específico.
Mensaje de error | Descripción |
Error en backend | Se produjo un error desconocido en los servidores de trabajadores de Provet. Póngase en contacto con el servicio de asistencia de Provet para obtener más información. |
Error de conexión | No se pudo programar el envío. |
Error de datos | La solicitud para programar el envío contenía datos no válidos. |
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). |
2. Abrir en una nueva ventana
La URL de destino se abre en una nueva ventana o en una nueva pestaña del navegador.
Si se utiliza una solicitud GET, los usuarios pueden ver la información sobre la carga útil mostrada en la barra de direcciones del navegador.
3. Abrir en el panel lateral
La URL de destino se integra en Provet abriendo un panel lateral encima del contenido de la página y mostrando la página como un iframe.
La URL de destino debe admitir la inserción (el encabezado X-Frame-Options debe configurarse correctamente).
Uso
Las integraciones personalizadas se muestran como botones en las páginas de destino.
Si solo hay una integración configurada para una página, se muestra como un botón normal.
Si una página tiene varias integraciones, se muestran como un menú desplegable.
Las integraciones personalizadas solo envían el ID relevante del objeto (ID de Cliente, ID de Paciente, ID de la factura, etc.) que se puede consultar mediante la API REST de Provet.
Página | Ubicación del botón | ID enviado como un parámetro |
Client | En el lado derecho, encima de la sección Notas (no en las pestañas del paciente). | ID del Cliente |
Patient | En el lado derecho, encima de la sección Notas (no en las pestañas del cliente). | ID de Paciente |
Facturación | En la barra de herramientas inferior de las páginas de factura (incluidas las de venta de mostrador). | ID de la factura (no el número de la factura) |
Consulta | Encima de la sección Información general, tanto para consultas en curso como para consultas finalizadas. | ID de consulta |
Appointment Calendar | Encima del calendario de citas. | ID de ubicación de la clínica activa |
Shift Calendar | Encima del calendario de turnos. | ID de ubicación de la clínica activa |
Diagnóstico por Imágenes | En la página de derivación de diagnóstico por imagen, en las barras de herramientas superior e inferior. | ID de referencia de diagnóstico por imágenes |
Recordatorios | En la barra de selección de la página Recordatorios cuando se selecciona uno o varios recordatorios. | ID de recordatorio para cada recordatorio seleccionado |
Registro
Las solicitudes enviadas en segundo plano ('Enviar solicitud HTTP') se registran en un registro interno para la verificación y la auditoría.
Vaya a Ajustes > Integraciones > Integraciones personalizadas > Registro.
La vista del registro enumera todas las solicitudes realizadas, empezando por la más reciente.
Vea más información en la vista de detalle seleccionando el botón del ojo en el lado derecho de cada fila.
Nota
No se realiza el registro en las solicitudes en primer plano ('Abrir en una nueva ventana', 'Abrir en el panel lateral').
Verificación de sal y hashes
La opción "Verificación de sal" solo se muestra si se selecciona "Agregar hash de verificación". Además, "Incluir datos transmitidos en el hash de verificación" también se muestra cuando se selecciona "Agregar hash de verificación".
En función de la combinación de permisos, el hash de verificación se calcula del siguiente modo:
1. Verificación de sal habilitada, "include payload in verficiation option" deshabilitado -> hash calculado como: Verificación hexadecimal MD5 hash digest, por ejemplo, "4e531ee13aa16886db72bc1621206d2f". El hash se genera añadiendo la Verificación de sal después de la marca de tiempo incluida ("2018-07-15T09:12:54+00:00My verificación de sal"). [cadena]2. Verificación de sal habilitada, "include payload in verification option" habilitado, "Añadir información de la organización y el departamento" DESHABILITADO -> hash calculado como: Verificación hexadecimal MD5 hash digest, por ejemplo, "23ae5385b3862a571f1b5d6f6b469b1c". El hash se calcula con: "<timestamp><salt><parameter_name><object_id>user_id<user_id>" ("2018-07-15T09:12:54+00:00My verificación de salpatient_id1234user_id56"). [cadena]3. Verificación de sal habilitada, "include payload in verification option" habilitado, "Añadir información de la organización y el departamento" HABILITADO -> hash calculado como: Verificación hexadecimal MD5 hash digest, por ejemplo, "163049a017bb405d4bfec754810c9838". El hash se calcula con: "<timestamp><salt><parameter_name><object_id>user_id<user_id>provet_env<provet_env>provet_id<provet_id>department_id<department_id>" ("2018-07-15T09:12:54+00:00My verificación de salpatient_id1234user_id56provet_envenvprovet_id12345department_id12"). [cadena]Los hashes de verificación se pueden usar como validación adicional para verificar qué solicitudes proceden de la integración personalizada de Provet.
Cuando está habilitado, se añade un parámetro adicional llamado "verification" a las solicitudes.
Este parámetro es un hash digest MD5 de la marca de tiempo y la Verificación de sal.
Para el envío en segundo plano, la marca de tiempo se genera cuando realmente se envía la solicitud.
Para el envío en primer plano, la marca de tiempo se genera cuando se carga una página que contiene el botón de la integración personalizada.
Por ejemplo, para verificar que el hash de verificación es válido en Python, podría escribirse una función como esta:
from hashlib import md5VERIFICATION_SALT = "My custom verification salt"def is_verification_hash_valid(parameters): hasher = md5() hasher.update(parameters.timestamp.encode("utf8")) hasher.update(VERIFICATION_SALT.encode("utf8")) return hasher.hexdigest() == parameters.verificationComunicación bidireccional con Provet
Provet permite una cantidad limitada de comunicación bidireccional con integraciones personalizadas abiertas en primer plano usando la API Window.postMessage().
El único comando válido es "reload".
function refreshProvetCloud() { window.opener.postMessage("reload","*");}Este comando realiza una recarga completa de la página en la ventana o pestaña que abrió la integración personalizada.
Esto puede ser útil si la integración personalizada actualiza los datos de Provet a través de la API REST.
