日付比較
正確な時間(時間および分)のフィールドがない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;
}
問合せメッセージ:「開始日」が「統計」フォームの「生年月日」より前です。日付を修正してください。
親トピック: 日付の比較