Hub analítico · produto

Onde o Lisya está neste mapa

Os dezesseis guias anteriores descrevem o que um sistema de informação laboratorial deveria fazer no processamento analítico. Este mede o Lisya contra eles — lendo o modelo de dados e as rotas, não a apresentação comercial. Datado, com as lacunas nomeadas.

medido em 22/09/2026o que existeo que faltaa ordem proposta

01Como medimos

F

Critério de leitura: um item só conta como existe se houver dado armazenado no modelo e caminho de uso — tela ou rota. Tela sem persistência conta como protótipo; campo sem tela conta como fundação. Tudo abaixo foi verificado no schema Prisma e nos módulos da API em 22 de setembro de 2026, e fica desatualizado com o próximo commit.

O resultado é desconfortável de um jeito específico: a fundação está mais completa do que a automação que ela deveria alimentar. Vários dados que custam caro para capturar já estão capturados — e não são lidos por ninguém.

02O que existe

CapacidadeComo está no códigoGuia correspondente
Motor de regras declarativo`RegraVerificacao`: escopo (global, setor, exame, parâmetro, grupo), ordem, condições em `quando`, e 7 açõesregras
Modo observaçãocampo `shadow` na regra: avalia e registra sem executar a açãoautoverificação
As 7 ações do repertórioAUTO_CONFERIR, RETER, REPETIR, DILUIR, REFLEXO, ALARME, COMENTAR — inclusive alertar sem pararregras
Explicação da decisão`verificacaoTrace` guarda o texto do porquê; `verificacaoRegraId` aponta a regraautoverificação
Ciclo de vida do resultadodigitado / conferido / liberado com autor e hora em cada etaparesultados
Versionamento de retificação`ResultadoVersao` congela a versão a cada liberação; `versao` incrementaresultados
Trilha somente-acréscimo`EventoResultado` registra a sequência sem ediçãoresultados
Comunicação de valor críticocanal, quem recebeu e quando, no próprio resultadoreferência e críticos
Exceções da dosagem como campo`fatorDiluicao`, `valorBruto`, `repetido`, `motivoRepeticao`, `interferentes[]`, `flagEquipamento`flags e diluição
Assinatura ICP-Brasilhash, URL de validação, PDF e dados do certificado no resultadovalidação
Interfaceamento bidirecionalingestão de resultado, worklist por equipamento, ack e heartbeatinterfaceamento
Matriz equipamento × exame`EquipamentoExame`, com `bloqueado` por pardistribuição
Calibração como porteiro`Calibracao` por equipamento × exame; vencida ou reprovada torna o exame inaptoqc na corrida
Estado do equipamento`StatusEquipamento` com motivo de bloqueiodistribuição
A

A leitura otimista, e honesta, disso: o item mais difícil da lista — um motor de regras declarativo com modo observação, escopo e trilha da decisão — está feito. É a peça que a maioria dos sistemas não tem e que, quando falta, transforma toda regra em chamado para o fornecedor. Aqui ela existe, com a caneta no lugar certo.

03O que falta

LacunaO que está no código hojeO que ela impede
O vocabulário da regra tem 4 campos`campo` aceita apenas `classificacao`, `delta`, `deltaAbs`, `cq`nenhuma regra sobre flag, interferente, valor absoluto, idade, equipamento ou método
O resultado não sabe onde foi medido`Resultado` não tem equipamento, método, lote de reagente nem calibraçãoresponder “quais laudos saíram com o reagente do lote X” — e imprimir o método no laudo
Método é do exame, não da execução`Exame.metodoId` é um só; o backup usa o mesmo textoo laudo mente quando o exame roda no equipamento alternativo
Não existe corrida analíticanenhum model de período; `CorridaCIQ` é a medição do controlea lista de resultados afetados quando um controle reprova
O de-para mapeia só o código`InterfaceamentoMapa` tem `codigo` → `exameParametroId`, e nada maisconversão de unidade, casas decimais, fator e tradução de flags — o campo perigoso
Microbiologia é um sistema paralelo`AmostraMicro` com paciente e exame em texto, `isolados` em Jsonciclo de vida comum, trilha única, e qualquer regra sobre antibiograma
Faixa mensurável não é cadastronão há limite de detecção nem topo da faixa por exame × métododiluição automática, e reportar a relação com o limite nas pontas
Faixa de plausibilidade só como classificação`ABSURDO` existe como rótulo, sem limites configuráveis por analitoretenção automática do valor fisiologicamente impossível
Repetição e diluição na bancada vivem em store localcatálogo de motivos e fila no cliente, não no modeloindicador de repetição por analito e por equipamento
Sem consumo de reagente por testeestoque existe; o vínculo com a execução nãobloquear roteamento para o que não tem insumo, e alertar antes de acabar
!

