Dopo aver configurato le attività di Extraction Rules, possiamo aggiungere regole di business per convalidare e normalizzare i valori dei field.
Per prima cosa, regoleremo le proprietà del field “Doctor ID”. L’attività Extraction Rules lavora sui risultati del pre-riconoscimento, che possono contenere errori di Optical Character Recognition (OCR) e caratteri superflui. Una volta individuata la regione del field, possiamo perfezionare il valore del field specificando un’espressione regolare nelle proprietà dei field. I dati verranno rielaborati e gli errori OCR verranno eliminati.
- Fai clic sul nome della skill e poi vai alla scheda Fields.
- Espandi il gruppo “Doctor” e apri le impostazioni del field “Doctor ID” facendo clic sull’icona delle impostazioni accanto ad esso.
- Nella sezione Value delle proprietà del field, fai clic sull’icona Aggiungi accanto all’opzione Regular expression.
- Incolla la seguente espressione nel Regular Expression Editor:
[0-9]{1}[\/.-]{1}[0-9]{5}[\/.-]{1}[0-9]{2}[\/.-]{1}[0-9]{3}
Questo editor utilizza una notazione comune che differisce dalla notazione usata nell’Extraction Rules Activity Editor. Per maggiori informazioni, fai clic su Syntax help nel Regular Expression Editor.
- Fai clic su Save per chiudere il Regular Expression Editor e poi fai clic su Save per chiudere le proprietà del field.
Verifica della validità del certificato di malattia
Il paziente dovrebbe ricevere il certificato di malattia entro 3 giorni da quando si è ammalato per la prima volta. Ciò significa che la data di emissione non deve essere successiva al terzo giorno dalla data di inizio della malattia.
Per verificare questa condizione è necessario configurare una regola di script
- Fai clic sull’icona di aggiunta sotto il modulo dati. Si aprirà la finestra di dialogo New Rule.
Se non vedi l’icona di aggiunta, passa alla sezione Reference sopra l’immagine del documento.
- Seleziona Advanced Script Rule e fai clic su Next.
- Rinomina la regola in “Check validity”.
- Seleziona i field “Date”, “Start Date” e “End Date” nell’elenco dei fields.
- Fai clic su Next.
- Incolla il seguente script nell’editor di script:
// Crea variabili per tutti i field a cui accederai
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;
//Verifica se il field "Start Date" è stato trovato sul documento
if (startDate && issueDate)
{
//Verifica se la data di emissione non supera i 3 giorni dalla data di inizio
if ((issueDate.getTime() - startDate.getTime()) / 3600000 / 24 > 3)
{
Context.CheckSucceeded = false;
Context.ErrorMessage = "Il certificato medico è stato emesso troppo tardi";
}
}
- Fai clic su Save ed esamina come la regola funziona su diversi documenti del set. Per verificare come la regola gestisce gli errori, puoi immettere manualmente valori di test nei field nel modulo dati. La regola verrà riapplicata ogni volta che modifichi il valore del field.
Controllo della durata del congedo per malattia
Calcoleremo la durata del congedo per malattia utilizzando le date di inizio e fine malattia. Se nel documento è specificata una durata, verificheremo che sia uguale alla durata calcolata. Se il documento non contiene una durata, scriveremo il valore calcolato nel field corrispondente.
- Fare clic sull’icona Add sotto il modulo dati per creare una regola.
- Selezionare Advanced Script Rule e fare clic su Next.
- Rinominare la regola in “Check duration”.
- Selezionare i field “Start Date”, “End Date” e “Duration” nell’elenco dei fields. È importante selezionare i field in entrambe le colonne, poiché non ci limiteremo a leggere i valori dei field, ma li correggeremo anche se necessario.
- Fare clic su Next.
- Incollare il seguente script nell’editor di script:
// Crea variabili per tutti i field a cui accederai
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;
//Verifica se i field "Start Date" e "End Date" sono stati trovati nel Document
if (endField && endDate && startField && startDate)
{
//Calcola la durata del congedo per malattia
var length = (1 + (endDate.getTime() - startDate.getTime()) / 3600000 / 24);
//Se il field della durata non è stato trovato o non può essere interpretato come numero, passa il valore calcolato al field
if (!durationField.Value)
durationField.Value = length;
//Se il field della durata è stato trovato, confronta il suo valore con la durata calcolata
else if (durationField.Value != length)
{
Context.CheckSucceeded = false;
Context.ErrorMessage = "Il valore del field \"Duration\" non corrisponde alla durata effettiva del congedo per malattia";
durationField.AddSuggestion(length.toString());
}
}
- Fai clic su Save ed esamina come funziona la regola sui diversi documenti del set. Per verificare come la regola gestisce gli errori, puoi immettere manualmente valori di test nei field del modulo dati. La regola verrà applicata di nuovo ogni volta che modifichi il valore di un field.