Build in Public: Sistema de Validação Médica (deco & Afya)

Rafael Crespo
Rafael Crespo
26 de novembro de 2025
Build in Public: Sistema de Validação Médica (deco & Afya)

Nota: O vídeo da workshop abaixo está em português.

Nesta sessão especial de \"Build in Public\", fizemos uma parceria com o time de inovação da Afya para resolver um desafio real: automatizar a validação de credenciais médicas.

Em pouco mais de uma hora, demonstramos como ir do zero a um MVP funcional usando a deco, alavancando AI Agents, MCPs (Model Context Protocol) e workflows automatizados para verificar informações de médicos—um processo que é tipicamente manual e demorado.

<iframe width=\"100%\" height=\"auto\" style=\"aspect-ratio: 16/9\" src=\"https://www.youtube.com/embed/zVQk3REFKDc\" title=\"deco Context\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>


Resumo da Workshop

Aqui está um detalhamento de como a solução foi arquitetada e construída durante a sessão:

O Desafio

A Afya precisava de uma forma de simplificar o onboarding de médicos. O objetivo era criar um sistema onde um médico pudesse enviar seus dados (Nome, CPF, CRM, Diploma), e o sistema validaria automaticamente essas credenciais contra bases de dados públicas e garantiria conformidade, substituindo verificações manuais.

Os Primitivos

