Operações · Workforce OS · Plantões

ViaRGR Escala:
Skill Matrix + Otimizador
de 8+ dimensões com auditoria.

Sistema operacional de força de trabalho para saúde, operações hospitalares e prefeituras. Gerencia demandas clínicas, escala de plantão, substituições em tempo real, férias, sobreaviso e justiça distributiva — tudo sob o controle de um Motor de Regras Declarativas VERSIONADO e um Otimizador Multi-objetivo (planejamento + operação em tempo real) com 8+ dimensões. Auditoria de decisão: responde em linguagem natural "por que o Dr. X foi escalado" e "por que a Enf. Y foi negada". Multi-tenant por header X-Tenant-Id. Integra n8n + Kafka para automações e troca de turno.

  • 8+Dimensões no otimizador
  • 2Modos: Planejamento + Tempo Real
  • 100%Auditoria "por que escalou / negou"
Coordenador acompanhando painel de escalas e plantões

Visão executiva

Do planejamento mensal ao plantão de madrugada: sem WhatsApp, sem planilha.

ViaRGR Escala é construído pra substituir o ciclo: planilha de escala → grupo WhatsApp → troca de turno boca a boca → chefe de serviço reclamando → auditoria trabalhista chega e ninguém lembra por quê. Todo passo no sistema: demanda, regra, otimização, publicação, troca, substituição e justificativa. Nada "na cabeça".

Mission Control SUS | Privado

Dois modos de operação em interface única. SUS: leitos, SIVEP, RAAS, regra de cobertura mínima por nível. Privado: VH mensal, reserva de bloco cirúrgico, cobertura UTI neonatal.

Skill Matrix Profissional

Cada profissional (médico, enfermagem, técnico, fisioterapeuta) tem competências: setor, CRM/COREN, especialidade, treinamentos válidos, NR's. O otimizador NÃO escala quem não tem skill mínima.

Motor de Regras VERSIONADO

Regras declarativas em DSL JSON/YAML. Cada versão é gravada com data/autor. Diff visível entre versões. Rollback 1 clique. Nunca mais "a regra mudou e ninguém sabe por quê".

Otimizador 8+ Dimensões

Planejamento semanal + operação tempo real. 8 eixos: demanda clínica, skill, fadiga 12h, compliance NR, economia, fluxo paciente, justiça distributiva, fiscal CLT/PJ/estatutário.

Auditoria Decisão (Por quê?)

Toda atribuição gera log estruturado com score por dimensão e justificativa em PT-BR. Responde: "Por que escalou / por que negou". Exporta relatório pro RH e jurídico sem reunião.

Troca de Turno + Substituição

Fluxo de pedido → candidato disponível por skill → aprovação gestor. Substituição automática em 5 minutos pra ausência de última hora. Nada de ligar 20 pessoas no WhatsApp.

Arquitetura técnica

FastAPI + PWA HTML/JS · Kafka + n8n · Multi-tenant X-Tenant-Id.

API em Python/FastAPI (performance + tipagem forte com Pydantic v2). PWA HTML/JS puro — funciona no celular do enfermeiro 3G offline, sincroniza depois. Eventos de escala pelo Kafka KRaft, automações por n8n. Multi-tenant por cabeçalho X-Tenant-Id validado em cada request.

Cliente (Dashboards · PWA · Portais)
Mission Control (SUS | Privado)
Escala Semanal + Publicação
PWA Plantonista (offline 1ª)
Skill Matrix · Gestor
Troca · Substituição · Pedidos
Portal Profissional (meus turnos)
Auditoria "Por que escalou?"
PWA Vanilla HTML/JS · Service Worker Cache · Tailwind · shadcn/ui · Fetch API · Offline Queue
API FastAPI 0.110 · X-Tenant-Id · JWT 3 papéis
Auth (JWT RS256 · admin/gestor/profissional)
Tenant Middleware (X-Tenant-Id validado)
Demanda Clínica · Setor · Turno
Skill Matrix · Competências · Validade
Regras Declarativas · Versão + Diff
Planejador Semanal (Solver)
Operação Tempo Real (Hot Swap)
Otimizador · 8+ Dimensões
Auditoria Decisão · Justificativa PT-BR
Troca / Substituição · Aprovação
Férias · Folgas · Sobreaviso
Fiscal CLT / PJ / Estatutário
Eventos · Kafka Topics · n8n
Trilha Auditoria · LGPD Art. 37
FastAPI + Pydantic v2 · Prisma Client extend (tenant scope) · Redis filas · BullMQ · Kafka KRaft · n8n workers
Dados · Infraestrutura · Integrações
PostgreSQL 16 · Prisma Migrations
Redis 7 (cache + solver estado)
Kafka KRaft (eventos escala)
n8n (automações · webhooks)
Integra RH corporativo (API/CSV)
Integra ponto / eSocial S-2200
WhatsApp / E-mail (confirma turno)
Docker Compose · Coolify · On-prem
Prometheus/Grafana (SLA escala)

Stack tecnológica

Feito pra durar 10 anos. Sem framework proprietário.

