Após configurar as atividades de Extraction Rules, podemos adicionar regras de negócios para validar e normalizar os valores dos campos.
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.
- Clique no nome da Skill e vá até a guia Fields.
- Expanda o grupo “Doctor” e abra as configurações do campo “Doctor ID” clicando no ícone de configurações ao lado dele.
- Na seção Value das propriedades do campo, clique no ícone de adicionar ao lado da opção Regular expression.
- Cole a seguinte expressão no Regular Expression Editor:
[0-9]{1}[\/.-]{1}[0-9]{5}[\/.-]{1}[0-9]{2}[\/.-]{1}[0-9]{3}
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.
- 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
- Clique no ícone de adicionar abaixo do formulário de dados. A caixa de diálogo Nova regra será aberta.
Se você não visualizar o ícone de adicionar, altere para a seção Referência acima da imagem do documento.
- Selecione Regra de script avançada e clique em Avançar.
- Renomeie a regra para “Verificar validade”.
- Selecione os campos “Date”, “Start Date” e “End Date” na lista de fields.
- Clique em Avançar.
- 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";
}
}
- 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 doença. Se o documento especificar uma duração, vamos verificar se ela é igual à duração calculada. Se o documento não contiver uma duração, vamos inserir o valor calculado no campo correspondente.
- Clique no ícone de adicionar abaixo do formulário de dados para criar uma regra.
- Selecione Advanced Script Rule e clique em Next.
- Renomeie a regra para “Check duration”.
- 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 campos, mas também corrigi-los, se necessário.
- Clique em Next.
- Cole o seguinte script no editor de script:
// Crie variáveis para todos os campos que você vai 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 do afastamento médico
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 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 do afastamento médico";
durationField.AddSuggestion(length.toString());
}
}
- Clique em Save e examine como a regra se comporta 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á reaplicada sempre que você alterar o valor do campo.