Referência da API

Bem-vindo à API da RWE Telemed! Você pode usar esta API para acessar todos os nossos endpoints, com a nossa API você pode construir seu próprio site ou adaptar seu sistema atual para realizar solicitações de exames e buscar informações de exames, pacientes, médicos ou laudos.

A API é organizada em torno de REST. Todas as solicitações devem ser feitas por SSL. Todos os corpos de solicitação e resposta, incluindo erros, são codificados em JSON.

Também temos exemplos para facilitar a integração em linguagens diferentes. Você pode alternar a linguagem de programação dos exemplos através das guias no canto superior direito.

Atualmente, oferecemos integração utilizando as seguintes linguagens:

  • PHP
  • Node
  • Python

Para testes práticos, recomendamos um cliente REST chamado Postman. Basta clicar no botão abaixo para importar uma coleção pré-fabricada de exemplos.

Autenticação

Autenticação usando PHP - cURL basic auth.
<?php
    $curl = curl_init();

    curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://telemed.rwedev.com/api/list/units',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => array(
        'Authorization: Basic dGVzdGVAdGVzdGUuY29tOjEyMzQ1Ng=='
    ),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;
Autenticação usando NodeJs - Request basic auth.

var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://telemed.rwedev.com/api/list/units',
  'headers': {
    'Authorization': 'Basic dGVzdGVAdGVzdGUuY29tOjEyMzQ1Ng=='
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
Autenticação usando Python - Requests basic auth.

import requests

url = "https://telemed.rwedev.com/api/list/units"

payload = {}
headers = {
  'Authorization': 'Basic dGVzdGVAdGVzdGUuY29tOjEyMzQ1Ng=='
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

A autenticação é feita através do seu e-mail e senha cadastrado em nosso sistema. O processo para criação de usuários é realizado durante o atendimento de treinamento.

As solicitações são autenticadas usando HTTP Basic Auth. Forneça seu e-mail cadastrado como o nome de usuário de autenticação e sua senha de acesso ao RWE Telemed criptografados em base64, separado por : (dois pontos), como no seguinte exemplo:

email@dominio.com.br:senhaexemplo

Você pode utilizar o seu cadastro administrativo para gerenciar mais de um contrato ou usar o seu cadastro operacional para gerenciar um contrato específico.

Erros

Nossa API retorna o código de sucesso HTTP padrão (200) ou códigos de status de erro. Em casos onde ocorra algum tipo de erro, também incluímos informações extras sobre as possíveis causas, enviando a informação na resposta como JSON. Os vários códigos de status HTTP que podemos retornar estão listados abaixo.

Códigos de status HTTP

Código Título Descrição
200 Ok A solicitação foi bem-sucedida.
201 Created O recurso foi criado com sucesso.
202 Async created O recurso foi criado de forma assíncrona.
400 Bad request Bad request.
401 Unauthorized Seu e-mail ou senha é inválido!
402 Over quota Acima da cota do plano neste endpoint.
404 Not found O recurso não existe.
422 Validation error Ocorreu um erro de validação.
429 Too Many Requests O limite de taxa foi excedido.
50X Internal Server Error Ocorreu um erro com nossa API.

Tipos de erro

Todos os erros retornam na forma de JSON, informando o tipo e em alguns casos mensagem opcional.

Exemplo de resposta de erro.

  {
    "error": {
      "type": "params_invalid",
      "message": "Name is required"
    }
  }
Tipo Descrição
params_invalid Seus parâmetros não são válidos.
unknown_record O registro não foi encontrado.
unknown_route URL não era válido.
queued Pesquisa na fila. Tente esta solicitação novamente em alguns minutos.
rate_limit A solicitação tem taxa limitada.
api_error Erro interno da API.

Limitação de taxa

Verifique quantos pedidos nos restam:

$ curl --location 'https://telemed.rwedev.com/api/list/units' \
--header 'Authorization: Basic dGVzdGVAdGVzdGUuY29tOjEyMzQ1Ng=='

HTTP/1.1 200 OK
Date: Wed, 14 Jun 2023 15:10:10 GMT
Status: 200 OK
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 99

Você pode realizar até 100 solicitações por minuto para cada API, exceto se estiver utilizando Streaming ou Reveal. Recomendamos verificar os cabeçalhos HTTP retornados em cada solicitação de API para verificar o status atual do limite de taxa. Caso esteja enfrentando esse erro ou acredite que necessita de um limite de taxa mais alto, por favor, nos envie uma mensagem para suporte@rwesistemas.com.br.

Exemplo de resposta de erro de limite de taxa.

HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1402010983
Retry-After: 50

Content-Type: application/json
  {
    "error": {
      "type": "rate_limit",
      "message": "Rate limit exceeded. Limit is 100 requests per minute. Rate limit will be reset in 50 seconds."
    }
  }
Cabeçalho Nome
X-RateLimit-Limit O número máximo de solicitações que o consumidor pode fazer por minuto.
X-RateLimit-Remaining O número de solicitações restantes na janela de limite de taxa atual.
X-RateLimit-Reset A hora em que a janela de limite de taxa atual é redefinida por segundos em UTC epoch. (em caso de dúvidas quanto ao formato da data, insira o exemplo aqui para conferência: https://www.epochconverter.com/)
Retry-After O número de segundos a aguardar até que a janela de limite de taxa seja redefinida. Enviado apenas quando o limite de taxa é atingido.

Depois de ultrapassar o limite de taxa, você receberá umrate_limit como resposta de erro.

Solicitação de Exame

Através desse endpoint você poderá fazer a solicitação de exame na RWE Telemed. Essa é a solicitação mais complexa da nossa API, portanto, leia atentamente como realizá-las, preenchendo todos os parâmetros obrigatórios.

Você pode utilizar nossos outros endpoints para auxiliar no preenchimento dos parâmetros, buscando os dados que já foram cadastrados anteriormente em outras solicitações de exame.

Nossos documentos de integração fornecerão um guia passo a passo para utilizar a API. Além disso, reunimos algumas requisições de exemplo em PHP, Node e Python. Se você precisar de mais informações, os documentos completos da API abaixo o ajudarão a dar os primeiros passos.

Atributos

A descrição indica a propriedade e como devem ser utilizados os atributos.

A requisição codificada em JSON tem esta aparência.

{
  "integration": "Nome do seu sistema",
  "cnpj": "00.000.000/0000-00",
  "patient": {
    "name": "João Henrique da Silva",
    "sex": "masculino",
    "birth_date": "1990-05-05",
    "cpf": "000.000.000-00"
  },
  "exam": {
    "name": "Coluna Lombo Sacra",
    "solicitation_doctor": "Roger Marinho de Souza",
    "date": "2023-06-05",
    "type": "clinico",
    "clinic_indication": "Solicitação médica",
    "clinic_sector": "Ambulatório",
    "emergency": false,
    "observed_incidences": "PA"
  },
  "images": ["https://seusite.com.br/exame.pdf"]
}
Atributo Tipo Descrição
integration string Nome do seu aplicativo ou da empresa
cnpj string CNPJ da sua empresa. Este campo não é obrigatório, o exame será inserido para sua empresa principal. Caso o usuário administre várias Empresas, especifique para qual o exame será enviado por este campo.
patient.name string Nome completo do paciente
patient.sex string Sexo do paciente
patient.birth_date string Data de nascimento do paciente no formato padrão SQL (AAAA-MM-DD)
patient.cpf string CPF ou código de indentificação do paciente(no formato XXX.XXX.XXX-XX, incluindo caracteres especiais)
exam.name string Nome completo do exame
exam.solicitation_doctor string Nome completo do médico solicitante do exame
exam.date string Data da realização do exame no formato padrão SQL (AAAA-MM-DD)
exam.medicine string Informar se o paciente faz uso de medicamentos
exam.allergies string Informar se o paciente possui alguma alergia
exam.surgeries string Informar se o paciente já realizou alguma cirurgia
exam.dicease_history string Informar o histórico de doenças do paciente
exam.type string Informar o tipo do exame, sendo eles:clínico, ocupacional,sus
exam.clinic_indication string Indicação para a realização do exame OBS: Válido e obrigatório em exames do tipo clínico
exam.clinic_sector string As opções são:Ambulatório, Emergência, Quarto, CTI,UTI. OBS: Válido e obrigatório em exames do tipo clínico
exam.sus_indication string Motivo da indicação do exames. OBS: Válido e obrigatório em exames do tipo SUS
exam.sus_sector string As opções são Ambulatório, Emergência, Quarto, CTI,UTI. OBS: Válido e obrigatório em exame do tipo SUS
exam.sus_id string Código do cartão SUS ou CPF do paciente. OBS: Válido e obrigatório em exames do tipo SUS
exam.occupational_company string Empresa que o colaborador trabalha ou empresa solicitante do exame. OBS: Válido e obrigatório em exames do tipo ocupacional
exam.occupational_sector string As opções são Admissional, Demissional, Periódico, Retorno ao Trabalho, Afastamento, Acidente de Trabalho, Mudança de Risco Ocupacional, Mudança de Função, Requerimento de Atividades Críticas. OBS: Válido e obrigatório em exame do tipo ocupacional
exam.occupational_job string Cargo ou função do paciente. OBS: Válido e obrigatório em exames do tipo ocupacional
exam.emergency boolean Pedido de prioridade e urgência no exame
exam.public_exam boolean Exame para concurso público ou com obrigatoriedade de ser laudado por médico com RQE
exam.observed_incidences string Tipos de incidências PA, Axial, AP, Perfil, Obliqua, No Leito AP, Lateral, Batráquio Rã, Hirtz Obrigatório somente em exames de Raio X
exam.info_correcao string Informar se o paciente possui correção. As opções são (SIM ou NÃO). Obrigatório somente em exames de Acuidade Visual
exam.info_lateralidade string Informar Lateralidade do paciente. As opções são (Destro ou Canhoto). Obrigatório somente em exames de Eletroencefalograma
exam.info_fumante string Informar se o paciente é fumante. As opções são (SIM ou NÃO). Obrigatório somente em exames de Espirometria
exam.info_broncodilatador string Informar se o paciente faz uso de broncodilatador. As opções são (SIM ou NÃO). Obrigatório somente em exames de Espirometria
exam.info_marcapasso string Informar se o paciente faz uso de marca passo. As opções são (SIM ou NÃO). Obrigatório somente em exames de Holter
exam.info_pa string Informar pressão arterial do paciente. Obrigatório somente em exames de Holter e Risco Cirurgico
exam.info_peso string Informar o peso do paciente. Obrigatório somente em exames de Holter e Risco Cirurgico
exam.info_altura string Informar a altura do paciente. Obrigatório somente em exames de Holter e Risco Cirurgico
exam.info_medico string Informar o nome do médico(a) solicitante. Obrigatório somente em exames de Risco Cirurgico
images array Lista com os links das imagens do exame solicitado

HTTP Request

Requisição da solicitação de exame usando PHP - cURL
<?php
    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://telemed.rwedev.com/api/exam/post',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => '{
        "integration": "Nome do seu sistema",
        "cnpj": "00.000.000/0000-00",
        "patient": {
        "name": "João Henrique da Silva",
        "sex": "masculino",
        "birth_date": "1990-05-05",
        "cpf": "000.000.000-00"
        },
        "exam": {
        "name": "Coluna Lombo Sacra",
        "solicitation_doctor": "Roger Marinho de Souza",
        "date": "2023-06-05",
        "type": "clinico",
        "clinic_indication": "Solicitação médica",
        "clinic_sector": "Ambulatório",
        "emergency": false,
        "observed_incidences": "PA"
        },
        "images": ["https://seusite.com.br/exame.pdf"]
        }',
        CURLOPT_HTTPHEADER => array(
            'Content-Type: application/json',
            'Authorization: Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
        ),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;

Requisição da solicitação de exame usando Python - Requests
import requests
import json

url = "https://telemed.rwedev.com/api/exam/post"

payload = json.dumps({
    "integration": "Nome do seu sistema",
    "cnpj": "00.000.000/0000-00",
    "patient": {
        "name": "João Henrique da Silva",
        "sex": "masculino",
        "birth_date": "1990-05-05",
        "cpf": "000.000.000-00"
    },
    "exam": {
        "name": "Coluna Lombo Sacra",
        "solicitation_doctor": "Roger Marinho de Souza",
        "date": "2023-06-05",
        "type": "clinico",
        "clinic_indication": "Solicitação médica",
        "clinic_sector": "Ambulatório",
        "emergency": False,
        "observed_incidences": "PA"
    },
  "images": [
    "https://seusite.com.br/exame.pdf"
  ]
})
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
Requisição da solicitação de exame usando NodeJs - Request

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://telemed.rwedev.com/api/exam/post',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
  },
  body: JSON.stringify({
    "integration": "Nome do seu sistema",
    "cnpj": "00.000.000/0000-00",
    "patient": {
      "name": "João Henrique da Silva",
      "sex": "masculino",
      "birth_date": "1990-05-05",
      "cpf": "000.000.000-00"
    },
    "exam": {
      "name": "Coluna Lombo Sacra",
      "solicitation_doctor": "Roger Marinho de Souza",
      "date": "2023-06-05",
      "type": "clinico",
      "clinic_indication": "Solicitação médica",
      "clinic_sector": "Ambulatório",
      "emergency": false,
      "observed_incidences": "PA"
    },
    "images": [
        "https://seusite.com.br/exame.pdf"
    ]
  })

};
request(options, function (error, response) {
    if (error) throw new Error(error);
  console.log(response.body);
});

