🚅Integração rápida

Integrar com a prescrição Memed é algo muito fácil e rápido. Ao longo dessa documentação você poderá se integrar e já começar a testar os recursos que nossa API disponibiliza.

Atenção! Você está visualizando a documentação legada! Para a documentação mais recente, acesse https://doc.memed.com.br

Requisitos

Sua aplicação precisa:

Chaves de acesso e ambiente

A integração com a Memed é feita por interações no front-end e back-end. Para que o parceiro consiga gerenciar qual ambiente está sendo utilizado, é preciso configurar quatro variáveis. São elas: API Key, Secret Key, Domínio da API e Domínio do front-end.

Todos os dados e informações que um parceiro pode acessar na Memed são definidos pelas chaves API Key e Secret Key. Já os Domínios da API Rest e do front-end serão utilizado nas requisições à API Rest e na importação dos módulos front-end da Memed, respectivamente.

A Memed disponibiliza um ambiente de testes e desenvolvimento que chamamos de Integrations, que é compartilhado por todos os parceiros. Segue abaixo o valor das variáveis que devem ser utilizadas neste ambiente:

# api-key
API_KEY=iJGiB4kjDGOLeDFPWMG3no9VnN7Abpqe3w1jEFm6olkhkZD6oSfSmYCm

# secret-key
SECRET_KEY=Xe8M5GvBGCr4FStKfxXKisRo3SfYKI7KrTMkJpCAstzu2yXVN4av5nmL

# Domínio do front-end
MEMED_FRONTEND_DOMAIN=integrations.memed.com.br

# Domínio da API REST Memed
MEMED_API_DOMAIN=integrations.api.memed.com.br

Seguiremos essa documentação com as configurações nos exemplos sempre apontando para o ambiente de testes. Quando você terminar de desenvolver sua integração no ambiente de testes, solicite uma validação técnica para receber suas chaves de produção.

Nunca deixe sua secret-key visível no front-end. Ela deve apenas ser utilizada em requisições à API REST.

Cadastrando o usuário (Médico)

O primeiro passo para se integrar com a Memed é o cadastro do usuário. A partir dele iremos recuperar o token do usuário, que é o identificador do mesmo no sistema.

IMPORTANTE! Este cadastro do usuário(médico) só pode ser feito de uma requisição partindo do backend (ou seja de API -> API ) . Nossa API bloqueia requisições vindas do front-end na rota de cadastro do médico.

Caso o usuário não esteja cadastrado siga as instruções abaixo e veja como cadastrar.

curl --request POST \
  --url 'https://integrations.api.memed.com.br/v1/sinapse-prescricao/usuarios?api-key=iJGiB4kjDGOLeDFPWMG3no9VnN7Abpqe3w1jEFm6olkhkZD6oSfSmYCm&secret-key=Xe8M5GvBGCr4FStKfxXKisRo3SfYKI7KrTMkJpCAstzu2yXVN4av5nmL' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Cache-Control: no-cache' \
  --header 'Content-Type: application/json' \
  --data '{
        "data": {
         "type": "usuarios",
          "attributes": {
              "external_id": "ID_EXTERNO",
              "nome": "José",
              "sobrenome": "da Silva",
              "data_nascimento": "01/01/1985",
              "cpf": "99999999999",
              "uf": "SP",
              "sexo": "M",
              "crm": "54321"
          }
        }
 }'

Abaixo você pode conferir toda a descrição da requisição de cadastro.

No retorno da requisição de cadastro existe o campo token (data.attributes.token), que será usado em todas as próximas etapas da integração.

É possível verificar se o parceiro já cadastrou o usuário na Memed através da recuperação de dados do usuário.

Para mais informações sobre cadastro, edição, exclusão e recuperação de usuários, clique aqui.

O token do médico não é fixo. É necessário recuperar o token sempre que for iniciar a integração.

Integrando com o front-end

Agora que você já tem o token do usuário, basta adicionar o script do front-end na sua página para exibir a prescrição Memed. Hoje existem 2 opções de integração com o nosso front-end, FullScreen e Embedded.

Utilize o token copiado para inserir no atributo data-token em um script HTML, conforme código abaixo.

FullScreen

A tela da Memed sobrepõe a sua aplicação. Segue abaixo o exemplo da integração fullscreen:

<script
    type="text/javascript"
    src="https://integrations.memed.com.br/modulos/plataforma.sinapse-prescricao/build/sinapse-prescricao.min.js"
    data-token="TOKEN_DO_USUARIO_OBTIDO_NO_CADASTRO_VIA_API">
</script>

Embedded

A tela da Memed pode ser incluída em um espaço definido dentro da sua aplicação. Segue o mesmo padrão do fullscreen apenas acrescentando uma nova propriedade ( data-container ) na chamada do script, que deve ser preenchida com o id da "div container". Segue o exemplo abaixo:

<script
    type="text/javascript"
    src="https://integrations.memed.com.br/modulos/plataforma.sinapse-prescricao/build/sinapse-prescricao.min.js"
    data-token="TOKEN_DO_USUARIO_OBTIDO_NO_CADASTRO_VIA_API"
    data-container="ID_DA_DIV_CONTAINER">
</script>

