ルール (V1) の作成

18R3 以前

ルールエンジンを使用することでデータ入力規則を作成し、Vault EDC でデータを検証することができます。次に Vault は、ルールの評価に基づいて特定のタスクを実行することができます:

  • ユーザがフィールドから離れたらシステム生成クエリを作成します。
  • 入力されたデータに基づいて試験イベントグループを表示します。
  • 入力されたデータに基づいて特定の項目を条件付きで有効化・無効化します。

式を使用して単位変換を定義することもできます。試験に単位変換を定義した場合、データ入力ユーザのローカライズされた入力形式にかかわらず、Vault EDC は正しい単位を使用して入力された値を変換・保存することができます。

エクスプレッションエンジンのバージョン: 以下の内容は、19R1 (2019 年 4 月) リリース以前のオリジナルの式の文法およびルールエディタ (エクスプレッションエンジン V1) を参照しています。試験が 19R1 リリースより後に作成された場合、ルール (V2) の作成を参照してください。

システム管理データ入力規則

データ入力規則は単一の項目に制限を強制します。Vault EDC は、項目定義プロパティパネルに定義されるプロパティを使用して、システム管理データ入力規則を作成します。Vault EDC は以下のプロパティにデータ入力規則を自動作成します:

  • 必須フィールド (必須チェックボックス)
  • 範囲バリデーション (最小値および最大値)
  • 将来の日付のバリデーション (将来の日付)

デフォルトでは、システム管理ルールは、ユーザ定義ルールタブに表示されません。組織が Studio でこれらのルールの表示を希望する場合、表示するように選択することができます。

ユーザ定義ルールタブにシステム管理ルールを表示するには:

  1. 管理者 > ビジネス管理者 > 試験設定に移動します。
  2. + 作成をクリックします。
  3. 名前に、「show_system_rules」と入力します。
  4. 試験で、該当の試験を選択します。
  5. に、「true」と入力します。
  6. 保存をクリックします。

有効にすると、システム管理ルールは Studio のルールタブに表示されますが、編集は関連する項目定義プロパティパネルからのみ可能です。システム管理ルールはクリックできません (ルール名が青色でハイライトされていません)。

ルールのプロパティ

プロパティパネルからルールの追加の設定を行うことができます。プロパティの必須部分は黄色の背景で表示されます。使用可能なプロパティの説明については、ルール設計のプロパティを参照してください。

ルールによるデータ入力規則クエリ

複数の項目全体にデータ入力規則を作成できるほか、システム管理ルールのプロパティに基づかずに単一の項目にルールを作成することができます。入力される項目値が定義した条件に一致しない場合、Vault はクエリを作成します。

  1. ルールタブに進みます。
  2. + 新規ルールをクリックします。
  3. 名前を入力します。
  4. ルールが適用されるフォームを選択します。
  5. 条件タブで、を入力します。式の構文が間違っている場合、ルールを保存することはできません。 クエリルール式の追加

  6. アクションタブをクリックします。
  7. アクションタイプドロップダウンからクエリを選択します。
  8. ポスト先へのクエリの項目を入力します。完全で正確な項目名 (プロパティパネルの名前)フィールド) を入力する必要があります。 クエリルールアクション

  9. クエリメッセージを入力します。このテキストはフォームのクエリコメントとして表示されます。
  10. 保存をクリックします。

これでデータ入力規則がスタディで有効になります。既存のルールを無効にするには、有効のチェックボックスの選択を解除します。

データ入力規則はルールタブにクリック可能リンクとして表示されます。リンクをクリックすると試験ルールの追加ダイアログが再度開き、ルールを編集することができます。作成したルールのプロパティパネルを開くには、リンク横のルールの行をクリックします。

データ入力規則の例

{バイタル/拡張期血圧} > {バイタル/収縮期血圧}

この例では、Vault EDC は、一番左側の項目値である拡張期血圧が一番右側の項目値である収縮期血圧よりも大きい場合にクエリを生成します。これらの両項目はバイタルフォームにあります。この式には 2 つの識別子が含まれるため、各識別子は波括弧で囲まれます。

ケースブックのバージョン番号を参照

