関連インスタンスの比較
繰返しフォームで一致するインスタンスの値を確認してください。
ルールの説明:重大度(ラジオ・コントロール)は、関連する同じ有害事象(AENUM)の前のものと異なる必要があります。
ルール式
//variable declaration
var rc; //Radio Control - severity
var ins; //placeholder for Repeating Form instance
var outc=''; //placeholder for severity label value
var cnt=0; //counter variable
//function definition to identify number of instances matching the severity value
function functi(item,index)
{
if(item.deleted===false && item.value!==null && index!==(ins-1) && index<ins-1)
{
if(item.value===aenum1val) //Checks if the passed-in instance has a matching AE number value with the current instance
{
if(newsev[index]!==null && sevval!==null)
{
outc=JSON.parse(newsev[index].value)[0].label; //Retrieves label from severity selection made by the user in the related instance
if(outc===sevval) //Checks if the severity value in the related instance is matching in the current instance
{
cnt=cnt+1; //Updates the number of identified matching instances
}
else
{
cnt=cnt;
}
}
else
{
cnt=cnt;
}
}
else
{
cnt=cnt;
}
}
else
{
cnt=cnt;
}
}
try
{
//variable declaration
ins = GetCurrentRFInstance(); //Retrieves instance of the current AE form
var aenum1val=aenum1; //Adverse event number item
var sevval=getStringFromChoice(newsev1); //Variable for severity item to retrieve the label for the severity choice item selected by the user
rc=getValues('aenum','newsev'); //Gets values entered for AE number and severity items
if(rc===true && aenum1val!==null && sevval!==null && ins>1) //Checks if getValues function retrieved results array, if AE number and severity values are not null and if current instance is not the first instance of the form
{
aenum.forEach(functi); //Execute the function code for all AE number values entered in the form
if(cnt>0 )
{
return false; //System sends query when return false condition is met
}
else
{
return true;
}
}
else
{
return true;
}
}
catch(err)
{
setQueryMessage(err); //set query message to display an encountered error
return false; //System sends query when return false condition is met
}
問合せ:新しい重大度は前の重大度と同じです。確認してください。
定義
- newsev
-
ルール摘要から重要度項目の変数を作成しました。
- aenum
-
ルール摘要の「有害事象番号」項目に対応します。
- GetCurrentRFInstance( )
-
現在の繰返しフォームのフォーム インスタンス番号を取得します。
- getStringFromChoice( )
-
選択要素の選択されたラベル(ドロップダウン、ラジオ・ボタンまたはチェックボックス)を文字列またはカンマ区切りの値に変換します。選択要素をパラメータとして取り込みます。
- getValues( )
-
複数の訪問にわたって1つ以上の変数の値を、訪問順に配列形式でフェッチします。この場合、前述の aenumおよび newsev変数を取ります。
- setQueryMessage( )
-
パラメータとして渡される動的問合せテキストを指定します。
- functi(item,index)
-
コード内で宣言された関数。指定の重大度の値に一致するインスタンスの数を識別します。
検証ステップ
- テスト用のサブジェクトを使用して、確認する項目を含む特定の訪問およびフォームに移動します。この例では、指定された繰返しフォーム・インスタンスの「有害事象番号」<
aenumval
>および「重大度」<sevval
>です。 - 次の表のようにフォーム・アイテム
aenumval
およびsevval
を更新し、結果がリストどおりであることを確認します。ステップ ノート 結果 a。 最初の繰返しフォーム(1RF)インスタンスで、
aenumval
アイテムを「1」(AE1)として入力し、sevval
を「等級1」として選択します。1つの繰返しフォーム インスタンスのみ。 問合せがありません。
b。 2番目の繰返しフォーム(2RF)インスタンスに移動し、
aenumval
アイテムを1 (AE1)として入力し、sevval
を「等級1」として選択します(前のステップと同じ)。1RFおよび2RFでの値の照合: - 1RF:
- AE1
- 重大度等級1
- 2RF:
- AE1
- 重大度等級1
2RFで問い合せます。
c。 2RFインスタンスの
sevval
アイテムを「等級2」として更新します。1RFと2RFの異なる値: - 1RF:
- AE1
- 重大度等級1
- 2RF:
- AE1
- 重大度等級2
問合せなし。
d。 2RFインスタンスの
sevval
アイテムを「等級1」として更新します。1RFおよび2RFでの値の照合: - 1RF:
- AE1
- 重大度等級1
- 2RF:
- AE1
- 重大度等級1
2RFで問い合せます。
e。 2RFインスタンスの
aenumval
アイテムを2 (AE2)として更新します。1RFと2RFの異なる値: - 1RF:
- AE1
- 重大度等級1
- 2RF:
- AE2
- 重大度等級1
問合せなし。
f。 3RF (Thrid Repeat Form)インスタンスを作成し、
aenumval
アイテムを1 (AE1)として、sevval
をGrade 1として入力します。1RFおよび3RFでの値の照合: - 1RF:
- AE1
- 重大度等級1
- 2RF:
- AE2
- 重大度等級1
- 3RF:
- AE1
- 重大度等級1
3RFで問い合せます。
g。 3RFの
aenumval
を3 (AE3)として更新します。すべての繰返しフォーム・インスタンスで異なる値: - 1RF:
- AE1
- 重大度等級1
- 2RF:
- AE2
- 重大度等級1
- 3RF:
- AE3
- 重大度等級1
問合せなし。
h。 3RFの
aenumval
アイテムを2 (AE2)として更新します。2RFと3RFの値のマッチング: - 1RF:
- AE1
- 重大度等級1
- 2RF:
- AE2
- 重大度等級1
- 3RF:
- AE2
- 重大度等級1
3RFで問い合せます。
i。 2RFの
sevval
項目を「等級3」として更新します。すべての繰返しフォーム・インスタンスで異なる値: - 1RF:
- AE1
- 重大度等級1
- 2RF:
- AE2
- 重大度等級3
- 3RF:
- AE2
- 重大度等級1
問合せなし。
- 1RF:
その他の例
例4-28治療の開始日は、同じ薬の前の処方の治療の停止日以降にする必要があります
var rc;
var ins;
var ind=-1;
var res='';
function functi(item,index)
{
if(item.deleted===false && item.value!==null && index!==(ins-1) && index<ins-1)
{
if(item.value===trtname1)
{
if(stpdt[index]!==null && stdt[ins-1]!==null)
{
if(getDatesCompareResult(stdt[ins-1].value,true,stpdt[index].value,true,'>='))
{
ind=1;
}
else{ ind = 0;}
}
}
}
}
ins = GetCurrentRFInstance();
rc=getValues("trtname","stdt","stpdt");
if(rc===true && ins!==1)
{
trtname.forEach(functi);
if(ind===0)
{
return false;
}
else { return true; }
}
else
{
return true;
}
問合せメッセージ:開始日が前回処方の停止日より前です。修正または確認してください。
親トピック: 繰返しフォームの例