Ir para conteúdo principal

Integrações personalizadas

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 as…

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.

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.

CI2.png

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.

CI5.png

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.

CI3.png
CI4.png
  1. Vá a Configurações > Integrações > Integrações personalizadas > Registo.

  2. A vista de registo lista todos os pedidos efetuados, começando pelo pedido mais recente.

  3. 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.verification

Comunicaçã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.

Veja também

Isto respondeu à sua pergunta?