Risco MED

Integração para desenvolvedores

Como um sistema de prontuário abre um laudo do Risco MED para o paciente em atendimento e recebe o laudo assinado.

Com a integração, o médico que usa o seu sistema clica em um botão no atendimento e o Risco MED abre já com um laudo pré-operatório para aquele paciente, com os dados cadastrais preenchidos. Quando o médico assina o laudo, o seu sistema é avisado e recebe o endereço do PDF assinado.

A integração é compatível com o Manual de Integração 1.0 do Risco MED: sistemas que já integravam continuam funcionando sem mudanças.

  • 1. Visão geral
  • 2. Antes de começar
  • 3. Abrir o laudo
  • 4. Dados do paciente
  • 5. Aviso de laudo assinado
  • 6. Obter o PDF assinado
  • 7. Erros
  • 8. Segurança

1. Visão geral

  1. O seu sistema abre, no navegador do médico, o link de integração (seção 3).
  2. O Risco MED confere o seu sistema e o médico, entra na conta do médico e busca os dados do paciente no endereço urldata informado por você (seção 4).
  3. O paciente é cadastrado (ou atualizado) e um rascunho de laudo é aberto para ele.
  4. O médico preenche e assina o laudo com o certificado digital dele.
  5. O Risco MED chama o endereço urlret informado por você com o endereço do documento assinado (seção 5), e o seu sistema obtém o PDF (seção 6).

2. Antes de começar

Dois tokens são necessários:

TokenQuem fornecePara quê
Token do parceiro A equipe do Risco MED, ao cadastrar o seu sistema. Identifica o seu sistema. Fica só no seu servidor.
Token do médico O próprio médico, em Configurações > Integração no Risco MED. Identifica a conta do médico. Guarde-o junto ao cadastro do médico no seu sistema.

Para cadastrar o seu sistema, escreva para [email protected] informando o nome do sistema e o domínio dele (por exemplo prontuario.exemplo.com.br). Subdomínios desse domínio já ficam autorizados; outros domínios usados pelo seu sistema podem ser incluídos no cadastro.

3. Abrir o laudo

Abra no navegador do médico (nova aba, janela ou <iframe>):

GET https://app.risco.med.br/?tokenacesso=<token do médico>&urlCli=<domínio>_<hash>&urldata=<URL>&urlret=<URL>[&focus=true]
ParâmetroObrigatórioConteúdo
tokenacessosimO token do médico.
urlClisim O domínio do seu sistema, um sublinhado (_) e o hash md5(token do parceiro + token do médico), em hexadecimal minúsculo. A ordem inversa (md5(token do médico + token do parceiro)) também é aceita.
urldatasimEndereço, no seu sistema, de onde o Risco MED busca os dados do paciente em atendimento (seção 4). Codificado para URL.
urlretnãoEndereço, no seu sistema, chamado quando o laudo for assinado (seção 5). Codificado para URL. Sem ele, o seu sistema não é avisado.
focusnãotrue mostra só o laudo, sem o menu lateral e sem a barra superior (logo, saldo, conta): ideal para abrir o Risco MED dentro de uma tela do seu sistema (<iframe>). Sem ele, ou com false, abre o sistema completo. Vale só para a janela aberta pelo link: se o médico abrir o Risco MED em outra aba, vê o sistema completo.

Exemplo, com o token do parceiro TOKEN_DO_PARCEIRO e o token do médico TOKEN_DO_MEDICO:

hash = md5("TOKEN_DO_PARCEIROTOKEN_DO_MEDICO") = 3ee8447415f72c49c1cee87ec3c12f65

https://app.risco.med.br/?tokenacesso=TOKEN_DO_MEDICO&urlCli=prontuario.exemplo.com.br_3ee8447415f72c49c1cee87ec3c12f65&urldata=https%3A%2F%2Fprontuario.exemplo.com.br%2Fapi%2Friscomed%2Fpaciente%3Fatendimento%3D8841&urlret=https%3A%2F%2Fprontuario.exemplo.com.br%2Fapi%2Friscomed%2Fretorno%3Fatendimento%3D8841

Só o laudo, dentro do seu sistema:
https://app.risco.med.br/?tokenacesso=TOKEN_DO_MEDICO&urlCli=prontuario.exemplo.com.br_3ee8447415f72c49c1cee87ec3c12f65&urldata=https%3A%2F%2Fprontuario.exemplo.com.br%2Fapi%2Friscomed%2Fpaciente%3Fatendimento%3D8841&urlret=https%3A%2F%2Fprontuario.exemplo.com.br%2Fapi%2Friscomed%2Fretorno%3Fatendimento%3D8841&focus=true
urldata e urlret precisam usar https e pertencer ao domínio do seu sistema (ou a um subdomínio, ou a um domínio extra do cadastro). Um link com endereços de outro domínio é recusado: o link de integração passa pelo navegador e poderia ser alterado.

Abrir de novo o mesmo atendimento (mesmo paciente e mesmo urlret) continua o rascunho já aberto, em vez de criar outro laudo.

