日付比較- 動的問合せ

時間要素がない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のいずれかを返します。return 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 問合せなし
    2021年5月12日 10-May-2021 照会。

    問合せテキストに正しい日付値が移入されていることを確認します。

    2021年5月12日 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注入日は、それぞれの訪問の訪問日と同じである必要があります

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;
}

問合せメッセージ:インフュージョン{infusiondt}の日付がビジット日{visitdate}以前になっています。修正または明確化してください。

例4-22低血糖エピソードの開始日は、無作為化の日付以上である必要があります

ノート:

Hypoglycaemic episode is date question with time elements.低血糖のエピソードは、時間要素を持つ日付の問題です。
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})より前の日付です。修正してください。