<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Maicon Ferreira</title>
    <description>The latest articles on DEV Community by Maicon Ferreira (@maicon_ferreira).</description>
    <link>https://dev.to/maicon_ferreira</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4171232%2F5baf0c41-7314-4e0c-952f-5a3ef03e7c2e.png</url>
      <title>DEV Community: Maicon Ferreira</title>
      <link>https://dev.to/maicon_ferreira</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/maicon_ferreira"/>
    <language>en</language>
    <item>
      <title>Movimenta Saúde: UBS, UPA ou urgência?</title>
      <dc:creator>Maicon Ferreira</dc:creator>
      <pubDate>Thu, 08 Oct 2026 12:00:22 +0000</pubDate>
      <link>https://dev.to/maicon_ferreira/movimenta-saude-ubs-upa-ou-urgencia-um-motor-de-regras-decide-nao-a-ia-17n2</link>
      <guid>https://dev.to/maicon_ferreira/movimenta-saude-ubs-upa-ou-urgencia-um-motor-de-regras-decide-nao-a-ia-17n2</guid>
      <description>&lt;p&gt;Na última semana construí o &lt;strong&gt;Movimenta Saúde&lt;/strong&gt;, um projeto de orientação em saúde pública: o cidadão descreve o que está sentindo, e o sistema diz se o caso é de UBS, UPA ou urgência (192) — mostrando na hora a unidade pública mais próxima. Queria compartilhar as decisões técnicas e pegar feedback de quem já mexeu com algo parecido.&lt;/p&gt;

&lt;h2&gt;
  
  
  O problema
&lt;/h2&gt;

&lt;p&gt;Só as UPAs do estado do Rio registraram mais de &lt;strong&gt;2,7 milhões de atendimentos&lt;/strong&gt; entre janeiro e novembro de 2025. Estudos mostram que boa parte dessa demanda é de casos que uma UBS resolveria — gente que não sabia qual porta da rede procurar, ou que foi parar no pronto-socorro porque a UBS estava fechada.&lt;/p&gt;

&lt;p&gt;Não é uma ideia nova, inclusive: o próprio &lt;strong&gt;Meu SUS Digital&lt;/strong&gt; já tem algo parecido, mas é uma funcionalidade pouco divulgada e difícil de achar dentro do app. A aposta aqui é ser a porta de entrada simples que ainda falta.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnxpwfycudolt1enrzh19.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnxpwfycudolt1enrzh19.PNG" alt=" " width="800" height="557"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A decisão arquitetural que mais me interessa comentar aqui
&lt;/h2&gt;

&lt;p&gt;O ponto mais interessante tecnicamente, pra mim, não é a triagem em si — é a separação entre &lt;strong&gt;extração&lt;/strong&gt; e &lt;strong&gt;decisão&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uma LLM só transforma a fala livre do usuário ("tô com dor de barriga há 2 dias") em campos estruturados: sintoma, intensidade, sinais de alerta.&lt;/li&gt;
&lt;li&gt;Um &lt;strong&gt;motor de regras determinístico&lt;/strong&gt; decide o destino. Cada regra tem fonte oficial citada (Ministério da Saúde, protocolos de classificação de risco) e status de revisão por profissional de saúde (&lt;code&gt;pendente_revisao&lt;/code&gt; até validação).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ou seja: a IA nunca decide o destino clínico de ninguém. Isso é auditável — toda recomendação pode ser rastreada até a regra e a fonte que a geraram. Em domínio de saúde, "a IA decidiu" não é uma resposta aceitável pra mim, nem acho que deveria ser pra quem avalia o projeto depois.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foauzrx4ywu51ineumgq8.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foauzrx4ywu51ineumgq8.PNG" alt=" " width="800" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Confiabilidade dos dados
&lt;/h2&gt;

&lt;p&gt;O CNES (cadastro oficial de estabelecimentos de saúde) tem inconsistências conhecidas — endereço desatualizado, duplicidade, unidade desativada que ainda aparece ativa. O pipeline busca o CNPJ de cada unidade e cruza com outras fontes públicas como uma segunda checagem antes de confiar no dado o suficiente pra orientar alguém. Isso acabou virando boa parte do trabalho real do projeto — processar dado público brasileiro é bem mais sujo do que a demo sugere.&lt;/p&gt;

&lt;h2&gt;
  
  
  Acolhimento a quem não fala português
&lt;/h2&gt;

&lt;p&gt;A interface tem tradução completa pra inglês (navegação, triagem, resultado — nunca os dados em si, como nome/endereço de unidade, que são dado real e ficam em português). Cada unidade indicada abre direto no Google Maps a partir do endereço, então a barreira de idioma não impede a pessoa de efetivamente chegar lá. O SUS é universal mesmo pra estrangeiro não documentado (art. 196 da Constituição), e boa parte desse público nem sabe como a rede brasileira funciona.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjm7ft0989tx4a569aogd.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjm7ft0989tx4a569aogd.PNG" alt=" " width="800" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Stack
&lt;/h2&gt;

&lt;p&gt;FastAPI + PostgreSQL/PostGIS no backend, Next.js no frontend seguindo o gov.br Design System, piloto rodando com dados de 5 municípios da região metropolitana do Rio. O fluxo inteiro funciona em mobile também:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frmqx4w9uwj3vdhjh1xdb.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frmqx4w9uwj3vdhjh1xdb.PNG" alt=" " width="445" height="841"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqit551ft0kzt8rxk7v01.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqit551ft0kzt8rxk7v01.PNG" alt=" " width="505" height="855"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Por que o código está fechado
&lt;/h2&gt;

&lt;p&gt;Diferente do que costumo fazer, o repositório é público só na documentação — dados, fontes citadas e screenshots (código fica privado por enquanto). O motivo: há uma integração em andamento com login único gov.br, e descobri que não dá pra simplesmente ativar login gov.br em produção como dev independente — a plataforma só libera credencial de produção pra sistemas vinculados a um órgão público (gestor de serviço público solicitando, conforme Decreto 8.936/2016). Documentei essa trava toda no README. Enquanto isso não resolve, mantenho o código fechado e mostro o projeto funcionando sob demanda.&lt;/p&gt;

&lt;p&gt;Repositório (dados, fontes e documentação públicos): &lt;a href="https://github.com/Maiconjss/movimenta-saude" rel="noopener noreferrer"&gt;https://github.com/Maiconjss/movimenta-saude&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  O que fica no backlog, de propósito
&lt;/h2&gt;

&lt;p&gt;Tem uma feature de avaliação das unidades (nota + comentário, moderado manualmente, sem exigir login) já implementada no backend, mas desativei a exibição por enquanto — quero entender melhor o problema de moderação/abuso antes de expor isso pra usuário final.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que eu queria ouvir de vocês
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Acham a separação LLM-extrai / regra-decide o caminho certo pra domínio sensível, ou é excesso de cautela minha?&lt;/li&gt;
&lt;li&gt;Alguém já bateu de frente com essa trava do login único gov.br exigir vínculo institucional? Tem algum atalho que eu não vi?&lt;/li&gt;
&lt;li&gt;Acham válido abrir o código mais cedo (mesmo sem o login gov.br resolvido), só pra ganhar revisão de pares?&lt;/li&gt;
&lt;li&gt;Qualquer crítica de arquitetura, dado ou produto é bem-vinda — é um projeto de portfólio sério, não só pra mostrar, e prefiro ouvir problema agora do que depois.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>python</category>
      <category>ai</category>
      <category>healthtech</category>
      <category>govtech</category>
    </item>
  </channel>
</rss>