4. Dados do paciente (urldata)

O Risco MED faz um GET no endereço urldata (com Accept: application/json, tempo limite de 10 segundos) e espera um JSON com o paciente. O objeto pode vir sozinho ou dentro de uma lista de um item:

[
  {
    "status": "success",
    "nome": "Maria da Silva",
    "data_nasc": "1958-04-12",
    "sexo": "1",
    "cpf": "529.982.247-25",
    "rg": "",
    "est_civil": 2,
    "profissao": "Professora",
    "email": "[email protected]",
    "celular": "(31) 99999-9999",
    "telefone": "(31) 3333-4444",
    "exameFisico": "<p>Bom estado geral. PA 130 x 80 mmHg.</p>"
  }
]
CampoObrigatórioFormato
statussim"success". Qualquer outro valor é tratado como erro.
nomesimNome completo (é gravado em maiúsculas).
data_nascsimAAAA-MM-DD, não pode ser uma data futura.
sexonão"1" = feminino; qualquer outro valor = masculino.
cpfnãoCom ou sem pontuação. Usado se for um CPF válido.
rgnãoUsado quando não há CPF válido.
est_civilnão1 solteiro, 2 casado, 3 ou 4 separado / divorciado, 5 viúvo, 6 união estável.
profissaonãoTexto.
emailnãoUsado se for um e-mail válido.
celular, telefonenãoCom DDD, com ou sem pontuação.
exameFisiconãoTexto ou HTML simples: entra nas observações do exame físico do laudo.

O paciente é reconhecido pelo CPF (ou RG) e, sem documento, pelo nome e pela data de nascimento. Se ele já existe na conta do médico, nada do que o médico já cadastrou é sobrescrito: só campos vazios são preenchidos.

5. Aviso de laudo assinado (urlret)

Quando o médico assina o laudo, o Risco MED faz um GET no endereço urlret, acrescentando o parâmetro urlDoc com o endereço do documento:

GET https://prontuario.exemplo.com.br/api/riscomed/retorno?atendimento=8841&urlDoc=https%3A%2F%2Fapp.risco.med.br%2Fv%2F<token do documento>

Responda com:

{"status": "success"}

Sem essa resposta (erro, demora ou outro conteúdo), o aviso é repetido automaticamente: até 5 novas tentativas ao longo de cerca de 1 hora e 20 minutos. Trate avisos repetidos do mesmo documento como um só.

6. Obter o PDF assinado (urlDoc)

O endereço urlDoc segue o padrão de validação do ITI (o mesmo que o validar.iti.gov.br usa). Peça o JSON do documento informando, como código de acesso, o CPF (ou RG) do paciente, só os números:

GET <urlDoc>?_format=application/validador-iti%2Bjson&_secretCode=52998224725
{
  "version": "1.0.0",
  "prescription": {
    "signatureFiles": [
      { "url": "https://app.risco.med.br/v/<token>/documento-123.pdf?expires=...&signature=..." }
    ]
  }
}

Baixe o PDF no endereço url em até 10 minutos (depois disso, peça o JSON de novo). O PDF é assinado no padrão PAdES, com certificado ICP-Brasil do médico.

Para laudos de pacientes sem documento, use o código de acesso impresso no laudo, ao lado do código QR. Depois de 10 códigos errados, o documento fica bloqueado por 15 minutos (429).
RespostaSignificado
200JSON com o endereço do PDF.
401Código de acesso incorreto.
404Documento não encontrado (ou ainda não assinado).
429Tentativas demais: aguarde 15 minutos.

7. Erros ao abrir o laudo

Quando o link não pode ser aceito, o médico vê uma página de erro com uma destas mensagens:

HTTPMensagemO que verificar
400Os dados de integração estão incompletos.tokenacesso ou urlCli ausente, ou urlCli sem o _.
403O sistema de origem não está autorizado para a integração.O domínio em urlCli não corresponde a um sistema cadastrado e ativo.
403Não foi possível identificar o médico. Verifique o token de integração.Token do médico ou hash incorretos.
400O endereço informado em urldata / urlret não pertence ao sistema de origem.Endereço sem https ou de outro domínio.
403A conta do médico não está disponível.Conta do médico suspensa ou encerrada.
502O sistema de origem não retornou os dados do paciente.urldata não respondeu, ou respondeu sem status: success, nome ou data_nasc válidos.

8. Segurança

  • O token do parceiro fica só no seu servidor; monte o link de integração no servidor, não no navegador.
  • Quem tem o token de um médico e o token do parceiro pode abrir laudos em nome dele: guarde-os como senhas.
  • Os endereços urldata e urlret devem exigir que a requisição venha do Risco MED ou conter um identificador de atendimento difícil de adivinhar.
  • Todo o tráfego é feito por HTTPS.

Dúvidas técnicas

Escreva para [email protected], informando o nome do seu sistema e, se houver, o link de integração que apresentou o problema (sem os tokens).