Escolhas conservadoras, time interno de TI consegue assumir. FastAPI, Postgres, Kafka, n8n, PWA vanilla com Service Worker. Nada de runtime exotic.

Frontend PWA
HTML/CSS/JS puro · Service Worker · Workbox · Tailwind · shadcn/ui · IndexedDB offline queue
API & Solver
Python 3.12 · FastAPI 0.110 · Pydantic v2 · OR-Tools (CP-SAT) · PuLP fallback · Prisma 5
Dados & Estado
PostgreSQL 16 · JSONB (regras versionadas) · Prisma Migrations · Redis 7 BullMQ · RLS opcional
Multi-tenant
Middleware valida header X-Tenant-Id contra token JWT claim. Prisma $extends injeta filtro tenant em TODO SELECT. Não tem escape.
Motor Regras
DSL JSON/YAML · JSON Schema validado no save. Versão + Diff. HARDSTOP / INFO / WARNING por escopo. Shadow Mode gradual.
Otimizador 8+ Dimensões
OR-Tools CP-SAT (padrão) · fallback PuLP open-source. Ponderação λ por dimensão. Auditoria score cada profissional/turno.
Eventos & Automações
Kafka KRaft 3 topics: escala.publish, escala.troca, escala.audit. n8n workflows dispara WhatsApp/e-mail/webhook RH.
Segurança & Deploy
JWT RS256 · RBAC 3 papéis · CORS restrito · HSTS · Dockerfile não-root · Compose · Coolify · On-prem · VPC privada

Módulos

Tudo o que o gestor de escala precisa. Nada de 3 planilhas abertas.

Cada módulo é independente, mas conversa por Kafka. Ative só o que usar: se sua instituição não tem PJ, o módulo fiscal PJ não atrapalha.

Planejamento Semanal

CRUD drag-and-drop + bulk create (52 turnos de 1 vez). Publicação 1 clique com notificação em lote por WhatsApp/e-mail.

Skill Matrix

Competências por profissional: CRM, COREN, CREFITO, especialidade, NR, setores autorizados, data de validade. Sem habilidade = não escala.

Regras Declarativas Versionadas

DSL: "Plantão duplo proibido em 48h", "UTI precisa de pelo menos 2 críticos", "máximo 2 extra por mês". Versão, diff, rollback.

Otimizador Multi-objetivo

Planejamento: maximiza skill + justiça + compliance; minimiza fadiga + custo extra. Operação em tempo real: substituição em 5 min por ausência.

Troca de Turno

Solicita, lista disponíveis por skill, aprova gestor. Regra de "não troca sem skill igual ou acima". Tudo logado.

Auditoria Decisão

Log estruturado por atribuição. Cada candidato tem score (0–100) por dimensão. Texto em PT-BR: "Escalado por: skill (95) + fadiga OK (88) + justiça +7". Ou: "Negado por: fadiga < 12h repouso".

Fiscal CLT / PJ / Estatutário

Calcula VH, jornada 6×1 / 12×36, adicional noturno, extra, sobreaviso. Integrado com ponto e RH. Sinaliza risco trabalhista.

Analytics & Cobertura

% cobertura mínima por setor, custo plantão, distribuição extra por profissional, taxa de troca, ausência. Export CSV.

PWA Offline

App instalável no celular do plantonista. Mostra meu turno, aceita/recusa, pede troca, abre mapa do hospital. 3G fraco ou sem internet — sincroniza depois.

Conformidade e governança

Para RH, jurídico trabalhista e diretoria clínica dormirem tranquilos.

Nossa regra: cada escala publicada tem que se defender sozinha. Se auditoria ou sindicato perguntar, a resposta tá lá, ponta a ponta, sem depender de ninguém lembrar.

Multi-tenant Blindado X-Tenant-Id + Prisma $extends. Consulta SEM tenant retorna 0 linhas. Não tem view global acidental.
Regras Versionadas DSL declarativo · JSON Schema · Diff entre versões · Rollback 1 clique · Autor e data de cada regra.
Auditoria Decisão Explicável Log de cada atribuição com score por dimensão. Texto PT-BR. Responde "por que escalou / por que negou".
Fadiga 12h NR Repouso mínimo NR. Detecta cadeia de plantão 12+4+12 sem repouso. HARDSTOP ou WARNING conforme regra.
Fiscal Trabalhista CLT · PJ · Estatutário · Limite extra · Adicional noturno · Sobreaviso. Sinaliza risco antes de publicar.
Justiça Distributiva Otimizador mede desvio padrão de turnos por profissional. Penaliza quem já pegou 3 finais de semana seguidos.
Trilha LGPD Todo acesso, edição, publicação, troca, cancelamento gravado com usuário + data/hora + IP + razão.
Skill e Validade Bloqueia profissional com CRM vencido, treinamento NR expirado, especialidade incompatível. Não escala por engano.

Diferenciais

Por que ViaRGR Escala e não planilha + grupo de WhatsApp.

Comparativo honesto com o que a maioria dos hospitais usa hoje.

