👂Eventos

Você pode assinar eventos que são disparados pelos módulos e implementá-los conforme necessidade em sua plataforma. Hoje disponibilizamos os seguintes eventos

Quando o módulo de prescrição terminou de carregar

Para que seja possível executar os comandos e registrar os eventos, você precisa saber o momento em que o módulo terminou de carregar.

É possível escutar o evento da seguinte forma:

// evento que detecta quando o módulo (JS) está carregado
MdSinapsePrescricao.event.add('core:moduleInit',function startMemedConfigs(modulo) {
                
  if(modulo.name === 'plataforma.prescricao') {
    // ativar/desativar recursos com o comando setFeatureToggle
    // definir um paciente com o comando setPaciente
    // mostrar o front-end da Memed com o método show
  }
});

Quando o módulo de prescrição for fechado

Ao finalizar a prescrição, o médico irá fechar o módulo e voltar para a experiência do PEP do parceiro. Esse momento pode ser capturado registrando o evento de escuta core:moduleHide. Veja um exemplo de implementação abaixo:

MdSinapsePrescricao.event.add(
    'core:moduleHide',
    function moduloFechado(modulo) {
        if(modulo.moduleName === 'plataforma.prescricao') {
            console.log('====== Módulo fechado ======', modulo);
        }
    }
);

Quando a prescrição é emitida

Quando uma prescrição é emitida, enviamos o evento prescricaoImpressa. Esse evento retorna os dados da prescrição gerada.

Veja um exemplo de implementação para escutar o evento:

MdSinapsePrescricao.event.add('core:moduleInit', function(moduleData){
    if (moduleData.name === 'plataforma.prescricao') {
        // O módulo da prescrição foi iniciado.
        MdHub.event.add('prescricaoImpressa', function(prescriptionData) {
            // No objeto "prescriptionData", é retornado as informações da prescrição gerada.
            // Implementar ações, callbacks, etc.
        });
    }
});

Veja mais exemplos do prescriptionData

Quando a prescrição é excluída

Quando uma prescrição é emitida, enviamos o evento prescricaoExcluida. Esse evento retorna os dados da prescrição gerada.

Veja um exemplo de implementação para escutar o evento:

MdSinapsePrescricao.event.add('core:moduleInit', (memedModule) => {
  if (memedModule.name === 'plataforma.prescricao') {
    /**
     * @param {number} prescriptionId Id da prescrição excluída
     */
    MdHub.event.add('prescricaoExcluida', (prescriptionId) => {
    });
  }
});

Quando o módulo de prescrição for fechado

Ao finalizar a prescrição, o médico irá fechar o módulo e voltar para a experiência do PEP do parceiro. Esse momento pode ser capturado registrando o evento de escuta core:moduleHide. Veja um exemplo de implementação abaixo:

MdSinapsePrescricao.event.add('core:moduleHide', (memedModule) => {
  if (memedModule.name === 'plataforma.prescricao') {
    console.log('====== Módulo fechado ======', memedModule);
  }
});

Também é possível capturar um prescrição através de nossa API.

Quando um medicamento for adicionado

Quando o medicamento é adicionado disparamos o evento medicamentoAdicionado , veja no exemplo abaixo;

MdSinapsePrescricao.event.add('core:moduleInit', (memedModule) => {
  if (memedModule.name === 'plataforma.prescricao') {
    /**
     * medicine = {
     *   alto_custo: false,
     *   composicao: 'Princípio Ativo 1 + Princípio Ativo 2',
     *   controle_especial: false,
     *   descricao: 'Ácido Ascórbico',
     *   fabricante: 'Sundown Vitaminas',
     *   forma_fisica: 'Cápsula',
     *   id: 'a123123123',
     *   nome: 'Vitamina C, comprimido (100un)',
     *   quantidade: 1,
     *   tipo: 'dermocosmético',
     * }
     */
    MdHub.event.add('medicamentoAdicionado', (medicine) => {});
  }
});

Quando o medicamento é removido da receita

Quando o medicamento é removido da receita disparamos e evento , veja no exemplo abaixo;

MdSinapsePrescricao.event.add('core:moduleInit', function moduleInitHandler(module) {

     MdHub.event.add('medicamentoRemovido', function callback(idDoMedicamento) {
          console.log(idDoMedicamento);
     });
});

Last updated