A lacuna que dói mais: a primeira. O Lisya já guarda `flagEquipamento` e `interferentes[]` em cada parâmetro de resultado — capturar esses dados é o trabalho caro, e ele está feito. Mas a condição da regra não consegue lê-los. O dado está no banco, aparece na tela e é invisível para a automação. É exatamente o sintoma descrito no guia de motor de regras: captura e avaliação construídas em momentos diferentes, sem ninguém voltar para ligar as duas.

JÁ CAPTURADO EM ResultadoParametroflagEquipamentointerferentes[]fatorDiluicaovalorBrutomotivoRepeticaoESTA LIGAÇÃO NÃO EXISTEO QUE A CONDIÇÃO DA REGRA CONSEGUE LER — 4 CAMPOSclassificacaodeltadeltaAbscqO trabalho caro — capturar — está feito. O que falta é o enum de campos avaliáveis da condição.Enquanto isso, nenhuma regra pode dizer “se houver hemólise neste analito, retenha” — e o dado está a um campo de distância.
O desenho da lacuna. As caixas de cima existem; a seta pontilhada não existe. Ligá-la é a mudança de menor esforço e maior efeito de todo este guia — alguns campos a mais no enum, e o repertório de regras multiplica.

04O gargalo não é automação

Somando as dez lacunas, um padrão aparece — e é o mesmo que o guia de exceções antecipou.

Oito das dez lacunas são de modelagem, não de automação.

Não falta um motor — ele existe e é bom. Falta o que dar de comer a ele: o vínculo do resultado com o equipamento e o método, a corrida como período, os limites da faixa por exame × método, o de-para com unidade. Nenhum desses itens é uma tela; todos são campos e relações.

A

Por que isso é uma boa notícia: modelagem é trabalho conhecido, testável e que não depende de decisão de negócio nova. E porque o motor já existe, cada campo adicionado ao vocabulário se converte imediatamente em regras que o responsável técnico escreve sozinho, sem nova entrega de software. É o tipo de investimento cujo retorno não precisa de outra rodada de desenvolvimento para aparecer.

05A ordem proposta

Ordenada por efeito sobre esforço, e não por vistosidade. As três primeiras são pequenas e desbloqueiam a maior parte do resto.

BLOCO 1BARATO E DESTRAVA· vocabulário· FKs do resultado· de-para completocampos e relações, sem tela novaBLOCO 2FUNDAÇÃO COBRADA· faixa mensurável· corrida analítica· bancada no modelocadastros e um períodoBLOCO 3O TRABALHO GRANDE· microbiologia no ciclo comumestrutura em vez de JsonComeçar pelo bloco 3 é o erro clássico — é o que mais parece com produto.Mas sem o bloco 1, a microbiologia estruturada entra num motor que não sabe ler o que ela produz.
A sequência. O primeiro bloco é barato e destrava muito; o segundo é fundação que vários guias cobram; o terceiro só faz sentido depois dos dois. Começar pelo terceiro é o erro clássico, porque é o que mais parece com produto.
1

Ampliar o vocabulário da regra

Aceitar flag, interferente, valor absoluto, atributos do paciente e estado de calibração na condição. O motor já executa; é o enum que limita. Menor esforço, maior efeito imediato.

2

Ligar resultado a equipamento, método e lote

Quatro chaves estrangeiras no resultado. Desbloqueiam o método no laudo, a investigação por lote de reagente e a regra específica de plataforma.

3

Completar o de-para com unidade e conversão

É o campo que falha em silêncio. Enquanto não existir, toda integração nova carrega um risco que ninguém consegue auditar.

4

Cadastrar faixa mensurável e plausibilidade por exame × método

Habilita diluição automática, reporte correto nas pontas e retenção do valor impossível. Três funções de um cadastro.

5

Criar a corrida analítica como período

Com vínculo do resultado e do controle. É o que transforma o CQ de programa em condição, e o que responde à pergunta retroativa.

6

Trazer repetição e diluição da bancada para o modelo

Hoje vivem em store local. No modelo, viram indicador por analito e por equipamento — e alimentam a revisão das regras.

7

Unificar microbiologia no ciclo de vida comum

Estruturar isolado e sensibilidade em vez de Json, e pendurar no mesmo resultado. É o maior trabalho da lista, e o que mais paga em dado utilizável.

Guarde: note que nenhum dos sete itens é uma tela nova. As telas do analítico existem — bancada, verificação, liberação, painel, reflexo, repetições, microbiologia, interfaceamento. O que falta está embaixo delas, e é isso que explica por que a operação parece coberta e a automação não rende o que deveria.

Resumo do guia: o Lisya tem a peça difícil — motor de regras declarativo com modo observação, escopo, trilha da decisão e as sete ações — e tem a captura das exceções da dosagem. A lacuna central é que o vocabulário da condição lê quatro campos, então flags e interferentes já capturados são invisíveis para a regra. Oito das dez lacunas são de modelagem. Para transformar isso em roteiro de conversa com laboratório, o guia seguinte traz as perguntas de descoberta.

Ver as perguntas de descoberta →