Integração para desenvolvedores
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
- O seu sistema abre, no navegador do médico, o link de integração (seção 3).
- 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
urldatainformado por você (seção 4). - O paciente é cadastrado (ou atualizado) e um rascunho de laudo é aberto para ele.
- O médico preenche e assina o laudo com o certificado digital dele.
- O Risco MED chama o endereço
urlretinformado 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:
| Token | Quem fornece | Para 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âmetro | Obrigatório | Conteúdo |
|---|---|---|
tokenacesso | sim | O token do médico. |
urlCli | sim | 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. |
urldata | sim | Endereço, no seu sistema, de onde o Risco MED busca os dados do paciente em atendimento (seção 4). Codificado para URL. |
urlret | não | Endereço, no seu sistema, chamado quando o laudo for assinado (seção 5). Codificado para URL. Sem ele, o seu sistema não é avisado. |
focus | não | true 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>"
}
]
| Campo | Obrigatório | Formato |
|---|---|---|
status | sim | "success". Qualquer outro valor é tratado como erro. |
nome | sim | Nome completo (é gravado em maiúsculas). |
data_nasc | sim | AAAA-MM-DD, não pode ser uma data futura. |
sexo | não | "1" = feminino; qualquer outro valor = masculino. |
cpf | não | Com ou sem pontuação. Usado se for um CPF válido. |
rg | não | Usado quando não há CPF válido. |
est_civil | não | 1 solteiro, 2 casado, 3 ou 4 separado / divorciado, 5 viúvo, 6 união estável. |
profissao | não | Texto. |
email | não | Usado se for um e-mail válido. |
celular, telefone | não | Com DDD, com ou sem pontuação. |
exameFisico | não | Texto 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.
429).
| Resposta | Significado |
|---|---|
200 | JSON com o endereço do PDF. |
401 | Código de acesso incorreto. |
404 | Documento não encontrado (ou ainda não assinado). |
429 | Tentativas 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:
| HTTP | Mensagem | O que verificar |
|---|---|---|
400 | Os dados de integração estão incompletos. | tokenacesso ou urlCli ausente, ou urlCli sem o _. |
403 | O 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. |
403 | Não foi possível identificar o médico. Verifique o token de integração. | Token do médico ou hash incorretos. |
400 | O endereço informado em urldata / urlret não pertence ao sistema de origem. | Endereço sem https ou de outro domínio. |
403 | A conta do médico não está disponível. | Conta do médico suspensa ou encerrada. |
502 | O 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
urldataeurlretdevem 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).