> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nextmed.med.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Introdução técnica

> Overview técnico da aplicação NextMed Webapp PWA.

## NextMed Webapp PWA

O `nextmed-webapp-pwa` e uma aplicacao web para o fluxo medico da NextMed. Ela centraliza autenticacao, cadastro de profissionais, onboarding, criacao e acompanhamento de encaminhamentos, chat medico, anexos de exames, videochamadas e recursos de IA para apoio na anamnese e avaliacao clinica.

## Stack principal

* **Runtime:** Next.js 14.2 com App Router e React 18.
* **Linguagem:** TypeScript.
* **UI:** Tailwind CSS, Radix UI, componentes locais em `src/package/nextmed-themes` e bibliotecas de icones.
* **Estado e dados:** Zustand, TanStack React Query, Firebase client SDK e chamadas HTTP via Axios.
* **PWA:** Serwist, com service worker em `src/lib/sw.ts`.
* **Observabilidade:** Sentry, PostHog e Google Analytics.
* **Video:** Dyte, por meio de route handlers internos.
* **IA:** OpenAI para chat medico, sugestoes, transcricao e anamnese.
* **Testes:** Vitest, Testing Library e MSW.

## Dominios funcionais

* **Autenticacao e sessao:** login `USERPASS`, persistencia de token em cookies, refresh token e logout.
* **Cadastro e ativacao:** cadastro medico, validacao de dados, ativacao de conta e reenvio de codigo.
* **Encaminhamentos:** criacao de solicitacoes, selecao de instituicao/unidade/especialista, acompanhamento de status, avaliacao medica e upload de exames.
* **Atendimento:** tela de detalhes, chat, anexos, relatorio medico e videochamada.
* **Instituicoes:** vinculo de profissionais a instituicoes e unidades de saude.
* **Perfil:** dados pessoais, foto, assinatura digital, especialidades e instituicoes.
* **IA clinica:** assistente por encaminhamento, acoes rapidas, sugestoes de proximo passo, melhoria de anamnese, deteccao de possivel AVC e transcricao de audio.

## Rotas principais de interface

| Rota                                                     | Descricao                                 |
| -------------------------------------------------------- | ----------------------------------------- |
| `/`                                                      | Login publico.                            |
| `/cadastro`                                              | Fluxo de cadastro publico.                |
| `/cadastro/verificar-dados`                              | Validacao dos dados iniciais do cadastro. |
| `/cadastro/contatos`                                     | Dados de contato.                         |
| `/cadastro/password`                                     | Definicao de senha.                       |
| `/validar-email-usuario`                                 | Validacao publica de email.               |
| `/forgot-password`, `/whatsapp-method`, `/resetar-senha` | Recuperacao de senha.                     |
| `/dashboard`                                             | Area autenticada.                         |
| `/dashboard/referrals`                                   | Lista de encaminhamentos.                 |
| `/dashboard/referrals/new`                               | Criacao de encaminhamento.                |
| `/dashboard/referrals/new/resume`                        | Resumo antes de criar a solicitacao.      |
| `/dashboard/referrals/:referralId`                       | Detalhe operacional do encaminhamento.    |
| `/dashboard/referrals/:referralId/chat`                  | Chat do atendimento.                      |
| `/dashboard/referrals/:referralId/details`               | Detalhes concluidos.                      |
| `/dashboard/referrals/:referralId/evaluation`            | Avaliacao medica.                         |
| `/dashboard/referrals/:referralId/call`                  | Videochamada.                             |
| `/dashboard/profile`                                     | Perfil do usuario.                        |
| `/dashboard/profile/personal-data`                       | Dados pessoais.                           |
| `/dashboard/profile/signature`                           | Assinatura digital.                       |
| `/dashboard/profile/institutions`                        | Instituicoes vinculadas.                  |
| `/introduction`                                          | Onboarding privado.                       |
| `/~offline`                                              | Fallback offline do PWA.                  |

## Comandos

```bash theme={"system"}
pnpm install
pnpm dev
pnpm build
pnpm start
pnpm lint
pnpm test
pnpm storybook
```

O `Makefile` possui o alvo `pre-commit`, que executa lint, testes e build:

```bash theme={"system"}
make pre-commit
```