POST https://telemed.rwedev.com/api/exam/post

HTTP POST parâmetros

Os seguintes parâmetros são OBRIGATÓRIOS.

Parâmetro Tipo Descrição
integration string Identificação do sistema ou integração
patient.name string Nome completo do paciente
patient.sex string Sexo do paciente
patient.birth_date string Data de nascimento do paciente
patient.cpf string CPF ou código de indentificação do paciente(no formato XXX.XXX.XXX-XX, incluindo caracteres especiais)
exam.name string Nome completo do exame
exam.solicitation_doctor string Nome completo do médico solicitante do exame
exam.date string Data da realização do exame
exam.type string Tipo do exame
exam.clinic_indication string Motivo da indicação do exame
exam.clinic_sector string Setor onde o paciente se encontra ou opção ocupacional
exam.emergency boolean Prioridade de urgência no exame
exam.observed_incidences string Tipos de incidências
images array Lista com links das imagens do exame

Os seguintes parâmetros são OPCIONAIS.

Parâmetro Tipo Descrição
cnpj string Especificar para qual Empresa será enviado o exame. Caso não seja enviado o exame será inserido para a Empresa principal vinculada ao usuário autenticado.

Unidades

Por meio desse endpoint, você pode obter a lista de todas as clínicas ou hospitais registrados em sua conta administrativa na RWE Telemed. Essa solicitação é útil para realizar uma consulta (SELECT) e obter informações cadastrais que ajudarão no preenchimento da solicitação de exame.

