Skip to content

Instantly share code, notes, and snippets.

@ricardojlrufino
Last active November 2, 2024 23:50
Show Gist options
  • Save ricardojlrufino/2dba260a754faf2f60cf487e9891eb28 to your computer and use it in GitHub Desktop.
Save ricardojlrufino/2dba260a754faf2f60cf487e9891eb28 to your computer and use it in GitHub Desktop.
Protocolos Fotna

Tratamento: Rejuvenescimento Facial

Protocolo: Rejuvenescimento

Passo 1 (NEOCOLAGENESE)

  • Ponteira: R28
  • Modo de entrega: FRAC3®
  • Spot: 5MM
  • Energia: 30J
  • Frequência: 1.5 Hz
  • Procedimento: 1 PASSADA CRUZADA
  • // Referências: Fim dos detalhes do procedimento e início das referências
  • #IMG-REF: 53c2c7a8-5ed7-47d3-8335-52683e57ffbb
  • #IMG-REF: 164f611b-a8a7-4978-ba1a-8928c0b558d2

Passo 2 (FRACIONADA)

  • Ponteira: FS20A
  • Modo de entrega: FRACTAT®
  • Spot: 9X9MM
  • Energia: 20J
  • Frequência: MAQX-2
  • Procedimento: 2 PASSADAS CRUZADAS
  • // Referências: Fim dos detalhes do procedimento e início das referências
  • #IMG-REF: bd2ce724-334d-4ae7-b46a-0100aae009a3
  • #IMG-REF: 67a086d5-c686-40f0-8984-59878d80395f

Protocolo: Rejuvenescimento (Pescoço e Colo)

Passo 1 (FRACIONADA)

  • Ponteira: FS20A
  • Modo de entrega: FRACTAT®
  • Spot: 9X9MM
  • Energia: MAQX-2 20J
  • Frequência: 1.5 Hz
  • Procedimento: 1 PASSADA CRUZADA

Tratamento: Pigmentação

Protocolo: Remoção de Tattoo (Dark)

Passo 1 (FRACIONADA)

  • Ponteira: FS20A
  • Modo de entrega: MAQX-10
  • Spot: 9X9MM
  • Energia: 75J
  • Frequência: 1.5 Hz
  • Procedimento: 2 PASSADAS NA TATTOO

Passo 2 (TATTOO DARK)

  • Ponteira: R28
  • Modo de entrega: MAQX-1
  • Spot: 5MM
  • Energia: 2.5J
  • Frequência: 1 Hz
  • Procedimento: 1 PASSADAS FROSTING

Protocolo: Remoção de Tattoo (Light)

Passo 1 (FRACIONADA)

  • Ponteira: FS20A
  • Modo de entrega: MAQX-10
  • Spot: 9X9MM
  • Energia: 75J
  • Frequência: 1.5 Hz
  • Procedimento: 2 PASSADAS NA TATTOO

Passo 2 (TATTOO LIGHT)

  • Ponteira: R28
  • Modo de entrega: Nd:YAG
  • Spot: 5MM
  • Energia: 1J
  • Frequência: 1 Hz
  • Procedimento: 1 PASSADAS FROSTING

Protocolo: Green Toning (Superficial)

Passo 1 (TONING)

  • Ponteira: R28
  • Modo de entrega: MAQX-1
  • Spot: 8MM
  • Energia: 1.4-1.8J
  • Frequência: 4.5 Hz
  • Procedimento: 2-3 PASSADAS EM VARREDURA FULL FACE

Passo 2 (KTP)

  • Ponteira: R28
  • Modo de entrega: KTP 532nm
  • Spot: 4MM
  • Energia: 0.5J
  • Frequência: 3 Hz
  • Procedimento: 1 PASSADA CRUZADA EM VARREDURA

Protocolo: Hipercromia

Passo 1 (SKIN TONING)

  • Ponteira: R28
  • Modo de entrega: MAQX-1
  • Spot: 8MM
  • Energia: 1.4-1.8J
  • Frequência: 4.5 Hz
  • Procedimento: 2-3 PASSADAS CRUZADAS

Passo 2 (FRACIONADA)

  • Ponteira: FS20A
  • Modo de entrega: Nd:YAG 1064nm
  • Spot: não especificado
  • Energia: 20-30J
  • Frequência: 1.5-2 Hz
  • Procedimento: 1 PASSADA CRUZADA

Protocolo: Nevo de Ota

Passo 1 (TONING)

  • Ponteira: R28
  • Modo de entrega: MAQX-1
  • Spot: 8MM
  • Energia: 4J
  • Frequência: 4.5 Hz
  • Procedimento: 6 PASSADAS EM VARREDURA

Protocolo: Lentigo Solar & Melanose Solar & Queratose Seborreica Plana

Passo 1 (KTP 532nm)

  • Ponteira: R28
  • Modo de entrega: MAQX-1
  • Spot: 4MM
  • Energia: 1.2-1.5J
  • Frequência: 1 Hz
  • Procedimento: PONTUAL NAS MANCHAS

Protocolo: Manchas - Café com Leite

Passo 1 (KTP 532nm)

  • Ponteira: R28
  • Modo de entrega: VERDE MAQX-1
  • Spot: 4MM
  • Energia: 6-10J
  • Frequência: 1 Hz
  • Procedimento: PONTUAL NAS MANCHAS

Passo 2 (KTP 532nm)

  • Ponteira: R28
  • Modo de entrega: Qs KTP MAQX-1
  • Spot: 4MM
  • Energia: 1.2-1.5J
  • Frequência: 1 Hz
  • Procedimento: PONTUAL NAS MANCHAS

Protocolo: PIH - Hiperpigmentação Pós Inflamatória

Passo 1 (ROSÁCEA)

  • Ponteira: R28
  • Modo de entrega: VERSA3®
  • Spot: 5MM
  • Energia: 35J
  • Frequência: 1 Hz
  • Procedimento: 1 PASSADA CRUZADA

Passo 2 (TONING)

  • Ponteira: R28
  • Modo de entrega: MAQX-1
  • Spot: 6MM e 8MM
  • Energia: 1.4-1.8J
  • Frequência: 4.5 Hz
  • Procedimento: Spot 6MM (FULL FACE): 4 PASSADAS EM VARREDURA, Spot 8MM: 2 PASSADAS NO MELASMA

Passo 3 (ANTI-INFLAMATÓRIO)

  • Ponteira: R58
  • Modo de entrega: VERDE®
  • Spot: 4MM
  • Energia: 4-6J
  • Frequência: 1 Hz
  • Procedimento: PONTUAL NAS MANCHAS

