| Etapa | O que acontece |
| 1. Seleção do cliente | No formulário de `analises.php`, a troca de cliente chama `buscarDadosProtese()` para consultar `buscar_protese.php` e sugerir modelo, cor, densidade e observações. |
| 2. Cadastro da análise | O registro é salvo por `salvar.php`, que exige cliente, data e imagem, grava o upload em `images/analises/` e persiste em `analise_capilar`. |
| 3. Pré-condição da IA | O botão “Analisar Imagem” só funciona se já existir `id` salvo; o JS bloqueia o fluxo quando o registro ainda não foi persistido. |
| 4. Chamada AJAX | `processarAnalise()` envia `id` para `paginas/analises/processar.php` e espera JSON de resposta. |
| 5. Preparação da requisição | `processar.php` carrega o registro, lê a foto do disco, consulta `config.openai_key`, converte a imagem em base64 e monta um prompt restritivo. |
| 6. Execução externa | O backend faz `curl` para `https://api.openai.com/v1/responses` usando o modelo `gpt-4o`. |
| 7. Normalização da resposta | O código extrai JSON, valida cor/densidade/modelo permitidos e preserva `grau_falha` já salvo no banco quando necessário. |
| 8. Persistência final | `processar.php` executa `UPDATE analise_capilar` preenchendo `cor_detectada`, `densidade_detectada`, `grau_falha` e `sugestao_protese`. |
| 9. Retorno à interface | O JS atualiza os campos do formulário sem recarregar a página e informa sucesso ou erro técnico. |