特定のバージョンの被験者のケースブックのみを評価するようにデータバリデーションルールを設定することができます。例えば、ルールをバージョンが 8 未満のすべてのケースブックで実行するようにすることができます。このタイプのルールは、新しい設計に基づいて特定のルールが無効になるようにケースブック定義を更新した場合に有用です。

バージョン番号を参照するには、次の構文を使用します: {@casebook__v.casebook_def__vr.version__v}.

dateTimeDiff({Demographics/Birth Date Time}, {Screening}) >= 0 &&{@casebook__v.casebook_def__vr.version__v} > 7

上記の例の式は、このルールはケースブックのバージョンが 7 より大きい場合にのみ、被験者の生年月日の日時スクリーニングイベントの日時の差が 0 以上かどうかを判断します。

アーカイブ化 (削除) ルール

削除されたルールは アーカイブ化されます。アーカイブされたルールは、無効なルールと同じ方法で動作します。Vault は、これらのルールを検証および文書化から除外し、(アーカイブ済みステータスで) デプロイし、ユーザがルールを有効としてマークできないようにします。これらのルールの実行は阻止されます。

デフォルトでは、アーカイブされたルールはユーザ定義のルールの一覧表示内に含まれません。アーカイブされたルールを表示チェックボックスをオンにすると、アーカイブされたルールを追加します。アーカイブされたルールには、アーカイブ済み列に緑色のチェックマーク () が表示されます。

ルールをアーカイブする方法

ルールをアーカイブするには:

  1. スタディスタジオ > ユーザ定義のルールに移動します。
  2. リスト内のルールを見つけます。
  3. ルールの名前にカーソルを合わせると、アクションメニューが表示されます。
  4. アクションメニューから、削除を選択します。

  5. ルールの削除確認ダイアログで、削除をクリックします。

あなたのルールは現在アーカイブされています。リスト内で表示するには、アーカイブされたルールを表示チェックボックスをオンにしてください。

ルールを復元する方法

アーカイブされた (削除済み) ルールを復元するには:

  1. スタディスタジオ > ユーザ定義のルールに移動します。
  2. アーカイブされたルールを表示チェックボックスをオンにします。
  3. リスト内のルールを見つけます。
  4. ルールの名前にカーソルを合わせると、アクションメニューが表示されます。
  5. アクションメニューから、削除されたルールを復元を選択します。

Vault が該当するルールを復元します。ルールは有効になり、通常通り実行されます。

ルールによる動的試験デザイン

試験にデータ入力規則を使用して、ユーザ入力データに基づき事象グループを動的に追加することができます。例えば、ルールを設定して、症例のコホートまたは無作為化番号に基づいてケースブックに表示される事象グループを制御することができます。また、データ入力規則を使用して、別の項目値に基づいてデータ収集項目を動的に有効化・無効化することもできます。

動的スタディデザインルールを作成するには:

  1. ルールタブに進みます。
  2. + 新規ルールをクリックします。
  3. 名前を入力します。
  4. 条件タブで、を入力します。入力した式が、ユーザが入力したデータでTrueを返す場合、Vault EDC はイベントグループイベント、またはフォームを追加するか、あるいは項目を有効化します。
  5. アクションタブをクリックします。
  6. アクションタイプドロップダウンから、スケジュールの追加を選択してイベントグループを追加するか、イベントの追加を選択してイベントを追加するか、フォームの追加を選択してフォームを追加するか、または項目をスキップを選択して条件付きで項目を有効にします。
  7. オブジェクトにアクションを設定ドロップダウンから、追加または有効にするイベントグループイベントフォーム、または項目を選択します。注: イベントフォームは、 イベントの追加およびフォームの追加アクションタイプで動的チェックボックスが選択されている場合にのみ選択することができます。 動的イベントグループのルールアクション

  8. 保存をクリックします。

事象グループ

このデータ入力規則を使用すると、Vault EDC が評価するデータが True と入力された際に、Vault EDC は指定された事象グループをそのケースブックに自動的に追加します。

データ入力規則を使用して、スタディの最初の事象グループの後に事象グループを表示する必要があります。単に試験のすべてのイベントグループを一度に表示する場合、そのようにルールを設定することができます。以下の例をご確認ください。

