関連インスタンスの比較

繰返しフォームの一致するインスタンスの値を確認します。

ルールの説明: 重要度(ラジオ制御)は、同じ関連有害事象(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)

関数がコードで宣言されました。指定の重大度値と一致するインスタンスの数を識別します。

戻り値

ブール

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

検証ステップ

  1. テストの件名を使用して、指定された訪問およびiemsを含むフォームに移動し、この例では、指定した繰返しフォーム・インスタンスの「有害イベント番号」<aenumval>および重大度<sevval>を確認します。
  2. 次の表に示すようにフォーム・アイテム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

    問合せがありません。

その他の例

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

問合せメッセージ: 開始日が前の処方箋の停止日より前です。修正または確認してください。