Para realizar essa requisição, é necessário que seu tipo de usuário esteja cadastrado como administrador.

Atributos

A descrição indica a propriedade de cada atributo.

A resposta codificada em JSON tem esta aparência.

{
  "id": "db03aadc-7561-4108-9e7b-eeffec49eda9",
  "cnpj": "15.177.356/0001-72",
  "trade_name": "Rwe Telediagnosticos",
  "corporate_name": "Rwe Consultoria e Diagnosticos LTDA"
},
{
  "id": "fd943c90-00b4-4ff3-8d8c-9337671113a5",
  "cnpj": "31.695.951/0001-56",
  "trade_name": "Rwe Sistemas",
  "corporate_name": "Rwe Sistemas Solucoes Integradas Em Software Ltda"
}
Atributo Tipo Descrição
id uuid Identificação do contrato
cnpj string CNPJ da empresa
trade_name string Nome fantasia da empresa
corporate_name string Razão social da empresa

HTTP Request

Requisição da solicitação de exame usando PHP - cURL
<?php
    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://telemed.rwedev.com/api/list/units',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'GET',
        CURLOPT_HTTPHEADER => array(
            'Authorization: Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
        ),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;

Requisição da solicitação de exame usando Python - Requests
import requests
import json

url = "https://telemed.rwedev.com/api/list/units"

