Cadastro de Fórmulas (Laudos)

Manual com objetivo de mostrar passo a passo como realizar o cadastramento de fórmulas para execução de cálculos no lançamento de resultados, afim de facilitar o entendimento da configuração dos parâmetros.

Versão

Proprietário

Nota

Data

Versão

Proprietário

Nota

Data

1.0

@Rafael Carvalho

Criação de documento

17/04/2023

1.1

@Rafael Carvalho

Inclusão de Condição para Bloqueio Laudo

05/05/2023

1.2

@Rafael Carvalho

Ajustes de imagens

31/05/2023

1.3

@Rafael Carvalho

Inclusão de Exemplos de IF complexos

09/02/2024

1.4

@Rafael Carvalho

Ajuste de Imagens/Inserção de Função

11/07/2024

1.5

@Rafael Carvalho

Inclusão de Função Retorno de Resultado

06/11/2024

Índice

Conceito do Cadastro de Fórmulas

Compreende-se como Cadastro de Fórmulas, a configuração de cálculos que serão utilizados para os campos de resultados no momento da digitação do resultado, para evitar cálculos manuais, ou, fórmulas de bloqueio para o lançamento como forma de segurança para impossibilitar o lançamento de resultados errôneos, tendo parâmetros pré-definidos para que seja feito de acordo com a regra inserida no cadastro.

É de suma importância a compreensão que todos os itens apontados neste Manual, são dados e orientações sugestivas no que tange à parametrização do sistema. Sendo assim, o laboratório em questão pode desenvolver métricas e apontamentos que julgarem necessários, variando com o nível exigência que desejam atingir.  

Nas telas, o sistema apresenta botões PADRÕES que serão utilizados para edição e manipulação dentro do sistema:

Figura 1. Botões Padrões Cadastro de Fórmula.
Figura 2. Outros Filtros (Menu após clicar na opção2).

1 - Adicionar: Para incluir um novo registro.

2 - Outros Filtros (Gravar Ultima Pesquisa): Grava por máquina, os filtros que você faz no item “4”, ou seja, salva o último filtro que você fez e abre aquele filtro como padrão, sempre que entrar na tela específica.

3 - Limpar Filtros: Limpa todos os filtros que você faz no item “4” da tela.

4 - Menus para Filtro: Opções de Filtros e Ordenação dos campos clicando em cima das setas das respectivas colunas que deseja.

5 - Modificar/Alterar: Modifica/Altera informações do registro selecionado.

6 - Exclusão: Exclui um registro selecionado.

7 - Paginação: Muda a página para exibição de registros se houver mais de 1 página, podendo avançar/retornar 1 página, ou ir para a última/primeira página, respectivamente.

8 - Quantidade de Registros: Possibilidade de mudar a quantidade de registros exibido na tela.

9 - Histórico de Exclusão: Exibe em lista uma rastreabilidade de todos os registros deletados da tela específica.

Cadastro de Fórmulas

Para cadastrarmos Layout de exames, é necessário colocar uma descrição e vincular o layout a um exame padrão.

Para cadastrarmos, deveremos ir no menu “Cadastros” e em seguida expandir a aba “Exames” e clicar em “Fórmulas”, abaixo temos uma imagem mostrando o procedimento.

 

Feito isso, clicaremos em “ADICIONAR”, irá abrir a tela para preenchermos as informações e realizar as devidas configurações, é obrigatório apenas o NOME e o CÁLCULO/FÓRMULA para concluir o cadastro.

1 - Nome: Para definir um nome para essa fórmula.

2 - Quantidade de Parâmetros: Apenas um contador sobre a quantidade de Parâmetros existentes no cálculo.

3 - Adicionar Parâmetro: Com essa opção você adiciona os parâmetros dinâmicos, p01,p02,p03…, para utilizá-los na fórmula de maneira dinâmica, sendo assim, você pode usar uma mesma fórmula (Caso o calculo seja o mesmo), para vários layouts, pois você consegue definir na linha de resultado, quem é o p01, quem é o p02, e assim por diante.

4 - Copiar Fórmula Existente: Copia uma fórmula existente de acordo com a seleção para a fórmula nova que está criando.

5 - Lista dos Parâmetros: Mostra a lista de parâmetros adicionados/utilizados na fórmula, de forma sequencial, p01,p02,p03……p50.

6 - Fórmula: Aqui é o campo destinado para escrever a sintaxe da fórmula, lembrando que a sintaxe é semelhante a fórmulas de Excel.

8 - Testar Fórmula: Com essa opção, você consegue fazer testes reais sobre a fórmula escrita, para checar se a fórmula está sendo executada de maneira correta, ao clicar nesse teste, você poderá digitar valores para p01,p02, etc., para testar o cálculo.

9 - Gravar: Para Salvar a inclusão/alteração realizada na fórmula, é importante sempre clicar aqui, caso contrário qualquer alteração feita não será salva.

Antes de prosseguirmos, devemos saber que, as sintaxes das fórmulas é semelhante a fórmulas de Excel, sendo assim, tornando mais fácil a sua configuração.

