関連インスタンスの比較
繰返しフォームの一致するインスタンスの値を確認します。
ルールの説明: 重要度(ラジオ制御)は、同じ関連有害事象(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
-
ルール摘要から「重大度」項目の変数を作成しました。
- エナム
-
ルール摘要の「逆仕訳イベント番号」項目に対応します。
- GetCurrentRFInstance( )
-
現在の繰返しフォームのフォーム インスタンス番号を取得します。
- getStringFromChoice( )
-
選択要素の選択済ラベル(ドロップダウン、ラジオ・ボタンまたはチェック・ボックス)を文字列またはカンマ区切り値に変換します。選択要素をパラメータとして取得します。
- getValues( )
-
複数の訪問にわたる1つ以上の変数の値を、訪問順に配列形式でフェッチします。この場合、前述した aenumおよび newsev変数を使用します。
- setQueryMessage( )
-
パラメータとして渡される動的問合せテキストを指定します。
- functi(item,index)
-
関数がコードで宣言されました。指定の重大度値と一致するインスタンスの数を識別します。
検証ステップ
- テストの件名を使用して、指定された訪問およびiemsを含むフォームに移動し、この例では、指定した繰返しフォーム・インスタンスの「有害イベント番号」<
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)インスタンスを3回作成し、
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;
}
問合せメッセージ: 開始日が前の処方箋の停止日より前です。修正または確認してください。
親トピック: 繰返しフォームの例