payload = {}
headers = {
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
Requisição da solicitação de exame usando NodeJs - Request

var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://telemed.rwedev.com/api/list/units',
  'headers': {
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
  }
};
request(options, function (error, response) {
    if (error) throw new Error(error);
  console.log(response.body);
});

GET https://telemed.rwedev.com/api/list/units

Exames

Por meio desse endpoint, é possível solicitar a lista de exames disponíveis em seu contrato. Essa solicitação pode ser utilizada para criar uma consulta (SELECT) e obter informações cadastrais que auxiliarão no preenchimento da solicitação de exame.

Atributos

A descrição indica a propriedade de cada atributo.

A resposta codificada em JSON tem esta aparência.

{
  "name": "Oit",
  "type": "ocupacional"
},
{
  "name": "Acuidade Visual",
  "type": "clinico"
},
{
  "name": "Acuidade Visual",
  "type": "ocupacional"
},
{
  "name": "Ecg",
  "type": "clinico"
},
{
  "name": "Ecg",
  "type": "sus"
}
Atributo Tipo Descrição
name string Nome do exame
type string Tipo do exame

HTTP Request

Requisição da solicitação de exame usando PHP - cURL
<?php
    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://telemed.rwedev.com/api/list/exams',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => '{
        "cnpj": "15.177.356/0001-72"
        }',
        CURLOPT_HTTPHEADER => array(
            'Content-Type: application/json',
            'Authorization: Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
        ),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;

Requisição da solicitação de exame usando Python - Requests
import requests
import json

url = "https://telemed.rwedev.com/api/list/exams"

