日付比較-動的問合せ
時間要素がない2つの日付の質問を比較し、日付が想定どおりではない場合に動的問合せを表示します。
ルールの説明: 「通知同意が署名済」の日付は、「スクリーニング」または「ベースライン訪問」の「訪問日」フィールドに入力された日付以前である必要があります。
ルール式
//to meet the rule description criteria onstdt-compdt should be a negative value or zero (<=0)
if(dateDiffInDays(icdat,vstdt)<=0)
{
return true;
}
else
{
setQueryMessage("Date Informed Consent signed "+getDateDMYFormat(icdat,false)+" must be on or before the Visit date "+getDateDMYFormat(vstdt,false) +" .Please correct or clarify.");
return false; //Query message set dynamically. System sends query when return false condition is met
}
問合せメッセージ:通知された同意が署名された日付{infconstdt}は訪問日{visitdate}以前である必要があります。修正または説明してください。
定義
- icdat
-
ルール摘要から通知同意日に訂正します。
- vstdt
-
ルールの説明の訪問日に対応します。
- <=
-
「次以下」演算子。ルール摘要に基づいて演算子を更新します。
- dateDiffInDays( )
-
date1とdate2 (date1- date2)の差異を日数で計算します(この場合はicdat - vstdt)。
- setQueryMessage( )
-
パラメータとして渡される動的問合せテキストを指定します。
- getDateDMYFormat( )
-
getDateDMYFormatヘルパー・ファンクションを使用して、DD-MON-YYYY形式で日付(日付の一部を含む)を返します。
使用上のヒント
比較演算子を使用して変数を直接比較するのではなく、必ず関連する日付ヘルパー関数を使用して日付を比較してください。
検証ステップ
- テストの件名を使用して、比較する日付項目を含む特定の訪問およびフォームに移動します。この例では、通知同意日 <
icdat
>および訪問日 <vstdt
>です。 - 次の表に示すようにフォーム・アイテム
icdat
およびvstdt
を更新し、結果が表示されていることを確認します。icdat
vstdt
結果 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-20試験中止日は、通知された同意署名日以上である必要があります
if(dateDiffInDays(studycompdt,infdt)>=0)
{
return true;
}
else
{
setQueryMessage("Date of Study Discontinuation "+getDateDMYFormat(studycompdt,false)+" is less than Informed Consent date "+getDateDMYFormat(infdt,false)+". Please correct or clarify.");
return false;
}
問合せメッセージ:研究中止日{discontdate}が通知同意日{infdt}より前です。修正または説明してください。
例4-21 Infusionの日付は、それぞれの訪問の訪問日と同じである必要があります
if(dateDiffInDays(infudt, visdt)==0)
{
return true;
}
else
{
setQueryMessage("Date of Infusion "+getDateDMYFormat(infudt,false)+" is prior to or greater than visit date "+getDateDMYFormat(visdt,false)+". Please correct or clarify.");
return false;
}
問合せメッセージ: Infusion {infusiondt}の日付が訪問日{visitdate}以前です。修正または説明してください。
例4-22低血糖エピソードの開始日はランダム化日以上である必要があります
注意:
Hypoglycaemicエピソードは、時間要素に関する日付の質問です。if(dateDiffInDays(hypodt, randdt)>=0)
{
return true;
}
else
{
setQueryMessage("Start date "+getDateDMYFormat(hypodt,false)+" is prior to date of randomisation "+getDateDMYFormat(randdt,false)+". Please correct.");
return false;
}
問合せメッセージ:開始日がランダム化の日付({RandDate})より前の日付です。修正してください。
親トピック: 動的問合せテキストがある日付