Conexa Embed SSO (1.0.0)

Download OpenAPI specification:Download

O processo de embed da plataforma da Conexa, consiste 3 passos básicos (consulta, cadastro e geração de link magico).

Para saber mais sobre a Conexa: https://www.conexasaude.com.br/.

Introdução

Conexa API - Conexa Embed Este guia tem por objetivo ajudar você desenvolvedor a preparar a plataforma para implementar a funcionalidade de Embed SSO dentro de um aplicativo ou sistema existente .

Permissões

Seu Aplicativo O seu aplicativo precisa ter algumas permissões para que tudo funcione, principalmente Câmera e Microfone.

IOS Adicionar em Info.plist as seguintes permissões:

<plist version="1.0">
  <dict>
      <key>NSCameraUsageDescription</key>
      <string>Usar a câmera</string>
      <key>NSMicrophoneUsageDescription</key>
      <string>Usar o microfone</string>
  </dict>
</plist>

Android Adicionar em Android Manifest.xml as seguintes permissões:

<manifest>
  <uses-permissionandroid:name="android.permission.INTERNET"/>
  <uses-permissionandroid:name="android.permission.RECORD_AUDIO"/>
  <uses-permissionandroid:name="android.permission.CAMERA"/>
  <uses-permissionandroid:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<application>
</application>
</manifest>

Webview

A WebView é um componente presente em muitos frameworks e plataformas de desenvolvimento, como Android, iOS e alguns frameworks web. Ela é utilizada para exibir páginas web ou conteúdo HTML diretamente dentro de um aplicativo, permitindo que os desenvolvedores integrem conteúdo web com facilidade.

Utilizando o Webview LinkdaPoc: https://github.com/conexasaude/react-native-webview-implementation Neste caso,utiilizamos um componente de Web view recebendo como source a URL do Web.

export const url = "<LINKMAGICO>";

<WebView
 style={styles.webview}
 javaScriptEnabled
 pullToRefreshEnabled
 source={{ uri: url }}
 startInLoadingState
 allowsInlineMediaPlayback
 allowsFullscreenVideo
 domStorageEnabled
 useWebKit
 originWhitelist={["*"]}
 mediaPlaybackRequiresUserAction={false}
/>

Abaixo Exemplo de uma POC que fizemos para você usar como quiser

Webview ReactNative

https://github.com/conexasaude/mobile-iframe-tester

Autenticação

Conexa API - Enterprise oferece a forma de autenticação via token API. Para obter um token de autenticação, entre em contato com nosso time técnico.

Caso você precise de alguma ajuda, você pode falar com nosso time de integração integracao.ti@conexasaude.com.br

Consulta Paciente

Você precisa do ID do paciente, e você não saberá se ele está cadastrado ou não, então você precisa consultar o paciente.

Obter paciente por CPF

Obtém dados cadastrais de paciente por CPF

path Parameters
cpf
required
integer

CPF do paciente

header Parameters
token
required
string

token API

Responses

Request samples

curl "https://api.conexasaude.com.br/integration/enterprise/patients/cpf/33311155511" \
-H "token: SEU_API_TOKEN"

Response samples

Content type
application/json
{
  • "status": "200",
  • "msg": "Sucesso",
  • "object": {
    },
  • "timestamp": 1591458128186
}

Obter paciente número do cartão de convênio

Obtém dados cadastrais de paciente pelo número do cartão de convênio (carteirinha)

path Parameters
healthCardNumber
required
integer

Número do cartão de convênio do paciente

header Parameters
token
required
string

token API

Responses

Request samples

curl "https://api.conexasaude.com.br/integration/enterprise/patients/healthCardNumber/1113335556667" \
-H "token: SEU_API_TOKEN"

Response samples

Content type
application/json
{
  • "status": "200",
  • "msg": "Sucesso",
  • "object": {
    },
  • "timestamp": 1591458128186
}

Cadastro Paciente

Caso você não tenha encontrado o paciente, nem com o CPF nem carteira do convênio, então provavelmente ele não esteja cadastrado. Como você precisa de um ID de paciente, é só você cadastrar ele.

Inserir ou atualizar pacientes por CPF ou Número do cartão de convênio

Cria ou altera dados de um paciente na plataforma para posterior utilização. Se o parâmetro id, cpf ou healthCardNumber for enviado na requisição para um paciente existente, serão atualizados os dados daquele paciente, se não, então um novo paciente será criado.