Protocolo: Melasma Pigmentar

Passo 1 (TONING)

  • Ponteira: R28
  • Modo de entrega: MAQX-1
  • Spot: 6MM e 8MM
  • Energia: 1.4-1.8J
  • Frequência: 4.5 Hz
  • Procedimento: Spot 6MM (FULL FACE): 4 PASSADAS EM VARREDURA, Spot 8MM: 2 PASSADAS NO MELASMA

Passo 2 (FRACIONADA)

  • Ponteira: FS20A
  • Modo de entrega: FRACTAT MAQX-5
  • Spot: 9x9MM
  • Energia: 10J
  • Frequência: 1.5 Hz
  • Procedimento: 2 PASSADAS NO MELASMA

Protocolo: Melasma Vascular e Pigmentar

Passo 1 (ROSÁCEA)

  • Ponteira: R28
  • Modo de entrega: VERSA® 25MS
  • Spot: 5MM
  • Energia: 35J
  • Frequência: 1 Hz
  • Procedimento: 1 PASSADA CRUZADA

Passo 2 (TONING)

  • Ponteira: R28
  • Modo de entrega: MAQX-1
  • Spot: 6MM e 8MM
  • Energia: 1.4 - 1.8 J
  • Frequência: 4.5 Hz
  • Procedimento: Spot 6MM (FULL FACE) - 4 PASSADAS EM VARREDURA e Spot 8MM - 2 PASSADAS NO MELASMA

Passo 3 (ANTI-INFLAMATÓRIO)

  • Ponteira: R28
  • Modo de entrega: FRAC3®
  • Spot: 4 MM
  • Energia: 10 J
  • Frequência: 10 Hz
  • Procedimento: 5 A 10 PASSADAS EM VARREDURA

Passo 4 (FRACIONADA)

  • Ponteira: R28
  • Modo de entrega: FRACTAT® MAQX-5
  • Spot: 9x9MM
  • Energia: 10 J
  • Frequência: 1.5 Hz
  • Procedimento: 2 PASSADAS NO MELASMA

Tratamento: Vascular

Protocolo: Telangiectasia

Passo 1

  • Ponteira: R28
  • Modo de entrega: VERSA3®
  • Spot: 2MM
  • Energia: 160 J/cm²
  • Frequência: 1 Hz
  • Procedimento: PONTUAL

Protocolo: Spider Angioma

Passo 1

  • Ponteira: R28
  • Modo de entrega: MAQX-1
  • Spot: 8MM
  • Energia: 1.8-2J
  • Frequência: 4.5 Hz
  • Procedimento: ATÉ FROSTING

Passo 2 (KTP PL)

  • Ponteira: R58
  • Modo de entrega: VERDE®
  • Spot: 3MM
  • Energia: 4-6J
  • Frequência: 2-4 Hz
  • Procedimento: FROSTING

Protocolo: Angioma Rubi

Passo 1

  • Ponteira: R28
  • Modo de entrega: VERSA3®
  • Spot: 4MM
  • Energia: 90-120J
  • Frequência: 1 Hz
  • Procedimento: PONTUAL

Passo 2 (KTP PL)

  • Ponteira: R58
  • Modo de entrega: VERDE®
  • Spot: 4MM
  • Energia: 6-8 J/cm²
  • Frequência: 1 Hz
  • Procedimento: PONTUAL

Protocolo: Lago Venoso

Passo 1

  • Ponteira: R28
  • Modo de entrega: VERSA3®
  • Spot: 4MM
  • Energia: 90-120J
  • Frequência: 1-1.5 Hz
  • Procedimento: PONTUAL

Passo 2 (KTP PL)

  • Ponteira: R58
  • Modo de entrega: VERDE®
  • Spot: 3MM
  • Energia: 4-8J
  • Frequência: 1-1.5 Hz
  • Procedimento: ESBRANQUIÇADO OU FROSTING

Protocolo: Rosácea

