prescriber-tisaudev2
v1.0.30
Published
![Prescritor Ti Saúde](https://img.shields.io/badge/v1.0.11-Prescritor%20Ti.Sa%C3%BAde-8A2BE2)
Downloads
365
Readme
1. Prescritor Ti.Saúde
2. Índice de Conteúdos
- 1. Prescritor Ti.Saúde
- 2. Índice de Conteúdos
- 3. Sobre a integração
- 4. Compatibilidade
- 5. Ambientes
- 6. Instalação do pacote
- 7. Buildando o pacote
- 8. Obtendo JWT
- 9. Configurando o pacote
- 10. APIs DO SDK
- 11. Documentação para Eventos e Notificações do Prescritor
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
- API DEV: https://api.dev.cloud.tisaude.com/
- API PROD: https://api.tisaude.com/
- SDK CDN: https://prescriber-sdk.s3.amazonaws.com/{VERSION}/prescriber-tisaudev2.umd.js
- SDK package yarn/npm: *https://www.npmjs.com/package/prescriber-tisaudev2
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: [email protected],
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 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'
};
const message = (data && data.message) ? messages[data.message] : 'Mensagem não reconhecida';
if (data && 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 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'
};
const message = (data && data.message) ? messages[data.message] : 'Mensagem não reconhecida';
if (data && data.notifyOptions) {
// quasar Notify.create
Notify.create({
message: message,
type: data.notifyOptions.type,
color: data.notifyOptions.color,
closeBtn: true,
position: "top",
timeout: 3500,
progress: data.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ção | Argumento | Retorno | Descrição | | ----------- | ----------- | ----------- | ----------- | | loadPrescriber() | void | Prescriber | Esta função carrega o iframe do prescritor com os parâmetros estabelecidos | | setPatient() | setPatient(data: Patient) | void | Define o paciente na máquina de estados do prescritor | | setTools() | setTools(tools: Array) | Prescriber | Define as funcionalidades que serão carregadas junto com o prescritor | | auth() | void | void | Realiza a autenticação utilizando os parâmetros estabelecidos | | setColor() | setColor(colors: IColor) | Prescriber | Define as cores que serão utilizadas dentro do prescritor | | removePatient() | void | Prescriber | Remove o paciente da máquina de estados do prescritor | | handlerEvents() | void | Prescriber | Escuta e gerencia os eventos do prescritor | | on() | on(handler: string, callback: (data?: unknown) => void) | Prescriber | Sentinela 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.
| Evento | Quando o evento é disparado? | Retorno | | ----------- | ----------- | ----------- | | EVENT_PATIENT_FORM | Ao definir as informações do paciente mediante o método setPatient() | sem retorno | | EVENT_PATIENT_FORM_REMOVE | Ao remover o paciente da máquina de estado mediante o método removePatient() | sem retorno | | EVENT_PATIENT_SAVED | Ao salvar informações do paciente | Patient | | EVENT_THEME_COLOR | Ao definir as cores na variável de tema do prescritor | sem retorno | | EVENT_PRESCRIBER_LOADED | Ao carregar o prescritor | sem retorno | | EVENT_PRESCRIBER_FORM_LOADED | Ao carregar o formulário do prescritor | sem retorno | | EVENT_AUTH_LOAD | Ao realizar a autenticação | sem retorno | | EVENT_CORE_TOOLS | Ao carregar o prescritor | sem retorno | | EVENT_CORE_LOADING | Ao carregar o prescritor | sem retorno | | EVENT_MEDICATION_PRESCRIPTION_GET | Ao carregar uma prescrição de medicamentos | Prescription | | EVENT_MEDICATION_PRESCRIPTION_SAVED | Ao criar uma prescrição de medicamentos | MedicationInterface | | EVENT_MEDICATION_PRESCRIPTION_EMITED | Ao emitir uma prescrição de medicamentos | Prescription | | EVENT_GENERATED_SIGNED_PDF_MEDICATION_PRESCRIPTION | Ao assinar digitalmente uma prescrição de medicamentos | PrescriptionSigned | | EVENT_MEDICATION_PRESCRIPTION_DELETED | Ao excluir/cancelar/inativar uma prescrição de medicamentos | sem retorno | | EVENT_MEDICATION_PRESCRIPTION_MEDICATION_DELETED | Ao excluir um medicamento em uma prescrição de medicamentos | sem retorno | | EVENT_MEDICAL_CERTIFICATE_GET | Ao carregar um atestado de afastamento | Prescription | | EVENT_MEDICAL_CERTIFICATE_SAVED | Ao criar um atestado de afastamento | PrescriptionMedicalCertificate | | EVENT_MEDICAL_CERTIFICATE_EDIT | Ao editar um atestado de afastamento | PrescriptionMedicalCertificate | | EVENT_MEDICAL_CERTIFICATE_DELETED | Ao excluir/cancelar/inativar um atestado de afastamento | sem retorno | | EVENT_MEDICAL_CERTIFICATE_EMITED | Ao emitir um atestado de afastamento | Prescription | | EVENT_MEDICAL_CERTIFICATE_SIGNED | Ao assinar digitalmente um atestado de afastamento | PrescriptionSigned | | EVENT_MEDICAL_ATTENDANCE_GET | Ao carregar uma declaração de comparecimento | Prescription | | EVENT_MEDICAL_ATTENDANCE_SAVED | Ao criar uma declaração de comparecimento | PrescriptionAttendance | | EVENT_MEDICAL_ATTENDANCE_EDIT | Ao editar uma declaração de comparecimento | PrescriptionAttendance | | EVENT_MEDICAL_ATTENDANCE_DELETED | Ao excluir/cancelar/inativar uma declaração de comparecimento | sem retorno | | EVENT_MEDICAL_ATTENDANCE_EMITED | Ao emitir uma declaração de comparecimento | Prescription | | EVENT_MEDICAL_ATTENDANCE_SIGNED | Ao assinar digitalmente uma declaração de comparecimento | PrescriptionSigned | | EVENT_NAVIGATE_TO_EHR | Ao retornar para o prontuário do paciente | sem retorno | | EVENT_NAVIGATE_TO_OPTIONS | Ao abrir uma prescrição (medicamentos/atestado/declaração) vindo do histórico | sem retorno | | EVENT_EXAMS_PRESCRIPTION_DELETED | Ao excluir/cancelar/inativar uma prescrição de exames | { id, reason } | | EVENT_EXAMS_PRESCRIPTION_SAVED | Ao criar uma prescrição de exames | PrescriberExamsType | | EVENT_EXAMS_PARAMETERS_PRESCRIPTION_DELETED | Ao excluir um parâmetro da prescrição de exames | id | | EVENT_EXAMS_PRESCRIPTION_EMITED | Ao emitir uma prescrição de exames | Prescription | | EVENT_MEDICATION_PRESCRIPTION_GET | Ao carregar uma prescrição de exames | PrescriberExamsType |
10.4. Funcionalidades
Ativação/desativação de componentes/funcionalidades do prescritor
| Constante | Descrição | | ----------- | ----------- | | FUNC_PRESCRIBER_MEDICATION | Prescrição de medicamentos | | FUNC_PRESCRIBER_EXAMS | Prescrição de exames | | FUNC_PRESCRIBER_MEDICAL_CERTIFICATE | Prescrição de atestados e declarações | | FUNC_PRESCRIPTION_HISTORIC | Mostra o histórico de prescrição | | FUNC_PRESCRIPTION_MODEL | Salva e exibe modelos de prescrição | | FUNC_IMPUT_OUTLINED | Formulários de prescrições do tipo outlined |
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.