Pular para o conteúdo principal
Após configurar as atividades de Extraction Rules, podemos adicionar regras de negócios para validar e normalizar os valores dos campos.

Ajustando o ID do médico

Primeiro, vamos ajustar as propriedades do campo “Doctor ID”. A atividade Extraction Rules trabalha com resultados de pré-reconhecimento que podem conter erros de OCR (Optical Character Recognition) e caracteres desnecessários. Depois de encontrar uma região de campo, podemos ajustar o valor do campo especificando uma expressão regular nas propriedades do campo. Os dados serão extraídos novamente e os erros de OCR serão eliminados.
  1. Clique no nome da Skill e vá até a guia Fields.
  2. Expanda o grupo “Doctor” e abra as configurações do campo “Doctor ID” clicando no ícone de configurações ao lado dele.
  3. Na seção Value das propriedades do campo, clique no ícone de adicionar ao lado da opção Regular expression.
  4. Cole a seguinte expressão no Regular Expression Editor: [0-9]{1}[\/.-]{1}[0-9]{5}[\/.-]{1}[0-9]{2}[\/.-]{1}[0-9]{3}
Observação: Este editor usa uma notação comum que difere da notação usada no Extraction Rules Activity Editor. Para mais informações, clique em Syntax help no Regular Expression Editor.
  1. Clique em Save para fechar o Regular Expression Editor e, em seguida, clique em Save para fechar as propriedades do campo.

Verificando se o atestado médico é válido

O paciente deve receber o atestado médico em até 3 dias após ficar doente pela primeira vez. Isso significa que a data de emissão deve ser no máximo 3 dias após a data de início da doença. Para verificar essa condição, precisamos configurar uma regra de script
  1. Clique no ícone de adicionar abaixo do formulário de dados. A caixa de diálogo Nova regra será aberta.
Observação: Se você não visualizar o ícone de adicionar, altere para a seção Referência acima da imagem do documento.
  1. Selecione Regra de script avançada e clique em Avançar.
  2. Renomeie a regra para “Verificar validade”.
  3. Selecione os campos “Date”, “Start Date” e “End Date” na lista de fields.
  4. Clique em Avançar.
  5. Cole o seguinte script no editor de script:
// Crie variáveis para todos os campos que você irá acessar
var dateField = Context.GetField("Date");
var startField = Context.GetField("Start Date");
var endField = Context.GetField("End Date");

var issueDate = dateField.Value;
var startDate = startField.Value;

//Verifique se o campo "Start Date" foi encontrado no documento
if (startDate && issueDate)
{
   //Verifique se a data de emissão não ultrapassa 3 dias após a data de início
    if ((issueDate.getTime() - startDate.getTime()) / 3600000 / 24 > 3)
    {
        Context.CheckSucceeded = false;
        Context.ErrorMessage = "O atestado médico foi emitido com atraso";
    }
}
  1. Clique em Salvar e veja como a regra funciona em diferentes documentos do conjunto. Para verificar como a regra trata erros, você pode inserir manualmente valores de teste nos campos do formulário de dados. A regra será reaplicada sempre que você alterar o valor do campo.

Verificando a duração da licença médica

Vamos calcular a duração da licença médica usando as datas de início e término da licença. Se o documento especificar uma duração, verificaremos se ela é igual à duração calculada. Se o documento não contiver uma duração, escreveremos o valor calculado no campo correspondente.
  1. Clique no ícone de adicionar abaixo do formulário de dados para criar uma regra.
  2. Selecione Advanced Script Rule e clique em Next.
  3. Renomeie a regra para “Check duration”.
  4. Selecione os campos “Start Date”, “End Date” e “Duration” na lista de fields. É importante selecionar os campos em ambas as colunas, pois não vamos apenas ler valores de campo, mas também corrigi-los, se necessário.
  5. Clique em Next.
  6. Cole o seguinte script no editor de script:
// Crie variáveis para todos os campos que você irá acessar
var startField = Context.GetField("Start Date") ;
var endField = Context.GetField("End Date");
var durationField = Context.GetField("Duration");

var startDate = startField.Value;
var endDate = endField.Value;

//Verifique se os campos "Start Date" e "End Date" foram encontrados no documento
if (endField && endDate && startField && startDate)
{
   //Calcule a duração da licença médica
   var length = (1 + (endDate.getTime() - startDate.getTime()) / 3600000 / 24);

   //Se o campo de duração não foi encontrado ou não pôde ser interpretado como um número, atribua o valor calculado ao campo
   if (!durationField.Value)
       durationField.Value = length; 

   //Se o campo de duração foi encontrado, compare seu valor com a duração calculada
   else if (durationField.Value != length)
   {
       Context.CheckSucceeded = false;
       Context.ErrorMessage = "O valor do campo \"Duration\" não corresponde à duração real da licença médica";
       durationField.AddSuggestion(length.toString());
   }
}
  1. Clique em Salvar e examine como a regra funciona em diferentes documentos do conjunto. Para verificar como a regra lida com erros, você pode inserir manualmente valores de teste nos campos do formulário de dados. A regra será aplicada novamente sempre que você alterar o valor do campo.