Passo 1 (ROSÁCEA)

  • Ponteira: R28
  • Modo de entrega: VERSA3®
  • Spot: 5MM
  • Energia: 35 J/cm²
  • Frequência: 1 Hz
  • Procedimento: 1 PASSADA CRUZADA (#) Com resfriamento

Passo 2 (TELANGIECTASIA)

  • Ponteira: R28
  • Modo de entrega: VERSA3®
  • Spot: 4MM
  • Energia: 170-190J
  • Frequência: 1-1.5 Hz
  • Procedimento: PONTUAL Com resfriamento

Passo 3 (ANTI-INFLAMATÓRIO)

  • Ponteira: R28
  • Modo de entrega: FRAC3®
  • Spot: 4MM
  • Energia: 10J
  • Frequência: 10 Hz
  • Procedimento: 5 A 10 PASSADAS OU 5 EM VARREDURA

Protocolo: PWS (Parkes Weber Syndrome)

Passo 1

  • Ponteira: R28
  • Modo de entrega: VERSA®
  • Spot: 2MM
  • Energia: 120-150J
  • Frequência: 1-1.5 Hz
  • Procedimento: PONTUAL

Passo 2 (KTP PL)

  • Ponteira: R58
  • Modo de entrega: VERDE®
  • Spot: 3MM
  • Energia: 4-6J
  • Frequência: 1-1.5 Hz
  • Procedimento: PONTUAL

Protocolo: Poiquilodermia

Passo 1 (ROSÁCEA)

  • Ponteira: R28
  • Modo de entrega: VERSA3®
  • Spot: 5MM
  • Energia: 35 J/cm²
  • Frequência: 1-1.5 Hz
  • Procedimento: 1 PASSADA CRUZADA

Passo 2 (SKIN TONING)

  • Ponteira: R28
  • Modo de entrega: MAQX1
  • Spot: 6MM ou 7MM
  • Energia: 1.7-2J
  • Frequência: 4.5 Hz
  • Procedimento: 6 PASSADAS EM VARREDURA

Passo 3 (QS KTP)

  • Ponteira: R28
  • Modo de entrega: KTP 532nm
  • Spot: 7MM
  • Energia: 0.5J
  • Frequência: 1-1.5 Hz
  • Procedimento: EM VARREDURA

Passo 4 (ANTI-INFLAMATÓRIO)

  • Ponteira: R28
  • Modo de entrega: FRAC3®
  • Spot: 4MM
  • Energia: 10J
  • Frequência: 10 Hz
  • Procedimento: 5 A 10 PASSADAS EM VARREDURA

Passo 5 (FRACIONADA)

  • Ponteira: FS20A
  • Modo de entrega: FRACTAT®
  • Spot: 9x9MM
  • Energia: 20-30J
  • Frequência: 1.5-2 Hz
  • Procedimento: 1 PASSADA CRUZADA

Tratamento: Benignos

Protocolo: Verrugas Viral

Passo 1

  • Ponteira: R28
  • Modo de entrega: VERSA3®
  • Spot: 3MM
  • Energia: 120-140J
  • Frequência: 1 Hz
  • Procedimento: PONTUAL Com resfriamento

Protocolo: Onicomicose

Passo 1

  • Ponteira: R28
  • Modo de entrega: VERSA3®
  • Spot: 4MM
  • Energia: 35J
  • Frequência: 1.5-2 Hz
  • Procedimento: 3 PASSADAS POR TODA UNHA

Tratamento: Cicatrizes

Protocolo: Cicatrizes Hipertróficas, Pós Cirúrgicas e Estrias Recentes

Passo 1

  • Ponteira: R28
  • Modo de entrega: VERSA3®
  • Spot: 5MM
  • Energia: 35J
  • Frequência: 1 Hz
  • Procedimento: 1 PASSADA CRUZADA

Passo 2 (ANTI-INFLAMATÓRIA)

  • Ponteira: R28
  • Modo de entrega: FRAC3®
  • Spot: 4MM
  • Energia: 10J
  • Frequência: 10 Hz
  • Procedimento: 5 A 10 PASSADAS EM VARREDURA

Passo 3 (FRACIONADA)

  • Ponteira: FS20A
  • Modo de entrega: FRACTAT®
  • Spot: 9X9MM
  • Energia: 50-75J
  • Frequência: 2 Hz
  • Procedimento: 2 PASSADAS

Protocolo: Cicatrizes Artróficas, Estrias e Acne

Passo 1 (NEOCOLAGENESE)

  • Ponteira: R28
  • Modo de entrega: FRAC3®
  • Spot: 5MM
  • Energia: 30J
  • Frequência: 1.5-2 Hz
  • Procedimento: 4-6 PASSADAS

Passo 2 (FRACIONADA)

  • Ponteira: FS20A
  • Modo de entrega: FRACTAT®
  • Spot: 9X9MM
  • Energia: 30J
  • Frequência: MAQX-5
  • Procedimento: 2 PASSADAS

Protocolo: Acne Inflamatória

Passo 1 (ACNE)

  • Ponteira: R28
  • Modo de entrega: VERSA3®
  • Spot: 4MM
  • Energia: 35-40 J/cm²
  • Frequência: 1 Hz
  • Procedimento: PONTUAL

Passo 2 (ANTI-INFLAMATÓRIA)

  • Ponteira: R28
  • Modo de entrega: FRAC3®
  • Spot: 4MM
  • Energia: 10-12J
  • Frequência: 8-10 Hz
  • Procedimento: 4-5 PASSADAS CRUZADAS

Tratamento: Depilação

Protocolo: Remoção de Pelos

Passo 1

  • Ponteira: R28
  • Modo de entrega: FRAC3®
  • Spot: 5MM
  • Energia: 20-30J
  • Frequência: 1.5-2.5 Hz
  • Procedimento: 2 PASSADAS
import { AiAgent } from '../src/services/AiAgent';
import { extractJsonOutput } from './utils/TestHelpers';
describe('Validação dos Protocolos', () => {
const agent = new AiAgent();
describe('Tratamento: Rejuvenescimento', () => {
it('Protocolo: Rejuvenescimento', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Rejuvenescimento, do tratamento Rejuvenescimento");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(2);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('FRAC3®');
expect(protocolo['passos'][0].descricao).toContain('5MM');
expect(protocolo['passos'][0].descricao).toContain('30J');
expect(protocolo['passos'][0].descricao).toContain('1.5 Hz');
expect(protocolo['passos'][0].descricao).toContain('1 PASSADA CRUZADA');
expect(protocolo['passos'][1]).toHaveProperty('numero');
expect(protocolo['passos'][1]).toHaveProperty('descricao');
expect(protocolo['passos'][1].descricao).toContain('FS20A');
expect(protocolo['passos'][1].descricao).toContain('FRACTAT®');
expect(protocolo['passos'][1].descricao).toContain('9X9MM');
expect(protocolo['passos'][1].descricao).toContain('20J');
expect(protocolo['passos'][1].descricao).toContain('MAQX-2');
expect(protocolo['passos'][1].descricao).toContain('2 PASSADAS CRUZADAS');
});
it('Protocolo: Rejuvenescimento (Pescoço e Colo)', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Rejuvenescimento (Pescoço e Colo), do tratamento Rejuvenescimento");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(1);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('FS20A');
expect(protocolo['passos'][0].descricao).toContain('FRACTAT®');
expect(protocolo['passos'][0].descricao).toContain('9X9MM');
expect(protocolo['passos'][0].descricao).toContain('MAQX-2 20J');
expect(protocolo['passos'][0].descricao).toContain('1.5 Hz');
expect(protocolo['passos'][0].descricao).toContain('1 PASSADA CRUZADA');
});
});
describe('Tratamento: Pigmentação', () => {
it('Protocolo: Remoção de Tattoo (Dark)', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Remoção de Tattoo (Dark), do tratamento Pigmentação");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(2);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('FS20A');
expect(protocolo['passos'][0].descricao).toContain('MAQX-10');
expect(protocolo['passos'][0].descricao).toContain('9X9MM');
expect(protocolo['passos'][0].descricao).toContain('75J');
expect(protocolo['passos'][0].descricao).toContain('1.5 Hz');
expect(protocolo['passos'][0].descricao).toContain('2 PASSADAS NA TATTOO');
expect(protocolo['passos'][1]).toHaveProperty('numero');
expect(protocolo['passos'][1]).toHaveProperty('descricao');
expect(protocolo['passos'][1].descricao).toContain('R28');
expect(protocolo['passos'][1].descricao).toContain('MAQX-1');
expect(protocolo['passos'][1].descricao).toContain('5MM');
expect(protocolo['passos'][1].descricao).toContain('2.5J');
expect(protocolo['passos'][1].descricao).toContain('1 Hz');
expect(protocolo['passos'][1].descricao).toContain('1 PASSADAS FROSTING');
});
it('Protocolo: Remoção de Tattoo (Light)', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Remoção de Tattoo (Light), do tratamento Pigmentação");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(2);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('FS20A');
expect(protocolo['passos'][0].descricao).toContain('MAQX-10');
expect(protocolo['passos'][0].descricao).toContain('9X9MM');
expect(protocolo['passos'][0].descricao).toContain('75J');
expect(protocolo['passos'][0].descricao).toContain('1.5 Hz');
expect(protocolo['passos'][0].descricao).toContain('2 PASSADAS NA TATTOO');
expect(protocolo['passos'][1]).toHaveProperty('numero');
expect(protocolo['passos'][1]).toHaveProperty('descricao');
expect(protocolo['passos'][1].descricao).toContain('R28');
expect(protocolo['passos'][1].descricao).toContain('Nd:YAG');
expect(protocolo['passos'][1].descricao).toContain('5MM');
expect(protocolo['passos'][1].descricao).toContain('1J');
expect(protocolo['passos'][1].descricao).toContain('1 Hz');
expect(protocolo['passos'][1].descricao).toContain('1 PASSADAS FROSTING');
});
it('Protocolo: Green Toning (Superficial)', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Green Toning (Superficial), do tratamento Pigmentação");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(2);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('MAQX-1');
expect(protocolo['passos'][0].descricao).toContain('8MM');
expect(protocolo['passos'][0].descricao).toContain('1.4-1.8J');
expect(protocolo['passos'][0].descricao).toContain('4.5 Hz');
expect(protocolo['passos'][0].descricao).toContain('2-3 PASSADAS EM VARREDURA FULL FACE');
expect(protocolo['passos'][1]).toHaveProperty('numero');
expect(protocolo['passos'][1]).toHaveProperty('descricao');
expect(protocolo['passos'][1].descricao).toContain('R28');
expect(protocolo['passos'][1].descricao).toContain('KTP 532nm');
expect(protocolo['passos'][1].descricao).toContain('4MM');
expect(protocolo['passos'][1].descricao).toContain('0.5J');
expect(protocolo['passos'][1].descricao).toContain('3 Hz');
expect(protocolo['passos'][1].descricao).toContain('1 PASSADA CRUZADA EM VARREDURA');
});
it('Protocolo: Hipercromia', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Hipercromia, do tratamento Pigmentação");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(2);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('MAQX-1');
expect(protocolo['passos'][0].descricao).toContain('8MM');
expect(protocolo['passos'][0].descricao).toContain('1.4-1.8J');
expect(protocolo['passos'][0].descricao).toContain('4.5 Hz');
expect(protocolo['passos'][0].descricao).toContain('2-3 PASSADAS CRUZADAS');
expect(protocolo['passos'][1]).toHaveProperty('numero');
expect(protocolo['passos'][1]).toHaveProperty('descricao');
expect(protocolo['passos'][1].descricao).toContain('FS20A');
expect(protocolo['passos'][1].descricao).toContain('Nd:YAG 1064nm');
expect(protocolo['passos'][1].descricao).toContain('20-30J');
expect(protocolo['passos'][1].descricao).toContain('1.5-2 Hz');
expect(protocolo['passos'][1].descricao).toContain('1 PASSADA CRUZADA');
});
it('Protocolo: Nevo de Ota', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Nevo de Ota, do tratamento Pigmentação");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(1);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('MAQX-1');
expect(protocolo['passos'][0].descricao).toContain('8MM');
expect(protocolo['passos'][0].descricao).toContain('4J');
expect(protocolo['passos'][0].descricao).toContain('4.5 Hz');
expect(protocolo['passos'][0].descricao).toContain('6 PASSADAS EM VARREDURA');
});
it('Protocolo: Lentigo Solar & Melanose Solar & Queratose Seborreica Plana', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Lentigo Solar & Melanose Solar & Queratose Seborreica Plana, do tratamento Pigmentação");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(1);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('MAQX-1');
expect(protocolo['passos'][0].descricao).toContain('4MM');
expect(protocolo['passos'][0].descricao).toContain('1.2-1.5J');
expect(protocolo['passos'][0].descricao).toContain('1 Hz');
expect(protocolo['passos'][0].descricao).toContain('PONTUAL NAS MANCHAS');
});
it('Protocolo: Manchas - Café com Leite', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Manchas - Café com Leite, do tratamento Pigmentação");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(2);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('VERDE MAQX-1');
expect(protocolo['passos'][0].descricao).toContain('4MM');
expect(protocolo['passos'][0].descricao).toContain('6-10J');
expect(protocolo['passos'][0].descricao).toContain('1 Hz');
expect(protocolo['passos'][0].descricao).toContain('PONTUAL NAS MANCHAS');
expect(protocolo['passos'][1]).toHaveProperty('numero');
expect(protocolo['passos'][1]).toHaveProperty('descricao');
expect(protocolo['passos'][1].descricao).toContain('R28');
expect(protocolo['passos'][1].descricao).toContain('Qs KTP MAQX-1');
expect(protocolo['passos'][1].descricao).toContain('4MM');
expect(protocolo['passos'][1].descricao).toContain('1.2-1.5J');
expect(protocolo['passos'][1].descricao).toContain('1 Hz');
expect(protocolo['passos'][1].descricao).toContain('PONTUAL NAS MANCHAS');
});
it('Protocolo: PIH - Hiperpigmentação Pós Inflamatória', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: PIH - Hiperpigmentação Pós Inflamatória, do tratamento Pigmentação");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(3);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('VERSA3®');
expect(protocolo['passos'][0].descricao).toContain('5MM');
expect(protocolo['passos'][0].descricao).toContain('35J');
expect(protocolo['passos'][0].descricao).toContain('1 Hz');
expect(protocolo['passos'][0].descricao).toContain('1 PASSADA CRUZADA');
expect(protocolo['passos'][1]).toHaveProperty('numero');
expect(protocolo['passos'][1]).toHaveProperty('descricao');
expect(protocolo['passos'][1].descricao).toContain('R28');
expect(protocolo['passos'][1].descricao).toContain('MAQX-1');
expect(protocolo['passos'][1].descricao).toContain('6MM e 8MM');
expect(protocolo['passos'][1].descricao).toContain('1.4-1.8J');
expect(protocolo['passos'][1].descricao).toContain('4.5 Hz');
expect(protocolo['passos'][1].descricao).toContain('Spot 6MM (FULL FACE): 4 PASSADAS EM VARREDURA, Spot 8MM: 2 PASSADAS NO MELASMA');
expect(protocolo['passos'][2]).toHaveProperty('numero');
expect(protocolo['passos'][2]).toHaveProperty('descricao');
expect(protocolo['passos'][2].descricao).toContain('R58');
expect(protocolo['passos'][2].descricao).toContain('VERDE®');
expect(protocolo['passos'][2].descricao).toContain('4MM');
expect(protocolo['passos'][2].descricao).toContain('4-6J');
expect(protocolo['passos'][2].descricao).toContain('1 Hz');
expect(protocolo['passos'][2].descricao).toContain('PONTUAL NAS MANCHAS');
});
it('Protocolo: Melasma Pigmentar', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Melasma Pigmentar, do tratamento Pigmentação");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(2);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('MAQX-1');
expect(protocolo['passos'][0].descricao).toContain('6MM e 8MM');
expect(protocolo['passos'][0].descricao).toContain('1.4-1.8J');
expect(protocolo['passos'][0].descricao).toContain('4.5 Hz');
expect(protocolo['passos'][0].descricao).toContain('Spot 6MM (FULL FACE): 4 PASSADAS EM VARREDURA, Spot 8MM: 2 PASSADAS NO MELASMA');
expect(protocolo['passos'][1]).toHaveProperty('numero');
expect(protocolo['passos'][1]).toHaveProperty('descricao');
expect(protocolo['passos'][1].descricao).toContain('FS20A');
expect(protocolo['passos'][1].descricao).toContain('FRACTAT MAQX-5');
expect(protocolo['passos'][1].descricao).toContain('9x9MM');
expect(protocolo['passos'][1].descricao).toContain('10J');
expect(protocolo['passos'][1].descricao).toContain('1.5 Hz');
expect(protocolo['passos'][1].descricao).toContain('2 PASSADAS NO MELASMA');
});
// Continua com mais protocolos...
});
describe('Tratamento: Vascular', () => {
it('Protocolo: Telangiectasia', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Telangiectasia, do tratamento Vascular");
const protocolo = extractJsonOutput(result.response);
try {
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(1);
} catch (error) {
console.log(result.response);
throw error;
}
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('VERSA3®');
expect(protocolo['passos'][0].descricao).toContain('2MM');
expect(protocolo['passos'][0].descricao).toContain('160 J/cm²');
expect(protocolo['passos'][0].descricao).toContain('1 Hz');
expect(protocolo['passos'][0].descricao).toContain('PONTUAL');
});
it('Protocolo: Spider Angioma', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Spider Angioma, do tratamento Vascular");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(2);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('MAQX-1');
expect(protocolo['passos'][0].descricao).toContain('8MM');
expect(protocolo['passos'][0].descricao).toContain('1.8-2J');
expect(protocolo['passos'][0].descricao).toContain('4.5 Hz');
expect(protocolo['passos'][0].descricao).toContain('ATÉ FROSTING');
expect(protocolo['passos'][1]).toHaveProperty('numero');
expect(protocolo['passos'][1]).toHaveProperty('descricao');
expect(protocolo['passos'][1].descricao).toContain('R58');
expect(protocolo['passos'][1].descricao).toContain('VERDE®');
expect(protocolo['passos'][1].descricao).toContain('3MM');
expect(protocolo['passos'][1].descricao).toContain('4-6J');
expect(protocolo['passos'][1].descricao).toContain('2-4 Hz');
expect(protocolo['passos'][1].descricao).toContain('FROSTING');
});
// ERRO: divergencia no passo 2, no spot
it('Protocolo: Angioma Rubi', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Angioma Rubi, do tratamento Vascular");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(2);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('VERSA3®');
expect(protocolo['passos'][0].descricao).toContain('4MM');
expect(protocolo['passos'][0].descricao).toContain('90-120J');
expect(protocolo['passos'][0].descricao).toContain('1 Hz');
expect(protocolo['passos'][0].descricao).toContain('PONTUAL');
expect(protocolo['passos'][1]).toHaveProperty('numero');
expect(protocolo['passos'][1]).toHaveProperty('descricao');
expect(protocolo['passos'][1].descricao).toContain('R58');
expect(protocolo['passos'][1].descricao).toContain('VERDE®');
expect(protocolo['passos'][1].descricao).toContain('4MM');
expect(protocolo['passos'][1].descricao).toContain('6-8 J');
expect(protocolo['passos'][1].descricao).toContain('1 Hz');
expect(protocolo['passos'][1].descricao).toContain('PONTUAL');
});
// ERRO: divergencia de valores no segundo passo
it('Protocolo: Lago Venoso', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Lago Venoso, do tratamento Vascular");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(2);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('VERSA3®');
expect(protocolo['passos'][0].descricao).toContain('4MM');
expect(protocolo['passos'][0].descricao).toContain('90-120J');
expect(protocolo['passos'][0].descricao).toContain('1-1.5 Hz');
expect(protocolo['passos'][0].descricao).toContain('PONTUAL');
expect(protocolo['passos'][1]).toHaveProperty('numero');
expect(protocolo['passos'][1]).toHaveProperty('descricao');
expect(protocolo['passos'][1].descricao).toContain('R58');
expect(protocolo['passos'][1].descricao).toContain('VERDE®');
expect(protocolo['passos'][1].descricao).toContain('3MM');
expect(protocolo['passos'][1].descricao).toContain('4-8J');
expect(protocolo['passos'][1].descricao).toContain('1-1.5 Hz');
expect(protocolo['passos'][1].descricao).toContain('ESBRANQUIÇADO OU FROSTING');
});
// ERRO: só está vindo 2 passos
it('Protocolo: Rosácea', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Rosácea, do tratamento Vascular");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(3);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('VERSA3®');
expect(protocolo['passos'][0].descricao).toContain('5MM');
expect(protocolo['passos'][0].descricao).toContain('35 J/cm²');
expect(protocolo['passos'][0].descricao).toContain('1 Hz');
expect(protocolo['passos'][0].descricao).toContain('1 PASSADA CRUZADA (#) Com resfriamento');
expect(protocolo['passos'][1]).toHaveProperty('numero');
expect(protocolo['passos'][1]).toHaveProperty('descricao');
expect(protocolo['passos'][1].descricao).toContain('R28');
expect(protocolo['passos'][1].descricao).toContain('VERSA3®');
expect(protocolo['passos'][1].descricao).toContain('4MM');
expect(protocolo['passos'][1].descricao).toContain('170-190J');
expect(protocolo['passos'][1].descricao).toContain('1-1.5 Hz');
expect(protocolo['passos'][1].descricao).toContain('PONTUAL Com resfriamento');
expect(protocolo['passos'][2]).toHaveProperty('numero');
expect(protocolo['passos'][2]).toHaveProperty('descricao');
expect(protocolo['passos'][2].descricao).toContain('R28');
expect(protocolo['passos'][2].descricao).toContain('FRAC3®');
expect(protocolo['passos'][2].descricao).toContain('4MM');
expect(protocolo['passos'][2].descricao).toContain('10J');
expect(protocolo['passos'][2].descricao).toContain('10 Hz');
expect(protocolo['passos'][2].descricao).toContain('5 A 10 PASSADAS OU 5 EM VARREDURA');
});
it('Protocolo: PWS (Parkes Weber Syndrome)', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: PWS (Parkes Weber Syndrome), do tratamento Vascular");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(2);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('VERSA®');
expect(protocolo['passos'][0].descricao).toContain('2MM');
expect(protocolo['passos'][0].descricao).toContain('120-150J');
expect(protocolo['passos'][0].descricao).toContain('1-1.5 Hz');
expect(protocolo['passos'][0].descricao).toContain('PONTUAL');
expect(protocolo['passos'][1]).toHaveProperty('numero');
expect(protocolo['passos'][1]).toHaveProperty('descricao');
expect(protocolo['passos'][1].descricao).toContain('R58');
expect(protocolo['passos'][1].descricao).toContain('VERDE®');
expect(protocolo['passos'][1].descricao).toContain('3MM');
expect(protocolo['passos'][1].descricao).toContain('4-6J');
expect(protocolo['passos'][1].descricao).toContain('1-1.5 Hz');
expect(protocolo['passos'][1].descricao).toContain('PONTUAL');
});
// ERRO: esta retornadno 3 passos a maioria das vezes
it('Protocolo: Poiquilodermia', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Poiquilodermia, do tratamento Vascular");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(5);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('VERSA3®');
expect(protocolo['passos'][0].descricao).toContain('5MM');
expect(protocolo['passos'][0].descricao).toContain('35 J/cm²');
expect(protocolo['passos'][0].descricao).toContain('1-1.5 Hz');
expect(protocolo['passos'][0].descricao).toContain('1 PASSADA CRUZADA');
expect(protocolo['passos'][1]).toHaveProperty('numero');
expect(protocolo['passos'][1]).toHaveProperty('descricao');
expect(protocolo['passos'][1].descricao).toContain('R28');
expect(protocolo['passos'][1].descricao).toContain('MAQX1');
expect(protocolo['passos'][1].descricao).toContain('6MM ou 7MM');
expect(protocolo['passos'][1].descricao).toContain('1.7-2J');
expect(protocolo['passos'][1].descricao).toContain('4.5 Hz');
expect(protocolo['passos'][1].descricao).toContain('6 PASSADAS EM VARREDURA');
expect(protocolo['passos'][2]).toHaveProperty('numero');
expect(protocolo['passos'][2]).toHaveProperty('descricao');
expect(protocolo['passos'][2].descricao).toContain('R28');
expect(protocolo['passos'][2].descricao).toContain('KTP 532nm');
expect(protocolo['passos'][2].descricao).toContain('7MM');
expect(protocolo['passos'][2].descricao).toContain('0.5J');
expect(protocolo['passos'][2].descricao).toContain('1-1.5 Hz');
expect(protocolo['passos'][2].descricao).toContain('EM VARREDURA');
expect(protocolo['passos'][3]).toHaveProperty('numero');
expect(protocolo['passos'][3]).toHaveProperty('descricao');
expect(protocolo['passos'][3].descricao).toContain('R28');
expect(protocolo['passos'][3].descricao).toContain('FRAC3®');
expect(protocolo['passos'][3].descricao).toContain('4MM');
expect(protocolo['passos'][3].descricao).toContain('10J');
expect(protocolo['passos'][3].descricao).toContain('10 Hz');
expect(protocolo['passos'][3].descricao).toContain('5 A 10 PASSADAS EM VARREDURA');
expect(protocolo['passos'][4]).toHaveProperty('numero');
expect(protocolo['passos'][4]).toHaveProperty('descricao');
expect(protocolo['passos'][4].descricao).toContain('FS20A');
expect(protocolo['passos'][4].descricao).toContain('FRACTAT®');
expect(protocolo['passos'][4].descricao).toContain('9x9MM');
expect(protocolo['passos'][4].descricao).toContain('20-30J');
expect(protocolo['passos'][4].descricao).toContain('1.5-2 Hz');
expect(protocolo['passos'][4].descricao).toContain('1 PASSADA CRUZADA');
});
});
describe('Tratamento: Benignos', () => {
// it('Protocolo: Verrugas Viral', async () => {
// const result = await agent.ask("Gostaria dos detalhes do Protocolo: Verrugas Viral, do tratamento Benignos");
// const protocolo = extractJsonOutput(result.response);
// expect(protocolo).toHaveProperty('tratamento');
// expect(protocolo).toHave
it('Protocolo: Onicomicose', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Onicomicose, do tratamento Benignos");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(1);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('VERSA3®');
expect(protocolo['passos'][0].descricao).toContain('4MM');
expect(protocolo['passos'][0].descricao).toContain('35J');
expect(protocolo['passos'][0].descricao).toContain('1.5-2 Hz');
expect(protocolo['passos'][0].descricao).toContain('3 PASSADAS POR TODA UNHA');
});
describe('Tratamento: Cicatrizes', () => {
it('Protocolo: Cicatrizes Hipertróficas, Pós Cirúrgicas e Estrias Recentes', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Cicatrizes Hipertróficas, Pós Cirúrgicas e Estrias Recentes, do tratamento Cicatrizes");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(3);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('VERSA3®');
expect(protocolo['passos'][0].descricao).toContain('5MM');
expect(protocolo['passos'][0].descricao).toContain('35J');
expect(protocolo['passos'][0].descricao).toContain('1 Hz');
expect(protocolo['passos'][0].descricao).toContain('1 PASSADA CRUZADA');
expect(protocolo['passos'][1]).toHaveProperty('numero');
expect(protocolo['passos'][1]).toHaveProperty('descricao');
expect(protocolo['passos'][1].descricao).toContain('R28');
expect(protocolo['passos'][1].descricao).toContain('FRAC3®');
expect(protocolo['passos'][1].descricao).toContain('4MM');
expect(protocolo['passos'][1].descricao).toContain('10J');
expect(protocolo['passos'][1].descricao).toContain('10 Hz');
expect(protocolo['passos'][1].descricao).toContain('5 A 10 PASSADAS EM VARREDURA');
expect(protocolo['passos'][2]).toHaveProperty('numero');
expect(protocolo['passos'][2]).toHaveProperty('descricao');
expect(protocolo['passos'][2].descricao).toContain('FS20A');
expect(protocolo['passos'][2].descricao).toContain('FRACTAT®');
expect(protocolo['passos'][2].descricao).toContain('9X9MM');
expect(protocolo['passos'][2].descricao).toContain('50-75J');
expect(protocolo['passos'][2].descricao).toContain('2 Hz');
expect(protocolo['passos'][2].descricao).toContain('2 PASSADAS');
});
it('Protocolo: Cicatrizes Artróficas, Estrias e Acne', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Cicatrizes Artróficas, Estrias e Acne, do tratamento Cicatrizes");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(2);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('FRAC3®');
expect(protocolo['passos'][0].descricao).toContain('5MM');
expect(protocolo['passos'][0].descricao).toContain('30J');
expect(protocolo['passos'][0].descricao).toContain('1.5-2 Hz');
expect(protocolo['passos'][0].descricao).toContain('4-6 PASSADAS');
expect(protocolo['passos'][1]).toHaveProperty('numero');
expect(protocolo['passos'][1]).toHaveProperty('descricao');
expect(protocolo['passos'][1].descricao).toContain('FS20A');
expect(protocolo['passos'][1].descricao).toContain('FRACTAT®');
expect(protocolo['passos'][1].descricao).toContain('9X9MM');
expect(protocolo['passos'][1].descricao).toContain('30J');
expect(protocolo['passos'][1].descricao).toContain('MAQX-5');
expect(protocolo['passos'][1].descricao).toContain('2 PASSADAS');
});
it('Protocolo: Acne Inflamatória', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Acne Inflamatória, do tratamento Cicatrizes");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(2);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('VERSA3®');
expect(protocolo['passos'][0].descricao).toContain('4MM');
expect(protocolo['passos'][0].descricao).toContain('35-40 J/cm²');
expect(protocolo['passos'][0].descricao).toContain('1 Hz');
expect(protocolo['passos'][0].descricao).toContain('PONTUAL');
expect(protocolo['passos'][1]).toHaveProperty('numero');
expect(protocolo['passos'][1]).toHaveProperty('descricao');
expect(protocolo['passos'][1].descricao).toContain('R28');
expect(protocolo['passos'][1].descricao).toContain('FRAC3®');
expect(protocolo['passos'][1].descricao).toContain('4MM');
expect(protocolo['passos'][1].descricao).toContain('10-12J');
expect(protocolo['passos'][1].descricao).toContain('8-10 Hz');
expect(protocolo['passos'][1].descricao).toContain('4-5 PASSADAS CRUZADAS');
});
});
describe('Tratamento: Depilação', () => {
it('Protocolo: Remoção de Pelos', async () => {
const result = await agent.ask("Gostaria dos detalhes do Protocolo: Remoção de Pelos, do tratamento Depilação");
const protocolo = extractJsonOutput(result.response);
expect(protocolo).toHaveProperty('tratamento');
expect(protocolo).toHaveProperty('nome');
expect(protocolo).toHaveProperty('passos');
expect(protocolo.passos).toHaveLength(1);
expect(protocolo['passos'][0]).toHaveProperty('numero');
expect(protocolo['passos'][0]).toHaveProperty('descricao');
expect(protocolo['passos'][0].descricao).toContain('R28');
expect(protocolo['passos'][0].descricao).toContain('FRAC3®');
expect(protocolo['passos'][0].descricao).toContain('5MM');
expect(protocolo['passos'][0].descricao).toContain('20-30J');
expect(protocolo['passos'][0].descricao).toContain('1.5-2.5 Hz');
expect(protocolo['passos'][0].descricao).toContain('2 PASSADAS');
});
});
});
});
@ricardojlrufino
Copy link
Author

