1.0.34 • Published 4 months ago

prescriber-tisaudev2 v1.0.34

Weekly downloads
-
License
MIT
Repository
-
Last release
4 months ago

1. Prescritor Ti.Saúde

Prescritor Ti Saúde

2. Índice de Conteúdos

3. Sobre a integração

O objetivo desse SDK é disponibilizar uma API para permitir a integração do Receituário digital da Ti.Saúde em outros softwares médicos que desejem incorporar o receituário.

A integração é feita atráves de um sdk construído em Typescript, que pode ser instalado em qualquer front-end atráves de cdn ou adicionando o pacote via yarn/npm.

Para conseguir se integrar é necessário obter um keyId de acesso a funcionalidade e o JWT do usuário que vai utilizar o prescritor, que pode ser obtida através de API.

Proteja sua keyId, armazene em uma local seguro.

Para obter o keyId entre contato com o nosso suporte clicando aqui.

4. Compatibilidade

O sdk é compatível com os seguintes navegadores:

  • Chrome >=87
  • Firefox >=78
  • Safari >=14
  • Edge >=88

5. Ambientes

6. Instalação do pacote

6.1. Yarn

yarn add prescriber-tisaudev2

6.2. NPM

npm install prescriber-tisaudev2

6.3. CDN

<script src="https://prescriber-sdk.s3.amazonaws.com/{VERSION}/prescriber-tisaudev2.umd.js"></script>

6.4. Como obter a versão mais recente:

  • Acesse a página do pacote Prescriber Ti.Saúde no npm.

  • No topo da página, você verá o número da versão mais recente publicada.

  • Substitua {VERSION} pelo número da versão, por exemplo, 1.0.11:

7. Buildando o pacote

Para realizar a build do SDK localmente, você executar um dos comandos a seguir:

7.1. CDN

yarn build:cdn

7.2. NPM ou Yarn

yarn build:pkg

Após o build, o prescritor precisa ser reinstalado apontando para os arquivos locais. Recomendamos excluir sua pasta node_modules e na sequência executar o comando a seguir.

yarn add prescriber-tisaudev2@file:/home/{SEU-USUARIO-AQUI}/prescriptor-tisaudev2

8. Obtendo JWT

Você precisa se autenticar em nosso endpoint de login, utilizando suas credenciais de acesso. Um exemplo de requisição seria:

curl --request POST \
  --url https://api.dev.cloud.tisaude.com/api/login \
  --header 'Content-Type: application/json' \
  --data '{
	"login": "meuusuario",
	"senha": "usuarioSenha123#"
}' | jq .access_token

deverá retornar algo semelhante a este token:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvYXBpLmRldi5jbG91ZC50aXNhdWRlLmNvbSIsImlhdCI6MTY5NTczNzI5NiwiZXhwIjoxNjk4MzI5Mjk2LCJuYmYiOjE2OTU3MzcyOTYsImp0aSI6IldZdGxCWktxcjJGZVd6REEiLCJzdWIiOjc5NTAsInBydiI6IjU4NzA4NjNkNGE2MmQ3OTE0NDNmYWY5MzZmYzM2ODAzMWQxMTBjNGYifQ.GqGNAsdtksCDgYMxZmVZ_5CAyGjuFoWTRlLnMJCNleM

9. Configurando o pacote

9.1. Via CDN

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta  charset="UTF-8">
		<meta  name="viewport"  content="width=device-width, initial-scale=1.0">
		<title>Prescritor cdn</title>
	</head>
