MediWhats Engineering Specifications for AI Coding Assistants
Fluxo de Registro: O backend deve suportar um processo de multi-step onboarding. No primeiro passo, armazena metadados básicos (Nome, CRM, Especialidade). No passo final, ativa a "Clínica Virtual".
Segurança: Implementar JWT para sessões. Requisito de RBAC (Role Based Access Control) para futuras clínicas multi-médico.
POST /auth/register: Criação de conta e validação de CRM.GET /doctor/profile: Retorna configurações e diretrizes clínicas (Markdown).PATCH /doctor/settings: Atualiza tom de voz da IA e protocolos de triagem.O backend deve instanciar uma sessão isolada (Worker) para cada médico. O endpoint deve retornar um stream de base64 ou evento de WebSocket com a string do QR Code.
Serviço de escuta que captura messages.upsert. Deve filtrar apenas DMs (ignorar grupos) e encaminhar para o motor de IA.
Áudios e fotos devem ser persistidos (S3/Cloudinary) temporariamente e processados por OCR ou modelos de transcrição antes da resposta da IA.
Este é o núcleo do MediWhats. O backend não apenas repassa mensagens, ele as processa através de uma Cadeia de Raciocínio (Chain of Thought).
A IA deve analisar se há "Discriminadores" (Ex: Obstrução de via aérea, Hemorragia exsanguinante). Se detectado, o status do paciente muda para active e o mtsLevel é setado como 1 ou 2 imediatamente.
Com base no histórico (MCP) e sintomas atuais, o backend gera o objeto riskAnalysis. Se a probabilidade de complicação for >70%, deve disparar um evento para o dashboard.
Ocorre no WhatsApp. O Bot deve respeitar a aiPersona. Durante a fase status: 'triage', o médico não interfere. Após o desfecho, o bot entra em modo read-only ou follow-up.
Um chat de comando interno. O médico pede à IA para consultar prontuários, agendar retornos no Google Calendar ou gerar prescrições baseadas na conversa do paciente.
EMR Connectors
Endpoints que traduzem modelos MediWhats para APIs de terceiros (EMed, Tasy, iClinic).
Calendar Sync
Ao agendar no app, o backend deve criar o recurso no Google Cal e enviar o link de confirmação para o paciente.
Privacy Proxy
Nenhum dado sensível de EMR deve ser armazenado permanentemente no backend MediWhats.
O backend recebe o patientId e compila toda a conversa e histórico. O LLM deve retornar obrigatoriamente um JSON com as chaves S, O, A, P mapeando os dados para a evolução clínica.
O backend deve processar agregações em segundo plano (Cron Jobs) para alimentar a InsightsView:
Volume de Sintomas
Agrupar queixas por tags (Respiratório, Gastro, etc) por período.
Alertas Epidemiológicos
Se 3+ pacientes reportarem o mesmo sintoma em 5km, sugerir surto.
Taxa de Conversão
Triagens finalizadas vs Casos que precisaram de consulta presencial.
Performance IA
Tempo médio de triagem automatizada e acurácia do Manchester.