ricardojlrufino commented Nov 2, 2024

Resultados com gpt-4o-mini

FAIL test/validacaoEtapasProtocolos.test.ts (66.542 s)
Validação dos Protocolos
Tratamento: Rejuvenescimento
✓ Protocolo: Rejuvenescimento (4740 ms)
✕ Protocolo: Rejuvenescimento (Pescoço e Colo) (2220 ms)
Tratamento: Pigmentação
✓ Protocolo: Remoção de Tattoo (Dark) (8244 ms)
✓ Protocolo: Remoção de Tattoo (Light) (5037 ms)
✕ Protocolo: Green Toning (Superficial) (840 ms)
✕ Protocolo: Hipercromia (776 ms)
✕ Protocolo: Nevo de Ota (1845 ms)
✕ Protocolo: Lentigo Solar & Melanose Solar & Queratose Seborreica Plana (891 ms)
✕ Protocolo: Manchas - Café com Leite (929 ms)
✕ Protocolo: PIH - Hiperpigmentação Pós Inflamatória (910 ms)
✕ Protocolo: Melasma Pigmentar (724 ms)
Tratamento: Vascular
✓ Protocolo: Telangiectasia (1744 ms)
✓ Protocolo: Spider Angioma (3080 ms)
✓ Protocolo: Angioma Rubi (2611 ms)
✓ Protocolo: Lago Venoso (3096 ms)
✕ Protocolo: Rosácea (4201 ms)
✓ Protocolo: PWS (Parkes Weber Syndrome) (3010 ms)
✓ Protocolo: Poiquilodermia (6587 ms)
Tratamento: Benignos
✓ Protocolo: Onicomicose (2157 ms)
Tratamento: Cicatrizes
✓ Protocolo: Cicatrizes Hipertróficas, Pós Cirúrgicas e Estrias Recentes (8201 ms)
✕ Protocolo: Cicatrizes Artróficas, Estrias e Acne (913 ms)
✕ Protocolo: Acne Inflamatória (1014 ms)
Tratamento: Depilação
✓ Protocolo: Remoção de Pelos (1641 ms)

