As integrações personalizadas são uma funcionalidade da Provet que permite enviar pedidos para recursos externos a partir da própria Provet. Para obter acesso a esta funcionalidade, contacte a assistência Provet.
Gestão
Gerencie as integrações personalizadas em Configurações > Integrações > Integrações personalizadas.
Para adicionar uma integração, selecione o botão Adicionar.
Para editar uma integração, selecione o botão pen na linha da tabela.
Configurações
Campo | Descrição |
Nome | Especifica a etiqueta no botão visível na interface do utilizador. |
Especifica em que página o botão fica visível. Cada integração personalizada só pode estar visível numa página, mas a mesma configuração pode ser duplicada. | |
Ação | Especifica que ação será executada quando o botão for selecionado. |
Método HTTP | Especifica se o pedido será enviado como um pedido GET (carga útil fornecida como parâmetros na string de consulta) ou como um pedido PUBLICAR (carga útil fornecida como dados de formulário. |
URL | A URL de destino, completa com schema. |
Nome do parâmetro | O nome do parâmetro usado ao fornecer o ID do objeto atual. |
Ativado | Permite ativar e desativar uma integração personalizada. As integrações personalizadas também podem ser eliminadas caso já não sejam necessárias. |
Verificação de sal | Uma palavra-passe secreta partilhada usada para calcular o hash de verificação. Necessário quando o hash de verificação está ativado. |
Opções de Configuração
Adicionar hash de verificação: Ativa um hash de verificação na carga útil que pode ser usado para verificar que o pedido está a ser enviado a partir da integração personalizada.
Incluir a carga útil no hash de verificação: Esta opção recalcula o hash de verificação usando a carga útil completa, incluindo os IDs do utilizador e do cliente.
Adicionar informações sobre a organização e o departamento: Esta opção inclui automaticamente as informações necessárias da organização e do departamento. A Provet incluirá estes parâmetros no pedido: Nome da Provet (organização core), ID Provet (ID da organização do produto) e ID da clínica.
Prefixação do Valor do Parâmetro
É possível adicionar um prefixo personalizado ao valor do parâmetro definindo o nome do parâmetro de forma diferente.
Por exemplo, se definir o nome do parâmetro como 'id=client_', será enviado um pedido como https://example.com/?id=client_1.
Cabeçalhos
Os pedidos em segundo plano ('Enviar pedido HTTP') podem receber valores estáticos arbitrários que serão adicionados aos pedidos.
Isto pode ser usado para incluir cabeçalhos de Autorização nos pedidos.
Esta funcionalidade não é implementada para pedidos em primeiro plano ('Abra em nova janela', 'Aberto no painel lateral'). Os cabeçalhos enviados também não são registados.
Informação sobre carga útil
A visualização de configurações apresenta uma lista de chaves e valores da carga útil que são enviados com o pedido. Esta lista é atualizada quando as configurações são modificadas.
Tipos de Ação
1. Enviar pedido HTTP
Um pedido é agendado em segundo plano e enviado usando os servidores da Provet. Os utilizadores não verão a página, mas podem ver uma notificação enquanto o envio está em progresso.
O pedido terá origem nos endereços IP de saída da Provet.
O envio acontece de forma assíncrona e pode haver um atraso dependendo da quantidade de trabalho em curso nos servidores.
Verá uma notificação de informação no topo da página quando o pedido estiver a ser agendado.
É apresentada uma notificação de sucesso se o pedido for enviado com sucesso e a integração responder com um código de estado HTTP bem-sucedido (entre 200 e 299, inclusive).
Se o pedido falhar, será exibida uma notificação de erro com a mensagem 'Pedido da integração falhou', juntamente com uma mensagem de erro mais específica entre parêntesis.
Mensagem de erro | Descrição |
Erro no backend | Ocorreu um erro desconhecido nos servidores de workers da Provet. Contacte a assistência Provet para obter informações adicionais. |
Erro de ligação | O pedido para agendar o envio não foi concluído. |
Erro de dados | O pedido para agendar o envio continha dados inválidos. |
Erro de integração | O pedido foi enviado com sucesso, mas a integração respondeu com um código de estado HTTP não bem-sucedido (inferior a 200 ou superior a 299). |
2. Abra em nova janela
A URL de destino é aberta numa nova janela ou numa nova tab do browser.
Se for usado um pedido GET, os utilizadores podem ver a informação da carga útil apresentada na barra de endereço do browser.
3. Aberto no painel lateral
A URL de destino é incorporada na Provet abrindo um painel lateral por cima do conteúdo da página e exibindo a página como um iframe.
A URL de destino tem de suportar a incorporação (o cabeçalho X-Frame-Options tem de estar definido corretamente).
Utilização
As integrações personalizadas são apresentadas como botões nas páginas de destino.
Se existir apenas uma integração configurada para uma página, é apresentada como um botão normal.
Se uma página tiver várias integrações, elas são apresentadas como um menu suspenso.
As integrações personalizadas apenas enviam o ID relevante do objeto (ID do cliente, ID do paciente, ID da fatura, etc.) que pode ser consultado através da API REST do Provet.
Página | Localização do botão | ID enviado como parâmetro |
Cliente | No lado direito, acima da secção Notas (não nas abas do paciente). | ID do cliente |
Paciente | No lado direito, acima da secção Notas (não nas abas do cliente). | ID do paciente |
Fatura | Na barra de ferramentas inferior das páginas de fatura (incluindo venda de balcão). | ID da fatura (não o número da fatura) |
Consulta | Acima da secção de informação geral, tanto para consultas em curso como para consultas terminadas. | ID da Consulta |
Calendário de marcações | No topo do calendário de marcações. | ID da localização da clínica ativa |
Calendário de mudança | No topo do calendário de mudança. | ID da localização da clínica ativa |
Imagem de diagnóstico | Na página de referência de diagnóstico imagiológico, nas barras de ferramentas superior e inferior. | ID de referência de diagnóstico imagiológico |
Lembretes | Na barra de seleção na página de lembretes quando um ou mais lembretes estão selecionados. | ID do Lembrete para cada lembrete selecionado |
Registo
Os pedidos enviados em segundo plano ('Enviar pedido HTTP') são registados num registo interno para verificação e auditoria.
Aceda a Configurações > Integrações > Integrações personalizadas > Registo.
A visualização do registo lista todos os pedidos efetuados, começando pelo pedido mais recente.
Veja mais informação na visualização de detalhes selecionando o botão de olho no lado direito de cada linha.
Nota
O registo não é efetuado em pedidos em primeiro plano ('Abra em nova janela', 'Aberto no painel lateral').
Verificação de sal & hashes
A opção "Verificação de sal" só é visível se "Adicionar hash de verificação" estiver selecionado. Além disso, "Incluir a carga útil no hash de verificação" também é apresentado quando "Adicionar hash de verificação" estiver selecionado.
Com base na combinação de permissões, o hash de verificação é calculado da seguinte forma:
1. Verificação de sal ativada, "incluir a carga útil na opção de verificação" desativado -> hash calculado como: Digestão do hash MD5 de verificação hexadecimal, por exemplo, "4e531ee13aa16886db72bc1621206d2f". O hash é gerado anexando a verificação de sal após o carimbo de data/hora incluído ("2018-07-15T09:12:54+00:00My verification salt"). [string]2. Verificação de sal ativada, "incluir a carga útil na opção de verificação" ativado, "Adicionar informações sobre a organização e o departamento" DESATIVADO -> hash calculado como: Digestão do hash MD5 de verificação hexadecimal, por exemplo, "23ae5385b3862a571f1b5d6f6b469b1c". O hash é calculado com: "<timestamp><salt><parameter_name><object_id>user_id<user_id>" ("2018-07-15T09:12:54+00:00My verification saltpatient_id1234user_id56"). [string]3. Verificação de sal ativada, "incluir a carga útil na opção de verificação" ativado, "Adicionar informações sobre a organização e o departamento" ATIVADO -> hash calculado como: Digestão do hash MD5 de verificação hexadecimal, por exemplo, "163049a017bb405d4bfec754810c9838". O hash é calculado com: "<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 verification saltpatient_id1234user_id56provet_envenvprovet_id12345department_id12"). [string]Os hashes de verificação podem ser usados como validação adicional para verificar quais pedidos estão a ser enviados a partir da integração personalizada da Provet.
Quando ativado, é adicionado um parâmetro adicional chamado "verification" aos pedidos.
Este parâmetro é uma digestão do hash MD5 do carimbo de data/hora e da verificação de sal.
Para o envio em segundo plano, o carimbo de data/hora é gerado quando o pedido é efetivamente enviado.
Para o envio em primeiro plano, o carimbo de data/hora é gerado quando uma página que contém o botão da integração personalizada é carregada.
Por exemplo, para verificar se o hash de verificação é válido em Python, pode-se escrever uma função 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.verificationComunicação bidirecional com a Provet
A Provet permite uma quantidade limitada de comunicação bidirecional com integrações personalizadas abertas em primeiro plano usando a API Window.postMessage().
O único comando válido é "reload".
function refreshProvetCloud() { window.opener.postMessage("reload","*");}Este comando executa uma recarga completa da página na janela ou tab que abriu a integração personalizada.
Isto pode ser útil se a integração personalizada atualizar os dados da Provet via a API REST.