Requisito de EscalaPlanilha + WhatsAppSistema de escala commodityViaRGR Escala
Skill Matrix real por profissionalSeparada em outra planilhaCampo texto, sem regraCompetências · Validade · Bloqueio automático
Regras (fadiga, repouso, NR)Na cabeça do gestorHardcoded, não mudaDeclarativo · Versão · Diff · Rollback
Otimizador multi-objetivoManualPrimeiro disponível (1 dimensão)8+ dimensões · λ ajustável
Auditoria "por que escalou/negou"Ninguém lembraNão temLog score por dimensão · PT-BR
Substituição em tempo realLiga 20 pessoasAvisa, não sugereSugere top 5 por skill + custo
Multi-tenant real—SaaS, arquivo separado só no plano enterpriseX-Tenant-Id · middleware · Prisma extend
PWA Offline profissional—Só app React quebrado offlineService Worker · IndexedDB · Instala no celular
Fiscal CLT / PJ / EstatutárioRH calcula separadoSó CLT3 regimes · Sinais risco · Integra eSocial
Eventos + Automações—E-mail sóKafka topics · n8n workflows · Webhooks
On-prem / VPC privada—SaaS sóDocker Compose · Sem dependência externa

Chefe de serviço reclamando da escala de final de semana?

Rollout faseado: primeiro Skill Matrix, depois regras, depois otimizador em SHADOW MODE (sugere, gestor aprova). Nenhum "big bang". Retorno esperado em 6 semanas.

FAQ

O que gestor de escala, RH e jurídico trabalhista perguntam.

Como funciona o otimizador? Posso confiar ou ele escala errado?

O otimizador roda OR-Tools CP-SAT, padrão de mercado para scheduling. Antes de ligar "auto publica", rodamos ele no mínimo 4 semanas em SHADOW MODE: ele SUGERE a escala, mas o gestor aprova 1 por 1. Ao longo desse período, seu time ajusta os pesos λ de cada dimensão (justiça pode valer mais que economia, ou vice). Quando todo mundo confia, sobe pra publicação automática. E em qualquer horário, o gestor pode editar manualmente — o sistema loga "edição manual" na auditoria com justificativa.

Auditoria "por que escalou / por que negou": como funciona mesmo?

Para cada turno candidato que o otimizador avalia, ele gera um score 0–100 por cada dimensão (skill, fadiga, compliance, economia, justiça etc). Esses scores são salvos numa tabela assignment_log. Depois, o sistema gera um texto em PT-BR: "Escalado por: skill 98 (CTI), repouso 14h > 12h (88), justiça +3 turnos equiparado (85). Penalidade 2% por preferência de domingo, mas dentro do aceitável.". Para quem foi negado: "Negado por: fadiga — último turno terminou há 6h (mínimo 12h). Skill suficiente (90), mas bloqueado por HARDSTOP NR fadiga.". Tudo exportável.

Multi-tenant por X-Tenant-Id: um cliente não vê escala do outro?

Jamais. Regra de arquitetura: todo request passa por middleware que (1) lê header X-Tenant-Id, (2) confere se existe no claim do JWT, (3) injeta filtro tenant_id = X em TODO select/insert/update do Prisma via $extends. Não tem jeito de "esquecer" o filtro. Se você chamar a API direto sem header, retorna 401. Consulta manual no banco via role do app SEM RLS habilitado (ou role superusuário) retorna vazio — a conexão do app não é superusuário.

Integram com ponto, RH corporativo e eSocial?

Sim. 3 caminhos: (a) API REST + webhooks, (b) n8n workflows previamente montados pra SAP, Totvs, Senior, etc, (c) SFTP/CSV noturno. Evento "escala publicada" pode criar S-2200 eSocial, evento "troca efetivada" atualiza ponto do profissional. Nada de digitar duas vezes.

Podemos rodar em hospital on-prem, sem saída pra internet?

Sim. Docker Compose com FastAPI + Postgres + Redis + Kafka KRaft + n8n self-hosted. PWA instala no celular via HTTPS local. Nenhuma chamada pra API externa obrigatória. WhatsApp pode ser substituído por e-mail interno + SMS gateway privado se precisar.

Como lidamos com regime híbrido: uns CLT, uns PJ, uns estatutários (SUS)?

Módulo Fiscal do Escala tem os 3 regimes. Cada profissional tem vínculo e perfil. O otimizador entende: (a) CLT não passa de 2 extras/mês, (b) PJ tem limite máximo de horas por mês no contrato, (c) estatutário SUS obedece portaria 1.419/2024. No diff da auditoria, o score de "fiscal" penaliza candidatos que quebram esses limites — a não ser que regra específica da unidade autorize e justifique.

Sem intermediários. Direto com quem entende e desenvolve a tecnologia.

Na ViaRGR Sistemas, seu atendimento é feito diretamente pela nossa equipe técnica e estratégica, sem SDR terceirizado ou camadas desnecessárias de intermediação.

Primeiro, entendemos sua operação, seus desafios e objetivos. A partir disso, avaliamos a viabilidade, desenhamos a melhor estratégia de implantação e apresentamos uma solução alinhada à sua realidade.

Se houver aderência, avançamos. Se não houver, informamos desde o início. Transparência, agilidade e conhecimento técnico para não desperdiçar o seu tempo.