Utilizamos os blocos de construção fundamentais da deco para montar a aplicação:

  • AI Agents: Usados para interagir com o usuário (o médico) através de uma interface conversacional para coletar dados necessários.

  • Database (SQLite): Gerado automaticamente pela IA para armazenar perfis de médicos e status de validação.

  • Tools (MCPs): Funções modulares que permitem à IA interagir com mundos externos. Usamos tools para operações CRUD de banco de dados, Brasil API (para validação de CPF/CNPJ) e Gemini Pro Vision (para análise de imagens de diplomas).

  • Workflows: A camada de lógica que orquestra os passos de validação (ex: \"Validar CPF\" -> \"Validar CRM\" -> \"Analisar Imagem\" -> \"Atualizar Database\").

  • Views: Um dashboard UI customizado gerado por IA para permitir que administradores visualizem a lista de médicos e disparem workflows de validação.

A Arquitetura e o Workflow

A aplicação segue um fluxo simplificado:

  1. Coleta de Dados: Um médico interage com um AI Agent através de uma interface de chat. O Agent coleta campos necessários (Nome, CRM, UF, URL do Diploma) e os salva no banco de dados usando uma Create Doctor Tool.

  2. Dashboard Visual: Um administrador acessa uma Dashboard View gerada que lista todos os médicos registrados com seu status atual.

  3. Validação Automatizada: O admin clica em um botão \"Validar\". Isso dispara um Workflow específico.

  4. Execução: O workflow executa múltiplas verificações em paralelo:

    • Valida formato e existência de CPF/CNPJ via API.

    • Analisa a imagem de Diploma enviada usando Computer Vision para detectar se é um template genérico ou um documento válido.

  5. Resultado: O sistema salva o relatório de validação de volta ao banco de dados e atualiza a UI, sinalizando dados suspeitos (ex: \"Diploma parece ser um template Freepik\").


O Prompt

Tudo começou com um único prompt bem estruturado desenhado para gerar o Documento de Requisitos do Produto (PRD). Este prompt guiou a IA para entender as regras de negócio, esquemas de dados e o comportamento \"Agentic\" necessário.

Aqui está o prompt completo usado para iniciar a aplicação:

Create a PRD\n\n1. Overview\nDon't overengineer it, make it simple\nThe system allows doctors to register, have their data stored, and later validated through internal rules and external API checks.\nAn agent collects the data without fabricating any information and saves everything to the database.\nA dashboard allows reviewers to view registered doctors, validate their data, and approve/reject profiles.\n\n2. Goals\n* Allow doctors to submit their professional data.\n* Store information with consistency and security.\n* Use an agent to collect information and save it to the database without hallucinations.\n* Display a general list of registered doctors.\n* Allow manual validation triggered by a button (\"Validate\").\n* Allow approval or rejection after analysis.\n\n3. User Flow (MVP)\n1. The doctor talks to the Agent and sends their data.\n2. The agent uses the Create Doctor Tool to save the data to the database.\n3. The agent confirms that the data has been received and is under review.\n4. The reviewer opens the Dashboard and sees the list of doctors.\n5. The reviewer clicks Validate → the system runs validations.\n6. The system generates a validation report.\n7. The reviewer clicks Approve or Reject.\n\n4. Required Information\nName (required)\nCPF (required)\nCNPJ (required)\nCRM (required)\nCRM-UF (required)\nDiploma file (URL) (required)\nRQE (non required)\nSpecialty (non required)\n\n5. Validation Rules\nCRM\n* Check character length.\n* Ensure it contains only numbers.\n* Validate UF (SP, RJ, MG, etc.).\nRQE (optional)\n* Check length.\n* Validate numeric format.\nDiploma\n* Validate that a URL was provided.\n* Validate that the file is not a template.\nCNPJ (via DataJud MCP)\n* Confirm existence.\n* Check if active.\n* Check if not under judicial process.\n* Check if it belongs to the medical sector.\nCPF (via Brazil API MCP)\n* Validate format.\n* Fetch official data.\n* Confirm that the CPF name matches the CRM name (via CFM).\n\n6. System Components (MVP)\nTools\n* Create Doctor Tool: Saves data received from the form or agent.\n* Get Doctors List Tool: Returns registered doctors.\n* Update Doctor Tool: Updates validation results and status (approve/reject).\n* Validate CPF Tool\n* Validate CNPJ Tool\n* Validate CRM Tool\n* Validate Doctor Workflow: Will run complete validations.\nWill runs validate CPF, cnpj, crm tool\n\n7. Database Schema (MVP)\ndoctors table\nID - UUID\nName - String\nCPF - String\nCNPJ - String\nCRM - String\nCRM_UF - String\nDiploma_URL - String\nRQE - String?\nIf not send save a empty string\nspecialty - String? If not send save a empty string\n\nValidations table\nid - UUID\nDoctorID - doctor_id\nStatus - string (pending, reproved, accepted)\nvalidation_report - string\n\n8. AI Agent Requirements\nResponsibilities\n* Talk with the doctor and collect data.\n* Do not invent any information.\n* Save using the Create Doctor Tool.\n* Confirm that the information is under analysis.\nLimitations\n* Does not perform validations at this stage.\n\n9. Dashboard (MVP)\nList View\n* Name\n* CRM + UF\n* CPF\n* Status\n* Validate button\n* View Details button\nValidation\n* When clicking Validate:\n    * Runs workflows with validation rules\n    * Generates validation report, e.g.:\n\n\"{\n  crm: valid,\n  crm_uf: valid,\n  cpf: valid,\n  cpf_name_match: invalid,\n  cnpj: valid,\n  diploma: valid,\n  rqe: not_provided\n}\"\nActions\n* Approve\n* Reject\n\n10. Status Lifecycle\npending → in_review → validated → approved/rejected


Debug em Tempo Real

Um dos aspectos mais valiosos do \"Build in Public\" é ver que desenvolvimento com IA não é mágica—é ainda engenharia de software. Depois de criar o workflow de validação, o time enfrentou um problema: a validação estava rodando, mas o dashboard não estava atualizando.

  • O Bug: Verificando os logs, o time percebeu que o AI Agent tinha executado com sucesso a lógica de validação mas simplesmente \"esqueceu\" de incluir um passo para salvar os resultados de volta no banco de dados.

  • O Fix: Em vez de reescrever código manualmente, Ventura instruiu o agent: \"Agora salve o resultado na tabela validations\".

  • O Resultado: O agent corrigiu o workflow, criou uma tool Create Validations, e salvou com sucesso os dados. Isso destacou a capacidade da plataforma de se autocorrigir através de iteração em linguagem natural.

Computer Vision

Uma vez que o debug foi completado, o verdadeiro poder do agent multimodal brilhou. Testamos o sistema com um perfil falso de médico usando uma imagem de certificado genérico encontrada online.

A tool Gemini Pro Vision analisou a URL do diploma enviado e retornou um veredicto: \"Suspeito: Template genérico\". A IA explicitamente anotou que o diploma parecia ser um design do \"Freepik\", sinalizando com sucesso uma possível fraude sem necessidade de nenhuma rule-coding manual.

A Estratégia

A workshop concluiu com uma discussão crítica sobre como levar isso de uma sessão de \"Vibe Coding\" para uma aplicação segura e de nível empresarial para uma empresa como a Afya.

  • O \"MCP Mesh\": Introduzimos o conceito de um \"Mesh\" organizacional. Em vez de usuários de negócio construírem tudo do zero, times técnicos (Context Engineers) expõem APIs seguras e dados via MCPs. Usuários de negócio (AI Builders) então usam esses blocos pré-aprovados para construir tools.

  • Governance e Deploy baseado em Git: Diferentemente de ferramentas low-code que te aprisionam em uma \"caixa preta\", a solução mostrada é baseada em Git. Isso significa que toda mudança criada pela IA é versionada, revisável via Pull Requests, e capaz de rollback instantâneo—atendendo aos requisitos de segurança estritos de uma grande empresa de healthcare.


Veredicto Final

A sessão encerrou com o time da Afya validando a abordagem. Eles destacaram que enquanto têm data lakes internos e times, o gargalo é frequentemente a agilidade para construir interfaces frontend e workflows para unidades de negócio específicas.

\"Eu já era fã, agora sou ainda mais fã... Resolve muitas dores em relação à agilidade e desenvolvimento de MVP preparado para integração profunda com nosso ecossistema.\" — Eduardo Moura, Afya

Você também pode gostar

Ver todos
Tudo que Estamos Lançando na VTEX Day 2026

Tudo que Estamos Lançando na VTEX Day 2026

Rafael Crespo
Rafael Crespo
April 15, 2026 at 12:00 AM
deco.cx Admin: Validação de Publicação

deco.cx Admin: Validação de Publicação

Lucas Ribeiro
Lucas Ribeiro
March 19, 2026 at 12:00 AM
deco.cx Admin: Redesign Mobile

deco.cx Admin: Redesign Mobile

Lucas Ribeiro
Lucas Ribeiro
March 12, 2026 at 12:00 AM