<body>
	<div  id="prescriptor"  class="col-12"></div>
	<script  src="https://prescriber-sdk.s3.amazonaws.com/{VERSION}/prescriber-tisaudev2.umd.js">
	</script>
	<script>
    const { EVENTS, FEATURES, VIEWS, Prescriber } = window['prescriptor-tisaudev2'];

		this.prescriptor  =  new  Prescriber.Prescriber({
					element: "prescriptor",
					height: "70vh",
					keyId: ${keyId},
					token: ${access_token}
				});

		this.prescriptor.loadPrescriber().handlerEvents();

		const  APP  =  this;

		this.prescriptor.on(Prescriber.EVENTS.EVENT_PRESCRIBER_LOADED, () => {
				APP.prescriptor.auth().setColor({
					primary: 'red'
				});

        APP.prescriptor.setViewData(VIEWS.VIEW_MEDICATION_PRESCRIPTION);
		});

    this.prescriptor.on(EVENTS.EVENT_PRESCRIBER_FORM_LOADED, () => {
      APP.prescriptor.setPatient({
        cellphone: 81911111111,
        email: teste@hotmail.com,
        name: teste ,
        id: null,
        idExternal: null,

        // Informações do Paciente (campos opcionais)
        cpf: null,                            // string | CPF do paciente (opcional)
        address: null,                        // string | Endereço do paciente (opcional)
        apartment: null,                      // string | Apartamento do paciente (opcional)
        number: null,                         // string | Número da residência (opcional)
        neighborhood: null,                   // string | Bairro do paciente (opcional)
        city: null,                           // string | Cidade do paciente (opcional)
        state: null,                          // string | Estado do paciente (opcional)
        zip: null,                            // string | CEP do paciente (opcional)
        country: null,                        // string | País do paciente (opcional)

        // Informações do Convênio de Saúde (campos opcionais)
        idHealthInsurance: null,              // number | ID do convênio de saúde (opcional)
        healthInsurancePlan: null,            // string | Nome do plano de saúde (opcional)
        healthInsurancePlanCardNumber: null,  // string | Número do cartão do plano de saúde (opcional)
        healthInsurancePlanCardNumberExpiry: null, // string | Data de expiração do cartão (opcional)

        // Informações do Segundo Convênio de Saúde (campos opcionais)
        idHealthInsurance2: null,             // number | ID do segundo convênio de saúde (opcional)
        healthInsurancePlan2: null,           // string | Nome do segundo plano de saúde (opcional)
        healthInsurancePlanCardNumber2: null, // string | Número do cartão do segundo plano de saúde (opcional)
        healthInsurancePlanCardNumberExpiry2: null // string | Data de expiração do segundo cartão (opcional)

      });
    });

    this.prescriptor.on(EVENTS.EVENT_ACTIVATE_NOTIFY, (data) => {

      const { message, messageText, notifyOptions } = data

      const messages = {
        ehr_already_signed: 'Falha ao assinar Prontuário. Prontuário já está assinado.',
        ehr_not_found: 'Falha ao assinar Prontuário. Prontuário não encontrado.',
        certificate_sign_automatic_error: 'Este documento não pode ser assinado automaticamente.',
        certificate_sign_error: 'Falha ao assinar o documento.',
        certificate_cpf_error: 'CPF no usuário não corresponde ao CPF do certificado. Certificado: Eval',
        exams_emit_success: 'Exames emitido com sucesso.',
        medical_emit_success: 'Medicamento emitido com sucesso.',
        certificate_emit_success: 'Atestado emitido com sucesso.',
        declaration_emit_success: 'Declaração emitida com sucesso.',
        share_emit_success: 'Compartilhado com sucesso',
        required_location: 'Selecionar o local de atendimento',
        // guia tiss
        guide_invalid: messageText,
        serve_error: 'Ocorreu um erro no servidor. Tente novamente mais tarde.',
        health_insurance_not_found: "Paciente sem convênio, favor selecionar um convênio configurado para este paciente",
        health_insurance_registration_number_not_found: "Convênio não configurado corretamente. Favor inserir o número de Registro do convênio na ANS.",
        health_insurance_cannot_issue_separate_tiss_guide: "Não é possível emitir uma guia tiss avulsa.",
        batch_with_another_professional: "Lote já cadastrado com um profissional executante diferente do preenchido.",
        guide_already_has_expense: "Guia já possui despesas.",
        appointment_already_exist: "já existe uma guia para este agendamento.",
      };

      const msg = (data && message) ? messages[message] : 'Erro desconhecido. Por favor, contate o suporte.';

      if (data && notifyOptions) {

        alert(message);

      }
    });

	</script>
</body>
</html>

9.2. Utilizando bibliotecas Javascript

No código abaixo, você pode conferir como se dá a implementação do Prescritor utilizando Vue.

<template>
	<div class="row">
		<div id="prescriptor" class="col-12"></div>
	</div>
</template>
<script>
import { EVENTS, FEATURES, VIEWS, Prescriber } from "prescriber-tisaudev2";
import { mapState } from  "vuex";
import { Notify } from "quasar";

export  default {
	name: "Prescritor",
	data() {
		return {
			prescriptor: null
		};
	},
  computed: {
    ...mapState("ehr", ["patient"])
  },
	mounted() {
		this.prescriptor = new Prescriber({
					element: "prescriptor",
					height: "70vh", // altura do iframe do prescritor em sua aplicação
					keyId: ${keyId}, // é recomendável armazenar esta variável em seu arquivo .env
					token: ${access_token} // é recomendável armazenar esta variável em seu arquivo .env
				});

		this.prescriptor.loadPrescriber().handlerEvents();

		const APP = this;

		this.prescriptor.on(EVENTS.EVENT_PRESCRIBER_LOADED, () => {
				APP.prescriptor.auth().setColor({
					primary: 'red' // esta cor é a cor primária da sua aplicação
				});

        APP.prescriptor.setViewData(VIEWS.VIEW_MEDICATION_PRESCRIPTION);
		});

    this.prescriptor.on(EVENTS.EVENT_PRESCRIBER_FORM_LOADED, () => {
      APP.prescriptor.setPatient({
        cellphone: APP.patient.cellphone,
        email: APP.patient.email,
        name: APP.patient.name,
        id: APP.patient.id,
        idExternal: null,

        // Informações do Paciente (campos opcionais)
        cpf: null,                            // string | CPF do paciente (opcional)
        address: null,                        // string | Endereço do paciente (opcional)
        apartment: null,                      // string | Apartamento do paciente (opcional)
        number: null,                         // string | Número da residência (opcional)
        neighborhood: null,                   // string | Bairro do paciente (opcional)
        city: null,                           // string | Cidade do paciente (opcional)
        state: null,                          // string | Estado do paciente (opcional)
        zip: null,                            // string | CEP do paciente (opcional)
        country: null,                        // string | País do paciente (opcional)

        // Informações do Convênio de Saúde (campos opcionais)
        idHealthInsurance: null,              // number | ID do convênio de saúde (opcional)
        healthInsurancePlan: null,            // string | Nome do plano de saúde (opcional)
        healthInsurancePlanCardNumber: null,  // string | Número do cartão do plano de saúde (opcional)
        healthInsurancePlanCardNumberExpiry: null, // string | Data de expiração do cartão (opcional)

        // Informações do Segundo Convênio de Saúde (campos opcionais)
        idHealthInsurance2: null,             // number | ID do segundo convênio de saúde (opcional)
        healthInsurancePlan2: null,           // string | Nome do segundo plano de saúde (opcional)
        healthInsurancePlanCardNumber2: null, // string | Número do cartão do segundo plano de saúde (opcional)
        healthInsurancePlanCardNumberExpiry2: null // string | Data de expiração do segundo cartão (opcional)

      });
    });

    this.prescriptor.on(EVENTS.EVENT_ACTIVATE_NOTIFY, (data) => {

      const { message, messageText, notifyOptions } = data

      const messages = {
        ehr_already_signed: 'Falha ao assinar Prontuário. Prontuário já está assinado.',
        ehr_not_found: 'Falha ao assinar Prontuário. Prontuário não encontrado.',
        certificate_sign_automatic_error: 'Este documento não pode ser assinado automaticamente.',
        certificate_sign_error: 'Falha ao assinar o documento.',
        certificate_cpf_error: 'CPF no usuário não corresponde ao CPF do certificado. Certificado: Eval',
        exams_emit_success: 'Exames emitido com sucesso.',
        medical_emit_success: 'Medicamento emitido com sucesso.',
        certificate_emit_success: 'Atestado emitido com sucesso.',
        declaration_emit_success: 'Declaração emitida com sucesso.',
        share_emit_success: 'Compartilhado com sucesso',
        required_location: 'Selecionar o local de atendimento',
        // guia tiss
        guide_invalid: messageText,
        serve_error: 'Ocorreu um erro no servidor. Tente novamente mais tarde.',
        health_insurance_not_found: "Paciente sem convênio, favor selecionar um convênio configurado para este paciente",
        health_insurance_registration_number_not_found: "Convênio não configurado corretamente. Favor inserir o número de Registro do convênio na ANS.",
        health_insurance_cannot_issue_separate_tiss_guide: "Não é possível emitir uma guia tiss avulsa.",
        batch_with_another_professional: "Lote já cadastrado com um profissional executante diferente do preenchido.",
        guide_already_has_expense: "Guia já possui despesas.",
        appointment_already_exist: "já existe uma guia para este agendamento.",
      };

      const msg = (data && message) ? messages[message] : 'Erro desconhecido. Por favor, contate o suporte.';

      if (data && notifyOptions) {

        Notify.create({
          message: msg,
          type: notifyOptions.type,
          color: notifyOptions.color,
          closeBtn: true,
          position: "top",
          timeout: 3500,
          progress: notifyOptions.progress || false
        });

      }
    });

	}

};
</script>