Test Suites: 1 failed, 1 total
Tests: 11 failed, 12 passed, 23 total
Snapshots: 0 total
Time: 66.579 s, estimated 165 s

@ricardojlrufino
Copy link
Author

claude-3-5-sonnet-20241022

PASS test/validacaoEtapasProtocolos.test.ts (164.501 s)
Validação dos Protocolos
Tratamento: Rejuvenescimento
✓ Protocolo: Rejuvenescimento (6973 ms)
✓ Protocolo: Rejuvenescimento (Pescoço e Colo) (3222 ms)
Tratamento: Pigmentação
✓ Protocolo: Remoção de Tattoo (Dark) (5112 ms)
✓ Protocolo: Remoção de Tattoo (Light) (5110 ms)
✓ Protocolo: Green Toning (Superficial) (5143 ms)
✓ Protocolo: Hipercromia (5624 ms)
✓ Protocolo: Nevo de Ota (3220 ms)
✓ Protocolo: Lentigo Solar & Melanose Solar & Queratose Seborreica Plana (3168 ms)
✓ Protocolo: Manchas - Café com Leite (4691 ms)
✓ Protocolo: PIH - Hiperpigmentação Pós Inflamatória (6622 ms)
✓ Protocolo: Melasma Pigmentar (5929 ms)
Tratamento: Vascular
✓ Protocolo: Telangiectasia (2943 ms)
✓ Protocolo: Spider Angioma (13037 ms)
✓ Protocolo: Angioma Rubi (4514 ms)
✓ Protocolo: Lago Venoso (14981 ms)
✓ Protocolo: Rosácea (7106 ms)
✓ Protocolo: PWS (Parkes Weber Syndrome) (13122 ms)
✓ Protocolo: Poiquilodermia (10651 ms)
Tratamento: Benignos
✓ Protocolo: Onicomicose (2799 ms)
Tratamento: Cicatrizes
✓ Protocolo: Cicatrizes Hipertróficas, Pós Cirúrgicas e Estrias Recentes (18654 ms)
✓ Protocolo: Cicatrizes Artróficas, Estrias e Acne (4879 ms)
✓ Protocolo: Acne Inflamatória (12949 ms)
Tratamento: Depilação
✓ Protocolo: Remoção de Pelos (2975 ms)

