日付比較
正確な時間(時と分)のフィールドがない2つの日付質問を比較し、それらの質問の日付が予想どおりでない場合は問合せを発行します。
ルール摘要:「発効日」の値は「完了日」の値以前にする必要があります。そうしないと、問合せが発生します。
ルール式
//to meet the rule description criteria onstdt-compdt should be a negative value or zero (<=0)
if(dateDiffInDays(onstdt,compdt)<=0)
{
return true;
}
else
{
return false; //System sends query when return false condition is met
}
クエリーメッセージ:発効日が完了日より後です。日付を修正または確認してください。
定義
- onstdt
-
ルールの説明の「設定日」に対応します。
- compdt
-
ルール摘要の完了日に対応します。
- <=
-
「次以下」演算子。ルールの説明に基づいて演算子を更新します。
- dateDiffInDays
-
date1 (onstdt)とdate2 (compdt) (date1-date2)の差異を日数で計算します。
使用方法のヒント
比較演算子を使用して変数を直接比較するのではなく、関連する日付ヘルパー関数を使用して日付を比較してください。
検証ステップ
- テスト用のサブジェクトを使用して、比較する日付アイテムを含む特定のビジットおよびフォームに移動します。この例では、設定日<
onstdt
>および完了日<compdt
>です。 - 次の表のようにフォーム・アイテム
onstdt
およびcompdt
を更新し、結果がリストどおりであることを確認します。onstdt
compdt
結果 10-May-2021 Null
問合せなし 10-May-2021 10-May-2021 問合せなし 11-May-2021 10-May-2021 問合せ 09-May-2021 10-May-2021 問合せなし 09-Jun-2021 10-May-2021 問合せ 11-Apr-2021 10-May-2021 問合せなし Null
10-May-2021 問合せなし 12-May-2021 10-May-2021 問合せ 12-May-2021 14-May-2021 問合せなし
注意:
フォームが複数の訪問に存在する場合は、前述のステップを繰り返します。
その他の例
例4-11死亡日は無作為化日以降にする必要があります
if(dateDiffInDays(deathdt,randt)>=0)
{
return true;
}
else
{
return false;
}
問合せメッセージ:死亡日が無作為化日より前です。日付を修正または確認してください。
例4-12完了日または取下げ日は死亡日と同じである必要があります
//Apply this rule when Reason for discontinuation is 'death'
if(dateDiffInDays(compdt,deathdt)===0)
{
return true;
}
else
{
return false;
}
問合せメッセージ:中止の事由は死亡、完了日または取下げ日は死亡日と同じである必要があります。日付を修正または確認してください。
例4-13低血糖症エピソード開始日は、被験者退会日より前である必要があります
ノート:低血糖症のエピソードは日時質問であり、時間要素はこのロジックでは無視されます。
if(dateDiffInDays(hypodt,withdrawdt)<=0)
{
return true;
}
else
{
return false;
}
問合せメッセージ:低血糖症のエピソードの日付は、被験者がトライアルを終了した後です。修正または明確化してください。
例4-14病歴の開始日は生年月日以降にする必要があります
if(dateDiffInDays(mhstdt,dob)>=0)
{
return true;
}
else
{
return false;
}
問合せメッセージ:開始日が「人口統計」フォームの生年月日より前です。日付を修正してください。
親トピック: 日付の比較