header Parameters
token
required
string

token API

Request Body schema: application/json

Objeto com informações de paciente e/ou dependente a ser inserido

id
integer

ID do paciente

name
required
string

Nome do Paciente

mail
string

E-mail do paciente (deve ser no formato padrão de email xxxxx@xxxx.com)

dateBirth
required
string

Data de nascimento do paciente (Formato dd/MM/yyyy)

sex
string
Enum: "MALE" "FEMALE"

Sexo do paciente

cpf
required
string

CPF do paciente

cellphone
string

Celular do paciente (deve sempre ser enviado com 2 digitos para ddd e 9 digitos do celular)

patientHolderId
integer

ID do titular do paciente

kinshipOfTheHolder
string
Enum: "PAI" "MAE" "CONJUGE" "FILHO" "ENTEADO" "COMPANHEIRO" "AVOS" "BISAVOS" "IRMAOS" "TIOS" "OUTROS"

Grau de Parentesco do Titular

healthCardNumber
string

Número do cartão do plano de saúde

additionalInformation
string

Informações adicionais do paciente

passport
string

Número do passaporte do paciente

specialist
integer

TODO

nationalId
string

Número da identidade

object (PatientAddressRequest)

Objeto com informações de endereço de paciente

motherName
string

Campo para informar o nome da mãe do paciente (O campo deve conter no máximo 80 caracteres)

socialName
string

Campo para informar o nome social do paciente (O campo deve conter no máximo 80 caracteres)

idRaceColor
integer

ID da cor da raça do paciente (código recuperado no endpoint da aba Dominio -> Listar as informações e Raça/cor)

idNationality
integer

ID da nacionalidade do paciente (código recuperado no endpoint da aba Dominio -> Listar as informações de nacionalidades)

naturalizationDate
string

Data de naturalização

cns
string

Número da cns do paciente (O campo deve conter no máximo 15 caracteres)

idCbo
long

ID do CBO do paciente

religion
integer

ID da religião do paciente (código recuperado no endpoint da aba Dominio -> Listar as informações de Religiões)

otherReligions
string

Campo destinado para caso o paciente seja de alguma outra religião

workplace
string

Campo para informar o local de trabalho

freeObservations
string

Campo livre destinado para colocar qualquer informação (observação)

unknowMother
boolean

Campo para sinalizar que a mãe do paciente é desconhecida.

idHomeArea
integer

Campo para indicar o código da area de moradia (código recuperado no endpoint da aba Dominio -> Listar as informações de área de moradia)

homeSituation
boolean

Campo que indica a situação da moradia do paciente

idSchooling
integer

Campo para indicar a escolaridade do paciente (código recuperado no endpoint da aba Dominio -> Listar as informações de Escolaridades)

socialVulnerability
boolean

Campo que sinaliza a vulnerabilidade social do paciente

ethnicity
string

Campo para informar a etnia do paciente

idGender
long

Campo para indicar o gênero do paciente (código recuperado no endpoint da aba Dominio -> Listar as informações de Gênero)

birthCounty
string

Campo para informar o município de nascimento do paciente

idBirthUF
long

Campo para indicar a UF de nascimento do paciente (código recuperado no endpoint da aba Dominio -> Listar as informações de UF)

idPassportIssuingCountry
long

Campo para indicar o país de nascimento do paciente (código recuperado no endpoint da aba Dominio -> Listar as informações de País)

passportIssuingDate
string

Campo para informar a data de emissão do passaporte do paciente

passportExpiryDate
string

Campo para informar a data de expiração do passaporte do paciente

idBirthCountry
long

Campo para indicar o país de nascimento do paciente (código recuperado no endpoint da aba Dominio -> Listar as informações de País)

kinshipProcurator
string
Enum: "PAI" "MAE" "CONJUGE" "FILHO" "ENTEADO" "COMPANHEIRO" "AVOS" "BISAVOS" "IRMAOS" "TIOS" "OUTROS"

Grau de Parentesco do representante legal do paciente

cpfProcurator
string

Campo para informar o cpf do representante legal do paciente

nameProcurator
string

Campo para informar o nome do representante legal do paciente (O campo deve conter no máximo 80 caracteres)

identityIssuingDate
string

Campo para informar a data de emissão da identidade do paciente

idIdentityUF
long