9.3. Campos Opcionais em setPatient:

Os campos indicados como opcionais (opcional) significam que esses valores não são obrigatórios e podem ser null ou não informados no momento da configuração do paciente.

Observação: Para que o paciente possa acessar o PDF da guia TISS, é necessário que ele possua um convênio de saúde ativo.

9.4. função Opcionais setViewData:

Por padrão, a visão inicial do prescritor é configurada para VIEWS.VIEW_MEDICATION_PRESCRIPTION, ou seja, o módulo de prescrição de medicamentos. No entanto, se você desejar iniciar o front-end do prescritor em outras áreas, como exames ou atestados, é possível utilizar a função setViewData e definir o modo desejado.

Os tipos que podem ser adicionados são:

  • VIEWS.VIEW_MEDICATION_PRESCRIPTION → medication.prescription (Prescrição de Medicamentos)
  • VIEWS.VIEW_MEDICAL_CERTIFICATE_PRESCRIPTION → (Prescrição de Atestado Médico)
  • VIEWS.VIEW_MEDICAL_ATTENDANCE_PRESCRIPTION → (Prescrição de Declaração Médica)
  • VIEWS.VIEW_EXAMS_PRESCRIPTION → (Prescrição de Exames)

Esses modos permitem iniciar o front-end do prescritor já na seção desejada, facilitando o fluxo de trabalho conforme a necessidade do usuário.

10. APIs DO SDK

10.1. Interfaces

Interfaces disponíveis para interação com a nossa SDK.

Prescriber

{
	element: string;
	height: string | null;
	token?: string;
	keyId?: string;
};

Patient

{
  id: string | null;
  idExternal?: string | null;
  name: string;
  documentId?: string;
  email: string;
  cellphone: string;

  // Informações do Paciente (campos opcionais)
  cpf?: string | null;                            // CPF do paciente (opcional)
  address?: string | null;                        // Endereço do paciente (opcional)
  apartment?: string | null;                      // Apartamento do paciente (opcional)
  number?: string | null;                         // Número da residência (opcional)
  neighborhood?: string | null;                   // Bairro do paciente (opcional)
  city?: string | null;                           // Cidade do paciente (opcional)
  state?: string | null;                          // Estado do paciente (opcional)
  zip?: string | null;                            // CEP do paciente (opcional)
  country?: string | null;                        // País do paciente (opcional)

  // Informações do Convênio de Saúde (campos opcionais)
  idHealthInsurance?: number | null;              // ID do convênio de saúde (opcional)
  healthInsurancePlan?: string | null;            // Nome do plano de saúde (opcional)
  healthInsurancePlanCardNumber?: string | null;  // Número do cartão do plano de saúde (opcional)
  healthInsurancePlanCardNumberExpiry?: string | null; // Data de expiração do cartão (opcional)

  // Informações do Segundo Convênio de Saúde (campos opcionais)
  idHealthInsurance2?: number | null;             // ID do segundo convênio de saúde (opcional)
  healthInsurancePlan2?: string | null;           // Nome do segundo plano de saúde (opcional)
  healthInsurancePlanCardNumber2?: string | null; // Número do cartão do segundo plano de saúde (opcional)
  healthInsurancePlanCardNumberExpiry2?: string | null; // Data de expiração do segundo cartão (opcional)
};

MedicationInterface

 {
    id: string | null, 
    receiptId: null | string, 
    medicationId: string, 
    medication: string, 
    amount: string,
    use: number | null, 
    useOther: string, 
    via: number | null,
    viaOther: string,
    dosage: string,
    recurrence: number | null,
    recurrenceOther: string,
    duration: number | null,
    time: number | null,
    timeOther: string,
    observation: string,
    editing?: boolean
}

PrescriptionMedicalCertificate

 {
    id: string | null,
    patientId: null | string,
    date: string, 
    duration?: number | null,
    time?: string | null,
    cid?: string,
    observation?: string,
}

PrescriptionAttendance

 {
    id?: string | null,
    patientId: null | string,
    date?: string,
    attendance?: 'paciente' | 'acompanhante',
    exit?: string | null,
    periodBegin?: string,
    periodEnd?: string,
    cid?: string,
    companion?: string,
    kinship?: string,
    isPatient?: boolean
}

PrescriberExamsType

 {
    id?: string | null;
    patientId: string | null;
    healthInsuranceId: string | null;
    healthInsuranceflat: string | null;
    healthInsuranceWallet: string | null;
    healthInsuranceValidity: string | null;
    cid: string | null;
    observation: string | null;
    simplesOuTiss: string | null;
    arrayProcedure: ExamsParametersInterface[];
}

ExamsParametersInterface

 {
    id: string | null;
    procedure: string | null,
    observation: string | null,
    tuss: string | null,
    editing: boolean | null
}

IColor

{
    primary?: string;
    secondary?: string;
    accent?: string;
    dark?: string;
    positive?: string;
    negative?: string;
    info?: string;
    warning?: string;
}

EventCallback

{
  handler: string;
  callback: (data?: unknown) => void;
};

10.2. Métodos

As funções abaixo modificam a forma como o componente Prescritor interage com o seu sistema.

FunçãoArgumentoRetornoDescrição
loadPrescriber()voidPrescriberEsta função carrega o iframe do prescritor com os parâmetros estabelecidos
setPatient()setPatient(data: Patient)voidDefine o paciente na máquina de estados do prescritor
setTools()setTools(tools: Array)PrescriberDefine as funcionalidades que serão carregadas junto com o prescritor
auth()voidvoidRealiza a autenticação utilizando os parâmetros estabelecidos
setColor()setColor(colors: IColor)PrescriberDefine as cores que serão utilizadas dentro do prescritor
removePatient()voidPrescriberRemove o paciente da máquina de estados do prescritor
handlerEvents()voidPrescriberEscuta e gerencia os eventos do prescritor
on()on(handler: string, callback: (data?: unknown) => void)PrescriberSentinela e disparador de eventos do prescritor

10.3. Eventos

Dentro do prescritor, nós temos eventos para as ações principais dentro do sistema. Desta forma, você pode ter um retorno para realizar as integrações necessárias.

EventoQuando o evento é disparado?Retorno
EVENT_PATIENT_FORMAo definir as informações do paciente mediante o método setPatient()sem retorno
EVENT_PATIENT_FORM_REMOVEAo remover o paciente da máquina de estado mediante o método removePatient()sem retorno
EVENT_PATIENT_SAVEDAo salvar informações do pacientePatient
EVENT_THEME_COLORAo definir as cores na variável de tema do prescritorsem retorno
EVENT_PRESCRIBER_LOADEDAo carregar o prescritorsem retorno
EVENT_PRESCRIBER_FORM_LOADEDAo carregar o formulário do prescritorsem retorno
EVENT_AUTH_LOADAo realizar a autenticaçãosem retorno
EVENT_CORE_TOOLSAo carregar o prescritorsem retorno
EVENT_CORE_LOADINGAo carregar o prescritorsem retorno
EVENT_MEDICATION_PRESCRIPTION_GETAo carregar uma prescrição de medicamentosPrescription
EVENT_MEDICATION_PRESCRIPTION_SAVEDAo criar uma prescrição de medicamentosMedicationInterface
EVENT_MEDICATION_PRESCRIPTION_EMITEDAo emitir uma prescrição de medicamentosPrescription
EVENT_GENERATED_SIGNED_PDF_MEDICATION_PRESCRIPTIONAo assinar digitalmente uma prescrição de medicamentosPrescriptionSigned
EVENT_MEDICATION_PRESCRIPTION_DELETEDAo excluir/cancelar/inativar uma prescrição de medicamentossem retorno
EVENT_MEDICATION_PRESCRIPTION_MEDICATION_DELETEDAo excluir um medicamento em uma prescrição de medicamentossem retorno
EVENT_MEDICAL_CERTIFICATE_GETAo carregar um atestado de afastamentoPrescription
EVENT_MEDICAL_CERTIFICATE_SAVEDAo criar um atestado de afastamentoPrescriptionMedicalCertificate
EVENT_MEDICAL_CERTIFICATE_EDITAo editar um atestado de afastamentoPrescriptionMedicalCertificate
EVENT_MEDICAL_CERTIFICATE_DELETEDAo excluir/cancelar/inativar um atestado de afastamentosem retorno
EVENT_MEDICAL_CERTIFICATE_EMITEDAo emitir um atestado de afastamentoPrescription
EVENT_MEDICAL_CERTIFICATE_SIGNEDAo assinar digitalmente um atestado de afastamentoPrescriptionSigned
EVENT_MEDICAL_ATTENDANCE_GETAo carregar uma declaração de comparecimentoPrescription
EVENT_MEDICAL_ATTENDANCE_SAVEDAo criar uma declaração de comparecimentoPrescriptionAttendance
EVENT_MEDICAL_ATTENDANCE_EDITAo editar uma declaração de comparecimentoPrescriptionAttendance
EVENT_MEDICAL_ATTENDANCE_DELETEDAo excluir/cancelar/inativar uma declaração de comparecimentosem retorno
EVENT_MEDICAL_ATTENDANCE_EMITEDAo emitir uma declaração de comparecimentoPrescription
EVENT_MEDICAL_ATTENDANCE_SIGNEDAo assinar digitalmente uma declaração de comparecimentoPrescriptionSigned
EVENT_NAVIGATE_TO_EHRAo retornar para o prontuário do pacientesem retorno
EVENT_NAVIGATE_TO_OPTIONSAo abrir uma prescrição (medicamentos/atestado/declaração) vindo do históricosem retorno
EVENT_EXAMS_PRESCRIPTION_DELETEDAo excluir/cancelar/inativar uma prescrição de exames{ id, reason }
EVENT_EXAMS_PRESCRIPTION_SAVEDAo criar uma prescrição de examesPrescriberExamsType
EVENT_EXAMS_PARAMETERS_PRESCRIPTION_DELETEDAo excluir um parâmetro da prescrição de examesid
EVENT_EXAMS_PRESCRIPTION_EMITEDAo emitir uma prescrição de examesPrescription
EVENT_MEDICATION_PRESCRIPTION_GETAo carregar uma prescrição de examesPrescriberExamsType

