日付比較-動的問合せ

時間要素がない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形式で日付(日付の一部を含む)を返します。

戻り値

ブール

trueまたはfalseを返します。返されたfalse条件が満たされると、問合せが生成されます。

使用上のヒント

比較演算子を使用して変数を直接比較するのではなく、必ず関連する日付ヘルパー関数を使用して日付を比較してください。

検証ステップ

  1. テストの件名を使用して、比較する日付項目を含む特定の訪問およびフォームに移動します。この例では、通知同意日 <icdat>および訪問日 <vstdt>です。
  2. 次の表に示すようにフォーム・アイテム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})より前の日付です。修正してください。