Campo para indicar a UF da identidade do paciente (código recuperado no endpoint da aba Dominio -> Listar as informações de UF)

identityIssuingBody
string

Campo para informar o orgão emissor da identidade do paciente (O campo deve conter no máximo 50 caracteres)

nisNumber
string

Campo para informar o número de NIS (Número de Identificação Social) do paciente (O campo deve conter no máximo 11 caracteres)

Responses

Request samples

Content type
application/json
{
  • "id": 401,
  • "name": "Steve Hopkins",
  • "mail": "steve.hopkins@gmail.com",
  • "dateBirth": "26/04/1985",
  • "sex": "MALE",
  • "cpf": "33311155511",
  • "cellphone": "21988776554",
  • "patientHolderId": 24521,
  • "kinshipOfTheHolder": "PAI",
  • "healthCardNumber": "1113335556667",
  • "additionalInformation": "Matrícula 663399-6",
  • "passport": "BR123456",
  • "specialist": 199,
  • "nationalId": "20112527-9",
  • "address": {
    },
  • "motherName": "Maria Silva",
  • "socialName": "Steve H.",
  • "idRaceColor": 1,
  • "idNationality": 1,
  • "naturalizationDate": "26/09/2005",
  • "cns": 123456789101213,
  • "idCbo": 2,
  • "religion": 1,
  • "otherReligions": "string",
  • "workplace": "Coworking",
  • "freeObservations": "Exemplo de texto/observação do paciente",
  • "unknowMother": false,
  • "idHomeArea": 1,
  • "homeSituation": true,
  • "idSchooling": 1,
  • "socialVulnerability": false,
  • "ethnicity": "Indígena",
  • "idGender": 1,
  • "birthCounty": "Rio de Janeiro",
  • "idBirthUF": 1,
  • "idPassportIssuingCountry": 1,
  • "passportIssuingDate": "17/10/2015",
  • "passportExpiryDate": "17/10/2020",
  • "idBirthCountry": 1,
  • "kinshipProcurator": "PAI",
  • "cpfProcurator": "042.858.780-11",
  • "nameProcurator": "Luiz da Silva",
  • "identityIssuingDate": "17/10/2002",
  • "idIdentityUF": 1,
  • "identityIssuingBody": "Detran",
  • "nisNumber": 72673612
}

Response samples

Content type
application/json
{
  • "status": "200",
  • "msg": "Sucesso",
  • "object": {
    },
  • "timestamp": 1591458128186
}

Gerar link mágico para paciente

Gera um link mágico para aplicativo móvel e um para acesso no navegador web para o paciente pelo seu ID. Será retornado uma url no campo “linkMagicoWeb” para abrir na WebView.

path Parameters
id
required
integer

ID do paciente

query Parameters
route
String

Indica para qual rota o link mágico vai direcionar o paciente. As opções são "immediate-appointment" (atendimentos imediato), "scheduled-appointment" (atendimentos agendados), "scheduled-appointment-by-specialty" (atendimentos agendados com busca de especialidades), "scheduled-appointment-by-name" (atendimentos agendados com busca por nome), "scheduled-appointment-by-professional-id" (atendimentos agendados acessando os horários do profissional) e "waiting-room" (sala de espera)

appointmentId
integer

Id do atendimento (Obrigatório se route for ´waiting-room´)

professionalId
integer

Id do profissional (Obrigatório se route for ´scheduled-appointment-by-professional-id´)

council
string
Enum: "CRM" "CRN" "CRO" "COREN" "CRP" "CREFITO" "CREFONO" "CFESS" "CONTER" "CFBM" "ACADEMICO"

Indica se já quer entrar logado com um tipo de conselho específico na busca (Obrigatório se route tiver prefixo ´scheduled-appointment´)

embed
boolean

Indica se irá desabilitar ou não o header(cabeçalho) da aplicação do paciente.

embedFull
boolean

Indica se irá desabilitar ou não o header(cabeçalho) completo da aplicação do paciente.

header Parameters
token
required
string

token API

Responses

Request samples

curl "https://api.conexasaude.com.br/integration/enterprise/patients/generate-magiclink-access-app/401" \
-H "token: SEU_API_TOKEN"

Response samples

Content type
application/json
{
  • "status": "200",
  • "msg": "Sucesso",
  • "object": {},
  • "timestamp": 1591458128186
}