textEquals({ItemGroup/Item}, _Item_value_)

すべてのイベントグループを表示するには、試験の最初のフォーム項目を使用します。どの項目値が入力されても式が True を返すように、式に考えられるすべての値を含めます。表示したい事象グループごとにルールを設定する必要があります。例えば、試験に 2 つのコホートがあり、コホートが事象グループ A 事象グループ B に分かれている場合、事象グループ A を追加するルールを 1 つと、事象グループ B を追加する別のルールを 1 つ作成する必要があります。

イベント & フォーム

動的イベントフォームを使用する前に、Veeva サポートに連絡してこの機能を有効にする必要があります。

管理項目のアクションタイプイベントの追加またはフォームの追加を使用してルールを設定することで、ユーザが入力したデータを基に条件付きでイベントフォームケースブックに追加することができます。このルールがTrueと評価されると、ケースブックに自動的に依存イベントまたは依存フォームが追加されます。ルールがFalseと評価された場合、イベントまたはフォームの追加は実行されません。

これらのルールでイベント定義またはフォーム定義を使用するには、プロパティパネルでそのイベントまたはフォーム動的チェックボックスをオンにする必要があります。

例えば、ユーザがフォームのフォローアップ来院が必要チェックボックスをオンにしたときに、フォローアップ来院イベントを追加するルールを作成できます。

条件付きで複数のイベントまたはフォームを追加するには、オブジェクトにアクションを設定フィールドに複数の識別子をカンマ区切りで入力します。注: イベントの追加ルールには複数のイベントフォームの追加ルールには複数のフォームのみ入力することができます。

動的イベントグループとは異なり、試験イベントまたはフォームを表示するために、イベントの追加ルールとフォームの追加ルールを作成する必要はありません。これらのルールは、動的フィールドで使用できる機能と同様に、アドホックに条件付きでイベントフォームを追加するために使用することを目的としています。

「イベントの追加」ルールと「フォームの追加」ルールの削除

他のルールタイプとは異なり、イベントの追加ルールとフォームの追加ルールでは、ルールの実行時に追加のルールの結果オブジェクトレコードが作成されます。ルールが既に実行されているこれらのタイプのルールを削除する必要がある場合、まずそのルールに関連する既存のすべてのルールの結果レコードを削除する必要があります。

注: ケースブック定義が未発行である場合、次の手順を実行せずにこれらのルールを削除することができます。

ルールの結果レコードを削除するには:

  1. 管理者 > 企業管理者ルールの結果オブジェクトに移動します。
  2. ルール定義フィールドで、削除するルールを含むすべてのルール結果レコードを探します。アクションメニューから列の編集を選択して、追加するルール定義列を選択します。
  3. ルール結果レコードで、各ルール結果レコードのアクションメニューから削除を選択します。
  4. OK をクリックします。

フィールド

データ入力項目または項目グループを条件付きで有効にするには、1 つの管理項目に対して項目をスキップアクションタイプを使用してルールを設定します。項目スキップルールがTrueと評価されると、Vault EDC は依存項目または依存項目グループが自動的に無効化されます。ルールがFalseと評価された場合、その依存項目または項目グループは有効のまま変更されません。

現在のリリースでは、式の管理項目としてブール型またはコードリスト型の項目を 1 つだけ使用することができます。

ただし、式にOR文を使用することで、依存項目または依存項目グループを無効にする条件として、管理項目に複数の値を設定することもできます。

例えば、性別項目に基づいて妊娠検査結果項目を条件付きで無効化するルールを構築することができます。

textEquals({スクリーニング来院/統計情報/再生条件/性別}, 男性)

このルールを使用して、妊娠検査結果項目に項目をスキップアクションを設定します。Vault は性別にユーザが入力したデータを評価し、性別項目が男性に設定された場合、妊娠検査結果を無効化します。

条件付きで複数の項目または項目グループを有効にするには、複数の識別子をカンマ区切りで入力します。以下の例では、妊娠検査受胎調節の項目を有効または無効にします。

