メインコンテンツへスキップ
Extraction Rules のアクティビティを構成したので、field の値を検証および正規化するビジネスルールを追加できます。

医師IDの調整

最初に、「Doctor ID」field のプロパティを調整します。Extraction Rules アクティビティは、Optical Character Recognition (OCR) のエラーや不要な文字を含む可能性がある事前認識結果を使用します。field の領域が見つかったら、field のプロパティで正規表現を指定して、field の値をさらに調整できます。データは再抽出され、OCR エラーは解消されます。
  1. Skill 名をクリックし、Fields タブに進みます。
  2. “Doctor” グループを展開し、その横の設定 icon をクリックして “Doctor ID” field の設定を開きます。
  3. field プロパティの Value セクションで、Regular expression オプションの横にある追加 icon をクリックします。
  4. 次の式を Regular Expression Editor に貼り付けます: [0-9]{1}[\/.-]{1}[0-9]{5}[\/.-]{1}[0-9]{2}[\/.-]{1}[0-9]{3}
注: このエディターは、Extraction Rules Activity Editor で使用される表記とは異なる一般的な記法を使用します。詳細については、Regular Expression Editor の Syntax help をクリックしてください。
  1. Regular Expression Editor を閉じるには Save をクリックし、続いて field のプロパティを閉じるために Save をクリックします。

病欠証明書の有効性を確認する

患者は、最初に発病してから3日以内に病欠証明書を受け取る必要があります。つまり、発行日は発病日の3日後まででなければなりません。 この条件を確認するには、スクリプト ルールを設定します。
  1. データ フォームの下にある追加のiconをクリックします。New Ruleダイアログが開きます。
Note: 追加のiconが表示されない場合は、ドキュメント画像上部のReferenceセクションに切り替えてください。
  1. Advanced Script Ruleを選択し、Nextをクリックします。
  2. ルール名を「Check validity」に変更します。
  3. fieldsの一覧で「Date」「Start Date」「End Date」のfieldを選択します。
  4. Nextをクリックします。
  5. 次のスクリプトをスクリプト エディタに貼り付けます:
// アクセスするすべてのfieldの変数を作成
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;

//「Start Date」fieldがドキュメント上で見つかったかどうかを確認
if (startDate && issueDate)
{
   //発行日が開始日の3日以上後でないかを確認
    if ((issueDate.getTime() - startDate.getTime()) / 3600000 / 24 > 3)
    {
        Context.CheckSucceeded = false;
        Context.ErrorMessage = "病欠証明書の発行が遅すぎます";
    }
}
  1. Save をクリックし、セット内のさまざまなドキュメントでルールの動作を確認します。エラー処理の挙動を確認するには、データ フォーム上の field にテスト値を手動で入力できます。field の値を変更するたびに、ルールが再適用されます。

病欠期間の確認

病欠の開始日と終了日を使って病欠期間を計算します。文書に期間が指定されている場合は、計算した期間と一致するかを確認します。文書に期間が含まれていない場合は、計算した値を対応する field に書き込みます。
  1. ルールを作成するために、データ フォームの下にある add icon をクリックします。
  2. Advanced Script Rule を選択し、Next をクリックします。
  3. ルール名を「Check duration」に変更します。
  4. fields の一覧で「Start Date」「End Date」「Duration」の field を選択します。field の値を読み取るだけでなく、必要に応じて修正も行うため、両方の列で field を選択することが重要です。
  5. Next をクリックします。
  6. 次のスクリプトを script editor に貼り付けます。
// アクセスするすべてのfieldの変数を作成
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;

//「Start Date」と「End Date」のfieldがドキュメント上で見つかったかどうかを確認
if (endField && endDate && startField && startDate)
{
   //病欠期間を計算
   var length = (1 + (endDate.getTime() - startDate.getTime()) / 3600000 / 24);

   //期間fieldが見つからなかった場合、または数値として解析できなかった場合は、計算された値をfieldに渡す
   if (!durationField.Value)
       durationField.Value = length; 

   //期間fieldが見つかった場合は、その値を計算された期間と比較
   else if (durationField.Value != length)
   {
       Context.CheckSucceeded = false;
       Context.ErrorMessage = "「Duration」fieldの値が実際の病欠期間と一致しません";
       durationField.AddSuggestion(length.toString());
   }
}
  1. Save をクリックし、セット内の異なるドキュメントでこのルールの動作を確認します。エラー処理の挙動を確認するには、データ フォーム上の field にテスト値を手動で入力します。field の値を変更するたびに、ルールが再適用されます。