payload = json.dumps({
    "cnpj": "15.177.356/0001-72"
})
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
Requisição da solicitação de exame usando NodeJs - Request

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://telemed.rwedev.com/api/list/exams',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
  },
  body: JSON.stringify({
    "cnpj": "15.177.356/0001-72"
  })

};
request(options, function (error, response) {
    if (error) throw new Error(error);
  console.log(response.body);
});

POST https://telemed.rwedev.com/api/list/exams

HTTP POST parâmetro

O seguinte parâmetro é OBRIGATÓRIO.

Parâmetro Tipo Descrição
cnpj string CNPJ do contrato que deseja visualizar a lista de exames(no formato XX.XXX.XXX/XXXX-XX, incluindo os caracteres especiais)

Pacientes

Por meio desse endpoint, é possível solicitar a lista de pacientes já cadastrados, com base nas solicitações de exame registradas em seu contrato. Essa solicitação pode ser utilizada para criar uma consulta (SELECT) e obter informações de cadastro que auxiliarão no preenchimento da solicitação de exame.

Atributos

A descrição indica a propriedade de cada atributo.

A resposta codificada em JSON tem esta aparência.

{
  "name": "MARIA DA SILVA",
  "birth_date": "1970-01-10",
  "cpf": "000.000.000-00",
  "sex": "feminino"
},
{
  "name": "JOSÉ HENRIQUE DE SOUZA",
  "birth_date": "1965-08-15",
  "cpf": "111.111.111-11",
  "sex": "masculino"
},
{
  "name": "VICTOR HUGO PEREIRA",
  "birth_date": "1988-12-12",
  "cpf": "222.222.222-22",
  "sex": "masculino"
},
{
  "name": "FERNANDA CRISTINA LUCENA",
  "birth_date": "1992-07-23",
  "cpf": "333.333.333-33",
  "sex": "feminino"
}
Atributo Tipo Descrição
name string Nome do paciente
birth_date string Data de nascimento do paciente
cpf string CPF ou código de identificação do paciente
sex string Sexo do paciente

HTTP Request

Requisição da solicitação de exame usando PHP - cURL
<?php
    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://telemed.rwedev.com/api/list/patients',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => '{
        "cnpj": "15.177.356/0001-72"
        }',
        CURLOPT_HTTPHEADER => array(
            'Content-Type: application/json',
            'Authorization: Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
        ),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;

Requisição da solicitação de exame usando Python - Requests
import requests
import json

url = "https://telemed.rwedev.com/api/list/patients"

payload = json.dumps({
    "cnpj": "15.177.356/0001-72"
})
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
Requisição da solicitação de exame usando NodeJs - Request

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://telemed.rwedev.com/api/list/patients',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
  },
  body: JSON.stringify({
    "cnpj": "15.177.356/0001-72"
  })

};
request(options, function (error, response) {
    if (error) throw new Error(error);
  console.log(response.body);
});

POST https://telemed.rwedev.com/api/list/patients

HTTP POST parâmetro

O seguinte parâmetro é OBRIGATÓRIO.

Parâmetro Tipo Descrição
cnpj string CNPJ do contrato que deseja visualizar a lista de pacientes(no formato XX.XXX.XXX/XXXX-XX, incluindo os caracteres especiais)

Médicos Solicitantes

Por meio desse endpoint, você pode solicitar a lista de médicos solicitantes já cadastrados com base nas solicitações de exame registradas em seu contrato. Essa solicitação pode ser utilizada para criar uma consulta (SELECT) e obter informações de cadastro que auxiliarão no preenchimento da solicitação de exame.

Atributos

A descrição indica a propriedade de cada atributo.

A resposta codificada em JSON tem esta aparência.

{
  "name": "CRISTIANO ROBERTO LEÃO"
},
{
  "name": "ROBERT SILVESTRE DA COSTA"
},
{
  "name": "PATRÍCIA C. L. FERNANDES"
}
Atributo Tipo Descrição
name string Nome do(a) médico(a) solicitante

HTTP Request

Requisição da solicitação de exame usando PHP - cURL
<?php
    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://telemed.rwedev.com/api/list/doctors',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => '{
        "cnpj": "15.177.356/0001-72"
        }',
        CURLOPT_HTTPHEADER => array(
            'Content-Type: application/json',
            'Authorization: Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
        ),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;

Requisição da solicitação de exame usando Python - Requests
import requests
import json

url = "https://telemed.rwedev.com/api/list/doctors"

payload = json.dumps({
    "cnpj": "15.177.356/0001-72"
})
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
Requisição da solicitação de exame usando NodeJs - Request

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://telemed.rwedev.com/api/list/doctors',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
  },
  body: JSON.stringify({
    "cnpj": "15.177.356/0001-72"
  })

};
request(options, function (error, response) {
    if (error) throw new Error(error);
  console.log(response.body);
});

POST https://telemed.rwedev.com/api/list/doctors

HTTP POST parâmetro

O seguinte parâmetro é OBRIGATÓRIO.

Parâmetro Tipo Descrição
cnpj string CNPJ do contrato que deseja visualizar a lista de pacientes(no formato XX.XXX.XXX/XXXX-XX, incluindo os caracteres especiais)

Exames Pendentes

Através desse endpoint, você poderá acompanhar a lista de exames aguardando laudo. Essa solicitação permite disponibilizar, em seu painel de controle (dashboard), os exames pendentes para laudo.

Atributos

A descrição indica a propriedade de cada atributo.

A resposta codificada em JSON tem esta aparência.

{
  "name": "Coluna Lombo Sacra Com Obliquas",
  "date": "2023-06-14",
  "created_at": "2023-06-14 16:56:55",
  "emergency": true
  "patient": {
    "name": "JOSÉ HENRIQUE DE SOUZA",
    "sex": "masculino",
    "cpf": "111.111.111-11"
  }
},
{
  "name": "Coluna Lombo Sacra Com Obliquas",
  "date": "2023-06-13",
  "created_at": "2023-06-13 11:24:15",
  "emergency": false
  "patient": {
    "name": "FERNANDA CRISTINA LUCENA",
    "sex": "feminino",
    "cpf": "333.333.333-33"
  }
}
Atributo Tipo Descrição
name string Nome do exame
date string Data da realização do exame
created_at string Data de criação do exame na RWE Telemed
emergency boolean Solicitação de prioridade de emergência
patient.name string Nome completo do paciente
patient.sex string Sexo do paciente
patient.cpf string CPF ou código de indentificação do paciente(no formato XXX.XXX.XXX-XX, incluindo caracteres especiais)

HTTP Request

Requisição da solicitação de exame usando PHP - cURL
<?php
    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://telemed.rwedev.com/api/exam/pending',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => '{
        "cnpj": "15.177.356/0001-72"
        }',
        CURLOPT_HTTPHEADER => array(
            'Content-Type: application/json',
            'Authorization: Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
        ),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;

Requisição da solicitação de exame usando Python - Requests
import requests
import json

url = "https://telemed.rwedev.com/api/exam/pending"

payload = json.dumps({
    "cnpj": "15.177.356/0001-72"
})
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
Requisição da solicitação de exame usando NodeJs - Request

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://telemed.rwedev.com/api/exam/pending',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
  },
  body: JSON.stringify({
    "cnpj": "15.177.356/0001-72"
  })

};
request(options, function (error, response) {
    if (error) throw new Error(error);
  console.log(response.body);
});

POST https://telemed.rwedev.com/api/exam/pending

HTTP POST parâmetro

O seguinte parâmetro é OBRIGATÓRIO.

Parâmetro Tipo Descrição
cnpj string CNPJ do contrato que deseja visualizar a lista de exames pendentes(no formato XX.XXX.XXX/XXXX-XX, incluindo os caracteres especiais)

Exames Finalizados

Através desse endpoint você poderá visualizar a lista de exames finalizados com o laudo disponível para download. Essa solicitação pode ser utilizada para disponibilizar em seu dashboard os exames finalizado.

Essa requisição irá retornar somente os laudos realizados nos últimos 3 meses por ordem decrescente.

Atributos

A descrição indica a propriedade de cada atributo.

A resposta codificada em JSON tem esta aparência.

{
  "name": "Coluna Lombo Sacra Com Obliquas",
  "date": "2023-06-14",
  "created_at": "2023-06-14 16:56:55",
  "finalized": "2023-06-14 19:01:52",
  "emergency": true
  "patient": {
    "name": "JOSÉ HENRIQUE DE SOUZA",
    "sex": "masculino",
    "cpf": "111.111.111-11"
  },
  "report": {
    "pdf": "https://telemed.rwedev.com/api/pdf/laudo/xxxxxxxxxxxxxxx",
    "p7s": "https://telemed.rwedev.com/api/pdf/gerar/laudo/xxxxxxxxxxxxxxx"
  }
},
{
  "name": "Coluna Lombo Sacra Com Obliquas",
  "date": "2023-06-13",
  "created_at": "2023-06-13 11:24:15",
  "finalized": "2023-06-13 13:25:11",
  "emergency": false
  "patient": {
    "name": "FERNANDA CRISTINA LUCENA",
    "sex": "feminino",
    "cpf": "333.333.333-33"
  },
  "report": {
    "pdf": "https://telemed.rwedev.com/api/pdf/laudo/zzzzzzzzzzzzzzzz",
    "p7s": "https://telemed.rwedev.com/api/pdf/gerar/laudo/zzzzzzzzzzzzzzzz"
  }
}
Atributo Tipo Descrição
name string Nome do exame
date string Data da realização do exame
created_at string Data de criação do exame na RWE Telemed
finalized string Data da realização do laudo na RWE Telemed
emergency boolean Solicitação de prioridade de emergência
patient.name string Nome completo do paciente
patient.sex string Sexo do paciente
patient.cpf string CPF ou código de indentificação do paciente(no formato XXX.XXX.XXX-XX, incluindo caracteres especiais)
report.pdf string URL para download do laudo em PDF
report.p7s string URL para download do laudo em P7S

HTTP Request

Requisição da solicitação de exame usando PHP - cURL
<?php
    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://telemed.rwedev.com/api/exam/finalized',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => '{
        "cnpj": "15.177.356/0001-72"
        "cpf": "111.111.111-11", (OPCIONAL)
        "study_uid": "1.2.840.113704.0000000000000000" (OPCIONAL)
        }',
        CURLOPT_HTTPHEADER => array(
            'Content-Type: application/json',
            'Authorization: Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
        ),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;

Requisição da solicitação de exame usando Python - Requests
import requests
import json

url = "https://telemed.rwedev.com/api/exam/finalized"

payload = json.dumps({
    "cnpj": "15.177.356/0001-72"
    "cpf": "111.111.111-11", (OPCIONAL)
    "study_uid": "1.2.840.113704.0000000000000000" (OPCIONAL)
})
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
Requisição da solicitação de exame usando NodeJs - Request

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://telemed.rwedev.com/api/exam/finalized',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
  },
  body: JSON.stringify({
    "cnpj": "15.177.356/0001-72"
    "cpf": "111.111.111-11", (OPCIONAL)
    "study_uid": "1.2.840.113704.0000000000000000" (OPCIONAL)
  })

};
request(options, function (error, response) {
    if (error) throw new Error(error);
  console.log(response.body);
});

POST https://telemed.rwedev.com/api/exam/finalized

HTTP POST parâmetros

O seguinte parâmetro é OBRIGATÓRIO.

Parâmetro Tipo Descrição
cnpj string CNPJ do contrato que deseja visualizar a lista de exames finalizados com laudo disponível.(no formato XX.XXX.XXX/XXXX-XX, incluindo os caracteres especiais)

Os seguintes parâmetros são OPCIONAIS.

Parâmetro Tipo Descrição
cpf string filtro exato por CPF do paciente no formato XXX.XXX.XXX-XX ou Código da Clinica(Este código é inserido pelo usuário no ato de registro caso paciente não possua cpf cadastrado) para limitar a busca de exames finalizados.
study_uid string filtro exato por study_uid do paciente no formato do UID com os caracteres especiais (Este código é inserido automáticamente ao enviar exames através da integração PACS) para limitar a busca de exames finalizados.

Exames Cancelados

Através desse endpoint você poderá visualizar a lista de exames cancelados com o motivo do cancelamento. Essa solicitação pode ser utilizada para disponibilizar em seu dashboard os exames cancelados.

Essa requisição irá retornar somente os exames cancelados nos últimos 3 meses por ordem decrescente.

Atributos

A descrição indica a propriedade de cada atributo.

A resposta codificada em JSON tem esta aparência.

{
  "name": "Coluna Lombo Sacra Com Obliquas",
  "date": "2023-06-14",
  "created_at": "2023-06-14 16:56:55",
  "emergency": true
  "reason": "Exame Rejeitado devido a erro na anamnese ou dados do exame. Justificativa: Arquivo divergente"
  "patient": {
    "name": "JOSÉ HENRIQUE DE SOUZA",
    "sex": "masculino",
    "cpf": "111.111.111-11"
  }
},
{
  "name": "Coluna Lombo Sacra Com Obliquas",
  "date": "2023-06-13",
  "created_at": "2023-06-13 11:24:15",
  "emergency": false
  "reason": "Exame Rejeitado devido a problemas com imagem ou equipamento. Justificativa: Exame de outra especialidade."
  "patient": {
    "name": "FERNANDA CRISTINA LUCENA",
    "sex": "feminino",
    "cpf": "333.333.333-33"
  },
}
Atributo Tipo Descrição
name string Nome do exame
date string Data da realização do exame
created_at string Data do cancelamento do exame na RWE Telemed
emergency boolean Solicitação de prioridade de emergência
reason string Motivo do cancelamento
patient.name string Nome completo do paciente
patient.sex string Sexo do paciente
patient.cpf string CPF ou código de indentificação do paciente(no formato XXX.XXX.XXX-XX, incluindo caracteres especiais)

HTTP Request

Requisição da solicitação de exame usando PHP - cURL
<?php
    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://telemed.rwedev.com/api/exam/cancelled',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => '{
        "cnpj": "15.177.356/0001-72"
        }',
        CURLOPT_HTTPHEADER => array(
            'Content-Type: application/json',
            'Authorization: Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
        ),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;

Requisição da solicitação de exame usando Python - Requests
import requests
import json

url = "https://telemed.rwedev.com/api/exam/cancelled"

payload = json.dumps({
    "cnpj": "15.177.356/0001-72"
})
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
Requisição da solicitação de exame usando NodeJs - Request

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://telemed.rwedev.com/api/exam/cancelled',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
  },
  body: JSON.stringify({
    "cnpj": "15.177.356/0001-72"
  })

};
request(options, function (error, response) {
    if (error) throw new Error(error);
  console.log(response.body);
});

POST https://telemed.rwedev.com/api/exam/cancelled

HTTP POST parâmetro

O seguinte parâmetro é OBRIGATÓRIO.

Parâmetro Tipo Descrição
cnpj string CNPJ do contrato que deseja visualizar a lista de exames cancelados.(no formato XX.XXX.XXX/XXXX-XX, incluindo os caracteres especiais)

Laudos em Lote

Através desse endpoint você poderá gerar uma URL para fazer o download de um lote com vários laudos em um periodo determinado.

O periodo da solicitação somente estará disponível para laudos realizado nos últimos 3 meses.

Atributos

A descrição indica a propriedade de cada atributo.

A resposta codificada em JSON tem esta aparência.

{
  "url": "https://telemed.rwedev.com/api/report/link/15177356000172/download"
}
Atributo Tipo Descrição
url string URL para download dos laudos em lote

HTTP Request

Requisição da solicitação de exame usando PHP - cURL
<?php
    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://telemed.rwedev.com/api/exam/batch',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => '{
        "cnpj": "15.177.356/0001-72",
        "start": "2023-06-01",
        "end": "2023-06-10"
        }',
        CURLOPT_HTTPHEADER => array(
            'Content-Type: application/json',
            'Authorization: Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
        ),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;

Requisição da solicitação de exame usando Python - Requests
import requests
import json

url = "https://telemed.rwedev.com/api/exam/batch"

payload = json.dumps({
    "cnpj": "15.177.356/0001-72",
    "start": "2023-06-01",
    "end": "2023-06-10"

})
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
Requisição da solicitação de exame usando NodeJs - Request

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://telemed.rwedev.com/api/exam/batch',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Basic YWRtaW5hbWVyaWNhbmFzQHRlc3RlLmNvbToxMjM0NTY='
  },
  body: JSON.stringify({
    "cnpj": "15.177.356/0001-72",
    "start": "2023-06-01",
    "end": "2023-06-10"
  })

};
request(options, function (error, response) {
    if (error) throw new Error(error);
  console.log(response.body);
});

POST https://telemed.rwedev.com/api/exam/batch

HTTP POST parâmetro

O seguinte parâmetro é OBRIGATÓRIO.

Parâmetro Tipo Descrição
cnpj string CNPJ do contrato que deseja gerar o lote de laudos.(no formato XX.XXX.XXX/XXXX-XX, incluindo os caracteres especiais)
start string Data inicial do período.
end string Data final do período.

API Personalizada

Caso você tenha interesse em obter mais parâmetros nas suas requisições e implementar outras funcionalidades, como recursos financeiros, SAC, estatísticas e imagens dos exames, por meio da nossa API Personalizada, convido você a entrar em contato conosco pelo e-mail suporte@rwesistemas.com.br. Nossos especialistas estarão disponíveis para fornecer uma cotação personalizada.

Nossa API Personalizada é a escolha ideal para integrar completamente a RWE Telemed ao sistema interno da sua clínica ou hospital.

Caso sua necessidade seja integrar a nossa plataforma com um sistema de terceiros, por favor, entre em contato conosco para verificar a disponibilidade dessa funcionalidade. Em alguns casos, pode ser necessário desenvolver um serviço personalizado para atender às suas necessidades. Estamos à disposição para ajudá-lo nesse processo.