{Creation Criteria/Pregnancy Test}, {Creation Criteria/Birth Control}

注: 無効化された項目に対して必須項目クエリが作成されることはありません。

ルールによる値の導出

試験内のルールを使用して、自動的に項目フィールドに導出した値を入力することができます。この機能を使用するには、管理者が Veeva サポートに連絡して有効にする必要があります。

現在のリリースでは、項目値タイプの設定ルールはタシングルフォームです。式で参照する項目は、派生項目と同じフォーム上にある必要があります。

項目値を導出するルールを作成するには:

  1. 項目定義を作成または編集して派生項目タイプに設定します。
  2. ルールタブに進みます。
  3. + 新規ルールをクリックします。
  4. 名前を入力します。
  5. 条件タブで、を入力します。この式の結果が項目に入力されます。注: この式によって返されるデータタイプは、項目に期待されるデータタイプと一致している必要があります。
  6. アクションタブをクリックします。
  7. アクションタイプドロップダウンから項目の値を設定を選択します。
  8. 項目ドロップダウンから、式の計算結果の入力先となる項目を選択します。注: 項目タイプ派生が選択されている項目でのみ使用することができます。
  9. 保存をクリックします。

項目値の設定ルールの例

フォームBMI項目フィールドが必要な場合があります。試験責任医師が各被験者の BMI を個別に算出する代わりに、この項目値を自動的に導出するように設定することができます。BMI の項目定義を作成して項目タイプのプロパティを派生に設定します。BMIの項目は、身長体重の項目と同じフォームに置く必要があります。

次の式でルールを作成し、項目値の設定アクションを選択して、BMI項目を選択します。

{Vitals/Weight}/({Vitals/Height}*{Vitals/Height})

ユーザがフォームに入力すると、BMI項目フィールドに式の結果が自動的に入力されます。

ルールによる症例ステータスの設定

試験内のルールを使用して、ユーザが入力したデータを基に被験者のステータスを自動的に設定することができます。

各被験者のステータスは経時的に履歴に保持されます。ユーザが後で管理データを編集した結果ルールが false と評価された場合、被験者のステータスは前 (最後) の状態に戻されます。

使用可能な症例ステータス

被験者ステータスに使用可能なオプションは以下の通りです:

  • 立上げ中
  • スクリーニング中
  • スクリーニング不適格
  • 登録済み
  • 無作為化
  • 治療の終了
  • 回収済み
  • 完了

被験者ステータスは、後退させることはできません。例えば、被験者を登録済みから無作為化に移行することはできますが、完了から登録済みに移行することはできません。

イベント日、日 (または日時) 項目のいずれかの値が、ステータス変更の日付として記録されます。ターゲットのステータスに応じて、被験者オブジェクト (subject__v) の異なるフィールドを使用してこの日付が記録されます。注: 立上げ中の場合、症例ステータスは最初のものになるため、被験者の日付フィールドがありません。

  • スクリーニング中 → スクリーニング実施日 (screened_date__v)
  • スクリーニング不合格 → スクリーニング不合格日 (screen_failed_date__v)
  • 登録済み → 登録日 (enrolled_date__v)
  • 無作為化 → 無作為化日 (randomized_date__v)
  • 治療終了→ 治療終了 (end_of_treatment_date__v)
  • 回収済み → 回収日 (withdrawn_date__v)
  • 完了 → 試験終了日 (end_of_study_date__v)

ステータス変更日に項目を選択する場合、その項目は日付または日時データ型で、かつ繰り返し項目グループに属していない必要があります。日付と時刻が不明な場合、その日付または時刻の不明な部分は可能な最小値 (最も早いもの) に置き換えられます。

ルールが true と評価されると、そのステータスが最新であるかどうか、または被験者が実際にそのステータスに移行したかどうかに関わらず、常に特定のステータスのステータス日付が追加されます。

最も前進したステータスに設定するルールがロールバックされた場合 (フォームがリセットされた場合など) 、そのステータスの症例ステータスの日付も削除されます。スタジオ > 設定で[件名ステータス日のロールバックを有効にする]を[はい]に設定している場合、関連する症例ステータスルールが false と評価されると、件名に保存されているステータス日はすべて削除されます。