Além disso as fórmulas são dinâmicas, sendo assim, se já existe algum parâmetro utilizando a fórmula, a edição dessa fórmula terá reflexo para TODOS os campos que utilizam ela, a partir do momento de sua alteração.

Não é possível realizar a exclusão de fórmula quando se há parâmetro utilizando essa fórmula.

Para campos strings (tipo texto) devemos utilizar os parâmetros de referência com aspas dupla (““), caso contrário dará erro de sintaxe, exemplo: “p01”+”p02”.

Campos numéricos não devem ter aspas dupla (““), exemplo p01+p02.

Também não é possível incluir/remover parâmetro, marcar/desmarcar que é uma condição de bloqueio se a fórmula estiver vinculado a alguma linha/layout, conforme imagem abaixo:

Pode ser uma linha (No caso de linha de resultado, irá aparecer se está vinculado ao parâmetro ou parâmetro2, e o nome do campo no layout.

No caso da condição de bloqueio, a lista de parâmetros ficará vazio, pois a condição de bloqueio não tem vínculo com a linha e sim com o layout.

Abaixo, temos alguns exemplos dos operadores principais de cálculo, e com alguns exemplos de calculo. Onde daremos o valor para p01 de 10 e p02 de 2.

Operadores Aritméticos

Realizam as funções de cálculo matemático

Tipo de Operação

Operador

Exemplo

Resultado

Tipo de Operação

Operador

Exemplo

Resultado

Soma

+

p01+p02

10+2 = 12

Subtração

-

p01-p02

10-2 = 8

Divisão

/

p01/p02

10/2 = 5

Multiplicação

*

p01*p02

10*2 = 20

Exponencial

^

p01^p02

10^2 = 100

Operadores Lógicos

Comparam duas ou mais variáveis. Retornam valores booleanos, 1 para verdadeiro e 0 para falso.

Tipo de Operação

Operador

Exemplo:

Resultado

Tipo de Operação

Operador

Exemplo:

Resultado

E

AND

p01=10 AND p02=2

1 (Verdadeiro)

Ou

OR

p01=10 OR p02=2

1 (Verdadeiro)

Igual

=

p01=0

0 (Falso)

Não Igual (Diferente)

<>

p01<>0

1 (Verdadeiro)

Menor

<

p01<10

0 (Falso)

Menor ou Igual

<=

p01<=10

1 (Verdadeiro)

Maior

>

p01>11

0 (Falso)

Maior ou Igual

>=

p01>=11

0 (Falso)

Concatenar

Concatena os valores desejados

Operador

Exemplo:

Resultado

Operador

Exemplo:

Resultado

CONCATENATE(““,””) ou

(“a” & “b”)

CONCATENANTE(“abc”,”p01”,”p02”) ou

(“abc” & p01+p02)

abc102

abc12 (No caso, p01+p02 sem aspas(““) seria um valor numérico, onde faria a soma dos dois parâmetros para retornar o valor, que no caso seria 10+2 = 12)

Se (Comparação)

Operador

Exemplo:

Resultado:

Operador

Exemplo:

Resultado:

IF()

IF(p01<20,"MENOR QUE 20","MAIOR QUE 20")

p01 é igual a 10, sendo assim, o resultado dessa fórmula seria "MENOR QUE 20".

Ou seja, é feito uma checagem da condição se é verdadeiro ou falso.

Pode-se incluir várias checagens em um mesmo IF utilizando o "IF(AND())" para checar se 1 E Outra condição são verdadeiras, ou usar "IF(OR())" para checar se 1 OU Outra condição são verdadeiras também, ou fazer mais de um IF em uma única fórmula, exemplos abaixo:

IF(,IF())

IF(p01<20,"MENOR QUE 20", IF(p01>30,p01*p02,p01/p02))

Caso primeiro IF for verdadeiro, vai escrever "MENOR QUE 20".
Caso segundo IF for verdadeiro, vai executar o cálculo, p01*p02.
Caso nenhum dos IF’s forem verdadeiro, vai executar o ultimo calculo, p01/p02.

Condição você aplica como for necessário, mensagem ou cálculo.

IF(AND(),)

IF(AND(p01 > 30 & p02 > 20),p01*p02,p01/p02)

Caso o IF for verdadeiro (AMBAS as condições verdadeiras, p01>30 E p02>20, vai executar o cálculo, p01*p02.
Caso nenhum dos IF’s forem verdadeiro, vai executar o ultimo calculo, p01/p02.

IF(OR(),,)

IF(OR(p01=0,p02=0),"0",(p01/p02))

Caso o IF for verdadeiro (UMA ou OUTRA condição for verdadeiras, p01=0 OU p02=0, vai manter o valor "0".
Caso nenhum das condições forem verdadeiras, vai executar o ultimo calculo, p01/p02.

Cálculo Resultado

Feito a introdução, vamos a criação de uma fórmula para cálculo:

Acima temos um exemplo simples, onde estamos fazendo uma soma de p01+p02.

Vamos agora então, executar o teste dessa fórmula simples, clicaremos no botão de “Testar Fórmula”:

Ao preencher os valores de cada parâmetro, clicamos no “Executar” que será realizado o calculo configurado e será exibido o resultado desse cálculo para avaliarmos se a fórmula está correta.

Condição de Bloqueio

Já para a condição de bloqueio, temos que marcar o checkbox “Condição de bloqueio” e colocar a expressão da condição da seguinte forma:

IF(Condição,(“MENSAGEM DE EXIBIÇÃO”),FALSE())

Onde na “Condição” será nossa condição de bloqueio, por exemplo, no calculo de proteína total e frações (PROTEINA - ALBUMINA) a ALBUMINA NÃO pode ser MAIOR que a PROTEINA. Sendo assim, segue um exemplo dessa fórmula:

IF(p01>p02,("Erro ... Albumina não pode ser MAIOR que a Proteína Total, Resultado: "& p01),FALSE())

Essa fórmula ta checando se p01 é MAIOR que p02, se for, ele irá exibir a mensagem “Erro… Albumina não pode ser……..”& (Concatenador) p01 (Vai exibir junto com a frase entre ““, o valor de p01).

Exemplo de execução na fórmula:

Nesse caso, quando for lançar o exame cujo o layout tenha essa condição de bloqueio informada, ao clicar no “SALVAR” do lançamento de resultados, e essa condição for VERDADEIRA, será exibido a mensagem digitada na fórmula e não deixará salvar o lançamento, caso for FALSA, será permitido salvar normalmente.

Exemplo:

Exemplo de IF com mais de uma condição de bloqueio:

IF(OR(p01>p02,(p03<>(p01-p02))),("Erro ... Albumina não pode ser MAIOR que a Proteína Total e Valor GLOB não pode ser diferente PROT-ALB, Resultado GLOB: "& p03),FALSE())

Ou, pode ser feito de outra maneira também:

IF(p02 > p01, "Erro... Albumina não pode ser MAIOR que a Proteína Total, Resultados: "& p01 & " e "& p02,
IF(p03 <> (p01 - p02),"Erro... Valor GLOB não pode ser diferente de PROT-ALB, Resultado BILI: " & p03,FALSE()))

Fórmula com Função Banco

Podemos também ter fórmulas que utiliza uma função do banco, para retornar algum valor ou campo, onde passaremos a função em volta do caractere “$” e os parâmetros.

Exemplo:

$FATOR_LDL(p01,p02)$

Nessa fórmula acima, está puxando o FATOR LDL (Fórmula de Martin), passando os parâmetros p01 e p02 que são necessários para a função “FATOR_LDL” retornar um valor.

Também é possível usar essa fórmula como um agregador da fórmula como um todo, ou seja, usar outros cálculos junto com a função, exemplo abaixo ja calculando o LDL com o fator.

Exemplo:

(p01-p02)-(p03/$FATOR_LDL(p03,p04)$)

O teste de fórmula não possui diferença, pode ser feito normalmente substituindo os valores dos parâmetros (p01, p02, p03, etc.)


Outro exemplo comum, puxando algum campo da movpac:

$ret_movpac('p01',movexa)$

Na fórmula vinculada a linha do layout, você digitará o campo que quer da movpac como valor fixo do p01, exemplo trazendo o campo idade:

Para testar a fórmula, também pode digitar o valor do campo no p01 e ao invés de usar “movexa” colocar p02 para colocar um id válido para testar a função.

O “movexa” na fórmula, será substituído no momento do lançamento de resultados de forma automática pelo respectivo ID do lançamento.

OBS.: O nome do campo deve ser exatamente igual ao nome do campo no banco de dados.


Outro exemplo comum, puxando o valor do resultado de algum parâmetro de outro exame do mesmo atendimento:

$ret_resultado_sia('p01',p02,movpac_id)$

p01= deve ser o nome do parâmetro no layout, exemplo “TRI”, precisa ser exatamente igual.

p02= deve ser id do exame que quer puxar o resultado, Ex.: 161.

O “movpac_id” na fórmula, será substituído no momento do lançamento de resultados de forma automática pelo respectivo ID do lançamento.

Na fórmula vinculada a linha do layout, você digitará o campo que quer do parâmetro de resultado, como valor fixo do p01, e no p02 o id do exame, também como valor fixo.

Exemplo trazendo o valor do parâmetro “TRI” do exame cujo id é 161 (No caso do exemplo seria o TRIGLICERIDEOS):

Para testar a fórmula, também pode digitar o valor do campo no p01 e p02, e ao invés de usar “movpac_id” colocar p03 para colocar um movpac_id válido para testar a função.

OBS.: O nome do parâmetro deve ser exatamente igual ao nome do parâmetro informado do layout do exame desejado.

Conclusão

Podemos concluir que, o Cadastro de Fórmulas é de suma importância para digitação de resultados baseando-se em exames/laudos que é necessário realizar cálculos para um determinado resultado ou condições de bloqueio, facilitando assim, a digitação de resultados, evitando erro de digitação e bloqueando lançamentos incorretos. Entretanto, é necessário que o cálculo/fórmula seja criado de maneira adequada para que não ocorra erro de cálculo e liberação de resultado incorreto.