Apenas isso já carregará o módulo de prescrição da Memed no background da aplicação. Contudo, ainda não estará visível para o usuário, pois ainda é preciso realizar mais duas etapas: Definir o paciente e Bloquear ações do usuário.

Atenção: Ao utilizar a integração com embedded você precisa respeitar a largura e altura mínima são respectivamente, 820px e 700px. Não seguir essas definições pode implicar em erros na sua aplicação.

A imagem abaixo aparecerá ao tentar carregar os módulos da Memed com um usuário inativo:

Definir o paciente

Como o usuário abrirá a Memed no contexto de atendimento e o sistema do parceiro possui as informações do paciente, é importante que esses dados já sejam enviados para prescrição. Para isso, utilizamos o comando setPaciente:

MdSinapsePrescricao.event.add('core:moduleInit', (module) => {
  if (module.name === 'plataforma.prescricao') {
    /** 
     * Todos os comandos e eventos da Memed devem ser executados 
     * após a vefificação acima, pois garante que o script foi carregado.
     */
    MdHub.command.send('plataforma.prescricao', 'setPaciente', {
      external_id: patientId,
      nome: 'José da Silva',
      cpf: '87671504203',
      telefone: '99999999999',
    });
  }
});

Onde o patientId informado no external_id deve ser um identificador do paciente no seu banco de dados. Ao ser cadastrado na Memed o usuário receberá um id nosso, mas poderá ser identificado pelo parceiro através do external_id enviado no comando.

Para mais informações sobre quais campos que podem ser enviados via comando clique aqui.

Bloquear ações do usuário

Já que o paciente é definido antes da abertura da prescrição, é importante que o usuário não consiga remover, excluir ou editar os dados, pois dessa forma o parceiro tem a garantia que a prescrição gerada naquele momento pertence ao paciente informado anteriormente.

Através comando setFeatureToggle é possível ativar e desativar algumas funcionalidades nos módulos da Memed. Segue abaixo o exemplo para o bloqueio da remoção, exclusão e edição dos dados do paciente:

MdHub.command.send('plataforma.prescricao', 'setFeatureToggle', {
  // Desativa a opção de excluir um paciente
  deletePatient: false,
  // Desabilita a opção de remover/trocar o paciente
  removePatient: false,
  // Esconde o formulário de edição do paciente
  editPatient: false,
});

Todas as execuções ao comando MdHub.command.send retornam uma promise e podem ser "esperadas" com async/await ou com then.

Veja mais opções de funcionalidades que podem ser desabilitadas em Ativar ou desativar funcionalidades.

Atenção!

Ao realizar a integração, as opções de remover, trocar e excluir pacientes devem ser obrigatoriamente desativadas, caso contrário sua integração não será aprovada na validação técnica.

Exiba o módulo de prescrição

Após as configurações anteriores, podemos exibir o ambiente da Memed para que o usuário gere suas prescrições através do comando abaixo:

MdHub.module.show('plataforma.prescricao');

Recuperando os dados da prescrição

Por fim, é possível escutar o evento prescricaoImpressa para recuperar todos os dados informados na criação da prescrição (medicamento, exames, alergias, etc.).

Esta etapa não é obrigatória, mas recomendamos que o parceiro a faça para que consiga tirar mais informações do uso dos seus usuários. Ex.: Quantas prescrições paciente X recebeu? Qual o medicamento mais prescrito no último mês?

Para isso, basta adicionar o código abaixo e implementar a captura dos dados:

MdHub.event.add('prescricaoImpressa', function(prescriptionData) {
    // No objeto "prescriptionData", é retornado as informações da prescrição gerada.
    // Implementar ações, callbacks, etc.
});

O formato dos dados retornados na variável prescriptionData pode ser encontrado aqui.

Caso tenha interesse em conhecer outros possíveis eventos, basta acessar a documentação de eventos.

Agora você já deve estar pronto para gerar prescrições através da Memed. Aproveite!

Próximos passos

Finalizando o desenvolvimento é necessário solicitar a Validação Técnica, conforme documentação.

Exemplos

Seguindo o passo a passo descrito acima, o seu código Javascript deve estar com o seguinte formato:

MdSinapsePrescricao.event.add('core:moduleInit', (module) => {
  if (module.name === 'plataforma.prescricao') {
    /** 
     * Todos os comandos e eventos da Memed devem ser executados 
     * após a vefificação acima, pois garante que o script foi carregado.
     */
    MdHub.command.send('plataforma.prescricao', 'setFeatureToggle', {
      // Desativa a opção de excluir um paciente
      deletePatient: false,
      // Desabilita a opção de remover/trocar o paciente
      removePatient: false,
      // Esconde o formulário de edição do paciente
      editPatient: false,
    }); 
    
    MdHub.command.send('plataforma.prescricao', 'setPaciente', {
      external_id: patientId,
      nome: 'José da Silva',
      cpf: '99999999999',
      telefone: '99999999999',
    }).then(function() {
      MdHub.module.show('plataforma.prescricao');
    });
    
    MdHub.event.add('prescricaoImpressa', function(prescriptionData) {
      // No objeto "prescriptionData", é retornado as informações da prescrição gerada.
      // Implementar ações, callbacks, etc.
    });
  }
});

Além disso, temos os exemplos de código abaixo:

Last updated