スタジオ > 設定で症例ステータス日のロールバックを有効にするいいえ に設定しているとき、最も高度なステータスを設定していないルールが false と評価された場合、Vault はそのステータスの症例ステータス日を削除しません。

20R1 より前に作成された症例ステータスルールの設定

20R1リリース (2020 年 4 月) よりも前に作成された症例ステータスの設定ルールは、日付を選択せずに引き続き使用することができます。ただし、ルールを編集した場合は、ステータス変更の日付を選択するまでルールを保存することができません。

症例ステータスと被験者 ID の設定

試験by_site被験者 ID 生成メソッドを使用している場合、既存の被験者 IDの値に関係なく、ルールがその被験者スクリーニング中に返すたびに、被験者の ID が増加します。

症例ステータスルールの設定の例

スクリーニングイベントのイベント日を決定したら、被験者のステータスが自動的にスクリーニング中に設定されるようにしたい場合があります。症例ステータスの設定ルールを使用することでこれを行うことができます。

次の式でルールを作成し、症例ステータスの設定アクションタイプとスクリーニング中ステータスを選択します。

Not(IsBlank(@Screening.Screening.event_date__v)

スクリーニングイベントのイベント日が空白でなくなると (ユーザが日付を入力した後)、その被験者ステータススクリーニング中に更新されます。

ルールによる通知メールの送信

試験のルールを使用して、特定の条件が発生したときに自動的にユーザグループにメール通知を送信することができます。

詳細については、メール通知の送信を参照してください。

使用可能なルールのアクションタイプ

Vault EDC のルールで使用できるアクションタイプは以下のとおりです:

アクションタイプ フィールド 結果
オープンクエリ クエリレベル、
項目/イベント、
クエリメッセージ
式が True と評価されると、選択した項目またはイベント日付に対して、(ルールアクションパネルにある「メッセージを入力してください」というラベルが付いたフィールドに) 入力されたクエリメッセージを使用したクエリが作成されます。。クエリメッセージには 500 文字の文字数制限があります。クエリメッセージには特殊文字を使用できますが、エクスポートしたファイルに正しく表示されない場合があります。
イベントグループの追加 事象グループ 式が True と評価されると、ケースブックスケジュールに選択したイベントグループが追加されます。
イベントの追加 1 事象 式が True と評価されると、ケースブックスケジュールに選択したイベントが追加されます。
フォームの追加 1 フォーム 式が True と評価されると、ケースブックスケジュールに選択したフォームが追加されます。
無効化 4 識別子 式が True と評価されると、選択した項目は無効になります。
評価の追加 2 アセスメント 式が True と評価されると、評価が作成されます。
被験者のステータスを設定します ステータス 式が True と評価されると、被験者のステータスが選択されたステータスに更新されるとともに、ステータス変更日が記録されます。被験者の現在のステータスとルールのステータスが同一である場合、変更は発生しません。
インテグレーションエントリ 1 を作成する 該当なし 式が True と評価されると、Vault は統合タスク レコードを作成します。
派生値の設定 項目 選択した項目に式の計算結果が入力されます。
メール送信 該当なし 式が True と評価されると、設定された被験者とメッセージを使用して、事前に設定された受信者グループにメールが送信されます。
プログレッシブ表示 2、3、4 該当なし 現在のリリースでは、このアクションタイプはシステムで生成されたルールでのみ使用できます。プログレッシブ表示を設定するには、[Studio] > [スケジュール] から項目のプロパティを編集します。詳細をご確認ください。
レビューの上書き レビュープランタスク、デフォルトプランの上書き 式が True と評価されると、フォームの既定のレビュープラン ([ルールの詳細] パネルで選択したフォーム定義) が、選択したレビュープランで上書きされます。
ランダム化準備完了 5 として設定する 該当なし 式が True と評価されると、被験者が「ランダム化準備完了」としてマークされ、[データ入力] タブのランダム化オプションが有効になります。

1 このアクションタイプを有効にするには、Veeva サポートまでご連絡ください。

2 このアクションタイプは、試験別ロールが有効になっている Vault でのみ使用可能です。Veeva サポートに連絡して、Vault での 試験別ロールを有効化してください。

3 このアクションタイプは、自動展開モデルを使用する試験でのみ使用可能です。

4 このアクションタイプを使用できるかどうかは、試験設定レコードのルールバージョンフィールドによって異なります。ルールバージョンが「2」の場合、無効アクションを使用することはできません。

5 このアクションタイプは、ランダム化が設定されている試験でのみ使用可能です。

ルールの処理順序

ユーザがフォームへの入力を終えると、Vault EDC によって次のアクションタイプの順序でルールが処理されます:

  1. 項目の値を設定
  2. スケジュールの追加
  3. 事象の追加
  4. フォームの追加
  5. クエリ

Vault EDC によって各ルールタイプ内のルールが次の順序で処理されます:

  1. シングルフォームのルール (管理オブジェクトと依存オブジェクトが同一フォーム内にある)
  2. クロスフォーム - 同一イベントルール (管理オブジェクトと依存オブジェクトが異なるフォームにある)
  3. クロスフォーム - クロスイベントルール (管理オブジェクトと依存オブジェクトが異なるイベントにある)

この順序でルールが処理されることで、クエリタイプのルールが、項目値が導出されたり、イベントグループイベントフォームが追加されたことによって影響を受ける場合も、データの不足がない状態で処理できるようにしています。

単位変換の式

式を使用して単位変換を定義することもできます。Studio でのデフォルトの単位と変換の定義を参照してください。

使用可能な演算子および関数

複数の演算子と関数がデータ入力規則に使用できます。全リストは Vault 式参照ガイドをご覧ください。

式に関するガイドライン

項目グループ名前項目を使用して式で項目を特定します。試験デザインが項目を 1 回以上使用する場合、それが固有になるまで項目を階層的に特定します。式に複数の識別子がある場合、{identifier} のように波括弧を使用します。式に複数の演算子が含まれる場合は、括弧を使用します。Vault は左から右に式を処理します。入れ子の関数の場合、Vault はサブ関数を左から右に処理してから、親関数を処理します。Vault は、演算子の標準的な順序に従って、算術演算子と倫理演算子を処理してから、他の種類の演算子を処理します。括弧を使用して演算子の順序をオーバーライドすることができます。Vault EDC は、数字を浮動として処理し、式評価の最後でそれらを解決します。

表現のガイドライン

表現を書くにはこれらのガイドラインを使用します:

  • お使いの Vault のロケールにかかわらず、小数点はピリオドとします。
  • 表現の最大文字数は 1,500 文字とします。
  • 表現に複数の識別子が含まれる場合は、{波括弧} のように識別子を囲みます。
  • 項目が固有になるまで階層的に項目を定義し、スラッシュで識別子を区切ります: {事象/フォーム/項目グループ/項目}。例: {ベースラインビジット/バイタル/血圧/収縮期血圧}
  • 値の単位を定義するには、単位名の両側にアンダースコアを付け足します。例: 脈拍_bpm_ または拡張期血圧_mmHg_

関数のガイドライン

関数を式表現に追加する際、以下のガイドラインを使用します。

  • 関数名では大文字と小文字が区別されます。
  • 関数には、1 つまたは複数の引数があります。異なる関数には異なる数の因数が使用できます。

ブールタイプ項目に対するガイドライン

ブーリアン型の項目を参照する式を記述する場合、はい (チェックボックス選択時) には true を使用し、いいえ (チェックボックス未選択時) には false を使用します 。

エラー処理

ルールの作成または更新する前に、構文エラーを解決する必要があります。条件フィールド外をクリックすると、式構文が正しくなるまで Vault は表現が無効ですと表示します。以下はよくみられる構文エラーです:

  • 戻り値の型が一致しない。例えば、戻り値の型が日付であるのに、表現が数字を返した場合、エラーメッセージが表示されます。
  • 式に閉じ丸括弧がない、または括弧が一致しない。
  • 関数の因数の数が正しくない。例えば、if(式, 値 1, 値 2) の関数に因数が 3 つある場合、
  • この関数のパラメータ値は正しくありません。