As integrações personalizadas são uma funcionalidade em Provet que permite enviar pedidos para recursos externos a partir do interior do Provet. Para obter acesso a esta funcionalidade, contacte a assistência Provet.
Gestão
Gerir 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 de utilizador. |
Especifica em que página o botão fica visível. Cada integração personalizada só pode estar visível em uma página, mas a mesma configuração pode ser duplicada. | |
Ação | Especifica qual 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 POST (carga útil fornecida como dados de formulário). |
URL | A URL de destino, completa com o esquema. |
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 se deixarem de ser necessárias. |
Verificação de sal | Uma palavra-passe 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 ID 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. Provet irá incluir estes parâmetros no pedido: nome do Provet (organização base), ID do Provet (ID da organização do produto) e ID da clínica.
Prefixar o 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 e 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 ('Abrir num novo separador', 'Aberto no painel lateral'). Os cabeçalhos enviados também não são registados.
Informação sobre carga útil
A vista de configurações apresenta uma lista de chaves e valores da carga útil enviados com o pedido. Esta lista é atualizada à medida que as configurações são alteradas.
Tipos de ação
1. Enviar pedido HTTP
Um pedido é agendado em segundo plano e enviado usando os servidores do Provet. Os utilizadores não verão a página da Web, mas podem ver uma notificação quando o envio estiver em progresso.
O pedido será enviado a partir dos endereços IP de saída do Provet.
O envio acontece de forma assíncrona e pode haver um atraso, dependendo da quantidade de trabalho atualmente 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 de sucesso (entre 200 e 299, inclusive).
Se o pedido falhar, será apresentada 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 do backend | Ocorreu um erro desconhecido nos servidores worker do Provet. Contacte a assistência Provet para obter mais informações. |
Erro de ligação | O pedido para agendar o envio não foi efetuado. |
Erro de dados | O pedido para agendar o envio continha dados inválidos. |
Erro da integração | O pedido foi enviado com sucesso, mas a integração respondeu com um código de estado HTTP não-sucedido (inferior a 200 ou superior a 299). |
2. Abrir num novo separador
A URL de destino é aberta num novo separador ou janela do browser.
Se for usado um pedido GET, os utilizadores podem ver a informação sobre carga útil apresentada na barra de endereço do browser.
3. Aberto no painel lateral
A URL de destino é incorporada no 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 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 estiver configurada apenas uma integração para uma página, é apresentada como um botão normal.
Se uma página tiver várias integrações, estas são apresentadas como um menu pendente.
As integrações personalizadas enviam apenas o ID relevante do objeto (ID do cliente, ID do paciente, ID da fatura, etc.) que pode ser consultado na 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 separadores do paciente). | ID do cliente |
Paciente | No lado direito, acima da secção Notas (não nas separadores 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, para consultas em curso e 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 turnos | No topo do calendário de turnos. | ID da localização da clínica ativa |
Imagem de diagnóstico | Na página de referenciação para diagnóstico imagiológico, nas barras de ferramentas superior e inferior. | ID da referenciação para diagnóstico imagiológico |
Lembrete | 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.
Vá a Configurações > Integrações > Integrações personalizadas > Registo.
A vista de registo lista todos os pedidos efetuados, começando pelo pedido mais recente.
Veja mais informação na vista 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 ('Abrir num novo separador', 'Aberto no painel lateral').
Verificação de sal e hashes
A opção "Verificação de sal" fica visível apenas se "Adicionar hash de verificação" estiver selecionado. Além disso, "Incluir a carga útil no hash de verificação" também é exibido quando "Adicionar hash de verificação" está 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 no hash 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 no hash 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 no hash 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 do Provet.
Quando ativado, é adicionado nos pedidos um parâmetro adicional chamado "verification".
Este parâmetro é um digest 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 que o hash de verificação é válido em Python, poderá 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 Provet
O 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 um recarregamento completo da página na janela ou separador que abriu a integração personalizada.
Isto pode ser útil caso a integração personalizada atualize dados do Provet através da API REST.