10.4. Funcionalidades

Ativação/desativação de componentes/funcionalidades do prescritor

ConstanteDescrição
FUNC_PRESCRIBER_MEDICATIONPrescrição de medicamentos
FUNC_PRESCRIBER_EXAMSPrescrição de exames
FUNC_PRESCRIBER_MEDICAL_CERTIFICATEPrescrição de atestados e declarações
FUNC_PRESCRIPTION_HISTORICMostra o histórico de prescrição
FUNC_PRESCRIPTION_MODELSalva e exibe modelos de prescrição
FUNC_IMPUT_OUTLINEDFormulários de prescrições do tipo outlined
FUNC_ALLERGIES_AND_HEALTHCONDITIONSAlergias e condições de saúde
FUNC_MOBILE_APPLICATIONAplicação se comporta de forma mobile

11. Documentação para Eventos e Notificações do Prescritor

Esta documentação descreve como configurar e utilizar os eventos de notificação no componente Prescritor. Essas instruções ajudarão você a entender como lidar com eventos específicos e notificar o usuário adequadamente.

11.1. Eventos de Notificação

O Prescritor dispara eventos de notificação que podem ser capturados para fornecer feedback ao usuário. O evento principal que você precisa escutar é EVENTS.EVENT_ACTIVATE_NOTIFY.

11.1.1. Estrutura do Evento

O evento EVENTS.EVENT_ACTIVATE_NOTIFY envia um objeto data contendo as seguintes propriedades:

  • message: Uma string que identifica o tipo de evento ocorrido. Este valor é mapeado para mensagens descritivas.

  • notifyOptions: Um objeto contendo as opções para a notificação, incluindo:

  • notificationTypeKey: Tipo da chave (success, error, info).

  • type: Tipo da notificação (positive, negative, info).
  • color: Cor da notificação.
  • progress (opcional): Booleano que indica se a barra de progresso deve ser exibida.

11.1.2. Código de Exemplo no javaScript

Aqui está um exemplo de como escutar e manipular o evento EVENTS.EVENT_ACTIVATE_NOTIFY:

this.prescriptor.on(EVENTS.EVENT_ACTIVATE_NOTIFY, (data) => {
  const messages = {
    ehr_already_signed: 'Falha ao assinar Prontuário. Prontuário já está assinado.',
    ehr_not_found: 'Falha ao assinar Prontuário. Prontuário não encontrado.',
    certificate_sign_automatic_error: 'Este documento não pode ser assinado automaticamente.',
    certificate_sign_error: 'Falha ao assinar o documento.',
    certificate_cpf_error: 'CPF no usuário não corresponde ao CPF do certificado. Certificado: Eval',
    exams_emit_success: 'Exames emitido com sucesso.',
    medical_emit_success: 'Medicamento emitido com sucesso.',
    certificate_emit_success: 'Atestado emitido com sucesso.',
    declaration_emit_success: 'Declaração emitida com sucesso.'
  };

  const message = messages[data.message] || 'Mensagem não reconhecida';

  if (data.notifyOptions) {

    alert(message);

  }

});

11.1.3. Código de Exemplo no Vue

Aqui está um exemplo de como escutar e manipular o evento EVENTS.EVENT_ACTIVATE_NOTIFY:

this.prescriptor.on(EVENTS.EVENT_ACTIVATE_NOTIFY, (data) => {
  const messages = {
    ehr_already_signed: 'Falha ao assinar Prontuário. Prontuário já está assinado.',
    ehr_not_found: 'Falha ao assinar Prontuário. Prontuário não encontrado.',
    certificate_sign_automatic_error: 'Este documento não pode ser assinado automaticamente.',
    certificate_sign_error: 'Falha ao assinar o documento.',
    certificate_cpf_error: 'CPF no usuário não corresponde ao CPF do certificado. Certificado: Eval',
    exams_emit_success: 'Exames emitido com sucesso.',
    medical_emit_success: 'Medicamento emitido com sucesso.',
    certificate_emit_success: 'Atestado emitido com sucesso.',
    declaration_emit_success: 'Declaração emitida com sucesso.'
  };

  const message = messages[data.message] || 'Mensagem não reconhecida';

  if (data.notifyOptions) {

     Notify.create({
          message: message,
          type: data.notifyOptions.type,
          color: data.notifyOptions.color,
          closeBtn: true,
          position: "top",
          timeout: 3500,
          progress: data.notifyOptions.progress || false
        });

  }

});

11.1.4. Mapeamento de Mensagens

O objeto messages mapeia códigos de mensagem para as mensagens descritivas correspondentes. Aqui estão os códigos de mensagem disponíveis e suas descrições:

  • ehr_already_signed: Falha ao assinar Prontuário. Prontuário já está assinado.
  • ehr_not_found: Falha ao assinar Prontuário. Prontuário não encontrado.
  • certificate_sign_automatic_error: Este documento não pode ser assinado automaticamente.
  • certificate_sign_error: Falha ao assinar o documento.
  • certificate_cpf_error: CPF no usuário não corresponde ao CPF do certificado. Certificado: Eval
  • exams_emit_success: Exames emitido com sucesso.
  • medical_emit_success: Medicamento emitido com sucesso.
  • certificate_emit_success: Atestado emitido com sucesso.
  • declaration_emit_success: Declaração emitida com sucesso.
  • share_emit_success: 'Compartilhado com sucesso'

11.1.5. Exemplo de Uso

Quando o evento EVENTS.EVENT_ACTIVATE_NOTIFY é disparado, a notificação apropriada é criada usando o Quasar Notify API:

Notify.create({
  message: message,
  type: data.notifyOptions.type,
  color: data.notifyOptions.color,
  closeBtn: true,
  position: "top",
  timeout: 3500,
  progress: data.notifyOptions.progress || false
});

Esta abordagem centraliza a lógica de notificação, permitindo a adição de novos tipos de mensagem ou configurações de notificação conforme necessário.

11.1.6. Conclusão

Esta documentação fornece uma visão geral de como os eventos de notificação são tratados no Prescritor. Seguindo esses exemplos, você poderá gerenciar notificações de maneira eficaz, proporcionando uma melhor experiência ao usuário. Se precisar adicionar novos tipos de mensagens ou notificações, basta atualizar o objeto messages com os códigos e descrições apropriados.

1.0.25

8 months ago

1.0.29

8 months ago

1.0.28

8 months ago

1.0.33

5 months ago

1.0.32

7 months ago

1.0.31

8 months ago

1.0.30

8 months ago

1.0.34

4 months ago

1.0.22

10 months ago

1.0.21

11 months ago

1.0.24

9 months ago

1.0.23

9 months ago

1.0.19

11 months ago

1.0.8

1 year ago

1.0.11

1 year ago

1.0.10

1 year ago

1.0.20

11 months ago

1.0.15

11 months ago

1.0.14

11 months ago

1.0.13

11 months ago

1.0.12

11 months ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.0.0

2 years ago