Test Suites: 1 passed, 1 total
Tests: 23 passed, 23 total
Snapshots: 0 total
Time: 164.526 s

@ricardojlrufino
Copy link
Author

Model: claude-3-5-sonnet-20241022 (2 execution)

FAIL test/validacaoEtapasProtocolos.test.ts (180.179 s)
Validação dos Protocolos
Tratamento: Rejuvenescimento
✓ Protocolo: Rejuvenescimento (7576 ms)
✓ Protocolo: Rejuvenescimento (Pescoço e Colo) (3354 ms)
Tratamento: Pigmentação
✓ Protocolo: Remoção de Tattoo (Dark) (4666 ms)
✓ Protocolo: Remoção de Tattoo (Light) (4504 ms)
✓ Protocolo: Green Toning (Superficial) (5521 ms)
✓ Protocolo: Hipercromia (5389 ms)
✓ Protocolo: Nevo de Ota (2990 ms)
✓ Protocolo: Lentigo Solar & Melanose Solar & Queratose Seborreica Plana (3543 ms)
✓ Protocolo: Manchas - Café com Leite (4915 ms)
✕ Protocolo: PIH - Hiperpigmentação Pós Inflamatória (7642 ms)
✓ Protocolo: Melasma Pigmentar (12492 ms)
Tratamento: Vascular
✓ Protocolo: Telangiectasia (3093 ms)
✓ Protocolo: Spider Angioma (15959 ms)
✓ Protocolo: Angioma Rubi (4482 ms)
✓ Protocolo: Lago Venoso (15031 ms)
✓ Protocolo: Rosácea (6433 ms)
✓ Protocolo: PWS (Parkes Weber Syndrome) (13602 ms)
✕ Protocolo: Poiquilodermia (7314 ms)
Tratamento: Benignos
✓ Protocolo: Onicomicose (11442 ms)
Tratamento: Cicatrizes
✓ Protocolo: Cicatrizes Hipertróficas, Pós Cirúrgicas e Estrias Recentes (7094 ms)
✓ Protocolo: Cicatrizes Artróficas, Estrias e Acne (13777 ms)
✓ Protocolo: Acne Inflamatória (4729 ms)
Tratamento: Depilação
✓ Protocolo: Remoção de Pelos (13539 ms)

