Telecare - Integração com Componente de Vídeo Chamada
- 1 1. Objetivo
- 2 2. Agendamento Online
- 2.1 2.1 Método: paciente_disponivel
- 2.1.1 Novos parâmetros de entrada
- 2.1.2 Retorno
- 2.2 2.2 Método: especialidade_disponivel
- 2.2.1 Novos parâmetros de entrada
- 2.2.2 Retorno
- 2.3 2.3 Método: servico_disponivel
- 2.4 2.4 Método: profissional_disponivel
- 2.5 2.5 Método: agenda_do_profissional
- 2.5.1 Novos parâmetros de entrada
- 2.5.2 Estrutura de retorno
- 2.6 2.6 Método: grade_horarios_agenda
- 2.7 2.7 Método: valida_autorizacao_previa
- 2.7.1 Novos parâmetros de entrada
- 2.7.2 Estrutura de retorno
- 2.8 2.8 Método: grava_agendamento
- 2.9 2.9 Método: cancela_agendamento
- 2.9.1 Novos parâmetros de entrada
- 2.9.2 Estrutura de retorno
- 2.10 2.10 Método: agendas_paciente
- 2.11 2.11 Método: agenda_detalhes
- 2.11.1 Estrutura de retorno
- 2.11.2 Definição da estrutura "detalhes"
- 2.1 2.1 Método: paciente_disponivel
- 3 3. Lembretes de agenda e notificações para o paciente
- 4 4. Exemplo de lista de agendas do médico
- 5 5. Script de integração
- 6 6. Métodos disponíveis
- 7 7. Como executar os métodos disponíveis?
- 8 8. Utilizando o recurso já embedado
1. Objetivo
Este documento tem como objetivo detalhar e especificar todo o necessário para possibilitar a integração do Telecare (Telemedicina do Mosia), e seu funcionamento por meio de uma “Janela flutuante“. Esta janela, que neste documento nos referimos como “Vídeo Flutuante”, poderá ser utilizada (Embed) em qualquer Página Web. Abordaremos cadastros necessários, exemplos de scripts para embed e fluxos de funcionamento.
2. Agendamento Online
Neste tópico vamos descrever os ajustes necessários na integração do Agendamento Online para alguns métodos. Segue também o link do documento oficial de Agendamento Online: https://mobilesaudejira.atlassian.net/l/cp/Zui1fr1u.
Ao realizar um agendamento, o paciente deverá informar o tipo de consulta, Presencial ou Teleconsulta.
Nos próximos subitens deste tópico, iremos destacar apenas “alterações“ na API.
2.1 Método: paciente_disponivel
Novos parâmetros de entrada
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
4 | M | tipo_agendamento | Integer | O campo tipo_agendamento define se é uma consulta “Presencial“ ou “Teleconsulta“. Sendo:
|
Body request
{
"chave_beneficiario": "0010467001428000",
"data_referencia": "2021-10-15",
"tipo_agendamento": 2 // NOVO CAMPO
}
Retorno
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
5 | M | tipo_agendamento | Integer | Código que define o tipo de agendamento, Presencial ou Teleconsulta. |
Retorno API Sucesso
Exemplo do retorno completo com os ajustes necessários
{
"status": true,
"motivo_critica": null,
"beneficiarios_autorizados": [
{
"identificador_beneficiario": "0010467001428000"
},
{
"identificador_beneficiario": "0010467001428013"
}
],
"tipo_agendamento": 2 // NOVO CAMPO
}
2.2 Método: especialidade_disponivel
Novos parâmetros de entrada
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
4 | M | tipo_agendamento | Integer | O campo tipo_agendamento define se é uma consulta “Presencial“ ou “Teleconsulta“. Sendo:
|
Body request
{
"chave_beneficiario": "0010467001428000",
"data_referencia": "2021-10-15",
"tipo_agendamento": 2 // NOVO CAMPO
}
Retorno
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
5 | M | tipo_agendamento | Integer | Código que define o tipo de agendamento, Presencial ou Teleconsulta. |
Retorno API Sucesso
Exemplo do retorno completo com os ajustes necessários
2.3 Método: servico_disponivel
Novos parâmetros de entrada
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
4 | M | tipo_agendamento | Integer | O campo tipo_agendamento define se é uma consulta “Presencial“ ou “Teleconsulta“. Sendo:
|
Body request
Retorno do nó "servico"
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
5 | M | tipo_agendamento | Integer | Código que define o tipo de agendamento, Presencial ou Teleconsulta. |
Retorno API Sucesso
2.4 Método: profissional_disponivel
Retorno: Definição da estrutura do nó "profissional"
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
4 | C | local_id | String | Código do local de atendimento. |
5 | C | local_descricao | String | Nome do local de atendimento. |
6 | C | local_endereco | String | Endereço do local de atendimento. |
10 | C | local_estado | String | Siga da UF que corresponde ao estado do local de atendimento. Atenção Código do cadastro do IBGE |
12 | C | local_cidade | String | Texto descritivo do nome da cidade do local de atendimento. |
17 | M | registro_numero | Integer | Número de registro do médico. Exemplo: 30455 |
18 | M | registro_estado | String | Estado do registro. Exemplo: “ES“ |
19 | M | registro_sigla | String | Exemplo: “CRM” |
Retorno API Sucesso
2.5 Método: agenda_do_profissional
Novos parâmetros de entrada
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
4 | M | tipo_agendamento | Integer | O campo tipo_agendamento define se é uma consulta “Presencial“ ou “Teleconsulta“. Sendo:
|
Body request
Estrutura de retorno
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
5 | M | tipo_agendamento | Integer | Código que define o tipo de agendamento, Presencial ou Teleconsulta. |
Retorno API Sucesso
2.6 Método: grade_horarios_agenda
Novos parâmetros de entrada
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
4 | M | tipo_agendamento | Integer | O campo tipo_agendamento define se é uma consulta “Presencial“ ou “Teleconsulta“. Sendo:
|
Body request
Retorno do nó “horarios“
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
5 | M | tipo_agendamento | Integer | Código que define o tipo de agendamento, Presencial ou Teleconsulta. |
Retorno API Sucesso
2.7 Método: valida_autorizacao_previa
Novos parâmetros de entrada
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
4 | M | tipo_agendamento | Integer | O campo tipo_agendamento define se é uma consulta “Presencial“ ou “Teleconsulta“. Sendo:
|
Body request
Estrutura de retorno
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
5 | M | tipo_agendamento | Integer | Código que define o tipo de agendamento, Presencial ou Teleconsulta. |
Retorno API Sucesso
2.8 Método: grava_agendamento
Novos parâmetros de entrada e parâmetros que tiveram alterações
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
4 | C | data_hora | Data | Se o sistema não possui um "agenda_id" para realizar o agendamento, será necessário enviar este parâmetro, contendo a data e hora selecionada pelo paciente. Atenção Este parâmetro torna-se obrigatório caso não possua um "agenda_id". Atenção Formato: yyyy-mm-dd HH:mm:ss Ex: 2020-08-05T11:40:00 |
6 | C | local_id | String | Neste caso será necessário informar o código do local. Atenção Este parâmetro torna-se obrigatório caso não possua um "agenda_id". |
7 | C | especialidade_id | String | Neste caso será necessário informar o código da especialidade. Atenção Este parâmetro torna-se obrigatório caso não possua um "agenda_id". |
8 | C | profissional_id | String | Neste caso será necessário informar o código do profissional. Atenção Este parâmetro torna-se obrigatório caso não possua um "agenda_id". |
10 | OP | email_paciente | String | Durante o processo de agendamento, pedimos para o beneficiário confirmar o seu email. Neste momento enviaremos o numero informado por ele para que seja tratado/atualizado na base de dados da Operadora. |
12 | C | meeting_id | String | |
13 | M | convenio_ans | String | Código da operadora na ANS |
14 | M | convenio_nome | String | Nome da operadora |
Body Request
Estrutura de retorno
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
4 | C | agenda_id | String | Retorna o código da agenda caso ela tenha sido gerada no ato da gravação. Este retorno será usado por outros métodos, quando for necessário referenciar este agendamento. |
Retorno API Sucesso
2.9 Método: cancela_agendamento
Novos parâmetros de entrada
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
4 | M | tipo_agendamento | Integer | O campo tipo_agendamento define se é uma consulta “Presencial“ ou “Teleconsulta“. Sendo:
|
Body request
Estrutura de retorno
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
5 | M | tipo_agendamento | Integer | Código que define o tipo de agendamento, Presencial ou Teleconsulta. |
Retorno API Sucesso
2.10 Método: agendas_paciente
Novos parâmetros de entrada
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
4 | OP | tipo_agendamento | Integer | O campo tipo_agendamento define se é uma consulta “Presencial“ ou “Teleconsulta“. Sendo:
|
Body request
Estrutura de retorno do nó “agendamentos“
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
11 | C | local_id | String | Código do local de atendimento. |
12 | C | local_descricao | String | Nome do local de atendimento. |
5 | M | tipo_agendamento | Integer | Código que define o tipo de agendamento, Presencial ou Teleconsulta. |
Retorno API Sucesso
2.11 Método: agenda_detalhes
Estrutura de retorno
Definição da estrutura "detalhes"
seq | critério | campo | tipo | descrição |
---|---|---|---|---|
6 | C | atendimento_data_hora | Data | Se a agenda foi realizada, informar a hora e hora do atendimento do atendimento. Atenção Formato: yyyy-mm-dd HH:mm:ss Ex: 2020-08-05T11:40:00 |
11 | C | beneficiario_email | String | Email do beneficiário |
12 | C | beneficiario_telefone | String | Telefone do beneficiário. |
15 | C | local_id | String | Código do Local de atendimento. |
17 | M | local_descricao | String | Nome do Local de atendimento. |
18 | M | local_endereco | String | Endereço do local de atendimento. |
22 | M | local_estado | String | Sigla da UF correspondente ao estado do local |
24 | M | local_cidade | String | Texto descritivo do nome da cidade do local de atendimento |
25 | M | local_cep | String | Cep do local de atendimento |
Retorno API Sucesso
3. Lembretes de agenda e notificações para o paciente
As Teleconsultas são integradas com uma Central de Notificações, que permite disparos de lembretes automatizados por meio de Push, Email e Whatsapp (depende da contratação do cliente). O link “único“ da consulta estará disponível nestes envios.
Observação: O Script de Embed não precisa do link da consulta.
4. Exemplo de lista de agendas do médico
Segue na imagem abaixo um exemplo de lista de agendamentos que destacamos 3 itens importantes, que são:
Nome da Operadora sendo exibido;
Tipo de agendamento sendo exibido;
Exibindo o botão “Atender“ apenas para consultas do tipo “Teleconsulta“, e que tenha o meeting_id registrado (Item fundamental para a execução do recurso).
5. Script de integração
Segue é um exemplo do Script de Integração que estará disponível no painel administrativo do Mosia, https://admin.mosia.chat/.
6. Métodos disponíveis
Métodos (JavaScript) | Parâmetros | Responsabilidade |
---|---|---|
|
| Método responsável por instanciar um novo modal de vídeo. |
7. Como executar os métodos disponíveis?
7.1 Exemplo de excução do método para iniciar uma nova chamada
ou
7.2 Exemplo de execução por meio da Tag HTML “button“, no evento “onclick“
8. Utilizando o recurso já embedado
8.1 Lista de agendas no ambiente externo
Neste cenário, a imagem abaixo representa uma página web qualquer com agendamentos que já tem o script embedado e adicionamos no evento do clique do botão a chamada do método mosiaFloatingVideoInit
.
8.2 Ação do botão “Atender“
Médico:
Na visão do médico temos dois possíveis cenários após o clique no botão Atender.
1- Cenário em que o paciente não está na Sala de Espera:
2- Cenário em que o paciente está na Sala de Espera:
Paciente:
Na visão do paciente, já temos as execuções sendo realizadas no App da sua respectiva operadora indicada em cada agenda.
1- Cenário em que o paciente não está na Sala de Espera:
2- Cenário em que o paciente está na Sala de Espera:
Mobile Saúde - 2019