Test Suites: 1 failed, 1 total
Tests: 2 failed, 21 passed, 23 total
Snapshots: 0 total
Time: 180.204 s

@ricardojlrufino
Copy link
Author

Model: claude-3-haiku-20240307

FAIL test/validacaoEtapasProtocolos.test.ts (120.413 s)
Validação dos Protocolos
Tratamento: Rejuvenescimento
✓ Protocolo: Rejuvenescimento (3780 ms)
✓ Protocolo: Rejuvenescimento (Pescoço e Colo) (1851 ms)
Tratamento: Pigmentação
✓ Protocolo: Remoção de Tattoo (Dark) (3512 ms)
✓ Protocolo: Remoção de Tattoo (Light) (3201 ms)
✓ Protocolo: Green Toning (Superficial) (3788 ms)
✓ Protocolo: Hipercromia (3548 ms)
✓ Protocolo: Nevo de Ota (2529 ms)
✓ Protocolo: Lentigo Solar & Melanose Solar & Queratose Seborreica Plana (2555 ms)
✓ Protocolo: Manchas - Café com Leite (3570 ms)
✓ Protocolo: PIH - Hiperpigmentação Pós Inflamatória (4361 ms)
✓ Protocolo: Melasma Pigmentar (4038 ms)
Tratamento: Vascular
✓ Protocolo: Telangiectasia (1875 ms)
✓ Protocolo: Spider Angioma (2162 ms)
✓ Protocolo: Angioma Rubi (13386 ms)
✓ Protocolo: Lago Venoso (2614 ms)
✕ Protocolo: Rosácea (14656 ms)
✓ Protocolo: PWS (Parkes Weber Syndrome) (2250 ms)
✓ Protocolo: Poiquilodermia (14212 ms)
Tratamento: Benignos
✓ Protocolo: Onicomicose (2003 ms)
Tratamento: Cicatrizes
✓ Protocolo: Cicatrizes Hipertróficas, Pós Cirúrgicas e Estrias Recentes (12261 ms)
✓ Protocolo: Cicatrizes Artróficas, Estrias e Acne (3698 ms)
✓ Protocolo: Acne Inflamatória (11667 ms)
Tratamento: Depilação
✓ Protocolo: Remoção de Pelos (1855 ms)

Test Suites: 1 failed, 1 total
Tests: 1 failed, 22 passed, 23 total
Snapshots: 0 total
Time: 120.436 s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment